diff --git a/.dockerignore b/.dockerignore
deleted file mode 100644
index b72d742..0000000
--- a/.dockerignore
+++ /dev/null
@@ -1,11 +0,0 @@
-.git
-infra/cifuzz/test_data/*
-docs/*
-
-# Copied from .gitignore.
-.vscode/
-*.pyc
-build
-*~
-.DS_Store
-*.swp
\ No newline at end of file
diff --git a/.github/workflows/infra_tests.yml b/.github/workflows/infra_tests.yml
deleted file mode 100644
index 5273adc..0000000
--- a/.github/workflows/infra_tests.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-name: Infra tests
-on:
-  pull_request:
-    paths:
-      - 'infra/**'
-
-jobs:
-  build:
-    runs-on: ubuntu-latest
-
-    steps:
-      - name: Cancel previous
-        uses: styfle/cancel-workflow-action@0.8.0
-        with:
-          access_token: ${{ github.token }}
-
-      - uses: actions/checkout@v2
-      - run: |  # Needed for git diff to work.
-          git fetch origin master --depth 1
-          git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
-
-      - name: Setup python environment
-        uses: actions/setup-python@v2
-        with:
-          python-version: 3.8
-
-      - name: Install dependencies
-        run: |
-          sudo env "PATH=$PATH" python -m pip install --upgrade pip
-          sudo env "PATH=$PATH" pip install -r infra/ci/requirements.txt
-          sudo env "PATH=$PATH" pip install -r infra/build/functions/requirements.txt
-
-      - uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
-        with:
-          version: '298.0.0'
-      - run: |
-          sudo env "PATH=$PATH" gcloud components install beta cloud-datastore-emulator
-
-      - name: Run infra tests
-        run: sudo env "PATH=$PATH" INTEGRATION_TESTS=1 python infra/presubmit.py infra-tests -p
diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml
deleted file mode 100644
index 9a4b8d6..0000000
--- a/.github/workflows/presubmit.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-name: Presubmit checks
-
-on:
-  pull_request:
-    branches:
-    - master
-
-jobs:
-  build:
-    runs-on: ubuntu-latest
-
-    steps:
-      - name: Cancel previous
-        uses: styfle/cancel-workflow-action@0.8.0
-        with:
-          access_token: ${{ github.token }}
-
-      - uses: actions/checkout@v2
-      - run: |  # Needed for git diff to work.
-          git fetch origin master --depth 1
-          git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
-
-      - name: Setup python environment
-        uses: actions/setup-python@v2
-        with:
-          python-version: 3.8
-
-      - name: Install dependencies
-        run: |
-          python -m pip install --upgrade pip
-          pip install -r infra/ci/requirements.txt
-          pip install -r infra/build/functions/requirements.txt
-
-      - name: Run presubmit checks
-        run: python infra/presubmit.py
diff --git a/.github/workflows/project_tests.yml b/.github/workflows/project_tests.yml
deleted file mode 100644
index 55dfb7f..0000000
--- a/.github/workflows/project_tests.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-name: Project tests
-
-on:
-  pull_request:
-    branches:
-    - master
-
-jobs:
-  build:
-    runs-on: ubuntu-latest
-    strategy:
-      fail-fast: false
-      matrix:
-        engine:
-          - libfuzzer
-        sanitizer:
-          - address
-          - memory
-          - undefined
-          - coverage
-        architecture:
-          - x86_64
-        include:
-          - engine: afl
-            sanitizer: address
-            architecture: x86_64
-          - engine: honggfuzz
-            sanitizer: address
-            architecture: x86_64
-          - engine: libfuzzer
-            sanitizer: address
-            architecture: i386
-          - engine: none
-            sanitizer: address
-            architecture: x86_64
-          - engine: dataflow
-            sanitizer: dataflow
-            architecture: x86_64
-    env:
-      ENGINE: ${{ matrix.engine }}
-      SANITIZER: ${{ matrix.sanitizer }}
-      ARCHITECTURE: ${{ matrix.architecture }}
-
-    steps:
-      - name: Cancel previous
-        uses: styfle/cancel-workflow-action@0.8.0
-        with:
-          access_token: ${{ github.token }}
-
-      - uses: actions/checkout@v2
-      - run: |  # Needed for git diff to work.
-          git fetch origin master --depth 1
-          git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
-
-      - name: Clear unnecessary files
-        run: |
-          sudo swapoff -a
-          sudo rm -f /swapfile
-          sudo apt clean
-          docker rmi $(docker images -a -q)
-          df -h
-
-      - name: Setup python environment
-        uses: actions/setup-python@v2
-        with:
-          python-version: 3.8
-
-      - name: Install dependencies
-        run: |
-          python -m pip install --upgrade pip
-          pip install -r infra/ci/requirements.txt
-
-      - name: Run project tests
-        run: python infra/ci/build.py
diff --git a/.gitignore b/.gitignore
index 4b4033e..63c6116 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,3 @@
 .vscode/
 *.pyc
-/build/
-*~
-.DS_Store
-*.swp
-.venv
\ No newline at end of file
+build/
diff --git a/.pylintrc b/.pylintrc
index 95cd154..00878f7 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -5,11 +5,11 @@
 # run arbitrary code.
 extension-pkg-whitelist=
 
-# Add files or directories to the blocklist. They should be base names, not
+# Add files or directories to the blacklist. They should be base names, not
 # paths.
-ignore=CVS,base-clang,base-sanitizer-libs-builder
+ignore=CVS
 
-# Add files or directories matching the regex patterns to the blocklist. The
+# Add files or directories matching the regex patterns to the blacklist. The
 # regex matches against base names, not paths.
 ignore-patterns=
 
@@ -139,8 +139,7 @@
         deprecated-sys-function,
         exception-escape,
         comprehension-escape,
-        fixme,
-        import-error,
+        fixme
 
 # Enable the message, report, category or checker with the given id(s). You can
 # either give multiple identifier separated by comma (,) or put this option
@@ -444,8 +443,8 @@
 callbacks=cb_,
           _cb
 
-# A regular expression matching the name of placeholder variables (i.e. expected
-# to not be used).
+# A regular expression matching the name of dummy variables (i.e. expected to
+# not be used).
 dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_
 
 # Argument names that match this expression will be ignored. Default to name
@@ -583,4 +582,4 @@
                        Exception
 
 # Maximum number of characters on a single line.
-max-line-length=80
+max-line-length=80
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..2064c60
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,58 @@
+language: python
+dist: xenial
+
+services:
+  - docker
+
+before_install:
+  - git fetch origin +refs/heads/$TRAVIS_BRANCH
+
+install:
+  - pip install -r infra/travis/requirements.txt
+
+matrix:
+  include:
+    - name: "presubmit"
+      install:
+        - pip install -r infra/dev-requirements.txt
+      script: ./infra/presubmit.py
+    - name: "libfuzzer address x86_64"
+      env:
+        - TRAVIS_ENGINE=libfuzzer
+        - TRAVIS_SANITIZER=address
+        - TRAVIS_ARCHITECTURE=x86_64
+    - name: "libfuzzer memory x86_64"
+      env:
+        - TRAVIS_ENGINE=libfuzzer
+        - TRAVIS_SANITIZER=memory
+        - TRAVIS_ARCHITECTURE=x86_64
+    - name: "libfuzzer undefined x86_64"
+      env:
+        - TRAVIS_SANITIZER=undefined
+        - TRAVIS_ENGINE=libfuzzer
+        - TRAVIS_ARCHITECTURE=x86_64
+    - name: "afl address x86_64"
+      env:
+        - TRAVIS_ENGINE=afl
+        - TRAVIS_SANITIZER=address
+        - TRAVIS_ARCHITECTURE=x86_64
+    - name: "none address x86_64"
+      env:
+        - TRAVIS_ENGINE=none
+        - TRAVIS_SANITIZER=address
+        - TRAVIS_ARCHITECTURE=x86_64
+    - name: "libfuzzer address i386"
+      env:
+        - TRAVIS_ENGINE=libfuzzer
+        - TRAVIS_SANITIZER=address
+        - TRAVIS_ARCHITECTURE=i386
+    - name: "dataflow dataflow x86_64"
+      env:
+        - TRAVIS_ENGINE=dataflow
+        - TRAVIS_SANITIZER=dataflow
+        - TRAVIS_ARCHITECTURE=x86_64
+
+script: ./infra/travis/travis_build.py
+
+notifications:
+  webhooks: https://www.travisbuddy.com/
diff --git a/Android.bp b/Android.bp
deleted file mode 100644
index 2bc30dd..0000000
--- a/Android.bp
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (C) 2020 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package {
-    default_applicable_licenses: ["external_oss-fuzz_license"],
-}
-
-// Added automatically by a large-scale-change that took the approach of
-// 'apply every license found to every target'. While this makes sure we respect
-// every license restriction, it may not be entirely correct.
-//
-// e.g. GPL in an MIT project might only apply to the contrib/ directory.
-//
-// Please consider splitting the single license below into multiple licenses,
-// taking care not to lose any license_kind information, and overriding the
-// default license using the 'licenses: [...]' property on targets as needed.
-//
-// For unused files, consider creating a 'fileGroup' with "//visibility:private"
-// to attach the license to, and including a comment whether the files may be
-// used in the current project.
-// See: http://go/android-license-faq
-license {
-    name: "external_oss-fuzz_license",
-    visibility: [":__subpackages__"],
-    license_kinds: [
-        "SPDX-license-identifier-Apache-2.0",
-        "SPDX-license-identifier-BSD",
-        "SPDX-license-identifier-GPL",
-        "SPDX-license-identifier-MIT",
-        "legacy_notice",
-    ],
-    license_text: [
-        "LICENSE",
-    ],
-}
-
-cc_fuzz {
-    name: "ossfuzz-libldac-encode_fuzzer",
-    shared_libs: ["libldacBT_enc"],
-    srcs: ["projects/libldac/libldac_encode_fuzzer.cc"],
-    fuzz_config: {
-        componentid: 27441
-    },
-}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4255338..81dfba7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,4 @@
-Want to contribute? Great! First, read this page (including the small print at
-the end).
+Want to contribute? Great! First, read this page (including the small print at the end).
 
 ### Before you contribute
 Before we can use your code, you must sign the
@@ -7,7 +6,7 @@
 (CLA), which you can do online. The CLA is necessary mainly because you own the
 copyright to your changes, even after your contribution becomes part of our
 codebase, so we need your permission to use and distribute your code. We also
-need to be sure of various other things: for instance that you'll tell us if you
+need to be sure of various other things—for instance that you'll tell us if you
 know that your code infringes on other people's patents. You don't have to sign
 the CLA until after you've submitted your code for review and a member has
 approved it, but you must do it before we can put your code into our codebase.
diff --git a/METADATA b/METADATA
index dfba61b..f8659b3 100644
--- a/METADATA
+++ b/METADATA
@@ -9,11 +9,11 @@
     type: GIT
     value: "https://github.com/google/oss-fuzz.git"
   }
-  version: "947169dc86572e121c3e138f366a9f39ac6266ae"
-  license_type: RESTRICTED
+  version: "1a87da68c870ce09ab6ffac30589da12e7ff6a8d"
+  license_type: NOTICE
   last_upgrade_date {
-    year: 2021
-    month: 4
+    year: 2020
+    month: 2
     day: 1
   }
 }
diff --git a/NOTICE b/NOTICE
new file mode 120000
index 0000000..7a694c9
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1 @@
+LICENSE
\ No newline at end of file
diff --git a/README.md b/README.md
index 4e5474a..ab300c3 100644
--- a/README.md
+++ b/README.md
@@ -1,64 +1,41 @@
 # OSS-Fuzz: Continuous Fuzzing for Open Source Software
 
-[Fuzz testing] is a well-known technique for uncovering programming errors in
-software. Many of these detectable errors, like [buffer overflow], can have
-serious security implications. Google has found [thousands] of security
-vulnerabilities and stability bugs by deploying [guided in-process fuzzing of
-Chrome components], and we now want to share that service with the open source
-community.
+[Fuzz testing](https://en.wikipedia.org/wiki/Fuzz_testing) is a well-known
+technique for uncovering programming errors in software.
+Many of these detectable errors, like [buffer overflow](https://en.wikipedia.org/wiki/Buffer_overflow), can have serious security implications. Google has found [thousands] of security vulnerabilities and stability bugs by deploying [guided in-process fuzzing of Chrome components](https://security.googleblog.com/2016/08/guided-in-process-fuzzing-of-chrome.html),
+and we now want to share that service with the open source community. 
 
-[Fuzz testing]: https://en.wikipedia.org/wiki/Fuzz_testing
-[buffer overflow]: https://en.wikipedia.org/wiki/Buffer_overflow
 [thousands]: https://bugs.chromium.org/p/chromium/issues/list?q=label%3AStability-LibFuzzer%2CStability-AFL%20-status%3ADuplicate%2CWontFix&can=1
-[guided in-process fuzzing of Chrome components]: https://security.googleblog.com/2016/08/guided-in-process-fuzzing-of-chrome.html
 
-In cooperation with the [Core Infrastructure Initiative] and the [OpenSSF],
+In cooperation with the [Core Infrastructure Initiative](https://www.coreinfrastructure.org/), 
 OSS-Fuzz aims to make common open source software more secure and stable by
-combining modern fuzzing techniques with scalable, distributed execution.
+combining modern fuzzing techniques with scalable,
+distributed execution.
 
-[Core Infrastructure Initiative]: https://www.coreinfrastructure.org/
-[OpenSSF]: https://www.openssf.org/
+We support the [libFuzzer](http://llvm.org/docs/LibFuzzer.html) and [AFL](http://lcamtuf.coredump.cx/afl/) fuzzing engines
+in combination with [Sanitizers](https://github.com/google/sanitizers), as well as
+[ClusterFuzz](https://github.com/google/clusterfuzz),
+a distributed fuzzer execution environment and reporting tool. 
 
-We support the [libFuzzer], [AFL++], and [Honggfuzz] fuzzing engines in
-combination with [Sanitizers], as well as [ClusterFuzz], a distributed fuzzer
-execution environment and reporting tool.
-
-[libFuzzer]: https://llvm.org/docs/LibFuzzer.html
-[AFL++]: https://github.com/AFLplusplus/AFLplusplus
-[Honggfuzz]: https://github.com/google/honggfuzz
-[Sanitizers]: https://github.com/google/sanitizers
-[ClusterFuzz]: https://github.com/google/clusterfuzz
-
-Currently, OSS-Fuzz supports C/C++, Rust, Go, Python and Java/JVM code. Other languages
-supported by [LLVM] may work too. OSS-Fuzz supports fuzzing x86_64 and i386
-builds.
-
-[LLVM]: https://llvm.org
+Currently, OSS-Fuzz supports C/C++, Rust, and Go code. Other languages supported by [LLVM](http://llvm.org) may work too.
+OSS-Fuzz supports fuzzing x86_64 and i386 builds.
 
 ## Overview
 ![OSS-Fuzz process diagram](docs/images/process.png)
 
 ## Documentation
-Read our [detailed documentation] to learn how to use OSS-Fuzz.
-
-[detailed documentation]: https://google.github.io/oss-fuzz
+Read our [detailed documentation](https://google.github.io/oss-fuzz) to learn how to use OSS-Fuzz.
 
 ## Trophies
-As of January 2021, OSS-Fuzz has found over [25,000] bugs in [375] open source
-projects.
+As of January 2020, OSS-Fuzz has found over [16,000] bugs in [250] open source projects.
 
-[25,000]: https://bugs.chromium.org/p/oss-fuzz/issues/list?q=-status%3AWontFix%2CDuplicate%20-component%3AInfra&can=1
-[375]: https://github.com/google/oss-fuzz/tree/master/projects
+[16,000]: https://bugs.chromium.org/p/oss-fuzz/issues/list?q=-status%3AWontFix%2CDuplicate%20-component%3AInfra&can=1
+[250]: https://github.com/google/oss-fuzz/tree/master/projects
 
 ## Blog posts
-* 2016-12-01 - [Announcing OSS-Fuzz: Continuous fuzzing for open source software]
-* 2017-05-08 - [OSS-Fuzz: Five months later, and rewarding projects]
-* 2018-11-06 - [A New Chapter for OSS-Fuzz]
-* 2020-10-09 - [Fuzzing internships for Open Source Software]
-* 2020-12-07 - [Improving open source security during the Google summer internship program]
 
-[Announcing OSS-Fuzz: Continuous fuzzing for open source software]: https://opensource.googleblog.com/2016/12/announcing-oss-fuzz-continuous-fuzzing.html
-[OSS-Fuzz: Five months later, and rewarding projects]: https://opensource.googleblog.com/2017/05/oss-fuzz-five-months-later-and.html
-[A New Chapter for OSS-Fuzz]: https://security.googleblog.com/2018/11/a-new-chapter-for-oss-fuzz.html
-[Fuzzing internships for Open Source Software]: https://security.googleblog.com/2020/10/fuzzing-internships-for-open-source.html
-[Improving open source security during the Google summer internship program]: https://security.googleblog.com/2020/12/improving-open-source-security-during.html
+* 2016-12-01 - [Announcing OSS-Fuzz: Continuous fuzzing for open source software](https://opensource.googleblog.com/2016/12/announcing-oss-fuzz-continuous-fuzzing.html)
+* 2017-05-08 - [OSS-Fuzz: Five months later, and rewarding projects](https://opensource.googleblog.com/2017/05/oss-fuzz-five-months-later-and.html)
+* 2018-11-06 - [A New Chapter for OSS-Fuzz](https://security.googleblog.com/2018/11/a-new-chapter-for-oss-fuzz.html)
+
+
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
index a6807df..20774a0 100644
--- a/docs/Gemfile.lock
+++ b/docs/Gemfile.lock
@@ -1,14 +1,13 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.0.3.4)
-      concurrent-ruby (~> 1.0, >= 1.0.2)
-      i18n (>= 0.7, < 2)
+    activesupport (4.2.11.1)
+      i18n (~> 0.7)
       minitest (~> 5.1)
+      thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)
-      zeitwerk (~> 2.2, >= 2.2.2)
-    addressable (2.7.0)
-      public_suffix (>= 2.0.2, < 5.0)
+    addressable (2.6.0)
+      public_suffix (>= 2.0.2, < 4.0)
     coffee-script (2.4.1)
       coffee-script-source
       execjs
@@ -16,67 +15,65 @@
     colorator (1.1.0)
     commonmarker (0.17.13)
       ruby-enum (~> 0.5)
-    concurrent-ruby (1.1.7)
-    dnsruby (1.61.5)
-      simpleidn (~> 0.1)
-    em-websocket (0.5.2)
+    concurrent-ruby (1.1.5)
+    dnsruby (1.61.3)
+      addressable (~> 2.5)
+    em-websocket (0.5.1)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0.6.0)
     ethon (0.12.0)
       ffi (>= 1.3.0)
     eventmachine (1.2.7)
     execjs (2.7.0)
-    faraday (1.3.0)
-      faraday-net_http (~> 1.0)
+    faraday (0.15.4)
       multipart-post (>= 1.2, < 3)
-      ruby2_keywords
-    faraday-net_http (1.0.0)
-    ffi (1.14.2)
+    ffi (1.11.1)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
-    github-pages (209)
+    github-pages (198)
+      activesupport (= 4.2.11.1)
       github-pages-health-check (= 1.16.1)
-      jekyll (= 3.9.0)
-      jekyll-avatar (= 0.7.0)
+      jekyll (= 3.8.5)
+      jekyll-avatar (= 0.6.0)
       jekyll-coffeescript (= 1.1.1)
-      jekyll-commonmark-ghpages (= 0.1.6)
+      jekyll-commonmark-ghpages (= 0.1.5)
       jekyll-default-layout (= 0.1.4)
-      jekyll-feed (= 0.15.1)
+      jekyll-feed (= 0.11.0)
       jekyll-gist (= 1.5.0)
-      jekyll-github-metadata (= 2.13.0)
-      jekyll-mentions (= 1.6.0)
-      jekyll-optional-front-matter (= 0.3.2)
+      jekyll-github-metadata (= 2.12.1)
+      jekyll-mentions (= 1.4.1)
+      jekyll-optional-front-matter (= 0.3.0)
       jekyll-paginate (= 1.1.0)
-      jekyll-readme-index (= 0.3.0)
-      jekyll-redirect-from (= 0.16.0)
-      jekyll-relative-links (= 0.6.1)
-      jekyll-remote-theme (= 0.4.2)
+      jekyll-readme-index (= 0.2.0)
+      jekyll-redirect-from (= 0.14.0)
+      jekyll-relative-links (= 0.6.0)
+      jekyll-remote-theme (= 0.3.1)
       jekyll-sass-converter (= 1.5.2)
-      jekyll-seo-tag (= 2.6.1)
-      jekyll-sitemap (= 1.4.0)
-      jekyll-swiss (= 1.0.0)
+      jekyll-seo-tag (= 2.5.0)
+      jekyll-sitemap (= 1.2.0)
+      jekyll-swiss (= 0.4.0)
       jekyll-theme-architect (= 0.1.1)
       jekyll-theme-cayman (= 0.1.1)
       jekyll-theme-dinky (= 0.1.1)
-      jekyll-theme-hacker (= 0.1.2)
+      jekyll-theme-hacker (= 0.1.1)
       jekyll-theme-leap-day (= 0.1.1)
       jekyll-theme-merlot (= 0.1.1)
       jekyll-theme-midnight (= 0.1.1)
       jekyll-theme-minimal (= 0.1.1)
       jekyll-theme-modernist (= 0.1.1)
-      jekyll-theme-primer (= 0.5.4)
+      jekyll-theme-primer (= 0.5.3)
       jekyll-theme-slate (= 0.1.1)
       jekyll-theme-tactile (= 0.1.1)
       jekyll-theme-time-machine (= 0.1.1)
-      jekyll-titles-from-headings (= 0.5.3)
-      jemoji (= 0.12.0)
-      kramdown (= 2.3.0)
-      kramdown-parser-gfm (= 1.1.0)
-      liquid (= 4.0.3)
+      jekyll-titles-from-headings (= 0.5.1)
+      jemoji (= 0.10.2)
+      kramdown (= 1.17.0)
+      liquid (= 4.0.0)
+      listen (= 3.1.5)
       mercenary (~> 0.3)
-      minima (= 2.5.1)
-      nokogiri (>= 1.10.4, < 2.0)
-      rouge (= 3.23.0)
+      minima (= 2.5.0)
+      nokogiri (>= 1.8.5, < 2.0)
+      rouge (= 2.2.1)
       terminal-table (~> 1.4)
     github-pages-health-check (1.16.1)
       addressable (~> 2.3)
@@ -84,70 +81,68 @@
       octokit (~> 4.0)
       public_suffix (~> 3.0)
       typhoeus (~> 1.3)
-    html-pipeline (2.14.0)
+    html-pipeline (2.12.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
     i18n (0.9.5)
       concurrent-ruby (~> 1.0)
-    jekyll (3.9.0)
+    jekyll (3.8.5)
       addressable (~> 2.4)
       colorator (~> 1.0)
       em-websocket (~> 0.5)
       i18n (~> 0.7)
       jekyll-sass-converter (~> 1.0)
       jekyll-watch (~> 2.0)
-      kramdown (>= 1.17, < 3)
+      kramdown (~> 1.14)
       liquid (~> 4.0)
       mercenary (~> 0.3.3)
       pathutil (~> 0.9)
       rouge (>= 1.7, < 4)
       safe_yaml (~> 1.0)
-    jekyll-avatar (0.7.0)
-      jekyll (>= 3.0, < 5.0)
+    jekyll-avatar (0.6.0)
+      jekyll (~> 3.0)
     jekyll-coffeescript (1.1.1)
       coffee-script (~> 2.2)
       coffee-script-source (~> 1.11.1)
     jekyll-commonmark (1.3.1)
       commonmarker (~> 0.14)
       jekyll (>= 3.7, < 5.0)
-    jekyll-commonmark-ghpages (0.1.6)
+    jekyll-commonmark-ghpages (0.1.5)
       commonmarker (~> 0.17.6)
-      jekyll-commonmark (~> 1.2)
-      rouge (>= 2.0, < 4.0)
+      jekyll-commonmark (~> 1)
+      rouge (~> 2)
     jekyll-default-layout (0.1.4)
       jekyll (~> 3.0)
-    jekyll-feed (0.15.1)
-      jekyll (>= 3.7, < 5.0)
+    jekyll-feed (0.11.0)
+      jekyll (~> 3.3)
     jekyll-gist (1.5.0)
       octokit (~> 4.2)
-    jekyll-github-metadata (2.13.0)
-      jekyll (>= 3.4, < 5.0)
+    jekyll-github-metadata (2.12.1)
+      jekyll (~> 3.4)
       octokit (~> 4.0, != 4.4.0)
-    jekyll-mentions (1.6.0)
+    jekyll-mentions (1.4.1)
       html-pipeline (~> 2.3)
-      jekyll (>= 3.7, < 5.0)
-    jekyll-optional-front-matter (0.3.2)
-      jekyll (>= 3.0, < 5.0)
+      jekyll (~> 3.0)
+    jekyll-optional-front-matter (0.3.0)
+      jekyll (~> 3.0)
     jekyll-paginate (1.1.0)
-    jekyll-readme-index (0.3.0)
-      jekyll (>= 3.0, < 5.0)
-    jekyll-redirect-from (0.16.0)
-      jekyll (>= 3.3, < 5.0)
-    jekyll-relative-links (0.6.1)
-      jekyll (>= 3.3, < 5.0)
-    jekyll-remote-theme (0.4.2)
-      addressable (~> 2.0)
-      jekyll (>= 3.5, < 5.0)
-      jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
-      rubyzip (>= 1.3.0, < 3.0)
+    jekyll-readme-index (0.2.0)
+      jekyll (~> 3.0)
+    jekyll-redirect-from (0.14.0)
+      jekyll (~> 3.3)
+    jekyll-relative-links (0.6.0)
+      jekyll (~> 3.3)
+    jekyll-remote-theme (0.3.1)
+      jekyll (~> 3.5)
+      rubyzip (>= 1.2.1, < 3.0)
     jekyll-sass-converter (1.5.2)
       sass (~> 3.4)
-    jekyll-seo-tag (2.6.1)
-      jekyll (>= 3.3, < 5.0)
-    jekyll-sitemap (1.4.0)
-      jekyll (>= 3.7, < 5.0)
-    jekyll-swiss (1.0.0)
+    jekyll-seo-tag (2.5.0)
+      jekyll (~> 3.3)
+    jekyll-sitemap (1.2.0)
+      jekyll (~> 3.3)
+    jekyll-swiss (0.4.0)
     jekyll-theme-architect (0.1.1)
       jekyll (~> 3.5)
       jekyll-seo-tag (~> 2.0)
@@ -157,8 +152,8 @@
     jekyll-theme-dinky (0.1.1)
       jekyll (~> 3.5)
       jekyll-seo-tag (~> 2.0)
-    jekyll-theme-hacker (0.1.2)
-      jekyll (> 3.5, < 5.0)
+    jekyll-theme-hacker (0.1.1)
+      jekyll (~> 3.5)
       jekyll-seo-tag (~> 2.0)
     jekyll-theme-leap-day (0.1.1)
       jekyll (~> 3.5)
@@ -175,8 +170,8 @@
     jekyll-theme-modernist (0.1.1)
       jekyll (~> 3.5)
       jekyll-seo-tag (~> 2.0)
-    jekyll-theme-primer (0.5.4)
-      jekyll (> 3.5, < 5.0)
+    jekyll-theme-primer (0.5.3)
+      jekyll (~> 3.5)
       jekyll-github-metadata (~> 2.9)
       jekyll-seo-tag (~> 2.0)
     jekyll-theme-slate (0.1.1)
@@ -188,49 +183,43 @@
     jekyll-theme-time-machine (0.1.1)
       jekyll (~> 3.5)
       jekyll-seo-tag (~> 2.0)
-    jekyll-titles-from-headings (0.5.3)
-      jekyll (>= 3.3, < 5.0)
+    jekyll-titles-from-headings (0.5.1)
+      jekyll (~> 3.3)
     jekyll-watch (2.2.1)
       listen (~> 3.0)
-    jemoji (0.12.0)
+    jemoji (0.10.2)
       gemoji (~> 3.0)
       html-pipeline (~> 2.2)
-      jekyll (>= 3.0, < 5.0)
-    kramdown (2.3.0)
-      rexml
-    kramdown-parser-gfm (1.1.0)
-      kramdown (~> 2.0)
-    liquid (4.0.3)
-    listen (3.4.0)
-      rb-fsevent (~> 0.10, >= 0.10.3)
-      rb-inotify (~> 0.9, >= 0.9.10)
+      jekyll (~> 3.0)
+    kramdown (1.17.0)
+    liquid (4.0.0)
+    listen (3.1.5)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+      ruby_dep (~> 1.2)
     mercenary (0.3.6)
-    mini_portile2 (2.5.0)
-    minima (2.5.1)
-      jekyll (>= 3.5, < 5.0)
+    mini_portile2 (2.4.0)
+    minima (2.5.0)
+      jekyll (~> 3.5)
       jekyll-feed (~> 0.9)
       jekyll-seo-tag (~> 2.1)
-    minitest (5.14.3)
+    minitest (5.11.3)
     multipart-post (2.1.1)
-    nokogiri (1.11.1)
-      mini_portile2 (~> 2.5.0)
-      racc (~> 1.4)
-    octokit (4.20.0)
-      faraday (>= 0.9)
+    nokogiri (1.10.4)
+      mini_portile2 (~> 2.4.0)
+    octokit (4.14.0)
       sawyer (~> 0.8.0, >= 0.5.3)
     pathutil (0.16.2)
       forwardable-extended (~> 2.6)
     public_suffix (3.1.1)
-    racc (1.5.2)
-    rb-fsevent (0.10.4)
-    rb-inotify (0.10.1)
+    rb-fsevent (0.10.3)
+    rb-inotify (0.10.0)
       ffi (~> 1.0)
-    rexml (3.2.4)
-    rouge (3.23.0)
-    ruby-enum (0.8.0)
+    rouge (2.2.1)
+    ruby-enum (0.7.2)
       i18n
-    ruby2_keywords (0.0.2)
-    rubyzip (2.3.0)
+    ruby_dep (1.5.0)
+    rubyzip (1.2.3)
     safe_yaml (1.0.5)
     sass (3.7.4)
       sass-listen (~> 4.0.0)
@@ -240,20 +229,14 @@
     sawyer (0.8.2)
       addressable (>= 2.3.5)
       faraday (> 0.8, < 2.0)
-    simpleidn (0.1.1)
-      unf (~> 0.1.4)
     terminal-table (1.8.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
     thread_safe (0.3.6)
-    typhoeus (1.4.0)
+    typhoeus (1.3.1)
       ethon (>= 0.9.0)
-    tzinfo (1.2.9)
+    tzinfo (1.2.5)
       thread_safe (~> 0.1)
-    unf (0.1.4)
-      unf_ext
-    unf_ext (0.0.7.7)
-    unicode-display_width (1.7.0)
-    zeitwerk (2.4.2)
+    unicode-display_width (1.6.0)
 
 PLATFORMS
   ruby
@@ -262,4 +245,4 @@
   github-pages
 
 BUNDLED WITH
-   2.1.4
+   1.16.1
diff --git a/docs/advanced-topics/code_coverage.md b/docs/advanced-topics/code_coverage.md
index 3b0acc2..6e56c40 100644
--- a/docs/advanced-topics/code_coverage.md
+++ b/docs/advanced-topics/code_coverage.md
@@ -9,11 +9,9 @@
 # Code Coverage
 {: .no_toc}
 
-For projects written in C/C++, you can generate code coverage reports using
-Clang source-based code coverage. This page walks you through the basic steps.
-For more details, see [Clang's documentation].
-
-Code coverage reports generation for other languages is not supported yet.
+You can generate code coverage reports for your project using Clang source-based
+code coverage. This page walks you through the basic steps. For more details,
+see [Clang's documentation].
 
 - TOC
 {:toc}
@@ -126,4 +124,4 @@
 
 [Clang's documentation]: https://clang.llvm.org/docs/SourceBasedCodeCoverage.html
 [gsutil tool]: https://cloud.google.com/storage/docs/gsutil_install
-[llvm-cov tool]: https://llvm.org/docs/CommandGuide/llvm-cov.html
+[llvm-cov tool]: https://llvm.org/docs/CommandGuide/llvm-cov.html
\ No newline at end of file
diff --git a/docs/advanced-topics/ideal_integration.md b/docs/advanced-topics/ideal_integration.md
index b6d29e4..b83fafe 100644
--- a/docs/advanced-topics/ideal_integration.md
+++ b/docs/advanced-topics/ideal_integration.md
@@ -73,7 +73,7 @@
 * For every fuzz target `foo` in the project, there is a build rule that
 builds `foo_fuzzer`, a binary that: 
 	* Contains the fuzzing entry point.
-	* Contains (`LLVMFuzzerTestOneInput`) and all the code it depends on.
+	* Contains (`LLVMFuzzerTestOneInput`) and all the code it depends on
 	* Uses the `main()` function from `$LIB_FUZZING_ENGINE` (env var [provided]({{ site.baseurl }}/getting-started/new-project-guide/) by OSS-Fuzz environment).
 * Since the build system supports changing the compiler and passing extra compiler
 flags, the build command for `foo_fuzzer` looks similar to this:
@@ -112,9 +112,9 @@
 
 For some input types, a simple dictionary of tokens used by the input language
 can have a dramatic impact on fuzzing efficiency.  For example, when fuzzing an
-XML parser, a dictionary of XML tokens is helpful. AFL++ has a
-[collection](https://github.com/AFLplusplus/AFLplusplus/tree/master/dictionaries)
-of dictionaries for popular data formats. Ideally, a dictionary should be
+XML parser, a dictionary of XML tokens is helpful. AFL has a
+[collection](https://github.com/google/AFL/tree/master/dictionaries) of
+dictionaries for popular data formats. Ideally, a dictionary should be
 maintained alongside the fuzz target, and it must use [correct
 syntax](http://libfuzzer.info/#dictionaries).
 
@@ -143,7 +143,7 @@
 [sanitizers](https://github.com/google/sanitizers) during regression testing.
 
 Examples: [SQLite](https://www.sqlite.org/src/artifact/d9f1a6f43e7bab45),
-[openssl](https://github.com/openssl/openssl/blob/master/fuzz/test-corpus.c).
+[openssl](https://github.com/openssl/openssl/blob/master/fuzz/test-corpus.c)
 
 ## Performance
 
diff --git a/docs/advanced-topics/reproducing.md b/docs/advanced-topics/reproducing.md
index 95bb09c..7e8ea6d 100644
--- a/docs/advanced-topics/reproducing.md
+++ b/docs/advanced-topics/reproducing.md
@@ -78,9 +78,9 @@
 
 The `sanitizer` used in the report is the value in the
 **Sanitizer** column. It's one of the following:
-  * **address** for AddressSanitizer.
-  * **memory** for MemorySanitizer.
-  * **undefined** for UndefinedBehaviorSanitizer.
+  * **address** for AddressSanitizer
+  * **memory** for MemorySanitizer
+  * **undefined** for UndefinedBehaviorSanitizer
 
 **Note**: The `architecture` argument is only necessary if you want to specify
 `i386` configuration.
@@ -93,9 +93,6 @@
 $ python infra/helper.py reproduce $PROJECT_NAME <fuzz_target_name> <testcase_path>
 ```
 
-**Note**: The reproduce command only supports `libfuzzer` fuzzing engine. Crashes
-found with other fuzzing engines should be reproducible with `libfuzzer` too.
-
 For example, to build the [libxml2](https://github.com/google/oss-fuzz/tree/master/projects/libxml2)
 project with UndefinedBehaviorSanitizer (`undefined`) instrumentation and
 reproduce a crash testcase for a fuzzer named `libxml2_xml_read_memory_fuzzer`,
diff --git a/docs/faq.md b/docs/faq.md
index 46e5ebf..ca02b9b 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -39,19 +39,12 @@
 You should look for places in your code that:
 
   - consume un-trusted data from users or from the network.
-  - consume complex input data even if it's 'trusted'.
+  - consume complex data input or event if it's 'trusted'.
   - use an algorithm that has two or more implementations
     (to verify their equivalence).
   - look for existing fuzz target [examples](https://github.com/google/oss-fuzz/tree/master/projects)
     and find similarities.
 
-## Where can I store fuzz target sources and the build script if it's not yet accepted upstream?
-
-Fuzz target sources as well as the build script may temporarily live inside the
-`projects/<your_project>` directory in the OSS-Fuzz repository. Note that we do
-not accept integrations that rely on forked repositories. Refer to the
-[ideal integration guide] for the preferred long term solution.
-
 ## My project is not open source. Can I use OSS-Fuzz?
 
 You cannot use OSS-Fuzz, but you can use [ClusterFuzz] which OSS-Fuzz is based
@@ -61,6 +54,7 @@
 OSS-Fuzz is a production instance of ClusterFuzz, plus the code living in
 [OSS-Fuzz repository]: build scripts, `project.yaml` files with contacts, etc.
 
+[ClusterFuzz]: https://github.com/google/clusterfuzz
 [OSS-Fuzz repository]: https://github.com/google/oss-fuzz
 
 ## Why do you use a [different issue tracker](https://bugs.chromium.org/p/oss-fuzz/issues/list) for reporting bugs in OSS projects?
@@ -158,21 +152,7 @@
 possible. We believe that public code coverage reports do not put users at risk,
 as they do not indicate the presence of bugs or lack thereof.
 
-## Why is the coverage command complaining about format compatibility issues?
-
-This may happen if the Docker images fetched locally become out of sync. Make
-sure you run the following command to pull the most recent images:
-
-```bash
-$ python infra/helper.py pull_images
-```
-
-Please refer to
-[code coverage]({{ site.baseurl }}/advanced-topics/code-coverage/) for detailed
-information on code coverage generation.
-
 ## What happens when I rename a fuzz target ?
-
 If you rename your fuzz targets, the existing bugs for those targets will get
 closed and fuzzing will start from scratch from a fresh corpora
 (seed corpus only). Similar corpora will get accumulated over time depending on
@@ -183,33 +163,23 @@
 restore it to the new GCS location later (instruction to find the
 new location [here]({{ site.baseurl }}/advanced-topics/corpora/#viewing-the-corpus-for-a-fuzz-target)).
 
-## Does OSS-Fuzz support AFL or honggfuzz?
+## Does OSS-Fuzz support AFL?
+OSS-Fuzz *uses* [AFL](http://lcamtuf.coredump.cx/afl/) as one of its
+[fuzzing engines]({{ site.baseurl }}/reference/glossary/#fuzzing-engine) but this is an implementation
+detail. Just follow the
+[ideal integration guide]({{ site.baseurl }}/advanced-topics/ideal-integration/)
+and OSS-Fuzz will use all its fuzzing engines on your code.
 
-OSS-Fuzz *uses* the following
-[fuzzing engines]({{ site.baseurl }}/reference/glossary/#fuzzing-engine):
-
-1. [libFuzzer](https://llvm.org/docs/LibFuzzer.html).
-1. [AFL++](https://github.com/AFLplusplus/AFLplusplus), an improved and
-   well-maintained version of [AFL](https://lcamtuf.coredump.cx/afl/).
-1. [Honggfuzz](https://github.com/google/honggfuzz).
-
-Follow the [new project guide] and OSS-Fuzz will use all its fuzzing engines
-on your code.
+## Does OSS-Fuzz support Honggfuzz?
+OSS-Fuzz (the service) does not use honggfuzz to find bugs.
+That is because [ClusterFuzz](https://github.com/google/clusterfuzz)
+(the infrastructure OSS-Fuzz runs on) does not support honggfuzz. 
+However, OSS-Fuzz supports **building** fuzz targets for use with honggfuzz,
+similar to the way it supports [AFL](#does-oss-fuzz-support-afl). 
+Currently OSS-Fuzz builders do builds for libFuzzer, AFL, and honggfuzz.
 
 ## What are the specs on your machines?
-
 OSS-Fuzz builders have 32CPU/28.8GB RAM.
 
 Fuzzing machines only have a single core and fuzz targets should not use more
 than 2.5GB of RAM.
-
-## Are there any restrictions on using test cases / corpora generated by OSS-Fuzz?
-
-No, you can freely use (i.e. share, add to your repo, etc.) the test cases and
-corpora generated by OSS-Fuzz. OSS-Fuzz infrastructure is fully open source
-(including [ClusterFuzz], various fuzzing engines, and other dependencies). We
-have no intent to restrict the use of the artifacts produced by OSS-Fuzz.
-
-[ClusterFuzz]: https://github.com/google/clusterfuzz
-[new project guide]: {{ site.baseurl }}/getting-started/new-project-guide/
-[ideal integration guide]: {{ site.baseurl }}/getting-started/new-project-guide/
diff --git a/docs/further-reading/fuzzer_environment.md b/docs/further-reading/fuzzer_environment.md
index 7c527ec..233cb25 100644
--- a/docs/further-reading/fuzzer_environment.md
+++ b/docs/further-reading/fuzzer_environment.md
@@ -25,11 +25,11 @@
 [build.sh]({{ site.baseurl }}/getting-started/new-project-guide/#buildsh)
 are not available on the bot runtime environment (where the fuzz targets run).
 
-If you need these dependencies in the runtime environment, you can either:
+If you need these dependencies in the runtime environment, you can either
 - Install the packages via Dockerfile
 ([example](https://github.com/google/oss-fuzz/blob/2d5e2ef84f281e6ab789055aa735606d3122fda9/projects/tor/Dockerfile#L19))
 and then link statically against them
-([example](https://github.com/google/oss-fuzz/blob/2d5e2ef84f281e6ab789055aa735606d3122fda9/projects/tor/build.sh#L40)).
+([example](https://github.com/google/oss-fuzz/blob/2d5e2ef84f281e6ab789055aa735606d3122fda9/projects/tor/build.sh#L40))
 - Or build the dependencies statically in
 [build.sh]({{ site.baseurl }}/getting-started/new-project-guide/#buildsh)
 ([example](https://github.com/google/oss-fuzz/blob/64f8b6593da141b97c98c7bc6f07df92c42ee010/projects/ffmpeg/build.sh#L26)).
diff --git a/docs/getting-started/bug_disclosure_guidelines.md b/docs/getting-started/bug_disclosure_guidelines.md
index e5a76ef..f82a751 100644
--- a/docs/getting-started/bug_disclosure_guidelines.md
+++ b/docs/getting-started/bug_disclosure_guidelines.md
@@ -12,12 +12,12 @@
 OSS-Fuzz will adhere to following disclosure principles:
 
   - **Deadline**. After notifying project authors, we will open reported
-    issues to the public in 90 days, or after the fix is released (whichever
-    comes earlier).
+    issues to the public in 90 days, or 30 days after the fix is released
+    (whichever comes earlier).
   - **Weekends and holidays**. If a deadline is due to expire on a weekend,
     the deadline will be moved to the next normal work day.
   - **Grace period**. We have a 14-day grace period. If a 90-day deadline
     expires but the upstream engineers let us know before the deadline that a
     patch is scheduled for release on a specific day within 14 days following
     the deadline, the public disclosure will be delayed until the availability
-    of the patch.
+    of the patch.
\ No newline at end of file
diff --git a/docs/getting-started/continuous_integration.md b/docs/getting-started/continuous_integration.md
deleted file mode 100644
index 88e6e4b..0000000
--- a/docs/getting-started/continuous_integration.md
+++ /dev/null
@@ -1,234 +0,0 @@
----
-layout: default
-title: Continuous Integration
-parent: Getting started
-nav_order: 5
-permalink: /getting-started/continuous-integration/
----
-
-# Continuous Integration
-
-OSS-Fuzz offers **CIFuzz**, a GitHub action/CI job that runs your fuzz targets
-on pull requests. This works similarly to running unit tests in CI. CIFuzz helps
-you find and fix bugs before they make it into your codebase.
-Currently, CIFuzz only supports projects hosted on GitHub.
-
-## How it works
-
-CIFuzz builds your project's fuzzers from the source at a particular
-pull request or commit. Then CIFuzz runs the fuzzers for a short amount of time.
-If CIFuzz finds a crash, CIFuzz reports the stacktrace, makes the crashing
-input available for download and the CI test fails (red X).
-
-If CIFuzz doesn't find a crash during the allotted time, the CI test passes
-(green check). If CIFuzz finds a crash, it reports the crash only:
-* If the crash is reproducible (on the PR/commit build).
-* If the crash does not occur on older OSS-Fuzz builds. Because if it does occur
-  on older builds that means the crash was not introduced by the PR/commit
-  CIFuzz is testing.
-
-If your project supports [OSS-Fuzz's code coverage]({{ site.baseurl }}/advanced-topics/code-coverage),
-CIFuzz only runs the fuzzers affected by a pull request/commit.
-Otherwise it will divide up the allotted fuzzing time (10 minutes by default)
-among all fuzzers in the project.
-
-CIFuzz uses 30 day old/public regressions and corpora from OSS-Fuzz. This makes
-fuzzing more effective and gives you regression testing for free.
-
-## Requirements
-
-1. Your project must be integrated with OSS-Fuzz.
-1. Your project is hosted on GitHub.
-
-## Integrating into your repository
-
-You can integrate CIFuzz into your project using the following steps:
-1. Create a `.github` directory in the root of your project.
-1. Create a `workflows` directory inside of your `.github` directory.
-1. Copy the example [`main.yml`](https://github.com/google/oss-fuzz/blob/master/infra/cifuzz/example_main.yml)
-file over from the OSS-Fuzz repository to the `workflows` directory.
-1. Change the `oss-fuzz-project-name` value in `main.yml` from `example` to the name of your OSS-Fuzz project. It is **very important** that you use your OSS-Fuzz project name which is case sensitive. This name
-is the name of your project's subdirectory in the [`projects`](https://github.com/google/oss-fuzz/tree/master/projects) directory of OSS-Fuzz.
-1. Set the value of `fuzz-seconds`. The longest time that the project maintainers are acceptable with should be used. This value should be at minimum 600 seconds and scale with project size.
-
-Your directory structure should look like the following:
-```
-project
-|___ .github
-|    |____ workflows
-|          |____ main.yml
-|___ other-files
-```
-
-main.yml for an example project:
-
-```yaml
-name: CIFuzz
-on: [pull_request]
-jobs:
- Fuzzing:
-   runs-on: ubuntu-latest
-   steps:
-   - name: Build Fuzzers
-     id: build
-     uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
-     with:
-       oss-fuzz-project-name: 'example'
-       language: c++
-   - name: Run Fuzzers
-     uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
-     with:
-       oss-fuzz-project-name: 'example'
-       language: c++
-       fuzz-seconds: 600
-   - name: Upload Crash
-     uses: actions/upload-artifact@v1
-     if: failure() && steps.build.outcome == 'success'
-     with:
-       name: artifacts
-       path: ./out/artifacts
-```
-
-
-### Optional configuration
-
-#### Configurable Variables
-
-`language`: (optional) The language your target program is written in. Defaults
-to `c++`. This should be the same as the value you set in `project.yaml`. See
-[this explanation]({{ site.baseurl }}//getting-started/new-project-guide/#language)
-for more details.
-
-`fuzz-time`: Determines how long CIFuzz spends fuzzing your project in seconds.
-The default is 600 seconds. The GitHub Actions max run time is 21600 seconds (6
-hours). This variable is only meaningful when supplied to the `run_fuzzers`
-action, not the `build_fuzzers` action.
-
-`dry-run`: Determines if CIFuzz surfaces errors. The default value is `false`. When set to `true`,
-CIFuzz will never report a failure even if it finds a crash in your project.
-This requires the user to manually check the logs for detected bugs. If dry run mode is desired,
-make sure to set the dry-run parameters in both the `Build Fuzzers` and `Run Fuzzers` action step.
-
-`allowed-broken-targets-percentage`: Can be set if you want to set a stricter
-limit for broken fuzz targets than OSS-Fuzz's check_build. Most users should
-not set this. This value is only meaningful when supplied to the `run_fuzzers`
-action, not the `build_fuzzers` action.
-
-`sanitizer`: Determines a sanitizer to build and run fuzz targets with. The choices are `'address'`,
-`'memory'` and `'undefined'`. The default is `'address'`. It is important to note that the `Build Fuzzers`
-and the `Run Fuzzers` sanitizer field needs to be the same. To specify a list of sanitizers
-a [matrix](https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix)
-can be used. To use a sanitizer add it to the list of sanitizers in the matrix field below:
-
-```yaml
-{% raw %}
-name: CIFuzz
-on: [pull_request]
-jobs:
- Fuzzing:
-   runs-on: ubuntu-latest
-   strategy:
-     fail-fast: false
-     matrix:
-       sanitizer: [address, undefined, memory]
-   steps:
-   - name: Build Fuzzers (${{ matrix.sanitizer }})
-     id: build
-     uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
-     with:
-       oss-fuzz-project-name: 'example'
-       language: c++
-       sanitizer: ${{ matrix.sanitizer }}
-   - name: Run Fuzzers (${{ matrix.sanitizer }})
-     uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
-     with:
-       oss-fuzz-project-name: 'example'
-       language: c++
-       fuzz-seconds: 600
-       sanitizer: ${{ matrix.sanitizer }}
-   - name: Upload Crash
-     uses: actions/upload-artifact@v1
-     if: failure() && steps.build.outcome == 'success'
-     with:
-       name: ${{ matrix.sanitizer }}-artifacts
-       path: ./out/artifacts
-{% endraw %}
-```
-
-#### Branches and paths
-
-You can make CIFuzz trigger only on certain branches or paths by following the
-instructions [here](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions).
-For example, the following code can used to trigger CIFuzz only on changes to
-C/C++ code residing on master and release branches:
-
-```yaml
-name: CIFuzz
-on:
-  pull_request:
-    branches:
-      - master
-      - 'releases/**'
-    paths:
-      - '**.c'
-      - '**.cc'
-      - '**.cpp'
-      - '**.cxx'
-      - '**.h'
-jobs:
- Fuzzing:
-   runs-on: ubuntu-latest
-   steps:
-   - name: Build Fuzzers
-     id: build
-     uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
-     with:
-       oss-fuzz-project-name: 'example'
-       language: c++
-   - name: Run Fuzzers
-     uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
-     with:
-       oss-fuzz-project-name: 'example'
-       language: c++
-       fuzz-seconds: 600
-   - name: Upload Crash
-     uses: actions/upload-artifact@v1
-     if: failure() && steps.build.outcome == 'success'
-     with:
-       name: artifacts
-       path: ./out/artifacts
-```
-
-You can checkout CIFuzz configs for OSS-Fuzz projects. Example -
-[systemd](https://github.com/systemd/systemd/blob/master/.github/workflows/cifuzz.yml),
-[curl](https://github.com/curl/curl/blob/master/.github/workflows/fuzz.yml).
-
-## Understanding results
-
-The results of CIFuzz can be found in two different places.
-
-* Run fuzzers log:
-    1. This log can be accessed in the `actions` tab of a CIFuzz integrated repo.
-    1. Click on the `CIFuzz` button in the workflow selector on the left hand side.
-    1. Click on the event triggered by your desired pull request.
-    1. Click the `Fuzzing` workflow.
-    1. Select the `Run Fuzzer` drop down. It should show the timestamps and results
-    from each of the fuzz targets.
-
-![Finding fuzzer output](../images/run_fuzzers.png)
-
-
-*  Artifacts:
-    1. When a crash is found by CIFuzz the Upload Artifact event is triggered.
-    1. This will cause a pop up in the right hand corner, allowing
-    you to download a zip file called `artifacts`.
-    1. `artifacts` contains two files for each crash:
-        * A test case that can be used to reproduce the crash.
-        * The sanitizer stack trace of the crash.
-
-![Finding uploaded artifacts](../images/artifacts.png)
-
-
-## Feedback/Questions/Issues
-
-Create an issue in [OSS-Fuzz](https://github.com/google/oss-fuzz/issues/new) if you have questions or any other feedback on CIFuzz.
diff --git a/docs/getting-started/integration_rewards.md b/docs/getting-started/integration_rewards.md
index c257f01..51b2a8f 100644
--- a/docs/getting-started/integration_rewards.md
+++ b/docs/getting-started/integration_rewards.md
@@ -8,22 +8,6 @@
 
 # Integration rewards
 
-We encourage you to apply for integration rewards (up to **$20,000**) once your project
-is successfully integrated with OSS-Fuzz. Please see the details in our blog post
+We encourage you to apply for integration rewards (upto **$20,000**) once your project is
+successfully integrated with OSS-Fuzz. Please see the details in our blog post
 [here](https://opensource.googleblog.com/2017/05/oss-fuzz-five-months-later-and.html).
-
-Rewards are based on the quality of integration with OSS-Fuzz, which is evaluated using
-the following criteria:
-* Upstream integration of the fuzz targets and build support.
-* Performance of the fuzz targets and code coverage achieved with fuzzing.
-* Regression testing in the upstream repository using fuzz targets and OSS-Fuzz corpora.
-  Enabling [CIFuzz](https://google.github.io/oss-fuzz/getting-started/continuous-integration/)
-  is the easiest way to address this.
-* Discretion bonus to recognize outstanding work.
-
-For each of the points above, the OSS-Fuzz rewards panel first sets up a cap of up to $5,000.
-Then, the panel decides the actual reward amount (ranging from $0 up to the cap) for each
-criteria, depending on how well the criteria is satisfied.
-
-The highest cap values ($5,000) are awarded only to projects of a critical importance for the
-global infrastructure and/or widely used products, devices, or services.
diff --git a/docs/getting-started/new-project-guide/bazel.md b/docs/getting-started/new-project-guide/bazel.md
deleted file mode 100644
index 45b942f..0000000
--- a/docs/getting-started/new-project-guide/bazel.md
+++ /dev/null
@@ -1,97 +0,0 @@
----
-layout: default
-title: Integrating a Bazel project
-parent: Setting up a new project
-grand_parent: Getting started
-nav_order: 5
-permalink: /getting-started/new-project-guide/bazel/
----
-
-# Integrating a Bazel project
-{: .no_toc}
-
-- TOC
-{:toc}
----
-
-## Bazel projects
-
-The process of integrating a project using the [Bazel](https://bazel.build/)
-build system with OSS-Fuzz is very similar to the general
-[Setting up a new project]({{ site.baseurl }}/getting-started/new-project-guide/)
-process. The key specifics of integrating a Bazel project are outlined below.
-
-## Fuzzing support in Bazel
-
-For Bazel-based projects, we recommend using the
-[`rules_fuzzing`](https://github.com/bazelbuild/rules_fuzzing) extension library
-for defining fuzz tests. `rules_fuzzing` provides support for building and running
-fuzz tests under
-[multiple sanitizer and fuzzing engine configurations][rules-fuzzing-usage].
-It also supports specifying corpora and dictionaires as part of the fuzz test
-definition.
-
-The fuzzing rules provide out-of-the-box support for building and packaging fuzz
-test artifacts in the OSS-Fuzz format. Each `//path/to:fuzz_test` fuzz test
-target automatically has a `//path/to:fuzz_test_oss_fuzz` packaging target that
-(a) builds the fuzz test using the instrumentation and engine library specified
-in the OSS-Fuzz environment variables, and (b) generates an archive containing
-the binary and its associated artifacts (corpus, dictionary, etc.). Moreover,
-OSS-Fuzz provides a standard tool to automatically process these targets,
-substantially simplifying the `build.sh` script (see below).
-
-[rules-fuzzing-usage]: https://github.com/bazelbuild/rules_fuzzing#using-the-rules-in-your-project
-
-## Project files
-
-This section explains how to integrate the fuzz tests written using the
-`rules_fuzzing` library with OSS-Fuzz. You can also see a complete example in the
-[`bazel-rules-fuzzing-test`](https://github.com/google/oss-fuzz/tree/master/projects/bazel-rules-fuzzing-test)
-project.
-
-The structure of the project directory in the OSS-Fuzz repository does not
-differ for Bazel-based projects. The project files have the following specific
-aspects.
-
-### project.yaml
-
-Only C++ projects are currently supported.
-
-Since the OSS-Fuzz target builds the fuzz test using the instrumentation and
-engine specified in the OSS-Fuzz environment variables, all the engine and
-sanitizer configurations supported in the `project.yaml` file are automatically
-supported by the fuzzing rules.
-
-### Dockerfile
-
-There is no need to install Bazel in your Docker image. The OSS-Fuzz builder
-image provides the `bazel` executable through the
-[Bazelisk](https://github.com/bazelbuild/bazelisk) launcher, which will fetch
-and use the latest Bazel release. If your project requires a particular Bazel
-version, create a
-[`.bazelversion`](https://docs.bazel.build/versions/master/updating-bazel.html)
-file in your repository root with the desired version string.
-
-### build.sh
-
-Your `build.sh` script essentially needs to perform three steps: (1) selecting
-which fuzz tests to build, (2) building their OSS-Fuzz package targets in the
-right configuration, and (3) copying the build artifacts to the `${OUT}/`
-destination.
-
-OSS-Fuzz provides a
-[`bazel_build_fuzz_tests`](https://github.com/google/oss-fuzz/blob/master/infra/base-images/base-builder/bazel_build_fuzz_tests)
-tool that implements these steps in a standard way, so in most cases your
-build script only needs to invoke this command with no arguments.
-
-If necessary, the behavior of the tool can be customized though a set of
-environment variables. The most common are:
-
-* `BAZEL_EXTRA_BUILD_FLAGS` are extra build flags passed on the Bazel command
-   line.
-* `BAZEL_FUZZ_TEST_TAG` and `BAZEL_FUZZ_TEST_EXCLUDE_TAG` can be overriden to
-  specify which target tags to use when determining what fuzz tests to include.
-  By default, the tool selects all the fuzz tests except for those tagged as
-  `"no-oss-fuzz"`.
-* `BAZEL_FUZZ_TEST_QUERY` overrides the Bazel query the tool uses to identify
-  the fuzz tests to build, if the tag-based approach is not sufficient.
diff --git a/docs/getting-started/new-project-guide/go_lang.md b/docs/getting-started/new-project-guide/go_lang.md
index 600a666..939bae7 100644
--- a/docs/getting-started/new-project-guide/go_lang.md
+++ b/docs/getting-started/new-project-guide/go_lang.md
@@ -22,18 +22,13 @@
 ## Go-fuzz support
 
 OSS-Fuzz supports **go-fuzz** in the
-[libFuzzer compatible mode](https://github.com/mdempsky/go114-fuzz-build)
+[libFuzzer compatible mode](https://github.com/dvyukov/go-fuzz#libfuzzer-support)
 only. In that mode, fuzz targets for Go use the libFuzzer engine with native Go
 coverage instrumentation. Binaries compiled in this mode provide the same
 libFuzzer command line interface as non-Go fuzz targets.
 
 ## Project files
 
-First, you need to write a Go fuzz target that accepts a stream of bytes and
-calls the program API with that. This fuzz target should reside in your project
-repository
-([example](https://github.com/golang/go/blob/4ad13555184eb0697c2e92c64c1b0bdb287ccc10/src/html/fuzz.go#L13)).
-
 The structure of the project directory in OSS-Fuzz repository doesn't differ for
 projects written in Go. The project files have the following Go specific
 aspects.
@@ -60,34 +55,35 @@
 ### Dockerfile
 
 The OSS-Fuzz builder image has the latest stable release of Golang installed. In
-order to install dependencies of your project, add `RUN git clone ...` command to
+order to install dependencies of your project, add `RUN go get ...` command to
 your Dockerfile.
 [Example](https://github.com/google/oss-fuzz/blob/356f2b947670b7eb33a1f535c71bc5c87a60b0d1/projects/syzkaller/Dockerfile#L23):
 
 ```dockerfile
 # Dependency for one of the fuzz targets.
-RUN git clone --depth 1 https://github.com/ianlancetaylor/demangle
+RUN go get github.com/ianlancetaylor/demangle
 ```
 
-go-fuzz will then automatically download the dependencies based on the go.mod file
-
 ### build.sh
 
-In order to build a Go fuzz target, you need to call `go-fuzz`
+In order to build a Go fuzz target, you need to call `go-fuzz-build -libfuzzer`
 command first, and then link the resulting `.a` file against
 `$LIB_FUZZING_ENGINE` using the `$CXX $CXXFLAGS ...` command.
-
-The best way to do this is by using a `compile_go_fuzzer` script,
-as it also supports coverage builds.
-
-A usage example from go-dns project is
+[Example](https://github.com/google/oss-fuzz/blob/356f2b947670b7eb33a1f535c71bc5c87a60b0d1/projects/syzkaller/build.sh#L19):
 
 ```sh
-compile_go_fuzzer github.com/miekg/dns FuzzNewRR fuzz_newrr fuzz
-```
+function compile_fuzzer {
+  path=$1
+  function=$2
+  fuzzer=$3
 
-Arguments are :
-* path of the package with the fuzz target
-* name of the fuzz function
-* name of the fuzzer to be built
-* optional tag to be used by `go build` and such
+   # Instrument all Go files relevant to this fuzzer
+  go-fuzz-build -libfuzzer -func $function -o $fuzzer.a $path 
+
+   # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary
+  $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o $OUT/$fuzzer
+}
+
+compile_fuzzer ./pkg/compiler Fuzz compiler_fuzzer
+compile_fuzzer ./prog/test FuzzDeserialize prog_deserialize_fuzzer
+```
diff --git a/docs/getting-started/new-project-guide/jvm_lang.md b/docs/getting-started/new-project-guide/jvm_lang.md
deleted file mode 100644
index 19e4ecb..0000000
--- a/docs/getting-started/new-project-guide/jvm_lang.md
+++ /dev/null
@@ -1,173 +0,0 @@
----
-layout: default
-title: Integrating a Java/JVM project
-parent: Setting up a new project
-grand_parent: Getting started
-nav_order: 4
-permalink: /getting-started/new-project-guide/jvm-lang/
----
-
-# Integrating a Java/JVM project
-{: .no_toc}
-
-- TOC
-{:toc}
----
-
-The process of integrating a project written in Java or any other language
-running on the Java Virtual Machine (JVM) with OSS-Fuzz is very similar to the
-general
-[Setting up a new project]({{ site.baseurl }}/getting-started/new-project-guide/)
-process. The key specifics of integrating a JVM project are outlined below.
-
-## Jazzer
-
-Java fuzzing in OSS-Fuzz depends on
-[Jazzer](https://github.com/CodeIntelligenceTesting/jazzer), which is
-pre-installed on the OSS-Fuzz base docker images. As Jazzer operates directly
-on the bytecode level, it can be applied to any project written in a JVM-based
-language. More information on how Jazzer fuzz targets look like can be found in
-its
-[README's Usage section](https://github.com/CodeIntelligenceTesting/jazzer#usage).
-
-## Project files
-
-### Example project
-
-We recommend viewing
-[json-sanitizer](https://github.com/google/oss-fuzz/tree/master/projects/json-sanitizer)
-as an example of a simple Java-only fuzzing project. Additional examples,
-including one for a Java project with native dependencies, are part of the
-[java-example](https://github.com/google/oss-fuzz/tree/master/projects/java-example)
-project.
-
-### project.yaml
-
-The `language` attribute must be specified as follows:
-
-```yaml
-language: jvm
-```
-
-The only supported fuzzing engine is libFuzzer (`libfuzzer`). So far the only
-supported sanitizer is AddressSanitizer (`address`), which needs to be
-specified explicitly even for pure Java projects.
-
-```yaml
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-```
-
-### Dockerfile
-
-The OSS-Fuzz base Docker images already come with OpenJDK 15 pre-installed. If
-you need Maven to build your project, you can install it by adding the following
-line to your Dockerfile:
-
-```docker
-RUN apt-get update && apt-get install -y maven
-```
-
-Apart from this, you should usually not need to do more than to clone the
-project, set a `WORKDIR`, and copy any necessary files, or install any
-project-specific dependencies here as you normally would.
-
-### Fuzzers
-
-In the simplest case, every fuzzer consists of a single Java file with a
-filename matching `*Fuzzer.java` and no `package` directive. An example fuzz
-target could thus be a file `ExampleFuzzer.java` with contents:
-
-```java
-public class ExampleFuzzer {
-    public static void fuzzerTestOneInput(byte[] input) {
-        ...
-        // Call a function of the project under test with arguments derived from
-        // input and throw an exception if something unwanted happens.
-        ...
-    }
-}
-```
-
-### build.sh
-
-For JVM projects, `build.sh` does need some more significant modifications
-over C/C++ projects. Below is an annotated example build script for a
-Java-only project with single-file fuzz targets as described above:
-
-```sh
-# Step 1: Build the project
-
-# Build the project .jar as usual, e.g. using Maven.
-mvn package
-# In this example, the project is built with Maven, which typically includes the
-# project version into the name of the packaged .jar file. The version can be
-# obtained as follows:
-CURRENT_VERSION=$(mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate \
--Dexpression=project.version -q -DforceStdout)
-# Copy the project .jar into $OUT under a fixed name.
-cp "target/sample-project-$CURRENT_VERSION.jar" $OUT/sample-project.jar
-
-# Specify the projects .jar file(s), separated by spaces if there are multiple.
-PROJECT_JARS="sample-project.jar"
-
-# Step 2: Build the fuzzers (should not require any changes)
-
-# The classpath at build-time includes the project jars in $OUT as well as the
-# Jazzer API.
-BUILD_CLASSPATH=$(echo $PROJECT_JARS | xargs printf -- "$OUT/%s:"):$JAZZER_API_PATH
-
-# All .jar and .class files lie in the same directory as the fuzzer at runtime.
-RUNTIME_CLASSPATH=$(echo $PROJECT_JARS | xargs printf -- "\$this_dir/%s:"):\$this_dir
-
-for fuzzer in $(find $SRC -name '*Fuzzer.java'); do
-  fuzzer_basename=$(basename -s .java $fuzzer)
-  javac -cp $BUILD_CLASSPATH $fuzzer
-  cp $SRC/$fuzzer_basename.class $OUT/
-
-  # Create an execution wrapper that executes Jazzer with the correct arguments.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_LIBRARY_PATH=\"$JVM_LD_LIBRARY_PATH\":\$this_dir \
-\$this_dir/jazzer_driver --agent_path=\$this_dir/jazzer_agent_deploy.jar \
---cp=$RUNTIME_CLASSPATH \
---target_class=$fuzzer_basename \
---jvm_args=\"-Xmx2048m\" \
-\$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
-```
-
-## FuzzedDataProvider
-
-Jazzer provides a `FuzzedDataProvider` that can simplify the task of creating a
-fuzz target by translating the raw input bytes received from the fuzzer into
-useful primitive Java types. Its functionality is similar to
-`FuzzedDataProviders` available in other languages, such as
-[Python](https://github.com/google/atheris#fuzzeddataprovider) and
-[C++](https://github.com/google/fuzzing/blob/master/docs/split-inputs.md).
-
-On OSS-Fuzz, the required library is available in the base docker images under
-the path `$JAZZER_API_PATH`, which is added to the classpath by the example
-build script shown above. Locally, the library can be obtained from
-[Maven Central](https://search.maven.org/search?q=g:com.code-intelligence%20a:jazzer-api).
-
-A fuzz target using the `FuzzedDataProvider` would look as follows:
-
-```java
-import com.code_intelligence.jazzer.api.FuzzedDataProvider;
-
-public class ExampleFuzzer {
-    public static void fuzzerTestOneInput(FuzzedDataProvider data) {
-        int number = data.consumeInt();
-        String string = data.consumeRemainingAsString();
-        // ...
-    }
-}
-```
-
-For a list of convenience methods offered by `FuzzedDataProvider`, consult its
-[javadocs](https://codeintelligencetesting.github.io/jazzer-api/com/code_intelligence/jazzer/api/FuzzedDataProvider.html).
diff --git a/docs/getting-started/new-project-guide/python_lang.md b/docs/getting-started/new-project-guide/python_lang.md
deleted file mode 100644
index da14780..0000000
--- a/docs/getting-started/new-project-guide/python_lang.md
+++ /dev/null
@@ -1,135 +0,0 @@
----
-layout: default
-title: Integrating a Python project
-parent: Setting up a new project
-grand_parent: Getting started
-nav_order: 3
-permalink: /getting-started/new-project-guide/python-lang/
----
-
-# Integrating a Python project
-{: .no_toc}
-
-- TOC
-{:toc}
----
-
-
-The process of integrating a project written in Python with OSS-Fuzz is very
-similar to the general
-[Setting up a new project]({{ site.baseurl }}/getting-started/new-project-guide/)
-process. The key specifics of integrating a Python project are outlined below.
-
-## Atheris
-
-Python fuzzing in OSS-Fuzz depends on
-[Atheris](https://github.com/google/atheris). Fuzzers will depend on the
-`atheris` package, and dependencies are pre-installed on the OSS-Fuzz base
-docker images.
-
-## Project files
-
-### Example project
-
-We recommend viewing [ujson](https://github.com/google/oss-fuzz/tree/master/projects/ujson) as an
-example of a simple Python fuzzing project, with both plain-Atheris and
-Atheris + Hypothesis harnesses.
-
-### project.yaml
-
-The `language` attribute must be specified.
-
-```yaml
-language: python
-```
-
-The only supported fuzzing engine is libFuzzer (`libfuzzer`). The supported
-sanitizers are AddressSanitizer (`address`) and
-UndefinedBehaviorSanitizer (`undefined`). These must be explicitly specified.
-
-```yaml
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
-```
-
-### Dockerfile
-
-Because most dependencies are already pre-installed on the images, no
-significant changes are needed in the Dockerfile for Python fuzzing projects.
-You should simply clone the project, set a `WORKDIR`, and copy any necessary
-files, or install any project-specific dependencies here as you normally would.
-
-### build.sh
-
-For Python projects, `build.sh` does need some more significant modifications
-over normal projects. The following is an annotated example build script,
-explaining why each step is necessary and when they can be omitted.
-
-```sh
-# Build and install project (using current CFLAGS, CXXFLAGS). This is required
-# for projects with C extensions so that they're built with the proper flags.
-pip3 install .
-
-# Build fuzzers into $OUT. These could be detected in other ways.
-for fuzzer in $(find $SRC -name '*_fuzzer.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-
-  # To avoid issues with Python version conflicts, or changes in environment
-  # over time on the OSS-Fuzz bots, we use pyinstaller to create a standalone
-  # package. Though not necessarily required for reproducing issues, this is
-  # required to keep fuzzers working properly in OSS-Fuzz.
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper. Atheris requires that certain libraries are
-  # preloaded, so this is also done here to ensure compatibility and simplify
-  # test case reproduction. Since this helper script is what OSS-Fuzz will
-  # actually execute, it is also always required.
-  # NOTE: If you are fuzzing python-only code and do not have native C/C++
-  # extensions, then remove the LD_PRELOAD line below as preloading sanitizer
-  # library is not required and can lead to unexpected startup crashes.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_PRELOAD=\$this_dir/sanitizer_with_fuzzer.so \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
-```
-
-## Hypothesis
-
-Using [Hypothesis](https://hypothesis.readthedocs.io/), the Python library for
-[property-based testing](https://hypothesis.works/articles/what-is-property-based-testing/),
-makes it really easy to generate complex inputs - whether in traditional test suites
-or [by using test functions as fuzz harnesses](https://hypothesis.readthedocs.io/en/latest/details.html#use-with-external-fuzzers).
-
-> Property based testing is the construction of tests such that, when these tests are fuzzed,
-  failures in the test reveal problems with the system under test that could not have been
-  revealed by direct fuzzing of that system.
-
-We recommend using the [`hypothesis write`](https://hypothesis.readthedocs.io/en/latest/ghostwriter.html)
-command to generate a starter fuzz harness.  This "ghostwritten" code may be usable as-is,
-or provide a useful template for writing more specific tests.
-
-See [here for the core "strategies"](https://hypothesis.readthedocs.io/en/latest/data.html),
-for arbitrary data, [here for Numpy + Pandas support](https://hypothesis.readthedocs.io/en/latest/numpy.html),
-or [here for a variety of third-party extensions](https://hypothesis.readthedocs.io/en/latest/strategies.html)
-supporting everything from protobufs, to jsonschemas, to networkx graphs or geojson
-or valid Python source code.
-Hypothesis' integrated test-case reduction also makes it trivial to report a canonical minimal
-example for each distinct failure discovered while fuzzing - just run the test function!
-
-To use Hypothesis in OSS-Fuzz, install it in your Dockerfile with
-
-```shell
-RUN pip3 install hypothesis
-```
-
-See [the `ujson` structured fuzzer](https://github.com/google/oss-fuzz/blob/master/projects/ujson/hypothesis_structured_fuzzer.py)
-for an example "polyglot" which can either be run with `pytest` as a standard test function,
-or run with OSS-Fuzz as a fuzz harness.
diff --git a/docs/getting-started/new-project-guide/rust_lang.md b/docs/getting-started/new-project-guide/rust_lang.md
deleted file mode 100644
index c28dd76..0000000
--- a/docs/getting-started/new-project-guide/rust_lang.md
+++ /dev/null
@@ -1,102 +0,0 @@
----
-layout: default
-title: Integrating a Rust project
-parent: Setting up a new project
-grand_parent: Getting started
-nav_order: 2
-permalink: /getting-started/new-project-guide/rust-lang/
----
-
-# Integrating a Rust project
-{: .no_toc}
-
-- TOC
-{:toc}
----
-
-The process of integrating a project written in Rust with OSS-Fuzz is very
-similar to the general [Setting up a new project]({{ site.baseurl
-}}/getting-started/new-project-guide/) process. The key specifics of integrating
-a Rust project are outlined below.
-
-## cargo-fuzz support
-
-Rust integration with OSS-Fuzz is expected to use [`cargo
-fuzz`](https://github.com/rust-fuzz/cargo-fuzz) to build fuzzers. The `cargo
-fuzz` tool will build code with required compiler flags as well as link to the
-correct libFuzzer on OSS-Fuzz itself. Note that using `cargo fuzz` also makes it
-quite easy to run the fuzzers locally yourself if you get a failing test case!
-
-## Project files
-
-First you'll want to follow the [setup instructions for `cargo fuzz`
-itself](https://rust-fuzz.github.io/book/). Afterwards your project should have:
-
-* A top-level `fuzz` directory.
-* A `fuzz/Cargo.toml` manifest which pulls in necessary dependencies to fuzz.
-* Some `fuzz/fuzz_targets/*.rs` files which are the fuzz targets that will be
-  compiled and run on OSS-Fuzz.
-
-Note that you can customize this layout as well, but you'll need to edit some
-the scripts below to integrate into OSS-Fuzz.
-
-### project.yaml
-
-The `language` attribute must be specified.
-
-```yaml
-language: rust
-```
-
-The only supported fuzzing engine and sanitizer are `libfuzzer` and `address`,
-respectively.
-[Example](https://github.com/google/oss-fuzz/blob/12ef3654b3e9adfd20b5a6afdde54819ba71493d/projects/serde_json/project.yaml#L3-L6)
-
-```yaml
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-```
-
-### Dockerfile
-
-The OSS-Fuzz builder image has the latest nightly release of Rust as well as
-`cargo fuzz` pre-installed and in `PATH`. In the `Dockerfile` for your project
-all you'll need to do is fetch the latest copy of your code and install any
-system dependencies necessary to build your project.
-[Example](https://github.com/google/oss-fuzz/blob/12ef3654b3e9adfd20b5a6afdde54819ba71493d/projects/serde_json/Dockerfile#L18-L20)
-
-```dockerfile
-RUN git clone --depth 1 https://github.com/serde-rs/json json
-```
-
-### build.sh
-
-Here it's expected that you'll build the fuzz targets for your project and then
-copy the final binaries into the output directory.
-[Example](https://github.com/google/oss-fuzz/blob/12ef3654b3e9adfd20b5a6afdde54819ba71493d/projects/serde_json/build.sh#L20):
-
-```sh
-cd $SRC/json
-cargo fuzz build -O
-cp fuzz/target/x86_64-unknown-linux-gnu/release/from_slice $OUT/
-```
-
-Note that you likely want to pass the `-O` flag to `cargo fuzz build` which
-builds fuzzers in release mode. You may also want to pass the
-`--debug-assertions` flag to enable more checks while fuzzing. In this example
-the `from_slice` binary is the fuzz target.
-
-With some bash-fu you can also automatically copy over all fuzz targets into
-the output directory so when you add a fuzz target to your project it's
-automatically integrated into OSS-Fuzz:
-
-```sh
-FUZZ_TARGET_OUTPUT_DIR=target/x86_64-unknown-linux-gnu/release
-for f in fuzz/fuzz_targets/*.rs
-do
-    FUZZ_TARGET_NAME=$(basename ${f%.*})
-    cp $FUZZ_TARGET_OUTPUT_DIR/$FUZZ_TARGET_NAME $OUT/
-done
-```
diff --git a/docs/getting-started/new_project_guide.md b/docs/getting-started/new_project_guide.md
index d2a7d80..8018c60 100644
--- a/docs/getting-started/new_project_guide.md
+++ b/docs/getting-started/new_project_guide.md
@@ -39,9 +39,6 @@
   [docker-cleanup](https://gist.github.com/mikea/d23a839cba68778d94e0302e8a2c200f)
   periodically to garbage-collect unused images.
 
-- (optional) [Install gsutil](https://cloud.google.com/storage/docs/gsutil_install) for local code coverage testing.
-  For Google internal (gLinux) machines, please refer [here](https://cloud.google.com/storage/docs/gsutil_install#deb) instead.
-
 ## Creating the file structure
 
 Each OSS-Fuzz project has a subdirectory
@@ -75,37 +72,20 @@
 This configuration file stores project metadata. The following attributes are supported:
 
 - [homepage](#homepage)
-- [language](#language)
 - [primary_contact](#primary)
-- [auto_ccs](#auto_ccs)
-- [main_repo](#main_repo)
+- [auto_ccs](#primary)
 - [vendor_ccs](#vendor) (optional)
 - [sanitizers](#sanitizers) (optional)
 - [architectures](#architectures) (optional)
 - [help_url](#help_url) (optional)
-- [builds_per_day](#build_frequency) (optional)
 
 ### homepage
 You project's homepage.
 
-### language
-
-Programming language the project is written in. Values you can specify include:
-
-* `c`
-* `c++`
-* [`go`]({{ site.baseurl }}//getting-started/new-project-guide/go-lang/)
-* [`rust`]({{ site.baseurl }}//getting-started/new-project-guide/rust-lang/)
-* [`python`]({{ site.baseurl }}//getting-started/new-project-guide/python-lang/)
-* [`jvm` (Java, Kotlin, Scala and other JVM-based languages)]({{ site.baseurl }}//getting-started/new-project-guide/jvm-lang/)
-
 ### primary_contact, auto_ccs {#primary}
 The primary contact and list of other contacts to be CCed. Each person listed gets access to ClusterFuzz, including crash reports and fuzzer statistics, and are auto-cced on new bugs filed in the OSS-Fuzz
 tracker. If you're a primary or a CC, you'll need to use a [Google account](https://support.google.com/accounts/answer/176347?hl=en) to get full access. ([why?]({{ site.baseurl }}/faq/#why-do-you-require-a-google-account-for-authentication)).
 
-### main_repo {#main_repo}
-Path to source code repository hosting the code, e.g. `https://path/to/main/repo.git`. 
-
 ### vendor_ccs (optional) {#vendor}
 The list of vendor email addresses that are downstream consumers of the project and want access to
 the bug reports as they are filed.
@@ -123,11 +103,11 @@
 and recommended, but is not enabled by default due to the likelihood of false positives from
 un-instrumented system dependencies. If you want to use "memory," first make sure your project's
 runtime dependencies are listed in the OSS-Fuzz
-[msan-libs-builder Dockerfile](https://github.com/google/oss-fuzz/blob/master/infra/base-images/msan-libs-builder/Dockerfile#L20).
+[msan-builder Dockerfile](https://github.com/google/oss-fuzz/blob/master/infra/base-images/msan-builder/Dockerfile#L20).
 Then, you can opt in by adding "memory" to your list of sanitizers.
 
 If your project does not build with a particular sanitizer configuration and you need some time to fix
-it, you can use `sanitizers` to override the defaults temporarily. For example, to disable the
+it, you can use `sanitizers` to override the defaults temporarily. For example, to disable the 
 UndefinedBehaviourSanitizer build, just specify all supported sanitizers except "undefined".
 
 If you want to test a particular sanitizer to see what crashes it generates without filing
@@ -149,15 +129,14 @@
 ### architectures (optional) {#architectures}
 The list of architectures to fuzz on.
 ClusterFuzz supports fuzzing on x86_64 (aka x64) by default.
-Some projects can benefit from i386 fuzzing. OSS-Fuzz will build and run
-AddressSanitizer with libFuzzer on i386 by doing the following:
+However you can also fuzz using AddressSanitizer and libFuzzer on i386 (aka x86, or 32 bit) by specifying "x86_64" and "i386" in "architectures" like this:
 
 ```yaml
 architectures:
  - x86_64
  - i386
  ```
-
+ 
 By fuzzing on i386 you might find bugs that:
 * Only occur in architecture-specific source code (e.g. code that contains i386 assembly).
 * Exist in architecture-independent source code and which only affects i386 users.
@@ -177,23 +156,15 @@
 
 `help_url` example: [skia](https://github.com/google/oss-fuzz/blob/master/projects/skia/project.yaml).
 
-### builds_per_day (optional) {#build_frequency}
-The number of times the project should be built per day.
-OSS-Fuzz allows upto 4 builds per day, and builds once per day by default.
-Example:
-```yaml
-builds_per_day: 2
-```
-
-Will build the project twice per day.
-
 ## Dockerfile
 
 This configuration file defines the Docker image for your project. Your [build.sh](#build.sh) script will be executed in inside the container you define.
 For most projects, the image is simple:
 ```docker
 FROM gcr.io/oss-fuzz-base/base-builder       # base image with clang toolchain
+MAINTAINER YOUR_EMAIL                        # maintainer for this file
 RUN apt-get update && apt-get install -y ... # install required packages to build your project
+RUN go get ...                               # install dependencies to build your Go project
 RUN git clone <git_url> <checkout_dir>       # checkout all sources needed to build your project
 WORKDIR <checkout_dir>                       # current directory for the build script
 COPY build.sh fuzzer.cc $SRC/                # copy build script and other fuzzer files in src dir
@@ -215,7 +186,7 @@
 - Build the project using your build system with the correct compiler.
 - Provide compiler flags as [environment variables](#Requirements).
 - Build your [fuzz targets]({{ site.baseurl }}/reference/glossary/#fuzz-target) and link your project's build with libFuzzer.
-
+   
 Resulting binaries should be placed in `$OUT`.
 
 Here's an example from Expat ([source](https://github.com/google/oss-fuzz/blob/master/projects/expat/build.sh)):
@@ -239,37 +210,13 @@
 
 If your project is written in Go, check out the [Integrating a Go project]({{ site.baseurl }}//getting-started/new-project-guide/go-lang/) page.
 
-**Note:**
+**Notes:**
 
-1. Don't assume the fuzzing engine is libFuzzer by default, because we generate builds for libFuzzer, AFL++ and Honggfuzz fuzzing engine configurations. Instead, link the fuzzing engine using $LIB_FUZZING_ENGINE.
+1. Don't assume the fuzzing engine is libFuzzer by default, because we generate builds for both libFuzzer and AFL fuzzing engine configurations. Instead, link the fuzzing engine using $LIB_FUZZING_ENGINE.
 2. Make sure that the binary names for your [fuzz targets]({{ site.baseurl }}/reference/glossary/#fuzz-target) contain only
 alphanumeric characters, underscore(_) or dash(-). Otherwise, they won't run on our infrastructure.
 3. Don't remove source code files. They are needed for code coverage.
 
-### Temporarily disabling code instrumentation during builds
-
-Sometimes not every 3rd party library might be needed to be instrumented or
-tools are being compiled that just support the target built.
-
-If for any reasons part of the build process should not be instrumented
-then the following code snippit can be used for this:
-
-```
-CFLAGS_SAVE="$CFLAGS"
-CXXFLAGS_SAVE="$CXXFLAGS"
-unset CFLAGS
-unset CXXFLAGS
-export AFL_NOOPT=1
-
-#
-# build commands here that should not result in instrumented code.
-#
-
-export CFLAGS="${CFLAGS_SAVE}"
-export CXXFLAGS="${CXXFLAGS_SAVE}"
-unset AFL_NOOPT
-```
-
 ### build.sh script environment
 
 When your build.sh script is executed, the following locations are available within the image:
@@ -311,7 +258,7 @@
 
 ## Disk space restrictions
 
-Our builders have a disk size of 250GB (this includes space taken up by the OS). Builds must keep peak disk usage below this.
+Our builders have a disk size of 70GB (this includes space taken up by the OS). Builds must keep peak disk usage below this.
 
 In addition, please keep the size of the build (everything copied to `$OUT`) small (<10GB uncompressed). The build is repeatedly transferred and unzipped during fuzzing and runs on VMs with limited disk space.
 
@@ -322,7 +269,7 @@
 
 ## Testing locally
 
-You can build your docker image and fuzz targets locally, so you can test them before you push them to the OSS-Fuzz repository.
+You can build your docker image and fuzz targets locally, so you can test them before you push them to the OSS-Fuzz repository. 
 
 1. Run the same helper script you used to create your directory structure, this time using it to build your docker image and [fuzz targets]({{ site.baseurl }}/reference/glossary/#fuzz-target):
 
@@ -338,8 +285,8 @@
     **Note:** You *must* run your fuzz target binaries inside the base-runner docker
     container to make sure that they work properly.
 
-2. Find failures to fix by running the `check_build` command:
-
+2. Find failures to fix by running the `check_build` command: 
+    
     ```bash
     $ python infra/helper.py check_build $PROJECT_NAME
     ```
@@ -347,28 +294,21 @@
 3. If you want to test changes against a particular fuzz target, run the following command:
 
     ```bash
-    $ python infra/helper.py run_fuzzer --corpus-dir=<path-to-temp-corpus-dir> $PROJECT_NAME <fuzz_target>
+    $ python infra/helper.py run_fuzzer $PROJECT_NAME <fuzz_target>
     ```
 
-4. We recommend taking a look at your code coverage as a test to ensure that
-your fuzz targets get to the code you expect. This would use the corpus
-generated from the previous `run_fuzzer` step in your local corpus directory.
+4. We recommend taking a look at your code coverage as a sanity check to make sure that your
+fuzz targets get to the code you expect:
 
     ```bash
     $ python infra/helper.py build_fuzzers --sanitizer coverage $PROJECT_NAME
-    $ python infra/helper.py coverage $PROJECT_NAME --fuzz-target=<fuzz_target> --corpus-dir=<path-to-temp-corpus-dir>
+    $ python infra/helper.py coverage $PROJECT_NAME <fuzz_target>
     ```
 
-You may need to run `python infra/helper.py pull_images` to use the latest
-coverage tools. Please refer to
-[code coverage]({{ site.baseurl }}/advanced-topics/code-coverage/) for detailed
-information on code coverage generation.
-
-
-**Note:** Currently, we only support AddressSanitizer (address) and UndefinedBehaviorSanitizer (undefined)
+**Note:** Currently, we only support AddressSanitizer (address) and UndefinedBehaviorSanitizer (undefined) 
 configurations. MemorySanitizer is recommended, but needs to be enabled manually once you verify
 that all system dependencies are
-[instrumented](https://github.com/google/oss-fuzz/blob/master/infra/base-images/msan-libs-builder/Dockerfile#L20).
+[instrumented](https://github.com/google/oss-fuzz/blob/master/infra/base-images/msan-builder/Dockerfile#L20).
 <b>Make sure to test each
 of the supported build configurations with the above commands (build_fuzzers -> run_fuzzer -> coverage).</b>
 
@@ -447,7 +387,7 @@
 Please include copyright headers for all files checked in to oss-fuzz:
 
 ```
-# Copyright 2021 Google LLC
+# Copyright 2019 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/docs/images/artifacts.png b/docs/images/artifacts.png
deleted file mode 100644
index fb1e43e..0000000
--- a/docs/images/artifacts.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/run_fuzzers.png b/docs/images/run_fuzzers.png
deleted file mode 100644
index 64b26d4..0000000
--- a/docs/images/run_fuzzers.png
+++ /dev/null
Binary files differ
diff --git a/docs/index.md b/docs/index.md
index c372e77..66d9d9b 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -9,56 +9,41 @@
 
 # OSS-Fuzz
 
-[Fuzz testing] is a well-known technique for uncovering programming errors in
-software. Many of these detectable errors, like [buffer overflow], can have
-serious security implications. Google has found [thousands] of security
-vulnerabilities and stability bugs by deploying [guided in-process fuzzing of
-Chrome components], and we now want to share that service with the open source
-community.
+[Fuzz testing](https://en.wikipedia.org/wiki/Fuzz_testing) is a well-known
+technique for uncovering programming errors in software.
+Many of these detectable errors, like [buffer overflow](https://en.wikipedia.org/wiki/Buffer_overflow),
+can have serious security implications. Google has found [thousands] of security vulnerabilities and
+stability bugs by deploying
+[guided in-process fuzzing of Chrome components](https://security.googleblog.com/2016/08/guided-in-process-fuzzing-of-chrome.html),
+and we now want to share that service with the open source community.
 
-[Fuzz testing]: https://en.wikipedia.org/wiki/Fuzz_testing
-[buffer overflow]: https://en.wikipedia.org/wiki/Buffer_overflow
 [thousands]: https://bugs.chromium.org/p/chromium/issues/list?q=label%3AStability-LibFuzzer%2CStability-AFL%20-status%3ADuplicate%2CWontFix&can=1
-[guided in-process fuzzing of Chrome components]: https://security.googleblog.com/2016/08/guided-in-process-fuzzing-of-chrome.html
 
-In cooperation with the [Core Infrastructure Initiative] and the [OpenSSF],
+In cooperation with the [Core Infrastructure Initiative](https://www.coreinfrastructure.org/), 
 OSS-Fuzz aims to make common open source software more secure and stable by
-combining modern fuzzing techniques with scalable, distributed execution.
+combining modern fuzzing techniques with scalable,
+distributed execution.
 
-[Core Infrastructure Initiative]: https://www.coreinfrastructure.org/
-[OpenSSF]: https://www.openssf.org/
+We support the [libFuzzer](http://llvm.org/docs/LibFuzzer.html) and [AFL](http://lcamtuf.coredump.cx/afl/) fuzzing engines
+in combination with [Sanitizers](https://github.com/google/sanitizers), as well as
+[ClusterFuzz](https://github.com/google/clusterfuzz),
+a distributed fuzzer execution environment and reporting tool. 
 
-We support the [libFuzzer], [AFL++], and [Honggfuzz] fuzzing engines in
-combination with [Sanitizers], as well as [ClusterFuzz], a distributed fuzzer
-execution environment and reporting tool.
-
-[libFuzzer]: https://llvm.org/docs/LibFuzzer.html
-[AFL++]: https://github.com/AFLplusplus/AFLplusplus
-[Honggfuzz]: https://github.com/google/honggfuzz
-[Sanitizers]: https://github.com/google/sanitizers
-[ClusterFuzz]: https://github.com/google/clusterfuzz
-
-Currently, OSS-Fuzz supports C/C++, Rust, Go, Python and Java/JVM code. Other
-languages supported by [LLVM] may work too. OSS-Fuzz supports fuzzing x86_64
-and i386 builds.
-
-[LLVM]: https://llvm.org
+Currently, OSS-Fuzz supports C/C++, Rust, and Go code. Other languages supported by [LLVM](http://llvm.org) may work too.
+OSS-Fuzz supports fuzzing x86_64 and i386 builds.
 
 ## Learn more about fuzzing
 
-This documentation describes how to use OSS-Fuzz service for your open source
-project. To learn more about fuzzing in general, we recommend reading [libFuzzer
-tutorial] and the other docs in [google/fuzzing] repository. These and some
-other resources are listed on the [useful links] page.
+This documentation describes how to use OSS-Fuzz service for your open source project.
+To learn more about fuzzing in general, we recommend reading [libFuzzer tutorial]
+and the other docs in [google/fuzzing] repository. These and some other resources
+are listed on the [useful links]({{ site.baseurl }}/reference/useful-links/#tutorials) page.
 
 [google/fuzzing]: https://github.com/google/fuzzing/tree/master/docs
 [libFuzzer tutorial]: https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md
-[useful links]: {{ site.baseurl }}/reference/useful-links/#tutorials
 
 ## Trophies
-As of January 2021, OSS-Fuzz has found over [25,000] bugs in [375] open source
-projects.
+As of January 2020, OSS-Fuzz has found over [16,000] bugs in [250] open source projects.
 
-[25,000]: https://bugs.chromium.org/p/oss-fuzz/issues/list?q=-status%3AWontFix%2CDuplicate%20-component%3AInfra&can=1
-[375]: https://github.com/google/oss-fuzz/tree/master/projects
-
+[16,000]: https://bugs.chromium.org/p/oss-fuzz/issues/list?q=-status%3AWontFix%2CDuplicate%20-component%3AInfra&can=1
+[250]: https://github.com/google/oss-fuzz/tree/master/projects
diff --git a/docs/oss-fuzz/architecture.md b/docs/oss-fuzz/architecture.md
index 56ff296..689870e 100644
--- a/docs/oss-fuzz/architecture.md
+++ b/docs/oss-fuzz/architecture.md
@@ -29,5 +29,5 @@
   discovery (the commit message should contain the string **'Credit to OSS-Fuzz'**).
 
 Once the developer fixes the bug, [ClusterFuzz]({{ site.baseurl }}/further-reading/clusterfuzz) automatically
-verifies the fix, adds a comment, and closes the issue ([example](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53#c3)). After the fix is verified or 90 days after reporting (whichever is earlier), the issue becomes [public]({{ site.baseurl }}/getting-started/bug-disclosure-guidelines/).
+verifies the fix, adds a comment, and closes the issue ([example](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53#c3)). 30 days after the fix is verified or 90 days after reporting (whichever is earlier), the issue becomes [public]({{ site.baseurl }}/getting-started/bug-disclosure-guidelines/).
 
diff --git a/docs/reference/glossary.md b/docs/reference/glossary.md
index 7b12995..374bd42 100644
--- a/docs/reference/glossary.md
+++ b/docs/reference/glossary.md
@@ -30,12 +30,9 @@
 
 ### Fuzz Target
 
-In addition to its
-[general definition](https://github.com/google/fuzzing/blob/master/docs/glossary.md#fuzz-target),
-in OSS-Fuzz a fuzz target can be used to
-[reproduce bug reports]({{ site.baseurl }}/advanced-topics/reproducing/).
-It is recommended to use it for regression testing as well (see
-[ideal integration]({{ site.baseurl }}/advanced-topics/ideal-integration/)).
+In addition to its general definition, in OSS-Fuzz a fuzz target can be used to
+[reproduce bug reports]({{ site.baseurl }}/advanced-topics/reproducing/). It is recommended to use it for
+regression testing as well (see [ideal integration]({{ site.baseurl }}/advanced-topics/ideal-integration/)).
 
 ### Job type
 
diff --git a/docs/reference/useful_links.md b/docs/reference/useful_links.md
index 3e39ba3..efbcfed 100644
--- a/docs/reference/useful_links.md
+++ b/docs/reference/useful_links.md
@@ -21,6 +21,8 @@
 * [This page](https://oss-fuzz-build-logs.storage.googleapis.com/index.html)
   gives the latest build logs for each project.
 
+* (Internal only) [Builds dashboard](https://builder.oss-fuzz.com).
+
 ## Blog posts
 
 * 2016-12-01 - Announcing OSS-Fuzz: Continuous fuzzing for open source software
@@ -33,8 +35,6 @@
 [Security](https://security.googleblog.com/2017/05/oss-fuzz-five-months-later-and.html))
 * 2018-11-06 - A New Chapter for OSS-Fuzz
 ([Security](https://security.googleblog.com/2018/11/a-new-chapter-for-oss-fuzz.html))
-* 2020-10-09 - [Fuzzing internships for Open Source Software](https://security.googleblog.com/2020/10/fuzzing-internships-for-open-source.html)
-* 2020-12-07 - [Improving open source security during the Google summer internship program](https://security.googleblog.com/2020/12/improving-open-source-security-during.html)
 
 ## Tutorials
 
diff --git a/infra/.dockerignore b/infra/.dockerignore
deleted file mode 100644
index c786533..0000000
--- a/infra/.dockerignore
+++ /dev/null
@@ -1,9 +0,0 @@
-cifuzz/test_data/*
-
-# Copied from .gitignore.
-.vscode/
-*.pyc
-build
-*~
-.DS_Store
-*.swp
\ No newline at end of file
diff --git a/infra/.pylintrc b/infra/.pylintrc
new file mode 100644
index 0000000..8ce0b22
--- /dev/null
+++ b/infra/.pylintrc
@@ -0,0 +1,2 @@
+[FORMAT]
+indent-string = "  "
\ No newline at end of file
diff --git a/infra/base-images/Jenkinsfile b/infra/base-images/Jenkinsfile
new file mode 100644
index 0000000..67b22e9
--- /dev/null
+++ b/infra/base-images/Jenkinsfile
@@ -0,0 +1,37 @@
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+// Jenkins build script for base images.
+node {
+  git url: 'https://github.com/google/oss-fuzz/'
+  
+  stage("infra/base-images/all.sh") {
+    sh "infra/base-images/all.sh --no-cache"
+  }
+  
+  stage("docker push") {
+    def images = ['ossfuzz/base-image', 'ossfuzz/base-clang', 'ossfuzz/base-libfuzzer',
+                  'ossfuzz/base-runner', 'ossfuzz/base-runner-debug',
+                  'ossfuzz/base-builder',]  
+    
+    docker.withRegistry('', 'docker-login') {
+        for (int i = 0; i < images.size(); i++) {
+            def image = images[i]
+            docker.image(image).push()
+        }
+    }
+  }
+}
diff --git a/infra/base-images/base-builder/Dockerfile b/infra/base-images/base-builder/Dockerfile
index d802f24..0e22baf 100644
--- a/infra/base-images/base-builder/Dockerfile
+++ b/infra/base-images/base-builder/Dockerfile
@@ -15,64 +15,20 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-clang
-
-RUN dpkg --add-architecture i386 && \
-    apt-get update && \
-    apt-get install -y software-properties-common && \
-    add-apt-repository ppa:git-core/ppa && \
-    apt-get update && \
-    apt-get install -y \
-        binutils-dev \
-        build-essential \
-        curl \
-        git \
-        jq \
-        libc6-dev-i386 \
-        patchelf \
-        rsync \
-        subversion \
-        zip
-
-# Build and install latest Python 3 (3.8.3).
-ENV PYTHON_VERSION 3.8.3
-RUN export PYTHON_DEPS="\
-        zlib1g-dev \
-        libncurses5-dev \
-        libgdbm-dev \
-        libnss3-dev \
-        libssl-dev \
-        libsqlite3-dev \
-        libreadline-dev \
-        libffi-dev \
-        libbz2-dev \
-        liblzma-dev" && \
-    unset CFLAGS CXXFLAGS && \
-    apt-get install -y $PYTHON_DEPS && \
-    cd /tmp && \
-    curl -O https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz && \
-    tar -xvf Python-$PYTHON_VERSION.tar.xz && \
-    cd Python-$PYTHON_VERSION && \
-    ./configure --enable-optimizations --enable-shared && \
-    make -j install && \
-    ldconfig && \
-    ln -s /usr/bin/python3 /usr/bin/python && \
-    cd .. && \
-    rm -r /tmp/Python-$PYTHON_VERSION.tar.xz /tmp/Python-$PYTHON_VERSION && \
-    rm -rf /usr/local/lib/python3.8/test && \
-    apt-get remove -y $PYTHON_DEPS # https://github.com/google/oss-fuzz/issues/3888
-
-# Install latest atheris for python fuzzing, pyinstaller for fuzzer packaging,
-# six for Bazel rules.
-RUN unset CFLAGS CXXFLAGS && pip3 install -v --no-cache-dir \
-    atheris pyinstaller==4.1 six==1.15.0 && \
-    rm -rf /tmp/*
+RUN apt-get install -y git \
+    subversion \
+    jq \
+    python3 \
+    zip \
+    make \
+    binutils-dev \
+    libc6-dev-i386
 
 # Download and install the latest stable Go.
-RUN cd /tmp && \
-    curl -O https://storage.googleapis.com/golang/getgo/installer_linux && \
-    chmod +x ./installer_linux && \
-    SHELL="bash" ./installer_linux && \
-    rm -rf ./installer_linux
+ADD https://storage.googleapis.com/golang/getgo/installer_linux $SRC/
+RUN chmod +x $SRC/installer_linux && \
+    SHELL="bash" $SRC/installer_linux && \
+    rm $SRC/installer_linux
 
 # Set up Golang environment variables (copied from /root/.bash_profile).
 ENV GOPATH /root/go
@@ -81,50 +37,11 @@
 # $GOPATH/bin is for the binaries from the dependencies installed via "go get".
 ENV PATH $PATH:/root/.go/bin:$GOPATH/bin
 
-# Uses golang 1.14+ cmd/compile's native libfuzzer instrumentation.
-RUN go get -u github.com/mdempsky/go114-fuzz-build && \
-    ln -s $GOPATH/bin/go114-fuzz-build $GOPATH/bin/go-fuzz
+# Dependency of go-fuzz.
+RUN go get golang.org/x/tools/go/packages
 
-# Install Rust and cargo-fuzz for libFuzzer instrumentation.
-ENV CARGO_HOME=/rust
-ENV RUSTUP_HOME=/rust/rustup
-ENV PATH=$PATH:/rust/bin
-RUN curl https://sh.rustup.rs | sh -s -- -y --default-toolchain=nightly --profile=minimal
-RUN cargo install cargo-fuzz && rm -rf /rust/registry
-# Needed to recompile rust std library for MSAN
-RUN rustup component add rust-src --toolchain nightly
-# Set up custom environment variable for source code copy for coverage reports
-ENV OSSFUZZ_RUSTPATH /rust
-
-# Install Bazel through Bazelisk, which automatically fetches the latest Bazel version.
-ENV BAZELISK_VERSION 1.7.4
-RUN curl -L https://github.com/bazelbuild/bazelisk/releases/download/v$BAZELISK_VERSION/bazelisk-linux-amd64 -o /usr/local/bin/bazel && \
-    chmod +x /usr/local/bin/bazel
-
-# Install OpenJDK 15 and trim its size by removing unused components.
-ENV JAVA_HOME=/usr/lib/jvm/java-15-openjdk-amd64
-ENV JVM_LD_LIBRARY_PATH=$JAVA_HOME/lib/server
-ENV PATH=$PATH:$JAVA_HOME/bin
-RUN cd /tmp && \
-    curl -L -O https://download.java.net/java/GA/jdk15.0.2/0d1cfde4252546c6931946de8db48ee2/7/GPL/openjdk-15.0.2_linux-x64_bin.tar.gz && \
-    mkdir -p $JAVA_HOME && \
-    tar -xzv --strip-components=1 -f openjdk-15.0.2_linux-x64_bin.tar.gz --directory $JAVA_HOME && \
-    rm -f openjdk-15.0.2_linux-x64_bin.tar.gz && \
-    rm -rf $JAVA_HOME/jmods $JAVA_HOME/lib/src.zip
-
-# Install the latest Jazzer in $OUT.
-# jazzer_api_deploy.jar is required only at build-time, the agent and the
-# drivers are copied to $OUT as they need to be present on the runners.
-ENV JAZZER_API_PATH "/usr/local/lib/jazzer_api_deploy.jar"
-RUN cd $SRC/ && \
-    git clone --depth=1 https://github.com/CodeIntelligenceTesting/jazzer && \
-    cd jazzer && \
-    bazel build --java_runtime_version=localjdk_15 -c opt --cxxopt="-stdlib=libc++" --linkopt=-lc++ \
-        //agent:jazzer_agent_deploy.jar //driver:jazzer_driver //driver:jazzer_driver_asan //agent:jazzer_api_deploy.jar && \
-    cp bazel-bin/agent/jazzer_agent_deploy.jar bazel-bin/driver/jazzer_driver bazel-bin/driver/jazzer_driver_asan /usr/local/bin/ && \
-    cp bazel-bin/agent/jazzer_api_deploy.jar $JAZZER_API_PATH && \
-    rm -rf ~/.cache/bazel ~/.cache/bazelisk && \
-    rm -rf $SRC/jazzer
+# go-fuzz-build is the tool that instruments Go files.
+RUN go get github.com/dvyukov/go-fuzz/go-fuzz-build
 
 # Default build flags for various sanitizers.
 ENV SANITIZER_FLAGS_address "-fsanitize=address -fsanitize-address-use-after-scope"
@@ -136,8 +53,6 @@
 
 ENV SANITIZER_FLAGS_dataflow "-fsanitize=dataflow"
 
-ENV SANITIZER_FLAGS_thread "-fsanitize=thread"
-
 # Do not use any sanitizers in the coverage build.
 ENV SANITIZER_FLAGS_coverage ""
 
@@ -145,9 +60,6 @@
 # suppress error messages. See https://github.com/google/oss-fuzz/issues/910.
 ENV UBSAN_OPTIONS="silence_unsigned_overflow=1"
 
-# To suppress warnings from binaries running during compilation.
-ENV DFSAN_OPTIONS='warn_unimplemented=0'
-
 # Default build flags for coverage feedback.
 ENV COVERAGE_FLAGS="-fsanitize=fuzzer-no-link"
 
@@ -176,28 +88,24 @@
 # TODO: remove after tpm2 catchup.
 ENV FUZZER_LDFLAGS ""
 
+ENV PRECOMPILED_DIR="/usr/lib/precompiled"
+RUN mkdir $PRECOMPILED_DIR
+
 WORKDIR $SRC
 
-# TODO: switch to -b stable once we can.
-RUN git clone https://github.com/AFLplusplus/AFLplusplus.git aflplusplus && \
-    cd aflplusplus && \
-    git checkout 2102264acf5c271b7560a82771b3af8136af9354
+RUN git clone -b stable https://github.com/google/AFL.git afl
 
-RUN cd $SRC && \
-    curl -L -O https://github.com/google/honggfuzz/archive/oss-fuzz.tar.gz && \
-    mkdir honggfuzz && \
+ADD https://github.com/google/honggfuzz/archive/oss-fuzz.tar.gz $SRC/
+RUN mkdir honggfuzz && \
     cd honggfuzz && \
     tar -xzv --strip-components=1 -f $SRC/oss-fuzz.tar.gz && \
-    rm -rf examples $SRC/oss-fuzz.tar.gz
+    rm -rf $SRC/oss-fuzz.tar.gz
 
-COPY cargo compile compile_afl compile_dataflow compile_libfuzzer compile_honggfuzz \
-    compile_go_fuzzer precompile_honggfuzz precompile_afl debug_afl srcmap \
-    write_labels.py bazel_build_fuzz_tests /usr/local/bin/
+COPY compile compile_afl compile_dataflow compile_libfuzzer compile_honggfuzz \
+    precompile_honggfuzz srcmap write_labels.py /usr/local/bin/
 
-COPY detect_repo.py /opt/cifuzz/
-COPY ossfuzz_coverage_runner.go $GOPATH
+COPY detect_repo.py /src
 
 RUN precompile_honggfuzz
-RUN precompile_afl
 
 CMD ["compile"]
diff --git a/infra/base-images/base-builder/README.md b/infra/base-images/base-builder/README.md
index 4e94bb0..1ff88e6 100644
--- a/infra/base-images/base-builder/README.md
+++ b/infra/base-images/base-builder/README.md
@@ -1,5 +1,5 @@
 # base-builder
-> Abstract base image for project builders.
+> Abstract base image for libfuzzer builders.
 
 Every project image supports multiple commands that can be invoked through docker after the image is built:
 
@@ -43,7 +43,7 @@
 | `/out/` | `$OUT`         | Directory to store build artifacts (fuzz targets, dictionaries, options files, seed corpus archives). |
 | `/src/` | `$SRC`         | Directory to checkout source files |
 | `/work/`| `$WORK`        | Directory for storing intermediate files |
-| `/usr/lib/libFuzzingEngine.a` | `$LIB_FUZZING_ENGINE` | Location of prebuilt fuzzing engine library (e.g. libFuzzer) that needs to be linked with all fuzz targets.
+| `/usr/lib/libFuzzingEngine.a` | `$LIB_FUZZING_ENGINE` | Location of prebuilt fuzzing engine library (e.g. libFuzzer ) that needs to be linked with all fuzz targets.
 
 While files layout is fixed within a container, the environment variables are
 provided to be able to write retargetable scripts.
diff --git a/infra/base-images/base-builder/bazel_build_fuzz_tests b/infra/base-images/base-builder/bazel_build_fuzz_tests
deleted file mode 100755
index 86740ee..0000000
--- a/infra/base-images/base-builder/bazel_build_fuzz_tests
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash -eu
-#
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-: "${BAZEL_FUZZ_TEST_TAG:=fuzz-test}"
-: "${BAZEL_FUZZ_TEST_EXCLUDE_TAG:=no-oss-fuzz}"
-: "${BAZEL_PACKAGE_SUFFIX:=_oss_fuzz}"
-: "${BAZEL_TOOL:=bazel}"
-: "${BAZEL_EXTRA_BUILD_FLAGS:=}"
-
-if [[ -z "${BAZEL_FUZZ_TEST_QUERY:-}" ]]; then
-    BAZEL_FUZZ_TEST_QUERY="
-        let all_fuzz_tests = attr(tags, \"${BAZEL_FUZZ_TEST_TAG}\", \"//...\") in
-        \$all_fuzz_tests - attr(tags, \"${BAZEL_FUZZ_TEST_EXCLUDE_TAG}\", \$all_fuzz_tests)
-    "
-fi
-
-echo "Using Bazel query to find fuzz targets: ${BAZEL_FUZZ_TEST_QUERY}"
-
-declare -r OSS_FUZZ_TESTS=(
-    $(bazel query "${BAZEL_FUZZ_TEST_QUERY}" | sed "s/$/${BAZEL_PACKAGE_SUFFIX}/")
-)
-
-echo "Found ${#OSS_FUZZ_TESTS[@]} fuzz test packages:"
-for oss_fuzz_test in "${OSS_FUZZ_TESTS[@]}"; do
-    echo "  ${oss_fuzz_test}"
-done
-
-declare -r BAZEL_BUILD_FLAGS=(
-    "-c" "opt"
-    "--//fuzzing:cc_engine=@rules_fuzzing_oss_fuzz//:oss_fuzz_engine" \
-    "--@rules_fuzzing//fuzzing:cc_engine_instrumentation=oss-fuzz" \
-    "--@rules_fuzzing//fuzzing:cc_engine_sanitizer=none" \
-    "--linkopt=-lc++" \
-    "--action_env=CC=${CC}" "--action_env=CXX=${CXX}" \
-    ${BAZEL_EXTRA_BUILD_FLAGS[*]}
-)
-
-echo "Building the fuzz tests with the following Bazel options:"
-echo "  ${BAZEL_BUILD_FLAGS[@]}"
-
-${BAZEL_TOOL} build "${BAZEL_BUILD_FLAGS[@]}" "${OSS_FUZZ_TESTS[@]}"
-
-echo "Extracting the fuzz test packages in the output directory."
-for oss_fuzz_archive in $(find bazel-bin/ -name "*${BAZEL_PACKAGE_SUFFIX}.tar"); do
-    tar -xvf "${oss_fuzz_archive}" -C "${OUT}"
-done
-
-if [ "$SANITIZER" = "coverage" ]; then
-    echo "Collecting the repository source files for coverage tracking."
-    declare -r COVERAGE_SOURCES="${OUT}/proc/self/cwd"
-    mkdir -p "${COVERAGE_SOURCES}"
-    declare -r RSYNC_FILTER_ARGS=(
-        "--include" "*.h"
-        "--include" "*.cc"
-        "--include" "*.hpp"
-        "--include" "*.cpp"
-        "--include" "*.c"
-        "--include" "*.inc"
-        "--include" "*/"
-        "--exclude" "*"
-    )
-    rsync -avLk "${RSYNC_FILTER_ARGS[@]}" \
-        "$(bazel info execution_root)/" \
-        "${COVERAGE_SOURCES}/"
-fi
diff --git a/infra/base-images/base-builder/bisect_clang.py b/infra/base-images/base-builder/bisect_clang.py
index 2e2c0e4..2e7db61 100644
--- a/infra/base-images/base-builder/bisect_clang.py
+++ b/infra/base-images/base-builder/bisect_clang.py
@@ -64,7 +64,7 @@
   def test_commit(self, test_command):
     """Build LLVM at the currently checkedout commit, then run |test_command|.
     If returncode is 0 run 'git bisect good' otherwise return 'git bisect bad'.
-    Return None if bisect didn't finish yet. Return the culprit commit if it
+    Return None if bisect didn't terminate yet. Return the culprit commit if it
     does."""
     build_clang(self.repo_dir)
     retcode, _, _ = execute(test_command, shell=True, expect_zero=False)
@@ -112,7 +112,7 @@
 
 
 class BisectError(Exception):
-  """Error that was encountered during bisection."""
+  pass
 
 
 def get_clang_build_env():
@@ -140,8 +140,8 @@
   for _ in range(num_retries):
     if os.path.isdir(local_path):
       shutil.rmtree(local_path)
-    retcode, _, _ = execute(['git', 'clone', repo, local_path],
-                            expect_zero=False)
+    retcode, _, _ = execute(
+        ['git', 'clone', repo, local_path], expect_zero=False)
     if retcode == 0:
       return
   raise Exception('Could not checkout %s.' % repo)
@@ -162,16 +162,17 @@
   llvm_build_dir = os.path.join(os.getenv('WORK'), 'llvm-build')
   if not os.path.exists(llvm_build_dir):
     os.mkdir(llvm_build_dir)
-  execute([
-      'cmake', '-G', 'Ninja', '-DLIBCXX_ENABLE_SHARED=OFF',
-      '-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON', '-DLIBCXXABI_ENABLE_SHARED=OFF',
-      '-DCMAKE_BUILD_TYPE=Release',
-      '-DLLVM_ENABLE_PROJECTS=libcxx;libcxxabi;compiler-rt;clang',
-      '-DLLVM_TARGETS_TO_BUILD=' + get_clang_target_arch(),
-      os.path.join(llvm_project_path, 'llvm')
-  ],
-          env=get_clang_build_env(),
-          cwd=llvm_build_dir)
+  execute(
+      [
+          'cmake', '-G', 'Ninja', '-DLIBCXX_ENABLE_SHARED=OFF',
+          '-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON',
+          '-DLIBCXXABI_ENABLE_SHARED=OFF', '-DCMAKE_BUILD_TYPE=Release',
+          '-DLLVM_ENABLE_PROJECTS=libcxx;libcxxabi;compiler-rt;clang',
+          '-DLLVM_TARGETS_TO_BUILD=' + get_clang_target_arch(),
+          os.path.join(llvm_project_path, 'llvm')
+      ],
+      env=get_clang_build_env(),
+      cwd=llvm_build_dir)
   return llvm_build_dir
 
 
@@ -200,15 +201,14 @@
 
 
 def main():
-  # pylint: disable=line-too-long
   """Finds the culprit LLVM commit that introduced a clang regression.
   Can be tested using this command in a libsodium shell:
   python3 bisect_clang.py "cd /src/libsodium; make clean; cd -; compile && /out/secret_key_auth_fuzzer -runs=100" \
                           f7e52fbdb5a7af8ea0808e98458b497125a5eca1 \
                           8288453f6aac05080b751b680455349e09d49825
   """
-  # pylint: enable=line-too-long
-  # TODO(metzman): Check CFLAGS for things like -fsanitize=fuzzer-no-link.
+  # TODO(metzman): Sanity check CFLAGS for things like
+  # -fsanitize=fuzzer-no-link.
   # TODO(metzman): Allow test_command to be optional and for just build.sh to be
   # used instead.
   test_command = sys.argv[1]
diff --git a/infra/base-images/base-builder/bisect_clang_test.py b/infra/base-images/base-builder/bisect_clang_test.py
index edf13e7..7a11021 100644
--- a/infra/base-images/base-builder/bisect_clang_test.py
+++ b/infra/base-images/base-builder/bisect_clang_test.py
@@ -37,11 +37,10 @@
   patcher.start()
 
 
-class BisectClangTestMixin:  # pylint: disable=too-few-public-methods
+class BisectClangTestMixin:
   """Useful mixin for bisect_clang unittests."""
 
-  def setUp(self):  # pylint: disable=invalid-name
-    """Initialization method for unittests."""
+  def setUp(self):
     patch_environ(self)
     os.environ['SRC'] = '/src'
     os.environ['WORK'] = '/work'
@@ -69,9 +68,8 @@
 
 
 def read_test_data(filename):
-  """Returns data from |filename| in the test_data directory."""
-  with open(os.path.join(FILE_DIRECTORY, 'test_data', filename)) as file_handle:
-    return file_handle.read()
+  with open(os.path.join(FILE_DIRECTORY, 'test_data', filename)) as f:
+    return f.read()
 
 
 class SearchBisectOutputTest(BisectClangTestMixin, unittest.TestCase):
@@ -128,7 +126,6 @@
 
 
 def mock_prepare_build(llvm_project_path):  # pylint: disable=unused-argument
-  """Mocked prepare_build function."""
   return '/work/llvm-build'
 
 
@@ -227,8 +224,8 @@
     with mock.patch('subprocess.Popen', create_mock_popen()) as mock_popen:
       self.git.bisect_start(self.good_commit, self.bad_commit,
                             self.test_command)
-      self.assertEqual(get_git_command('bisect', 'start'),
-                       mock_popen.commands[0])
+      self.assertEqual(
+          get_git_command('bisect', 'start'), mock_popen.commands[0])
       mock_test_start_commit.assert_has_calls([
           mock.call('bad_commit', 'bad', 'testcommand'),
           mock.call('good_commit', 'good', 'testcommand')
diff --git a/infra/base-images/base-builder/cargo b/infra/base-images/base-builder/cargo
deleted file mode 100755
index bed8e76..0000000
--- a/infra/base-images/base-builder/cargo
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# This is a wrapper around calling cargo
-# This just expands RUSTFLAGS in case of a coverage build
-# We need this until https://github.com/rust-lang/cargo/issues/5450 is merged
-# because cargo uses relative paths for the current crate
-# and absolute paths for its dependencies
-#
-################################################################################
-
-if [ "$SANITIZER" = "coverage" ] && [ $1 = "build" ]
-then
-    crate_src_abspath=`cargo metadata --no-deps --format-version 1 | jq -r '.workspace_root'`
-    export RUSTFLAGS="$RUSTFLAGS --remap-path-prefix src=$crate_src_abspath/src"
-fi
-
-if [ "$SANITIZER" = "coverage" ] && [ $1 = "fuzz" ]
-then
-    # hack to turn cargo fuzz build into cargo build so as to get coverage
-    # cargo fuzz adds "--target" "x86_64-unknown-linux-gnu"
-    (
-    # go into fuzz directory if not already the case
-    cd fuzz || true
-    fuzz_src_abspath=`pwd`
-    export RUSTFLAGS="$RUSTFLAGS --remap-path-prefix fuzz_targets=$fuzz_src_abspath/fuzz_targets"
-    # we do not want to trigger debug assertions and stops
-    export RUSTFLAGS="$RUSTFLAGS -C debug-assertions=no"
-    # do not optimize with --release, leading to Malformed instrumentation profile data
-    cargo build --bins
-    # copies the build output in the expected target directory
-    cd `cargo metadata --format-version 1 --no-deps | jq -r '.target_directory'`
-    mkdir -p x86_64-unknown-linux-gnu/release
-    cp -r debug/* x86_64-unknown-linux-gnu/release/
-    )
-    exit 0
-fi
-
-/rust/bin/cargo "$@"
diff --git a/infra/base-images/base-builder/compile b/infra/base-images/base-builder/compile
index 78453c9..e60f86f 100755
--- a/infra/base-images/base-builder/compile
+++ b/infra/base-images/base-builder/compile
@@ -22,36 +22,6 @@
   exit 1
 fi
 
-if [ "$FUZZING_LANGUAGE" = "jvm" ]; then
-  if [ "$FUZZING_ENGINE" != "libfuzzer" ]; then
-    echo "ERROR: JVM projects can be fuzzed with libFuzzer engine only."
-    exit 1
-  fi
-  if [ "$SANITIZER" != "address" ]; then
-    echo "ERROR: JVM projects can be fuzzed with AddressSanitizer only."
-    exit 1
-  fi
-  if [ "$ARCHITECTURE" != "x86_64" ]; then
-    echo "ERROR: JVM projects can be fuzzed on x86_64 architecture only."
-    exit 1
-  fi
-fi
-
-if [ "$FUZZING_LANGUAGE" = "python" ]; then
-  if [ "$FUZZING_ENGINE" != "libfuzzer" ]; then
-    echo "ERROR: Python projects can be fuzzed with libFuzzer engine only."
-    exit 1
-  fi
-  if [ "$SANITIZER" != "address" ] && [ "$SANITIZER" != "undefined" ]; then
-    echo "ERROR: Python projects can be fuzzed with AddressSanitizer and UndefinedBehaviorSanitizer only."
-    exit 1
-  fi
-  if [ "$ARCHITECTURE" != "x86_64" ]; then
-    echo "ERROR: Python projects can be fuzzed on x86_64 architecture only."
-    exit 1
-  fi
-fi
-
 if [ -z "${SANITIZER_FLAGS-}" ]; then
   FLAGS_VAR="SANITIZER_FLAGS_${SANITIZER}"
   export SANITIZER_FLAGS=${!FLAGS_VAR-}
@@ -61,8 +31,7 @@
     export CFLAGS="-m32 $CFLAGS"
     cp -R /usr/i386/lib/* /usr/lib
 fi
-# JVM projects are fuzzed with Jazzer, which has libFuzzer built in.
-if [[ $FUZZING_ENGINE != "none" ]] && [[ $FUZZING_LANGUAGE != "jvm" ]]; then
+if [[ $FUZZING_ENGINE != "none" ]]; then
   # compile script might override environment, use . to call it.
   . compile_${FUZZING_ENGINE}
 fi
@@ -89,68 +58,26 @@
   export COVERAGE_FLAGS="${!COVERAGE_FLAGS_VAR}"
 fi
 
- # Don't need coverage instrumentation for engine-less, afl++ builds.
-if [ $FUZZING_ENGINE = "none" ] || [ $FUZZING_ENGINE = "afl" ]; then
+ # Don't need coverage instrumentation for engine-less builds.
+if [ $FUZZING_ENGINE = "none" ]; then
   export COVERAGE_FLAGS=
 fi
 
-# Rust does not support sanitizers and coverage flags via CFLAGS/CXXFLAGS, so
-# use RUSTFLAGS.
-# FIXME: Support code coverage once support is in.
-# See https://github.com/rust-lang/rust/issues/34701.
-if [ "$SANITIZER" != "undefined" ] && [ "$SANITIZER" != "coverage" ] && [ "$ARCHITECTURE" != 'i386' ]; then
-  export RUSTFLAGS="--cfg fuzzing -Zsanitizer=${SANITIZER} -Cdebuginfo=1 -Cforce-frame-pointers"
-else
-  export RUSTFLAGS="--cfg fuzzing -Cdebuginfo=1 -Cforce-frame-pointers"
-fi
-if [ "$SANITIZER" = "coverage" ]
-then
-    # link to C++ from comment in f5098035eb1a14aa966c8651d88ea3d64323823d
-    export RUSTFLAGS="$RUSTFLAGS -Zinstrument-coverage -C link-arg=-lc++"
-fi
-
-# Add Rust libfuzzer flags.
-# See https://github.com/rust-fuzz/libfuzzer/blob/master/build.rs#L12.
-export CUSTOM_LIBFUZZER_PATH="$LIB_FUZZING_ENGINE_DEPRECATED"
-export CUSTOM_LIBFUZZER_STD_CXX=c++
-
 export CFLAGS="$CFLAGS $SANITIZER_FLAGS $COVERAGE_FLAGS"
 export CXXFLAGS="$CFLAGS $CXXFLAGS_EXTRA"
 
-if [ "$FUZZING_LANGUAGE" = "python" ]; then
-  sanitizer_with_fuzzer_lib_dir=`python3 -c "import atheris; import os; print(os.path.dirname(atheris.path()))"`
-  sanitizer_with_fuzzer_output_lib=$OUT/sanitizer_with_fuzzer.so
-  if [ "$SANITIZER" = "address" ]; then
-    cp $sanitizer_with_fuzzer_lib_dir/asan_with_fuzzer.so $sanitizer_with_fuzzer_output_lib
-  elif [ "$SANITIZER" = "undefined" ]; then
-    cp $sanitizer_with_fuzzer_lib_dir/ubsan_with_fuzzer.so $sanitizer_with_fuzzer_output_lib
-  fi
-
-  # Disable leak checking as it is unsupported.
-  export CFLAGS="$CFLAGS -fno-sanitize=function,leak,vptr,"
-  export CXXFLAGS="$CXXFLAGS -fno-sanitize=function,leak,vptr"
-fi
-
-# Copy latest llvm-symbolizer in $OUT for stack symbolization.
-cp $(which llvm-symbolizer) $OUT/
-
-# Copy Jazzer to $OUT if needed.
-if [ "$FUZZING_LANGUAGE" = "jvm" ]; then
-  cp $(which jazzer_agent_deploy.jar) $(which jazzer_driver) $(which jazzer_driver_asan) $OUT/
-fi
-
-echo "---------------------------------------------------------------"
 echo "CC=$CC"
 echo "CXX=$CXX"
 echo "CFLAGS=$CFLAGS"
 echo "CXXFLAGS=$CXXFLAGS"
+
 echo "---------------------------------------------------------------"
 
 BUILD_CMD="bash -eux $SRC/build.sh"
 
 # We need to preserve source code files for generating a code coverage report.
 # We need exact files that were compiled, so copy both $SRC and $WORK dirs.
-COPY_SOURCES_CMD="cp -rL --parents $SRC $WORK /usr/include /usr/local/include $GOPATH $OSSFUZZ_RUSTPATH $OUT"
+COPY_SOURCES_CMD="cp -rL --parents $SRC $WORK /usr/include $OUT"
 
 if [ "${BUILD_UID-0}" -ne "0" ]; then
   adduser -u $BUILD_UID --disabled-password --gecos '' builder
diff --git a/infra/base-images/base-builder/compile_afl b/infra/base-images/base-builder/compile_afl
old mode 100644
new mode 100755
index dc66244..a428bee
--- a/infra/base-images/base-builder/compile_afl
+++ b/infra/base-images/base-builder/compile_afl
@@ -15,78 +15,34 @@
 #
 ################################################################################
 
-# afl++ configuration options.
-# The 'env|grep' setup ensures we do not trigger the linter.
-# The variables need to be set to "1" here - or before running this script.
+echo -n "Compiling afl to $LIB_FUZZING_ENGINE ..."
 
-# AFL++ settings.
-export AFL_LLVM_MODE_WORKAROUND=0
-export AFL_ENABLE_DICTIONARY=0
+# afl needs its special coverage flags
+export COVERAGE_FLAGS="-fsanitize-coverage=trace-pc-guard"
 
-# Start compiling afl++.
-echo "Copying precompiled afl++"
+mkdir -p $WORK/afl
+pushd $WORK/afl > /dev/null
+# Add -Wno-pointer-sign to silence warning (AFL is compiled this way).
+$CC $CFLAGS -Wno-pointer-sign -c $SRC/afl/llvm_mode/afl-llvm-rt.o.c
+$CXX $CXXFLAGS -std=c++11 -O2 -c $SRC/libfuzzer/afl/*.cpp -I$SRC/libfuzzer
+ar r $LIB_FUZZING_ENGINE $WORK/afl/*.o
+popd > /dev/null
+rm -rf $WORK/afl
 
-# Copy afl++ tools necessary for fuzzing.
-pushd $SRC/aflplusplus > /dev/null
+# Build and copy afl tools necessary for fuzzing.
+pushd $SRC/afl > /dev/null
 
-cp -f libAFLDriver.a $LIB_FUZZING_ENGINE
+# Unset CFLAGS and CXXFLAGS while building AFL since we don't want to slow it
+# down with sanitizers.
+INITIAL_CXXFLAGS=$CXXFLAGS
+INITIAL_CFLAGS=$CFLAGS
+unset CXXFLAGS
+unset CFLAGS
+make clean && AFL_NO_X86=1 make
+CFLAGS=$INITIAL_CFLAGS
+CXXFLAGS=$INITIAL_CXXFLAGS
 
-# Some important projects include libraries, copy those even when they don't
-# start with "afl-". Use "sort -u" to avoid a warning about duplicates.
-ls afl-* *.txt *.a *.o *.so | sort -u | xargs cp -t $OUT
-export CC="$SRC/aflplusplus/afl-clang-fast"
-export CXX="$SRC/aflplusplus/afl-clang-fast++"
-
-# Set sane afl++ environment defaults:
-# Be quiet, otherwise this can break some builds.
-export AFL_QUIET=1
-# No leak errors during builds.
-export ASAN_OPTIONS="detect_leaks=0:symbolize=0:detect_odr_violation=0:abort_on_error=1"
-
-# AFL compile option roulette. It is OK if they all happen together.
-
-# 40% chance to perform CMPLOG
-rm -f "$OUT/afl_cmplog.txt"
-test $(($RANDOM % 10)) -lt 4 && {
-  export AFL_LLVM_CMPLOG=1
-  touch "$OUT/afl_cmplog.txt"
-}
-
-# 10% chance to perform LAF_INTEL
-test $(($RANDOM % 10)) -lt 1 && {
-  export AFL_LLVM_LAF_ALL=1
-}
-
-# If the targets wants a dictionary - then create one.
-test "$AFL_ENABLE_DICTIONARY" = "1" && {
-  export AFL_LLVM_DICT2FILE="$OUT/afl++.dict"
-}
-
-# In case afl-clang-fast ever breaks, this is a workaround:
-test "$AFL_LLVM_MODE_WORKAROUND" = "1" && {
-  export CC=clang
-  export CXX=clang++
-  WORKAROUND_FLAGS=-fsanitize-coverage=trace-pc-guard
-  # We can still do CMPLOG light:
-  test -e "$OUT/afl_cmplog.txt" && {
-    WORKAROUND_FLAGS="$WORKAROUND_FLAGS",trace-cmp
-  }
-  export CFLAGS="$CFLAGS $WORKAROUND_FLAGS"
-  export CXXFLAGS="$CXXFLAGS $WORKAROUND_FLAGS"
-  unset AFL_LLVM_LAF_ALL
-  unset AFL_LLVM_DICT2FILE
-  unset AFL_ENABLE_DICTIONARY
-  # We need to create a new fuzzer lib however.
-  ar ru libAFLDrivernew.a afl-compiler-rt.o utils/aflpp_driver/aflpp_driver.o
-  cp -f libAFLDrivernew.a $LIB_FUZZING_ENGINE
-}
-
-# Provide a way to document the afl++ options used in this build:
-echo
-echo afl++ target compilation setup:
-env | grep AFL_ | tee "$OUT/afl_options.txt"
-echo
-
+find . -name 'afl-*' -executable -type f | xargs cp -t $OUT
 popd > /dev/null
 
 echo " done."
diff --git a/infra/base-images/base-builder/compile_go_fuzzer b/infra/base-images/base-builder/compile_go_fuzzer
deleted file mode 100755
index 2342800..0000000
--- a/infra/base-images/base-builder/compile_go_fuzzer
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-path=$1
-function=$2
-fuzzer=$3
-tags="-tags gofuzz"
-if [[ $#  -eq 4 ]]; then
-  tags="-tags $4"
-fi
-
-# makes directory change temporary
-(
-cd $GOPATH/src/$path || true
-# in the case we are in the right directory, with go.mod but no go.sum
-go mod tidy || true
-# project was downloaded with go get if go list fails
-go list $tags $path || { cd $GOPATH/pkg/mod/ && cd `echo $path | cut -d/ -f1-3 | awk '{print $1"@*"}'`; }
-# project does not have go.mod if go list fails again
-go list $tags $path || { go mod init $path && go mod tidy ;}
-
-if [[ $SANITIZER = *coverage* ]]; then
-  fuzzed_package=`go list $tags -f '{{.Name}}' $path`
-  abspath=`go list $tags -f {{.Dir}} $path`
-  cd $abspath
-  cp $GOPATH/ossfuzz_coverage_runner.go ./"${function,,}"_test.go
-  sed -i -e 's/FuzzFunction/'$function'/' ./"${function,,}"_test.go
-  sed -i -e 's/mypackagebeingfuzzed/'$fuzzed_package'/' ./"${function,,}"_test.go
-  sed -i -e 's/TestFuzzCorpus/Test'$function'Corpus/' ./"${function,,}"_test.go
-
-  fuzzed_repo=`echo $path | cut -d/ -f-3`
-  abspath_repo=`go list -m $tags -f {{.Dir}} $fuzzed_repo || go list $tags -f {{.Dir}} $fuzzed_repo`
-  # give equivalence to absolute paths in another file, as go test -cover uses golangish pkg.Dir
-  echo "s=$fuzzed_repo"="$abspath_repo"= > $OUT/$fuzzer.gocovpath
-  go test -run Test${function}Corpus -v $tags -coverpkg $fuzzed_repo/... -c -o $OUT/$fuzzer $path
-else
-  # Compile and instrument all Go files relevant to this fuzz target.
-  echo "Running go-fuzz $tags -func $function -o $fuzzer.a $path"
-  go-fuzz $tags -func $function -o $fuzzer.a $path
-
-  # Link Go code ($fuzzer.a) with fuzzing engine to produce fuzz target binary.
-  $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -o $OUT/$fuzzer
-fi
-)
diff --git a/infra/base-images/base-builder/compile_honggfuzz b/infra/base-images/base-builder/compile_honggfuzz
index f86e842..362a0a5 100755
--- a/infra/base-images/base-builder/compile_honggfuzz
+++ b/infra/base-images/base-builder/compile_honggfuzz
@@ -17,8 +17,8 @@
 
 echo "Skipping compilation; using precompiled honggfuzz"
 
-cp $SRC/honggfuzz/honggfuzz.a $LIB_FUZZING_ENGINE
-cp $SRC/honggfuzz/honggfuzz $OUT/
+cp $PRECOMPILED_DIR/honggfuzz.a $LIB_FUZZING_ENGINE
+cp $PRECOMPILED_DIR/honggfuzz $OUT/
 
 # Custom coverage flags, roughly in sync with:
 # https://github.com/google/honggfuzz/blob/oss-fuzz/hfuzz_cc/hfuzz-cc.c
diff --git a/infra/base-images/base-builder/compile_libfuzzer b/infra/base-images/base-builder/compile_libfuzzer
index 3fd7f39..00f2d63 100755
--- a/infra/base-images/base-builder/compile_libfuzzer
+++ b/infra/base-images/base-builder/compile_libfuzzer
@@ -16,7 +16,16 @@
 ################################################################################
 
 echo -n "Compiling libFuzzer to $LIB_FUZZING_ENGINE... "
+mkdir -p $WORK/libfuzzer
+pushd $WORK/libfuzzer > /dev/null
+
+# Use -fPIC to allow preloading (LD_PRELOAD).
+$CXX $CXXFLAGS -std=c++11 -O2 -fPIC $SANITIZER_FLAGS -fno-sanitize=vptr \
+    -c $SRC/libfuzzer/*.cpp -I$SRC/libfuzzer
+ar r $LIB_FUZZING_ENGINE_DEPRECATED $WORK/libfuzzer/*.o
+popd > /dev/null
+rm -rf $WORK/libfuzzer
+# Override variable as libFuzzer builds do not link directly against an
+# engine library, but use -fsanitize=fuzzer to instruct clang to do so.
 export LIB_FUZZING_ENGINE="-fsanitize=fuzzer"
-cp /usr/local/lib/clang/*/lib/linux/libclang_rt.fuzzer-$ARCHITECTURE.a \
-  $LIB_FUZZING_ENGINE_DEPRECATED
 echo " done."
diff --git a/infra/base-images/base-builder/debug_afl b/infra/base-images/base-builder/debug_afl
deleted file mode 100755
index c53dae8..0000000
--- a/infra/base-images/base-builder/debug_afl
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Source this file for afl++ debug sessions.
-apt-get update
-apt-get install -y strace gdb vim joe psmisc
-
-pushd $SRC/aflplusplus > /dev/null
-git checkout dev
-git pull
-test -n "$1" && { git checkout "$1" ; git pull ; }
-CFLAGS_SAVE="$CFLAGS"
-CXXFLAGS_SAVE="$CXXFLAGS"
-unset CFLAGS
-unset CXXFLAGS
-make
-export CFLAGS="$CFLAGS_SAVE"
-export CXXFLAGS="$CXXFLAGS_SAVE"
-popd > /dev/null
-
-export ASAN_OPTIONS="detect_leaks=0:symbolize=0:detect_odr_violation=0:abort_on_error=1"
-export AFL_LLVM_LAF_ALL=1
-export AFL_LLVM_CMPLOG=1
-touch "$OUT/afl_cmplog.txt"
-export AFL_LLVM_DICT2FILE=$OUT/afl++.dict
-ulimit -c unlimited
diff --git a/infra/base-images/base-builder/detect_repo.py b/infra/base-images/base-builder/detect_repo.py
index e677e10..272a915 100644
--- a/infra/base-images/base-builder/detect_repo.py
+++ b/infra/base-images/base-builder/detect_repo.py
@@ -30,8 +30,6 @@
 import os
 import subprocess
 
-GO_PATH = '/root/go/src/'
-
 
 def main():
   """Function to get a git repo's url and name referenced by OSS-Fuzz
@@ -57,7 +55,7 @@
   else:
     src_dir = os.environ.get('SRC', '/src')
 
-  for single_dir in get_dirs_to_search(src_dir, args.repo_name):
+  for single_dir in os.listdir(src_dir):
     full_path = os.path.join(src_dir, single_dir)
     if not os.path.isdir(full_path):
       continue
@@ -71,25 +69,6 @@
                 args.example_commit, src_dir)
 
 
-def get_dirs_to_search(src_dir, repo_name):
-  """Gets a list of directories to search for the main git repo.
-
-  Args:
-    src_dir: The location set for the projects SRC.
-    repo_name: The name of the repo you are searching for.
-
-  Returns:
-    A list of directorys to search.
-  """
-  dirs_to_search = os.listdir(src_dir)
-  if os.path.exists(GO_PATH) and repo_name:
-    for root, dirs, _ in os.walk(GO_PATH):
-      for test_dir in dirs:
-        if repo_name in test_dir:
-          dirs_to_search.append(os.path.join(root, test_dir))
-  return dirs_to_search
-
-
 def get_repo(repo_path):
   """Gets a git repo link from a specific directory in a docker image.
 
@@ -107,25 +86,20 @@
   return None
 
 
-def check_for_repo_name(repo_path, expected_repo_name):
-  """Returns True if the repo at |repo_path| repo_name matches
-  |expected_repo_name|.
+def check_for_repo_name(repo_path, repo_name):
+  """Check to see if the repo_name matches the remote repository repo name.
 
   Args:
-    repo_path: The directory of a git repo.
-    expected_repo_name: The name of the target git repo.
+    repo_path: The directory of the git repo.
+    repo_name: The name of the target git repo.
   """
   if not os.path.exists(os.path.join(repo_path, '.git')):
     return False
 
-  repo_url, _ = execute(['git', 'config', '--get', 'remote.origin.url'],
-                        location=repo_path)
-  # Handle two common cases:
-  # https://github.com/google/syzkaller/
-  # https://github.com/google/syzkaller.git
-  repo_url = repo_url.replace('.git', '').rstrip().rstrip('/')
-  actual_repo_name = repo_url.split('/')[-1]
-  return actual_repo_name == expected_repo_name
+  out, _ = execute(['git', 'config', '--get', 'remote.origin.url'],
+                   location=repo_path)
+  out = out.split('/')[-1].replace('.git', '').rstrip()
+  return out == repo_name
 
 
 def check_for_commit(repo_path, commit):
diff --git a/infra/base-images/base-builder/detect_repo_test.py b/infra/base-images/base-builder/detect_repo_test.py
index 0243b3a..4886522 100644
--- a/infra/base-images/base-builder/detect_repo_test.py
+++ b/infra/base-images/base-builder/detect_repo_test.py
@@ -23,7 +23,6 @@
 import sys
 import tempfile
 import unittest
-from unittest import mock
 
 import detect_repo
 
@@ -37,35 +36,6 @@
 # pylint: enable=wrong-import-position
 
 
-class TestCheckForRepoName(unittest.TestCase):
-  """Tests for check_for_repo_name."""
-
-  @mock.patch('os.path.exists', return_value=True)
-  @mock.patch('detect_repo.execute',
-              return_value=('https://github.com/google/syzkaller/', None))
-  def test_go_get_style_url(self, _, __):
-    """Tests that check_for_repo_name works on repos that were downloaded using
-    go get."""
-    self.assertTrue(detect_repo.check_for_repo_name('fake-path', 'syzkaller'))
-
-  @mock.patch('os.path.exists', return_value=True)
-  @mock.patch('detect_repo.execute',
-              return_value=('https://github.com/google/syzkaller', None))
-  def test_missing_git_and_slash_url(self, _, __):
-    """Tests that check_for_repo_name works on repos who's URLs do not end in
-    ".git" or "/"."""
-    self.assertTrue(detect_repo.check_for_repo_name('fake-path', 'syzkaller'))
-
-  @mock.patch('os.path.exists', return_value=True)
-  @mock.patch('detect_repo.execute',
-              return_value=('https://github.com/google/syzkaller.git', None))
-  def test_normal_style_repo_url(self, _, __):
-    """Tests that check_for_repo_name works on normally cloned repos."""
-    self.assertTrue(detect_repo.check_for_repo_name('fake-path', 'syzkaller'))
-
-
-@unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                 'INTEGRATION_TESTS=1 not set')
 class DetectRepoIntegrationTest(unittest.TestCase):
   """Class to test the functionality of the detect_repo module."""
 
@@ -74,19 +44,20 @@
 
     with tempfile.TemporaryDirectory() as tmp_dir:
       # Construct example repo's to check for commits.
-      for test_repo in test_repos.TEST_REPOS:
-        repo_manager.clone_repo_and_get_manager(test_repo.git_url, tmp_dir)
-        self.check_with_repo(test_repo.git_url,
-                             test_repo.git_repo_name,
+      for example_repo in test_repos.TEST_REPOS:
+        repo_manager.RepoManager(example_repo.git_url, tmp_dir)
+        self.check_with_repo(example_repo.git_url,
+                             example_repo.git_repo_name,
                              tmp_dir,
-                             commit=test_repo.old_commit)
+                             commit=example_repo.old_commit)
 
   def test_infer_main_repo_from_name(self):
     """Tests that the main project repo can be inferred from a repo name."""
+
     with tempfile.TemporaryDirectory() as tmp_dir:
-      for test_repo in test_repos.TEST_REPOS:
-        repo_manager.clone_repo_and_get_manager(test_repo.git_url, tmp_dir)
-        self.check_with_repo(test_repo.git_url, test_repo.git_repo_name,
+      for example_repo in test_repos.TEST_REPOS:
+        repo_manager.RepoManager(example_repo.git_url, tmp_dir)
+        self.check_with_repo(example_repo.git_url, example_repo.git_repo_name,
                              tmp_dir)
 
   def check_with_repo(self, repo_origin, repo_name, tmp_dir, commit=None):
diff --git a/infra/base-images/base-builder/ossfuzz_coverage_runner.go b/infra/base-images/base-builder/ossfuzz_coverage_runner.go
deleted file mode 100644
index d433da2..0000000
--- a/infra/base-images/base-builder/ossfuzz_coverage_runner.go
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package mypackagebeingfuzzed
-
-import (
-	"io/ioutil"
-	"os"
-	"runtime/pprof"
-	"testing"
-)
-
-func TestFuzzCorpus(t *testing.T) {
-	dir := os.Getenv("FUZZ_CORPUS_DIR")
-	if dir == "" {
-		t.Logf("No fuzzing corpus directory set")
-		return
-	}
-	infos, err := ioutil.ReadDir(dir)
-	if err != nil {
-		t.Logf("Not fuzzing corpus directory %s", err)
-		return
-	}
-	filename := ""
-	defer func() {
-		if r := recover(); r != nil {
-			t.Error("Fuzz panicked in "+filename, r)
-		}
-	}()
-	profname := os.Getenv("FUZZ_PROFILE_NAME")
-	if profname != "" {
-		f, err := os.Create(profname + ".cpu.prof")
-		if err != nil {
-			t.Logf("error creating profile file %s\n", err)
-		} else {
-			_ = pprof.StartCPUProfile(f)
-		}
-	}
-	for i := range infos {
-		filename = dir + infos[i].Name()
-		data, err := ioutil.ReadFile(filename)
-		if err != nil {
-			t.Error("Failed to read corpus file", err)
-		}
-		FuzzFunction(data)
-	}
-	if profname != "" {
-		pprof.StopCPUProfile()
-		f, err := os.Create(profname + ".heap.prof")
-		if err != nil {
-			t.Logf("error creating heap profile file %s\n", err)
-		}
-		if err = pprof.WriteHeapProfile(f); err != nil {
-			t.Logf("error writing heap profile file %s\n", err)
-		}
-		f.Close()
-	}
-}
diff --git a/infra/base-images/base-builder/precompile_afl b/infra/base-images/base-builder/precompile_afl
deleted file mode 100755
index d6e71f2..0000000
--- a/infra/base-images/base-builder/precompile_afl
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-echo "Precompiling AFLplusplus"
-
-pushd $SRC/aflplusplus > /dev/null
-make clean
-# Unset CFLAGS and CXXFLAGS while building AFL since we don't want to slow it
-# down with sanitizers.
-SAVE_CXXFLAGS=$CXXFLAGS
-SAVE_CFLAGS=$CFLAGS
-unset CXXFLAGS
-unset CFLAGS
-export AFL_IGNORE_UNKNOWN_ENVS=1
-make clean
-AFL_NO_X86=1 PYTHON_INCLUDE=/ make
-make -C utils/aflpp_driver
-
-popd > /dev/null
-
-echo "Done."
diff --git a/infra/base-images/base-builder/precompile_honggfuzz b/infra/base-images/base-builder/precompile_honggfuzz
index df6bb2b..152922d 100755
--- a/infra/base-images/base-builder/precompile_honggfuzz
+++ b/infra/base-images/base-builder/precompile_honggfuzz
@@ -15,7 +15,7 @@
 #
 ################################################################################
 
-echo "Precompiling honggfuzz"
+echo -n "Precompiling honggfuzz to $PRECOMPILED_DIR..."
 export BUILD_OSSFUZZ_STATIC=true
 
 PACKAGES=(
@@ -31,15 +31,15 @@
 pushd $SRC/honggfuzz > /dev/null
 make clean
 # These CFLAGs match honggfuzz's default, with the exception of -mtune to
-# improve portability and `-D_HF_LINUX_NO_BFD` to remove assembly instructions
-# from the filenames.
-CC=clang CFLAGS="-O3 -funroll-loops -D_HF_LINUX_NO_BFD" make
+# improve portability.
+CC=clang CFLAGS="-O3 -funroll-loops" make
 
 # libhfuzz.a will be added by CC/CXX linker directly during linking,
 # but it's defined here to satisfy the build infrastructure
-ar rcs honggfuzz.a libhfuzz/*.o libhfcommon/*.o
+ar rcs $PRECOMPILED_DIR/honggfuzz.a libhfuzz/*.o libhfcommon/*.o
+cp honggfuzz $PRECOMPILED_DIR/
 popd > /dev/null
 
 apt-get remove -y --purge ${PACKAGES[@]}
 apt-get autoremove -y
-echo "Done."
+echo " done."
diff --git a/infra/base-images/base-builder/srcmap b/infra/base-images/base-builder/srcmap
index f967074..2d96473 100755
--- a/infra/base-images/base-builder/srcmap
+++ b/infra/base-images/base-builder/srcmap
@@ -25,14 +25,8 @@
   F=$(tempfile) && cat $1 | jq "$2" > $F && mv $F $1
 }
 
-PATHS_TO_SCAN="$SRC"
-
-if [[ $FUZZING_LANGUAGE == "go" ]]; then
-  PATHS_TO_SCAN="$PATHS_TO_SCAN $GOPATH"
-fi
-
 # Git
-for DOT_GIT_DIR in $(find $PATHS_TO_SCAN -name ".git" -type d); do
+for DOT_GIT_DIR in $(find $SRC -name ".git" -type d); do
   GIT_DIR=$(dirname $DOT_GIT_DIR)
   cd $GIT_DIR
   GIT_URL=$(git config --get remote.origin.url)
@@ -41,7 +35,7 @@
 done
 
 # Subversion
-for DOT_SVN_DIR in $(find $PATHS_TO_SCAN -name ".svn" -type d); do
+for DOT_SVN_DIR in $(find $SRC -name ".svn" -type d); do
   SVN_DIR=$(dirname $DOT_SVN_DIR)
   cd $SVN_DIR
   SVN_URL=$(svn info | grep "^URL:" | sed  's/URL: //g')
@@ -50,7 +44,7 @@
 done
 
 # Mercurial
-for DOT_HG_DIR in $(find $PATHS_TO_SCAN -name ".hg" -type d); do
+for DOT_HG_DIR in $(find $SRC -name ".hg" -type d); do
   HG_DIR=$(dirname $DOT_HG_DIR)
   cd $HG_DIR
   HG_URL=$(hg paths default)
diff --git a/infra/base-images/base-builder/write_labels.py b/infra/base-images/base-builder/write_labels.py
index 6766e37..338ac71 100755
--- a/infra/base-images/base-builder/write_labels.py
+++ b/infra/base-images/base-builder/write_labels.py
@@ -1,26 +1,10 @@
 #!/usr/bin/python3
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Script for writing from project.yaml to .labels file."""
 
 import os
 import json
 import sys
 
-
 def main():
-  """Writes labels."""
   if len(sys.argv) != 3:
     print('Usage: write_labels.py labels_json out_dir', file=sys.stderr)
     sys.exit(1)
@@ -29,8 +13,8 @@
   out = sys.argv[2]
 
   for target_name, labels in labels_by_target.items():
-    with open(os.path.join(out, target_name + '.labels'), 'w') as file_handle:
-      file_handle.write('\n'.join(labels))
+    with open(os.path.join(out, target_name + '.labels'), 'w') as f:
+      f.write('\n'.join(labels))
 
 
 if __name__ == '__main__':
diff --git a/infra/base-images/base-clang/Dockerfile b/infra/base-images/base-clang/Dockerfile
index 3c16a8f..df8376d 100644
--- a/infra/base-images/base-clang/Dockerfile
+++ b/infra/base-images/base-clang/Dockerfile
@@ -18,16 +18,6 @@
 
 FROM gcr.io/oss-fuzz-base/base-image
 
-# Install newer cmake.
-ENV CMAKE_VERSION 3.19.2
-RUN apt-get update && apt-get install -y wget sudo && \
-    wget https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-Linux-x86_64.sh && \
-    chmod +x cmake-$CMAKE_VERSION-Linux-x86_64.sh && \
-    ./cmake-$CMAKE_VERSION-Linux-x86_64.sh --skip-license --prefix="/usr/local" && \
-    rm cmake-$CMAKE_VERSION-Linux-x86_64.sh && \
-    SUDO_FORCE_REMOVE=yes apt-get remove --purge -y wget sudo && \
-    rm -rf /usr/local/doc/cmake /usr/local/bin/cmake-gui
-
 COPY checkout_build_install_llvm.sh /root/
 # Keep all steps in the same script to decrease the number of intermediate
 # layes in docker file.
diff --git a/infra/base-images/base-clang/checkout_build_install_llvm.sh b/infra/base-images/base-clang/checkout_build_install_llvm.sh
index f6e8ca9..156898c 100755
--- a/infra/base-images/base-clang/checkout_build_install_llvm.sh
+++ b/infra/base-images/base-clang/checkout_build_install_llvm.sh
@@ -15,14 +15,8 @@
 #
 ################################################################################
 
-# See issue #4270. The compiler crashes on GCB instance with 32 vCPUs, so when
-# we compile on GCB we want 16 cores. But locally we want more (so use nproc /
-# 2).
-NPROC=$(expr $(nproc) / 2)
-
-# zlib1g-dev is needed for llvm-profdata to handle coverage data from rust compiler
-LLVM_DEP_PACKAGES="build-essential make cmake ninja-build git python3 g++-multilib binutils-dev zlib1g-dev"
-apt-get install -y $LLVM_DEP_PACKAGES --no-install-recommends
+LLVM_DEP_PACKAGES="build-essential make cmake ninja-build git python2.7 g++-multilib"
+apt-get install -y $LLVM_DEP_PACKAGES
 
 # Checkout
 CHECKOUT_RETRIES=10
@@ -47,55 +41,37 @@
   return $CHECKOUT_RETURN_CODE
 }
 
-function cmake_llvm {
-  extra_args="$@"
-  cmake -G "Ninja" \
-      -DLIBCXX_ENABLE_SHARED=OFF \
-      -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \
-      -DLIBCXXABI_ENABLE_SHARED=OFF \
-      -DCMAKE_BUILD_TYPE=Release \
-      -DLLVM_TARGETS_TO_BUILD="$TARGET_TO_BUILD" \
-      -DLLVM_ENABLE_PROJECTS="$PROJECTS_TO_BUILD" \
-      -DLLVM_BINUTILS_INCDIR="/usr/include/" \
-      $extra_args \
-      $LLVM_SRC/llvm
-}
-
 # Use chromium's clang revision
 mkdir $SRC/chromium_tools
 cd $SRC/chromium_tools
-git clone https://chromium.googlesource.com/chromium/src/tools/clang --depth 1
+git clone https://chromium.googlesource.com/chromium/src/tools/clang
 cd clang
 
 LLVM_SRC=$SRC/llvm-project
-
-# For manual bumping.
-OUR_LLVM_REVISION=llvmorg-12-init-17251-g6de48655
-
-# To allow for manual downgrades. Set to 0 to use Chrome's clang version (i.e.
-# *not* force a manual downgrade). Set to 1 to force a manual downgrade.
-FORCE_OUR_REVISION=1
-LLVM_REVISION=$(grep -Po "CLANG_REVISION = '\K([^']+)" scripts/update.py)
+OUR_LLVM_REVISION=e84b7a5fe230e42b8e6fe451369874a773bf1867  # For manual bumping.
+FORCE_OUR_REVISION=0  # To allow for manual downgrades.
+LLVM_REVISION=$(grep -Po "CLANG_REVISION = '\K[a-f0-9]+(?=')" scripts/update.py)
 
 clone_with_retries https://github.com/llvm/llvm-project.git $LLVM_SRC
 
 set +e
-git -C $LLVM_SRC merge-base --is-ancestor $OUR_LLVM_REVISION $LLVM_REVISION
-IS_OUR_REVISION_ANCESTOR_RETCODE=$?
+IS_OUR_REVISION_ANCESTOR=$(git -C $LLVM_SRC merge-base --is-ancestor $OUR_LLVM_REVISION $LLVM_REVISION)
 set -e
 
-# Use our revision if specified by FORCE_OUR_REVISION or if our revision is a
-# later revision than Chrome's (i.e. not an ancestor of Chrome's).
-if [ $IS_OUR_REVISION_ANCESTOR_RETCODE -ne 0 ] || [ $FORCE_OUR_REVISION -eq 1 ] ; then
+# Use our revision if specified or if our revision is a later revision than
+# Chrome's.
+if [ ! $IS_OUR_REVISION_ANCESTOR  ] || [ $FORCE_OUR_REVISION ] ; then
   LLVM_REVISION=$OUR_LLVM_REVISION
 fi
 
 git -C $LLVM_SRC checkout $LLVM_REVISION
 echo "Using LLVM revision: $LLVM_REVISION"
 
-# Build & install.
+# Build & install. We build clang in two stages because gcc can't build a
+# static version of libcxxabi
+# (see https://github.com/google/oss-fuzz/issues/2164).
 mkdir -p $WORK/llvm-stage2 $WORK/llvm-stage1
-python3 $SRC/chromium_tools/clang/scripts/update.py --output-dir $WORK/llvm-stage1
+cd $WORK/llvm-stage1
 
 TARGET_TO_BUILD=
 case $(uname -m) in
@@ -111,117 +87,64 @@
         ;;
 esac
 
-PROJECTS_TO_BUILD="libcxx;libcxxabi;compiler-rt;clang;lld"
+PROJECTS_TO_BUILD="libcxx;libcxxabi;compiler-rt;clang"
+cmake -G "Ninja" \
+      -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON -DLIBCXXABI_ENABLE_SHARED=OFF \
+      -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="$TARGET_TO_BUILD" \
+      -DLLVM_ENABLE_PROJECTS=$PROJECTS_TO_BUILD \
+      $LLVM_SRC/llvm
+ninja
 
 cd $WORK/llvm-stage2
 export CC=$WORK/llvm-stage1/bin/clang
 export CXX=$WORK/llvm-stage1/bin/clang++
-cmake_llvm
-ninja -j $NPROC
+cmake -G "Ninja" \
+      -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON -DLIBCXXABI_ENABLE_SHARED=OFF \
+      -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="$TARGET_TO_BUILD" \
+      -DLLVM_ENABLE_PROJECTS=$PROJECTS_TO_BUILD \
+      $LLVM_SRC/llvm
+ninja
 ninja install
 rm -rf $WORK/llvm-stage1 $WORK/llvm-stage2
 
-# Use the clang we just built from now on.
-CMAKE_EXTRA_ARGS="-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++"
-
-# 32-bit libraries.
 mkdir -p $WORK/i386
 cd $WORK/i386
-cmake_llvm $CMAKE_EXTRA_ARGS \
-    -DCMAKE_INSTALL_PREFIX=/usr/i386/ \
-    -DCMAKE_C_FLAGS="-m32" \
-    -DCMAKE_CXX_FLAGS="-m32"
+cmake -G "Ninja" \
+      -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
+      -DCMAKE_INSTALL_PREFIX=/usr/i386/ -DLIBCXX_ENABLE_SHARED=OFF \
+      -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON -DCMAKE_BUILD_TYPE=Release \
+      -DCMAKE_C_FLAGS="-m32" -DCMAKE_CXX_FLAGS="-m32" \
+      -DLLVM_TARGETS_TO_BUILD="$TARGET_TO_BUILD" \
+      -DLLVM_ENABLE_PROJECTS=$PROJECTS_TO_BUILD \
+      $LLVM_SRC/llvm
 
-ninja -j $NPROC cxx
+ninja cxx
 ninja install-cxx
 rm -rf $WORK/i386
 
-# MemorySanitizer instrumented libraries.
 mkdir -p $WORK/msan
 cd $WORK/msan
 
 # https://github.com/google/oss-fuzz/issues/1099
-cat <<EOF > $WORK/msan/blocklist.txt
+cat <<EOF > $WORK/msan/blacklist.txt
 fun:__gxx_personality_*
 EOF
 
-cmake_llvm $CMAKE_EXTRA_ARGS \
-    -DLLVM_USE_SANITIZER=Memory \
-    -DCMAKE_INSTALL_PREFIX=/usr/msan/ \
-    -DCMAKE_CXX_FLAGS="-fsanitize-blacklist=$WORK/msan/blocklist.txt"
-
-ninja -j $NPROC cxx
+cmake -G "Ninja" \
+      -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
+      -DLLVM_USE_SANITIZER=Memory -DCMAKE_INSTALL_PREFIX=/usr/msan/ \
+      -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \
+      -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="$TARGET_TO_BUILD" \
+      -DCMAKE_CXX_FLAGS="-fsanitize-blacklist=$WORK/msan/blacklist.txt" \
+      -DLLVM_ENABLE_PROJECTS=$PROJECTS_TO_BUILD \
+      $LLVM_SRC/llvm
+ninja cxx
 ninja install-cxx
 rm -rf $WORK/msan
 
-# DataFlowSanitizer instrumented libraries.
-mkdir -p $WORK/dfsan
-cd $WORK/dfsan
-
-cmake_llvm $CMAKE_EXTRA_ARGS \
-    -DLLVM_USE_SANITIZER=DataFlow \
-    -DCMAKE_INSTALL_PREFIX=/usr/dfsan/
-
-ninja -j $NPROC cxx cxxabi
-ninja install-cxx install-cxxabi
-rm -rf $WORK/dfsan
-
-# libFuzzer sources.
 cp -r $LLVM_SRC/compiler-rt/lib/fuzzer $SRC/libfuzzer
-
 # Cleanup
 rm -rf $LLVM_SRC
 rm -rf $SRC/chromium_tools
 apt-get remove --purge -y $LLVM_DEP_PACKAGES
 apt-get autoremove -y
-
-# Delete unneeded parts of LLVM to reduce image size.
-# See https://github.com/google/oss-fuzz/issues/5170
-LLVM_TOOLS_TMPDIR=/tmp/llvm-tools
-mkdir $LLVM_TOOLS_TMPDIR
-# Move binaries with llvm- prefix that we want into LLVM_TOOLS_TMPDIR
-mv \
-  /usr/local/bin/llvm-ar \
-  /usr/local/bin/llvm-as \
-  /usr/local/bin/llvm-config \
-  /usr/local/bin/llvm-cov \
-  /usr/local/bin/llvm-objcopy \
-  /usr/local/bin/llvm-profdata \
-  /usr/local/bin/llvm-ranlib \
-  /usr/local/bin/llvm-symbolizer \
-  /usr/local/bin/llvm-undname \
-  $LLVM_TOOLS_TMPDIR
-# Delete remaining llvm- binaries.
-rm -rf /usr/local/bin/llvm-*
-# Restore the llvm- binaries we want to keep.
-mv $LLVM_TOOLS_TMPDIR/* /usr/local/bin/
-rm -rf $LLVM_TOOLS_TMPDIR
-
-# Remove binaries from LLVM buld that we don't need.
-rm -f \
-  /usr/local/bin/bugpoint \
-  /usr/local/bin/llc \
-  /usr/local/bin/lli \
-  /usr/local/bin/clang-check \
-  /usr/local/bin/clang-refactor \
-  /usr/local/bin/clang-offload-wrapper \
-  /usr/local/bin/clang-offload-bundler \
-  /usr/local/bin/clang-check \
-  /usr/local/bin/clang-refactor \
-  /usr/local/bin/c-index-test \
-  /usr/local/bin/clang-rename \
-  /usr/local/bin/clang-scan-deps \
-  /usr/local/bin/clang-extdef-mapping \
-  /usr/local/bin/diagtool \
-  /usr/local/bin/sanstats \
-  /usr/local/bin/dsymutil \
-  /usr/local/bin/verify-uselistorder \
-  /usr/local/bin/clang-format
-
-# Remove unneeded clang libs, CMake files from LLVM build, lld libs, and the
-# libraries.
-# Note: we need fuzzer_no_main libraries for atheris. Don't delete.
-rm -rf \
-  /usr/local/lib/libclang* \
-  /usr/local/lib/liblld* \
-  /usr/local/lib/cmake/
diff --git a/infra/base-images/base-msan-builder/Dockerfile b/infra/base-images/base-msan-builder/Dockerfile
new file mode 100644
index 0000000..315730b
--- /dev/null
+++ b/infra/base-images/base-msan-builder/Dockerfile
@@ -0,0 +1,28 @@
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+FROM gcr.io/oss-fuzz-base/base-clang
+RUN sed -i -r 's/#\s*deb-src/deb-src/g' /etc/apt/sources.list
+RUN apt-get update && apt-get install -y python dpkg-dev patchelf python-apt zip
+
+# Take all libraries from lib/msan
+RUN cp -R /usr/msan/lib/* /usr/lib/
+
+COPY compiler_wrapper.py msan_build.py patch_build.py wrapper_utils.py /usr/local/bin/
+COPY packages /usr/local/bin/packages
+
+RUN mkdir /msan
+WORKDIR /msan
diff --git a/infra/base-images/base-sanitizer-libs-builder/compiler_wrapper.py b/infra/base-images/base-msan-builder/compiler_wrapper.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/compiler_wrapper.py
rename to infra/base-images/base-msan-builder/compiler_wrapper.py
diff --git a/infra/base-images/base-sanitizer-libs-builder/compiler_wrapper_test.py b/infra/base-images/base-msan-builder/compiler_wrapper_test.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/compiler_wrapper_test.py
rename to infra/base-images/base-msan-builder/compiler_wrapper_test.py
diff --git a/infra/base-images/base-msan-builder/msan_build.py b/infra/base-images/base-msan-builder/msan_build.py
new file mode 100755
index 0000000..928b1a5
--- /dev/null
+++ b/infra/base-images/base-msan-builder/msan_build.py
@@ -0,0 +1,456 @@
+#!/usr/bin/env python
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+from __future__ import print_function
+import argparse
+import imp
+import os
+import multiprocessing
+import resource
+import shutil
+import subprocess
+import tempfile
+
+import apt
+from apt import debfile
+
+from packages import package
+import wrapper_utils
+
+SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
+PACKAGES_DIR = os.path.join(SCRIPT_DIR, 'packages')
+
+TRACK_ORIGINS_ARG = '-fsanitize-memory-track-origins='
+
+INJECTED_ARGS = [
+    '-fsanitize=memory',
+    '-fsanitize-recover=memory',
+    '-fPIC',
+    '-fno-omit-frame-pointer',
+]
+
+
+class MSanBuildException(Exception):
+  """Base exception."""
+
+
+def GetTrackOriginsFlag():
+  """Get the track origins flag."""
+  if os.getenv('MSAN_NO_TRACK_ORIGINS'):
+    return TRACK_ORIGINS_ARG + '0'
+
+  return TRACK_ORIGINS_ARG + '2'
+
+
+def GetInjectedFlags():
+  return INJECTED_ARGS + [GetTrackOriginsFlag()]
+
+
+def SetUpEnvironment(work_dir):
+  """Set up build environment."""
+  env = {}
+  env['REAL_CLANG_PATH'] = subprocess.check_output(['which', 'clang']).strip()
+  print('Real clang at', env['REAL_CLANG_PATH'])
+  compiler_wrapper_path = os.path.join(SCRIPT_DIR, 'compiler_wrapper.py')
+
+  # Symlink binaries into TMP/bin
+  bin_dir = os.path.join(work_dir, 'bin')
+  os.mkdir(bin_dir)
+
+  dpkg_host_architecture = wrapper_utils.DpkgHostArchitecture()
+  wrapper_utils.CreateSymlinks(
+      compiler_wrapper_path, bin_dir, [
+          'clang',
+          'clang++',
+          # Not all build rules respect $CC/$CXX, so make additional symlinks.
+          'gcc',
+          'g++',
+          'cc',
+          'c++',
+          dpkg_host_architecture + '-gcc',
+          dpkg_host_architecture + '-g++',
+      ])
+
+  env['CC'] = os.path.join(bin_dir, 'clang')
+  env['CXX'] = os.path.join(bin_dir, 'clang++')
+
+  MSAN_OPTIONS = ' '.join(GetInjectedFlags())
+
+  # We don't use nostrip because some build rules incorrectly break when it is
+  # passed. Instead we install our own no-op strip binaries.
+  env['DEB_BUILD_OPTIONS'] = ('nocheck parallel=%d' %
+                              multiprocessing.cpu_count())
+  env['DEB_CFLAGS_APPEND'] = MSAN_OPTIONS
+  env['DEB_CXXFLAGS_APPEND'] = MSAN_OPTIONS + ' -stdlib=libc++'
+  env['DEB_CPPFLAGS_APPEND'] = MSAN_OPTIONS
+  env['DEB_LDFLAGS_APPEND'] = MSAN_OPTIONS
+  env['DPKG_GENSYMBOLS_CHECK_LEVEL'] = '0'
+
+  # debian/rules can set DPKG_GENSYMBOLS_CHECK_LEVEL explicitly, so override it.
+  gen_symbols_wrapper = (
+        '#!/bin/sh\n'
+        'export DPKG_GENSYMBOLS_CHECK_LEVEL=0\n'
+        '/usr/bin/dpkg-gensymbols "$@"\n')
+
+  wrapper_utils.InstallWrapper(bin_dir, 'dpkg-gensymbols',
+                               gen_symbols_wrapper)
+
+  # Install no-op strip binaries.
+  no_op_strip = ('#!/bin/sh\n'
+                 'exit 0\n')
+  wrapper_utils.InstallWrapper(
+      bin_dir, 'strip', no_op_strip,
+      [dpkg_host_architecture + '-strip'])
+
+  env['PATH'] = bin_dir + ':' + os.environ['PATH']
+
+  # nocheck doesn't disable override_dh_auto_test. So we have this hack to try
+  # to disable "make check" or "make test" invocations.
+  make_wrapper = (
+      '#!/bin/bash\n'
+      'if [ "$1" = "test" ] || [ "$1" = "check" ]; then\n'
+      '  exit 0\n'
+      'fi\n'
+      '/usr/bin/make "$@"\n')
+  wrapper_utils.InstallWrapper(bin_dir, 'make',
+                               make_wrapper)
+
+  # Prevent entire build from failing because of bugs/uninstrumented in tools
+  # that are part of the build.
+  msan_log_dir = os.path.join(work_dir, 'msan')
+  os.mkdir(msan_log_dir)
+  msan_log_path = os.path.join(msan_log_dir, 'log')
+  env['MSAN_OPTIONS'] = (
+      'halt_on_error=0:exitcode=0:report_umrs=0:log_path=' + msan_log_path)
+
+  # Increase maximum stack size to prevent tests from failing.
+  limit = 128 * 1024 * 1024
+  resource.setrlimit(resource.RLIMIT_STACK, (limit, limit))
+  return env
+
+
+def FindPackageDebs(package_name, work_directory):
+  """Find package debs."""
+  deb_paths = []
+  cache = apt.Cache()
+
+  for filename in os.listdir(work_directory):
+    file_path = os.path.join(work_directory, filename)
+    if not file_path.endswith('.deb'):
+      continue
+
+    # Matching package name.
+    deb = debfile.DebPackage(file_path)
+    if deb.pkgname == package_name:
+      deb_paths.append(file_path)
+      continue
+
+    # Also include -dev packages that depend on the runtime package.
+    pkg = cache[deb.pkgname]
+    if pkg.section != 'libdevel' and pkg.section != 'universe/libdevel':
+      continue
+
+    # But ignore -dbg packages.
+    if deb.pkgname.endswith('-dbg'):
+      continue
+
+    for dependency in deb.depends:
+      if any(dep[0] == package_name for dep in dependency):
+        deb_paths.append(file_path)
+        break
+
+  return deb_paths
+
+
+def ExtractLibraries(deb_paths, work_directory, output_directory):
+  """Extract libraries from .deb packages."""
+  extract_directory = os.path.join(work_directory, 'extracted')
+  if os.path.exists(extract_directory):
+    shutil.rmtree(extract_directory, ignore_errors=True)
+
+  os.mkdir(extract_directory)
+
+  for deb_path in deb_paths:
+    subprocess.check_call(['dpkg-deb', '-x', deb_path, extract_directory])
+
+  extracted = []
+  for root, _, filenames in os.walk(extract_directory):
+    if 'libx32' in root or 'lib32' in root:
+      continue
+
+    for filename in filenames:
+      if (not filename.endswith('.so') and '.so.' not in filename and
+          not filename.endswith('.a') and '.a' not in filename):
+        continue
+
+      file_path = os.path.join(root, filename)
+      rel_file_path = os.path.relpath(file_path, extract_directory)
+      rel_directory = os.path.dirname(rel_file_path)
+
+      target_dir = os.path.join(output_directory, rel_directory)
+      if not os.path.exists(target_dir):
+        os.makedirs(target_dir)
+
+      target_file_path = os.path.join(output_directory, rel_file_path)
+      extracted.append(target_file_path)
+        
+      if os.path.lexists(target_file_path):
+        os.remove(target_file_path)
+
+      if os.path.islink(file_path):
+        link_path = os.readlink(file_path)
+        if os.path.isabs(link_path):
+          # Make absolute links relative.
+          link_path = os.path.relpath(
+              link_path, os.path.join('/', rel_directory))
+
+        os.symlink(link_path, target_file_path)
+      else:
+        shutil.copy2(file_path, target_file_path)
+
+  return extracted
+
+
+def GetPackage(package_name):
+  apt_cache = apt.Cache()
+  version = apt_cache[package_name].candidate
+  source_name = version.source_name
+  local_source_name = source_name.replace('.', '_')
+
+  custom_package_path = os.path.join(PACKAGES_DIR, local_source_name) + '.py'
+  if not os.path.exists(custom_package_path):
+    print('Using default package build steps.')
+    return package.Package(source_name, version)
+
+  print('Using custom package build steps.')
+  module = imp.load_source('packages.' + local_source_name, custom_package_path)
+  return module.Package(version)
+
+
+def PatchRpath(path, output_directory):
+  """Patch rpath to be relative to $ORIGIN."""
+  try:
+    rpaths = subprocess.check_output(
+        ['patchelf', '--print-rpath', path]).strip()
+  except subprocess.CalledProcessError:
+    return
+
+  if not rpaths:
+    return
+
+  processed_rpath = []
+  rel_directory = os.path.join(
+      '/', os.path.dirname(os.path.relpath(path, output_directory)))
+
+  for rpath in rpaths.split(':'):
+    if '$ORIGIN' in rpath:
+      # Already relative.
+      processed_rpath.append(rpath)
+      continue
+
+    processed_rpath.append(os.path.join(
+        '$ORIGIN',
+        os.path.relpath(rpath, rel_directory)))
+
+  processed_rpath = ':'.join(processed_rpath)
+  print('Patching rpath for', path, 'to', processed_rpath)
+  subprocess.check_call(
+      ['patchelf', '--force-rpath', '--set-rpath',
+       processed_rpath, path])
+
+
+def _CollectDependencies(apt_cache, pkg, cache, dependencies):
+  """Collect dependencies that need to be built."""
+  C_OR_CXX_DEPS = [
+      'libc++1',
+      'libc6',
+      'libc++abi1',
+      'libgcc1',
+      'libstdc++6',
+  ]
+
+  BLACKLISTED_PACKAGES = [
+      'libcapnp-0.5.3',  # fails to compile on newer clang.
+      'libllvm5.0',
+      'libmircore1',
+      'libmircommon7',
+      'libmirclient9',
+      'libmirprotobuf3',
+      'multiarch-support',
+  ]
+
+  if pkg.name in BLACKLISTED_PACKAGES:
+    return False
+
+  if pkg.section != 'libs' and pkg.section != 'universe/libs':
+    return False
+
+  if pkg.name in C_OR_CXX_DEPS:
+    return True
+
+  is_c_or_cxx = False
+  for dependency in pkg.candidate.dependencies:
+    dependency = dependency[0]
+
+    if dependency.name in cache:
+      is_c_or_cxx |= cache[dependency.name]
+    else:
+      is_c_or_cxx |= _CollectDependencies(apt_cache, apt_cache[dependency.name],
+                                          cache, dependencies)
+  if is_c_or_cxx:
+    dependencies.append(pkg.name)
+
+  cache[pkg.name] = is_c_or_cxx
+  return is_c_or_cxx
+
+
+def GetBuildList(package_name):
+  """Get list of packages that need to be built including dependencies."""
+  apt_cache = apt.Cache()
+  pkg = apt_cache[package_name]
+
+  dependencies = []
+  _CollectDependencies(apt_cache, pkg, {}, dependencies)
+  return dependencies
+
+
+class MSanBuilder(object):
+  """MSan builder."""
+
+  def __init__(self, debug=False, log_path=None, work_dir=None, no_track_origins=False):
+    self.debug = debug
+    self.log_path = log_path
+    self.work_dir = work_dir
+    self.no_track_origins = no_track_origins
+    self.env = None
+
+  def __enter__(self):
+    if not self.work_dir:
+      self.work_dir = tempfile.mkdtemp(dir=self.work_dir)
+
+    if os.path.exists(self.work_dir):
+      shutil.rmtree(self.work_dir, ignore_errors=True)
+
+    os.makedirs(self.work_dir)
+    self.env = SetUpEnvironment(self.work_dir)
+
+    if self.debug and self.log_path:
+      self.env['WRAPPER_DEBUG_LOG_PATH'] = self.log_path
+
+    if self.no_track_origins:
+      self.env['MSAN_NO_TRACK_ORIGINS'] = '1'
+
+    return self
+
+  def __exit__(self, exc_type, exc_value, traceback):
+    if not self.debug:
+      shutil.rmtree(self.work_dir, ignore_errors=True)
+
+  def Build(self, package_name, output_directory, create_subdirs=False):
+    """Build the package and write results into the output directory."""
+    deb_paths = FindPackageDebs(package_name, self.work_dir)
+    if deb_paths:
+      print('Source package already built for', package_name)
+    else:
+      pkg = GetPackage(package_name)
+
+      pkg.InstallBuildDeps()
+      source_directory = pkg.DownloadSource(self.work_dir)
+      print('Source downloaded to', source_directory)
+
+      # custom bin directory for custom build scripts to write wrappers.
+      custom_bin_dir = os.path.join(self.work_dir, package_name + '_bin')
+      os.mkdir(custom_bin_dir)
+      env = self.env.copy()
+      env['PATH'] = custom_bin_dir + ':' + env['PATH']
+
+      pkg.Build(source_directory, env, custom_bin_dir)
+      shutil.rmtree(custom_bin_dir, ignore_errors=True)
+
+      deb_paths = FindPackageDebs(package_name, self.work_dir)
+
+    if not deb_paths:
+      raise MSanBuildException('Failed to find .deb packages.')
+
+    print('Extracting', ' '.join(deb_paths))
+
+    if create_subdirs:
+      extract_directory = os.path.join(output_directory, package_name)
+    else:
+      extract_directory = output_directory
+
+    extracted_paths = ExtractLibraries(deb_paths, self.work_dir,
+                                       extract_directory)
+    for extracted_path in extracted_paths:
+      if not os.path.islink(extracted_path):
+        PatchRpath(extracted_path, extract_directory)
+
+
+def main():
+  parser = argparse.ArgumentParser('msan_build.py', description='MSan builder.')
+  parser.add_argument('package_names', nargs='+', help='Name of the packages.')
+  parser.add_argument('output_dir', help='Output directory.')
+  parser.add_argument('--create-subdirs', action='store_true',
+                      help=('Create subdirectories in the output '
+                            'directory for each package.'))
+  parser.add_argument('--work-dir', help='Work directory.')
+  parser.add_argument('--no-build-deps', action='store_true',
+                      help='Don\'t build dependencies.')
+  parser.add_argument('--debug', action='store_true', help='Enable debug mode.')
+  parser.add_argument('--log-path', help='Log path for debugging.')
+  parser.add_argument('--no-track-origins',
+                      action='store_true',
+                      help='Build with -fsanitize-memory-track-origins=0.')
+  args = parser.parse_args()
+
+  if args.no_track_origins:
+    os.environ['MSAN_NO_TRACK_ORIGINS'] = '1'
+
+  if not os.path.exists(args.output_dir):
+    os.makedirs(args.output_dir)
+
+  if args.no_build_deps:
+    package_names = args.package_names
+  else:
+    all_packages = set()
+    package_names = []
+
+    # Get list of packages to build, including all dependencies.
+    for package_name in args.package_names:
+      for dep in GetBuildList(package_name):
+        if dep in all_packages:
+          continue
+
+        if args.create_subdirs:
+          os.mkdir(os.path.join(args.output_dir, dep))
+
+        all_packages.add(dep)
+        package_names.append(dep)
+
+  print('Going to build:')
+  for package_name in package_names:
+    print('\t', package_name)
+
+  with MSanBuilder(debug=args.debug, log_path=args.log_path,
+                   work_dir=args.work_dir,
+                   no_track_origins=args.no_track_origins) as builder:
+    for package_name in package_names:
+      builder.Build(package_name, args.output_dir, args.create_subdirs)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/__init__.py b/infra/base-images/base-msan-builder/packages/__init__.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/__init__.py
rename to infra/base-images/base-msan-builder/packages/__init__.py
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/boost1_58.py b/infra/base-images/base-msan-builder/packages/boost1_58.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/boost1_58.py
rename to infra/base-images/base-msan-builder/packages/boost1_58.py
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/gnutls28.py b/infra/base-images/base-msan-builder/packages/gnutls28.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/gnutls28.py
rename to infra/base-images/base-msan-builder/packages/gnutls28.py
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/libgcrypt20.py b/infra/base-images/base-msan-builder/packages/libgcrypt20.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/libgcrypt20.py
rename to infra/base-images/base-msan-builder/packages/libgcrypt20.py
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/mesa.py b/infra/base-images/base-msan-builder/packages/mesa.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/mesa.py
rename to infra/base-images/base-msan-builder/packages/mesa.py
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/nettle.py b/infra/base-images/base-msan-builder/packages/nettle.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/nettle.py
rename to infra/base-images/base-msan-builder/packages/nettle.py
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/openssl.py b/infra/base-images/base-msan-builder/packages/openssl.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/openssl.py
rename to infra/base-images/base-msan-builder/packages/openssl.py
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/package.py b/infra/base-images/base-msan-builder/packages/package.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/package.py
rename to infra/base-images/base-msan-builder/packages/package.py
diff --git a/infra/base-images/base-msan-builder/packages/pixman.py b/infra/base-images/base-msan-builder/packages/pixman.py
new file mode 100644
index 0000000..d63b146
--- /dev/null
+++ b/infra/base-images/base-msan-builder/packages/pixman.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+import os
+import shutil
+
+import package
+
+
+class Package(package.Package):
+  """pixman package."""
+
+  def __init__(self, apt_version):
+    super(Package, self).__init__('pixman', apt_version)
+
+  def PostDownload(self, source_directory):
+    # Incorrect checking of GCC vector extension availability.
+    os.system(
+      'sed s/support_for_gcc_vector_extensions=yes/'
+      'support_for_gcc_vector_extensions=no/ -i %s/configure.ac' %
+      source_directory)
+
+  def PreBuild(self, source_directory, env, custom_bin_dir):
+    blacklist_flag = ' -fsanitize-blacklist=' + os.path.join(
+        os.path.dirname(os.path.abspath(__file__)),
+        'pixman_blacklist.txt')
+    env['DEB_CXXFLAGS_APPEND'] += blacklist_flag
+    env['DEB_CFLAGS_APPEND'] += blacklist_flag
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/pixman_blocklist.txt b/infra/base-images/base-msan-builder/packages/pixman_blacklist.txt
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/pixman_blocklist.txt
rename to infra/base-images/base-msan-builder/packages/pixman_blacklist.txt
diff --git a/infra/base-images/base-msan-builder/packages/pulseaudio.py b/infra/base-images/base-msan-builder/packages/pulseaudio.py
new file mode 100644
index 0000000..853b9e7
--- /dev/null
+++ b/infra/base-images/base-msan-builder/packages/pulseaudio.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+from __future__ import print_function
+import glob
+import os
+import subprocess
+
+import package
+
+
+class Package(package.Package):
+  """PulseAudio package."""
+
+  def __init__(self, apt_version):
+    super(Package, self).__init__('pulseaudio', apt_version)
+
+  def PostDownload(self, source_directory):
+    """Remove blacklisted patches."""
+    # Fix *droid* patches.
+    bad_patch_path = os.path.join(
+        source_directory, 'debian', 'patches',
+        '0600-droid-sync-with-upstream-for-Android-5-support-and-b.patch')
+    if not os.path.exists(bad_patch_path):
+      return
+
+    print('Applying custom patches.')
+    package.ApplyPatch(source_directory, 'pulseaudio_fix_android.patch')
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/pulseaudio_fix_android.patch b/infra/base-images/base-msan-builder/packages/pulseaudio_fix_android.patch
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/pulseaudio_fix_android.patch
rename to infra/base-images/base-msan-builder/packages/pulseaudio_fix_android.patch
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/sqlite3.py b/infra/base-images/base-msan-builder/packages/sqlite3.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/sqlite3.py
rename to infra/base-images/base-msan-builder/packages/sqlite3.py
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/systemd.py b/infra/base-images/base-msan-builder/packages/systemd.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/systemd.py
rename to infra/base-images/base-msan-builder/packages/systemd.py
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/tar.py b/infra/base-images/base-msan-builder/packages/tar.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/packages/tar.py
rename to infra/base-images/base-msan-builder/packages/tar.py
diff --git a/infra/base-images/base-msan-builder/patch_build.py b/infra/base-images/base-msan-builder/patch_build.py
new file mode 100755
index 0000000..04fc97c
--- /dev/null
+++ b/infra/base-images/base-msan-builder/patch_build.py
@@ -0,0 +1,139 @@
+#!/usr/bin/env python
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+from __future__ import print_function
+import argparse
+import os
+import re
+import shutil
+import subprocess
+import sys
+
+INSTRUMENTED_LIBRARIES_DIRNAME = 'instrumented_libraries'
+MSAN_LIBS_PATH = os.getenv('MSAN_LIBS_PATH', '/msan')
+
+
+def IsElf(file_path):
+  """Whether if the file is an elf file."""
+  with open(file_path) as f:
+    return f.read(4) == '\x7fELF'
+
+
+def Ldd(binary_path):
+  """Run ldd on a file."""
+  try:
+    output = subprocess.check_output(['ldd', binary_path], stderr=subprocess.STDOUT)
+  except subprocess.CalledProcessError:
+    print('Failed to call ldd on', binary_path, file=sys.stderr)
+    return []
+
+  libs = []
+
+  OUTPUT_PATTERN = re.compile(r'\s*([^\s]+)\s*=>\s*([^\s]+)')
+  for line in output.splitlines():
+    match = OUTPUT_PATTERN.match(line)
+    if not match:
+      continue
+
+    libs.append((match.group(1), match.group(2)))
+
+  return libs
+
+
+def FindLib(path):
+  """Find instrumented version of lib."""
+  candidate_path = os.path.join(MSAN_LIBS_PATH, path[1:])
+  if os.path.exists(candidate_path):
+    return candidate_path
+  
+  for lib_dir in os.listdir(MSAN_LIBS_PATH):
+    candidate_path = os.path.join(MSAN_LIBS_PATH, lib_dir, path[1:])
+    if os.path.exists(candidate_path):
+      return candidate_path
+
+  return None
+
+
+def PatchBinary(binary_path, instrumented_dir):
+  """Patch binary to link to instrumented libs."""
+  extra_rpaths = set()
+
+  for name, path in Ldd(binary_path):
+    if not os.path.isabs(path):
+      continue
+
+    instrumented_path = FindLib(path)
+    if not instrumented_path:
+      print('WARNING: Instrumented library not found for', path,
+            file=sys.stderr)
+      continue
+
+    target_path = os.path.join(instrumented_dir, path[1:])
+    if not os.path.exists(target_path):
+      print('Copying instrumented lib to', target_path)
+      target_dir = os.path.dirname(target_path)
+      if not os.path.exists(target_dir):
+        os.makedirs(target_dir)
+      shutil.copy2(instrumented_path, target_path)
+
+    extra_rpaths.add(
+        os.path.join('$ORIGIN', INSTRUMENTED_LIBRARIES_DIRNAME,
+                     os.path.dirname(path[1:])))
+
+  if not extra_rpaths:
+    return
+
+  existing_rpaths = subprocess.check_output(
+      ['patchelf', '--print-rpath', binary_path]).strip()
+  processed_rpaths = ':'.join(extra_rpaths)
+  if existing_rpaths:
+    processed_rpaths += ':' + existing_rpaths
+  print('Patching rpath for', binary_path, 'from', existing_rpaths, 'to',
+        processed_rpaths)
+
+  subprocess.check_call(
+      ['patchelf', '--force-rpath', '--set-rpath',
+       processed_rpaths, binary_path])
+
+
+def PatchBuild(output_directory):
+  """Patch build to use msan libs."""
+  instrumented_dir = os.path.join(output_directory,
+                                  INSTRUMENTED_LIBRARIES_DIRNAME)
+  if not os.path.exists(instrumented_dir):
+    os.mkdir(instrumented_dir)
+
+  for root_dir, _, filenames in os.walk(output_directory):
+    for filename in filenames:
+      file_path = os.path.join(root_dir, filename)
+      if not IsElf(file_path):
+        continue
+
+      PatchBinary(file_path, instrumented_dir)
+
+
+def main():
+  parser = argparse.ArgumentParser('patch_build.py', description='MSan build patcher.')
+  parser.add_argument('output_dir', help='Output directory.')
+
+  args = parser.parse_args()
+
+  PatchBuild(os.path.abspath(args.output_dir))
+
+
+if __name__ == '__main__':
+  main()
diff --git a/infra/base-images/base-sanitizer-libs-builder/wrapper_utils.py b/infra/base-images/base-msan-builder/wrapper_utils.py
similarity index 100%
rename from infra/base-images/base-sanitizer-libs-builder/wrapper_utils.py
rename to infra/base-images/base-msan-builder/wrapper_utils.py
diff --git a/infra/base-images/base-runner-debug/Dockerfile b/infra/base-images/base-runner-debug/Dockerfile
index c7c7daa..3d22bd7 100644
--- a/infra/base-images/base-runner-debug/Dockerfile
+++ b/infra/base-images/base-runner-debug/Dockerfile
@@ -15,4 +15,4 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-runner
-RUN apt-get update && apt-get install -y gdb valgrind zip
+RUN apt-get install -y gdb valgrind zip
diff --git a/infra/base-images/base-runner/Dockerfile b/infra/base-images/base-runner/Dockerfile
old mode 100755
new mode 100644
index f847de0..ea29e1f
--- a/infra/base-images/base-runner/Dockerfile
+++ b/infra/base-images/base-runner/Dockerfile
@@ -14,95 +14,52 @@
 #
 ################################################################################
 
-# Build rust stuff in its own image. We only need the resulting binaries.
-# Keeping the rust toolchain in the image wastes 1 GB.
-FROM gcr.io/oss-fuzz-base/base-image as temp-runner-binary-builder
-
-RUN apt-get update && apt-get install -y cargo
-RUN cargo install rustfilt
-
 # Using multi-stage build to copy some LLVM binaries needed in the runner image.
 FROM gcr.io/oss-fuzz-base/base-clang AS base-clang
 
-# Real image that will be used later.
 FROM gcr.io/oss-fuzz-base/base-image
 
-COPY --from=temp-runner-binary-builder /root/.cargo/bin/rustfilt /usr/local/bin
-
 # Copy the binaries needed for code coverage and crash symbolization.
-COPY --from=base-clang /usr/local/bin/llvm-cov \
-     /usr/local/bin/llvm-profdata \
-     /usr/local/bin/llvm-symbolizer \
-     /usr/local/bin/
+COPY --from=base-clang /usr/local/bin/llvm-cov /usr/local/bin/
+COPY --from=base-clang /usr/local/bin/llvm-profdata /usr/local/bin/
+COPY --from=base-clang /usr/local/bin/llvm-symbolizer /usr/local/bin/
 
-RUN apt-get update && apt-get install -y \
+RUN apt-get install -y \
     binutils \
     file \
     fonts-dejavu \
     git \
-    lib32gcc1 \
-    libc6-i386 \
+    libc6-dev-i386 \
     libcap2 \
     python3 \
     python3-pip \
-    unzip \
     wget \
-    zip --no-install-recommends
+    zip
 
-RUN git clone https://chromium.googlesource.com/chromium/src/tools/code_coverage /opt/code_coverage && \
-    pip3 install -r /opt/code_coverage/requirements.txt
+RUN git clone https://chromium.googlesource.com/chromium/src/tools/code_coverage /opt/code_coverage
+RUN pip3 install -r /opt/code_coverage/requirements.txt
 
-# Default environment options for various sanitizers.
-# Note that these match the settings used in ClusterFuzz and
-# shouldn't be changed unless a corresponding change is made on
-# ClusterFuzz side as well.
-ENV ASAN_OPTIONS="alloc_dealloc_mismatch=0:allocator_may_return_null=1:allocator_release_to_os_interval_ms=500:check_malloc_usable_size=0:detect_container_overflow=1:detect_odr_violation=0:detect_leaks=1:detect_stack_use_after_return=1:fast_unwind_on_fatal=0:handle_abort=1:handle_segv=1:handle_sigill=1:max_uar_stack_size_log=16:print_scariness=1:quarantine_size_mb=10:strict_memcmp=1:strip_path_prefix=/workspace/:symbolize=1:use_sigaltstack=1:dedup_token_length=3"
-ENV MSAN_OPTIONS="print_stats=1:strip_path_prefix=/workspace/:symbolize=1:dedup_token_length=3"
-ENV UBSAN_OPTIONS="print_stacktrace=1:print_summary=1:silence_unsigned_overflow=1:strip_path_prefix=/workspace/:symbolize=1:dedup_token_length=3"
-ENV FUZZER_ARGS="-rss_limit_mb=2560 -timeout=25"
-ENV AFL_FUZZER_ARGS="-m none"
-
-# Download and install the latest stable Go.
-ADD https://storage.googleapis.com/golang/getgo/installer_linux $SRC/
-RUN chmod +x $SRC/installer_linux && \
-    SHELL="bash" $SRC/installer_linux && \
-    rm $SRC/installer_linux
-
-# Set up Golang environment variables (copied from /root/.bash_profile).
-ENV GOPATH /root/go
-
-# /root/.go/bin is for the standard Go binaries (i.e. go, gofmt, etc).
-# $GOPATH/bin is for the binaries from the dependencies installed via "go get".
-ENV PATH $PATH:/root/.go/bin:$GOPATH/bin
-
-# Set up Golang coverage modules.
-COPY gocoverage $GOPATH/gocoverage
-RUN cd $GOPATH/gocoverage && go install ./...
-
-# Install OpenJDK 15 and trim its size by removing unused components.
-ENV JAVA_HOME=/usr/lib/jvm/java-15-openjdk-amd64
-ENV JVM_LD_LIBRARY_PATH=$JAVA_HOME/lib/server
-ENV PATH=$PATH:$JAVA_HOME/bin
-
-RUN wget https://download.java.net/java/GA/jdk15.0.2/0d1cfde4252546c6931946de8db48ee2/7/GPL/openjdk-15.0.2_linux-x64_bin.tar.gz -O /tmp/openjdk-15.0.2_linux-x64_bin.tar.gz && \
-    cd /tmp && \
-    mkdir -p $JAVA_HOME && \
-    tar -xzv --strip-components=1 -f openjdk-15.0.2_linux-x64_bin.tar.gz --directory $JAVA_HOME && \
-    rm -f openjdk-15.0.2_linux-x64_bin.tar.gz && \
-    rm -rf $JAVA_HOME/jmods $JAVA_HOME/lib/src.zip
-
-# Do this last to make developing these files easier/faster due to caching.
 COPY bad_build_check \
     collect_dft \
     coverage \
     coverage_helper \
     dataflow_tracer.py \
     download_corpus \
-    rcfilt \
+    minijail0 \
     reproduce \
     run_fuzzer \
-    parse_options.py \
+    run_minijail \
     targets_list \
-    test_all.py \
-    test_one.py \
+    test_all \
+    test_one \
     /usr/local/bin/
+
+# Default environment options for various sanitizers.
+# Note that these match the settings used in ClusterFuzz and
+# shouldn't be changed unless a corresponding change is made on
+# ClusterFuzz side as well.
+ENV ASAN_OPTIONS="alloc_dealloc_mismatch=0:allocator_may_return_null=1:allocator_release_to_os_interval_ms=500:check_malloc_usable_size=0:detect_container_overflow=1:detect_odr_violation=0:detect_leaks=1:detect_stack_use_after_return=1:fast_unwind_on_fatal=0:handle_abort=1:handle_segv=1:handle_sigill=1:max_uar_stack_size_log=16:print_scariness=1:quarantine_size_mb=10:strict_memcmp=1:strip_path_prefix=/workspace/:symbolize=1:use_sigaltstack=1"
+ENV MSAN_OPTIONS="print_stats=1:strip_path_prefix=/workspace/:symbolize=1"
+ENV UBSAN_OPTIONS="print_stacktrace=1:print_summary=1:silence_unsigned_overflow=1:strip_path_prefix=/workspace/:symbolize=1"
+ENV FUZZER_ARGS="-rss_limit_mb=2560 -timeout=25"
+ENV AFL_FUZZER_ARGS="-m none"
diff --git a/infra/base-images/base-runner/README.md b/infra/base-images/base-runner/README.md
index 734d587..94f7936 100644
--- a/infra/base-images/base-runner/README.md
+++ b/infra/base-images/base-runner/README.md
@@ -11,7 +11,7 @@
 |---------|-------------|
 | `reproduce <fuzzer_name> <fuzzer_options>` | build all fuzz targets and run specified one with testcase `/testcase` and given options.
 | `run_fuzzer <fuzzer_name> <fuzzer_options>` | runs specified fuzzer combining options with `.options` file |
-| `test_all.py` | runs every binary in `/out` as a fuzzer for a while to ensure it works. |
+| `test_all` | runs every binary in `/out` as a fuzzer for a while to ensure it works. |
 
 # Examples
 
diff --git a/infra/base-images/base-runner/bad_build_check b/infra/base-images/base-runner/bad_build_check
index 01f8fbb..c3fa68c 100755
--- a/infra/base-images/base-runner/bad_build_check
+++ b/infra/base-images/base-runner/bad_build_check
@@ -37,9 +37,7 @@
 DFSAN_CALLS_THRESHOLD_FOR_NON_DFSAN_BUILD=0
 
 MSAN_CALLS_THRESHOLD_FOR_MSAN_BUILD=1000
-# Some engines (e.g. honggfuzz) may make a very small number of calls to msan
-# for memory poisoning.
-MSAN_CALLS_THRESHOLD_FOR_NON_MSAN_BUILD=2
+MSAN_CALLS_THRESHOLD_FOR_NON_MSAN_BUILD=0
 
 # Usually, a non UBSan build (e.g. ASan) has 165 calls to UBSan runtime. The
 # majority of targets built with UBSan have 200+ UBSan calls, but there are
@@ -62,7 +60,7 @@
 fi
 
 
-# Verify that the given fuzz target is correctly built to run with a particular
+# Verify that the given fuzz target is corectly built to run with a particular
 # engine.
 function check_engine {
   local FUZZER=$1
@@ -100,14 +98,6 @@
       cat $FUZZER_OUTPUT
       return 1
     fi
-  elif [[ "$FUZZING_ENGINE" == honggfuzz ]]; then
-    SKIP_SEED_CORPUS=1 timeout --preserve-status -s INT 20s run_fuzzer $FUZZER_NAME &>$FUZZER_OUTPUT
-    CHECK_PASSED=$(egrep "^Sz:[0-9]+ Tm:[0-9]+" -c $FUZZER_OUTPUT)
-    if (( $CHECK_PASSED == 0 )); then
-      echo "BAD BUILD: fuzzing $FUZZER with honggfuzz failed."
-      cat $FUZZER_OUTPUT
-      return 1
-    fi
   elif [[ "$FUZZING_ENGINE" == dataflow ]]; then
     $FUZZER &> $FUZZER_OUTPUT
     local NUMBER_OF_FUNCTIONS=$(grep -Po "INFO:\s+\K[[:digit:]]+(?=\s+instrumented function.*)" $FUZZER_OUTPUT)
@@ -132,8 +122,7 @@
   local CHECK_PASSED=0
 
   if [[ "$FUZZING_ENGINE" = libfuzzer ]]; then
-    # Skip seed corpus as there is another explicit check that uses seed corpora.
-    SKIP_SEED_CORPUS=1 run_fuzzer $FUZZER_NAME -seed=1337 -runs=$MIN_NUMBER_OF_RUNS &>$FUZZER_OUTPUT
+    $FUZZER -seed=1337 -runs=$MIN_NUMBER_OF_RUNS &>$FUZZER_OUTPUT
     CHECK_PASSED=$(egrep "Done $MIN_NUMBER_OF_RUNS runs" -c $FUZZER_OUTPUT)
   elif [[ "$FUZZING_ENGINE" = afl ]]; then
     # TODO(https://github.com/google/oss-fuzz/issues/2470): Dont use
@@ -300,25 +289,13 @@
   local FUZZER=$1
   local result=0
   local CALL_INSN=
-
-  if [ "${FUZZING_LANGUAGE:-}" = "jvm" ]; then
-    # Sanitizer runtime is linked into the Jazzer driver, so this check does not
-    # apply.
-    return 0
-  fi
-
-  if [ "${FUZZING_LANGUAGE:-}" = "python" ]; then
-    # Sanitizer runtime is loaded via LD_PRELOAD, so this check does not apply.
-    return 0
-  fi
-
   if [[ $ARCHITECTURE == 'i386' ]]
   then
     CALL_INSN="call\s+[0-9a-f]+\s+<"
   else
     case $(uname -m) in
       x86_64)
-        CALL_INSN="callq?\s+[0-9a-f]+\s+<"
+        CALL_INSN="callq\s+[0-9a-f]+\s+<"
         ;;
       aarch64)
         CALL_INSN="bl\s+[0-9a-f]+\s+<"
@@ -334,7 +311,6 @@
   local MSAN_CALLS=$(objdump -dC $FUZZER | egrep "${CALL_INSN}__msan" -c)
   local UBSAN_CALLS=$(objdump -dC $FUZZER | egrep "${CALL_INSN}__ubsan" -c)
 
-
   if [[ "$SANITIZER" = address ]]; then
     check_asan_build $FUZZER $ASAN_CALLS $DFSAN_CALLS $MSAN_CALLS $UBSAN_CALLS
     result=$?
@@ -347,9 +323,6 @@
   elif [[ "$SANITIZER" = undefined ]]; then
     check_ubsan_build $FUZZER $ASAN_CALLS $DFSAN_CALLS $MSAN_CALLS $UBSAN_CALLS
     result=$?
-  elif [[ "$SANITIZER" = thread ]]; then
-    # TODO(metzman): Implement this.
-    result=0
   fi
 
   return $result
@@ -385,17 +358,6 @@
 function check_architecture {
   local FUZZER=$1
   local FUZZER_NAME=$(basename $FUZZER)
-
-  if [ "${FUZZING_LANGUAGE:-}" = "jvm" ]; then
-    # The native dependencies of a JVM project are not packaged, but loaded
-    # dynamically at runtime and thus cannot be checked here.
-    return 0;
-  fi
-
-  if [ "${FUZZING_LANGUAGE:-}" = "python" ]; then
-    FUZZER=${FUZZER}.pkg
-  fi
-
   FILE_OUTPUT=$(file $FUZZER)
   if [[ $ARCHITECTURE == "x86_64" ]]
   then
diff --git a/infra/base-images/base-runner/collect_dft b/infra/base-images/base-runner/collect_dft
index 3f6c689..e316c0d 100755
--- a/infra/base-images/base-runner/collect_dft
+++ b/infra/base-images/base-runner/collect_dft
@@ -23,9 +23,7 @@
 fi
 
 # Timeout for running a single fuzz target.
-if [ -z "$COLLECT_DFT_TIMEOUT" ]; then
-  COLLECT_DFT_TIMEOUT=1h
-fi
+TIMEOUT=1h
 
 # Number of CPUs available, this is needed for running targets in parallel.
 NPROC=$(nproc)
@@ -40,7 +38,7 @@
 
   rm -rf $traces && mkdir -p $traces
 
-  timeout $COLLECT_DFT_TIMEOUT dataflow_tracer.py $OUT/$target $corpus $traces &> $log
+  timeout $TIMEOUT dataflow_tracer.py $OUT/$target $corpus $traces &> $log
   if (( $? != 0 )); then
     echo "Error occured while collecting data flow traces for $target:"
     cat $log
diff --git a/infra/base-images/base-runner/coverage b/infra/base-images/base-runner/coverage
index a86b00d..acf7703 100755
--- a/infra/base-images/base-runner/coverage
+++ b/infra/base-images/base-runner/coverage
@@ -64,7 +64,7 @@
   local profdata_file="$DUMPS_DIR/$target.profdata"
   local corpus_real="/corpus/${target}"
 
-  # -merge=1 requires an output directory, create a new, empty dir for that.
+  # -merge=1 requires an output directory, create a dummy dir for that.
   local corpus_dummy="$OUT/dummy_corpus_dir_for_${target}"
   rm -rf $corpus_dummy && mkdir -p $corpus_dummy
 
@@ -96,61 +96,25 @@
   rm $profraw_file_mask
 
   shared_libraries=$(coverage_helper shared_libs -build-dir=$OUT -object=$target)
-
   llvm-cov export -summary-only -instr-profile=$profdata_file -object=$target \
       $shared_libraries $LLVM_COV_COMMON_ARGS > $FUZZER_STATS_DIR/$target.json
-
-  if [ -n "${FULL_SUMMARY_PER_TARGET-}" ]; then
-    # This is needed for dataflow strategy analysis, can be removed later. See
-    # - https://github.com/google/oss-fuzz/pull/3306
-    # - https://github.com/google/oss-fuzz/issues/1632
-    # Intentionally writing these to the logs dir in order to hide the dumps
-    # from the ClusterFuzz cron job.
-    llvm-cov export -instr-profile=$profdata_file -object=$target \
-      $shared_libraries $LLVM_COV_COMMON_ARGS > $LOGS_DIR/$target.json
-  fi
 }
 
-function run_go_fuzz_target {
-  local target=$1
-
-  echo "Running go target $target"
-  export FUZZ_CORPUS_DIR="/corpus/${target}/"
-  export FUZZ_PROFILE_NAME="$DUMPS_DIR/$target.perf"
-  $OUT/$target -test.coverprofile $DUMPS_DIR/$target.profdata &> $LOGS_DIR/$target.log
-  # translate from golangish paths to current absolute paths
-  cat $OUT/$target.gocovpath | while read i; do sed -i $i $DUMPS_DIR/$target.profdata; done
-  # cf PATH_EQUIVALENCE_ARGS
-  sed -i 's=/='$OUT'/=' $DUMPS_DIR/$target.profdata
-  $SYSGOPATH/bin/gocovsum $DUMPS_DIR/$target.profdata > $FUZZER_STATS_DIR/$target.json
-}
-
-export SYSGOPATH=$GOPATH
-export GOPATH=$OUT/$GOPATH
 # Run each fuzz target, generate raw coverage dumps.
 for fuzz_target in $FUZZ_TARGETS; do
-  # Test if fuzz target is a golang one.
-  if [[ $FUZZING_LANGUAGE == "go" ]]; then
-    # Continue if not a fuzz target.
-    if [[ $FUZZING_ENGINE != "none" ]]; then
-      grep "FUZZ_CORPUS_DIR" $fuzz_target > /dev/null 2>&1 || continue
-    fi
-    run_go_fuzz_target $fuzz_target &
+  # Continue if not a fuzz target.
+  if [[ $FUZZING_ENGINE != "none" ]]; then
+    grep "LLVMFuzzerTestOneInput" $fuzz_target > /dev/null 2>&1 || continue
+  fi
+
+  echo "Running $fuzz_target"
+  run_fuzz_target $fuzz_target &
+
+  if [[ -z $objects ]]; then
+    # The first object needs to be passed without -object= flag.
+    objects="$fuzz_target"
   else
-    # Continue if not a fuzz target.
-    if [[ $FUZZING_ENGINE != "none" ]]; then
-      grep "LLVMFuzzerTestOneInput" $fuzz_target > /dev/null 2>&1 || continue
-    fi
-
-    echo "Running $fuzz_target"
-    run_fuzz_target $fuzz_target &
-
-    if [[ -z $objects ]]; then
-      # The first object needs to be passed without -object= flag.
-      objects="$fuzz_target"
-    else
-      objects="$objects -object=$fuzz_target"
-    fi
+    objects="$objects -object=$fuzz_target"
   fi
 
   # Do not spawn more processes than the number of CPUs available.
@@ -164,47 +128,32 @@
 # Wait for background processes to finish.
 wait
 
-if [[ $FUZZING_LANGUAGE == "go" ]]; then
-  $SYSGOPATH/bin/gocovmerge $DUMPS_DIR/*.profdata > fuzz.cov
-  go tool cover -html=fuzz.cov -o $REPORT_ROOT_DIR/index.html
-  $SYSGOPATH/bin/gocovsum fuzz.cov > $SUMMARY_FILE
-  cp $REPORT_ROOT_DIR/index.html $REPORT_PLATFORM_DIR/index.html
-  $SYSGOPATH/bin/pprof-merge $DUMPS_DIR/*.perf.cpu.prof
-  mv merged.data $REPORT_ROOT_DIR/cpu.prof
-  $SYSGOPATH/bin/pprof-merge $DUMPS_DIR/*.perf.heap.prof
-  mv merged.data $REPORT_ROOT_DIR/heap.prof
-  #TODO some proxy for go tool pprof -http=127.0.0.1:8001 $DUMPS_DIR/cpu.prof
-  echo "Finished generating code coverage report for Go fuzz targets."
-else
+# From this point on the script does not tolerate any errors.
+set -e
 
-  # From this point on the script does not tolerate any errors.
-  set -e
+# Merge all dumps from the individual targets.
+rm -f $PROFILE_FILE
+llvm-profdata merge -sparse $DUMPS_DIR/*.profdata -o $PROFILE_FILE
 
-  # Merge all dumps from the individual targets.
-  rm -f $PROFILE_FILE
-  llvm-profdata merge -sparse $DUMPS_DIR/*.profdata -o $PROFILE_FILE
+# TODO(mmoroz): add script from Chromium for rendering directory view reports.
+# The first path in $objects does not have -object= prefix (llvm-cov format).
+shared_libraries=$(coverage_helper shared_libs -build-dir=$OUT -object=$objects)
+objects="$objects $shared_libraries"
 
-  # TODO(mmoroz): add script from Chromium for rendering directory view reports.
-  # The first path in $objects does not have -object= prefix (llvm-cov format).
-  shared_libraries=$(coverage_helper shared_libs -build-dir=$OUT -object=$objects)
-  objects="$objects $shared_libraries"
+# It's important to use $LLVM_COV_COMMON_ARGS as the last argument due to
+# positional arguments (SOURCES) that can be passed via $COVERAGE_EXTRA_ARGS.
+LLVM_COV_ARGS="-instr-profile=$PROFILE_FILE $objects $LLVM_COV_COMMON_ARGS"
 
-  # It's important to use $LLVM_COV_COMMON_ARGS as the last argument due to
-  # positional arguments (SOURCES) that can be passed via $COVERAGE_EXTRA_ARGS.
-  LLVM_COV_ARGS="-instr-profile=$PROFILE_FILE $objects $LLVM_COV_COMMON_ARGS"
+# Generate HTML report.
+llvm-cov show -format=html -output-dir=$REPORT_ROOT_DIR \
+    -Xdemangler c++filt -Xdemangler -n $LLVM_COV_ARGS
 
-  # Generate HTML report.
-  llvm-cov show -format=html -output-dir=$REPORT_ROOT_DIR \
-      -Xdemangler rcfilt $LLVM_COV_ARGS
+# Export coverage summary in JSON format.
+llvm-cov export -summary-only $LLVM_COV_ARGS > $SUMMARY_FILE
 
-  # Export coverage summary in JSON format.
-  llvm-cov export -summary-only $LLVM_COV_ARGS > $SUMMARY_FILE
-
-  # Post process HTML report.
-  coverage_helper -v post_process -src-root-dir=/ -summary-file=$SUMMARY_FILE \
-      -output-dir=$REPORT_ROOT_DIR $PATH_EQUIVALENCE_ARGS
-
-fi
+# Post process HTML report.
+coverage_helper -v post_process -src-root-dir=/ -summary-file=$SUMMARY_FILE \
+    -output-dir=$REPORT_ROOT_DIR $PATH_EQUIVALENCE_ARGS
 
 if [[ -n $HTTP_PORT ]]; then
   # Serve the report locally.
diff --git a/infra/base-images/base-runner/dataflow_tracer.py b/infra/base-images/base-runner/dataflow_tracer.py
index 92a48fa..7166bf4 100755
--- a/infra/base-images/base-runner/dataflow_tracer.py
+++ b/infra/base-images/base-runner/dataflow_tracer.py
@@ -24,12 +24,6 @@
 import subprocess
 import sys
 
-# pylint: skip-file
-
-# See https://github.com/google/oss-fuzz/pull/5024#discussion_r561313003 for why
-# we are disabling pylint for this file (we can't do it in .pylintrc, probably
-# because of weirdness with this file's package, so we do it here).
-
 # These can be controlled by the runner in order to change the values without
 # rebuilding OSS-Fuzz base images.
 FILE_SIZE_LIMIT = int(os.getenv('DFT_FILE_SIZE_LIMIT', 32 * 1024))
diff --git a/infra/base-images/base-runner/gocoverage/go.mod b/infra/base-images/base-runner/gocoverage/go.mod
deleted file mode 100644
index b0b5721..0000000
--- a/infra/base-images/base-runner/gocoverage/go.mod
+++ /dev/null
@@ -1,8 +0,0 @@
-module oss-fuzz.com/gocoverage
-
-go 1.14
-
-require (
-	github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5
-	golang.org/x/tools v0.1.0
-)
diff --git a/infra/base-images/base-runner/gocoverage/go.sum b/infra/base-images/base-runner/gocoverage/go.sum
deleted file mode 100644
index 3279af3..0000000
--- a/infra/base-images/base-runner/gocoverage/go.sum
+++ /dev/null
@@ -1,30 +0,0 @@
-github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
-github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
-github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
-github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5 h1:zIaiqGYDQwa4HVx5wGRTXbx38Pqxjemn4BP98wpzpXo=
-github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY=
-golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/infra/base-images/base-runner/gocoverage/gocovmerge/LICENSE b/infra/base-images/base-runner/gocoverage/gocovmerge/LICENSE
deleted file mode 100644
index 455fb10..0000000
--- a/infra/base-images/base-runner/gocoverage/gocovmerge/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2015, Wade Simmons
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/infra/base-images/base-runner/gocoverage/gocovmerge/gocovmerge.go b/infra/base-images/base-runner/gocoverage/gocovmerge/gocovmerge.go
deleted file mode 100644
index e809983..0000000
--- a/infra/base-images/base-runner/gocoverage/gocovmerge/gocovmerge.go
+++ /dev/null
@@ -1,111 +0,0 @@
-// gocovmerge takes the results from multiple `go test -coverprofile` runs and
-// merges them into one profile
-package main
-
-import (
-	"flag"
-	"fmt"
-	"io"
-	"log"
-	"os"
-	"sort"
-
-	"golang.org/x/tools/cover"
-)
-
-func mergeProfiles(p *cover.Profile, merge *cover.Profile) {
-	if p.Mode != merge.Mode {
-		log.Fatalf("cannot merge profiles with different modes")
-	}
-	// Since the blocks are sorted, we can keep track of where the last block
-	// was inserted and only look at the blocks after that as targets for merge
-	startIndex := 0
-	for _, b := range merge.Blocks {
-		startIndex = mergeProfileBlock(p, b, startIndex)
-	}
-}
-
-func mergeProfileBlock(p *cover.Profile, pb cover.ProfileBlock, startIndex int) int {
-	sortFunc := func(i int) bool {
-		pi := p.Blocks[i+startIndex]
-		return pi.StartLine >= pb.StartLine && (pi.StartLine != pb.StartLine || pi.StartCol >= pb.StartCol)
-	}
-
-	i := 0
-	if sortFunc(i) != true {
-		i = sort.Search(len(p.Blocks)-startIndex, sortFunc)
-	}
-	i += startIndex
-	if i < len(p.Blocks) && p.Blocks[i].StartLine == pb.StartLine && p.Blocks[i].StartCol == pb.StartCol {
-		if p.Blocks[i].EndLine != pb.EndLine || p.Blocks[i].EndCol != pb.EndCol {
-			log.Fatalf("OVERLAP MERGE: %v %v %v", p.FileName, p.Blocks[i], pb)
-		}
-		switch p.Mode {
-		case "set":
-			p.Blocks[i].Count |= pb.Count
-		case "count", "atomic":
-			p.Blocks[i].Count += pb.Count
-		default:
-			log.Fatalf("unsupported covermode: '%s'", p.Mode)
-		}
-	} else {
-		if i > 0 {
-			pa := p.Blocks[i-1]
-			if pa.EndLine >= pb.EndLine && (pa.EndLine != pb.EndLine || pa.EndCol > pb.EndCol) {
-				log.Fatalf("OVERLAP BEFORE: %v %v %v", p.FileName, pa, pb)
-			}
-		}
-		if i < len(p.Blocks)-1 {
-			pa := p.Blocks[i+1]
-			if pa.StartLine <= pb.StartLine && (pa.StartLine != pb.StartLine || pa.StartCol < pb.StartCol) {
-				log.Fatalf("OVERLAP AFTER: %v %v %v", p.FileName, pa, pb)
-			}
-		}
-		p.Blocks = append(p.Blocks, cover.ProfileBlock{})
-		copy(p.Blocks[i+1:], p.Blocks[i:])
-		p.Blocks[i] = pb
-	}
-	return i + 1
-}
-
-func addProfile(profiles []*cover.Profile, p *cover.Profile) []*cover.Profile {
-	i := sort.Search(len(profiles), func(i int) bool { return profiles[i].FileName >= p.FileName })
-	if i < len(profiles) && profiles[i].FileName == p.FileName {
-		mergeProfiles(profiles[i], p)
-	} else {
-		profiles = append(profiles, nil)
-		copy(profiles[i+1:], profiles[i:])
-		profiles[i] = p
-	}
-	return profiles
-}
-
-func dumpProfiles(profiles []*cover.Profile, out io.Writer) {
-	if len(profiles) == 0 {
-		return
-	}
-	fmt.Fprintf(out, "mode: %s\n", profiles[0].Mode)
-	for _, p := range profiles {
-		for _, b := range p.Blocks {
-			fmt.Fprintf(out, "%s:%d.%d,%d.%d %d %d\n", p.FileName, b.StartLine, b.StartCol, b.EndLine, b.EndCol, b.NumStmt, b.Count)
-		}
-	}
-}
-
-func main() {
-	flag.Parse()
-
-	var merged []*cover.Profile
-
-	for _, file := range flag.Args() {
-		profiles, err := cover.ParseProfiles(file)
-		if err != nil {
-			log.Fatalf("failed to parse profiles: %v", err)
-		}
-		for _, p := range profiles {
-			merged = addProfile(merged, p)
-		}
-	}
-
-	dumpProfiles(merged, os.Stdout)
-}
diff --git a/infra/base-images/base-runner/gocoverage/gocovsum/gocovsum.go b/infra/base-images/base-runner/gocoverage/gocovsum/gocovsum.go
deleted file mode 100644
index 973b7ae..0000000
--- a/infra/base-images/base-runner/gocoverage/gocovsum/gocovsum.go
+++ /dev/null
@@ -1,147 +0,0 @@
-package main
-
-import (
-	"encoding/json"
-	"flag"
-	"fmt"
-	"log"
-
-	"go/ast"
-	"go/parser"
-	"go/token"
-
-	"golang.org/x/tools/cover"
-)
-
-type CoverageTotal struct {
-	Count     int     `json:"count"`
-	Covered   int     `json:"covered"`
-	Uncovered int     `json:"notcovered"`
-	Percent   float64 `json:"percent"`
-}
-
-type CoverageTotals struct {
-	Functions      CoverageTotal `json:"functions,omitempty"`
-	Lines          CoverageTotal `json:"lines,omitempty"`
-	Regions        CoverageTotal `json:"regions,omitempty"`
-	Instantiations CoverageTotal `json:"instantiations,omitempty"`
-	Branches       CoverageTotal `json:"branches,omitempty"`
-}
-
-type CoverageFile struct {
-	Summary  CoverageTotals `json:"summary,omitempty"`
-	Filename string         `json:"filename,omitempty"`
-}
-
-type CoverageData struct {
-	Totals CoverageTotals `json:"totals,omitempty"`
-	Files  []CoverageFile `json:"files,omitempty"`
-}
-
-type PositionInterval struct {
-	start token.Position
-	end   token.Position
-}
-
-type CoverageSummary struct {
-	Data    []CoverageData `json:"data,omitempty"`
-	Type    string         `json:"type,omitempty"`
-	Version string         `json:"version,omitempty"`
-}
-
-func isFunctionCovered(s token.Position, e token.Position, blocks []cover.ProfileBlock) bool {
-	for _, b := range blocks {
-		if b.StartLine >= s.Line && b.StartLine <= e.Line && b.EndLine >= s.Line && b.EndLine <= e.Line {
-			if b.Count > 0 {
-				return true
-			}
-		}
-	}
-	return false
-}
-
-func computePercent(s *CoverageTotals) {
-	s.Regions.Percent = float64(100*s.Regions.Covered) / float64(s.Regions.Count)
-	s.Lines.Percent = float64(100*s.Lines.Covered) / float64(s.Lines.Count)
-	s.Functions.Percent = float64(100*s.Functions.Covered) / float64(s.Functions.Count)
-}
-
-func main() {
-	flag.Parse()
-
-	if len(flag.Args()) != 1 {
-		log.Fatalf("needs exactly one argument")
-	}
-	profiles, err := cover.ParseProfiles(flag.Args()[0])
-	if err != nil {
-		log.Fatalf("failed to parse profiles: %v", err)
-	}
-	r := CoverageSummary{}
-	r.Type = "oss-fuzz.go.coverage.json.export"
-	r.Version = "2.0.1"
-	r.Data = make([]CoverageData, 1)
-	for _, p := range profiles {
-		fset := token.NewFileSet() // positions are relative to fset
-		f, err := parser.ParseFile(fset, p.FileName, nil, 0)
-		if err != nil {
-			panic(err)
-		}
-		fileCov := CoverageFile{}
-		fileCov.Filename = p.FileName
-		ast.Inspect(f, func(n ast.Node) bool {
-			switch x := n.(type) {
-			case *ast.FuncLit:
-				startf := fset.Position(x.Pos())
-				endf := fset.Position(x.End())
-				fileCov.Summary.Functions.Count++
-				if isFunctionCovered(startf, endf, p.Blocks) {
-					fileCov.Summary.Functions.Covered++
-				} else {
-					fileCov.Summary.Functions.Uncovered++
-				}
-			case *ast.FuncDecl:
-				startf := fset.Position(x.Pos())
-				endf := fset.Position(x.End())
-				fileCov.Summary.Functions.Count++
-				if isFunctionCovered(startf, endf, p.Blocks) {
-					fileCov.Summary.Functions.Covered++
-				} else {
-					fileCov.Summary.Functions.Uncovered++
-				}
-			}
-			return true
-		})
-
-		for _, b := range p.Blocks {
-			fileCov.Summary.Regions.Count++
-			if b.Count > 0 {
-				fileCov.Summary.Regions.Covered++
-			} else {
-				fileCov.Summary.Regions.Uncovered++
-			}
-
-			fileCov.Summary.Lines.Count += b.NumStmt
-			if b.Count > 0 {
-				fileCov.Summary.Lines.Covered += b.NumStmt
-			} else {
-				fileCov.Summary.Lines.Uncovered += b.NumStmt
-			}
-		}
-		r.Data[0].Totals.Regions.Count += fileCov.Summary.Regions.Count
-		r.Data[0].Totals.Regions.Covered += fileCov.Summary.Regions.Covered
-		r.Data[0].Totals.Regions.Uncovered += fileCov.Summary.Regions.Uncovered
-		r.Data[0].Totals.Lines.Count += fileCov.Summary.Lines.Count
-		r.Data[0].Totals.Lines.Covered += fileCov.Summary.Lines.Covered
-		r.Data[0].Totals.Lines.Uncovered += fileCov.Summary.Lines.Uncovered
-		r.Data[0].Totals.Functions.Count += fileCov.Summary.Functions.Count
-		r.Data[0].Totals.Functions.Covered += fileCov.Summary.Functions.Covered
-		r.Data[0].Totals.Functions.Uncovered += fileCov.Summary.Functions.Uncovered
-
-		computePercent(&fileCov.Summary)
-		r.Data[0].Files = append(r.Data[0].Files, fileCov)
-	}
-
-	computePercent(&r.Data[0].Totals)
-	o, _ := json.Marshal(r)
-	fmt.Printf(string(o))
-}
diff --git a/infra/base-images/base-runner/gocoverage/pprof-merge/LICENSE b/infra/base-images/base-runner/gocoverage/pprof-merge/LICENSE
deleted file mode 100644
index 8dada3e..0000000
--- a/infra/base-images/base-runner/gocoverage/pprof-merge/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/infra/base-images/base-runner/gocoverage/pprof-merge/main.go b/infra/base-images/base-runner/gocoverage/pprof-merge/main.go
deleted file mode 100644
index f351564..0000000
--- a/infra/base-images/base-runner/gocoverage/pprof-merge/main.go
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2019 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package main
-
-import (
-	"flag"
-	"log"
-	"os"
-
-	"github.com/google/pprof/profile"
-)
-
-var (
-	output string
-)
-
-func main() {
-	flag.StringVar(&output, "o", "merged.data", "")
-	flag.Parse()
-
-	files := os.Args[1:]
-	if len(files) == 0 {
-		log.Fatal("Give profiles files as arguments")
-	}
-
-	var profiles []*profile.Profile
-	for _, fname := range files {
-		f, err := os.Open(fname)
-		if err != nil {
-			log.Fatalf("Cannot open profile file at %q: %v", fname, err)
-		}
-		p, err := profile.Parse(f)
-		if err != nil {
-			log.Fatalf("Cannot parse profile at %q: %v", fname, err)
-		}
-		profiles = append(profiles, p)
-	}
-
-	merged, err := profile.Merge(profiles)
-	if err != nil {
-		log.Fatalf("Cannot merge profiles: %v", err)
-	}
-
-	out, err := os.OpenFile(output, os.O_RDWR|os.O_CREATE, 0755)
-	if err != nil {
-		log.Fatalf("Cannot open output to write: %v", err)
-	}
-
-	if err := merged.Write(out); err != nil {
-		log.Fatalf("Cannot write merged profile to file: %v", err)
-	}
-
-	if err := out.Close(); err != nil {
-		log.Printf("Error when closing the output file: %v", err)
-	}
-}
diff --git a/infra/base-images/base-runner/minijail0 b/infra/base-images/base-runner/minijail0
new file mode 100755
index 0000000..369e0bb
--- /dev/null
+++ b/infra/base-images/base-runner/minijail0
Binary files differ
diff --git a/infra/base-images/base-runner/parse_options.py b/infra/base-images/base-runner/parse_options.py
deleted file mode 100755
index 6612a30..0000000
--- a/infra/base-images/base-runner/parse_options.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python3
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Helper script for parsing custom fuzzing options."""
-import configparser
-import sys
-
-
-def parse_options(options_file_path, options_section):
-  """Parses the given file and returns options from the given section."""
-  parser = configparser.ConfigParser()
-  parser.read(options_file_path)
-
-  if not parser.has_section(options_section):
-    return None
-
-  options = parser[options_section]
-
-  if options_section == 'libfuzzer':
-    options_string = ' '.join(
-        '-%s=%s' % (key, value) for key, value in options.items())
-  else:
-    # Sanitizer options.
-    options_string = ':'.join(
-        '%s=%s' % (key, value) for key, value in options.items())
-
-  return options_string
-
-
-def main():
-  """Processes the arguments and prints the options in the correct format."""
-  if len(sys.argv) < 3:
-    sys.stderr.write('Usage: %s <path_to_options_file> <options_section>\n' %
-                     sys.argv[0])
-    return 1
-
-  options = parse_options(sys.argv[1], sys.argv[2])
-  if options is not None:
-    print(options)
-
-  return 0
-
-
-if __name__ == "__main__":
-  sys.exit(main())
diff --git a/infra/base-images/base-runner/rcfilt b/infra/base-images/base-runner/rcfilt
deleted file mode 100755
index 1c62110..0000000
--- a/infra/base-images/base-runner/rcfilt
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash -u
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Symbol demangling for both C++ and Rust
-#
-################################################################################
-
-# simply pipe
-rustfilt | c++filt -n
diff --git a/infra/base-images/base-runner/reproduce b/infra/base-images/base-runner/reproduce
index 2c074d0..944376f 100755
--- a/infra/base-images/base-runner/reproduce
+++ b/infra/base-images/base-runner/reproduce
@@ -15,20 +15,17 @@
 #
 ################################################################################
 
+DEBUGGER=${DEBUGGER:-}
 FUZZER=$1
 shift
-
-if [ ! -v TESTCASE ]; then
-    TESTCASE="/testcase"
-fi
+TESTCASE="/testcase"
 
 if [ ! -f $TESTCASE ]; then
   echo "Error: $TESTCASE not found, use: docker run -v <path>:$TESTCASE ..."
   exit 1
 fi
 
-export RUN_FUZZER_MODE="interactive"
-export FUZZING_ENGINE="libfuzzer"
-export SKIP_SEED_CORPUS="1"
+export PATH=$OUT:$PATH
+cd $OUT
+$DEBUGGER $OUT/$FUZZER $FUZZER_ARGS $@ $TESTCASE
 
-run_fuzzer $FUZZER $@ $TESTCASE
diff --git a/infra/base-images/base-runner/run_fuzzer b/infra/base-images/base-runner/run_fuzzer
index b9bc8d9..37785db 100755
--- a/infra/base-images/base-runner/run_fuzzer
+++ b/infra/base-images/base-runner/run_fuzzer
@@ -21,19 +21,10 @@
 export PATH=$OUT:$PATH
 cd $OUT
 
-DEBUGGER=${DEBUGGER:-}
-
 FUZZER=$1
 shift
 
-CORPUS_DIR=${CORPUS_DIR:-"/tmp/${FUZZER}_corpus"}
-
-SANITIZER=${SANITIZER:-}
-if [ -z $SANITIZER ]; then
-  # If $SANITIZER is not specified (e.g. calling from `reproduce` command), it
-  # is not important and can be set to any value.
-  SANITIZER="default"
-fi
+CORPUS_DIR="/tmp/${FUZZER}_corpus"
 
 if [[ "$RUN_FUZZER_MODE" = interactive ]]; then
   FUZZER_OUT="$OUT/${FUZZER}_${FUZZING_ENGINE}_${SANITIZER}_out"
@@ -63,68 +54,26 @@
   fi
 }
 
-rm -rf $CORPUS_DIR && mkdir -p $CORPUS_DIR
-rm -rf $FUZZER_OUT && mkdir -p $FUZZER_OUT
+rm -rf $CORPUS_DIR && mkdir $CORPUS_DIR
+rm -rf $FUZZER_OUT && mkdir $FUZZER_OUT
 
 SEED_CORPUS="${FUZZER}_seed_corpus.zip"
-
 if [ -f $SEED_CORPUS ] && [ -z ${SKIP_SEED_CORPUS:-} ]; then
   echo "Using seed corpus: $SEED_CORPUS"
   unzip -d ${CORPUS_DIR}/ $SEED_CORPUS > /dev/null
 fi
 
-OPTIONS_FILE="${FUZZER}.options"
-CUSTOM_LIBFUZZER_OPTIONS=""
-
-if [ -f $OPTIONS_FILE ]; then
-  custom_asan_options=$(parse_options.py $OPTIONS_FILE asan)
-  if [ ! -z $custom_asan_options ]; then
-    export ASAN_OPTIONS="$ASAN_OPTIONS:$custom_asan_options"
-  fi
-
-  custom_msan_options=$(parse_options.py $OPTIONS_FILE msan)
-  if [ ! -z $custom_msan_options ]; then
-    export MSAN_OPTIONS="$MSAN_OPTIONS:$custom_msan_options"
-  fi
-
-  custom_ubsan_options=$(parse_options.py $OPTIONS_FILE ubsan)
-  if [ ! -z $custom_ubsan_options ]; then
-    export UBSAN_OPTIONS="$UBSAN_OPTIONS:$custom_ubsan_options"
-  fi
-
-  CUSTOM_LIBFUZZER_OPTIONS=$(parse_options.py $OPTIONS_FILE libfuzzer)
-fi
-
 if [[ "$FUZZING_ENGINE" = afl ]]; then
-
-  # Set afl++ environment options.
-  export ASAN_OPTIONS="$ASAN_OPTIONS:abort_on_error=1:symbolize=0:detect_odr_violation=0:"
+  # https://chromium.googlesource.com/chromium/src/+/master/third_party/afl/src/docs/env_variables.txt
+  export ASAN_OPTIONS="$ASAN_OPTIONS:abort_on_error=1:symbolize=0"
   export MSAN_OPTIONS="$MSAN_OPTIONS:exit_code=86:symbolize=0"
   export UBSAN_OPTIONS="$UBSAN_OPTIONS:symbolize=0"
   export AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1
   export AFL_SKIP_CPUFREQ=1
-  export AFL_NO_AFFINITY=1
-  export AFL_FAST_CAL=1
-  # If $OUT/afl_cmplog.txt is present this means the target was compiled for
-  # CMPLOG. So we have to add the proper parameters to afl-fuzz. `-l 2` is
-  # CMPLOG level 2, which will colorize larger files but not huge files and
-  # not enable transform analysis unless there have been several cycles without
-  # any finds.
-  test -e "$OUT/afl_cmplog.txt" && AFL_FUZZER_ARGS="$AFL_FUZZER_ARGS -l 2 -c $OUT/$FUZZER"
-  # If $OUT/afl++.dict we load it as a dictionary for afl-fuzz.
-  test -e "$OUT/afl++.dict" && AFL_FUZZER_ARGS="$AFL_FUZZER_ARGS -x $OUT/afl++.dict"
-  # Ensure timeout is a bit large than 1sec as some of the OSS-Fuzz fuzzers
-  # are slower than this. 
-  AFL_FUZZER_ARGS="$AFL_FUZZER_ARGS -t 5000+"
   # AFL expects at least 1 file in the input dir.
   echo input > ${CORPUS_DIR}/input
-  echo afl++ setup:
-  env|grep AFL_
-  cat "$OUT/afl_options.txt"
-  CMD_LINE="$OUT/afl-fuzz $AFL_FUZZER_ARGS -i $CORPUS_DIR -o $FUZZER_OUT $(get_dictionary) $* -- $OUT/$FUZZER"
-
+  CMD_LINE="$OUT/afl-fuzz $AFL_FUZZER_ARGS -i $CORPUS_DIR -o $FUZZER_OUT $(get_dictionary) $* $OUT/$FUZZER"
 elif [[ "$FUZZING_ENGINE" = honggfuzz ]]; then
-
   # Honggfuzz expects at least 1 file in the input dir.
   echo input > $CORPUS_DIR/input
   # --exit_upon_crash: exit whith a first crash seen
@@ -136,17 +85,13 @@
   # -f: location of the initial (and destination) file corpus
   # -n: number of fuzzing threads (and processes)
   CMD_LINE="$OUT/honggfuzz -n 1 --exit_upon_crash -R /tmp/${FUZZER}_honggfuzz.report -W $FUZZER_OUT -v -z -P -f \"$CORPUS_DIR\" $(get_dictionary) $* -- \"$OUT/$FUZZER\""
-
 else
+  CMD_LINE="$OUT/$FUZZER $FUZZER_ARGS $* $CORPUS_DIR"
 
-  CMD_LINE="$OUT/$FUZZER $FUZZER_ARGS $*"
-
-  if [ -z ${SKIP_SEED_CORPUS:-} ]; then
-    CMD_LINE="$CMD_LINE $CORPUS_DIR"
-  fi
-
-  if [ ! -z $CUSTOM_LIBFUZZER_OPTIONS ]; then
-    CMD_LINE="$CMD_LINE $CUSTOM_LIBFUZZER_OPTIONS"
+  OPTIONS_FILE="${FUZZER}.options"
+  if [ -f $OPTIONS_FILE ]; then
+    OPTIONS_ARGS=$(grep "=" $OPTIONS_FILE | sed 's/\(\w*\)\W*=\W*\(.*\)/-\1=\2 /g' | tr '\n' ' ')
+    CMD_LINE="$CMD_LINE $OPTIONS_ARGS"
   fi
 
   if [[ ! "$CMD_LINE" =~ "-dict=" ]]; then
@@ -156,7 +101,6 @@
   fi
 
   CMD_LINE="$CMD_LINE < /dev/null"
-
 fi
 
 echo $CMD_LINE
@@ -164,9 +108,5 @@
 # Unset OUT so the fuzz target can't rely on it.
 unset OUT
 
-if [ ! -z "$DEBUGGER" ]; then
-  CMD_LINE="$DEBUGGER $CMD_LINE"
-fi
-
 bash -c "$CMD_LINE"
 
diff --git a/infra/base-images/base-runner/run_minijail b/infra/base-images/base-runner/run_minijail
new file mode 100755
index 0000000..bf950b1
--- /dev/null
+++ b/infra/base-images/base-runner/run_minijail
@@ -0,0 +1,59 @@
+#!/bin/bash -eu
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+rm -rf /tmp/chroot
+mkdir /tmp/chroot
+
+mkdir /tmp/chroot/lib
+mkdir /tmp/chroot/lib64
+mkdir /tmp/chroot/lib32
+
+mkdir /tmp/chroot/usr
+mkdir /tmp/chroot/usr/lib
+mkdir /tmp/chroot/usr/lib32
+
+mkdir /tmp/chroot/dev
+mknod -m 666 /tmp/chroot/dev/null c 1 3
+mknod -m 666 /tmp/chroot/dev/urandom c 1 9
+
+mkdir /tmp/chroot/proc
+mkdir /tmp/chroot/tmp
+
+mkdir /tmp/chroot/bin
+cp /bin/sh /tmp/chroot/bin/sh
+cp $(which llvm-symbolizer) /tmp/chroot/bin/llvm-symbolizer
+
+FULL_EXE_PATH=$(readlink -f $1)
+EXE_DIR=$(dirname $FULL_EXE_PATH)
+mkdir -p /tmp/chroot/$EXE_DIR
+
+shift
+
+echo 'Running:'
+echo minijail0 -U -m \"0 $UID 1\" -T static \
+  -c 0 -n -v -p -l -I \
+  -k proc,/proc,proc,1 -P /tmp/chroot \
+  -b /lib,/lib,0 -b /lib64,/lib64,0 -b /lib32,/lib32,0 -b /usr/lib,/usr/lib,0 \
+  -b /usr/lib32,/usr/lib32,0 -b /tmp,/tmp,1 \
+  -b $EXE_DIR,$EXE_DIR,0 $FULL_EXE_PATH $@
+
+minijail0 -U -m "0 $UID 1" -T static \
+  -c 0 -n -v -p -l -I \
+  -k proc,/proc,proc,1 -P /tmp/chroot \
+  -b /lib,/lib,0 -b /lib64,/lib64,0 -b /lib32,/lib32,0 -b /usr/lib,/usr/lib,0 \
+  -b /usr/lib32,/usr/lib32,0 -b /tmp,/tmp,1 \
+  -b $EXE_DIR,$EXE_DIR,0 $FULL_EXE_PATH $@
diff --git a/infra/base-images/base-runner/test_all b/infra/base-images/base-runner/test_all
new file mode 100755
index 0000000..1cc45ca
--- /dev/null
+++ b/infra/base-images/base-runner/test_all
@@ -0,0 +1,148 @@
+#!/bin/bash -u
+# Copyright 2016 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+# Percentage threshold that needs to be reached for marking a build as failed.
+ALLOWED_BROKEN_TARGETS_PERCENTAGE=${ALLOWED_BROKEN_TARGETS_PERCENTAGE:-10}
+
+# Test all fuzz targets in the $OUT/ dir.
+TOTAL_TARGETS_COUNT=0
+
+# Number of CPUs available, this is needed for running tests in parallel.
+NPROC=$(nproc)
+
+# Directories where bad build check results will be written to.
+VALID_TARGETS_DIR="/tmp/valid_fuzz_targets"
+BROKEN_TARGETS_DIR="/tmp/broken_fuzz_targets"
+rm -rf $VALID_TARGETS_DIR
+rm -rf $BROKEN_TARGETS_DIR
+mkdir $VALID_TARGETS_DIR
+mkdir $BROKEN_TARGETS_DIR
+
+# Move the directory the fuzzer is located in to somewhere that doesn't exist
+# on the builder to make it more likely that hardcoding /out fails here (since
+# it will fail on ClusterFuzz).
+TMP_FUZZER_DIR=/tmp/not-out
+rm -rf $TMP_FUZZER_DIR
+mkdir $TMP_FUZZER_DIR
+# Move contents of $OUT/ into $TMP_FUZZER_DIR. We can't move the directory
+# itself because it is a mount.
+mv $OUT/* $TMP_FUZZER_DIR
+INITIAL_OUT=$OUT
+export OUT=$TMP_FUZZER_DIR
+
+
+# Main loop that iterates through all fuzz targets and runs the check.
+for FUZZER_BINARY in $(find $TMP_FUZZER_DIR -maxdepth 1 -executable -type f); do
+  if file "$FUZZER_BINARY" | grep -v ELF > /dev/null 2>&1; then
+    continue
+  fi
+
+  # Continue if not a fuzz target.
+  if [[ $FUZZING_ENGINE != "none" ]]; then
+    grep "LLVMFuzzerTestOneInput" $FUZZER_BINARY > /dev/null 2>&1 || continue
+  fi
+
+  FUZZER=$(basename $FUZZER_BINARY)
+  if [[ "$FUZZER" == afl-* ]]; then
+    continue
+  fi
+  if [[ "$FUZZER" == honggfuzz ]]; then
+    continue
+  fi
+
+  echo "INFO: performing bad build checks for $FUZZER_BINARY."
+
+  LOG_PATH_FOR_BROKEN_TARGET="${BROKEN_TARGETS_DIR}/${FUZZER}"
+
+  # Launch bad build check process in the background. Ignore the exit codes, as
+  # we check the percentage of broken fuzz targets after running all the checks.
+  bad_build_check $FUZZER_BINARY &> $LOG_PATH_FOR_BROKEN_TARGET &
+
+  # Count total number of fuzz targets being tested.
+  TOTAL_TARGETS_COUNT=$[$TOTAL_TARGETS_COUNT+1]
+
+  # Do not spawn more processes than the number of CPUs available.
+  n_child_proc=$(jobs -rp | wc -l)
+  while [ "$n_child_proc" -eq "$NPROC" ]; do
+    sleep 4
+    n_child_proc=$(jobs -rp | wc -l)
+  done
+done
+
+# Wait for background processes to finish.
+wait
+
+# Restore OUT
+export OUT=$INITIAL_OUT
+mv $TMP_FUZZER_DIR/* $OUT
+
+# Sanity check in case there are no fuzz targets in the $OUT/ dir.
+if [ "$TOTAL_TARGETS_COUNT" -eq "0" ]; then
+  echo "ERROR: no fuzzers found in $OUT/"
+  ls -al $OUT
+  exit 1
+fi
+
+# An empty log file indicated that corresponding fuzz target is not broken.
+find $BROKEN_TARGETS_DIR -empty -exec mv {} $VALID_TARGETS_DIR \;
+
+# Calculate number of valid and broken fuzz targets.
+VALID_TARGETS_COUNT=$(ls $VALID_TARGETS_DIR | wc -l)
+BROKEN_TARGETS_COUNT=$(ls $BROKEN_TARGETS_DIR | wc -l)
+
+# Sanity check to make sure that bad build check doesn't skip any fuzz target.
+if [ "$TOTAL_TARGETS_COUNT" -ne "$[$VALID_TARGETS_COUNT+$BROKEN_TARGETS_COUNT]" ]; then
+  echo "ERROR: bad_build_check seems to have a bug, total number of fuzz" \
+       "does not match number of fuzz targets tested."
+  echo "Total fuzz targets ($TOTAL_TARGETS_COUNT):"
+  ls -al $OUT
+  echo "Valid fuzz targets ($VALID_TARGETS_COUNT):"
+  ls -al $VALID_TARGETS_DIR
+  echo "Total fuzz targets ($BROKEN_TARGETS_COUNT):"
+  ls -al $BROKEN_TARGETS_DIR
+  exit 1
+fi
+
+# Build info about all broken fuzz targets (if any).
+if [ "$BROKEN_TARGETS_COUNT" -gt "0" ]; then
+  echo "Broken fuzz targets ($BROKEN_TARGETS_COUNT):"
+  for target in $(ls $BROKEN_TARGETS_DIR); do
+    echo "${target}:"
+    cat ${BROKEN_TARGETS_DIR}/${target}
+  done
+fi
+
+# Calculate the percentage of broken fuzz targets and make the finel decision.
+BROKEN_TARGETS_PERCENTAGE=$[$BROKEN_TARGETS_COUNT*100/$TOTAL_TARGETS_COUNT]
+
+
+if [ "$BROKEN_TARGETS_PERCENTAGE" -gt "$ALLOWED_BROKEN_TARGETS_PERCENTAGE" ]; then
+  echo "ERROR: $BROKEN_TARGETS_PERCENTAGE% of fuzz targets seem to be broken." \
+       "See the list above for a detailed information."
+
+  # TODO: figure out how to not fail the "special" cases handled below. Those
+  # are from "example" and "c-ares" projects and are too small targets to pass.
+  if [ "$(ls $OUT/do_stuff_fuzzer $OUT/ares_*_fuzzer $OUT/checksum_fuzzer $OUT/xmltest $OUT/fuzz_compression_sas_rle 2>/dev/null | wc -l)" -gt "0" ]; then
+    exit 0
+  fi
+
+  exit 1
+else
+  echo "$TOTAL_TARGETS_COUNT fuzzers total, $BROKEN_TARGETS_COUNT seem to be" \
+       "broken ($BROKEN_TARGETS_PERCENTAGE%)."
+  exit 0
+fi
diff --git a/infra/base-images/base-runner/test_all.py b/infra/base-images/base-runner/test_all.py
deleted file mode 100755
index 925ebde..0000000
--- a/infra/base-images/base-runner/test_all.py
+++ /dev/null
@@ -1,224 +0,0 @@
-#!/usr/bin/env python3
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Does bad_build_check on all fuzz targets in $OUT."""
-
-import contextlib
-import multiprocessing
-import os
-import re
-import shutil
-import subprocess
-import stat
-import sys
-
-TMP_FUZZER_DIR = '/tmp/not-out'
-
-EXECUTABLE = stat.S_IEXEC | stat.S_IXGRP | stat.S_IXOTH
-
-IGNORED_TARGETS = [
-    r'do_stuff_fuzzer', r'checksum_fuzzer', r'fuzz_dump', r'fuzz_keyring',
-    r'xmltest', r'fuzz_compression_sas_rle', r'ares_*_fuzzer'
-]
-
-IGNORED_TARGETS_RE = re.compile('^' + r'$|^'.join(IGNORED_TARGETS) + '$')
-
-
-def recreate_directory(directory):
-  """Creates |directory|. If it already exists than deletes it first before
-  creating."""
-  if os.path.exists(directory):
-    shutil.rmtree(directory)
-  os.mkdir(directory)
-
-
-def move_directory_contents(src_directory, dst_directory):
-  """Moves contents of |src_directory| to |dst_directory|."""
-  # Use mv because mv preserves file permissions. If we don't preserve file
-  # permissions that can mess up CheckFuzzerBuildTest in cifuzz_test.py and
-  # other cases where one is calling test_all on files not in OSS-Fuzz's real
-  # out directory.
-  src_contents = [
-      os.path.join(src_directory, filename)
-      for filename in os.listdir(src_directory)
-  ]
-  command = ['mv'] + src_contents + [dst_directory]
-  subprocess.check_call(command)
-
-
-def is_elf(filepath):
-  """Returns True if |filepath| is an ELF file."""
-  result = subprocess.run(['file', filepath],
-                          stdout=subprocess.PIPE,
-                          check=False)
-  return b'ELF' in result.stdout
-
-
-def find_fuzz_targets(directory, fuzzing_language):
-  """Returns paths to fuzz targets in |directory|."""
-  # TODO(https://github.com/google/oss-fuzz/issues/4585): Use libClusterFuzz for
-  # this.
-  fuzz_targets = []
-  for filename in os.listdir(directory):
-    path = os.path.join(directory, filename)
-    if filename == 'llvm-symbolizer':
-      continue
-    if filename.startswith('afl-'):
-      continue
-    if filename.startswith('jazzer_'):
-      continue
-    if not os.path.isfile(path):
-      continue
-    if not os.stat(path).st_mode & EXECUTABLE:
-      continue
-    # Fuzz targets are expected to be ELF binaries for languages other than
-    # Python and Java.
-    if (fuzzing_language != 'python' and fuzzing_language != 'jvm' and
-        not is_elf(path)):
-      continue
-    if os.getenv('FUZZING_ENGINE') != 'none':
-      with open(path, 'rb') as file_handle:
-        binary_contents = file_handle.read()
-        if b'LLVMFuzzerTestOneInput' not in binary_contents:
-          continue
-    fuzz_targets.append(path)
-  return fuzz_targets
-
-
-def do_bad_build_check(fuzz_target):
-  """Runs bad_build_check on |fuzz_target|. Returns a
-  Subprocess.ProcessResult."""
-  print('INFO: performing bad build checks for', fuzz_target)
-  command = ['bad_build_check', fuzz_target]
-  return subprocess.run(command,
-                        stderr=subprocess.PIPE,
-                        stdout=subprocess.PIPE,
-                        check=False)
-
-
-def get_broken_fuzz_targets(bad_build_results, fuzz_targets):
-  """Returns a list of broken fuzz targets and their process results in
-  |fuzz_targets| where each item in |bad_build_results| is the result of
-  bad_build_check on the corresponding element in |fuzz_targets|."""
-  broken = []
-  for result, fuzz_target in zip(bad_build_results, fuzz_targets):
-    if result.returncode != 0:
-      broken.append((fuzz_target, result))
-  return broken
-
-
-def has_ignored_targets(out_dir):
-  """Returns True if |out_dir| has any fuzz targets we are supposed to ignore
-  bad build checks of."""
-  out_files = set(os.listdir(out_dir))
-  for filename in out_files:
-    if re.match(IGNORED_TARGETS_RE, filename):
-      return True
-  return False
-
-
-@contextlib.contextmanager
-def use_different_out_dir():
-  """Context manager that moves OUT to TMP_FUZZER_DIR. This is useful for
-  catching hardcoding. Note that this sets the environment variable OUT and
-  therefore must be run before multiprocessing.Pool is created. Resets OUT at
-  the end."""
-  # Use a fake OUT directory to catch path hardcoding that breaks on
-  # ClusterFuzz.
-  out = os.getenv('OUT')
-  initial_out = out
-  recreate_directory(TMP_FUZZER_DIR)
-  out = TMP_FUZZER_DIR
-  # Set this so that run_fuzzer which is called by bad_build_check works
-  # properly.
-  os.environ['OUT'] = out
-  # We move the contents of the directory because we can't move the
-  # directory itself because it is a mount.
-  move_directory_contents(initial_out, out)
-  try:
-    yield out
-  finally:
-    move_directory_contents(out, initial_out)
-    shutil.rmtree(out)
-    os.environ['OUT'] = initial_out
-
-
-def test_all_outside_out(fuzzing_language, allowed_broken_targets_percentage):
-  """Wrapper around test_all that changes OUT and returns the result."""
-  with use_different_out_dir() as out:
-    return test_all(out, fuzzing_language, allowed_broken_targets_percentage)
-
-
-def test_all(out, fuzzing_language, allowed_broken_targets_percentage):
-  """Do bad_build_check on all fuzz targets."""
-  # TODO(metzman): Refactor so that we can convert test_one to python.
-  fuzz_targets = find_fuzz_targets(out, fuzzing_language)
-  if not fuzz_targets:
-    print('ERROR: No fuzz targets found.')
-    return False
-
-  pool = multiprocessing.Pool()
-  bad_build_results = pool.map(do_bad_build_check, fuzz_targets)
-  broken_targets = get_broken_fuzz_targets(bad_build_results, fuzz_targets)
-  broken_targets_count = len(broken_targets)
-  if not broken_targets_count:
-    return True
-
-  print('Broken fuzz targets', broken_targets_count)
-  total_targets_count = len(fuzz_targets)
-  broken_targets_percentage = 100 * broken_targets_count / total_targets_count
-  for broken_target, result in broken_targets:
-    print(broken_target)
-    # Use write because we can't print binary strings.
-    sys.stdout.buffer.write(result.stdout + result.stderr + b'\n')
-
-  if broken_targets_percentage > allowed_broken_targets_percentage:
-    print('ERROR: {broken_targets_percentage}% of fuzz targets seem to be '
-          'broken. See the list above for a detailed information.'.format(
-              broken_targets_percentage=broken_targets_percentage))
-    if has_ignored_targets(out):
-      print('Build check automatically passing because of ignored targets.')
-      return True
-    return False
-  print('{total_targets_count} fuzzers total, {broken_targets_count} '
-        'seem to be broken ({broken_targets_percentage}%).'.format(
-            total_targets_count=total_targets_count,
-            broken_targets_count=broken_targets_count,
-            broken_targets_percentage=broken_targets_percentage))
-  return True
-
-
-def get_allowed_broken_targets_percentage():
-  """Returns the value of the environment value
-  'ALLOWED_BROKEN_TARGETS_PERCENTAGE' as an int or returns a reasonable
-  default."""
-  return int(os.getenv('ALLOWED_BROKEN_TARGETS_PERCENTAGE') or '10')
-
-
-def main():
-  """Does bad_build_check on all fuzz targets in parallel. Returns 0 on success.
-  Returns 1 on failure."""
-  # Set these environment variables here so that stdout
-  fuzzing_language = os.getenv('FUZZING_LANGUAGE')
-  allowed_broken_targets_percentage = get_allowed_broken_targets_percentage()
-  if not test_all_outside_out(fuzzing_language,
-                              allowed_broken_targets_percentage):
-    return 1
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/infra/base-images/base-runner/test_all_test.py b/infra/base-images/base-runner/test_all_test.py
deleted file mode 100644
index 3771ec2..0000000
--- a/infra/base-images/base-runner/test_all_test.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Tests test_all.py"""
-import unittest
-from unittest import mock
-
-import test_all
-
-
-class TestTestAll(unittest.TestCase):
-  """Tests for the test_all_function."""
-
-  @mock.patch('test_all.find_fuzz_targets', return_value=[])
-  @mock.patch('builtins.print')
-  def test_test_all_no_fuzz_targets(self, mocked_print, _):
-    """Tests that test_all returns False when there are no fuzz targets."""
-    outdir = '/out'
-    fuzzing_language = 'c++'
-    allowed_broken_targets_percentage = 0
-    self.assertFalse(
-        test_all.test_all(outdir, fuzzing_language,
-                          allowed_broken_targets_percentage))
-    mocked_print.assert_called_with('ERROR: No fuzz targets found.')
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/infra/base-images/base-runner/test_one b/infra/base-images/base-runner/test_one
new file mode 100755
index 0000000..23b7fd9
--- /dev/null
+++ b/infra/base-images/base-runner/test_one
@@ -0,0 +1,58 @@
+#!/bin/bash -u
+# Copyright 2020 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+# Wrapper around bad_build_check that moves the /out directory to /tmp/not-out.
+# This is useful when bad_build_check isn't called from test_all which does the
+# same thing.
+
+function main {
+  # Move the directory the fuzzer is located in to somewhere that doesn't exist
+  # on the builder to make it more likely that hardcoding /out fails here (since
+  # it will fail on ClusterFuzz).
+  local fuzzer=$1
+  fuzzer=$(realpath $fuzzer)
+  local initial_fuzzer_dir=$(dirname $fuzzer)
+
+  local tmp_fuzzer_dir=/tmp/not-out
+  rm -rf $tmp_fuzzer_dir
+  mkdir $tmp_fuzzer_dir
+  # Move the contents of $initial_fuzzer_dir rather than the directory itself in
+  # case it is a mount.
+  mv $initial_fuzzer_dir/* $tmp_fuzzer_dir
+  fuzzer="$tmp_fuzzer_dir/$(basename $fuzzer)"
+
+  # Change OUT to the temporary fuzzer dir.
+  local initial_out=$OUT
+  export OUT=$tmp_fuzzer_dir
+
+  bad_build_check $fuzzer
+  returncode=$?
+
+  # Restore OUT and $initial_fuzzer_dir
+  export OUT=$initial_out
+  mv $tmp_fuzzer_dir/* $initial_fuzzer_dir
+
+  return $returncode
+}
+
+if [ $# -ne 1 ]; then
+  echo "Usage: $0 <fuzz_target_binary>"
+  exit 1
+fi
+
+main $1
+exit $?
diff --git a/infra/base-images/base-runner/test_one.py b/infra/base-images/base-runner/test_one.py
deleted file mode 100755
index 9bdb75f..0000000
--- a/infra/base-images/base-runner/test_one.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python3
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Does bad_build_check on a fuzz target in $OUT."""
-import os
-import sys
-
-import test_all
-
-
-def test_one(fuzz_target):
-  """Does bad_build_check on one fuzz target. Returns True on success."""
-  with test_all.use_different_out_dir():
-    fuzz_target_path = os.path.join(os.environ['OUT'], fuzz_target)
-    return test_all.do_bad_build_check(fuzz_target_path).returncode == 0
-
-
-def main():
-  """Does bad_build_check on one fuzz target. Returns 1 on failure, 0 on
-  success."""
-  if len(sys.argv) != 2:
-    print('Usage: %d <fuzz_target>', sys.argv[0])
-    return 1
-
-  fuzz_target_binary = sys.argv[1]
-  return 0 if test_one(fuzz_target_binary) else 1
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/infra/base-images/base-sanitizer-libs-builder/Dockerfile b/infra/base-images/base-sanitizer-libs-builder/Dockerfile
deleted file mode 100644
index b1a17b9..0000000
--- a/infra/base-images/base-sanitizer-libs-builder/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2017 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-clang
-RUN sed -i -r 's/#\s*deb-src/deb-src/g' /etc/apt/sources.list
-RUN apt-get update && apt-get install -y python dpkg-dev patchelf python-apt zip
-
-COPY compiler_wrapper.py msan_build.py patch_build.py wrapper_utils.py /usr/local/bin/
-COPY packages /usr/local/bin/packages
diff --git a/infra/base-images/base-sanitizer-libs-builder/msan_build.py b/infra/base-images/base-sanitizer-libs-builder/msan_build.py
deleted file mode 100755
index 5ea00ab..0000000
--- a/infra/base-images/base-sanitizer-libs-builder/msan_build.py
+++ /dev/null
@@ -1,460 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2017 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-from __future__ import print_function
-import argparse
-import imp
-import os
-import multiprocessing
-import resource
-import shutil
-import subprocess
-import tempfile
-
-import apt
-from apt import debfile
-
-from packages import package
-import wrapper_utils
-
-SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
-PACKAGES_DIR = os.path.join(SCRIPT_DIR, 'packages')
-
-TRACK_ORIGINS_ARG = '-fsanitize-memory-track-origins='
-
-INJECTED_ARGS = [
-    '-fsanitize=memory',
-    '-fsanitize-recover=memory',
-    '-fPIC',
-    '-fno-omit-frame-pointer',
-]
-
-
-class MSanBuildException(Exception):
-  """Base exception."""
-
-
-def GetTrackOriginsFlag():
-  """Get the track origins flag."""
-  if os.getenv('MSAN_NO_TRACK_ORIGINS'):
-    return TRACK_ORIGINS_ARG + '0'
-
-  return TRACK_ORIGINS_ARG + '2'
-
-
-def GetInjectedFlags():
-  return INJECTED_ARGS + [GetTrackOriginsFlag()]
-
-
-def SetUpEnvironment(work_dir):
-  """Set up build environment."""
-  env = {}
-  env['REAL_CLANG_PATH'] = subprocess.check_output(['which', 'clang']).strip()
-  print('Real clang at', env['REAL_CLANG_PATH'])
-  compiler_wrapper_path = os.path.join(SCRIPT_DIR, 'compiler_wrapper.py')
-
-  # Symlink binaries into TMP/bin
-  bin_dir = os.path.join(work_dir, 'bin')
-  os.mkdir(bin_dir)
-
-  dpkg_host_architecture = wrapper_utils.DpkgHostArchitecture()
-  wrapper_utils.CreateSymlinks(
-      compiler_wrapper_path,
-      bin_dir,
-      [
-          'clang',
-          'clang++',
-          # Not all build rules respect $CC/$CXX, so make additional symlinks.
-          'gcc',
-          'g++',
-          'cc',
-          'c++',
-          dpkg_host_architecture + '-gcc',
-          dpkg_host_architecture + '-g++',
-      ])
-
-  env['CC'] = os.path.join(bin_dir, 'clang')
-  env['CXX'] = os.path.join(bin_dir, 'clang++')
-
-  MSAN_OPTIONS = ' '.join(GetInjectedFlags())
-
-  # We don't use nostrip because some build rules incorrectly break when it is
-  # passed. Instead we install our own no-op strip binaries.
-  env['DEB_BUILD_OPTIONS'] = ('nocheck parallel=%d' %
-                              multiprocessing.cpu_count())
-  env['DEB_CFLAGS_APPEND'] = MSAN_OPTIONS
-  env['DEB_CXXFLAGS_APPEND'] = MSAN_OPTIONS + ' -stdlib=libc++'
-  env['DEB_CPPFLAGS_APPEND'] = MSAN_OPTIONS
-  env['DEB_LDFLAGS_APPEND'] = MSAN_OPTIONS
-  env['DPKG_GENSYMBOLS_CHECK_LEVEL'] = '0'
-
-  # debian/rules can set DPKG_GENSYMBOLS_CHECK_LEVEL explicitly, so override it.
-  gen_symbols_wrapper = ('#!/bin/sh\n'
-                         'export DPKG_GENSYMBOLS_CHECK_LEVEL=0\n'
-                         '/usr/bin/dpkg-gensymbols "$@"\n')
-
-  wrapper_utils.InstallWrapper(bin_dir, 'dpkg-gensymbols', gen_symbols_wrapper)
-
-  # Install no-op strip binaries.
-  no_op_strip = ('#!/bin/sh\n' 'exit 0\n')
-  wrapper_utils.InstallWrapper(bin_dir, 'strip', no_op_strip,
-                               [dpkg_host_architecture + '-strip'])
-
-  env['PATH'] = bin_dir + ':' + os.environ['PATH']
-
-  # nocheck doesn't disable override_dh_auto_test. So we have this hack to try
-  # to disable "make check" or "make test" invocations.
-  make_wrapper = ('#!/bin/bash\n'
-                  'if [ "$1" = "test" ] || [ "$1" = "check" ]; then\n'
-                  '  exit 0\n'
-                  'fi\n'
-                  '/usr/bin/make "$@"\n')
-  wrapper_utils.InstallWrapper(bin_dir, 'make', make_wrapper)
-
-  # Prevent entire build from failing because of bugs/uninstrumented in tools
-  # that are part of the build.
-  msan_log_dir = os.path.join(work_dir, 'msan')
-  os.mkdir(msan_log_dir)
-  msan_log_path = os.path.join(msan_log_dir, 'log')
-  env['MSAN_OPTIONS'] = ('halt_on_error=0:exitcode=0:report_umrs=0:log_path=' +
-                         msan_log_path)
-
-  # Increase maximum stack size to prevent tests from failing.
-  limit = 128 * 1024 * 1024
-  resource.setrlimit(resource.RLIMIT_STACK, (limit, limit))
-  return env
-
-
-def FindPackageDebs(package_name, work_directory):
-  """Find package debs."""
-  deb_paths = []
-  cache = apt.Cache()
-
-  for filename in os.listdir(work_directory):
-    file_path = os.path.join(work_directory, filename)
-    if not file_path.endswith('.deb'):
-      continue
-
-    # Matching package name.
-    deb = debfile.DebPackage(file_path)
-    if deb.pkgname == package_name:
-      deb_paths.append(file_path)
-      continue
-
-    # Also include -dev packages that depend on the runtime package.
-    pkg = cache[deb.pkgname]
-    if pkg.section != 'libdevel' and pkg.section != 'universe/libdevel':
-      continue
-
-    # But ignore -dbg packages.
-    if deb.pkgname.endswith('-dbg'):
-      continue
-
-    for dependency in deb.depends:
-      if any(dep[0] == package_name for dep in dependency):
-        deb_paths.append(file_path)
-        break
-
-  return deb_paths
-
-
-def ExtractLibraries(deb_paths, work_directory, output_directory):
-  """Extract libraries from .deb packages."""
-  extract_directory = os.path.join(work_directory, 'extracted')
-  if os.path.exists(extract_directory):
-    shutil.rmtree(extract_directory, ignore_errors=True)
-
-  os.mkdir(extract_directory)
-
-  for deb_path in deb_paths:
-    subprocess.check_call(['dpkg-deb', '-x', deb_path, extract_directory])
-
-  extracted = []
-  for root, _, filenames in os.walk(extract_directory):
-    if 'libx32' in root or 'lib32' in root:
-      continue
-
-    for filename in filenames:
-      if (not filename.endswith('.so') and '.so.' not in filename and
-          not filename.endswith('.a') and '.a' not in filename):
-        continue
-
-      file_path = os.path.join(root, filename)
-      rel_file_path = os.path.relpath(file_path, extract_directory)
-      rel_directory = os.path.dirname(rel_file_path)
-
-      target_dir = os.path.join(output_directory, rel_directory)
-      if not os.path.exists(target_dir):
-        os.makedirs(target_dir)
-
-      target_file_path = os.path.join(output_directory, rel_file_path)
-      extracted.append(target_file_path)
-
-      if os.path.lexists(target_file_path):
-        os.remove(target_file_path)
-
-      if os.path.islink(file_path):
-        link_path = os.readlink(file_path)
-        if os.path.isabs(link_path):
-          # Make absolute links relative.
-          link_path = os.path.relpath(link_path,
-                                      os.path.join('/', rel_directory))
-
-        os.symlink(link_path, target_file_path)
-      else:
-        shutil.copy2(file_path, target_file_path)
-
-  return extracted
-
-
-def GetPackage(package_name):
-  apt_cache = apt.Cache()
-  version = apt_cache[package_name].candidate
-  source_name = version.source_name
-  local_source_name = source_name.replace('.', '_')
-
-  custom_package_path = os.path.join(PACKAGES_DIR, local_source_name) + '.py'
-  if not os.path.exists(custom_package_path):
-    print('Using default package build steps.')
-    return package.Package(source_name, version)
-
-  print('Using custom package build steps.')
-  module = imp.load_source('packages.' + local_source_name, custom_package_path)
-  return module.Package(version)
-
-
-def PatchRpath(path, output_directory):
-  """Patch rpath to be relative to $ORIGIN."""
-  try:
-    rpaths = subprocess.check_output(['patchelf', '--print-rpath',
-                                      path]).strip()
-  except subprocess.CalledProcessError:
-    return
-
-  if not rpaths:
-    return
-
-  processed_rpath = []
-  rel_directory = os.path.join(
-      '/', os.path.dirname(os.path.relpath(path, output_directory)))
-
-  for rpath in rpaths.split(':'):
-    if '$ORIGIN' in rpath:
-      # Already relative.
-      processed_rpath.append(rpath)
-      continue
-
-    processed_rpath.append(
-        os.path.join('$ORIGIN', os.path.relpath(rpath, rel_directory)))
-
-  processed_rpath = ':'.join(processed_rpath)
-  print('Patching rpath for', path, 'to', processed_rpath)
-  subprocess.check_call(
-      ['patchelf', '--force-rpath', '--set-rpath', processed_rpath, path])
-
-
-def _CollectDependencies(apt_cache, pkg, cache, dependencies):
-  """Collect dependencies that need to be built."""
-  C_OR_CXX_DEPS = [
-      'libc++1',
-      'libc6',
-      'libc++abi1',
-      'libgcc1',
-      'libstdc++6',
-  ]
-
-  BLACKLISTED_PACKAGES = [
-      'libcapnp-0.5.3',  # fails to compile on newer clang.
-      'libllvm5.0',
-      'libmircore1',
-      'libmircommon7',
-      'libmirclient9',
-      'libmirprotobuf3',
-      'multiarch-support',
-  ]
-
-  if pkg.name in BLACKLISTED_PACKAGES:
-    return False
-
-  if pkg.section != 'libs' and pkg.section != 'universe/libs':
-    return False
-
-  if pkg.name in C_OR_CXX_DEPS:
-    return True
-
-  is_c_or_cxx = False
-  for dependency in pkg.candidate.dependencies:
-    dependency = dependency[0]
-
-    if dependency.name in cache:
-      is_c_or_cxx |= cache[dependency.name]
-    else:
-      is_c_or_cxx |= _CollectDependencies(apt_cache, apt_cache[dependency.name],
-                                          cache, dependencies)
-  if is_c_or_cxx:
-    dependencies.append(pkg.name)
-
-  cache[pkg.name] = is_c_or_cxx
-  return is_c_or_cxx
-
-
-def GetBuildList(package_name):
-  """Get list of packages that need to be built including dependencies."""
-  apt_cache = apt.Cache()
-  pkg = apt_cache[package_name]
-
-  dependencies = []
-  _CollectDependencies(apt_cache, pkg, {}, dependencies)
-  return dependencies
-
-
-class MSanBuilder(object):
-  """MSan builder."""
-
-  def __init__(self,
-               debug=False,
-               log_path=None,
-               work_dir=None,
-               no_track_origins=False):
-    self.debug = debug
-    self.log_path = log_path
-    self.work_dir = work_dir
-    self.no_track_origins = no_track_origins
-    self.env = None
-
-  def __enter__(self):
-    if not self.work_dir:
-      self.work_dir = tempfile.mkdtemp(dir=self.work_dir)
-
-    if os.path.exists(self.work_dir):
-      shutil.rmtree(self.work_dir, ignore_errors=True)
-
-    os.makedirs(self.work_dir)
-    self.env = SetUpEnvironment(self.work_dir)
-
-    if self.debug and self.log_path:
-      self.env['WRAPPER_DEBUG_LOG_PATH'] = self.log_path
-
-    if self.no_track_origins:
-      self.env['MSAN_NO_TRACK_ORIGINS'] = '1'
-
-    return self
-
-  def __exit__(self, exc_type, exc_value, traceback):
-    if not self.debug:
-      shutil.rmtree(self.work_dir, ignore_errors=True)
-
-  def Build(self, package_name, output_directory, create_subdirs=False):
-    """Build the package and write results into the output directory."""
-    deb_paths = FindPackageDebs(package_name, self.work_dir)
-    if deb_paths:
-      print('Source package already built for', package_name)
-    else:
-      pkg = GetPackage(package_name)
-
-      pkg.InstallBuildDeps()
-      source_directory = pkg.DownloadSource(self.work_dir)
-      print('Source downloaded to', source_directory)
-
-      # custom bin directory for custom build scripts to write wrappers.
-      custom_bin_dir = os.path.join(self.work_dir, package_name + '_bin')
-      os.mkdir(custom_bin_dir)
-      env = self.env.copy()
-      env['PATH'] = custom_bin_dir + ':' + env['PATH']
-
-      pkg.Build(source_directory, env, custom_bin_dir)
-      shutil.rmtree(custom_bin_dir, ignore_errors=True)
-
-      deb_paths = FindPackageDebs(package_name, self.work_dir)
-
-    if not deb_paths:
-      raise MSanBuildException('Failed to find .deb packages.')
-
-    print('Extracting', ' '.join(deb_paths))
-
-    if create_subdirs:
-      extract_directory = os.path.join(output_directory, package_name)
-    else:
-      extract_directory = output_directory
-
-    extracted_paths = ExtractLibraries(deb_paths, self.work_dir,
-                                       extract_directory)
-    for extracted_path in extracted_paths:
-      if os.path.islink(extracted_path):
-        continue
-      if os.path.basename(extracted_path) == 'llvm-symbolizer':
-        continue
-      PatchRpath(extracted_path, extract_directory)
-
-
-def main():
-  parser = argparse.ArgumentParser('msan_build.py', description='MSan builder.')
-  parser.add_argument('package_names', nargs='+', help='Name of the packages.')
-  parser.add_argument('output_dir', help='Output directory.')
-  parser.add_argument('--create-subdirs',
-                      action='store_true',
-                      help=('Create subdirectories in the output '
-                            'directory for each package.'))
-  parser.add_argument('--work-dir', help='Work directory.')
-  parser.add_argument('--no-build-deps',
-                      action='store_true',
-                      help='Don\'t build dependencies.')
-  parser.add_argument('--debug', action='store_true', help='Enable debug mode.')
-  parser.add_argument('--log-path', help='Log path for debugging.')
-  parser.add_argument('--no-track-origins',
-                      action='store_true',
-                      help='Build with -fsanitize-memory-track-origins=0.')
-  args = parser.parse_args()
-
-  if args.no_track_origins:
-    os.environ['MSAN_NO_TRACK_ORIGINS'] = '1'
-
-  if not os.path.exists(args.output_dir):
-    os.makedirs(args.output_dir)
-
-  if args.no_build_deps:
-    package_names = args.package_names
-  else:
-    all_packages = set()
-    package_names = []
-
-    # Get list of packages to build, including all dependencies.
-    for package_name in args.package_names:
-      for dep in GetBuildList(package_name):
-        if dep in all_packages:
-          continue
-
-        if args.create_subdirs:
-          os.mkdir(os.path.join(args.output_dir, dep))
-
-        all_packages.add(dep)
-        package_names.append(dep)
-
-  print('Going to build:')
-  for package_name in package_names:
-    print('\t', package_name)
-
-  with MSanBuilder(debug=args.debug,
-                   log_path=args.log_path,
-                   work_dir=args.work_dir,
-                   no_track_origins=args.no_track_origins) as builder:
-    for package_name in package_names:
-      builder.Build(package_name, args.output_dir, args.create_subdirs)
-
-
-if __name__ == '__main__':
-  main()
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/pixman.py b/infra/base-images/base-sanitizer-libs-builder/packages/pixman.py
deleted file mode 100644
index 5251246..0000000
--- a/infra/base-images/base-sanitizer-libs-builder/packages/pixman.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2017 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-import os
-import shutil
-
-import package
-
-
-class Package(package.Package):
-  """pixman package."""
-
-  def __init__(self, apt_version):
-    super(Package, self).__init__('pixman', apt_version)
-
-  def PostDownload(self, source_directory):
-    # Incorrect checking of GCC vector extension availability.
-    os.system('sed s/support_for_gcc_vector_extensions=yes/'
-              'support_for_gcc_vector_extensions=no/ -i %s/configure.ac' %
-              source_directory)
-
-  def PreBuild(self, source_directory, env, custom_bin_dir):
-    blocklist_flag = ' -fsanitize-blacklist=' + os.path.join(
-        os.path.dirname(os.path.abspath(__file__)), 'pixman_blocklist.txt')
-    env['DEB_CXXFLAGS_APPEND'] += blocklist_flag
-    env['DEB_CFLAGS_APPEND'] += blocklist_flag
diff --git a/infra/base-images/base-sanitizer-libs-builder/packages/pulseaudio.py b/infra/base-images/base-sanitizer-libs-builder/packages/pulseaudio.py
deleted file mode 100644
index d3ce7a1..0000000
--- a/infra/base-images/base-sanitizer-libs-builder/packages/pulseaudio.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2017 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-from __future__ import print_function
-import glob
-import os
-import subprocess
-
-import package
-
-
-class Package(package.Package):
-  """PulseAudio package."""
-
-  def __init__(self, apt_version):
-    super(Package, self).__init__('pulseaudio', apt_version)
-
-  def PostDownload(self, source_directory):
-    """Remove blocklisted patches."""
-    # Fix *droid* patches.
-    bad_patch_path = os.path.join(
-        source_directory, 'debian', 'patches',
-        '0600-droid-sync-with-upstream-for-Android-5-support-and-b.patch')
-    if not os.path.exists(bad_patch_path):
-      return
-
-    print('Applying custom patches.')
-    package.ApplyPatch(source_directory, 'pulseaudio_fix_android.patch')
diff --git a/infra/base-images/base-sanitizer-libs-builder/patch_build.py b/infra/base-images/base-sanitizer-libs-builder/patch_build.py
deleted file mode 100755
index cb1f4b1..0000000
--- a/infra/base-images/base-sanitizer-libs-builder/patch_build.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2017 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-from __future__ import print_function
-import argparse
-import os
-import re
-import shutil
-import subprocess
-import sys
-
-INSTRUMENTED_LIBRARIES_DIRNAME = 'instrumented_libraries'
-MSAN_LIBS_PATH = os.getenv('MSAN_LIBS_PATH', '/msan')
-
-
-def IsElf(file_path):
-  """Whether if the file is an elf file."""
-  with open(file_path) as f:
-    return f.read(4) == '\x7fELF'
-
-
-def Ldd(binary_path):
-  """Run ldd on a file."""
-  try:
-    output = subprocess.check_output(['ldd', binary_path], stderr=subprocess.STDOUT)
-  except subprocess.CalledProcessError:
-    print('Failed to call ldd on', binary_path, file=sys.stderr)
-    return []
-
-  libs = []
-
-  OUTPUT_PATTERN = re.compile(r'\s*([^\s]+)\s*=>\s*([^\s]+)')
-  for line in output.splitlines():
-    match = OUTPUT_PATTERN.match(line)
-    if not match:
-      continue
-
-    libs.append((match.group(1), match.group(2)))
-
-  return libs
-
-
-def FindLib(path):
-  """Find instrumented version of lib."""
-  candidate_path = os.path.join(MSAN_LIBS_PATH, path[1:])
-  if os.path.exists(candidate_path):
-    return candidate_path
-  
-  for lib_dir in os.listdir(MSAN_LIBS_PATH):
-    candidate_path = os.path.join(MSAN_LIBS_PATH, lib_dir, path[1:])
-    if os.path.exists(candidate_path):
-      return candidate_path
-
-  return None
-
-
-def PatchBinary(binary_path, instrumented_dir):
-  """Patch binary to link to instrumented libs."""
-  extra_rpaths = set()
-
-  for name, path in Ldd(binary_path):
-    if not os.path.isabs(path):
-      continue
-
-    instrumented_path = FindLib(path)
-    if not instrumented_path:
-      print('WARNING: Instrumented library not found for', path,
-            file=sys.stderr)
-      continue
-
-    target_path = os.path.join(instrumented_dir, path[1:])
-    if not os.path.exists(target_path):
-      print('Copying instrumented lib to', target_path)
-      target_dir = os.path.dirname(target_path)
-      if not os.path.exists(target_dir):
-        os.makedirs(target_dir)
-      shutil.copy2(instrumented_path, target_path)
-
-    extra_rpaths.add(
-        os.path.join('$ORIGIN', INSTRUMENTED_LIBRARIES_DIRNAME,
-                     os.path.dirname(path[1:])))
-
-  if not extra_rpaths:
-    return
-
-  existing_rpaths = subprocess.check_output(
-      ['patchelf', '--print-rpath', binary_path]).strip()
-  processed_rpaths = ':'.join(extra_rpaths)
-  if existing_rpaths:
-    processed_rpaths += ':' + existing_rpaths
-  print('Patching rpath for', binary_path, 'from', existing_rpaths, 'to',
-        processed_rpaths)
-
-  subprocess.check_call(
-      ['patchelf', '--force-rpath', '--set-rpath',
-       processed_rpaths, binary_path])
-
-
-def PatchBuild(output_directory):
-  """Patch build to use msan libs."""
-  instrumented_dir = os.path.join(output_directory,
-                                  INSTRUMENTED_LIBRARIES_DIRNAME)
-  if not os.path.exists(instrumented_dir):
-    os.mkdir(instrumented_dir)
-
-  for root_dir, _, filenames in os.walk(output_directory):
-    for filename in filenames:
-      file_path = os.path.join(root_dir, filename)
-
-      if os.path.islink(file_path):
-        continue
-
-      if not IsElf(file_path):
-        continue
-
-      PatchBinary(file_path, instrumented_dir)
-
-
-def main():
-  parser = argparse.ArgumentParser('patch_build.py', description='MSan build patcher.')
-  parser.add_argument('output_dir', help='Output directory.')
-
-  args = parser.parse_args()
-
-  PatchBuild(os.path.abspath(args.output_dir))
-
-
-if __name__ == '__main__':
-  main()
diff --git a/infra/base-images/msan-builder/Dockerfile b/infra/base-images/msan-builder/Dockerfile
new file mode 100644
index 0000000..5f6091a
--- /dev/null
+++ b/infra/base-images/msan-builder/Dockerfile
@@ -0,0 +1,38 @@
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+FROM gcr.io/oss-fuzz-base/base-msan-builder
+ENV PYTHONUNBUFFERED 1
+RUN msan_build.py --work-dir=$WORK \
+    libarchive13 \
+    libattr1 \
+    libbz2-1.0 \
+    libfontconfig1 \
+    libfreetype6 \
+    libfribidi0 \
+    libglib2.0-0 \
+    libicu55  \
+    liblz4-1 \
+    liblzma5 \
+    liblzo2-2 \
+    libnettle6 \
+    libpcre2-posix0 \
+    libpcre3 \
+    libpng12-0 \
+    libssl1.0.0 \
+    libxml2 \
+    zlib1g \
+    /msan
diff --git a/infra/base-images/msan-libs-builder/Dockerfile b/infra/base-images/msan-libs-builder/Dockerfile
deleted file mode 100644
index 7780c1f..0000000
--- a/infra/base-images/msan-libs-builder/Dockerfile
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 2017 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-sanitizer-libs-builder
-
-# Take all libraries from lib/msan
-RUN cp -R /usr/msan/lib/* /usr/lib/
-
-RUN mkdir /msan
-WORKDIR /msan
-
-ENV PYTHONUNBUFFERED 1
-RUN msan_build.py --work-dir=$WORK \
-    libarchive13 \
-    libattr1 \
-    libbz2-1.0 \
-    libfontconfig1 \
-    libfreetype6 \
-    libfribidi0 \
-    libglib2.0-0 \
-    libicu55  \
-    liblz4-1 \
-    liblzma5 \
-    liblzo2-2 \
-    libnettle6 \
-    libpcre2-posix0 \
-    libpcre3 \
-    libpng12-0 \
-    libssl1.0.0 \
-    libxml2 \
-    zlib1g \
-    /msan
diff --git a/infra/bisector.py b/infra/bisector.py
index 1438d0d..d1fd669 100644
--- a/infra/bisector.py
+++ b/infra/bisector.py
@@ -22,8 +22,8 @@
 
   Typical usage example:
         python3 infra/bisector.py
-          --old_commit 1e403e9259a1abedf108ab86f711ba52c907226d
-          --new_commit f79be4f2330f4b89ea2f42e1c44ca998c59a0c0f
+          --commit_old 1e403e9259a1abedf108ab86f711ba52c907226d
+          --commit_new f79be4f2330f4b89ea2f42e1c44ca998c59a0c0f
           --fuzz_target rules_fuzzer
           --project_name yara
           --testcase infra/yara_testcase
@@ -31,10 +31,7 @@
 """
 
 import argparse
-import collections
 import logging
-import os
-import sys
 import tempfile
 
 import build_specified_commit
@@ -42,31 +39,9 @@
 import repo_manager
 import utils
 
-Result = collections.namedtuple('Result', ['repo_url', 'commit'])
-
-START_MARKERS = [
-    '==ERROR',
-    '==WARNING',
-]
-
-END_MARKERS = [
-    'SUMMARY:',
-]
-
-DEDUP_TOKEN_MARKER = 'DEDUP_TOKEN:'
-
-
-class BisectError(Exception):
-  """Bisection error."""
-
-  def __init__(self, message, repo_url):
-    super().__init__(message)
-    self.repo_url = repo_url
-
 
 def main():
   """Finds the commit SHA where an error was initally introduced."""
-  logging.getLogger().setLevel(logging.INFO)
   utils.chdir_to_root()
   parser = argparse.ArgumentParser(
       description='git bisection for finding introduction of bugs')
@@ -92,10 +67,6 @@
   parser.add_argument('--sanitizer',
                       default='address',
                       help='The default is "address".')
-  parser.add_argument('--type',
-                      choices=['regressed', 'fixed'],
-                      help='The bisection type.',
-                      required=True)
   parser.add_argument('--architecture', default='x86_64')
   args = parser.parse_args()
 
@@ -104,186 +75,26 @@
                                                 sanitizer=args.sanitizer,
                                                 architecture=args.architecture)
 
-  result = bisect(args.type, args.old_commit, args.new_commit,
-                  args.test_case_path, args.fuzz_target, build_data)
-  if not result.commit:
-    logging.error('No error was found in commit range %s:%s', args.old_commit,
-                  args.new_commit)
+  error_sha = bisect(args.old_commit, args.new_commit, args.test_case_path,
+                     args.fuzz_target, build_data)
+  if not error_sha:
+    logging.error('No error was found in commit range %s:%s', args.commit_old,
+                  args.commit_new)
     return 1
-  if result.commit == args.old_commit:
+  if error_sha == args.commit_old:
     logging.error(
         'Bisection Error: Both the first and the last commits in'
         'the given range have the same behavior, bisection is not possible. ')
     return 1
-  print('Error was introduced at commit %s' % result.commit)
+  print('Error was introduced at commit %s' % error_sha)
   return 0
 
 
-def _get_dedup_token(output):
-  """Get dedup token."""
-  for line in output.splitlines():
-    token_location = line.find(DEDUP_TOKEN_MARKER)
-    if token_location == -1:
-      continue
-
-    return line[token_location + len(DEDUP_TOKEN_MARKER):].strip()
-
-  return None
-
-
-def _check_for_crash(project_name, fuzz_target, test_case_path):
-  """Check for crash."""
-
-  def docker_run(args):
-    command = ['docker', 'run', '--rm', '--privileged']
-    if sys.stdin.isatty():
-      command.append('-i')
-
-    return utils.execute(command + args)
-
-  logging.info('Checking for crash')
-  out, err, return_code = helper.reproduce_impl(project_name,
-                                                fuzz_target,
-                                                False, [], [],
-                                                test_case_path,
-                                                runner=docker_run,
-                                                err_result=(None, None, None))
-  if return_code is None:
-    return None
-
-  logging.info('stdout =\n%s', out)
-  logging.info('stderr =\n%s', err)
-
-  # pylint: disable=unsupported-membership-test
-  has_start_marker = any(
-      marker in out or marker in err for marker in START_MARKERS)
-  has_end_marker = any(marker in out or marker in err for marker in END_MARKERS)
-  if not has_start_marker or not has_end_marker:
-    return None
-
-  return _get_dedup_token(out + err)
-
-
-# pylint: disable=too-many-locals
-# pylint: disable=too-many-arguments
-# pylint: disable=too-many-statements
-def _bisect(bisect_type, old_commit, new_commit, test_case_path, fuzz_target,
-            build_data):
-  """Perform the bisect."""
-  # pylint: disable=too-many-branches
-  base_builder_repo = build_specified_commit.load_base_builder_repo()
-
-  with tempfile.TemporaryDirectory() as tmp_dir:
-    repo_url, repo_path = build_specified_commit.detect_main_repo(
-        build_data.project_name, commit=new_commit)
-    if not repo_url or not repo_path:
-      raise ValueError('Main git repo can not be determined.')
-
-    if old_commit == new_commit:
-      raise BisectError('old_commit is the same as new_commit', repo_url)
-
-    # Copy /src from the built Docker container to ensure all dependencies
-    # exist. This will be mounted when running them.
-    host_src_dir = build_specified_commit.copy_src_from_docker(
-        build_data.project_name, tmp_dir)
-
-    bisect_repo_manager = repo_manager.RepoManager(
-        os.path.join(host_src_dir, os.path.basename(repo_path)))
-    bisect_repo_manager.fetch_all_remotes()
-
-    commit_list = bisect_repo_manager.get_commit_list(new_commit, old_commit)
-
-    old_idx = len(commit_list) - 1
-    new_idx = 0
-    logging.info('Testing against new_commit (%s)', commit_list[new_idx])
-    if not build_specified_commit.build_fuzzers_from_commit(
-        commit_list[new_idx],
-        bisect_repo_manager,
-        host_src_dir,
-        build_data,
-        base_builder_repo=base_builder_repo):
-      raise BisectError('Failed to build new_commit', repo_url)
-
-    if bisect_type == 'fixed':
-      should_crash = False
-    elif bisect_type == 'regressed':
-      should_crash = True
-    else:
-      raise BisectError('Invalid bisect type ' + bisect_type, repo_url)
-
-    expected_error = _check_for_crash(build_data.project_name, fuzz_target,
-                                      test_case_path)
-    logging.info('new_commit result = %s', expected_error)
-
-    if not should_crash and expected_error:
-      logging.warning('new_commit crashed but not shouldn\'t. '
-                      'Continuing to see if stack changes.')
-
-    range_valid = False
-    for _ in range(2):
-      logging.info('Testing against old_commit (%s)', commit_list[old_idx])
-      if not build_specified_commit.build_fuzzers_from_commit(
-          commit_list[old_idx],
-          bisect_repo_manager,
-          host_src_dir,
-          build_data,
-          base_builder_repo=base_builder_repo):
-        raise BisectError('Failed to build old_commit', repo_url)
-
-      if _check_for_crash(build_data.project_name, fuzz_target,
-                          test_case_path) == expected_error:
-        logging.warning('old_commit %s had same result as new_commit %s',
-                        old_commit, new_commit)
-        # Try again on an slightly older commit.
-        old_commit = bisect_repo_manager.get_parent(old_commit, 64)
-        if not old_commit:
-          break
-
-        commit_list = bisect_repo_manager.get_commit_list(
-            new_commit, old_commit)
-        old_idx = len(commit_list) - 1
-        continue
-
-      range_valid = True
-      break
-
-    if not range_valid:
-      raise BisectError('old_commit had same result as new_commit', repo_url)
-
-    while old_idx - new_idx > 1:
-      curr_idx = (old_idx + new_idx) // 2
-      logging.info('Testing against %s (idx=%d)', commit_list[curr_idx],
-                   curr_idx)
-      if not build_specified_commit.build_fuzzers_from_commit(
-          commit_list[curr_idx],
-          bisect_repo_manager,
-          host_src_dir,
-          build_data,
-          base_builder_repo=base_builder_repo):
-        # Treat build failures as if we couldn't repo.
-        # TODO(ochang): retry nearby commits?
-        old_idx = curr_idx
-        continue
-
-      current_error = _check_for_crash(build_data.project_name, fuzz_target,
-                                       test_case_path)
-      logging.info('Current result = %s', current_error)
-      if expected_error == current_error:
-        new_idx = curr_idx
-      else:
-        old_idx = curr_idx
-    return Result(repo_url, commit_list[new_idx])
-
-
-# pylint: disable=too-many-locals
-# pylint: disable=too-many-arguments
-def bisect(bisect_type, old_commit, new_commit, test_case_path, fuzz_target,
-           build_data):
+def bisect(old_commit, new_commit, test_case_path, fuzz_target, build_data):
   """From a commit range, this function caluclates which introduced a
   specific error from a fuzz test_case_path.
 
   Args:
-    bisect_type: The type of the bisect ('regressed' or 'fixed').
     old_commit: The oldest commit in the error regression range.
     new_commit: The newest commit in the error regression range.
     test_case_path: The file path of the test case that triggers the error
@@ -296,15 +107,48 @@
   Raises:
     ValueError: when a repo url can't be determine from the project.
   """
-  try:
-    return _bisect(bisect_type, old_commit, new_commit, test_case_path,
-                   fuzz_target, build_data)
-  finally:
-    # Clean up projects/ as _bisect may have modified it.
-    oss_fuzz_repo_manager = repo_manager.RepoManager(helper.OSS_FUZZ_DIR)
-    oss_fuzz_repo_manager.git(['reset', 'projects'])
-    oss_fuzz_repo_manager.git(['checkout', 'projects'])
-    oss_fuzz_repo_manager.git(['clean', '-fxd', 'projects'])
+  with tempfile.TemporaryDirectory() as tmp_dir:
+    repo_url, repo_name = build_specified_commit.detect_main_repo(
+        build_data.project_name, commit=old_commit)
+    if not repo_url or not repo_name:
+      raise ValueError('Main git repo can not be determined.')
+    bisect_repo_manager = repo_manager.RepoManager(repo_url,
+                                                   tmp_dir,
+                                                   repo_name=repo_name)
+    commit_list = bisect_repo_manager.get_commit_list(old_commit, new_commit)
+    old_idx = len(commit_list) - 1
+    new_idx = 0
+    build_specified_commit.build_fuzzers_from_commit(commit_list[new_idx],
+                                                     bisect_repo_manager,
+                                                     build_data)
+    expected_error_code = helper.reproduce_impl(build_data.project_name,
+                                                fuzz_target, False, [], [],
+                                                test_case_path)
+
+    # Check if the error is persistent through the commit range
+    build_specified_commit.build_fuzzers_from_commit(
+        commit_list[old_idx],
+        bisect_repo_manager,
+        build_data,
+    )
+
+    if expected_error_code == helper.reproduce_impl(build_data.project_name,
+                                                    fuzz_target, False, [], [],
+                                                    test_case_path):
+      return commit_list[old_idx]
+
+    while old_idx - new_idx > 1:
+      curr_idx = (old_idx + new_idx) // 2
+      build_specified_commit.build_fuzzers_from_commit(commit_list[curr_idx],
+                                                       bisect_repo_manager,
+                                                       build_data)
+      error_code = helper.reproduce_impl(build_data.project_name, fuzz_target,
+                                         False, [], [], test_case_path)
+      if expected_error_code == error_code:
+        new_idx = curr_idx
+      else:
+        old_idx = curr_idx
+    return commit_list[new_idx]
 
 
 if __name__ == '__main__':
diff --git a/infra/bisector_test.py b/infra/bisector_test.py
index 5e3dc52..89d483e 100644
--- a/infra/bisector_test.py
+++ b/infra/bisector_test.py
@@ -29,12 +29,9 @@
 TEST_DIR_PATH = os.path.dirname(os.path.realpath(__file__))
 
 
-@unittest.skip('Test is too long to be run with presubmit.')
 class BisectIntegrationTests(unittest.TestCase):
   """Class to test the functionality of bisection method."""
 
-  BISECT_TYPE = 'regressed'
-
   def test_bisect_invalid_repo(self):
     """Test the bisection method on a project that does not exist."""
     test_repo = test_repos.INVALID_REPO
@@ -44,23 +41,22 @@
         sanitizer='address',
         architecture='x86_64')
     with self.assertRaises(ValueError):
-      bisector.bisect(self.BISECT_TYPE, test_repo.old_commit,
-                      test_repo.new_commit, test_repo.test_case_path,
-                      test_repo.fuzz_target, build_data)
+      bisector.bisect(test_repo.old_commit, test_repo.new_commit,
+                      test_repo.test_case_path, test_repo.fuzz_target,
+                      build_data)
 
   def test_bisect(self):
     """Test the bisect method on example projects."""
     for test_repo in test_repos.TEST_REPOS:
-      if test_repo.new_commit:
-        build_data = build_specified_commit.BuildData(
-            project_name=test_repo.project_name,
-            engine='libfuzzer',
-            sanitizer='address',
-            architecture='x86_64')
-        result = bisector.bisect(self.BISECT_TYPE, test_repo.old_commit,
-                                 test_repo.new_commit, test_repo.test_case_path,
-                                 test_repo.fuzz_target, build_data)
-        self.assertEqual(result.commit, test_repo.intro_commit)
+      build_data = build_specified_commit.BuildData(
+          project_name=test_repo.project_name,
+          engine='libfuzzer',
+          sanitizer='address',
+          architecture='x86_64')
+      error_sha = bisector.bisect(test_repo.old_commit, test_repo.new_commit,
+                                  test_repo.test_case_path,
+                                  test_repo.fuzz_target, build_data)
+      self.assertEqual(error_sha, test_repo.intro_commit)
 
 
 if __name__ == '__main__':
diff --git a/infra/build/functions/__init__.py b/infra/build/functions/__init__.py
deleted file mode 100644
index 9f76bf6..0000000
--- a/infra/build/functions/__init__.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
diff --git a/infra/build/functions/base_images.py b/infra/build/functions/base_images.py
deleted file mode 100644
index 8c9b2d8..0000000
--- a/infra/build/functions/base_images.py
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Cloud function to build base images on Google Cloud Builder."""
-
-import datetime
-import logging
-
-import google.auth
-from googleapiclient.discovery import build
-
-BASE_IMAGES = [
-    'base-image',
-    'base-clang',
-    'base-builder',
-    'base-runner',
-    'base-runner-debug',
-]
-BASE_PROJECT = 'oss-fuzz-base'
-TAG_PREFIX = f'gcr.io/{BASE_PROJECT}/'
-
-BASE_SANITIZER_LIBS_IMAGE = TAG_PREFIX + 'base-sanitizer-libs-builder'
-MSAN_LIBS_IMAGE = TAG_PREFIX + 'msan-libs-builder'
-
-
-def _get_base_image_steps(images, tag_prefix=TAG_PREFIX):
-  """Returns build steps for given images."""
-  steps = [{
-      'args': [
-          'clone',
-          'https://github.com/google/oss-fuzz.git',
-      ],
-      'name': 'gcr.io/cloud-builders/git',
-  }]
-
-  for base_image in images:
-    steps.append({
-        'args': [
-            'build',
-            '-t',
-            tag_prefix + base_image,
-            '.',
-        ],
-        'dir': 'oss-fuzz/infra/base-images/' + base_image,
-        'name': 'gcr.io/cloud-builders/docker',
-    })
-
-  return steps
-
-
-def get_logs_url(build_id, project_id='oss-fuzz-base'):
-  """Returns url that displays the build logs."""
-  url_format = ('https://console.developers.google.com/logs/viewer?'
-                'resource=build%2Fbuild_id%2F{0}&project={1}')
-  return url_format.format(build_id, project_id)
-
-
-# pylint: disable=no-member
-def run_build(steps, images):
-  """Execute the retrieved build steps in gcp."""
-  credentials, _ = google.auth.default()
-  build_body = {
-      'steps': steps,
-      'timeout': str(6 * 3600) + 's',
-      'options': {
-          'machineType': 'N1_HIGHCPU_32'
-      },
-      'images': images
-  }
-  cloudbuild = build('cloudbuild',
-                     'v1',
-                     credentials=credentials,
-                     cache_discovery=False)
-  build_info = cloudbuild.projects().builds().create(projectId=BASE_PROJECT,
-                                                     body=build_body).execute()
-  build_id = build_info['metadata']['build']['id']
-  logging.info('Build ID: %s', build_id)
-  logging.info('Logs: %s', get_logs_url(build_id, BASE_PROJECT))
-
-
-def base_builder(event, context):
-  """Cloud function to build base images."""
-  del event, context
-
-  tag_prefix = f'gcr.io/{BASE_PROJECT}/'
-  steps = _get_base_image_steps(BASE_IMAGES, tag_prefix)
-  images = [tag_prefix + base_image for base_image in BASE_IMAGES]
-
-  run_build(steps, images)
-
-
-def _get_msan_steps(image):
-  """Get build steps for msan-libs-builder."""
-  timestamp = datetime.datetime.utcnow().strftime('%Y%m%d%H%M')
-  upload_name = 'msan-libs-' + timestamp + '.zip'
-
-  steps = _get_base_image_steps([
-      'base-sanitizer-libs-builder',
-      'msan-libs-builder',
-  ])
-  steps.extend([{
-      'name': image,
-      'args': [
-          'bash',
-          '-c',
-          'cd /msan && zip -r /workspace/libs.zip .',
-      ],
-  }, {
-      'name':
-          'gcr.io/cloud-builders/gsutil',
-      'args': [
-          'cp',
-          '/workspace/libs.zip',
-          'gs://oss-fuzz-msan-libs/' + upload_name,
-      ],
-  }])
-  return steps
-
-
-def base_msan_builder(event, context):
-  """Cloud function to build base images."""
-  del event, context
-  steps = _get_msan_steps(MSAN_LIBS_IMAGE)
-  images = [
-      BASE_SANITIZER_LIBS_IMAGE,
-      MSAN_LIBS_IMAGE,
-  ]
-
-  run_build(steps, images)
diff --git a/infra/build/functions/build_and_run_coverage.py b/infra/build/functions/build_and_run_coverage.py
deleted file mode 100644
index cc2de5a..0000000
--- a/infra/build/functions/build_and_run_coverage.py
+++ /dev/null
@@ -1,275 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-#!/usr/bin/python2
-"""Starts and runs coverage build on Google Cloud Builder.
-Usage: build_and_run_coverage.py <project_dir>
-"""
-import datetime
-import json
-import logging
-import os
-import sys
-
-import build_lib
-import build_project
-
-SANITIZER = 'coverage'
-CONFIGURATION = ['FUZZING_ENGINE=libfuzzer', 'SANITIZER=%s' % SANITIZER]
-PLATFORM = 'linux'
-
-COVERAGE_BUILD_TAG = 'coverage'
-
-# Where code coverage reports need to be uploaded to.
-COVERAGE_BUCKET_NAME = 'oss-fuzz-coverage'
-
-# Link to the code coverage report in HTML format.
-HTML_REPORT_URL_FORMAT = (build_lib.GCS_URL_BASENAME + COVERAGE_BUCKET_NAME +
-                          '/{project}/reports/{date}/{platform}/index.html')
-
-# This is needed for ClusterFuzz to pick up the most recent reports data.
-LATEST_REPORT_INFO_URL = ('/' + COVERAGE_BUCKET_NAME +
-                          '/latest_report_info/{project}.json')
-LATEST_REPORT_INFO_CONTENT_TYPE = 'application/json'
-
-# Link where to upload code coverage report files to.
-UPLOAD_URL_FORMAT = 'gs://' + COVERAGE_BUCKET_NAME + '/{project}/{type}/{date}'
-
-# Languages from project.yaml that have code coverage support.
-LANGUAGES_WITH_COVERAGE_SUPPORT = ['c', 'c++', 'go', 'rust']
-
-
-def usage():
-  """Exit with code 1 and display syntax to use this file."""
-  sys.stderr.write("Usage: " + sys.argv[0] + " <project_dir>\n")
-  sys.exit(1)
-
-
-# pylint: disable=too-many-locals
-def get_build_steps(project_name, project_yaml_file, dockerfile_lines,
-                    image_project, base_images_project):
-  """Returns build steps for project."""
-  project_yaml = build_project.load_project_yaml(project_name,
-                                                 project_yaml_file,
-                                                 image_project)
-  if project_yaml['disabled']:
-    logging.info('Project "%s" is disabled.', project_name)
-    return []
-
-  if project_yaml['language'] not in LANGUAGES_WITH_COVERAGE_SUPPORT:
-    logging.info(
-        'Project "%s" is written in "%s", coverage is not supported yet.',
-        project_name, project_yaml['language'])
-    return []
-
-  name = project_yaml['name']
-  image = project_yaml['image']
-  language = project_yaml['language']
-  report_date = datetime.datetime.now().strftime('%Y%m%d')
-
-  build_steps = build_lib.project_image_steps(name, image, language)
-
-  env = CONFIGURATION[:]
-  out = '/workspace/out/' + SANITIZER
-  env.append('OUT=' + out)
-  env.append('FUZZING_LANGUAGE=' + language)
-
-  workdir = build_project.workdir_from_dockerfile(dockerfile_lines)
-  if not workdir:
-    workdir = '/src'
-
-  failure_msg = ('*' * 80 + '\nCoverage build failed.\nTo reproduce, run:\n'
-                 'python infra/helper.py build_image {name}\n'
-                 'python infra/helper.py build_fuzzers --sanitizer coverage '
-                 '{name}\n' + '*' * 80).format(name=name)
-
-  # Compilation step.
-  build_steps.append({
-      'name':
-          image,
-      'env':
-          env,
-      'args': [
-          'bash',
-          '-c',
-          # Remove /out to make sure there are non instrumented binaries.
-          # `cd /src && cd {workdir}` (where {workdir} is parsed from the
-          # Dockerfile). Container Builder overrides our workdir so we need
-          # to add this step to set it back.
-          ('rm -r /out && cd /src && cd {workdir} && mkdir -p {out} && '
-           'compile || (echo "{failure_msg}" && false)'
-          ).format(workdir=workdir, out=out, failure_msg=failure_msg),
-      ],
-  })
-
-  download_corpora_steps = build_lib.download_corpora_steps(project_name)
-  if not download_corpora_steps:
-    logging.info('Skipping code coverage build for %s.', project_name)
-    return []
-
-  build_steps.extend(download_corpora_steps)
-
-  failure_msg = ('*' * 80 + '\nCode coverage report generation failed.\n'
-                 'To reproduce, run:\n'
-                 'python infra/helper.py build_image {name}\n'
-                 'python infra/helper.py build_fuzzers --sanitizer coverage '
-                 '{name}\n'
-                 'python infra/helper.py coverage {name}\n' +
-                 '*' * 80).format(name=name)
-
-  # Unpack the corpus and run coverage script.
-  coverage_env = env + [
-      'HTTP_PORT=',
-      'COVERAGE_EXTRA_ARGS=%s' % project_yaml['coverage_extra_args'].strip(),
-  ]
-  if 'dataflow' in project_yaml['fuzzing_engines']:
-    coverage_env.append('FULL_SUMMARY_PER_TARGET=1')
-
-  build_steps.append({
-      'name': 'gcr.io/{0}/base-runner'.format(base_images_project),
-      'env': coverage_env,
-      'args': [
-          'bash', '-c',
-          ('for f in /corpus/*.zip; do unzip -q $f -d ${f%%.*} || ('
-           'echo "Failed to unpack the corpus for $(basename ${f%%.*}). '
-           'This usually means that corpus backup for a particular fuzz '
-           'target does not exist. If a fuzz target was added in the last '
-           '24 hours, please wait one more day. Otherwise, something is '
-           'wrong with the fuzz target or the infrastructure, and corpus '
-           'pruning task does not finish successfully." && exit 1'
-           '); done && coverage || (echo "' + failure_msg + '" && false)')
-      ],
-      'volumes': [{
-          'name': 'corpus',
-          'path': '/corpus'
-      }],
-  })
-
-  # Upload the report.
-  upload_report_url = UPLOAD_URL_FORMAT.format(project=project_name,
-                                               type='reports',
-                                               date=report_date)
-
-  # Delete the existing report as gsutil cannot overwrite it in a useful way due
-  # to the lack of `-T` option (it creates a subdir in the destination dir).
-  build_steps.append(build_lib.gsutil_rm_rf_step(upload_report_url))
-  build_steps.append({
-      'name':
-          'gcr.io/cloud-builders/gsutil',
-      'args': [
-          '-m',
-          'cp',
-          '-r',
-          os.path.join(out, 'report'),
-          upload_report_url,
-      ],
-  })
-
-  # Upload the fuzzer stats. Delete the old ones just in case.
-  upload_fuzzer_stats_url = UPLOAD_URL_FORMAT.format(project=project_name,
-                                                     type='fuzzer_stats',
-                                                     date=report_date)
-  build_steps.append(build_lib.gsutil_rm_rf_step(upload_fuzzer_stats_url))
-  build_steps.append({
-      'name':
-          'gcr.io/cloud-builders/gsutil',
-      'args': [
-          '-m',
-          'cp',
-          '-r',
-          os.path.join(out, 'fuzzer_stats'),
-          upload_fuzzer_stats_url,
-      ],
-  })
-
-  # Upload the fuzzer logs. Delete the old ones just in case
-  upload_fuzzer_logs_url = UPLOAD_URL_FORMAT.format(project=project_name,
-                                                    type='logs',
-                                                    date=report_date)
-  build_steps.append(build_lib.gsutil_rm_rf_step(upload_fuzzer_logs_url))
-  build_steps.append({
-      'name':
-          'gcr.io/cloud-builders/gsutil',
-      'args': [
-          '-m',
-          'cp',
-          '-r',
-          os.path.join(out, 'logs'),
-          upload_fuzzer_logs_url,
-      ],
-  })
-
-  # Upload srcmap.
-  srcmap_upload_url = UPLOAD_URL_FORMAT.format(project=project_name,
-                                               type='srcmap',
-                                               date=report_date)
-  srcmap_upload_url = srcmap_upload_url.rstrip('/') + '.json'
-  build_steps.append({
-      'name': 'gcr.io/cloud-builders/gsutil',
-      'args': [
-          'cp',
-          '/workspace/srcmap.json',
-          srcmap_upload_url,
-      ],
-  })
-
-  # Update the latest report information file for ClusterFuzz.
-  latest_report_info_url = build_lib.get_signed_url(
-      LATEST_REPORT_INFO_URL.format(project=project_name),
-      content_type=LATEST_REPORT_INFO_CONTENT_TYPE)
-  latest_report_info_body = json.dumps({
-      'fuzzer_stats_dir':
-          upload_fuzzer_stats_url,
-      'html_report_url':
-          HTML_REPORT_URL_FORMAT.format(project=project_name,
-                                        date=report_date,
-                                        platform=PLATFORM),
-      'report_date':
-          report_date,
-      'report_summary_path':
-          os.path.join(upload_report_url, PLATFORM, 'summary.json'),
-  })
-
-  build_steps.append(
-      build_lib.http_upload_step(latest_report_info_body,
-                                 latest_report_info_url,
-                                 LATEST_REPORT_INFO_CONTENT_TYPE))
-  return build_steps
-
-
-def main():
-  """Build and run coverage for projects."""
-  if len(sys.argv) != 2:
-    usage()
-
-  image_project = 'oss-fuzz'
-  base_images_project = 'oss-fuzz-base'
-  project_dir = sys.argv[1].rstrip(os.path.sep)
-  project_name = os.path.basename(project_dir)
-  dockerfile_path = os.path.join(project_dir, 'Dockerfile')
-  project_yaml_path = os.path.join(project_dir, 'project.yaml')
-
-  with open(dockerfile_path) as docker_file:
-    dockerfile_lines = docker_file.readlines()
-
-  with open(project_yaml_path) as project_yaml_file:
-    steps = get_build_steps(project_name, project_yaml_file, dockerfile_lines,
-                            image_project, base_images_project)
-
-  build_project.run_build(steps, project_name, COVERAGE_BUILD_TAG)
-
-
-if __name__ == "__main__":
-  main()
diff --git a/infra/build/functions/build_lib.py b/infra/build/functions/build_lib.py
deleted file mode 100644
index 007579e..0000000
--- a/infra/build/functions/build_lib.py
+++ /dev/null
@@ -1,239 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Utility module for Google Cloud Build scripts."""
-import base64
-import collections
-import os
-import six.moves.urllib.parse as urlparse
-import sys
-import time
-
-import requests
-
-import google.auth
-import googleapiclient.discovery
-from oauth2client.service_account import ServiceAccountCredentials
-
-BUILD_TIMEOUT = 12 * 60 * 60
-
-# Needed for reading public target.list.* files.
-GCS_URL_BASENAME = 'https://storage.googleapis.com/'
-
-GCS_UPLOAD_URL_FORMAT = '/{0}/{1}/{2}'
-
-# Where corpus backups can be downloaded from.
-CORPUS_BACKUP_URL = ('/{project}-backup.clusterfuzz-external.appspot.com/'
-                     'corpus/libFuzzer/{fuzzer}/latest.zip')
-
-# Cloud Builder has a limit of 100 build steps and 100 arguments for each step.
-CORPUS_DOWNLOAD_BATCH_SIZE = 100
-
-TARGETS_LIST_BASENAME = 'targets.list'
-
-EngineInfo = collections.namedtuple(
-    'EngineInfo',
-    ['upload_bucket', 'supported_sanitizers', 'supported_architectures'])
-
-ENGINE_INFO = {
-    'libfuzzer':
-        EngineInfo(upload_bucket='clusterfuzz-builds',
-                   supported_sanitizers=['address', 'memory', 'undefined'],
-                   supported_architectures=['x86_64', 'i386']),
-    'afl':
-        EngineInfo(upload_bucket='clusterfuzz-builds-afl',
-                   supported_sanitizers=['address'],
-                   supported_architectures=['x86_64']),
-    'honggfuzz':
-        EngineInfo(upload_bucket='clusterfuzz-builds-honggfuzz',
-                   supported_sanitizers=['address'],
-                   supported_architectures=['x86_64']),
-    'dataflow':
-        EngineInfo(upload_bucket='clusterfuzz-builds-dataflow',
-                   supported_sanitizers=['dataflow'],
-                   supported_architectures=['x86_64']),
-    'none':
-        EngineInfo(upload_bucket='clusterfuzz-builds-no-engine',
-                   supported_sanitizers=['address'],
-                   supported_architectures=['x86_64']),
-}
-
-
-def get_targets_list_filename(sanitizer):
-  """Returns target list filename."""
-  return TARGETS_LIST_BASENAME + '.' + sanitizer
-
-
-def get_targets_list_url(bucket, project, sanitizer):
-  """Returns target list url."""
-  filename = get_targets_list_filename(sanitizer)
-  url = GCS_UPLOAD_URL_FORMAT.format(bucket, project, filename)
-  return url
-
-
-def _get_targets_list(project_name):
-  """Returns target list."""
-  # libFuzzer ASan is the default configuration, get list of targets from it.
-  url = get_targets_list_url(ENGINE_INFO['libfuzzer'].upload_bucket,
-                             project_name, 'address')
-
-  url = urlparse.urljoin(GCS_URL_BASENAME, url)
-  response = requests.get(url)
-  if not response.status_code == 200:
-    sys.stderr.write('Failed to get list of targets from "%s".\n' % url)
-    sys.stderr.write('Status code: %d \t\tText:\n%s\n' %
-                     (response.status_code, response.text))
-    return None
-
-  return response.text.split()
-
-
-# pylint: disable=no-member
-def get_signed_url(path, method='PUT', content_type=''):
-  """Returns signed url."""
-  timestamp = int(time.time() + BUILD_TIMEOUT)
-  blob = '{0}\n\n{1}\n{2}\n{3}'.format(method, content_type, timestamp, path)
-
-  service_account_path = os.environ.get('GOOGLE_APPLICATION_CREDENTIALS')
-  if service_account_path:
-    creds = ServiceAccountCredentials.from_json_keyfile_name(
-        os.environ['GOOGLE_APPLICATION_CREDENTIALS'])
-    client_id = creds.service_account_email
-    signature = base64.b64encode(creds.sign_blob(blob)[1])
-  else:
-    credentials, project = google.auth.default()
-    iam = googleapiclient.discovery.build('iamcredentials',
-                                          'v1',
-                                          credentials=credentials,
-                                          cache_discovery=False)
-    client_id = project + '@appspot.gserviceaccount.com'
-    service_account = 'projects/-/serviceAccounts/{0}'.format(client_id)
-    response = iam.projects().serviceAccounts().signBlob(
-        name=service_account,
-        body={
-            'delegates': [],
-            'payload': base64.b64encode(blob.encode('utf-8')).decode('utf-8'),
-        }).execute()
-    signature = response['signedBlob']
-
-  values = {
-      'GoogleAccessId': client_id,
-      'Expires': timestamp,
-      'Signature': signature,
-  }
-  return ('https://storage.googleapis.com{0}?'.format(path) +
-          urlparse.urlencode(values))
-
-
-def download_corpora_steps(project_name):
-  """Returns GCB steps for downloading corpora backups for the given project.
-  """
-  fuzz_targets = _get_targets_list(project_name)
-  if not fuzz_targets:
-    sys.stderr.write('No fuzz targets found for project "%s".\n' % project_name)
-    return None
-
-  steps = []
-  # Split fuzz targets into batches of CORPUS_DOWNLOAD_BATCH_SIZE.
-  for i in range(0, len(fuzz_targets), CORPUS_DOWNLOAD_BATCH_SIZE):
-    download_corpus_args = []
-    for binary_name in fuzz_targets[i:i + CORPUS_DOWNLOAD_BATCH_SIZE]:
-      qualified_name = binary_name
-      qualified_name_prefix = '%s_' % project_name
-      if not binary_name.startswith(qualified_name_prefix):
-        qualified_name = qualified_name_prefix + binary_name
-
-      url = get_signed_url(CORPUS_BACKUP_URL.format(project=project_name,
-                                                    fuzzer=qualified_name),
-                           method='GET')
-
-      corpus_archive_path = os.path.join('/corpus', binary_name + '.zip')
-      download_corpus_args.append('%s %s' % (corpus_archive_path, url))
-
-    steps.append({
-        'name': 'gcr.io/oss-fuzz-base/base-runner',
-        'entrypoint': 'download_corpus',
-        'args': download_corpus_args,
-        'volumes': [{
-            'name': 'corpus',
-            'path': '/corpus'
-        }],
-    })
-
-  return steps
-
-
-def http_upload_step(data, signed_url, content_type):
-  """Returns a GCB step to upload data to the given URL via GCS HTTP API."""
-  step = {
-      'name':
-          'gcr.io/cloud-builders/curl',
-      'args': [
-          '-H',
-          'Content-Type: ' + content_type,
-          '-X',
-          'PUT',
-          '-d',
-          data,
-          signed_url,
-      ],
-  }
-  return step
-
-
-def gsutil_rm_rf_step(url):
-  """Returns a GCB step to recursively delete the object with given GCS url."""
-  step = {
-      'name': 'gcr.io/cloud-builders/gsutil',
-      'entrypoint': 'sh',
-      'args': [
-          '-c',
-          'gsutil -m rm -rf %s || exit 0' % url,
-      ],
-  }
-  return step
-
-
-def project_image_steps(name, image, language):
-  """Returns GCB steps to build OSS-Fuzz project image."""
-  steps = [{
-      'args': [
-          'clone',
-          'https://github.com/google/oss-fuzz.git',
-      ],
-      'name': 'gcr.io/cloud-builders/git',
-  }, {
-      'name': 'gcr.io/cloud-builders/docker',
-      'args': [
-          'build',
-          '-t',
-          image,
-          '.',
-      ],
-      'dir': 'oss-fuzz/projects/' + name,
-  }, {
-      'name':
-          image,
-      'args': [
-          'bash', '-c',
-          'srcmap > /workspace/srcmap.json && cat /workspace/srcmap.json'
-      ],
-      'env': [
-          'OSSFUZZ_REVISION=$REVISION_ID',
-          'FUZZING_LANGUAGE=%s' % language,
-      ],
-  }]
-
-  return steps
diff --git a/infra/build/functions/build_project.py b/infra/build/functions/build_project.py
deleted file mode 100644
index 9115c85..0000000
--- a/infra/build/functions/build_project.py
+++ /dev/null
@@ -1,449 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-#!/usr/bin/python2
-"""Starts project build on Google Cloud Builder.
-
-Usage: build_project.py <project_dir>
-"""
-
-from __future__ import print_function
-
-import datetime
-import json
-import logging
-import os
-import re
-import sys
-
-import six
-import yaml
-
-from oauth2client.client import GoogleCredentials
-from googleapiclient.discovery import build
-
-import build_lib
-
-FUZZING_BUILD_TAG = 'fuzzing'
-
-GCB_LOGS_BUCKET = 'oss-fuzz-gcb-logs'
-
-CONFIGURATIONS = {
-    'sanitizer-address': ['SANITIZER=address'],
-    'sanitizer-dataflow': ['SANITIZER=dataflow'],
-    'sanitizer-memory': ['SANITIZER=memory'],
-    'sanitizer-undefined': ['SANITIZER=undefined'],
-    'engine-libfuzzer': ['FUZZING_ENGINE=libfuzzer'],
-    'engine-afl': ['FUZZING_ENGINE=afl'],
-    'engine-honggfuzz': ['FUZZING_ENGINE=honggfuzz'],
-    'engine-dataflow': ['FUZZING_ENGINE=dataflow'],
-    'engine-none': ['FUZZING_ENGINE=none'],
-}
-
-DEFAULT_ARCHITECTURES = ['x86_64']
-DEFAULT_ENGINES = ['libfuzzer', 'afl', 'honggfuzz']
-DEFAULT_SANITIZERS = ['address', 'undefined']
-
-LATEST_VERSION_FILENAME = 'latest.version'
-LATEST_VERSION_CONTENT_TYPE = 'text/plain'
-
-QUEUE_TTL_SECONDS = 60 * 60 * 24  # 24 hours.
-
-
-def usage():
-  """Exit with code 1 and display syntax to use this file."""
-  sys.stderr.write('Usage: ' + sys.argv[0] + ' <project_dir>\n')
-  sys.exit(1)
-
-
-def set_yaml_defaults(project_name, project_yaml, image_project):
-  """Set project.yaml's default parameters."""
-  project_yaml.setdefault('disabled', False)
-  project_yaml.setdefault('name', project_name)
-  project_yaml.setdefault('image',
-                          'gcr.io/{0}/{1}'.format(image_project, project_name))
-  project_yaml.setdefault('architectures', DEFAULT_ARCHITECTURES)
-  project_yaml.setdefault('sanitizers', DEFAULT_SANITIZERS)
-  project_yaml.setdefault('fuzzing_engines', DEFAULT_ENGINES)
-  project_yaml.setdefault('run_tests', True)
-  project_yaml.setdefault('coverage_extra_args', '')
-  project_yaml.setdefault('labels', {})
-
-
-def is_supported_configuration(fuzzing_engine, sanitizer, architecture):
-  """Check if the given configuration is supported."""
-  fuzzing_engine_info = build_lib.ENGINE_INFO[fuzzing_engine]
-  if architecture == 'i386' and sanitizer != 'address':
-    return False
-  return (sanitizer in fuzzing_engine_info.supported_sanitizers and
-          architecture in fuzzing_engine_info.supported_architectures)
-
-
-def get_sanitizers(project_yaml):
-  """Retrieve sanitizers from project.yaml."""
-  sanitizers = project_yaml['sanitizers']
-  assert isinstance(sanitizers, list)
-
-  processed_sanitizers = []
-  for sanitizer in sanitizers:
-    if isinstance(sanitizer, six.string_types):
-      processed_sanitizers.append(sanitizer)
-    elif isinstance(sanitizer, dict):
-      for key in sanitizer.keys():
-        processed_sanitizers.append(key)
-
-  return processed_sanitizers
-
-
-def workdir_from_dockerfile(dockerfile_lines):
-  """Parse WORKDIR from the Dockerfile."""
-  workdir_regex = re.compile(r'\s*WORKDIR\s*([^\s]+)')
-  for line in dockerfile_lines:
-    match = re.match(workdir_regex, line)
-    if match:
-      # We need to escape '$' since they're used for subsitutions in Container
-      # Builer builds.
-      return match.group(1).replace('$', '$$')
-
-  return None
-
-
-def load_project_yaml(project_name, project_yaml_file, image_project):
-  """Loads project yaml and sets default values."""
-  project_yaml = yaml.safe_load(project_yaml_file)
-  set_yaml_defaults(project_name, project_yaml, image_project)
-  return project_yaml
-
-
-# pylint: disable=too-many-locals, too-many-statements, too-many-branches
-def get_build_steps(project_name, project_yaml_file, dockerfile_lines,
-                    image_project, base_images_project):
-  """Returns build steps for project."""
-  project_yaml = load_project_yaml(project_name, project_yaml_file,
-                                   image_project)
-
-  if project_yaml['disabled']:
-    logging.info('Project "%s" is disabled.', project_name)
-    return []
-
-  name = project_yaml['name']
-  image = project_yaml['image']
-  language = project_yaml['language']
-  run_tests = project_yaml['run_tests']
-  time_stamp = datetime.datetime.now().strftime('%Y%m%d%H%M')
-
-  build_steps = build_lib.project_image_steps(name, image, language)
-  # Copy over MSan instrumented libraries.
-  build_steps.append({
-      'name': 'gcr.io/{0}/msan-libs-builder'.format(base_images_project),
-      'args': [
-          'bash',
-          '-c',
-          'cp -r /msan /workspace',
-      ],
-  })
-
-  for fuzzing_engine in project_yaml['fuzzing_engines']:
-    for sanitizer in get_sanitizers(project_yaml):
-      for architecture in project_yaml['architectures']:
-        if not is_supported_configuration(fuzzing_engine, sanitizer,
-                                          architecture):
-          continue
-
-        env = CONFIGURATIONS['engine-' + fuzzing_engine][:]
-        env.extend(CONFIGURATIONS['sanitizer-' + sanitizer])
-        out = '/workspace/out/' + sanitizer
-        stamped_name = '-'.join([name, sanitizer, time_stamp])
-        latest_version_file = '-'.join(
-            [name, sanitizer, LATEST_VERSION_FILENAME])
-        zip_file = stamped_name + '.zip'
-        stamped_srcmap_file = stamped_name + '.srcmap.json'
-        bucket = build_lib.ENGINE_INFO[fuzzing_engine].upload_bucket
-        if architecture != 'x86_64':
-          bucket += '-' + architecture
-
-        upload_url = build_lib.get_signed_url(
-            build_lib.GCS_UPLOAD_URL_FORMAT.format(bucket, name, zip_file))
-        srcmap_url = build_lib.get_signed_url(
-            build_lib.GCS_UPLOAD_URL_FORMAT.format(bucket, name,
-                                                   stamped_srcmap_file))
-        latest_version_url = build_lib.GCS_UPLOAD_URL_FORMAT.format(
-            bucket, name, latest_version_file)
-        latest_version_url = build_lib.get_signed_url(
-            latest_version_url, content_type=LATEST_VERSION_CONTENT_TYPE)
-
-        targets_list_filename = build_lib.get_targets_list_filename(sanitizer)
-        targets_list_url = build_lib.get_signed_url(
-            build_lib.get_targets_list_url(bucket, name, sanitizer))
-
-        env.append('OUT=' + out)
-        env.append('MSAN_LIBS_PATH=/workspace/msan')
-        env.append('ARCHITECTURE=' + architecture)
-        env.append('FUZZING_LANGUAGE=' + language)
-
-        workdir = workdir_from_dockerfile(dockerfile_lines)
-        if not workdir:
-          workdir = '/src'
-
-        failure_msg = ('*' * 80 + '\nFailed to build.\nTo reproduce, run:\n'
-                       'python infra/helper.py build_image {name}\n'
-                       'python infra/helper.py build_fuzzers --sanitizer '
-                       '{sanitizer} --engine {engine} --architecture '
-                       '{architecture} {name}\n' + '*' * 80).format(
-                           name=name,
-                           sanitizer=sanitizer,
-                           engine=fuzzing_engine,
-                           architecture=architecture)
-
-        build_steps.append(
-            # compile
-            {
-                'name':
-                    image,
-                'env':
-                    env,
-                'args': [
-                    'bash',
-                    '-c',
-                    # Remove /out to break loudly when a build script
-                    # incorrectly uses /out instead of $OUT.
-                    # `cd /src && cd {workdir}` (where {workdir} is parsed from
-                    # the Dockerfile). Container Builder overrides our workdir
-                    # so we need to add this step to set it back.
-                    ('rm -r /out && cd /src && cd {workdir} && mkdir -p {out} '
-                     '&& compile || (echo "{failure_msg}" && false)'
-                    ).format(workdir=workdir, out=out, failure_msg=failure_msg),
-                ],
-            })
-
-        if sanitizer == 'memory':
-          # Patch dynamic libraries to use instrumented ones.
-          build_steps.append({
-              'name':
-                  'gcr.io/{0}/msan-libs-builder'.format(base_images_project),
-              'args': [
-                  'bash',
-                  '-c',
-                  # TODO(ochang): Replace with just patch_build.py once
-                  # permission in image is fixed.
-                  'python /usr/local/bin/patch_build.py {0}'.format(out),
-              ],
-          })
-
-        if run_tests:
-          failure_msg = ('*' * 80 + '\nBuild checks failed.\n'
-                         'To reproduce, run:\n'
-                         'python infra/helper.py build_image {name}\n'
-                         'python infra/helper.py build_fuzzers --sanitizer '
-                         '{sanitizer} --engine {engine} --architecture '
-                         '{architecture} {name}\n'
-                         'python infra/helper.py check_build --sanitizer '
-                         '{sanitizer} --engine {engine} --architecture '
-                         '{architecture} {name}\n' + '*' * 80).format(
-                             name=name,
-                             sanitizer=sanitizer,
-                             engine=fuzzing_engine,
-                             architecture=architecture)
-
-          build_steps.append(
-              # test binaries
-              {
-                  'name':
-                      'gcr.io/{0}/base-runner'.format(base_images_project),
-                  'env':
-                      env,
-                  'args': [
-                      'bash', '-c',
-                      'test_all.py || (echo "{0}" && false)'.format(failure_msg)
-                  ],
-              })
-
-        if project_yaml['labels']:
-          # write target labels
-          build_steps.append({
-              'name':
-                  image,
-              'env':
-                  env,
-              'args': [
-                  '/usr/local/bin/write_labels.py',
-                  json.dumps(project_yaml['labels']),
-                  out,
-              ],
-          })
-
-        if sanitizer == 'dataflow' and fuzzing_engine == 'dataflow':
-          dataflow_steps = dataflow_post_build_steps(name, env,
-                                                     base_images_project)
-          if dataflow_steps:
-            build_steps.extend(dataflow_steps)
-          else:
-            sys.stderr.write('Skipping dataflow post build steps.\n')
-
-        build_steps.extend([
-            # generate targets list
-            {
-                'name':
-                    'gcr.io/{0}/base-runner'.format(base_images_project),
-                'env':
-                    env,
-                'args': [
-                    'bash',
-                    '-c',
-                    'targets_list > /workspace/{0}'.format(
-                        targets_list_filename),
-                ],
-            },
-            # zip binaries
-            {
-                'name':
-                    image,
-                'args': [
-                    'bash', '-c',
-                    'cd {out} && zip -r {zip_file} *'.format(out=out,
-                                                             zip_file=zip_file)
-                ],
-            },
-            # upload srcmap
-            {
-                'name': 'gcr.io/{0}/uploader'.format(base_images_project),
-                'args': [
-                    '/workspace/srcmap.json',
-                    srcmap_url,
-                ],
-            },
-            # upload binaries
-            {
-                'name': 'gcr.io/{0}/uploader'.format(base_images_project),
-                'args': [
-                    os.path.join(out, zip_file),
-                    upload_url,
-                ],
-            },
-            # upload targets list
-            {
-                'name':
-                    'gcr.io/{0}/uploader'.format(base_images_project),
-                'args': [
-                    '/workspace/{0}'.format(targets_list_filename),
-                    targets_list_url,
-                ],
-            },
-            # upload the latest.version file
-            build_lib.http_upload_step(zip_file, latest_version_url,
-                                       LATEST_VERSION_CONTENT_TYPE),
-            # cleanup
-            {
-                'name': image,
-                'args': [
-                    'bash',
-                    '-c',
-                    'rm -r ' + out,
-                ],
-            },
-        ])
-
-  return build_steps
-
-
-def dataflow_post_build_steps(project_name, env, base_images_project):
-  """Appends dataflow post build steps."""
-  steps = build_lib.download_corpora_steps(project_name)
-  if not steps:
-    return None
-
-  steps.append({
-      'name':
-          'gcr.io/{0}/base-runner'.format(base_images_project),
-      'env':
-          env + [
-              'COLLECT_DFT_TIMEOUT=2h',
-              'DFT_FILE_SIZE_LIMIT=65535',
-              'DFT_MIN_TIMEOUT=2.0',
-              'DFT_TIMEOUT_RANGE=6.0',
-          ],
-      'args': [
-          'bash', '-c',
-          ('for f in /corpus/*.zip; do unzip -q $f -d ${f%%.*}; done && '
-           'collect_dft || (echo "DFT collection failed." && false)')
-      ],
-      'volumes': [{
-          'name': 'corpus',
-          'path': '/corpus'
-      }],
-  })
-  return steps
-
-
-def get_logs_url(build_id, image_project='oss-fuzz'):
-  """Returns url where logs are displayed for the build."""
-  url_format = ('https://console.developers.google.com/logs/viewer?'
-                'resource=build%2Fbuild_id%2F{0}&project={1}')
-  return url_format.format(build_id, image_project)
-
-
-# pylint: disable=no-member
-def run_build(build_steps, project_name, tag):
-  """Run the build for given steps on cloud build."""
-  options = {}
-  if 'GCB_OPTIONS' in os.environ:
-    options = yaml.safe_load(os.environ['GCB_OPTIONS'])
-
-  build_body = {
-      'steps': build_steps,
-      'timeout': str(build_lib.BUILD_TIMEOUT) + 's',
-      'options': options,
-      'logsBucket': GCB_LOGS_BUCKET,
-      'tags': [project_name + '-' + tag,],
-      'queueTtl': str(QUEUE_TTL_SECONDS) + 's',
-  }
-
-  credentials = GoogleCredentials.get_application_default()
-  cloudbuild = build('cloudbuild',
-                     'v1',
-                     credentials=credentials,
-                     cache_discovery=False)
-  build_info = cloudbuild.projects().builds().create(projectId='oss-fuzz',
-                                                     body=build_body).execute()
-  build_id = build_info['metadata']['build']['id']
-
-  print('Logs:', get_logs_url(build_id), file=sys.stderr)
-  print(build_id)
-
-
-def main():
-  """Build and run projects."""
-  if len(sys.argv) != 2:
-    usage()
-
-  image_project = 'oss-fuzz'
-  base_images_project = 'oss-fuzz-base'
-  project_dir = sys.argv[1].rstrip(os.path.sep)
-  dockerfile_path = os.path.join(project_dir, 'Dockerfile')
-  project_yaml_path = os.path.join(project_dir, 'project.yaml')
-  project_name = os.path.basename(project_dir)
-
-  with open(dockerfile_path) as dockerfile:
-    dockerfile_lines = dockerfile.readlines()
-
-  with open(project_yaml_path) as project_yaml_file:
-    steps = get_build_steps(project_name, project_yaml_file, dockerfile_lines,
-                            image_project, base_images_project)
-
-  run_build(steps, project_name, FUZZING_BUILD_TAG)
-
-
-if __name__ == '__main__':
-  main()
diff --git a/infra/build/functions/datastore_entities.py b/infra/build/functions/datastore_entities.py
deleted file mode 100644
index 550ab82..0000000
--- a/infra/build/functions/datastore_entities.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Cloud datastore entity classes."""
-from google.cloud import ndb
-
-
-# pylint: disable=too-few-public-methods
-class Project(ndb.Model):
-  """Represents an integrated OSS-Fuzz project."""
-  name = ndb.StringProperty()
-  schedule = ndb.StringProperty()
-  project_yaml_contents = ndb.TextProperty()
-  dockerfile_contents = ndb.TextProperty()
-
-
-# pylint: disable=too-few-public-methods
-class GithubCreds(ndb.Model):
-  """Represents GitHub credentials."""
-  client_id = ndb.StringProperty()
-  client_secret = ndb.StringProperty()
-
-
-# pylint: disable=too-few-public-methods
-class BuildsHistory(ndb.Model):
-  """Container for build history of projects."""
-  build_tag = ndb.StringProperty()
-  project = ndb.StringProperty()
-  build_ids = ndb.StringProperty(repeated=True)
-
-
-class LastSuccessfulBuild(ndb.Model):
-  """Container for storing last successful build of project."""
-  build_tag = ndb.StringProperty()
-  project = ndb.StringProperty()
-  build_id = ndb.StringProperty()
-  finish_time = ndb.StringProperty()
diff --git a/infra/build/functions/deploy.sh b/infra/build/functions/deploy.sh
deleted file mode 100755
index ea094e3..0000000
--- a/infra/build/functions/deploy.sh
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/bin/bash -ex
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-BASE_IMAGE_JOB_TOPIC=schedule-base-image-build
-BASE_IMAGE_SCHEDULER_JOB=base-image-scheduler
-BASE_IMAGE_SCHEDULE="0 3 * * *"
-BASE_IMAGE_MESSAGE="Start base image build"
-
-BUILD_JOB_TOPIC=request-build
-
-COVERAGE_BUILD_JOB_TOPIC=request-coverage-build
-
-SYNC_JOB_TOPIC=schedule-project-sync
-SYNC_SCHEDULER_JOB=sync-scheduler
-SYNC_JOB_SCHEDULE="*/30 * * * *"
-SYNC_MESSAGE="Start Sync"
-
-UPDATE_BUILD_JOB_TOPIC=builds-status
-UPDATE_BUILD_SCHEDULER_JOB=builds-status-scheduler
-UPDATE_BUILD_JOB_SCHEDULE="*/30 * * * *"
-
-
-function deploy_pubsub_topic {
-	topic=$1
-	project=$2
-
-	if ! gcloud pubsub topics describe $topic --project $project ;
-		then
-			gcloud pubsub topics create $topic \
-			--project $project
-	fi
-}
-
-function deploy_scheduler {
-	scheduler_name=$1
-	schedule="$2"
-	topic=$3
-	message="$4"
-	project=$5
-
-	if gcloud scheduler jobs describe $scheduler_name --project $project ;
-		then
-			gcloud scheduler jobs update pubsub $scheduler_name \
-			--project $project \
-			--schedule "$schedule" \
-			--topic $topic \
-			--message-body "$message"
-		else
-			gcloud scheduler jobs create pubsub $scheduler_name \
-			--project $project \
-			--schedule "$schedule" \
-			--topic $topic \
-			--message-body "$message"
-	fi
-}
-
-function deploy_cloud_function {
-	name=$1
-	entry_point=$2
-	topic=$3
-	project=$4
-
-	gcloud functions deploy $name \
-	--entry-point $entry_point \
-	--trigger-topic $topic \
-	--runtime python38 \
-	--project $project \
-	--timeout 540 \
-  --region us-central1 \
-  --set-env-vars GCP_PROJECT=$project,FUNCTION_REGION=us-central1 \
-  --max-instances 1
-}
-
-if [ $# == 1 ]; then
-	PROJECT_ID=$1
-else
-	echo -e "\n Usage ./deploy.sh <project-name>"; exit;
-fi
-
-deploy_pubsub_topic $BUILD_JOB_TOPIC $PROJECT_ID
-deploy_pubsub_topic $SYNC_JOB_TOPIC $PROJECT_ID
-deploy_pubsub_topic $BASE_IMAGE_JOB_TOPIC $PROJECT_ID
-deploy_pubsub_topic $COVERAGE_BUILD_JOB_TOPIC $PROJECT_ID
-deploy_pubsub_topic $UPDATE_BUILD_JOB_TOPIC $PROJECT_ID
-
-deploy_scheduler $SYNC_SCHEDULER_JOB \
-				 "$SYNC_JOB_SCHEDULE" \
-				 $SYNC_JOB_TOPIC \
-				 "$SYNC_MESSAGE" \
-				  $PROJECT_ID
-
-deploy_scheduler $BASE_IMAGE_SCHEDULER_JOB \
-				 "$BASE_IMAGE_SCHEDULE" \
-				  $BASE_IMAGE_JOB_TOPIC \
-				  "$BASE_IMAGE_MESSAGE" \
-				  $PROJECT_ID
-
-deploy_scheduler $UPDATE_BUILD_SCHEDULER_JOB-fuzzing \
-				 "$UPDATE_BUILD_JOB_SCHEDULE" \
-				 $UPDATE_BUILD_JOB_TOPIC \
-				 "fuzzing" \
-				 $PROJECT_ID
-deploy_scheduler $UPDATE_BUILD_SCHEDULER_JOB-coverage \
-				 "$UPDATE_BUILD_JOB_SCHEDULE" \
-				 $UPDATE_BUILD_JOB_TOPIC \
-				 "coverage" \
-				 $PROJECT_ID
-deploy_scheduler $UPDATE_BUILD_SCHEDULER_JOB-badges \
-				 "$UPDATE_BUILD_JOB_SCHEDULE" \
-				 $UPDATE_BUILD_JOB_TOPIC \
-				 "badges" \
-				 $PROJECT_ID
-
-deploy_cloud_function sync \
-					  sync \
-					  $SYNC_JOB_TOPIC \
-					  $PROJECT_ID
-
-deploy_cloud_function base-image-build \
-					  build_base_images \
-					  $BASE_IMAGE_JOB_TOPIC \
-					  $PROJECT_ID
-
-deploy_cloud_function base-msan-build \
-					  build_msan \
-					  $BASE_IMAGE_JOB_TOPIC \
-					  $PROJECT_ID
-
-deploy_cloud_function request-build \
-					  build_project \
-					  $BUILD_JOB_TOPIC \
-					  $PROJECT_ID
-
-deploy_cloud_function request-coverage-build \
-					  coverage_build \
-					  $COVERAGE_BUILD_JOB_TOPIC \
-					  $PROJECT_ID
-
-deploy_cloud_function update-builds \
-					  builds_status \
-					  $UPDATE_BUILD_JOB_TOPIC \
-					  $PROJECT_ID
-
-gcloud datastore indexes create index.yaml --project $PROJECT_ID
diff --git a/infra/build/functions/expected_build_steps.json b/infra/build/functions/expected_build_steps.json
deleted file mode 100644
index da9c636..0000000
--- a/infra/build/functions/expected_build_steps.json
+++ /dev/null
@@ -1,330 +0,0 @@
-[
-  {
-    "args": [
-      "clone",
-      "https://github.com/google/oss-fuzz.git"
-    ],
-    "name": "gcr.io/cloud-builders/git"
-  },
-  {
-    "name": "gcr.io/cloud-builders/docker",
-    "args": [
-      "build",
-      "-t",
-      "gcr.io/oss-fuzz/test-project",
-      "."
-    ],
-    "dir": "oss-fuzz/projects/test-project"
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "args": [
-      "bash",
-      "-c",
-      "srcmap > /workspace/srcmap.json && cat /workspace/srcmap.json"
-    ],
-    "env": [
-      "OSSFUZZ_REVISION=$REVISION_ID",
-      "FUZZING_LANGUAGE=c++"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/msan-libs-builder",
-    "args": [
-      "bash",
-      "-c",
-      "cp -r /msan /workspace"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "env": [
-      "FUZZING_ENGINE=libfuzzer",
-      "SANITIZER=address",
-      "OUT=/workspace/out/address",
-      "MSAN_LIBS_PATH=/workspace/msan",
-      "ARCHITECTURE=x86_64",
-      "FUZZING_LANGUAGE=c++"
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "rm -r /out && cd /src && cd /src && mkdir -p /workspace/out/address && compile || (echo \"********************************************************************************\nFailed to build.\nTo reproduce, run:\npython infra/helper.py build_image test-project\npython infra/helper.py build_fuzzers --sanitizer address --engine libfuzzer --architecture x86_64 test-project\n********************************************************************************\" && false)"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/base-runner",
-    "env": [
-      "FUZZING_ENGINE=libfuzzer",
-      "SANITIZER=address",
-      "OUT=/workspace/out/address",
-      "MSAN_LIBS_PATH=/workspace/msan",
-      "ARCHITECTURE=x86_64",
-      "FUZZING_LANGUAGE=c++"
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "test_all.py || (echo \"********************************************************************************\nBuild checks failed.\nTo reproduce, run:\npython infra/helper.py build_image test-project\npython infra/helper.py build_fuzzers --sanitizer address --engine libfuzzer --architecture x86_64 test-project\npython infra/helper.py check_build --sanitizer address --engine libfuzzer --architecture x86_64 test-project\n********************************************************************************\" && false)"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/base-runner",
-    "env": [
-      "FUZZING_ENGINE=libfuzzer",
-      "SANITIZER=address",
-      "OUT=/workspace/out/address",
-      "MSAN_LIBS_PATH=/workspace/msan",
-      "ARCHITECTURE=x86_64",
-      "FUZZING_LANGUAGE=c++"
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "targets_list > /workspace/targets.list.address"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "args": [
-      "bash",
-      "-c",
-      "cd /workspace/out/address && zip -r test-project-address-202001010000.zip *"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/uploader",
-    "args": [
-      "/workspace/srcmap.json",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/uploader",
-    "args": [
-      "/workspace/out/address/test-project-address-202001010000.zip",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/uploader",
-    "args": [
-      "/workspace/targets.list.address",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/curl",
-    "args": [
-      "-H",
-      "Content-Type: text/plain",
-      "-X",
-      "PUT",
-      "-d",
-      "test-project-address-202001010000.zip",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "args": [
-      "bash",
-      "-c",
-      "rm -r /workspace/out/address"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "env": [
-      "FUZZING_ENGINE=afl",
-      "SANITIZER=address",
-      "OUT=/workspace/out/address",
-      "MSAN_LIBS_PATH=/workspace/msan",
-      "ARCHITECTURE=x86_64",
-      "FUZZING_LANGUAGE=c++"
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "rm -r /out && cd /src && cd /src && mkdir -p /workspace/out/address && compile || (echo \"********************************************************************************\nFailed to build.\nTo reproduce, run:\npython infra/helper.py build_image test-project\npython infra/helper.py build_fuzzers --sanitizer address --engine afl --architecture x86_64 test-project\n********************************************************************************\" && false)"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/base-runner",
-    "env": [
-      "FUZZING_ENGINE=afl",
-      "SANITIZER=address",
-      "OUT=/workspace/out/address",
-      "MSAN_LIBS_PATH=/workspace/msan",
-      "ARCHITECTURE=x86_64",
-      "FUZZING_LANGUAGE=c++"
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "test_all.py || (echo \"********************************************************************************\nBuild checks failed.\nTo reproduce, run:\npython infra/helper.py build_image test-project\npython infra/helper.py build_fuzzers --sanitizer address --engine afl --architecture x86_64 test-project\npython infra/helper.py check_build --sanitizer address --engine afl --architecture x86_64 test-project\n********************************************************************************\" && false)"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/base-runner",
-    "env": [
-      "FUZZING_ENGINE=afl",
-      "SANITIZER=address",
-      "OUT=/workspace/out/address",
-      "MSAN_LIBS_PATH=/workspace/msan",
-      "ARCHITECTURE=x86_64",
-      "FUZZING_LANGUAGE=c++"
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "targets_list > /workspace/targets.list.address"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "args": [
-      "bash",
-      "-c",
-      "cd /workspace/out/address && zip -r test-project-address-202001010000.zip *"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/uploader",
-    "args": [
-      "/workspace/srcmap.json",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/uploader",
-    "args": [
-      "/workspace/out/address/test-project-address-202001010000.zip",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/uploader",
-    "args": [
-      "/workspace/targets.list.address",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/curl",
-    "args": [
-      "-H",
-      "Content-Type: text/plain",
-      "-X",
-      "PUT",
-      "-d",
-      "test-project-address-202001010000.zip",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "args": [
-      "bash",
-      "-c",
-      "rm -r /workspace/out/address"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "env": [
-      "FUZZING_ENGINE=honggfuzz",
-      "SANITIZER=address",
-      "OUT=/workspace/out/address",
-      "MSAN_LIBS_PATH=/workspace/msan",
-      "ARCHITECTURE=x86_64",
-      "FUZZING_LANGUAGE=c++"
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "rm -r /out && cd /src && cd /src && mkdir -p /workspace/out/address && compile || (echo \"********************************************************************************\nFailed to build.\nTo reproduce, run:\npython infra/helper.py build_image test-project\npython infra/helper.py build_fuzzers --sanitizer address --engine honggfuzz --architecture x86_64 test-project\n********************************************************************************\" && false)"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/base-runner",
-    "env": [
-      "FUZZING_ENGINE=honggfuzz",
-      "SANITIZER=address",
-      "OUT=/workspace/out/address",
-      "MSAN_LIBS_PATH=/workspace/msan",
-      "ARCHITECTURE=x86_64",
-      "FUZZING_LANGUAGE=c++"
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "test_all.py || (echo \"********************************************************************************\nBuild checks failed.\nTo reproduce, run:\npython infra/helper.py build_image test-project\npython infra/helper.py build_fuzzers --sanitizer address --engine honggfuzz --architecture x86_64 test-project\npython infra/helper.py check_build --sanitizer address --engine honggfuzz --architecture x86_64 test-project\n********************************************************************************\" && false)"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/base-runner",
-    "env": [
-      "FUZZING_ENGINE=honggfuzz",
-      "SANITIZER=address",
-      "OUT=/workspace/out/address",
-      "MSAN_LIBS_PATH=/workspace/msan",
-      "ARCHITECTURE=x86_64",
-      "FUZZING_LANGUAGE=c++"
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "targets_list > /workspace/targets.list.address"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "args": [
-      "bash",
-      "-c",
-      "cd /workspace/out/address && zip -r test-project-address-202001010000.zip *"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/uploader",
-    "args": [
-      "/workspace/srcmap.json",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/uploader",
-    "args": [
-      "/workspace/out/address/test-project-address-202001010000.zip",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/uploader",
-    "args": [
-      "/workspace/targets.list.address",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/curl",
-    "args": [
-      "-H",
-      "Content-Type: text/plain",
-      "-X",
-      "PUT",
-      "-d",
-      "test-project-address-202001010000.zip",
-      "test_url"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "args": [
-      "bash",
-      "-c",
-      "rm -r /workspace/out/address"
-    ]
-  }
-]
diff --git a/infra/build/functions/expected_coverage_build_steps.json b/infra/build/functions/expected_coverage_build_steps.json
deleted file mode 100644
index 19b1d5b..0000000
--- a/infra/build/functions/expected_coverage_build_steps.json
+++ /dev/null
@@ -1,144 +0,0 @@
-[
-  {
-    "args": [
-      "clone",
-      "https://github.com/google/oss-fuzz.git"
-    ],
-    "name": "gcr.io/cloud-builders/git"
-  },
-  {
-    "name": "gcr.io/cloud-builders/docker",
-    "args": [
-      "build",
-      "-t",
-      "gcr.io/oss-fuzz/test-project",
-      "."
-    ],
-    "dir": "oss-fuzz/projects/test-project"
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "args": [
-      "bash",
-      "-c",
-      "srcmap > /workspace/srcmap.json && cat /workspace/srcmap.json"
-    ],
-    "env": [
-      "OSSFUZZ_REVISION=$REVISION_ID",
-      "FUZZING_LANGUAGE=c++"
-    ]
-  },
-  {
-    "name": "gcr.io/oss-fuzz/test-project",
-    "env": [
-      "FUZZING_ENGINE=libfuzzer",
-      "SANITIZER=coverage",
-      "OUT=/workspace/out/coverage",
-      "FUZZING_LANGUAGE=c++"
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "rm -r /out && cd /src && cd /src && mkdir -p /workspace/out/coverage && compile || (echo \"********************************************************************************\nCoverage build failed.\nTo reproduce, run:\npython infra/helper.py build_image test-project\npython infra/helper.py build_fuzzers --sanitizer coverage test-project\n********************************************************************************\" && false)"
-    ]
-  },
-  {
-    "url": "test_download"
-  },
-  {
-    "name": "gcr.io/oss-fuzz-base/base-runner",
-    "env": [
-      "FUZZING_ENGINE=libfuzzer",
-      "SANITIZER=coverage",
-      "OUT=/workspace/out/coverage",
-      "FUZZING_LANGUAGE=c++",
-      "HTTP_PORT=",
-      "COVERAGE_EXTRA_ARGS="
-    ],
-    "args": [
-      "bash",
-      "-c",
-      "for f in /corpus/*.zip; do unzip -q $f -d ${f%%.*} || (echo \"Failed to unpack the corpus for $(basename ${f%%.*}). This usually means that corpus backup for a particular fuzz target does not exist. If a fuzz target was added in the last 24 hours, please wait one more day. Otherwise, something is wrong with the fuzz target or the infrastructure, and corpus pruning task does not finish successfully.\" && exit 1); done && coverage || (echo \"********************************************************************************\nCode coverage report generation failed.\nTo reproduce, run:\npython infra/helper.py build_image test-project\npython infra/helper.py build_fuzzers --sanitizer coverage test-project\npython infra/helper.py coverage test-project\n********************************************************************************\" && false)"
-    ],
-    "volumes": [
-      {
-        "name": "corpus",
-        "path": "/corpus"
-      }
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/gsutil",
-    "entrypoint": "sh",
-    "args": [
-      "-c",
-      "gsutil -m rm -rf gs://oss-fuzz-coverage/test-project/reports/20200101 || exit 0"
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/gsutil",
-    "args": [
-      "-m",
-      "cp",
-      "-r",
-      "/workspace/out/coverage/report",
-      "gs://oss-fuzz-coverage/test-project/reports/20200101"
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/gsutil",
-    "entrypoint": "sh",
-    "args": [
-      "-c",
-      "gsutil -m rm -rf gs://oss-fuzz-coverage/test-project/fuzzer_stats/20200101 || exit 0"
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/gsutil",
-    "args": [
-      "-m",
-      "cp",
-      "-r",
-      "/workspace/out/coverage/fuzzer_stats",
-      "gs://oss-fuzz-coverage/test-project/fuzzer_stats/20200101"
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/gsutil",
-    "entrypoint": "sh",
-    "args": [
-      "-c",
-      "gsutil -m rm -rf gs://oss-fuzz-coverage/test-project/logs/20200101 || exit 0"
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/gsutil",
-    "args": [
-      "-m",
-      "cp",
-      "-r",
-      "/workspace/out/coverage/logs",
-      "gs://oss-fuzz-coverage/test-project/logs/20200101"
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/gsutil",
-    "args": [
-      "cp",
-      "/workspace/srcmap.json",
-      "gs://oss-fuzz-coverage/test-project/srcmap/20200101.json"
-    ]
-  },
-  {
-    "name": "gcr.io/cloud-builders/curl",
-    "args": [
-      "-H",
-      "Content-Type: application/json",
-      "-X",
-      "PUT",
-      "-d",
-      "{\"fuzzer_stats_dir\": \"gs://oss-fuzz-coverage/test-project/fuzzer_stats/20200101\", \"html_report_url\": \"https://storage.googleapis.com/oss-fuzz-coverage/test-project/reports/20200101/linux/index.html\", \"report_date\": \"20200101\", \"report_summary_path\": \"gs://oss-fuzz-coverage/test-project/reports/20200101/linux/summary.json\"}",
-      "test_url"
-    ]
-  }
-]
\ No newline at end of file
diff --git a/infra/build/functions/index.yaml b/infra/build/functions/index.yaml
deleted file mode 100644
index 260bee2..0000000
--- a/infra/build/functions/index.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-indexes:
-  - kind: BuildsHistory
-    properties:
-      - name: build_tag
-      - name: project
diff --git a/infra/build/functions/main.py b/infra/build/functions/main.py
deleted file mode 100644
index 1bfd358..0000000
--- a/infra/build/functions/main.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Cloud functions for build infrastructure."""
-
-import base_images
-import project_sync
-import request_build
-import request_coverage_build
-import update_build_status
-
-
-def build_project(event, context):
-  """Entry point for cloud function to requesting project builds."""
-  request_build.request_build(event, context)
-
-
-def sync(event, context):
-  """Entry point for cloud function that syncs projects from github."""
-  project_sync.sync(event, context)
-
-
-def build_base_images(event, context):
-  """Entry point for cloud function that builds base images."""
-  base_images.base_builder(event, context)
-
-
-def coverage_build(event, context):
-  """Entry point for cloud function to build coverage reports."""
-  request_coverage_build.request_coverage_build(event, context)
-
-
-def builds_status(event, context):
-  """Entry point for builds status cloud function."""
-  update_build_status.update_status(event, context)
-
-
-def build_msan(event, context):
-  """Entry point for base msan builder."""
-  base_images.base_msan_builder(event, context)
diff --git a/infra/build/functions/project_sync.py b/infra/build/functions/project_sync.py
deleted file mode 100644
index debdbbd..0000000
--- a/infra/build/functions/project_sync.py
+++ /dev/null
@@ -1,243 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Cloud functions for build scheduling."""
-
-from collections import namedtuple
-import logging
-import os
-import re
-import yaml
-
-from github import Github
-from google.api_core import exceptions
-from google.cloud import ndb
-from google.cloud import scheduler_v1
-
-import build_and_run_coverage
-import build_project
-from datastore_entities import GithubCreds
-from datastore_entities import Project
-
-VALID_PROJECT_NAME = re.compile(r'^[a-zA-Z0-9_-]+$')
-DEFAULT_BUILDS_PER_DAY = 1
-MAX_BUILDS_PER_DAY = 4
-COVERAGE_SCHEDULE = '0 6 * * *'
-FUZZING_BUILD_TOPIC = 'request-build'
-COVERAGE_BUILD_TOPIC = 'request-coverage-build'
-
-ProjectMetadata = namedtuple(
-    'ProjectMetadata', 'schedule project_yaml_contents dockerfile_contents')
-
-
-class ProjectYamlError(Exception):
-  """Error in project.yaml format."""
-
-
-def create_scheduler(cloud_scheduler_client, project_name, schedule, tag,
-                     topic):
-  """Creates schedulers for new projects."""
-  project_id = os.environ.get('GCP_PROJECT')
-  location_id = os.environ.get('FUNCTION_REGION')
-  parent = cloud_scheduler_client.location_path(project_id, location_id)
-  job = {
-      'name': parent + '/jobs/' + project_name + '-scheduler-' + tag,
-      'pubsub_target': {
-          'topic_name': 'projects/' + project_id + '/topics/' + topic,
-          'data': project_name.encode()
-      },
-      'schedule': schedule
-  }
-
-  cloud_scheduler_client.create_job(parent, job)
-
-
-def delete_scheduler(cloud_scheduler_client, project_name, tag):
-  """Deletes schedulers for projects that were removed."""
-  project_id = os.environ.get('GCP_PROJECT')
-  location_id = os.environ.get('FUNCTION_REGION')
-  name = cloud_scheduler_client.job_path(project_id, location_id,
-                                         project_name + '-scheduler-' + tag)
-  cloud_scheduler_client.delete_job(name)
-
-
-def update_scheduler(cloud_scheduler_client, project, schedule, tag):
-  """Updates schedule in case schedule was changed."""
-  project_id = os.environ.get('GCP_PROJECT')
-  location_id = os.environ.get('FUNCTION_REGION')
-  parent = cloud_scheduler_client.location_path(project_id, location_id)
-  job = {
-      'name': parent + '/jobs/' + project.name + '-scheduler-' + tag,
-      'pubsub_target': {
-          'topic_name': 'projects/' + project_id + '/topics/request-build',
-          'data': project.name.encode()
-      },
-      'schedule': schedule,
-  }
-
-  update_mask = {'paths': ['schedule']}
-  cloud_scheduler_client.update_job(job, update_mask)
-
-
-def delete_project(cloud_scheduler_client, project):
-  """Delete the given project."""
-  logging.info('Deleting project %s', project.name)
-  for tag in (build_project.FUZZING_BUILD_TAG,
-              build_and_run_coverage.COVERAGE_BUILD_TAG):
-    try:
-      delete_scheduler(cloud_scheduler_client, project.name, tag)
-    except exceptions.NotFound:
-      # Already deleted.
-      continue
-    except exceptions.GoogleAPICallError as error:
-      logging.error('Scheduler deletion for %s failed with %s', project.name,
-                    error)
-      return
-
-  project.key.delete()
-
-
-# pylint: disable=too-many-branches
-def sync_projects(cloud_scheduler_client, projects):
-  """Sync projects with cloud datastore."""
-  for project in Project.query():
-    if project.name not in projects:
-      delete_project(cloud_scheduler_client, project)
-
-  existing_projects = {project.name for project in Project.query()}
-  for project_name in projects:
-    if project_name in existing_projects:
-      continue
-
-    try:
-      create_scheduler(cloud_scheduler_client, project_name,
-                       projects[project_name].schedule,
-                       build_project.FUZZING_BUILD_TAG, FUZZING_BUILD_TOPIC)
-      create_scheduler(cloud_scheduler_client, project_name, COVERAGE_SCHEDULE,
-                       build_and_run_coverage.COVERAGE_BUILD_TAG,
-                       COVERAGE_BUILD_TOPIC)
-      project_metadata = projects[project_name]
-      Project(name=project_name,
-              schedule=project_metadata.schedule,
-              project_yaml_contents=project_metadata.project_yaml_contents,
-              dockerfile_contents=project_metadata.dockerfile_contents).put()
-    except exceptions.GoogleAPICallError as error:
-      logging.error('Scheduler creation for %s failed with %s', project_name,
-                    error)
-
-  for project in Project.query():
-    if project.name not in projects:
-      continue
-
-    logging.info('Setting up project %s', project.name)
-    project_metadata = projects[project.name]
-    project_changed = False
-    if project.schedule != project_metadata.schedule:
-      try:
-        logging.info('Schedule changed.')
-        update_scheduler(cloud_scheduler_client, project,
-                         projects[project.name].schedule,
-                         build_project.FUZZING_BUILD_TAG)
-        project.schedule = project_metadata.schedule
-        project_changed = True
-      except exceptions.GoogleAPICallError as error:
-        logging.error('Updating scheduler for %s failed with %s', project.name,
-                      error)
-    if project.project_yaml_contents != project_metadata.project_yaml_contents:
-      project.project_yaml_contents = project_metadata.project_yaml_contents
-      project_changed = True
-
-    if project.dockerfile_contents != project_metadata.dockerfile_contents:
-      project.dockerfile_contents = project_metadata.dockerfile_contents
-      project_changed = True
-
-    if project_changed:
-      project.put()
-
-
-def _has_docker_file(project_contents):
-  """Checks if project has a Dockerfile."""
-  return any(
-      content_file.name == 'Dockerfile' for content_file in project_contents)
-
-
-def get_project_metadata(project_contents):
-  """Checks for schedule parameter in yaml file else uses DEFAULT_SCHEDULE."""
-  for content_file in project_contents:
-    if content_file.name == 'project.yaml':
-      project_yaml_contents = content_file.decoded_content.decode('utf-8')
-
-    if content_file.name == 'Dockerfile':
-      dockerfile_contents = content_file.decoded_content.decode('utf-8')
-
-  project_yaml = yaml.safe_load(project_yaml_contents)
-  builds_per_day = project_yaml.get('builds_per_day', DEFAULT_BUILDS_PER_DAY)
-  if not isinstance(builds_per_day, int) or builds_per_day not in range(
-      1, MAX_BUILDS_PER_DAY + 1):
-    raise ProjectYamlError('Parameter is not an integer in range [1-4]')
-
-  # Starting at 6:00 am, next build schedules are added at 'interval' slots
-  # Example for interval 2, hours = [6, 18] and schedule = '0 6,18 * * *'
-  interval = 24 // builds_per_day
-  hours = []
-  for hour in range(6, 30, interval):
-    hours.append(hour % 24)
-  schedule = '0 ' + ','.join(str(hour) for hour in hours) + ' * * *'
-
-  return ProjectMetadata(schedule, project_yaml_contents, dockerfile_contents)
-
-
-def get_projects(repo):
-  """Get project list from git repository."""
-  projects = {}
-  contents = repo.get_contents('projects')
-  for content_file in contents:
-    if content_file.type != 'dir' or not VALID_PROJECT_NAME.match(
-        content_file.name):
-      continue
-
-    project_contents = repo.get_contents(content_file.path)
-    if not _has_docker_file(project_contents):
-      continue
-
-    try:
-      projects[content_file.name] = get_project_metadata(project_contents)
-    except ProjectYamlError as error:
-      logging.error(
-          'Incorrect format for project.yaml file of %s with error %s',
-          content_file.name, error)
-
-  return projects
-
-
-def get_github_creds():
-  """Retrieves GitHub client credentials."""
-  git_creds = GithubCreds.query().get()
-  if git_creds is None:
-    raise RuntimeError('Git credentials not available.')
-  return git_creds
-
-
-def sync(event, context):
-  """Sync projects with cloud datastore."""
-  del event, context  #unused
-
-  with ndb.Client().context():
-    git_creds = get_github_creds()
-    github_client = Github(git_creds.client_id, git_creds.client_secret)
-    repo = github_client.get_repo('google/oss-fuzz')
-    projects = get_projects(repo)
-    cloud_scheduler_client = scheduler_v1.CloudSchedulerClient()
-    sync_projects(cloud_scheduler_client, projects)
diff --git a/infra/build/functions/project_sync_test.py b/infra/build/functions/project_sync_test.py
deleted file mode 100644
index f907338..0000000
--- a/infra/build/functions/project_sync_test.py
+++ /dev/null
@@ -1,319 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Unit tests for Cloud Function sync, which syncs the list of github projects
-and uploads them to the Cloud Datastore."""
-
-import os
-import sys
-import unittest
-
-from google.cloud import ndb
-
-sys.path.append(os.path.dirname(__file__))
-# pylint: disable=wrong-import-position
-
-from datastore_entities import Project
-from project_sync import get_github_creds
-from project_sync import get_projects
-from project_sync import ProjectMetadata
-from project_sync import sync_projects
-import test_utils
-
-# pylint: disable=no-member
-
-
-# pylint: disable=too-few-public-methods
-class Repository:
-  """Mocking Github Repository."""
-
-  def __init__(self, name, file_type, path, contents=None):
-    self.contents = contents or []
-    self.name = name
-    self.type = file_type
-    self.path = path
-    self.decoded_content = b"name: test"
-
-  def get_contents(self, path):
-    """"Get contents of repository."""
-    if self.path == path:
-      return self.contents
-
-    for content_file in self.contents:
-      if content_file.path == path:
-        return content_file.contents
-
-    return None
-
-  def set_yaml_contents(self, decoded_content):
-    """Set yaml_contents."""
-    self.decoded_content = decoded_content
-
-
-class CloudSchedulerClient:
-  """Mocking cloud scheduler client."""
-
-  def __init__(self):
-    self.schedulers = []
-
-  # pylint: disable=no-self-use
-  def location_path(self, project_id, location_id):
-    """Return project path."""
-    return 'projects/{}/location/{}'.format(project_id, location_id)
-
-  def create_job(self, parent, job):
-    """Simulate create job."""
-    del parent
-    self.schedulers.append(job)
-
-  # pylint: disable=no-self-use
-  def job_path(self, project_id, location_id, name):
-    """Return job path."""
-    return 'projects/{}/location/{}/jobs/{}'.format(project_id, location_id,
-                                                    name)
-
-  def delete_job(self, name):
-    """Simulate delete jobs."""
-    for job in self.schedulers:
-      if job['name'] == name:
-        self.schedulers.remove(job)
-        break
-
-  def update_job(self, job, update_mask):
-    """Simulate update jobs."""
-    for existing_job in self.schedulers:
-      if existing_job == job:
-        job['schedule'] = update_mask['schedule']
-
-
-class TestDataSync(unittest.TestCase):
-  """Unit tests for sync."""
-
-  @classmethod
-  def setUpClass(cls):
-    cls.ds_emulator = test_utils.start_datastore_emulator()
-    test_utils.wait_for_emulator_ready(cls.ds_emulator, 'datastore',
-                                       test_utils.DATASTORE_READY_INDICATOR)
-    test_utils.set_gcp_environment()
-
-  def setUp(self):
-    test_utils.reset_ds_emulator()
-
-  def test_sync_projects_update(self):
-    """Testing sync_projects() updating a schedule."""
-    cloud_scheduler_client = CloudSchedulerClient()
-
-    with ndb.Client().context():
-      Project(name='test1',
-              schedule='0 8 * * *',
-              project_yaml_contents='',
-              dockerfile_contents='').put()
-      Project(name='test2',
-              schedule='0 9 * * *',
-              project_yaml_contents='',
-              dockerfile_contents='').put()
-
-      projects = {
-          'test1': ProjectMetadata('0 8 * * *', '', ''),
-          'test2': ProjectMetadata('0 7 * * *', '', '')
-      }
-      sync_projects(cloud_scheduler_client, projects)
-
-      projects_query = Project.query()
-      self.assertEqual({
-          'test1': '0 8 * * *',
-          'test2': '0 7 * * *'
-      }, {project.name: project.schedule for project in projects_query})
-
-  def test_sync_projects_create(self):
-    """"Testing sync_projects() creating new schedule."""
-    cloud_scheduler_client = CloudSchedulerClient()
-
-    with ndb.Client().context():
-      Project(name='test1',
-              schedule='0 8 * * *',
-              project_yaml_contents='',
-              dockerfile_contents='').put()
-
-      projects = {
-          'test1': ProjectMetadata('0 8 * * *', '', ''),
-          'test2': ProjectMetadata('0 7 * * *', '', '')
-      }
-      sync_projects(cloud_scheduler_client, projects)
-
-      projects_query = Project.query()
-      self.assertEqual({
-          'test1': '0 8 * * *',
-          'test2': '0 7 * * *'
-      }, {project.name: project.schedule for project in projects_query})
-
-      self.assertCountEqual([
-          {
-              'name': 'projects/test-project/location/us-central1/jobs/'
-                      'test2-scheduler-fuzzing',
-              'pubsub_target': {
-                  'topic_name': 'projects/test-project/topics/request-build',
-                  'data': b'test2'
-              },
-              'schedule': '0 7 * * *'
-          },
-          {
-              'name': 'projects/test-project/location/us-central1/jobs/'
-                      'test2-scheduler-coverage',
-              'pubsub_target': {
-                  'topic_name':
-                      'projects/test-project/topics/request-coverage-build',
-                  'data':
-                      b'test2'
-              },
-              'schedule': '0 6 * * *'
-          },
-      ], cloud_scheduler_client.schedulers)
-
-  def test_sync_projects_delete(self):
-    """Testing sync_projects() deleting."""
-    cloud_scheduler_client = CloudSchedulerClient()
-
-    with ndb.Client().context():
-      Project(name='test1',
-              schedule='0 8 * * *',
-              project_yaml_contents='',
-              dockerfile_contents='').put()
-      Project(name='test2',
-              schedule='0 9 * * *',
-              project_yaml_contents='',
-              dockerfile_contents='').put()
-
-      projects = {'test1': ProjectMetadata('0 8 * * *', '', '')}
-      sync_projects(cloud_scheduler_client, projects)
-
-      projects_query = Project.query()
-      self.assertEqual(
-          {'test1': '0 8 * * *'},
-          {project.name: project.schedule for project in projects_query})
-
-  def test_get_projects_yaml(self):
-    """Testing get_projects() yaml get_schedule()."""
-
-    repo = Repository('oss-fuzz', 'dir', 'projects', [
-        Repository('test0', 'dir', 'projects/test0', [
-            Repository('Dockerfile', 'file', 'projects/test0/Dockerfile'),
-            Repository('project.yaml', 'file', 'projects/test0/project.yaml')
-        ]),
-        Repository('test1', 'dir', 'projects/test1', [
-            Repository('Dockerfile', 'file', 'projects/test1/Dockerfile'),
-            Repository('project.yaml', 'file', 'projects/test1/project.yaml')
-        ])
-    ])
-    repo.contents[0].contents[1].set_yaml_contents(b'builds_per_day: 2')
-    repo.contents[1].contents[1].set_yaml_contents(b'builds_per_day: 3')
-
-    self.assertEqual(
-        get_projects(repo), {
-            'test0':
-                ProjectMetadata('0 6,18 * * *', 'builds_per_day: 2',
-                                'name: test'),
-            'test1':
-                ProjectMetadata('0 6,14,22 * * *', 'builds_per_day: 3',
-                                'name: test')
-        })
-
-  def test_get_projects_no_docker_file(self):
-    """Testing get_projects() with missing dockerfile"""
-
-    repo = Repository('oss-fuzz', 'dir', 'projects', [
-        Repository('test0', 'dir', 'projects/test0', [
-            Repository('Dockerfile', 'file', 'projects/test0/Dockerfile'),
-            Repository('project.yaml', 'file', 'projects/test0/project.yaml')
-        ]),
-        Repository('test1', 'dir', 'projects/test1')
-    ])
-
-    self.assertEqual(
-        get_projects(repo),
-        {'test0': ProjectMetadata('0 6 * * *', 'name: test', 'name: test')})
-
-  def test_get_projects_invalid_project_name(self):
-    """Testing get_projects() with invalid project name"""
-
-    repo = Repository('oss-fuzz', 'dir', 'projects', [
-        Repository('test0', 'dir', 'projects/test0', [
-            Repository('Dockerfile', 'file', 'projects/test0/Dockerfile'),
-            Repository('project.yaml', 'file', 'projects/test0/project.yaml')
-        ]),
-        Repository('test1@', 'dir', 'projects/test1', [
-            Repository('Dockerfile', 'file', 'projects/test1/Dockerfile'),
-            Repository('project.yaml', 'file', 'projects/test0/project.yaml')
-        ])
-    ])
-
-    self.assertEqual(
-        get_projects(repo),
-        {'test0': ProjectMetadata('0 6 * * *', 'name: test', 'name: test')})
-
-  def test_get_projects_non_directory_type_project(self):
-    """Testing get_projects() when a file in projects/ is not of type 'dir'."""
-
-    repo = Repository('oss-fuzz', 'dir', 'projects', [
-        Repository('test0', 'dir', 'projects/test0', [
-            Repository('Dockerfile', 'file', 'projects/test0/Dockerfile'),
-            Repository('project.yaml', 'file', 'projects/test0/project.yaml')
-        ]),
-        Repository('test1', 'file', 'projects/test1')
-    ])
-
-    self.assertEqual(
-        get_projects(repo),
-        {'test0': ProjectMetadata('0 6 * * *', 'name: test', 'name: test')})
-
-  def test_invalid_yaml_format(self):
-    """Testing invalid yaml schedule parameter argument."""
-
-    repo = Repository('oss-fuzz', 'dir', 'projects', [
-        Repository('test0', 'dir', 'projects/test0', [
-            Repository('Dockerfile', 'file', 'projects/test0/Dockerfile'),
-            Repository('project.yaml', 'file', 'projects/test0/project.yaml')
-        ])
-    ])
-    repo.contents[0].contents[1].set_yaml_contents(
-        b'builds_per_day: some-string')
-
-    self.assertEqual(get_projects(repo), {})
-
-  def test_yaml_out_of_range(self):
-    """Testing invalid yaml schedule parameter argument."""
-
-    repo = Repository('oss-fuzz', 'dir', 'projects', [
-        Repository('test0', 'dir', 'projects/test0', [
-            Repository('Dockerfile', 'file', 'projects/test0/Dockerfile'),
-            Repository('project.yaml', 'file', 'projects/test0/project.yaml')
-        ])
-    ])
-    repo.contents[0].contents[1].set_yaml_contents(b'builds_per_day: 5')
-
-    self.assertEqual(get_projects(repo), {})
-
-  def test_get_github_creds(self):
-    """Testing get_github_creds()."""
-    with ndb.Client().context():
-      self.assertRaises(RuntimeError, get_github_creds)
-
-  @classmethod
-  def tearDownClass(cls):
-    test_utils.cleanup_emulator(cls.ds_emulator)
-
-
-if __name__ == '__main__':
-  unittest.main(exit=False)
diff --git a/infra/build/functions/request_build.py b/infra/build/functions/request_build.py
deleted file mode 100644
index 6f0ab62..0000000
--- a/infra/build/functions/request_build.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Cloud function to request builds."""
-import base64
-import logging
-
-import google.auth
-from googleapiclient.discovery import build
-from google.cloud import ndb
-
-import build_lib
-import build_project
-from datastore_entities import BuildsHistory
-from datastore_entities import Project
-
-BASE_PROJECT = 'oss-fuzz-base'
-MAX_BUILD_HISTORY_LENGTH = 64
-QUEUE_TTL_SECONDS = 60 * 60 * 24  # 24 hours.
-
-
-def update_build_history(project_name, build_id, build_tag):
-  """Update build history of project."""
-  project_key = ndb.Key(BuildsHistory, project_name + '-' + build_tag)
-  project = project_key.get()
-
-  if not project:
-    project = BuildsHistory(id=project_name + '-' + build_tag,
-                            build_tag=build_tag,
-                            project=project_name,
-                            build_ids=[])
-
-  if len(project.build_ids) >= MAX_BUILD_HISTORY_LENGTH:
-    project.build_ids.pop(0)
-
-  project.build_ids.append(build_id)
-  project.put()
-
-
-def get_project_data(project_name):
-  """Retrieve project metadata from datastore."""
-  query = Project.query(Project.name == project_name)
-  project = query.get()
-  if not project:
-    raise RuntimeError(
-        'Project {0} not available in cloud datastore'.format(project_name))
-  project_yaml_contents = project.project_yaml_contents
-  dockerfile_lines = project.dockerfile_contents.split('\n')
-
-  return (project_yaml_contents, dockerfile_lines)
-
-
-def get_build_steps(project_name, image_project, base_images_project):
-  """Retrieve build steps."""
-  project_yaml_contents, dockerfile_lines = get_project_data(project_name)
-  return build_project.get_build_steps(project_name, project_yaml_contents,
-                                       dockerfile_lines, image_project,
-                                       base_images_project)
-
-
-# pylint: disable=no-member
-def run_build(project_name, image_project, build_steps, credentials, tag):
-  """Execute build on cloud build."""
-  build_body = {
-      'steps': build_steps,
-      'timeout': str(build_lib.BUILD_TIMEOUT) + 's',
-      'options': {
-          'machineType': 'N1_HIGHCPU_32'
-      },
-      'logsBucket': build_project.GCB_LOGS_BUCKET,
-      'tags': [project_name + '-' + tag,],
-      'queueTtl': str(QUEUE_TTL_SECONDS) + 's',
-  }
-
-  cloudbuild = build('cloudbuild',
-                     'v1',
-                     credentials=credentials,
-                     cache_discovery=False)
-  build_info = cloudbuild.projects().builds().create(projectId=image_project,
-                                                     body=build_body).execute()
-  build_id = build_info['metadata']['build']['id']
-
-  update_build_history(project_name, build_id, tag)
-  logging.info('Build ID: %s', build_id)
-  logging.info('Logs: %s', build_project.get_logs_url(build_id, image_project))
-
-
-# pylint: disable=no-member
-def request_build(event, context):
-  """Entry point for cloud function to request builds."""
-  del context  #unused
-  if 'data' in event:
-    project_name = base64.b64decode(event['data']).decode('utf-8')
-  else:
-    raise RuntimeError('Project name missing from payload')
-
-  with ndb.Client().context():
-    credentials, image_project = google.auth.default()
-    build_steps = get_build_steps(project_name, image_project, BASE_PROJECT)
-    if not build_steps:
-      return
-    run_build(project_name, image_project, build_steps, credentials,
-              build_project.FUZZING_BUILD_TAG)
diff --git a/infra/build/functions/request_build_test.py b/infra/build/functions/request_build_test.py
deleted file mode 100644
index 22a4a10..0000000
--- a/infra/build/functions/request_build_test.py
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Unit tests for Cloud Function request builds which builds projects."""
-import json
-import datetime
-import os
-import sys
-import unittest
-from unittest import mock
-
-from google.cloud import ndb
-
-sys.path.append(os.path.dirname(__file__))
-# pylint: disable=wrong-import-position
-
-from datastore_entities import BuildsHistory
-from datastore_entities import Project
-from request_build import get_build_steps
-from request_build import get_project_data
-from request_build import update_build_history
-import test_utils
-
-# pylint: disable=no-member
-
-
-class TestRequestBuilds(unittest.TestCase):
-  """Unit tests for sync."""
-
-  @classmethod
-  def setUpClass(cls):
-    cls.ds_emulator = test_utils.start_datastore_emulator()
-    test_utils.wait_for_emulator_ready(cls.ds_emulator, 'datastore',
-                                       test_utils.DATASTORE_READY_INDICATOR)
-    test_utils.set_gcp_environment()
-
-  def setUp(self):
-    test_utils.reset_ds_emulator()
-
-  @mock.patch('build_lib.get_signed_url', return_value='test_url')
-  @mock.patch('datetime.datetime')
-  def test_get_build_steps(self, mocked_url, mocked_time):
-    """Test for get_build_steps."""
-    del mocked_url, mocked_time
-    datetime.datetime = test_utils.SpoofedDatetime
-    project_yaml_contents = ('language: c++\n'
-                             'sanitizers:\n'
-                             '  - address\n'
-                             'architectures:\n'
-                             '  - x86_64\n')
-    image_project = 'oss-fuzz'
-    base_images_project = 'oss-fuzz-base'
-    testcase_path = os.path.join(os.path.dirname(__file__),
-                                 'expected_build_steps.json')
-    with open(testcase_path) as testcase_file:
-      expected_build_steps = json.load(testcase_file)
-
-    with ndb.Client().context():
-      Project(name='test-project',
-              project_yaml_contents=project_yaml_contents,
-              dockerfile_contents='test line').put()
-      build_steps = get_build_steps('test-project', image_project,
-                                    base_images_project)
-    self.assertEqual(build_steps, expected_build_steps)
-
-  def test_get_build_steps_no_project(self):
-    """Test for when project isn't available in datastore."""
-    with ndb.Client().context():
-      self.assertRaises(RuntimeError, get_build_steps, 'test-project',
-                        'oss-fuzz', 'oss-fuzz-base')
-
-  def test_build_history(self):
-    """Testing build history."""
-    with ndb.Client().context():
-      BuildsHistory(id='test-project-fuzzing',
-                    build_tag='fuzzing',
-                    project='test-project',
-                    build_ids=[str(i) for i in range(1, 65)]).put()
-      update_build_history('test-project', '65', 'fuzzing')
-      expected_build_ids = [str(i) for i in range(2, 66)]
-
-      self.assertEqual(BuildsHistory.query().get().build_ids,
-                       expected_build_ids)
-
-  def test_build_history_no_existing_project(self):
-    """Testing build history when build history object is missing."""
-    with ndb.Client().context():
-      update_build_history('test-project', '1', 'fuzzing')
-      expected_build_ids = ['1']
-
-      self.assertEqual(BuildsHistory.query().get().build_ids,
-                       expected_build_ids)
-
-  def test_get_project_data(self):
-    """Testing get project data."""
-    with ndb.Client().context():
-      self.assertRaises(RuntimeError, get_project_data, 'test-project')
-
-  @classmethod
-  def tearDownClass(cls):
-    test_utils.cleanup_emulator(cls.ds_emulator)
-
-
-if __name__ == '__main__':
-  unittest.main(exit=False)
diff --git a/infra/build/functions/request_coverage_build.py b/infra/build/functions/request_coverage_build.py
deleted file mode 100644
index 1b4ac0e..0000000
--- a/infra/build/functions/request_coverage_build.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Cloud function that requests coverage builds."""
-import base64
-
-import google.auth
-from google.cloud import ndb
-
-import build_and_run_coverage
-import request_build
-
-BASE_PROJECT = 'oss-fuzz-base'
-
-
-def get_build_steps(project_name, image_project, base_images_project):
-  """Retrieve build steps."""
-  project_yaml_contents, dockerfile_lines = request_build.get_project_data(
-      project_name)
-  return build_and_run_coverage.get_build_steps(project_name,
-                                                project_yaml_contents,
-                                                dockerfile_lines, image_project,
-                                                base_images_project)
-
-
-def request_coverage_build(event, context):
-  """Entry point for coverage build cloud function."""
-  del context  #unused
-  if 'data' in event:
-    project_name = base64.b64decode(event['data']).decode('utf-8')
-  else:
-    raise RuntimeError('Project name missing from payload')
-
-  with ndb.Client().context():
-    credentials, image_project = google.auth.default()
-    build_steps = get_build_steps(project_name, image_project, BASE_PROJECT)
-    if not build_steps:
-      return
-    request_build.run_build(project_name, image_project, build_steps,
-                            credentials,
-                            build_and_run_coverage.COVERAGE_BUILD_TAG)
diff --git a/infra/build/functions/request_coverage_build_test.py b/infra/build/functions/request_coverage_build_test.py
deleted file mode 100644
index 1327e36..0000000
--- a/infra/build/functions/request_coverage_build_test.py
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Unit tests for Cloud Function that builds coverage reports."""
-import json
-import datetime
-import os
-import sys
-import unittest
-from unittest import mock
-
-from google.cloud import ndb
-
-sys.path.append(os.path.dirname(__file__))
-# pylint: disable=wrong-import-position
-
-from datastore_entities import Project
-from build_and_run_coverage import get_build_steps
-import test_utils
-
-# pylint: disable=no-member
-
-
-class TestRequestCoverageBuilds(unittest.TestCase):
-  """Unit tests for sync."""
-
-  @classmethod
-  def setUpClass(cls):
-    cls.ds_emulator = test_utils.start_datastore_emulator()
-    test_utils.wait_for_emulator_ready(cls.ds_emulator, 'datastore',
-                                       test_utils.DATASTORE_READY_INDICATOR)
-    test_utils.set_gcp_environment()
-
-  def setUp(self):
-    test_utils.reset_ds_emulator()
-
-  @mock.patch('build_lib.get_signed_url', return_value='test_url')
-  @mock.patch('build_lib.download_corpora_steps',
-              return_value=[{
-                  'url': 'test_download'
-              }])
-  @mock.patch('datetime.datetime')
-  def test_get_coverage_build_steps(self, mocked_url, mocked_corpora_steps,
-                                    mocked_time):
-    """Test for get_build_steps."""
-    del mocked_url, mocked_corpora_steps, mocked_time
-    datetime.datetime = test_utils.SpoofedDatetime
-    project_yaml_contents = ('language: c++\n'
-                             'sanitizers:\n'
-                             '  - address\n'
-                             'architectures:\n'
-                             '  - x86_64\n')
-    dockerfile_contents = 'test line'
-    image_project = 'oss-fuzz'
-    base_images_project = 'oss-fuzz-base'
-    testcase_path = os.path.join(os.path.dirname(__file__),
-                                 'expected_coverage_build_steps.json')
-    with open(testcase_path) as testcase_file:
-      expected_coverage_build_steps = json.load(testcase_file)
-
-    with ndb.Client().context():
-      Project(name='test-project',
-              project_yaml_contents=project_yaml_contents,
-              dockerfile_contents=dockerfile_contents).put()
-
-    dockerfile_lines = dockerfile_contents.split('\n')
-    build_steps = get_build_steps('test-project', project_yaml_contents,
-                                  dockerfile_lines, image_project,
-                                  base_images_project)
-    self.assertEqual(build_steps, expected_coverage_build_steps)
-
-  @classmethod
-  def tearDownClass(cls):
-    test_utils.cleanup_emulator(cls.ds_emulator)
-
-
-if __name__ == '__main__':
-  unittest.main(exit=False)
diff --git a/infra/build/functions/requirements.txt b/infra/build/functions/requirements.txt
deleted file mode 100644
index a60a032..0000000
--- a/infra/build/functions/requirements.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-Brotli==1.0.9
-hiredis==1.1.0
-PyYaml==5.4
-PyGithub==1.51
-grpcio==1.29.0
-google-auth==1.21.1
-google-cloud-datastore<2.0
-google-cloud-ndb==1.7.1
-google-cloud-scheduler==1.3.0
-google-cloud-storage==1.29.0
-google-api-core==1.22.2
-google-api-python-client==1.9.3
-oauth2client==4.1.3
-python-dateutil==2.8.1
diff --git a/infra/build/functions/test_utils.py b/infra/build/functions/test_utils.py
deleted file mode 100644
index 9aac8ea..0000000
--- a/infra/build/functions/test_utils.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Utility functions for testing cloud functions."""
-import datetime
-import os
-import subprocess
-import threading
-
-import requests
-
-DATASTORE_READY_INDICATOR = b'is now running'
-DATASTORE_EMULATOR_PORT = 8432
-EMULATOR_TIMEOUT = 20
-TEST_PROJECT_ID = 'test-project'
-
-
-# pylint: disable=arguments-differ
-class SpoofedDatetime(datetime.datetime):
-  """Mocking Datetime class for now() function."""
-
-  @classmethod
-  def now(cls):
-    return datetime.datetime(2020, 1, 1, 0, 0, 0)
-
-
-def start_datastore_emulator():
-  """Start Datastore emulator."""
-  return subprocess.Popen([
-      'gcloud',
-      'beta',
-      'emulators',
-      'datastore',
-      'start',
-      '--consistency=1.0',
-      '--host-port=localhost:' + str(DATASTORE_EMULATOR_PORT),
-      '--project=' + TEST_PROJECT_ID,
-      '--no-store-on-disk',
-  ],
-                          stdout=subprocess.PIPE,
-                          stderr=subprocess.STDOUT)
-
-
-def wait_for_emulator_ready(proc,
-                            emulator,
-                            indicator,
-                            timeout=EMULATOR_TIMEOUT):
-  """Wait for emulator to be ready."""
-
-  def _read_thread(proc, ready_event):
-    """Thread to continuously read from the process stdout."""
-    ready = False
-    while True:
-      line = proc.stdout.readline()
-      if not line:
-        break
-      if not ready and indicator in line:
-        ready = True
-        ready_event.set()
-
-  # Wait for process to become ready.
-  ready_event = threading.Event()
-  thread = threading.Thread(target=_read_thread, args=(proc, ready_event))
-  thread.daemon = True
-  thread.start()
-  if not ready_event.wait(timeout):
-    raise RuntimeError(
-        '{} emulator did not get ready in time.'.format(emulator))
-  return thread
-
-
-def reset_ds_emulator():
-  """Reset ds emulator/clean all entities."""
-  req = requests.post(
-      'http://localhost:{}/reset'.format(DATASTORE_EMULATOR_PORT))
-  req.raise_for_status()
-
-
-def cleanup_emulator(ds_emulator):
-  """Cleanup the system processes made by ds emulator."""
-  del ds_emulator  #To do, find a better way to cleanup emulator
-  os.system('pkill -f datastore')
-
-
-def set_gcp_environment():
-  """Set environment variables for simulating in google cloud platform."""
-  os.environ['DATASTORE_EMULATOR_HOST'] = 'localhost:' + str(
-      DATASTORE_EMULATOR_PORT)
-  os.environ['GOOGLE_CLOUD_PROJECT'] = TEST_PROJECT_ID
-  os.environ['DATASTORE_DATASET'] = TEST_PROJECT_ID
-  os.environ['GCP_PROJECT'] = TEST_PROJECT_ID
-  os.environ['FUNCTION_REGION'] = 'us-central1'
diff --git a/infra/build/functions/update_build_status.py b/infra/build/functions/update_build_status.py
deleted file mode 100644
index af65a41..0000000
--- a/infra/build/functions/update_build_status.py
+++ /dev/null
@@ -1,307 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Cloud function to request builds."""
-import base64
-import concurrent.futures
-import json
-import sys
-
-import google.auth
-from googleapiclient.discovery import build
-from google.cloud import ndb
-from google.cloud import storage
-
-import build_and_run_coverage
-import build_project
-from datastore_entities import BuildsHistory
-from datastore_entities import LastSuccessfulBuild
-from datastore_entities import Project
-
-BADGE_DIR = 'badge_images'
-BADGE_IMAGE_TYPES = {'svg': 'image/svg+xml', 'png': 'image/png'}
-DESTINATION_BADGE_DIR = 'badges'
-MAX_BUILD_LOGS = 7
-
-STATUS_BUCKET = 'oss-fuzz-build-logs'
-
-FUZZING_STATUS_FILENAME = 'status.json'
-COVERAGE_STATUS_FILENAME = 'status-coverage.json'
-
-# pylint: disable=invalid-name
-_client = None
-
-
-class MissingBuildLogError(Exception):
-  """Missing build log file in cloud storage."""
-
-
-# pylint: disable=global-statement
-def get_storage_client():
-  """Return storage client."""
-  global _client
-  if not _client:
-    _client = storage.Client()
-
-  return _client
-
-
-def is_build_successful(build_obj):
-  """Check build success."""
-  return build_obj['status'] == 'SUCCESS'
-
-
-def upload_status(data, status_filename):
-  """Upload json file to cloud storage."""
-  bucket = get_storage_client().get_bucket(STATUS_BUCKET)
-  blob = bucket.blob(status_filename)
-  blob.cache_control = 'no-cache'
-  blob.upload_from_string(json.dumps(data), content_type='application/json')
-
-
-def sort_projects(projects):
-  """Sort projects in order Failures, Successes, Not yet built."""
-
-  def key_func(project):
-    if not project['history']:
-      return 2  # Order projects without history last.
-
-    if project['history'][0]['success']:
-      # Successful builds come second.
-      return 1
-
-    # Build failures come first.
-    return 0
-
-  projects.sort(key=key_func)
-
-
-def get_build(cloudbuild, image_project, build_id):
-  """Get build object from cloudbuild."""
-  return cloudbuild.projects().builds().get(projectId=image_project,
-                                            id=build_id).execute()
-
-
-def update_last_successful_build(project, build_tag):
-  """Update last successful build."""
-  last_successful_build = ndb.Key(LastSuccessfulBuild,
-                                  project['name'] + '-' + build_tag).get()
-  if not last_successful_build and 'last_successful_build' not in project:
-    return
-
-  if 'last_successful_build' not in project:
-    project['last_successful_build'] = {
-        'build_id': last_successful_build.build_id,
-        'finish_time': last_successful_build.finish_time
-    }
-  else:
-    if last_successful_build:
-      last_successful_build.build_id = project['last_successful_build'][
-          'build_id']
-      last_successful_build.finish_time = project['last_successful_build'][
-          'finish_time']
-    else:
-      last_successful_build = LastSuccessfulBuild(
-          id=project['name'] + '-' + build_tag,
-          project=project['name'],
-          build_id=project['last_successful_build']['build_id'],
-          finish_time=project['last_successful_build']['finish_time'])
-    last_successful_build.put()
-
-
-# pylint: disable=no-member
-def get_build_history(build_ids):
-  """Returns build object for the last finished build of project."""
-  credentials, image_project = google.auth.default()
-  cloudbuild = build('cloudbuild',
-                     'v1',
-                     credentials=credentials,
-                     cache_discovery=False)
-
-  history = []
-  last_successful_build = None
-
-  for build_id in reversed(build_ids):
-    project_build = get_build(cloudbuild, image_project, build_id)
-    if project_build['status'] not in ('SUCCESS', 'FAILURE', 'TIMEOUT'):
-      continue
-
-    if (not last_successful_build and is_build_successful(project_build)):
-      last_successful_build = {
-          'build_id': build_id,
-          'finish_time': project_build['finishTime'],
-      }
-
-    if not upload_log(build_id):
-      log_name = 'log-{0}'.format(build_id)
-      raise MissingBuildLogError('Missing build log file {0}'.format(log_name))
-
-    history.append({
-        'build_id': build_id,
-        'finish_time': project_build['finishTime'],
-        'success': is_build_successful(project_build)
-    })
-
-    if len(history) == MAX_BUILD_LOGS:
-      break
-
-  project = {'history': history}
-  if last_successful_build:
-    project['last_successful_build'] = last_successful_build
-  return project
-
-
-# pylint: disable=too-many-locals
-def update_build_status(build_tag, status_filename):
-  """Update build statuses."""
-  projects = []
-
-  def process_project(project_build):
-    """Process a project."""
-    project = get_build_history(project_build.build_ids)
-    project['name'] = project_build.project
-    print('Processing project', project['name'])
-    return project
-
-  with concurrent.futures.ThreadPoolExecutor(max_workers=8) as executor:
-    futures = []
-    for project_build in BuildsHistory.query(
-        BuildsHistory.build_tag == build_tag).order('project'):
-      futures.append(executor.submit(process_project, project_build))
-
-    for future in concurrent.futures.as_completed(futures):
-      project = future.result()
-      update_last_successful_build(project, build_tag)
-      projects.append(project)
-
-  sort_projects(projects)
-  data = {'projects': projects}
-  upload_status(data, status_filename)
-
-
-def update_build_badges(project, last_build_successful,
-                        last_coverage_build_successful):
-  """Upload badges of given project."""
-  badge = 'building'
-  # last_coverage_build_successful is False if there was an unsuccessful build
-  # and None if the target does not support coverage (e.g. Python or Java
-  # targets).
-  if last_coverage_build_successful is False:
-    badge = 'coverage_failing'
-  if not last_build_successful:
-    badge = 'failing'
-
-  print("[badge] {}: {}".format(project, badge))
-
-  for extension in BADGE_IMAGE_TYPES:
-    badge_name = '{badge}.{extension}'.format(badge=badge, extension=extension)
-
-    # Copy blob from badge_images/badge_name to badges/project/
-    blob_name = '{badge_dir}/{badge_name}'.format(badge_dir=BADGE_DIR,
-                                                  badge_name=badge_name)
-
-    destination_blob_name = '{badge_dir}/{project_name}.{extension}'.format(
-        badge_dir=DESTINATION_BADGE_DIR,
-        project_name=project,
-        extension=extension)
-
-    status_bucket = get_storage_client().get_bucket(STATUS_BUCKET)
-    badge_blob = status_bucket.blob(blob_name)
-    status_bucket.copy_blob(badge_blob,
-                            status_bucket,
-                            new_name=destination_blob_name)
-
-
-def upload_log(build_id):
-  """Upload log file to GCS."""
-  status_bucket = get_storage_client().get_bucket(STATUS_BUCKET)
-  gcb_bucket = get_storage_client().get_bucket(build_project.GCB_LOGS_BUCKET)
-  log_name = 'log-{0}.txt'.format(build_id)
-  log = gcb_bucket.blob(log_name)
-  dest_log = status_bucket.blob(log_name)
-
-  if not log.exists():
-    print('Failed to find build log {0}'.format(log_name), file=sys.stderr)
-    return False
-
-  if dest_log.exists():
-    return True
-
-  gcb_bucket.copy_blob(log, status_bucket)
-  return True
-
-
-# pylint: disable=no-member
-def update_status(event, context):
-  """Entry point for cloud function to update build statuses and badges."""
-  del context
-
-  if 'data' in event:
-    status_type = base64.b64decode(event['data']).decode()
-  else:
-    raise RuntimeError('No data')
-
-  if status_type == 'badges':
-    update_badges()
-    return
-
-  if status_type == 'fuzzing':
-    tag = build_project.FUZZING_BUILD_TAG
-    status_filename = FUZZING_STATUS_FILENAME
-  elif status_type == 'coverage':
-    tag = build_and_run_coverage.COVERAGE_BUILD_TAG
-    status_filename = COVERAGE_STATUS_FILENAME
-  else:
-    raise RuntimeError('Invalid build status type ' + status_type)
-
-  with ndb.Client().context():
-    update_build_status(tag, status_filename)
-
-
-def load_status_from_gcs(filename):
-  """Load statuses from bucket."""
-  status_bucket = get_storage_client().get_bucket(STATUS_BUCKET)
-  status = json.loads(status_bucket.blob(filename).download_as_string())
-  result = {}
-
-  for project in status['projects']:
-    if project['history']:
-      result[project['name']] = project['history'][0]['success']
-
-  return result
-
-
-def update_badges():
-  """Update badges."""
-  project_build_statuses = load_status_from_gcs(FUZZING_STATUS_FILENAME)
-  coverage_build_statuses = load_status_from_gcs(COVERAGE_STATUS_FILENAME)
-
-  with concurrent.futures.ThreadPoolExecutor(max_workers=32) as executor:
-    futures = []
-    with ndb.Client().context():
-      for project in Project.query():
-        if project.name not in project_build_statuses:
-          continue
-        # Certain projects (e.g. JVM and Python) do not have any coverage
-        # builds, but should still receive a badge.
-        coverage_build_status = None
-        if project.name in coverage_build_statuses:
-          coverage_build_status = coverage_build_statuses[project.name]
-
-        futures.append(
-            executor.submit(update_build_badges, project.name,
-                            project_build_statuses[project.name],
-                            coverage_build_status))
-    concurrent.futures.wait(futures)
diff --git a/infra/build/functions/update_build_status_test.py b/infra/build/functions/update_build_status_test.py
deleted file mode 100644
index 6784fac..0000000
--- a/infra/build/functions/update_build_status_test.py
+++ /dev/null
@@ -1,305 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Unit tests for Cloud Function update builds status."""
-import os
-import sys
-import unittest
-from unittest import mock
-from unittest.mock import MagicMock
-
-from google.cloud import ndb
-
-sys.path.append(os.path.dirname(__file__))
-# pylint: disable=wrong-import-position
-
-from datastore_entities import BuildsHistory
-from datastore_entities import LastSuccessfulBuild
-import test_utils
-import update_build_status
-
-# pylint: disable=no-member
-
-
-# pylint: disable=too-few-public-methods
-class MockGetBuild:
-  """Spoofing get_builds function."""
-
-  def __init__(self, builds):
-    self.builds = builds
-
-  def get_build(self, cloudbuild, image_project, build_id):
-    """Mimic build object retrieval."""
-    del cloudbuild, image_project
-    for build in self.builds:
-      if build['build_id'] == build_id:
-        return build
-
-    return None
-
-
-@mock.patch('google.auth.default', return_value=['temp', 'temp'])
-@mock.patch('update_build_status.build', return_value='cloudbuild')
-@mock.patch('update_build_status.upload_log')
-class TestGetBuildHistory(unittest.TestCase):
-  """Unit tests for get_build_history."""
-
-  def test_get_build_history(self, mocked_upload_log, mocked_cloud_build,
-                             mocked_google_auth):
-    """Test for get_build_steps."""
-    del mocked_cloud_build, mocked_google_auth
-    mocked_upload_log.return_value = True
-    builds = [{'build_id': '1', 'finishTime': 'test_time', 'status': 'SUCCESS'}]
-    mocked_get_build = MockGetBuild(builds)
-    update_build_status.get_build = mocked_get_build.get_build
-
-    expected_projects = {
-        'history': [{
-            'build_id': '1',
-            'finish_time': 'test_time',
-            'success': True
-        }],
-        'last_successful_build': {
-            'build_id': '1',
-            'finish_time': 'test_time'
-        }
-    }
-    self.assertDictEqual(update_build_status.get_build_history(['1']),
-                         expected_projects)
-
-  def test_get_build_history_missing_log(self, mocked_upload_log,
-                                         mocked_cloud_build,
-                                         mocked_google_auth):
-    """Test for missing build log file."""
-    del mocked_cloud_build, mocked_google_auth
-    builds = [{'build_id': '1', 'finishTime': 'test_time', 'status': 'SUCCESS'}]
-    mocked_get_build = MockGetBuild(builds)
-    update_build_status.get_build = mocked_get_build.get_build
-    mocked_upload_log.return_value = False
-    self.assertRaises(update_build_status.MissingBuildLogError,
-                      update_build_status.get_build_history, ['1'])
-
-  def test_get_build_history_no_last_success(self, mocked_upload_log,
-                                             mocked_cloud_build,
-                                             mocked_google_auth):
-    """Test when there is no last successful build."""
-    del mocked_cloud_build, mocked_google_auth
-    builds = [{'build_id': '1', 'finishTime': 'test_time', 'status': 'FAILURE'}]
-    mocked_get_build = MockGetBuild(builds)
-    update_build_status.get_build = mocked_get_build.get_build
-    mocked_upload_log.return_value = True
-
-    expected_projects = {
-        'history': [{
-            'build_id': '1',
-            'finish_time': 'test_time',
-            'success': False
-        }]
-    }
-    self.assertDictEqual(update_build_status.get_build_history(['1']),
-                         expected_projects)
-
-
-class TestSortProjects(unittest.TestCase):
-  """Unit tests for testing sorting functionality."""
-
-  def test_sort_projects(self):
-    """Test sorting functionality."""
-    projects = [{
-        'name': '1',
-        'history': []
-    }, {
-        'name': '2',
-        'history': [{
-            'success': True
-        }]
-    }, {
-        'name': '3',
-        'history': [{
-            'success': False
-        }]
-    }]
-    expected_order = ['3', '2', '1']
-    update_build_status.sort_projects(projects)
-    self.assertEqual(expected_order, [project['name'] for project in projects])
-
-
-class TestUpdateLastSuccessfulBuild(unittest.TestCase):
-  """Unit tests for updating last successful build."""
-
-  @classmethod
-  def setUpClass(cls):
-    cls.ds_emulator = test_utils.start_datastore_emulator()
-    test_utils.wait_for_emulator_ready(cls.ds_emulator, 'datastore',
-                                       test_utils.DATASTORE_READY_INDICATOR)
-    test_utils.set_gcp_environment()
-
-  def setUp(self):
-    test_utils.reset_ds_emulator()
-
-  def test_update_last_successful_build_new(self):
-    """When last successful build isn't available in datastore."""
-    with ndb.Client().context():
-      project = {
-          'name': 'test-project',
-          'last_successful_build': {
-              'build_id': '1',
-              'finish_time': 'test_time'
-          }
-      }
-      update_build_status.update_last_successful_build(project, 'fuzzing')
-      expected_build_id = '1'
-      self.assertEqual(
-          expected_build_id,
-          ndb.Key(LastSuccessfulBuild, 'test-project-fuzzing').get().build_id)
-
-  def test_update_last_successful_build_datastore(self):
-    """When last successful build is only available in datastore."""
-    with ndb.Client().context():
-      project = {'name': 'test-project'}
-      LastSuccessfulBuild(id='test-project-fuzzing',
-                          build_tag='fuzzing',
-                          project='test-project',
-                          build_id='1',
-                          finish_time='test_time').put()
-
-      update_build_status.update_last_successful_build(project, 'fuzzing')
-      expected_project = {
-          'name': 'test-project',
-          'last_successful_build': {
-              'build_id': '1',
-              'finish_time': 'test_time'
-          }
-      }
-      self.assertDictEqual(project, expected_project)
-
-  def test_update_last_successful_build(self):
-    """When last successful build is available at both places."""
-    with ndb.Client().context():
-      project = {
-          'name': 'test-project',
-          'last_successful_build': {
-              'build_id': '2',
-              'finish_time': 'test_time'
-          }
-      }
-      LastSuccessfulBuild(id='test-project-fuzzing',
-                          build_tag='fuzzing',
-                          project='test-project',
-                          build_id='1',
-                          finish_time='test_time').put()
-
-      update_build_status.update_last_successful_build(project, 'fuzzing')
-      expected_build_id = '2'
-      self.assertEqual(
-          expected_build_id,
-          ndb.Key(LastSuccessfulBuild, 'test-project-fuzzing').get().build_id)
-
-  @classmethod
-  def tearDownClass(cls):
-    test_utils.cleanup_emulator(cls.ds_emulator)
-
-
-class TestUpdateBuildStatus(unittest.TestCase):
-  """Unit test for update build status."""
-
-  @classmethod
-  def setUpClass(cls):
-    cls.ds_emulator = test_utils.start_datastore_emulator()
-    test_utils.wait_for_emulator_ready(cls.ds_emulator, 'datastore',
-                                       test_utils.DATASTORE_READY_INDICATOR)
-    test_utils.set_gcp_environment()
-
-  def setUp(self):
-    test_utils.reset_ds_emulator()
-
-  # pylint: disable=no-self-use
-  @mock.patch('google.auth.default', return_value=['temp', 'temp'])
-  @mock.patch('update_build_status.build', return_value='cloudbuild')
-  @mock.patch('update_build_status.upload_log')
-  def test_update_build_status(self, mocked_upload_log, mocked_cloud_build,
-                               mocked_google_auth):
-    """Testing update build status as a whole."""
-    del self, mocked_cloud_build, mocked_google_auth
-    update_build_status.upload_status = MagicMock()
-    mocked_upload_log.return_value = True
-    status_filename = 'status.json'
-    with ndb.Client().context():
-      BuildsHistory(id='test-project-1-fuzzing',
-                    build_tag='fuzzing',
-                    project='test-project-1',
-                    build_ids=['1']).put()
-
-      BuildsHistory(id='test-project-2-fuzzing',
-                    build_tag='fuzzing',
-                    project='test-project-2',
-                    build_ids=['2']).put()
-
-      BuildsHistory(id='test-project-3-fuzzing',
-                    build_tag='fuzzing',
-                    project='test-project-3',
-                    build_ids=['3']).put()
-
-      builds = [{
-          'build_id': '1',
-          'finishTime': 'test_time',
-          'status': 'SUCCESS'
-      }, {
-          'build_id': '2',
-          'finishTime': 'test_time',
-          'status': 'FAILURE'
-      }, {
-          'build_id': '3',
-          'status': 'WORKING'
-      }]
-      mocked_get_build = MockGetBuild(builds)
-      update_build_status.get_build = mocked_get_build.get_build
-
-      expected_data = {
-          'projects': [{
-              'history': [{
-                  'build_id': '2',
-                  'finish_time': 'test_time',
-                  'success': False
-              }],
-              'name': 'test-project-2'
-          }, {
-              'history': [{
-                  'build_id': '1',
-                  'finish_time': 'test_time',
-                  'success': True
-              }],
-              'last_successful_build': {
-                  'build_id': '1',
-                  'finish_time': 'test_time'
-              },
-              'name': 'test-project-1'
-          }, {
-              'history': [],
-              'name': 'test-project-3'
-          }]
-      }
-
-      update_build_status.update_build_status('fuzzing', 'status.json')
-      update_build_status.upload_status.assert_called_with(
-          expected_data, status_filename)
-
-  @classmethod
-  def tearDownClass(cls):
-    test_utils.cleanup_emulator(cls.ds_emulator)
-
-
-if __name__ == '__main__':
-  unittest.main(exit=False)
diff --git a/infra/build/request_all_builds.sh b/infra/build/request_all_builds.sh
deleted file mode 100755
index 1527386..0000000
--- a/infra/build/request_all_builds.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash -ex
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-for project in ../../projects/*; do
-  if [[ ! -f $project/Dockerfile ]]; then
-    continue
-  fi
-
-  ./request_build.sh $(basename $project) $1
-done
diff --git a/infra/build/request_build.sh b/infra/build/request_build.sh
deleted file mode 100755
index 36a9cb4..0000000
--- a/infra/build/request_build.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash -ex
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-if [ "$2" = "fuzzing" ]; then
-  topic=request-build
-elif [ "$2" = "coverage" ]; then
-  topic=request-coverage-build
-else
-  echo "Invalid build type $2."
-  exit 1
-fi
-
-gcloud pubsub topics publish $topic --message "$1" --project oss-fuzz
diff --git a/infra/build/status/deploy.sh b/infra/build/status/deploy.sh
deleted file mode 100755
index 060eba9..0000000
--- a/infra/build/status/deploy.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -ex
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-gsutil -h "Cache-Control:no-cache,max-age=0" -m cp -r bower_components index.html src manifest.json gs://oss-fuzz-build-logs
diff --git a/infra/build/status/index.html b/infra/build/status/index.html
deleted file mode 100644
index 25a3d8e..0000000
--- a/infra/build/status/index.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!-- Copyright 2020 Google Inc.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-     http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License. -->
-
-<!doctype html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
-    <title>OSS-Fuzz build status</title>
-    <meta name="description" content="OSS-Fuzz build status">
-
-    <!-- See https://goo.gl/OOhYW5 -->
-    <link rel="manifest" href="/manifest.json">
-
-    <script src="/bower_components/webcomponentsjs/webcomponents-loader.js"></script>
-
-
-    <link rel="import" href="/src/build-status/build-status.html">
-
-    <style>
-      body {
-        font-family: 'Roboto', 'Noto', sans-serif;
-        background: #f1f1f1;
-        margin: 0;
-      }
-    </style>
-  </head>
-  <body>
-    <build-status></build-status>
-  </body>
-</html>
diff --git a/infra/build/status/src/build-status/build-status.html b/infra/build/status/src/build-status/build-status.html
deleted file mode 100644
index 1170e57..0000000
--- a/infra/build/status/src/build-status/build-status.html
+++ /dev/null
@@ -1,355 +0,0 @@
-<!-- Copyright 2020 Google Inc.
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-     http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License. -->
-
-<link rel="import" href="../../bower_components/polymer/polymer-element.html">
-<link rel="import" href="../../bower_components/app-layout/app-drawer-layout/app-drawer-layout.html">
-<link rel="import" href="../../bower_components/app-layout/app-drawer/app-drawer.html">
-<link rel="import" href="../../bower_components/app-layout/app-scroll-effects/app-scroll-effects.html">
-<link rel="import" href="../../bower_components/app-layout/app-header/app-header.html">
-<link rel="import" href="../../bower_components/app-layout/app-header-layout/app-header-layout.html">
-<link rel="import" href="../../bower_components/app-layout/app-toolbar/app-toolbar.html">
-<link rel="import" href="../../bower_components/paper-item/paper-item.html">
-<link rel="import" href="../../bower_components/paper-item/paper-item-body.html">
-<link rel="import" href="../../bower_components/paper-button/paper-button.html">
-<link rel="import" href="../../bower_components/paper-card/paper-card.html">
-<link rel="import" href="../../bower_components/paper-tabs/paper-tabs.html">
-<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
-<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
-<link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">
-<link rel="import" href="../../bower_components/iron-flex-layout/iron-flex-layout-classes.html">
-<link rel="import" href="../../bower_components/polymer/lib/elements/dom-if.html">
-<link rel="import" href="../../bower_components/polymer/lib/elements/dom-repeat.html">
-<link rel="import" href="../../bower_components/app-route/app-location.html">
-<link rel="import" href="../../bower_components/app-route/app-route.html">
-
-<dom-module id="build-status">
-  <template>
-    <app-location route="{{route}}" use-hash-as-path></app-location>
-    <app-route route="{{route}}"
-      pattern=":project_name"
-      data="{{routeData}}">
-    </app-route>
-    <style is="custom-style" include="iron-flex iron-flex-alignment">
-    <style>
-      .paper-item-link {
-        color: inherit;
-        text-decoration: none;
-      }
-
-      a {
-        text-decoration: none;
-      }
-
-      app-header {
-        background-color: #2ba4ad;
-        color: #fff;
-      }
-
-      paper-button {
-        font-weight: normal;
-        font-size: 14px;
-        -webkit-font-smoothing: antialiased;
-      }
-
-      paper-button.green:hover {
-        background-color: var(--paper-green-400);
-      }
-
-      paper-button.green {
-        background-color: var(--paper-green-500);
-        color: white;
-      }
-
-      paper-card {
-        margin: 0.5em;
-      }
-
-      paper-item {
-        cursor: pointer;
-      }
-
-      paper-tabs {
-        -webkit-font-smoothing: antialiased;
-        width: 100%;
-        margin-bottom: 1px;
-        height: 40px;
-      }
-
-      :host {
-        display: block;
-      }
-
-      .icon-error {
-        color: #e83030;
-        margin-right: 0.2em;
-      }
-
-      .icon-success {
-        color: var(--paper-green-500);
-        margin-right: 0.2em;
-      }
-
-      .icon-waiting {
-        color: var(--paper-yellow-500);
-        margin-right: 0.2em;
-      }
-
-      .projects {
-        min-width: 10em;
-      }
-
-      .log {
-        width: 80%;
-        display: inline;
-      }
-
-      .buildHistory {
-        margin: 20px 0;
-      }
-
-      pre {
-        white-space: pre-wrap;
-      }
-    </style>
-    <app-header reveals>
-      <app-toolbar>
-        <div main-title>OSS-Fuzz build status</div>
-        <div><small>(Updated every 30 minutes)</small></div>
-      </app-toolbar>
-    </app-header>
-    <div class="layout horizontal">
-      <paper-card class="projects">
-        <div class="card-tabs">
-          <paper-tabs selected="fuzzing" id="build_type" attr-for-selected="type" on-click="onChanged">
-            <paper-tab type="fuzzing">Fuzzing Builds</paper-tab>
-            <paper-tab type="coverage">Coverage Builds</paper-tab>
-          </paper-tabs>
-        </div>
-        <div class="card-content">
-          <template is="dom-repeat" items="[[status.projects]]" as="project">
-            <paper-item on-tap="onTap">
-              <paper-item-body two-line>
-                <div>
-                  <template is="dom-if" if="[[!isSuccessful(project)]]">
-                    <iron-icon class="icon-error" icon="icons:error"></iron-icon>
-                  </template>
-                  <template is="dom-if" if="[[!project.history.length]]">
-                    <iron-icon class="icon-waiting" icon="icons:error"></iron-icon>
-                  </template>
-                  [[project.name]]
-                </div>
-                <template is="dom-if" if="[[project.history.length]]">
-                 <div secondary title$="Last built [[toLocalDate(project.finish_time)]]">
-                    Last built [[toLocalDate(project.history.0.finish_time)]]
-                 </div>
-                </template>
-                <template is="dom-if" if="[[!project.history.length]]">
-                  <div secondary title$="Not built yet">
-                    Not built yet
-                  </div>
-                </template>
-              </paper-item-body>
-            </paper-item>
-          </template>
-        </div>
-      </paper-card>
-      <paper-card class="log">
-        <div class="card-content">
-          <template is="dom-if" if="[[!project]]">
-            Select a project to see logs.
-          </template>
-          <template is="dom-if" if="[[build_history.length]]">
-            Last Successful build:
-            <template is="dom-if" if="[[last_successful_build]]">
-              <paper-button raised on-click="onLastBuildSuccessful" class="green">
-                [[getLocalDate(last_successful_build.finish_time)]]
-              </paper-button>
-            </template>
-            <template is="dom-if" if="[[!last_successful_build]]">
-              None yet.
-            </template>
-              <div class="buildHistory">
-                Build History: <br>
-                <template is="dom-repeat" items="[[build_history]]" as="history">
-                  <paper-button raised on-click="onBuildHistory">
-                    <template is="dom-if" if="[[history.success]]">
-                      <iron-icon class="icon-success" icon="icons:done"></iron-icon>
-                    </template>
-                    <template is="dom-if" if="[[!history.success]]">
-                      <iron-icon class="icon-error" icon="icons:error"></iron-icon>
-                    </template>
-                    [[getLocalDate(history.finish_time)]]
-                  </paper-button>
-                </template>
-              </div>
-              <template is="dom-if" if=[[!finish_time]]>
-              <pre>Select a build to see logs.</pre>
-            </template>
-              <template is="dom-if" if="[[finish_time]]">
-                <a href="/log-[[build_id]].txt" target="_blank" tabindex="-1">
-                  <paper-button raised>
-                    Open in new tab
-                    <iron-icon icon="icons:link"></iron-iron>
-                  </paper-button>
-                </a>
-                <pre>Finish Time : [[finish_time]]</pre>
-              </template>
-          </template>
-          <template is="dom-if" if="[[loading_log]]">
-            Loading...
-          </template>
-          <pre>[[log]]</pre>
-        </div>
-      </paper-card>
-    </div>
-      <iron-ajax id="status_fuzzing" auto handle-as="json" url="/status.json" on-response="onResponseForFuzzing"></iron-ajax>
-      <iron-ajax id="status_coverage" auto handle-as="json" url="/status-coverage.json" on-response="onResponseForCoverage"></iron-ajax>
-    <iron-ajax id="logxhr" handle-as="text" on-response="onLogResponse"></iron-ajax>
-  </template>
-
-  <script>
-    /** @polymerElement */
-    class BuildStatus extends Polymer.Element {
-      static get is() {
-        return "build-status";
-      }
-      static get properties() {
-        return {
-          log: {
-            type: String,
-            value: '',
-          },
-          loading_log: {
-            type: Boolean,
-            value: false,
-          },
-          finish_time: {
-            type: String,
-            value: '',
-          }
-        }
-      }
-      static get observers() {
-        return ["_routeChanged(route.*)"]
-      }
-
-      _routeChanged() {
-        if(!this.routeData.project_name)
-          this.project = "";
-        if (!this.status || !this.routeData.project_name) {
-          // If our status json is loaded and there is a project_name specified
-          // in the URL, we can proceed to load that project's log.
-          return
-        }
-        this.project = this.getProjectByName(this.routeData.project_name);
-        this.build_history = this.project.history;
-        if (this.project['last_successful_build']){
-          this.last_successful_build = this.project.last_successful_build;
-        } else{
-          this.last_successful_build = "";
-        }
-        this.log = "";
-        this.finish_time = "";
-      }
-
-      getProjectByName(project_name) {
-        return this.status.projects.find(
-          p => p.name === project_name
-        );
-      }
-
-      onResponseForFuzzing(e) {
-        this.status_fuzzing = e.detail.response;
-        if (!this.status) {
-          // Show status of the fuzzing builds by default.
-          this.status = this.status_fuzzing;
-          // Manually invoke a _routeChanged call, in order to load the log for
-          // someone going directly to a project's URL.
-          this._routeChanged();
-        }
-      }
-
-      onResponseForCoverage(e) {
-        this.status_coverage = e.detail.response;
-      }
-
-      onLogResponse(e) {
-        this.log = e.detail.response;
-        this.loading_log = false;
-      }
-
-      onTap(e) {
-        // Change the route, this should auto-magically update the url in the
-        // browser and invoke the _routeChanged method.
-        this.set("route.path", e.model.project.name);
-      }
-
-      onChanged(e) {
-        if (this.$.build_type.selected == "coverage") {
-          this.status = this.status_coverage;
-        } else {
-          this.status = this.status_fuzzing;
-        }
-      }
-
-      requestLog() {
-        var ajax = this.$.logxhr;
-        ajax.url = "/log-" + this.build_id + ".txt";
-        ajax.generateRequest();
-        this.loading_log = true;
-        this.log = "";
-        this.finish_time = this.toLocalDate(this.finish_time);
-      }
-
-      onLastBuildSuccessful(e) {
-        this.build_id = this.last_successful_build.build_id
-        this.finish_time = this.last_successful_build.finish_time
-        this.requestLog()
-      }
-
-      onBuildHistory(e) {
-        this.build_id = e.model.history.build_id
-        this.finish_time = e.model.history.finish_time
-        this.requestLog()
-      }
-
-      showLog(log) {
-        return log !== "";
-      }
-
-      showTabs() {
-        return this.tab_count !== 0;
-      }
-
-      toLocalDate(str) {
-        let date = new Date(str);
-        let ds = date.toString();
-        let timezone = ds.substring(ds.indexOf("("));
-        return date.toLocaleString() + " " + timezone;
-      }
-
-      pad(n) {
-        return n<10 ? '0'+n : n;
-      }
-
-      getLocalDate(str) {
-        let date = new Date(str);
-        return date.toLocaleString()
-      }
-
-      isSuccessful(project) {
-        return (!project.history.length || project.history[0].success)
-      }
-    }
-
-    window.customElements.define(BuildStatus.is, BuildStatus)
-  </script>
-</dom-module>
diff --git a/infra/build_fuzzers.Dockerfile b/infra/build_fuzzers.Dockerfile
deleted file mode 100644
index df06ff7..0000000
--- a/infra/build_fuzzers.Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-# Docker image to run the CIFuzz action build_fuzzers in.
-
-FROM gcr.io/oss-fuzz-base/cifuzz-base
-
-# Python file to execute when the docker container starts up
-# We can't use the env var $OSS_FUZZ_ROOT here. Since it's a constant env var,
-# just expand to '/opt/oss-fuzz'.
-ENTRYPOINT ["python3", "/opt/oss-fuzz/infra/cifuzz/build_fuzzers_entrypoint.py"]
-
-# Update infra source code.
-ADD . ${OSS_FUZZ_ROOT}/infra
diff --git a/infra/build_specified_commit.py b/infra/build_specified_commit.py
index b2130ea..823fd48 100644
--- a/infra/build_specified_commit.py
+++ b/infra/build_specified_commit.py
@@ -17,275 +17,38 @@
 from a specific point in time. This feature can be used for implementations
 like continuious integration fuzzing and bisection to find errors
 """
-import argparse
-import bisect
-import datetime
-from distutils import spawn
 import os
 import collections
-import json
 import logging
 import re
-import shutil
-import tempfile
 
 import helper
-import repo_manager
-import retry
 import utils
 
 BuildData = collections.namedtuple(
     'BuildData', ['project_name', 'engine', 'sanitizer', 'architecture'])
 
-_GIT_DIR_MARKER = 'gitdir: '
-_IMAGE_BUILD_TRIES = 3
 
-
-class BaseBuilderRepo:
-  """Repo of base-builder images."""
-
-  def __init__(self):
-    self.timestamps = []
-    self.digests = []
-
-  def add_digest(self, timestamp, digest):
-    """Add a digest."""
-    self.timestamps.append(timestamp)
-    self.digests.append(digest)
-
-  def find_digest(self, timestamp):
-    """Find the latest image before the given timestamp."""
-    index = bisect.bisect_right(self.timestamps, timestamp)
-    if index > 0:
-      return self.digests[index - 1]
-
-    logging.error('Failed to find suitable base-builder.')
-    return None
-
-
-def _replace_gitdir(src_dir, file_path):
-  """Replace gitdir with a relative path."""
-  with open(file_path) as handle:
-    lines = handle.readlines()
-
-  new_lines = []
-  for line in lines:
-    if line.startswith(_GIT_DIR_MARKER):
-      absolute_path = line[len(_GIT_DIR_MARKER):].strip()
-      if not os.path.isabs(absolute_path):
-        # Already relative.
-        return
-
-      current_dir = os.path.dirname(file_path)
-      # Rebase to /src rather than the host src dir.
-      base_dir = current_dir.replace(src_dir, '/src')
-      relative_path = os.path.relpath(absolute_path, base_dir)
-      logging.info('Replacing absolute submodule gitdir from %s to %s',
-                   absolute_path, relative_path)
-
-      line = _GIT_DIR_MARKER + relative_path
-
-    new_lines.append(line)
-
-  with open(file_path, 'w') as handle:
-    handle.write(''.join(new_lines))
-
-
-def _make_gitdirs_relative(src_dir):
-  """Make gitdirs relative."""
-  for root_dir, _, files in os.walk(src_dir):
-    for filename in files:
-      if filename != '.git':
-        continue
-
-      file_path = os.path.join(root_dir, filename)
-      _replace_gitdir(src_dir, file_path)
-
-
-def _replace_base_builder_digest(dockerfile_path, digest):
-  """Replace the base-builder digest in a Dockerfile."""
-  with open(dockerfile_path) as handle:
-    lines = handle.readlines()
-
-  new_lines = []
-  for line in lines:
-    if line.strip().startswith('FROM'):
-      line = 'FROM gcr.io/oss-fuzz-base/base-builder@' + digest + '\n'
-
-    new_lines.append(line)
-
-  with open(dockerfile_path, 'w') as handle:
-    handle.write(''.join(new_lines))
-
-
-def copy_src_from_docker(project_name, host_dir):
-  """Copy /src from docker to the host."""
-  # Copy /src to host.
-  image_name = 'gcr.io/oss-fuzz/' + project_name
-  src_dir = os.path.join(host_dir, 'src')
-  if os.path.exists(src_dir):
-    shutil.rmtree(src_dir, ignore_errors=True)
-
-  docker_args = [
-      '-v',
-      host_dir + ':/out',
-      image_name,
-      'cp',
-      '-r',
-      '-p',
-      '/src',
-      '/out',
-  ]
-  helper.docker_run(docker_args)
-
-  # Submodules can have gitdir entries which point to absolute paths. Make them
-  # relative, as otherwise we can't do operations on the checkout on the host.
-  _make_gitdirs_relative(src_dir)
-  return src_dir
-
-
-@retry.wrap(_IMAGE_BUILD_TRIES, 2)
-def _build_image_with_retries(project_name):
-  """Build image with retries."""
-  return helper.build_image_impl(project_name)
-
-
-def get_required_post_checkout_steps(dockerfile_path):
-  """Get required post checkout steps (best effort)."""
-
-  checkout_pattern = re.compile(r'\s*RUN\s*(git|svn|hg)')
-
-  # If the build.sh is copied from upstream, we need to copy it again after
-  # changing the revision to ensure correct building.
-  post_run_pattern = re.compile(r'\s*RUN\s*(.*build\.sh.*(\$SRC|/src).*)')
-
-  with open(dockerfile_path) as handle:
-    lines = handle.readlines()
-
-  subsequent_run_cmds = []
-  for i, line in enumerate(lines):
-    if checkout_pattern.match(line):
-      subsequent_run_cmds = []
-      continue
-
-    match = post_run_pattern.match(line)
-    if match:
-      workdir = helper.workdir_from_lines(lines[:i])
-      command = match.group(1)
-      subsequent_run_cmds.append((workdir, command))
-
-  return subsequent_run_cmds
-
-
-# pylint: disable=too-many-locals
-def build_fuzzers_from_commit(commit,
-                              build_repo_manager,
-                              host_src_path,
-                              build_data,
-                              base_builder_repo=None):
-  """Builds a OSS-Fuzz fuzzer at a specific commit SHA.
+def build_fuzzers_from_commit(commit, build_repo_manager, build_data):
+  """Builds a OSS-Fuzz fuzzer at a  specific commit SHA.
 
   Args:
     commit: The commit SHA to build the fuzzers at.
     build_repo_manager: The OSS-Fuzz project's repo manager to be built at.
     build_data: A struct containing project build information.
-    base_builder_repo: A BaseBuilderRepo.
   Returns:
     0 on successful build or error code on failure.
   """
-  oss_fuzz_repo_manager = repo_manager.RepoManager(helper.OSS_FUZZ_DIR)
-  num_retry = 1
-
-  def cleanup():
-    # Re-copy /src for a clean checkout every time.
-    copy_src_from_docker(build_data.project_name,
-                         os.path.dirname(host_src_path))
-    build_repo_manager.fetch_all_remotes()
-
-  projects_dir = os.path.join('projects', build_data.project_name)
-  dockerfile_path = os.path.join(projects_dir, 'Dockerfile')
-
-  for i in range(num_retry + 1):
-    build_repo_manager.checkout_commit(commit, clean=False)
-
-    post_checkout_steps = get_required_post_checkout_steps(dockerfile_path)
-    for workdir, post_checkout_step in post_checkout_steps:
-      logging.info('Running post-checkout step `%s` in %s.', post_checkout_step,
-                   workdir)
-      helper.docker_run([
-          '-w',
-          workdir,
-          '-v',
-          host_src_path + ':' + '/src',
-          'gcr.io/oss-fuzz/' + build_data.project_name,
-          '/bin/bash',
-          '-c',
-          post_checkout_step,
-      ])
-
-    result = helper.build_fuzzers_impl(project_name=build_data.project_name,
-                                       clean=True,
-                                       engine=build_data.engine,
-                                       sanitizer=build_data.sanitizer,
-                                       architecture=build_data.architecture,
-                                       env_to_add=None,
-                                       source_path=host_src_path,
-                                       mount_location='/src')
-    if result == 0 or i == num_retry:
-      break
-
-    # Retry with an OSS-Fuzz builder container that's closer to the project
-    # commit date.
-    commit_date = build_repo_manager.commit_date(commit)
-
-    # Find first change in the projects/<PROJECT> directory before the project
-    # commit date.
-    oss_fuzz_commit, _, _ = oss_fuzz_repo_manager.git([
-        'log', '--before=' + commit_date.isoformat(), '-n1', '--format=%H',
-        projects_dir
-    ],
-                                                      check_result=True)
-    oss_fuzz_commit = oss_fuzz_commit.strip()
-    if not oss_fuzz_commit:
-      logging.info(
-          'Could not find first OSS-Fuzz commit prior to upstream commit. '
-          'Falling back to oldest integration commit.')
-
-      # Find the oldest commit.
-      oss_fuzz_commit, _, _ = oss_fuzz_repo_manager.git(
-          ['log', '--reverse', '--format=%H', projects_dir], check_result=True)
-
-      oss_fuzz_commit = oss_fuzz_commit.splitlines()[0].strip()
-
-    if not oss_fuzz_commit:
-      logging.error('Failed to get oldest integration commit.')
-      break
-
-    logging.info('Build failed. Retrying on earlier OSS-Fuzz commit %s.',
-                 oss_fuzz_commit)
-
-    # Check out projects/<PROJECT> dir to the commit that was found.
-    oss_fuzz_repo_manager.git(['checkout', oss_fuzz_commit, projects_dir],
-                              check_result=True)
-
-    # Also use the closest base-builder we can find.
-    if base_builder_repo:
-      base_builder_digest = base_builder_repo.find_digest(commit_date)
-      if not base_builder_digest:
-        return False
-
-      logging.info('Using base-builder with digest %s.', base_builder_digest)
-      _replace_base_builder_digest(dockerfile_path, base_builder_digest)
-
-    # Rebuild image and re-copy src dir since things in /src could have changed.
-    if not _build_image_with_retries(build_data.project_name):
-      logging.error('Failed to rebuild image.')
-      return False
-
-    cleanup()
-
-  cleanup()
-  return result == 0
+  build_repo_manager.checkout_commit(commit)
+  return helper.build_fuzzers_impl(project_name=build_data.project_name,
+                                   clean=True,
+                                   engine=build_data.engine,
+                                   sanitizer=build_data.sanitizer,
+                                   architecture=build_data.architecture,
+                                   env_to_add=None,
+                                   source_path=build_repo_manager.repo_dir,
+                                   mount_location=os.path.join(
+                                       '/src', build_repo_manager.repo_name))
 
 
 def detect_main_repo(project_name, repo_name=None, commit=None):
@@ -313,99 +76,20 @@
 
   # Change to oss-fuzz main directory so helper.py runs correctly.
   utils.chdir_to_root()
-  if not _build_image_with_retries(project_name):
+  if not helper.build_image_impl(project_name):
     logging.error('Error: building %s image failed.', project_name)
     return None, None
   docker_image_name = 'gcr.io/oss-fuzz/' + project_name
   command_to_run = [
       'docker', 'run', '--rm', '-t', docker_image_name, 'python3',
-      os.path.join('/opt', 'cifuzz', 'detect_repo.py')
+      os.path.join('/src', 'detect_repo.py')
   ]
   if repo_name:
     command_to_run.extend(['--repo_name', repo_name])
   else:
     command_to_run.extend(['--example_commit', commit])
-  out, _, _ = utils.execute(command_to_run)
+  out, _ = utils.execute(command_to_run)
   match = re.search(r'\bDetected repo: ([^ ]+) ([^ ]+)', out.rstrip())
   if match and match.group(1) and match.group(2):
     return match.group(1), match.group(2)
-
-  logging.error('Failed to detect repo:\n%s', out)
   return None, None
-
-
-def load_base_builder_repo():
-  """Get base-image digests."""
-  gcloud_path = spawn.find_executable('gcloud')
-  if not gcloud_path:
-    logging.warning('gcloud not found in PATH.')
-    return None
-
-  result, _, _ = utils.execute([
-      gcloud_path,
-      'container',
-      'images',
-      'list-tags',
-      'gcr.io/oss-fuzz-base/base-builder',
-      '--format=json',
-      '--sort-by=timestamp',
-  ],
-                               check_result=True)
-  result = json.loads(result)
-
-  repo = BaseBuilderRepo()
-  for image in result:
-    timestamp = datetime.datetime.fromisoformat(
-        image['timestamp']['datetime']).astimezone(datetime.timezone.utc)
-    repo.add_digest(timestamp, image['digest'])
-
-  return repo
-
-
-def main():
-  """Main function."""
-  logging.getLogger().setLevel(logging.INFO)
-
-  parser = argparse.ArgumentParser(
-      description='Build fuzzers at a specific commit')
-  parser.add_argument('--project_name',
-                      help='The name of the project where the bug occurred.',
-                      required=True)
-  parser.add_argument('--commit',
-                      help='The newest commit SHA to be bisected.',
-                      required=True)
-  parser.add_argument('--engine',
-                      help='The default is "libfuzzer".',
-                      default='libfuzzer')
-  parser.add_argument('--sanitizer',
-                      default='address',
-                      help='The default is "address".')
-  parser.add_argument('--architecture', default='x86_64')
-
-  args = parser.parse_args()
-
-  repo_url, repo_path = detect_main_repo(args.project_name, commit=args.commit)
-
-  if not repo_url or not repo_path:
-    raise ValueError('Main git repo can not be determined.')
-
-  with tempfile.TemporaryDirectory() as tmp_dir:
-    host_src_dir = copy_src_from_docker(args.project_name, tmp_dir)
-    build_repo_manager = repo_manager.RepoManager(
-        os.path.join(host_src_dir, os.path.basename(repo_path)))
-    base_builder_repo = load_base_builder_repo()
-
-    build_data = BuildData(project_name=args.project_name,
-                           engine=args.engine,
-                           sanitizer=args.sanitizer,
-                           architecture=args.architecture)
-    if not build_fuzzers_from_commit(args.commit,
-                                     build_repo_manager,
-                                     host_src_dir,
-                                     build_data,
-                                     base_builder_repo=base_builder_repo):
-      raise RuntimeError('Failed to build.')
-
-
-if __name__ == '__main__':
-  main()
diff --git a/infra/build_specified_commit_test.py b/infra/build_specified_commit_test.py
index a865045..808bcc2 100644
--- a/infra/build_specified_commit_test.py
+++ b/infra/build_specified_commit_test.py
@@ -31,27 +31,21 @@
 TEST_DIR_PATH = os.path.dirname(os.path.realpath(__file__))
 
 
-@unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                 'INTEGRATION_TESTS=1 not set')
-class BuildImageIntegrationTest(unittest.TestCase):
-  """Tests if an image can be built from different states e.g. a commit."""
+class BuildImageIntegrationTests(unittest.TestCase):
+  """Testing if an image can be built from different states e.g. a commit."""
 
-  @unittest.skip('Test is failing (spuriously?).')
   def test_build_fuzzers_from_commit(self):
-    """Tests if the fuzzers can build at a specified commit.
+    """Tests if the fuzzers can build at a proper commit.
 
     This is done by using a known regression range for a specific test case.
     The old commit should show the error when its fuzzers run and the new one
     should not.
     """
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      test_case = test_repos.TEST_REPOS[1]
-      self.assertTrue(helper.build_image_impl(test_case.project_name))
-      host_src_dir = build_specified_commit.copy_src_from_docker(
-          test_case.project_name, tmp_dir)
 
-      test_repo_manager = repo_manager.clone_repo_and_get_manager(
-          test_case.git_url, host_src_dir, test_case.oss_repo_name)
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      test_case = test_repos.TEST_REPOS[0]
+      test_repo_manager = repo_manager.RepoManager(
+          test_case.git_url, tmp_dir, repo_name=test_case.oss_repo_name)
       build_data = build_specified_commit.BuildData(
           sanitizer='address',
           architecture='x86_64',
@@ -60,13 +54,13 @@
 
       build_specified_commit.build_fuzzers_from_commit(test_case.old_commit,
                                                        test_repo_manager,
-                                                       host_src_dir, build_data)
+                                                       build_data)
       old_error_code = helper.reproduce_impl(test_case.project_name,
                                              test_case.fuzz_target, False, [],
                                              [], test_case.test_case_path)
       build_specified_commit.build_fuzzers_from_commit(test_case.new_commit,
                                                        test_repo_manager,
-                                                       host_src_dir, build_data)
+                                                       build_data)
       new_error_code = helper.reproduce_impl(test_case.project_name,
                                              test_case.fuzz_target, False, [],
                                              [], test_case.test_case_path)
@@ -74,17 +68,12 @@
 
   def test_detect_main_repo_from_commit(self):
     """Test the detect main repo function from build specific commit module."""
-    # TODO(metzman): Fix these tests so they don't randomly break because of
-    # changes in the outside world.
     for example_repo in test_repos.TEST_REPOS:
-      if example_repo.new_commit:
-        # TODO(metzman): This function calls _build_image_with_retries which
-        # has a long delay (30 seconds). Figure out how to make this quicker.
-        repo_origin, repo_name = build_specified_commit.detect_main_repo(
-            example_repo.project_name, commit=example_repo.new_commit)
-        self.assertEqual(repo_origin, example_repo.git_url)
-        self.assertEqual(repo_name,
-                         os.path.join('/src', example_repo.oss_repo_name))
+      repo_origin, repo_name = build_specified_commit.detect_main_repo(
+          example_repo.project_name, commit=example_repo.new_commit)
+      self.assertEqual(repo_origin, example_repo.git_url)
+      self.assertEqual(repo_name,
+                       os.path.join('/src', example_repo.oss_repo_name))
 
     repo_origin, repo_name = build_specified_commit.detect_main_repo(
         test_repos.INVALID_REPO.project_name,
@@ -95,16 +84,11 @@
   def test_detect_main_repo_from_name(self):
     """Test the detect main repo function from build specific commit module."""
     for example_repo in test_repos.TEST_REPOS:
-      if example_repo.project_name == 'gonids':
-        # It's unclear how this test ever passed, but we can't infer the repo
-        # because gonids doesn't really check it out, it uses "go get".
-        continue
       repo_origin, repo_name = build_specified_commit.detect_main_repo(
           example_repo.project_name, repo_name=example_repo.git_repo_name)
       self.assertEqual(repo_origin, example_repo.git_url)
-      self.assertEqual(
-          repo_name,
-          os.path.join(example_repo.image_location, example_repo.oss_repo_name))
+      self.assertEqual(repo_name,
+                       os.path.join('/src', example_repo.oss_repo_name))
 
     repo_origin, repo_name = build_specified_commit.detect_main_repo(
         test_repos.INVALID_REPO.project_name,
@@ -114,6 +98,7 @@
 
 
 if __name__ == '__main__':
+
   # Change to oss-fuzz main directory so helper.py runs correctly.
   if os.getcwd() != os.path.dirname(TEST_DIR_PATH):
     os.chdir(os.path.dirname(TEST_DIR_PATH))
diff --git a/infra/ci/build.py b/infra/ci/build.py
deleted file mode 100755
index addeb78..0000000
--- a/infra/ci/build.py
+++ /dev/null
@@ -1,262 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Build modified projects."""
-
-from __future__ import print_function
-
-import enum
-import os
-import re
-import sys
-import subprocess
-import yaml
-
-CANARY_PROJECT = 'skcms'
-
-DEFAULT_ARCHITECTURES = ['x86_64']
-DEFAULT_ENGINES = ['afl', 'honggfuzz', 'libfuzzer']
-DEFAULT_SANITIZERS = ['address', 'undefined']
-
-# Languages from project.yaml that have code coverage support.
-LANGUAGES_WITH_COVERAGE_SUPPORT = ['c', 'c++', 'go', 'rust']
-
-
-def get_changed_files_output():
-  """Returns the output of a git command that discovers changed files."""
-  branch_commit_hash = subprocess.check_output(
-      ['git', 'merge-base', 'FETCH_HEAD', 'origin/HEAD']).strip().decode()
-
-  return subprocess.check_output(
-      ['git', 'diff', '--name-only', branch_commit_hash + '..']).decode()
-
-
-def get_modified_buildable_projects():
-  """Returns a list of all the projects modified in this commit that have a
-  build.sh file."""
-  git_output = get_changed_files_output()
-  projects_regex = '.*projects/(?P<name>.*)/.*\n'
-  modified_projects = set(re.findall(projects_regex, git_output))
-  projects_dir = os.path.join(get_oss_fuzz_root(), 'projects')
-  # Filter out projects without Dockerfile files since new projects and reverted
-  # projects frequently don't have them. In these cases we don't want Travis's
-  # builds to fail.
-  modified_buildable_projects = []
-  for project in modified_projects:
-    if not os.path.exists(os.path.join(projects_dir, project, 'Dockerfile')):
-      print('Project {0} does not have Dockerfile. skipping build.'.format(
-          project))
-      continue
-    modified_buildable_projects.append(project)
-  return modified_buildable_projects
-
-
-def get_oss_fuzz_root():
-  """Get the absolute path of the root of the oss-fuzz checkout."""
-  script_path = os.path.realpath(__file__)
-  return os.path.abspath(
-      os.path.dirname(os.path.dirname(os.path.dirname(script_path))))
-
-
-def execute_helper_command(helper_command):
-  """Execute |helper_command| using helper.py."""
-  root = get_oss_fuzz_root()
-  script_path = os.path.join(root, 'infra', 'helper.py')
-  command = ['python', script_path] + helper_command
-  print('Running command: %s' % ' '.join(command))
-  subprocess.check_call(command)
-
-
-def build_fuzzers(project, engine, sanitizer, architecture):
-  """Execute helper.py's build_fuzzers command on |project|. Build the fuzzers
-  with |engine| and |sanitizer| for |architecture|."""
-  execute_helper_command([
-      'build_fuzzers', project, '--engine', engine, '--sanitizer', sanitizer,
-      '--architecture', architecture
-  ])
-
-
-def check_build(project, engine, sanitizer, architecture):
-  """Execute helper.py's check_build command on |project|, assuming it was most
-  recently built with |engine| and |sanitizer| for |architecture|."""
-  execute_helper_command([
-      'check_build', project, '--engine', engine, '--sanitizer', sanitizer,
-      '--architecture', architecture
-  ])
-
-
-def should_build_coverage(project_yaml):
-  """Returns True if a coverage build should be done based on project.yaml
-  contents."""
-  # Enable coverage builds on projects that use engines. Those that don't use
-  # engines shouldn't get coverage builds.
-  engines = project_yaml.get('fuzzing_engines', DEFAULT_ENGINES)
-  engineless = 'none' in engines
-  if engineless:
-    assert_message = ('Forbidden to specify multiple engines for '
-                      '"fuzzing_engines" if "none" is specified.')
-    assert len(engines) == 1, assert_message
-    return False
-
-  language = project_yaml.get('language')
-  if language not in LANGUAGES_WITH_COVERAGE_SUPPORT:
-    print(('Project is written in "{language}", '
-           'coverage is not supported yet.').format(language=language))
-    return False
-
-  return True
-
-
-def should_build(project_yaml):
-  """Returns True on if the build specified is enabled in the project.yaml."""
-
-  if os.getenv('SANITIZER') == 'coverage':
-    # This assumes we only do coverage builds with libFuzzer on x86_64.
-    return should_build_coverage(project_yaml)
-
-  def is_enabled(env_var, yaml_name, defaults):
-    """Is the value of |env_var| enabled in |project_yaml| (in the |yaml_name|
-    section)? Uses |defaults| if |yaml_name| section is unspecified."""
-    return os.getenv(env_var) in project_yaml.get(yaml_name, defaults)
-
-  return (is_enabled('ENGINE', 'fuzzing_engines', DEFAULT_ENGINES) and
-          is_enabled('SANITIZER', 'sanitizers', DEFAULT_SANITIZERS) and
-          is_enabled('ARCHITECTURE', 'architectures', DEFAULT_ARCHITECTURES))
-
-
-def build_project(project):
-  """Do the build of |project| that is specified by the environment variables -
-  SANITIZER, ENGINE, and ARCHITECTURE."""
-  root = get_oss_fuzz_root()
-  project_yaml_path = os.path.join(root, 'projects', project, 'project.yaml')
-  with open(project_yaml_path) as file_handle:
-    project_yaml = yaml.safe_load(file_handle)
-
-  if project_yaml.get('disabled', False):
-    print('Project {0} is disabled, skipping build.'.format(project))
-    return
-
-  engine = os.getenv('ENGINE')
-  sanitizer = os.getenv('SANITIZER')
-  architecture = os.getenv('ARCHITECTURE')
-
-  if not should_build(project_yaml):
-    print(('Specified build: engine: {0}, sanitizer: {1}, architecture: {2} '
-           'not enabled for this project: {3}. Skipping build.').format(
-               engine, sanitizer, architecture, project))
-
-    return
-
-  print('Building project', project)
-  build_fuzzers(project, engine, sanitizer, architecture)
-
-  if engine != 'none' and sanitizer != 'coverage':
-    check_build(project, engine, sanitizer, architecture)
-
-
-class BuildModifiedProjectsResult(enum.Enum):
-  """Enum containing the return values of build_modified_projects()."""
-  NONE_BUILT = 0
-  BUILD_SUCCESS = 1
-  BUILD_FAIL = 2
-
-
-def build_modified_projects():
-  """Build modified projects. Returns BuildModifiedProjectsResult.NONE_BUILT if
-  no builds were attempted. Returns BuildModifiedProjectsResult.BUILD_SUCCESS if
-  all attempts succeed, otherwise returns
-  BuildModifiedProjectsResult.BUILD_FAIL."""
-  projects = get_modified_buildable_projects()
-  if not projects:
-    return BuildModifiedProjectsResult.NONE_BUILT
-
-  failed_projects = []
-  for project in projects:
-    try:
-      build_project(project)
-    except subprocess.CalledProcessError:
-      failed_projects.append(project)
-
-  if failed_projects:
-    print('Failed projects:', ' '.join(failed_projects))
-    return BuildModifiedProjectsResult.BUILD_FAIL
-
-  return BuildModifiedProjectsResult.BUILD_SUCCESS
-
-
-def is_infra_changed():
-  """Returns True if the infra directory was changed."""
-  git_output = get_changed_files_output()
-  infra_code_regex = '.*infra/.*\n'
-  return re.search(infra_code_regex, git_output) is not None
-
-
-def build_base_images():
-  """Builds base images."""
-  # TODO(jonathanmetzman): Investigate why caching fails so often and
-  # when we improve it, build base-clang as well. Also, move this function
-  # to a helper command when we can support base-clang.
-  execute_helper_command(['pull_images'])
-  images = [
-      'base-image',
-      'base-builder',
-      'base-runner',
-  ]
-  for image in images:
-    try:
-      execute_helper_command(['build_image', image, '--no-pull'])
-    except subprocess.CalledProcessError:
-      return 1
-
-  return 0
-
-
-def build_canary_project():
-  """Builds a specific project when infra/ is changed to verify that infra/
-  changes don't break things. Returns False if build was attempted but
-  failed."""
-
-  try:
-    build_project('skcms')
-  except subprocess.CalledProcessError:
-    return False
-
-  return True
-
-
-def main():
-  """Build modified projects or canary project."""
-  infra_changed = is_infra_changed()
-  if infra_changed:
-    print('Pulling and building base images first.')
-    if build_base_images():
-      return 1
-
-  result = build_modified_projects()
-  if result == BuildModifiedProjectsResult.BUILD_FAIL:
-    return 1
-
-  # It's unnecessary to build the canary if we've built any projects already.
-  no_projects_built = result == BuildModifiedProjectsResult.NONE_BUILT
-  should_build_canary = no_projects_built and infra_changed
-  if should_build_canary and not build_canary_project():
-    return 1
-
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/infra/ci/build_test.py b/infra/ci/build_test.py
deleted file mode 100644
index 9da67e2..0000000
--- a/infra/ci/build_test.py
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Tests for build.py"""
-
-import os
-import sys
-import unittest
-from unittest import mock
-
-# pylint: disable=wrong-import-position
-INFRA_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-sys.path.append(INFRA_DIR)
-
-from ci import build
-
-
-def patch_environ(testcase_obj):
-  """Patch environment."""
-  env = {}
-  patcher = mock.patch.dict(os.environ, env)
-  testcase_obj.addCleanup(patcher.stop)
-  patcher.start()
-
-
-def _set_coverage_build():
-  """Set the right environment variables for a coverage build."""
-  os.environ['SANITIZER'] = 'coverage'
-  os.environ['ENGINE'] = 'libfuzzer'
-  os.environ['ARCHITECTURE'] = 'x86_64'
-
-
-class TestShouldBuild(unittest.TestCase):
-  """Tests that should_build() works as intended."""
-
-  def setUp(self):
-    patch_environ(self)
-
-  def test_none_engine_coverage_build(self):
-    """Tests that should_build returns False for a coverage build of a
-    project that specifies 'none' for fuzzing_engines."""
-    _set_coverage_build()
-    project_yaml = {
-        'language': 'c++',
-        'fuzzing_engines': ['none'],
-        'sanitizers': ['address']
-    }
-    self.assertFalse(build.should_build(project_yaml))
-
-  def test_unspecified_engines_coverage_build(self):
-    """Tests that should_build returns True for a coverage build of a
-    project that doesn't specify fuzzing_engines."""
-    _set_coverage_build()
-    project_yaml = {'language': 'c++'}
-    self.assertTrue(build.should_build(project_yaml))
-
-  def test_libfuzzer_coverage_build(self):
-    """Tests that should_build returns True for coverage build of a project
-    specifying 'libfuzzer' and for fuzzing_engines."""
-    _set_coverage_build()
-    project_yaml = {
-        'language': 'c++',
-        'fuzzing_engines': ['libfuzzer'],
-        'sanitizers': ['address']
-    }
-    self.assertTrue(build.should_build(project_yaml))
-
-  def test_go_coverage_build(self):
-    """Tests that should_build returns True for coverage build of a project
-    specifying 'libfuzzer' and for fuzzing_engines."""
-    _set_coverage_build()
-    project_yaml = {'language': 'go'}
-    self.assertTrue(build.should_build(project_yaml))
-
-  def test_engine_project_none_build(self):
-    """Tests that should_build returns False for an engine: 'none' build when
-    the project doesn't specify engines."""
-    os.environ['SANITIZER'] = 'address'
-    os.environ['ENGINE'] = 'none'
-    os.environ['ARCHITECTURE'] = 'x86_64'
-    project_yaml = {
-        'language': 'c++',
-        'fuzzing_engines': ['libfuzzer'],
-        'sanitizers': ['address']
-    }
-    self.assertFalse(build.should_build(project_yaml))
diff --git a/infra/ci/requirements.txt b/infra/ci/requirements.txt
deleted file mode 100644
index f0a8be0..0000000
--- a/infra/ci/requirements.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-# Requirements for submitting code changes to infra/ (needed by presubmit.py).
-parameterized==0.7.4
-pyfakefs==4.1.0
-pylint==2.5.3
-pytest==6.2.1
-pytest-xdist==2.2.0
-PyYAML==5.4
-yapf==0.30.0
diff --git a/infra/cifuzz/actions/Dockerfile b/infra/cifuzz/actions/Dockerfile
new file mode 100644
index 0000000..fe69d00
--- /dev/null
+++ b/infra/cifuzz/actions/Dockerfile
@@ -0,0 +1,44 @@
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+# Docker image to run CIFuzz in.
+
+FROM ubuntu:16.04
+
+RUN apt-get update && apt-get install -y git \
+    apt-transport-https \
+    ca-certificates \
+    curl \
+    gnupg2 \
+    software-properties-common \
+    python3
+
+
+RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && apt-key fingerprint 0EBFCD88
+RUN add-apt-repository \
+   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
+   xenial \
+   stable"
+
+RUN apt-get update && apt-get install docker-ce docker-ce-cli containerd.io -y
+
+ENV OSS_FUZZ_ROOT=/opt/oss-fuzz
+RUN git clone https://github.com/google/oss-fuzz.git ${OSS_FUZZ_ROOT}
+
+# Copies your code file from  action repository to the container
+COPY entrypoint.py /opt/entrypoint.py
+
+# Python file to execute when the docker container starts up
+ENTRYPOINT ["python3", "/opt/entrypoint.py"]
diff --git a/infra/cifuzz/actions/action.yml b/infra/cifuzz/actions/action.yml
new file mode 100644
index 0000000..7af4bd4
--- /dev/null
+++ b/infra/cifuzz/actions/action.yml
@@ -0,0 +1,17 @@
+# action.yml
+name: 'build-fuzzers'
+description: "Builds an OSS-Fuzz project's fuzzers."
+inputs:
+  project-name:
+    description: 'Name of the corresponding OSS-Fuzz project.'
+    required: true
+  fuzz-seconds:
+    description: 'The total time allotted for fuzzing in seconds.'
+    required: true
+    default: 360
+runs:
+  using: 'docker'
+  image: 'Dockerfile'
+  env:
+    PROJECT_NAME: ${{ inputs.project-name }}
+    FUZZ_SECONDS: ${{ inputs.fuzz-seconds }}
diff --git a/infra/cifuzz/actions/build_fuzzers/action.yml b/infra/cifuzz/actions/build_fuzzers/action.yml
deleted file mode 100644
index 835b7b4..0000000
--- a/infra/cifuzz/actions/build_fuzzers/action.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-# action.yml
-name: 'build-fuzzers'
-description: "Builds an OSS-Fuzz project's fuzzers."
-inputs:
-  oss-fuzz-project-name:
-    description: 'Name of the corresponding OSS-Fuzz project.'
-    required: true
-  language:
-    description: 'Programming language project is written in.'
-    required: false
-    default: 'c++'
-  dry-run:
-    description: 'If set, run the action without actually reporting a failure.'
-    default: false
-  allowed-broken-targets-percentage:
-    description: 'The percentage of broken targets allowed in bad_build_check.'
-    required: false
-  sanitizer:
-    description: 'The sanitizer to build the fuzzers with.'
-    default: 'address'
-  project-src-path:
-    description: "The path to the project's source code checkout."
-    required: false
-  build-integration-path:
-    description: "The path to the the project's build integration."
-    required: false
-  bad-build-check:
-    description: "Whether or not OSS-Fuzz's check for bad builds should be done."
-    required: false
-    default: true
-runs:
-  using: 'docker'
-  image: '../../../build_fuzzers.Dockerfile'
-  env:
-    OSS_FUZZ_PROJECT_NAME: ${{ inputs.oss-fuzz-project-name }}
-    LANGUAGE: ${{ inputs.language }}
-    DRY_RUN: ${{ inputs.dry-run}}
-    ALLOWED_BROKEN_TARGETS_PERCENTAGE: ${{ inputs.allowed-broken-targets-percentage}}
-    SANITIZER: ${{ inputs.sanitizer }}
-    PROJECT_SRC_PATH: ${{ inputs.project-src-path }}
-    BUILD_INTEGRATION_PATH: ${{ inputs.build-integration-path }}
-    LOW_DISK_SPACE: 'True'
-    BAD_BUILD_CHECK: ${{ inputs.bad-build-check }}
diff --git a/infra/cifuzz/actions/entrypoint.py b/infra/cifuzz/actions/entrypoint.py
new file mode 100644
index 0000000..e680207
--- /dev/null
+++ b/infra/cifuzz/actions/entrypoint.py
@@ -0,0 +1,86 @@
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""Builds and runs specific OSS-Fuzz project's fuzzers for CI tools."""
+import logging
+import os
+import sys
+
+# pylint: disable=wrong-import-position
+sys.path.append(os.path.join(os.environ['OSS_FUZZ_ROOT'], 'infra', 'cifuzz'))
+import cifuzz
+
+# TODO: Turn default logging to INFO when CIFuzz is stable
+logging.basicConfig(
+    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
+    level=logging.DEBUG)
+
+
+def main():
+  """Runs OSS-Fuzz project's fuzzers for CI tools.
+  This script is used to kick off the Github Actions CI tool. It is the
+  entrypoint  of the Dockerfile in this directory. This action can be added to
+  any OSS-Fuzz project's workflow that uses Github.
+
+  Required environment variables:
+    PROJECT_NAME: The name of OSS-Fuzz project.
+    FUZZ_TIME: The length of time in seconds that fuzzers are to be run.
+    GITHUB_REPOSITORY: The name of the Github repo that called this script.
+    GITHUB_SHA: The commit SHA that triggered this script.
+    GITHUB_REF: The pull request reference that triggered this script.
+    GITHUB_EVENT_NAME: The name of the hook event that triggered this script.
+
+  Returns:
+    0 on success or 1 on Failure.
+  """
+  oss_fuzz_project_name = os.environ.get('PROJECT_NAME')
+  fuzz_seconds = int(os.environ.get('FUZZ_SECONDS', 360))
+  github_repo_name = os.path.basename(os.environ.get('GITHUB_REPOSITORY'))
+  pr_ref = os.environ.get('GITHUB_REF')
+  commit_sha = os.environ.get('GITHUB_SHA')
+  event = os.environ.get('GITHUB_EVENT_NAME')
+
+  # Get the shared volume directory and create required directorys.
+  workspace = os.environ.get('GITHUB_WORKSPACE')
+  if not workspace:
+    logging.error('This script needs to be run in the Github action context.')
+    return 1
+
+  if event == 'push' and not cifuzz.build_fuzzers(
+      oss_fuzz_project_name, github_repo_name, workspace,
+      commit_sha=commit_sha):
+    logging.error('Error building fuzzers for project %s with commit %s.',
+                  oss_fuzz_project_name, commit_sha)
+    return 1
+  if event == 'pull_request' and not cifuzz.build_fuzzers(
+      oss_fuzz_project_name, github_repo_name, workspace, pr_ref=pr_ref):
+    logging.error('Error building fuzzers for project %s with pull request %s.',
+                  oss_fuzz_project_name, pr_ref)
+    return 1
+
+  # Run the specified project's fuzzers from the build.
+  run_status, bug_found = cifuzz.run_fuzzers(oss_fuzz_project_name,
+                                             fuzz_seconds, workspace)
+  if not run_status:
+    logging.error('Error occured while running fuzzers for project %s.',
+                  oss_fuzz_project_name)
+    return 1
+  if bug_found:
+    logging.info('Bug found.')
+    # Return 2 when a bug was found by a fuzzer causing the CI to fail.
+    return 2
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/infra/cifuzz/actions/run_fuzzers/action.yml b/infra/cifuzz/actions/run_fuzzers/action.yml
deleted file mode 100644
index d1c03c8..0000000
--- a/infra/cifuzz/actions/run_fuzzers/action.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-# action.yml
-name: 'run-fuzzers'
-description: 'Runs fuzz target binaries for a specified length of time.'
-inputs:
-  oss-fuzz-project-name:
-    description: 'The OSS-Fuzz project name.'
-    required: true
-  language:
-    description: 'Programming language project is written in.'
-    required: false
-    default: 'c++'
-  fuzz-seconds:
-    description: 'The total time allotted for fuzzing in seconds.'
-    required: true
-    default: 600
-  dry-run:
-    description: 'If set, run the action without actually reporting a failure.'
-    default: false
-  sanitizer:
-    description: 'The sanitizer to run the fuzzers with.'
-    default: 'address'
-  build-integration-path:
-    description: "The path to the the project's build integration."
-    required: false
-  run-fuzzers-mode:
-    description: |
-      The mode to run the fuzzers with ("ci" or "batch").
-      "ci" is for fuzzing a pull request or commit.
-      "batch" is for non-interactive fuzzing of an entire project.
-      "batch" is in alpha and should not be used in production.
-    required: false
-    default: 'ci'
-runs:
-  using: 'docker'
-  image: '../../../run_fuzzers.Dockerfile'
-  env:
-    OSS_FUZZ_PROJECT_NAME: ${{ inputs.oss-fuzz-project-name }}
-    LANGUAGE: ${{ inputs.language }}
-    FUZZ_SECONDS: ${{ inputs.fuzz-seconds }}
-    DRY_RUN: ${{ inputs.dry-run}}
-    SANITIZER: ${{ inputs.sanitizer }}
-    RUN_FUZZERS_MODE: ${{ inputs.run-fuzzers-mode }}
-    # TODO(metzman): Even though this param is used for building, it's needed
-    # for running because we use it to distinguish OSS-Fuzz from non-OSS-Fuzz.
-    # We should do something explicit instead.
-    BUILD_INTEGRATION_PATH: ${{ inputs.build-integration-path }}
-    LOW_DISK_SPACE: 'True'
diff --git a/infra/cifuzz/affected_fuzz_targets.py b/infra/cifuzz/affected_fuzz_targets.py
deleted file mode 100644
index f9f2242..0000000
--- a/infra/cifuzz/affected_fuzz_targets.py
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Module for dealing with fuzz targets affected by the change-under-test
-(CUT)."""
-import logging
-import os
-import sys
-
-import coverage
-
-# pylint: disable=wrong-import-position,import-error
-sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-import utils
-
-
-def remove_unaffected_fuzz_targets(project_name, out_dir, files_changed,
-                                   repo_path):
-  """Removes all non affected fuzz targets in the out directory.
-
-  Args:
-    project_name: The name of the relevant OSS-Fuzz project.
-    out_dir: The location of the fuzz target binaries.
-    files_changed: A list of files changed compared to HEAD.
-    repo_path: The location of the OSS-Fuzz repo in the docker image.
-
-  This function will not delete fuzz targets unless it knows that the fuzz
-  targets are unaffected. For example, this means that fuzz targets which don't
-  have coverage data on will not be deleted.
-  """
-  # TODO(metzman): Make this use clusterfuzz deployment.
-  if not files_changed:
-    # Don't remove any fuzz targets if there is no difference from HEAD.
-    logging.info('No files changed compared to HEAD.')
-    return
-
-  logging.info('Files changed in PR: %s', files_changed)
-
-  fuzz_target_paths = utils.get_fuzz_targets(out_dir)
-  if not fuzz_target_paths:
-    # Nothing to remove.
-    logging.error('No fuzz targets found in out dir.')
-    return
-
-  coverage_getter = coverage.OssFuzzCoverageGetter(project_name, repo_path)
-  if not coverage_getter.fuzzer_stats_url:
-    # Don't remove any fuzz targets unless we have data.
-    logging.error('Could not find latest coverage report.')
-    return
-
-  affected_fuzz_targets = get_affected_fuzz_targets(coverage_getter,
-                                                    fuzz_target_paths,
-                                                    files_changed)
-
-  if not affected_fuzz_targets:
-    logging.info('No affected fuzz targets detected, keeping all as fallback.')
-    return
-
-  logging.info('Using affected fuzz targets: %s.', affected_fuzz_targets)
-  unaffected_fuzz_targets = set(fuzz_target_paths) - affected_fuzz_targets
-  logging.info('Removing unaffected fuzz targets: %s.', unaffected_fuzz_targets)
-
-  # Remove all the targets that are not affected.
-  for fuzz_target_path in unaffected_fuzz_targets:
-    try:
-      os.remove(fuzz_target_path)
-    except OSError as error:
-      logging.error('%s occurred while removing file %s', error,
-                    fuzz_target_path)
-
-
-def is_fuzz_target_affected(coverage_getter, fuzz_target_path, files_changed):
-  """Returns True if a fuzz target (|fuzz_target_path|) is affected by
-  |files_changed|."""
-  fuzz_target = os.path.basename(fuzz_target_path)
-  covered_files = coverage_getter.get_files_covered_by_target(fuzz_target)
-  if not covered_files:
-    # Assume a fuzz target is affected if we can't get its coverage from
-    # OSS-Fuzz.
-    # TODO(metzman): Figure out what we should do if covered_files is [].
-    # Should we act as if we couldn't get the coverage?
-    logging.info('Could not get coverage for %s. Treating as affected.',
-                 fuzz_target)
-    return True
-
-  logging.info('Fuzz target %s is affected by: %s', fuzz_target, covered_files)
-  for filename in files_changed:
-    if filename in covered_files:
-      logging.info('Fuzz target %s is affected by changed file: %s',
-                   fuzz_target, filename)
-      return True
-
-  logging.info('Fuzz target %s is not affected.', fuzz_target)
-  return False
-
-
-def get_affected_fuzz_targets(coverage_getter, fuzz_target_paths,
-                              files_changed):
-  """Returns a list of paths of affected targets."""
-  affected_fuzz_targets = set()
-  for fuzz_target_path in fuzz_target_paths:
-    if is_fuzz_target_affected(coverage_getter, fuzz_target_path,
-                               files_changed):
-      affected_fuzz_targets.add(fuzz_target_path)
-
-  return affected_fuzz_targets
diff --git a/infra/cifuzz/affected_fuzz_targets_test.py b/infra/cifuzz/affected_fuzz_targets_test.py
deleted file mode 100644
index 05f27c0..0000000
--- a/infra/cifuzz/affected_fuzz_targets_test.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Tests for affected_fuzz_targets.py"""
-import os
-import shutil
-import tempfile
-import unittest
-from unittest import mock
-
-import parameterized
-
-import affected_fuzz_targets
-
-# pylint: disable=protected-access
-
-# NOTE: This integration test relies on
-# https://github.com/google/oss-fuzz/tree/master/projects/example project.
-EXAMPLE_PROJECT = 'example'
-
-EXAMPLE_FILE_CHANGED = 'test.txt'
-
-TEST_DATA_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)),
-                              'test_data')
-
-
-class RemoveUnaffectedFuzzTargets(unittest.TestCase):
-  """Tests remove_unaffected_fuzzers."""
-
-  TEST_FUZZER_1 = os.path.join(TEST_DATA_PATH, 'out', 'example_crash_fuzzer')
-  TEST_FUZZER_2 = os.path.join(TEST_DATA_PATH, 'out', 'example_nocrash_fuzzer')
-
-  # yapf: disable
-  @parameterized.parameterized.expand([
-      # Tests a specific affected fuzzers is kept.
-      ([[EXAMPLE_FILE_CHANGED], None], 2,),
-
-      # Tests specific affected fuzzer is kept.
-      ([[EXAMPLE_FILE_CHANGED], ['not/a/real/file']], 1),
-
-      # Tests all fuzzers are kept if none are deemed affected.
-      ([None, None], 2),
-
-      # Tests that multiple fuzzers are kept if multiple fuzzers are affected.
-      ([[EXAMPLE_FILE_CHANGED], [EXAMPLE_FILE_CHANGED]], 2),
-      ])
-  # yapf: enable
-  def test_remove_unaffected_fuzz_targets(self, side_effect, expected_dir_len):
-    """Tests that remove_unaffected_fuzzers has the intended effect."""
-    # We can't use fakefs in this test because this test executes
-    # utils.is_fuzz_target_local. This function relies on the executable bit
-    # being set, which doesn't work properly in fakefs.
-    with tempfile.TemporaryDirectory() as tmp_dir, mock.patch(
-        'coverage.OssFuzzCoverageGetter.get_files_covered_by_target'
-    ) as mocked_get_files:
-      with mock.patch('coverage._get_fuzzer_stats_dir_url', return_value=1):
-        mocked_get_files.side_effect = side_effect
-        shutil.copy(self.TEST_FUZZER_1, tmp_dir)
-        shutil.copy(self.TEST_FUZZER_2, tmp_dir)
-        affected_fuzz_targets.remove_unaffected_fuzz_targets(
-            EXAMPLE_PROJECT, tmp_dir, [EXAMPLE_FILE_CHANGED], '')
-        self.assertEqual(expected_dir_len, len(os.listdir(tmp_dir)))
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/infra/cifuzz/build_fuzzers.py b/infra/cifuzz/build_fuzzers.py
deleted file mode 100644
index 78180b5..0000000
--- a/infra/cifuzz/build_fuzzers.py
+++ /dev/null
@@ -1,279 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Module used by CI tools in order to interact with fuzzers. This module helps
-CI tools to build fuzzers."""
-
-import logging
-import os
-import sys
-
-import affected_fuzz_targets
-import continuous_integration
-import docker
-
-# pylint: disable=wrong-import-position,import-error
-sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-import helper
-import utils
-
-# Default fuzz configuration.
-DEFAULT_ENGINE = 'libfuzzer'
-DEFAULT_ARCHITECTURE = 'x86_64'
-
-logging.basicConfig(
-    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
-    level=logging.DEBUG)
-
-
-def check_project_src_path(project_src_path):
-  """Returns True if |project_src_path| exists."""
-  if not os.path.exists(project_src_path):
-    logging.error(
-        'PROJECT_SRC_PATH: %s does not exist. '
-        'Are you mounting it correctly?', project_src_path)
-    return False
-  return True
-
-
-# pylint: disable=too-many-arguments
-
-
-class Builder:  # pylint: disable=too-many-instance-attributes
-  """Class for fuzzer builders."""
-
-  def __init__(self, config, ci_system):
-    self.config = config
-    self.ci_system = ci_system
-    self.out_dir = os.path.join(config.workspace, 'out')
-    os.makedirs(self.out_dir, exist_ok=True)
-    self.work_dir = os.path.join(config.workspace, 'work')
-    os.makedirs(self.work_dir, exist_ok=True)
-    self.image_repo_path = None
-    self.host_repo_path = None
-    self.repo_manager = None
-
-  def build_image_and_checkout_src(self):
-    """Builds the project builder image and checkout source code for the patch
-    we want to fuzz (if necessary). Returns True on success.
-    Must be implemented by child classes."""
-    result = self.ci_system.prepare_for_fuzzer_build()
-    if not result.success:
-      return False
-    self.image_repo_path = result.image_repo_path
-    self.repo_manager = result.repo_manager
-    self.host_repo_path = self.repo_manager.repo_dir
-    return True
-
-  def build_fuzzers(self):
-    """Moves the source code we want to fuzz into the project builder and builds
-    the fuzzers from that source code. Returns True on success."""
-    docker_args = get_common_docker_args(self.config.sanitizer,
-                                         self.config.language)
-    container = utils.get_container_name()
-
-    if container:
-      docker_args.extend(
-          _get_docker_build_fuzzers_args_container(self.out_dir, container))
-    else:
-      docker_args.extend(
-          _get_docker_build_fuzzers_args_not_container(self.out_dir,
-                                                       self.host_repo_path))
-
-    if self.config.sanitizer == 'memory':
-      docker_args.extend(_get_docker_build_fuzzers_args_msan(self.work_dir))
-      self.handle_msan_prebuild(container)
-
-    docker_args.extend([
-        docker.get_project_image_name(self.config.project_name),
-        '/bin/bash',
-        '-c',
-    ])
-    rm_path = os.path.join(self.image_repo_path, '*')
-    image_src_path = os.path.dirname(self.image_repo_path)
-    bash_command = 'rm -rf {0} && cp -r {1} {2} && compile'.format(
-        rm_path, self.host_repo_path, image_src_path)
-    docker_args.append(bash_command)
-    logging.info('Building with %s sanitizer.', self.config.sanitizer)
-    if helper.docker_run(docker_args):
-      # docker_run returns nonzero on failure.
-      logging.error('Building fuzzers failed.')
-      return False
-
-    if self.config.sanitizer == 'memory':
-      self.handle_msan_postbuild(container)
-    return True
-
-  def handle_msan_postbuild(self, container):
-    """Post-build step for MSAN builds. Patches the build to use MSAN
-    libraries."""
-    helper.docker_run([
-        '--volumes-from', container, '-e',
-        'WORK={work_dir}'.format(work_dir=self.work_dir),
-        docker.MSAN_LIBS_BUILDER_TAG, 'patch_build.py', '/out'
-    ])
-
-  def handle_msan_prebuild(self, container):
-    """Pre-build step for MSAN builds. Copies MSAN libs to |msan_libs_dir| and
-    returns docker arguments to use that directory for MSAN libs."""
-    logging.info('Copying MSAN libs.')
-    helper.docker_run([
-        '--volumes-from', container, docker.MSAN_LIBS_BUILDER_TAG, 'bash', '-c',
-        'cp -r /msan {work_dir}'.format(work_dir=self.work_dir)
-    ])
-
-  def build(self):
-    """Builds the image, checkouts the source (if needed), builds the fuzzers
-    and then removes the unaffectted fuzzers. Returns True on success."""
-    methods = [
-        self.build_image_and_checkout_src, self.build_fuzzers,
-        self.remove_unaffected_fuzz_targets
-    ]
-    for method in methods:
-      if not method():
-        return False
-    return True
-
-  def remove_unaffected_fuzz_targets(self):
-    """Removes the fuzzers unaffected by the patch."""
-    if self.config.keep_unaffected_fuzz_targets:
-      logging.info('Not removing unaffected fuzz targets.')
-      return True
-
-    logging.info('Removing unaffected fuzz targets.')
-    changed_files = self.ci_system.get_changed_code_under_test(
-        self.repo_manager)
-    affected_fuzz_targets.remove_unaffected_fuzz_targets(
-        self.config.project_name, self.out_dir, changed_files,
-        self.image_repo_path)
-    return True
-
-
-def build_fuzzers(config):
-  """Builds all of the fuzzers for a specific OSS-Fuzz project.
-
-  Args:
-    project_name: The name of the OSS-Fuzz project being built.
-    project_repo_name: The name of the project's repo.
-    workspace: The location in a shared volume to store a git repo and build
-      artifacts.
-    pr_ref: The pull request reference to be built.
-    commit_sha: The commit sha for the project to be built at.
-    sanitizer: The sanitizer the fuzzers should be built with.
-
-  Returns:
-    True if build succeeded or False on failure.
-  """
-  # Do some quick validation.
-  if config.project_src_path and not check_project_src_path(
-      config.project_src_path):
-    return False
-
-  # Get the builder and then build the fuzzers.
-  ci_system = continuous_integration.get_ci(config)
-  logging.info('ci_system: %s.', ci_system)
-  builder = Builder(config, ci_system)
-  return builder.build()
-
-
-def get_common_docker_args(sanitizer, language):
-  """Returns a list of common docker arguments."""
-  return [
-      '--cap-add',
-      'SYS_PTRACE',
-      '-e',
-      'FUZZING_ENGINE=' + DEFAULT_ENGINE,
-      '-e',
-      'SANITIZER=' + sanitizer,
-      '-e',
-      'ARCHITECTURE=' + DEFAULT_ARCHITECTURE,
-      '-e',
-      'CIFUZZ=True',
-      '-e',
-      'FUZZING_LANGUAGE=' + language,
-  ]
-
-
-def check_fuzzer_build(out_dir,
-                       sanitizer,
-                       language,
-                       allowed_broken_targets_percentage=None):
-  """Checks the integrity of the built fuzzers.
-
-  Args:
-    out_dir: The directory containing the fuzzer binaries.
-    sanitizer: The sanitizer the fuzzers are built with.
-
-  Returns:
-    True if fuzzers are correct.
-  """
-  if not os.path.exists(out_dir):
-    logging.error('Invalid out directory: %s.', out_dir)
-    return False
-  if not os.listdir(out_dir):
-    logging.error('No fuzzers found in out directory: %s.', out_dir)
-    return False
-
-  command = get_common_docker_args(sanitizer, language)
-
-  if allowed_broken_targets_percentage is not None:
-    command += [
-        '-e',
-        ('ALLOWED_BROKEN_TARGETS_PERCENTAGE=' +
-         allowed_broken_targets_percentage)
-    ]
-
-  container = utils.get_container_name()
-  if container:
-    command += ['-e', 'OUT=' + out_dir, '--volumes-from', container]
-  else:
-    command += ['-v', '%s:/out' % out_dir]
-  command.extend(['-t', docker.BASE_RUNNER_TAG, 'test_all.py'])
-  exit_code = helper.docker_run(command)
-  logging.info('check fuzzer build exit code: %d', exit_code)
-  if exit_code:
-    logging.error('Check fuzzer build failed.')
-    return False
-  return True
-
-
-def _get_docker_build_fuzzers_args_container(host_out_dir, container):
-  """Returns arguments to the docker build arguments that are needed to use
-  |host_out_dir| when the host of the OSS-Fuzz builder container is another
-  container."""
-  return ['-e', 'OUT=' + host_out_dir, '--volumes-from', container]
-
-
-def _get_docker_build_fuzzers_args_not_container(host_out_dir, host_repo_path):
-  """Returns arguments to the docker build arguments that are needed to use
-  |host_out_dir| when the host of the OSS-Fuzz builder container is not
-  another container."""
-  image_out_dir = '/out'
-  return [
-      '-e',
-      'OUT=' + image_out_dir,
-      '-v',
-      '%s:%s' % (host_out_dir, image_out_dir),
-      '-v',
-      '%s:%s' % (host_repo_path, host_repo_path),
-  ]
-
-
-def _get_docker_build_fuzzers_args_msan(work_dir):
-  """Returns arguments to the docker build command that are needed to use
-  MSAN."""
-  # TODO(metzman): MSAN is broken, fix.
-  return [
-      '-e', 'MSAN_LIBS_PATH={msan_libs_path}'.format(
-          msan_libs_path=os.path.join(work_dir, 'msan'))
-  ]
diff --git a/infra/cifuzz/build_fuzzers_entrypoint.py b/infra/cifuzz/build_fuzzers_entrypoint.py
deleted file mode 100644
index 04f5620..0000000
--- a/infra/cifuzz/build_fuzzers_entrypoint.py
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Builds a specific OSS-Fuzz project's fuzzers for CI tools."""
-import logging
-import os
-import sys
-
-import build_fuzzers
-import config_utils
-
-# pylint: disable=c-extension-no-member
-# pylint gets confused because of the relative import of cifuzz.
-
-# TODO: Turn default logging to INFO when CIFuzz is stable
-logging.basicConfig(
-    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
-    level=logging.DEBUG)
-
-
-def main():
-  """Build OSS-Fuzz project's fuzzers for CI tools.
-  This script is used to kick off the Github Actions CI tool. It is the
-  entrypoint of the Dockerfile in this directory. This action can be added to
-  any OSS-Fuzz project's workflow that uses Github.
-
-  Note: The resulting clusterfuzz binaries of this build are placed in
-  the directory: ${GITHUB_WORKSPACE}/out
-
-  Required environment variables:
-    OSS_FUZZ_PROJECT_NAME: The name of OSS-Fuzz project.
-    GITHUB_REPOSITORY: The name of the Github repo that called this script.
-    GITHUB_SHA: The commit SHA that triggered this script.
-    GITHUB_EVENT_NAME: The name of the hook event that triggered this script.
-    GITHUB_EVENT_PATH:
-      The path to the file containing the POST payload of the webhook:
-      https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners#filesystems-on-github-hosted-runners
-    GITHUB_WORKSPACE: The shared volume directory where input artifacts are.
-    DRY_RUN: If true, no failures will surface.
-    SANITIZER: The sanitizer to use when running fuzzers.
-
-  Returns:
-    0 on success or 1 on failure.
-  """
-  config = config_utils.BuildFuzzersConfig()
-
-  if config.dry_run:
-    # Sets the default return code on error to success.
-    returncode = 0
-  else:
-    # The default return code when an error occurs.
-    returncode = 1
-
-  if not config.workspace:
-    logging.error('This script needs to be run within Github actions.')
-    return returncode
-
-  if not build_fuzzers.build_fuzzers(config):
-    logging.error(
-        'Error building fuzzers for project %s (commit: %s, pr_ref: %s).',
-        config.project_name, config.commit_sha, config.pr_ref)
-    return returncode
-
-  out_dir = os.path.join(config.workspace, 'out')
-
-  if not config.bad_build_check:
-    # If we've gotten to this point and we don't need to do bad_build_check,
-    # then the build has succeeded.
-    returncode = 0
-  # yapf: disable
-  elif build_fuzzers.check_fuzzer_build(
-      out_dir,
-      config.sanitizer,
-      config.language,
-      allowed_broken_targets_percentage=config.allowed_broken_targets_percentage
-  ):
-    # yapf: enable
-    returncode = 0
-
-  return returncode
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/infra/cifuzz/build_fuzzers_test.py b/infra/cifuzz/build_fuzzers_test.py
deleted file mode 100644
index 2987788..0000000
--- a/infra/cifuzz/build_fuzzers_test.py
+++ /dev/null
@@ -1,363 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Tests the functionality of the cifuzz module."""
-import os
-import shutil
-import sys
-import tempfile
-import unittest
-from unittest import mock
-
-import parameterized
-
-# pylint: disable=wrong-import-position
-INFRA_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-sys.path.append(INFRA_DIR)
-
-OSS_FUZZ_DIR = os.path.dirname(INFRA_DIR)
-
-import build_fuzzers
-import config_utils
-import continuous_integration
-import test_helpers
-
-# NOTE: This integration test relies on
-# https://github.com/google/oss-fuzz/tree/master/projects/example project.
-EXAMPLE_PROJECT = 'example'
-
-# Location of data used for testing.
-TEST_DATA_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)),
-                              'test_data')
-
-# An example fuzzer that triggers an crash.
-# Binary is a copy of the example project's do_stuff_fuzzer and can be
-# generated by running "python3 infra/helper.py build_fuzzers example".
-EXAMPLE_CRASH_FUZZER = 'example_crash_fuzzer'
-
-# An example fuzzer that does not trigger a crash.
-# Binary is a modified version of example project's do_stuff_fuzzer. It is
-# created by removing the bug in my_api.cpp.
-EXAMPLE_NOCRASH_FUZZER = 'example_nocrash_fuzzer'
-
-# A fuzzer to be built in build_fuzzers integration tests.
-EXAMPLE_BUILD_FUZZER = 'do_stuff_fuzzer'
-
-# pylint: disable=no-self-use,protected-access,too-few-public-methods
-
-
-def create_config(**kwargs):
-  """Creates a config object and then sets every attribute that is a key in
-  |kwargs| to the corresponding value. Asserts that each key in |kwargs| is an
-  attribute of Config."""
-  with mock.patch('os.path.basename', return_value=None), mock.patch(
-      'config_utils.get_project_src_path',
-      return_value=None), mock.patch('config_utils._is_dry_run',
-                                     return_value=True):
-    config = config_utils.BuildFuzzersConfig()
-
-  for key, value in kwargs.items():
-    assert hasattr(config, key), 'Config doesn\'t have attribute: ' + key
-    setattr(config, key, value)
-  return config
-
-
-class BuildFuzzersTest(unittest.TestCase):
-  """Unit tests for build_fuzzers."""
-
-  @mock.patch('build_specified_commit.detect_main_repo',
-              return_value=('example.com', '/path'))
-  @mock.patch('repo_manager._clone', return_value=None)
-  @mock.patch('continuous_integration.checkout_specified_commit')
-  @mock.patch('helper.docker_run')
-  def test_cifuzz_env_var(self, mocked_docker_run, _, __, ___):
-    """Tests that the CIFUZZ env var is set."""
-
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      build_fuzzers.build_fuzzers(
-          create_config(project_name=EXAMPLE_PROJECT,
-                        project_repo_name=EXAMPLE_PROJECT,
-                        workspace=tmp_dir,
-                        pr_ref='refs/pull/1757/merge'))
-    docker_run_command = mocked_docker_run.call_args_list[0][0][0]
-
-    def command_has_env_var_arg(command, env_var_arg):
-      for idx, element in enumerate(command):
-        if idx == 0:
-          continue
-
-        if element == env_var_arg and command[idx - 1] == '-e':
-          return True
-      return False
-
-    self.assertTrue(command_has_env_var_arg(docker_run_command, 'CIFUZZ=True'))
-
-
-class InternalGithubBuildTest(unittest.TestCase):
-  """Tests for building OSS-Fuzz projects on GitHub actions."""
-  PROJECT_NAME = 'myproject'
-  PROJECT_REPO_NAME = 'myproject'
-  SANITIZER = 'address'
-  COMMIT_SHA = 'fake'
-  PR_REF = 'fake'
-
-  def _create_builder(self, tmp_dir):
-    """Creates an InternalGithubBuilder and returns it."""
-    config = create_config(project_name=self.PROJECT_NAME,
-                           project_repo_name=self.PROJECT_REPO_NAME,
-                           workspace=tmp_dir,
-                           sanitizer=self.SANITIZER,
-                           commit_sha=self.COMMIT_SHA,
-                           pr_ref=self.PR_REF,
-                           is_github=True)
-    ci_system = continuous_integration.get_ci(config)
-    return build_fuzzers.Builder(config, ci_system)
-
-  @mock.patch('repo_manager._clone', side_effect=None)
-  @mock.patch('continuous_integration.checkout_specified_commit',
-              side_effect=None)
-  def test_correct_host_repo_path(self, _, __):
-    """Tests that the correct self.host_repo_path is set by
-    build_image_and_checkout_src. Specifically, we want the name of the
-    directory the repo is in to match the name used in the docker
-    image/container, so that it will replace the host's copy properly."""
-    image_repo_path = '/src/repo_dir'
-    with tempfile.TemporaryDirectory() as tmp_dir, mock.patch(
-        'build_specified_commit.detect_main_repo',
-        return_value=('inferred_url', image_repo_path)):
-      builder = self._create_builder(tmp_dir)
-      builder.build_image_and_checkout_src()
-
-    self.assertEqual(os.path.basename(builder.host_repo_path),
-                     os.path.basename(image_repo_path))
-
-
-@unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                 'INTEGRATION_TESTS=1 not set')
-class BuildFuzzersIntegrationTest(unittest.TestCase):
-  """Integration tests for build_fuzzers."""
-
-  def setUp(self):
-    self.tmp_dir_obj = tempfile.TemporaryDirectory()
-    self.workspace = self.tmp_dir_obj.name
-    self.out_dir = os.path.join(self.workspace, 'out')
-    test_helpers.patch_environ(self)
-
-  def tearDown(self):
-    self.tmp_dir_obj.cleanup()
-
-  def test_external_github_project(self):
-    """Tests building fuzzers from an external project on Github."""
-    project_name = 'external-project'
-    build_integration_path = 'fuzzer-build-integration'
-    git_url = 'https://github.com/jonathanmetzman/cifuzz-external-example.git'
-    # This test is dependant on the state of
-    # github.com/jonathanmetzman/cifuzz-external-example.
-    config = create_config(project_name=project_name,
-                           project_repo_name=project_name,
-                           workspace=self.workspace,
-                           build_integration_path=build_integration_path,
-                           git_url=git_url,
-                           commit_sha='HEAD',
-                           base_commit='HEAD^1')
-    self.assertTrue(build_fuzzers.build_fuzzers(config))
-    self.assertTrue(
-        os.path.exists(os.path.join(self.out_dir, EXAMPLE_BUILD_FUZZER)))
-
-  def test_valid_commit(self):
-    """Tests building fuzzers with valid inputs."""
-    config = create_config(
-        project_name=EXAMPLE_PROJECT,
-        project_repo_name='oss-fuzz',
-        workspace=self.workspace,
-        commit_sha='0b95fe1039ed7c38fea1f97078316bfc1030c523',
-        base_commit='da0746452433dc18bae699e355a9821285d863c8',
-        is_github=True)
-    self.assertTrue(build_fuzzers.build_fuzzers(config))
-    self.assertTrue(
-        os.path.exists(os.path.join(self.out_dir, EXAMPLE_BUILD_FUZZER)))
-
-  def test_valid_pull_request(self):
-    """Tests building fuzzers with valid pull request."""
-    # TODO(metzman): What happens when this branch closes?
-    config = create_config(project_name=EXAMPLE_PROJECT,
-                           project_repo_name='oss-fuzz',
-                           workspace=self.workspace,
-                           pr_ref='refs/pull/1757/merge',
-                           base_ref='master',
-                           is_github=True)
-    self.assertTrue(build_fuzzers.build_fuzzers(config))
-    self.assertTrue(
-        os.path.exists(os.path.join(self.out_dir, EXAMPLE_BUILD_FUZZER)))
-
-  def test_invalid_pull_request(self):
-    """Tests building fuzzers with invalid pull request."""
-    config = create_config(project_name=EXAMPLE_PROJECT,
-                           project_repo_name='oss-fuzz',
-                           workspace=self.workspace,
-                           pr_ref='ref-1/merge',
-                           base_ref='master',
-                           is_github=True)
-    self.assertTrue(build_fuzzers.build_fuzzers(config))
-
-  def test_invalid_project_name(self):
-    """Tests building fuzzers with invalid project name."""
-    config = create_config(
-        project_name='not_a_valid_project',
-        project_repo_name='oss-fuzz',
-        workspace=self.workspace,
-        commit_sha='0b95fe1039ed7c38fea1f97078316bfc1030c523')
-    self.assertFalse(build_fuzzers.build_fuzzers(config))
-
-  def test_invalid_repo_name(self):
-    """Tests building fuzzers with invalid repo name."""
-    config = create_config(
-        project_name=EXAMPLE_PROJECT,
-        project_repo_name='not-real-repo',
-        workspace=self.workspace,
-        commit_sha='0b95fe1039ed7c38fea1f97078316bfc1030c523')
-    self.assertFalse(build_fuzzers.build_fuzzers(config))
-
-  def test_invalid_commit_sha(self):
-    """Tests building fuzzers with invalid commit SHA."""
-    config = create_config(project_name=EXAMPLE_PROJECT,
-                           project_repo_name='oss-fuzz',
-                           workspace=self.workspace,
-                           commit_sha='',
-                           is_github=True)
-    with self.assertRaises(AssertionError):
-      build_fuzzers.build_fuzzers(config)
-
-  def test_invalid_workspace(self):
-    """Tests building fuzzers with invalid workspace."""
-    config = create_config(
-        project_name=EXAMPLE_PROJECT,
-        project_repo_name='oss-fuzz',
-        workspace=os.path.join(self.workspace, 'not', 'a', 'dir'),
-        commit_sha='0b95fe1039ed7c38fea1f97078316bfc1030c523')
-    self.assertFalse(build_fuzzers.build_fuzzers(config))
-
-
-class CheckFuzzerBuildTest(unittest.TestCase):
-  """Tests the check_fuzzer_build function in the cifuzz module."""
-
-  SANITIZER = 'address'
-  LANGUAGE = 'c++'
-
-  def setUp(self):
-    self.tmp_dir_obj = tempfile.TemporaryDirectory()
-    self.test_files_path = os.path.join(self.tmp_dir_obj.name, 'test_files')
-    shutil.copytree(TEST_DATA_PATH, self.test_files_path)
-
-  def tearDown(self):
-    self.tmp_dir_obj.cleanup()
-
-  def test_correct_fuzzer_build(self):
-    """Checks check_fuzzer_build function returns True for valid fuzzers."""
-    test_fuzzer_dir = os.path.join(self.test_files_path, 'out')
-    self.assertTrue(
-        build_fuzzers.check_fuzzer_build(test_fuzzer_dir, self.SANITIZER,
-                                         self.LANGUAGE))
-
-  def test_not_a_valid_fuzz_path(self):
-    """Tests that False is returned when a bad path is given."""
-    self.assertFalse(
-        build_fuzzers.check_fuzzer_build('not/a/valid/path', self.SANITIZER,
-                                         self.LANGUAGE))
-
-  def test_not_a_valid_fuzzer(self):
-    """Checks a directory that exists but does not have fuzzers is False."""
-    self.assertFalse(
-        build_fuzzers.check_fuzzer_build(self.test_files_path, self.SANITIZER,
-                                         self.LANGUAGE))
-
-  @mock.patch('helper.docker_run')
-  def test_allow_broken_fuzz_targets_percentage(self, mocked_docker_run):
-    """Tests that ALLOWED_BROKEN_TARGETS_PERCENTAGE is set when running
-    docker if passed to check_fuzzer_build."""
-    mocked_docker_run.return_value = 0
-    test_fuzzer_dir = os.path.join(TEST_DATA_PATH, 'out')
-    build_fuzzers.check_fuzzer_build(test_fuzzer_dir,
-                                     self.SANITIZER,
-                                     self.LANGUAGE,
-                                     allowed_broken_targets_percentage='0')
-    self.assertIn('-e ALLOWED_BROKEN_TARGETS_PERCENTAGE=0',
-                  ' '.join(mocked_docker_run.call_args[0][0]))
-
-
-@unittest.skip('Test is too long to be run with presubmit.')
-class BuildSantizerIntegrationTest(unittest.TestCase):
-  """Integration tests for the build_fuzzers.
-    Note: This test relies on "curl" being an OSS-Fuzz project."""
-  PROJECT_NAME = 'curl'
-  PR_REF = 'fake_pr'
-
-  @classmethod
-  def _create_config(cls, tmp_dir, sanitizer):
-    return create_config(project_name=cls.PROJECT_NAME,
-                         project_repo_name=cls.PROJECT_NAME,
-                         workspace=tmp_dir,
-                         pr_ref=cls.PR_REF,
-                         sanitizer=sanitizer)
-
-  @parameterized.parameterized.expand([('memory',), ('undefined',)])
-  def test_valid_project_curl(self, sanitizer):
-    """Tests that MSAN can be detected from project.yaml"""
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      self.assertTrue(
-          build_fuzzers.build_fuzzers(self._create_config(tmp_dir, sanitizer)))
-
-
-class GetDockerBuildFuzzersArgsContainerTest(unittest.TestCase):
-  """Tests that _get_docker_build_fuzzers_args_container works as intended."""
-
-  def test_get_docker_build_fuzzers_args_container(self):
-    """Tests that _get_docker_build_fuzzers_args_container works as intended."""
-    out_dir = '/my/out'
-    container = 'my-container'
-    result = build_fuzzers._get_docker_build_fuzzers_args_container(
-        out_dir, container)
-    self.assertEqual(result, ['-e', 'OUT=/my/out', '--volumes-from', container])
-
-
-class GetDockerBuildFuzzersArgsNotContainerTest(unittest.TestCase):
-  """Tests that _get_docker_build_fuzzers_args_not_container works as
-  intended."""
-
-  def test_get_docker_build_fuzzers_args_no_container(self):
-    """Tests that _get_docker_build_fuzzers_args_not_container works
-    as intended."""
-    host_out_dir = '/cifuzz/out'
-    host_repo_path = '/host/repo'
-    result = build_fuzzers._get_docker_build_fuzzers_args_not_container(
-        host_out_dir, host_repo_path)
-    expected_result = [
-        '-e', 'OUT=/out', '-v', '/cifuzz/out:/out', '-v',
-        '/host/repo:/host/repo'
-    ]
-    self.assertEqual(result, expected_result)
-
-
-class GetDockerBuildFuzzersArgsMsanTest(unittest.TestCase):
-  """Tests that _get_docker_build_fuzzers_args_msan works as intended."""
-
-  def test_get_docker_build_fuzzers_args_msan(self):
-    """Tests that _get_docker_build_fuzzers_args_msan works as intended."""
-    work_dir = '/work_dir'
-    result = build_fuzzers._get_docker_build_fuzzers_args_msan(work_dir)
-    expected_result = ['-e', 'MSAN_LIBS_PATH=/work_dir/msan']
-    self.assertEqual(result, expected_result)
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/infra/cifuzz/cifuzz-base/Dockerfile b/infra/cifuzz/cifuzz-base/Dockerfile
deleted file mode 100644
index e0599db..0000000
--- a/infra/cifuzz/cifuzz-base/Dockerfile
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Don't bother with a slimmer base image.
-# When we pull base-builder to build project builder image we need to pull
-# ubuntu:16.04 anyway. So in the long run we probably would waste time if
-# we pulled something like alpine here instead.
-FROM ubuntu:16.04
-
-RUN apt-get update && \
-    apt-get install ca-certificates wget python3 git-core --no-install-recommends -y && \
-    wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce-cli_20.10.5~3-0~ubuntu-xenial_amd64.deb -O /tmp/docker-ce.deb && \
-    dpkg -i /tmp/docker-ce.deb && rm /tmp/docker-ce.deb && \
-    apt-get remove wget -y --purge
-
-
-ENV OSS_FUZZ_ROOT=/opt/oss-fuzz
-ADD . ${OSS_FUZZ_ROOT}
-RUN rm -rf ${OSS_FUZZ_ROOT}/infra
\ No newline at end of file
diff --git a/infra/cifuzz/cifuzz.py b/infra/cifuzz/cifuzz.py
new file mode 100644
index 0000000..ce7586e
--- /dev/null
+++ b/infra/cifuzz/cifuzz.py
@@ -0,0 +1,169 @@
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""Module used by CI tools in order to interact with fuzzers.
+This module helps CI tools do the following:
+  1. Build fuzzers.
+  2. Run fuzzers.
+Eventually it will be used to help CI tools determine which fuzzers to run.
+"""
+
+import logging
+import os
+import shutil
+import sys
+
+import fuzz_target
+
+# pylint: disable=wrong-import-position
+sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+import build_specified_commit
+import helper
+import repo_manager
+import utils
+
+# TODO: Turn default logging to WARNING when CIFuzz is stable
+logging.basicConfig(
+    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
+    level=logging.DEBUG)
+
+
+def build_fuzzers(project_name,
+                  project_repo_name,
+                  workspace,
+                  pr_ref=None,
+                  commit_sha=None):
+  """Builds all of the fuzzers for a specific OSS-Fuzz project.
+
+  Args:
+    project_name: The name of the OSS-Fuzz project being built.
+    project_repo_name: The name of the projects repo.
+    workspace: The location in a shared volume to store a git repo and build
+      artifacts.
+    pr_ref: The pull request reference to be built.
+    commit_sha: The commit sha for the project to be built at.
+
+  Returns:
+    True if build succeeded or False on failure.
+  """
+  # Validate inputs.
+  assert pr_ref or commit_sha
+  if not os.path.exists(workspace):
+    logging.error('Invalid workspace: %s.', workspace)
+    return False
+
+  git_workspace = os.path.join(workspace, 'storage')
+  os.makedirs(git_workspace, exist_ok=True)
+  out_dir = os.path.join(workspace, 'out')
+  os.makedirs(out_dir, exist_ok=True)
+
+  # Detect repo information.
+  inferred_url, oss_fuzz_repo_path = build_specified_commit.detect_main_repo(
+      project_name, repo_name=project_repo_name)
+  if not inferred_url or not oss_fuzz_repo_path:
+    logging.error('Could not detect repo from project %s.', project_name)
+    return False
+  src_in_docker = os.path.dirname(oss_fuzz_repo_path)
+  oss_fuzz_repo_name = os.path.basename(oss_fuzz_repo_path)
+
+  # Checkout projects repo in the shared volume.
+  build_repo_manager = repo_manager.RepoManager(inferred_url,
+                                                git_workspace,
+                                                repo_name=oss_fuzz_repo_name)
+  try:
+    if pr_ref:
+      build_repo_manager.checkout_pr(pr_ref)
+    else:
+      build_repo_manager.checkout_commit(commit_sha)
+  except RuntimeError:
+    logging.error('Can not check out requested state.')
+    return False
+  except ValueError:
+    logging.error('Invalid commit SHA requested %s.', commit_sha)
+    return False
+
+  # Build Fuzzers using docker run.
+  command = [
+      '--cap-add', 'SYS_PTRACE', '-e', 'FUZZING_ENGINE=libfuzzer', '-e',
+      'SANITIZER=address', '-e', 'ARCHITECTURE=x86_64'
+  ]
+  container = utils.get_container_name()
+  if container:
+    command += ['-e', 'OUT=' + out_dir, '--volumes-from', container]
+    bash_command = 'rm -rf {0} && cp -r {1} {2} && compile'.format(
+        os.path.join(src_in_docker, oss_fuzz_repo_name, '*'),
+        os.path.join(git_workspace, oss_fuzz_repo_name), src_in_docker)
+  else:
+    command += [
+        '-e', 'OUT=' + '/out', '-v',
+        '%s:%s' % (os.path.join(git_workspace, oss_fuzz_repo_name),
+                   os.path.join(src_in_docker, oss_fuzz_repo_name)), '-v',
+        '%s:%s' % (out_dir, '/out')
+    ]
+    bash_command = 'compile'
+
+  command.extend([
+      'gcr.io/oss-fuzz/' + project_name,
+      '/bin/bash',
+      '-c',
+  ])
+  command.append(bash_command)
+  if helper.docker_run(command):
+    logging.error('Building fuzzers failed.')
+    return False
+  return True
+
+
+def run_fuzzers(project_name, fuzz_seconds, workspace):
+  """Runs all fuzzers for a specific OSS-Fuzz project.
+
+  Args:
+    project_name: The name of the OSS-Fuzz project being built.
+    fuzz_seconds: The total time allotted for fuzzing.
+    workspace: The location in a shared volume to store a git repo and build
+      artifacts.
+
+  Returns:
+    (True if run was successful, True if bug was found).
+  """
+  # Validate inputs.
+  if not os.path.exists(workspace):
+    logging.error('Invalid workspace: %s.', workspace)
+    return False, False
+  out_dir = os.path.join(workspace, 'out')
+  if not fuzz_seconds or fuzz_seconds < 1:
+    logging.error('Fuzz_seconds argument must be greater than 1, but was: %s.',
+                  format(fuzz_seconds))
+    return False, False
+
+  # Get fuzzer information.
+  fuzzer_paths = utils.get_fuzz_targets(out_dir)
+  if not fuzzer_paths:
+    logging.error('No fuzzers were found in out directory: %s.',
+                  format(out_dir))
+    return False, False
+  fuzz_seconds_per_target = fuzz_seconds // len(fuzzer_paths)
+
+  # Run fuzzers for alotted time.
+  for fuzzer_path in fuzzer_paths:
+    target = fuzz_target.FuzzTarget(project_name, fuzzer_path,
+                                    fuzz_seconds_per_target, out_dir)
+    test_case, stack_trace = target.fuzz()
+    if not test_case or not stack_trace:
+      logging.info('Fuzzer %s, finished running.', target.target_name)
+    else:
+      logging.info('Fuzzer %s, detected error: %s.', target.target_name,
+                   stack_trace)
+      shutil.move(test_case, os.path.join(out_dir, 'testcase'))
+      return True, True
+  return True, False
diff --git a/infra/cifuzz/cifuzz_test.py b/infra/cifuzz/cifuzz_test.py
new file mode 100644
index 0000000..7c17b6f
--- /dev/null
+++ b/infra/cifuzz/cifuzz_test.py
@@ -0,0 +1,158 @@
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""Test the functionality of the cifuzz module's functions:
+1. Building fuzzers.
+2. Running fuzzers.
+"""
+
+import os
+import sys
+import tempfile
+import unittest
+
+# pylint: disable=wrong-import-position
+sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+import cifuzz
+
+# NOTE: This integration test relies on
+# https://github.com/google/oss-fuzz/tree/master/projects/example project
+EXAMPLE_PROJECT = 'example'
+
+
+class BuildFuzzersIntegrationTest(unittest.TestCase):
+  """Test build_fuzzers function in the utils module."""
+
+  def test_valid_commit(self):
+    """Test building fuzzers with valid inputs."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      out_path = os.path.join(tmp_dir, 'out')
+      os.mkdir(out_path)
+      self.assertTrue(
+          cifuzz.build_fuzzers(
+              EXAMPLE_PROJECT,
+              'oss-fuzz',
+              tmp_dir,
+              commit_sha='0b95fe1039ed7c38fea1f97078316bfc1030c523'))
+      self.assertTrue(os.path.exists(os.path.join(out_path, 'do_stuff_fuzzer')))
+
+  def test_valid_pull_request(self):
+    """Test building fuzzers with valid pull request."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      out_path = os.path.join(tmp_dir, 'out')
+      os.mkdir(out_path)
+      self.assertTrue(
+          cifuzz.build_fuzzers(EXAMPLE_PROJECT,
+                               'oss-fuzz',
+                               tmp_dir,
+                               pr_ref='refs/pull/3310/merge'))
+      self.assertTrue(os.path.exists(os.path.join(out_path, 'do_stuff_fuzzer')))
+
+  def test_invalid_pull_request(self):
+    """Test building fuzzers with invalid pull request."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      out_path = os.path.join(tmp_dir, 'out')
+      os.mkdir(out_path)
+      self.assertFalse(
+          cifuzz.build_fuzzers(EXAMPLE_PROJECT,
+                               'oss-fuzz',
+                               tmp_dir,
+                               pr_ref='ref-1/merge'))
+
+  def test_invalid_project_name(self):
+    """Test building fuzzers with invalid project name."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      self.assertFalse(
+          cifuzz.build_fuzzers(
+              'not_a_valid_project',
+              'oss-fuzz',
+              tmp_dir,
+              commit_sha='0b95fe1039ed7c38fea1f97078316bfc1030c523'))
+
+  def test_invalid_repo_name(self):
+    """Test building fuzzers with invalid repo name."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      self.assertFalse(
+          cifuzz.build_fuzzers(
+              EXAMPLE_PROJECT,
+              'not-real-repo',
+              tmp_dir,
+              commit_sha='0b95fe1039ed7c38fea1f97078316bfc1030c523'))
+
+  def test_invalid_commit_sha(self):
+    """Test building fuzzers with invalid commit SHA."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      with self.assertRaises(AssertionError):
+        cifuzz.build_fuzzers(EXAMPLE_PROJECT,
+                             'oss-fuzz',
+                             tmp_dir,
+                             commit_sha='')
+
+  def test_invalid_workspace(self):
+    """Test building fuzzers with invalid workspace."""
+    self.assertFalse(
+        cifuzz.build_fuzzers(
+            EXAMPLE_PROJECT,
+            'oss-fuzz',
+            'not/a/dir',
+            commit_sha='0b95fe1039ed7c38fea1f97078316bfc1030c523',
+        ))
+
+
+class RunFuzzersIntegrationTest(unittest.TestCase):
+  """Test build_fuzzers function in the utils module."""
+
+  def test_valid(self):
+    """Test run_fuzzers with a valid build."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      out_path = os.path.join(tmp_dir, 'out')
+      os.mkdir(out_path)
+      self.assertTrue(
+          cifuzz.build_fuzzers(
+              EXAMPLE_PROJECT,
+              'oss-fuzz',
+              tmp_dir,
+              commit_sha='0b95fe1039ed7c38fea1f97078316bfc1030c523'))
+      self.assertTrue(os.path.exists(os.path.join(out_path, 'do_stuff_fuzzer')))
+      run_success, bug_found = cifuzz.run_fuzzers(EXAMPLE_PROJECT, 5, tmp_dir)
+    self.assertTrue(run_success)
+    self.assertTrue(bug_found)
+
+  def test_invlid_build(self):
+    """Test run_fuzzers with an invalid build."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      out_path = os.path.join(tmp_dir, 'out')
+      os.mkdir(out_path)
+      run_success, bug_found = cifuzz.run_fuzzers(EXAMPLE_PROJECT, 5, tmp_dir)
+    self.assertFalse(run_success)
+    self.assertFalse(bug_found)
+
+  def test_invalid_fuzz_seconds(self):
+    """Tests run_fuzzers with an invalid fuzz seconds."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      out_path = os.path.join(tmp_dir, 'out')
+      os.mkdir(out_path)
+      run_success, bug_found = cifuzz.run_fuzzers(EXAMPLE_PROJECT, 0, tmp_dir)
+    self.assertFalse(run_success)
+    self.assertFalse(bug_found)
+
+  def test_invalid_out_dir(self):
+    """Tests run_fuzzers with an invalid out directory."""
+    run_success, bug_found = cifuzz.run_fuzzers(EXAMPLE_PROJECT, 5,
+                                                'not/a/valid/path')
+    self.assertFalse(run_success)
+    self.assertFalse(bug_found)
+
+
+if __name__ == '__main__':
+  unittest.main()
diff --git a/infra/cifuzz/clusterfuzz_deployment.py b/infra/cifuzz/clusterfuzz_deployment.py
deleted file mode 100644
index 8c46e9d..0000000
--- a/infra/cifuzz/clusterfuzz_deployment.py
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Module for interacting with the "ClusterFuzz deployment."""
-import logging
-import os
-import sys
-import tempfile
-import time
-import urllib.error
-import urllib.request
-import zipfile
-
-# pylint: disable=wrong-import-position,import-error
-sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-import utils
-
-
-class BaseClusterFuzzDeployment:
-  """Base class for ClusterFuzz deployments."""
-
-  CORPUS_DIR_NAME = 'cifuzz-corpus'
-  BUILD_DIR_NAME = 'cifuzz-latest-build'
-
-  def __init__(self, config):
-    self.config = config
-
-  def download_latest_build(self, out_dir):
-    """Downloads the latest build from ClusterFuzz.
-
-    Returns:
-      A path to where the OSS-Fuzz build was stored, or None if it wasn't.
-    """
-    raise NotImplementedError('Child class must implement method.')
-
-  def download_corpus(self, target_name, out_dir):
-    """Downloads the corpus for |target_name| from ClusterFuzz to |out_dir|.
-
-    Returns:
-      A path to where the OSS-Fuzz build was stored, or None if it wasn't.
-    """
-    raise NotImplementedError('Child class must implement method.')
-
-
-class ClusterFuzzLite(BaseClusterFuzzDeployment):
-  """Class representing a deployment of ClusterFuzzLite."""
-
-  def download_latest_build(self, out_dir):
-    logging.info('download_latest_build not implemented for ClusterFuzzLite.')
-
-  def download_corpus(self, target_name, out_dir):
-    logging.info('download_corpus not implemented for ClusterFuzzLite.')
-
-
-class OSSFuzz(BaseClusterFuzzDeployment):
-  """The OSS-Fuzz ClusterFuzz deployment."""
-
-  # Location of clusterfuzz builds on GCS.
-  CLUSTERFUZZ_BUILDS = 'clusterfuzz-builds'
-
-  # Format string for the latest version of a project's build.
-  VERSION_STRING = '{project_name}-{sanitizer}-latest.version'
-
-  # Zip file name containing the corpus.
-  CORPUS_ZIP_NAME = 'public.zip'
-
-  def get_latest_build_name(self):
-    """Gets the name of the latest OSS-Fuzz build of a project.
-
-    Returns:
-      A string with the latest build version or None.
-    """
-    version_file = self.VERSION_STRING.format(
-        project_name=self.config.project_name, sanitizer=self.config.sanitizer)
-    version_url = utils.url_join(utils.GCS_BASE_URL, self.CLUSTERFUZZ_BUILDS,
-                                 self.config.project_name, version_file)
-    try:
-      response = urllib.request.urlopen(version_url)
-    except urllib.error.HTTPError:
-      logging.error('Error getting latest build version for %s from: %s.',
-                    self.config.project_name, version_url)
-      return None
-    return response.read().decode()
-
-  def download_latest_build(self, out_dir):
-    """Downloads the latest OSS-Fuzz build from GCS.
-
-    Returns:
-      A path to where the OSS-Fuzz build was stored, or None if it wasn't.
-    """
-    build_dir = os.path.join(out_dir, self.BUILD_DIR_NAME)
-    if os.path.exists(build_dir):
-      return build_dir
-
-    os.makedirs(build_dir, exist_ok=True)
-
-    latest_build_name = self.get_latest_build_name()
-    if not latest_build_name:
-      return None
-
-    oss_fuzz_build_url = utils.url_join(utils.GCS_BASE_URL,
-                                        self.CLUSTERFUZZ_BUILDS,
-                                        self.config.project_name,
-                                        latest_build_name)
-    if download_and_unpack_zip(oss_fuzz_build_url, build_dir):
-      return build_dir
-
-    return None
-
-  def download_corpus(self, target_name, out_dir):
-    """Downloads the latest OSS-Fuzz corpus for the target.
-
-    Returns:
-      The local path to to corpus or None if download failed.
-    """
-    corpus_dir = os.path.join(out_dir, self.CORPUS_DIR_NAME, target_name)
-    os.makedirs(corpus_dir, exist_ok=True)
-    # TODO(metzman): Clean up this code.
-    project_qualified_fuzz_target_name = target_name
-    qualified_name_prefix = self.config.project_name + '_'
-
-    if not target_name.startswith(qualified_name_prefix):
-      project_qualified_fuzz_target_name = qualified_name_prefix + target_name
-
-    corpus_url = utils.url_join(
-        utils.GCS_BASE_URL,
-        '{0}-backup.clusterfuzz-external.appspot.com/corpus/libFuzzer/'.format(
-            self.config.project_name), project_qualified_fuzz_target_name,
-        self.CORPUS_ZIP_NAME)
-
-    if download_and_unpack_zip(corpus_url, corpus_dir):
-      return corpus_dir
-
-    return None
-
-
-def download_url(url, filename, num_attempts=3):
-  """Downloads the file located at |url|, using HTTP to |filename|.
-
-  Args:
-    url: A url to a file to download.
-    filename: The path the file should be downloaded to.
-    num_retries: The number of times to retry the download on
-       ConnectionResetError.
-
-  Returns:
-    True on success.
-  """
-  sleep_time = 1
-
-  # Don't use retry wrapper since we don't want this to raise any exceptions.
-  for _ in range(num_attempts):
-    try:
-      urllib.request.urlretrieve(url, filename)
-      return True
-    except urllib.error.HTTPError:
-      # In these cases, retrying probably wont work since the error probably
-      # means there is nothing at the URL to download.
-      logging.error('Unable to download from: %s.', url)
-      return False
-    except ConnectionResetError:
-      # These errors are more likely to be transient. Retry.
-      pass
-    time.sleep(sleep_time)
-
-  logging.error('Failed to download %s, %d times.', url, num_attempts)
-
-  return False
-
-
-def download_and_unpack_zip(url, extract_directory):
-  """Downloads and unpacks a zip file from an HTTP URL.
-
-  Args:
-    url: A url to the zip file to be downloaded and unpacked.
-    out_dir: The path where the zip file should be extracted to.
-
-  Returns:
-    True on success.
-  """
-  if not os.path.exists(extract_directory):
-    logging.error('Extract directory: %s does not exist.', extract_directory)
-    return False
-
-  # Gives the temporary zip file a unique identifier in the case that
-  # that download_and_unpack_zip is done in parallel.
-  with tempfile.NamedTemporaryFile(suffix='.zip') as tmp_file:
-    if not download_url(url, tmp_file.name):
-      return False
-
-    try:
-      with zipfile.ZipFile(tmp_file.name, 'r') as zip_file:
-        zip_file.extractall(extract_directory)
-    except zipfile.BadZipFile:
-      logging.error('Error unpacking zip from %s. Bad Zipfile.', url)
-      return False
-
-  return True
-
-
-def get_clusterfuzz_deployment(config):
-  """Returns object reprsenting deployment of ClusterFuzz used by |config|."""
-  if (config.platform == config.Platform.INTERNAL_GENERIC_CI or
-      config.platform == config.Platform.INTERNAL_GITHUB):
-    logging.info('Using OSS-Fuzz as ClusterFuzz deployment.')
-    return OSSFuzz(config)
-  logging.info('Using ClusterFuzzLite as ClusterFuzz deployment.')
-  return ClusterFuzzLite(config)
diff --git a/infra/cifuzz/clusterfuzz_deployment_test.py b/infra/cifuzz/clusterfuzz_deployment_test.py
deleted file mode 100644
index 06ff784..0000000
--- a/infra/cifuzz/clusterfuzz_deployment_test.py
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Tests for clusterfuzz_deployment.py"""
-
-import os
-import unittest
-from unittest import mock
-import urllib.error
-
-from pyfakefs import fake_filesystem_unittest
-
-import clusterfuzz_deployment
-import config_utils
-
-# NOTE: This integration test relies on
-# https://github.com/google/oss-fuzz/tree/master/projects/example project.
-EXAMPLE_PROJECT = 'example'
-
-# An example fuzzer that triggers an error.
-EXAMPLE_FUZZER = 'example_crash_fuzzer'
-
-
-def _create_config(**kwargs):
-  """Creates a config object and then sets every attribute that is a key in
-  |kwargs| to the corresponding value. Asserts that each key in |kwargs| is an
-  attribute of Config."""
-  defaults = {'is_github': True, 'project_name': EXAMPLE_PROJECT}
-  for default_key, default_value in defaults.items():
-    if default_key not in kwargs:
-      kwargs[default_key] = default_value
-
-  with mock.patch('os.path.basename', return_value=None), mock.patch(
-      'config_utils.get_project_src_path',
-      return_value=None), mock.patch('config_utils._is_dry_run',
-                                     return_value=True):
-    config = config_utils.RunFuzzersConfig()
-
-  for key, value in kwargs.items():
-    assert hasattr(config, key), 'Config doesn\'t have attribute: ' + key
-    setattr(config, key, value)
-  return config
-
-
-def _create_deployment(**kwargs):
-  config = _create_config(**kwargs)
-  return clusterfuzz_deployment.get_clusterfuzz_deployment(config)
-
-
-class OSSFuzzTest(fake_filesystem_unittest.TestCase):
-  """Tests OSSFuzz."""
-
-  OUT_DIR = '/out'
-
-  def setUp(self):
-    self.setUpPyfakefs()
-    self.deployment = _create_deployment()
-
-  @mock.patch('clusterfuzz_deployment.download_and_unpack_zip',
-              return_value=True)
-  def test_download_corpus(self, mocked_download_and_unpack_zip):
-    """Tests that we can download a corpus for a valid project."""
-    result = self.deployment.download_corpus(EXAMPLE_FUZZER, self.OUT_DIR)
-    self.assertIsNotNone(result)
-    expected_corpus_dir = os.path.join(self.OUT_DIR, 'cifuzz-corpus',
-                                       EXAMPLE_FUZZER)
-    expected_url = ('https://storage.googleapis.com/example-backup.'
-                    'clusterfuzz-external.appspot.com/corpus/libFuzzer/'
-                    'example_crash_fuzzer/public.zip')
-    call_args, _ = mocked_download_and_unpack_zip.call_args
-    self.assertEqual(call_args, (expected_url, expected_corpus_dir))
-
-  @mock.patch('clusterfuzz_deployment.download_and_unpack_zip',
-              return_value=False)
-  def test_download_fail(self, _):
-    """Tests that when downloading fails, None is returned."""
-    corpus_path = self.deployment.download_corpus(EXAMPLE_FUZZER, self.OUT_DIR)
-    self.assertIsNone(corpus_path)
-
-  def test_get_latest_build_name(self):
-    """Tests that the latest build name can be retrieved from GCS."""
-    latest_build_name = self.deployment.get_latest_build_name()
-    self.assertTrue(latest_build_name.endswith('.zip'))
-    self.assertTrue('address' in latest_build_name)
-
-
-class DownloadUrlTest(unittest.TestCase):
-  """Tests that download_url works."""
-  URL = 'example.com/file'
-  FILE_PATH = '/tmp/file'
-
-  @mock.patch('time.sleep')
-  @mock.patch('urllib.request.urlretrieve', return_value=True)
-  def test_download_url_no_error(self, mocked_urlretrieve, _):
-    """Tests that download_url works when there is no error."""
-    self.assertTrue(
-        clusterfuzz_deployment.download_url(self.URL, self.FILE_PATH))
-    self.assertEqual(1, mocked_urlretrieve.call_count)
-
-  @mock.patch('time.sleep')
-  @mock.patch('logging.error')
-  @mock.patch('urllib.request.urlretrieve',
-              side_effect=urllib.error.HTTPError(None, None, None, None, None))
-  def test_download_url_http_error(self, mocked_urlretrieve, mocked_error, _):
-    """Tests that download_url doesn't retry when there is an HTTP error."""
-    self.assertFalse(
-        clusterfuzz_deployment.download_url(self.URL, self.FILE_PATH))
-    mocked_error.assert_called_with('Unable to download from: %s.', self.URL)
-    self.assertEqual(1, mocked_urlretrieve.call_count)
-
-  @mock.patch('time.sleep')
-  @mock.patch('logging.error')
-  @mock.patch('urllib.request.urlretrieve', side_effect=ConnectionResetError)
-  def test_download_url_connection_error(self, mocked_urlretrieve, mocked_error,
-                                         mocked_sleep):
-    """Tests that download_url doesn't retry when there is an HTTP error."""
-    self.assertFalse(
-        clusterfuzz_deployment.download_url(self.URL, self.FILE_PATH))
-    self.assertEqual(3, mocked_urlretrieve.call_count)
-    self.assertEqual(3, mocked_sleep.call_count)
-    mocked_error.assert_called_with('Failed to download %s, %d times.',
-                                    self.URL, 3)
-
-
-class DownloadAndUnpackZipTest(fake_filesystem_unittest.TestCase):
-  """Tests download_and_unpack_zip."""
-
-  def setUp(self):
-    self.setUpPyfakefs()
-
-  @mock.patch('urllib.request.urlretrieve', return_value=True)
-  def test_bad_zip_download(self, _):
-    """Tests download_and_unpack_zip returns none when a bad zip is passed."""
-    self.fs.create_file('/url_tmp.zip', contents='Test file.')
-    self.assertFalse(
-        clusterfuzz_deployment.download_and_unpack_zip('/not/a/real/url',
-                                                       '/extract-directory'))
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/infra/cifuzz/config_utils.py b/infra/cifuzz/config_utils.py
deleted file mode 100644
index ad2cd36..0000000
--- a/infra/cifuzz/config_utils.py
+++ /dev/null
@@ -1,180 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Module for getting the configuration CIFuzz needs to run."""
-
-import logging
-import enum
-import os
-import json
-
-import environment
-
-
-def _get_project_repo_name():
-  return os.path.basename(environment.get('GITHUB_REPOSITORY', ''))
-
-
-def _get_pr_ref(event):
-  if event == 'pull_request':
-    return environment.get('GITHUB_REF')
-  return None
-
-
-def _get_sanitizer():
-  return os.getenv('SANITIZER', 'address').lower()
-
-
-def _get_project_name():
-  # TODO(metzman): Remove OSS-Fuzz reference.
-  return os.getenv('OSS_FUZZ_PROJECT_NAME')
-
-
-def _is_dry_run():
-  """Returns True if configured to do a dry run."""
-  return environment.get_bool('DRY_RUN', 'false')
-
-
-def get_project_src_path(workspace):
-  """Returns the manually checked out path of the project's source if specified
-  or None."""
-  # TODO(metzman): Get rid of MANUAL_SRC_PATH when Skia switches to
-  # PROJECT_SRC_PATH.
-  path = os.getenv('PROJECT_SRC_PATH', os.getenv('MANUAL_SRC_PATH'))
-  if not path:
-    logging.debug('No PROJECT_SRC_PATH.')
-    return path
-
-  logging.debug('PROJECT_SRC_PATH set.')
-  if os.path.isabs(path):
-    return path
-
-  # If |src| is not absolute, assume we are running in GitHub actions.
-  # TODO(metzman): Don't make this assumption.
-  return os.path.join(workspace, path)
-
-
-DEFAULT_LANGUAGE = 'c++'
-
-
-def _get_language():
-  """Returns the project language."""
-  # Get language from environment. We took this approach because the convenience
-  # given to OSS-Fuzz users by not making them specify the language again (and
-  # getting it from the project.yaml) is outweighed by the complexity in
-  # implementing this. A lot of the complexity comes from our unittests not
-  # setting a proper projet at this point.
-  return os.getenv('LANGUAGE', DEFAULT_LANGUAGE)
-
-
-# pylint: disable=too-few-public-methods,too-many-instance-attributes
-
-
-class BaseConfig:
-  """Object containing constant configuration for CIFuzz."""
-
-  class Platform(enum.Enum):
-    """Enum representing the different platforms CIFuzz runs on."""
-    EXTERNAL_GITHUB = 0  # Non-OSS-Fuzz on GitHub actions.
-    INTERNAL_GITHUB = 1  # OSS-Fuzz on GitHub actions.
-    INTERNAL_GENERIC_CI = 2  # OSS-Fuzz on any CI.
-
-  def __init__(self):
-    self.workspace = os.getenv('GITHUB_WORKSPACE')
-    self.project_name = _get_project_name()
-    # Check if failures should not be reported.
-    self.dry_run = _is_dry_run()
-    self.sanitizer = _get_sanitizer()
-    self.build_integration_path = os.getenv('BUILD_INTEGRATION_PATH')
-    self.language = _get_language()
-    event_path = os.getenv('GITHUB_EVENT_PATH')
-    self.is_github = bool(event_path)
-    logging.debug('Is github: %s.', self.is_github)
-    # TODO(metzman): Parse env like we do in ClusterFuzz.
-    self.low_disk_space = environment.get('LOW_DISK_SPACE', False)
-
-  @property
-  def is_internal(self):
-    """Returns True if this is an OSS-Fuzz project."""
-    return not self.build_integration_path
-
-  @property
-  def platform(self):
-    """Returns the platform CIFuzz is runnning on."""
-    if not self.is_internal:
-      return self.Platform.EXTERNAL_GITHUB
-    if self.is_github:
-      return self.Platform.INTERNAL_GITHUB
-    return self.Platform.INTERNAL_GENERIC_CI
-
-
-class RunFuzzersConfig(BaseConfig):
-  """Class containing constant configuration for running fuzzers in CIFuzz."""
-
-  RUN_FUZZERS_MODES = {'batch', 'ci'}
-
-  def __init__(self):
-    super().__init__()
-    self.fuzz_seconds = int(os.environ.get('FUZZ_SECONDS', 600))
-    self.run_fuzzers_mode = os.environ.get('RUN_FUZZERS_MODE', 'ci').lower()
-    if self.run_fuzzers_mode not in self.RUN_FUZZERS_MODES:
-      raise Exception(
-          ('Invalid RUN_FUZZERS_MODE %s not one of allowed choices: %s.' %
-           self.run_fuzzers_mode, self.RUN_FUZZERS_MODES))
-
-
-class BuildFuzzersConfig(BaseConfig):
-  """Class containing constant configuration for building fuzzers in CIFuzz."""
-
-  def _get_config_from_event_path(self, event):
-    event_path = os.getenv('GITHUB_EVENT_PATH')
-    if not event_path:
-      return
-    with open(event_path, encoding='utf-8') as file_handle:
-      event_data = json.load(file_handle)
-    if event == 'push':
-      self.base_commit = event_data['before']
-      logging.debug('base_commit: %s', self.base_commit)
-    else:
-      self.pr_ref = 'refs/pull/{0}/merge'.format(
-          event_data['pull_request']['number'])
-      logging.debug('pr_ref: %s', self.pr_ref)
-
-    self.git_url = event_data['repository']['html_url']
-
-  def __init__(self):
-    """Get the configuration from CIFuzz from the environment. These variables
-    are set by GitHub or the user."""
-    # TODO(metzman): Some of this config is very CI-specific. Move it into the
-    # CI class.
-    super().__init__()
-    self.project_repo_name = _get_project_repo_name()
-    self.commit_sha = os.getenv('GITHUB_SHA')
-    event = os.getenv('GITHUB_EVENT_NAME')
-
-    self.pr_ref = None
-    self.git_url = None
-    self.base_commit = None
-    self._get_config_from_event_path(event)
-
-    self.base_ref = os.getenv('GITHUB_BASE_REF')
-    self.project_src_path = get_project_src_path(self.workspace)
-
-    self.allowed_broken_targets_percentage = os.getenv(
-        'ALLOWED_BROKEN_TARGETS_PERCENTAGE')
-    self.bad_build_check = environment.get_bool('BAD_BUILD_CHECK', 'true')
-
-    # TODO(metzman): Use better system for interpreting env vars. What if env
-    # var is set to '0'?
-    self.keep_unaffected_fuzz_targets = bool(
-        os.getenv('KEEP_UNAFFECTED_FUZZERS'))
diff --git a/infra/cifuzz/config_utils_test.py b/infra/cifuzz/config_utils_test.py
deleted file mode 100644
index 6f87bd4..0000000
--- a/infra/cifuzz/config_utils_test.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Module for getting the configuration CIFuzz needs to run."""
-import os
-import unittest
-
-import config_utils
-import test_helpers
-
-# pylint: disable=no-self-use
-
-
-class BaseConfigTest(unittest.TestCase):
-  """Tests for BaseConfig."""
-
-  def setUp(self):
-    test_helpers.patch_environ(self)
-
-  def _create_config(self):
-    return config_utils.BuildFuzzersConfig()
-
-  def test_language_default(self):
-    """Tests that the correct default language is set."""
-    os.environ['BUILD_INTEGRATION_PATH'] = '/path'
-    config = self._create_config()
-    self.assertEqual(config.language, 'c++')
-
-  def test_language(self):
-    """Tests that the correct language is set."""
-    os.environ['BUILD_INTEGRATION_PATH'] = '/path'
-    language = 'python'
-    os.environ['LANGUAGE'] = language
-    config = self._create_config()
-    self.assertEqual(config.language, language)
-
-
-class BuildFuzzersConfigTest(unittest.TestCase):
-  """Tests for BuildFuzzersConfig."""
-
-  def setUp(self):
-    test_helpers.patch_environ(self)
-
-  def _create_config(self):
-    return config_utils.BuildFuzzersConfig()
-
-  def test_base_ref(self):
-    """Tests that base_ref is set properly."""
-    expected_base_ref = 'expected_base_ref'
-    os.environ['GITHUB_BASE_REF'] = expected_base_ref
-    config = self._create_config()
-    self.assertEqual(config.base_ref, expected_base_ref)
-
-  def test_keep_unaffected_defaults_to_false(self):
-    """Tests that keep_unaffected_fuzz_targets defaults to false."""
-    config = self._create_config()
-    self.assertFalse(config.keep_unaffected_fuzz_targets)
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/infra/cifuzz/continuous_integration.py b/infra/cifuzz/continuous_integration.py
deleted file mode 100644
index b2e8af2..0000000
--- a/infra/cifuzz/continuous_integration.py
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Implementations for various CI systems."""
-
-import os
-import collections
-import sys
-import logging
-
-# pylint: disable=wrong-import-position,import-error
-sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-import build_specified_commit
-import helper
-import repo_manager
-import retry
-import utils
-
-# pylint: disable=too-few-public-methods
-
-BuildPreparationResult = collections.namedtuple(
-    'BuildPreparationResult', ['success', 'image_repo_path', 'repo_manager'])
-
-
-def fix_git_repo_for_diff(repo_manager_obj):
-  """Fixes git repos cloned by the "checkout" action so that diffing works on
-  them."""
-  command = [
-      'git', 'symbolic-ref', 'refs/remotes/origin/HEAD',
-      'refs/remotes/origin/master'
-  ]
-  return utils.execute(command, location=repo_manager_obj.repo_dir)
-
-
-class BaseCi:
-  """Class representing common CI functionality."""
-
-  def __init__(self, config):
-    self.config = config
-
-  def prepare_for_fuzzer_build(self):
-    """Builds the fuzzer builder image and gets the source code we need to
-    fuzz."""
-    raise NotImplementedError('Children must implement this method.')
-
-  def get_diff_base(self):
-    """Returns the base to diff against with git to get the change under
-    test."""
-    raise NotImplementedError('Children must implement this method.')
-
-  def get_changed_code_under_test(self, repo_manager_obj):
-    """Returns the changed files that need to be tested."""
-    base = self.get_diff_base()
-    fix_git_repo_for_diff(repo_manager_obj)
-    logging.info('Diffing against %s.', base)
-    return repo_manager_obj.get_git_diff(base)
-
-
-def get_ci(config):
-  """Determines what kind of CI is being used and returns the object
-  representing that system."""
-  if config.platform == config.Platform.EXTERNAL_GITHUB:
-    # Non-OSS-Fuzz projects must bring their own source and their own build
-    # integration (which is relative to that source).
-    return ExternalGithub(config)
-
-  if config.platform == config.Platform.INTERNAL_GENERIC_CI:
-    # Builds of OSS-Fuzz projects not hosted on Github must bring their own
-    # source since the checkout logic CIFuzz implements is github-specific.
-    # TODO(metzman): Consider moving Github-actions builds of OSS-Fuzz projects
-    # to this system to reduce implementation complexity.
-    return InternalGeneric(config)
-
-  return InternalGithub(config)
-
-
-def checkout_specified_commit(repo_manager_obj, pr_ref, commit_sha):
-  """Checks out the specified commit or pull request using
-  |repo_manager_obj|."""
-  try:
-    if pr_ref:
-      repo_manager_obj.checkout_pr(pr_ref)
-    else:
-      repo_manager_obj.checkout_commit(commit_sha)
-  except (RuntimeError, ValueError):
-    logging.error(
-        'Can not check out requested state %s. '
-        'Using current repo state', pr_ref or commit_sha)
-
-
-class GithubCiMixin:
-  """Mixin for Github based CI systems."""
-
-  def get_diff_base(self):
-    """Returns the base to diff against with git to get the change under
-    test."""
-    if self.config.base_ref:
-      logging.debug('Diffing against base_ref: %s.', self.config.base_ref)
-      return self.config.base_ref
-    logging.debug('Diffing against base_commit: %s.', self.config.base_commit)
-    return self.config.base_commit
-
-  def get_changed_code_under_test(self, repo_manager_obj):
-    """Returns the changed files that need to be tested."""
-    if self.config.base_ref:
-      repo_manager_obj.fetch_branch(self.config.base_ref)
-    return super().get_changed_code_under_test(repo_manager_obj)
-
-
-class InternalGithub(GithubCiMixin, BaseCi):
-  """Class representing CI for an OSS-Fuzz project on Github Actions."""
-
-  def prepare_for_fuzzer_build(self):
-    """Builds the fuzzer builder image, checks out the pull request/commit and
-    returns the BuildPreparationResult."""
-    logging.info('Building OSS-Fuzz project on Github Actions.')
-    assert self.config.pr_ref or self.config.commit_sha
-    # detect_main_repo builds the image as a side effect.
-    inferred_url, image_repo_path = (build_specified_commit.detect_main_repo(
-        self.config.project_name, repo_name=self.config.project_repo_name))
-
-    if not inferred_url or not image_repo_path:
-      logging.error('Could not detect repo from project %s.',
-                    self.config.project_name)
-      return BuildPreparationResult(False, None, None)
-
-    git_workspace = os.path.join(self.config.workspace, 'storage')
-    os.makedirs(git_workspace, exist_ok=True)
-
-    # Use the same name used in the docker image so we can overwrite it.
-    image_repo_name = os.path.basename(image_repo_path)
-
-    # Checkout project's repo in the shared volume.
-    manager = repo_manager.clone_repo_and_get_manager(inferred_url,
-                                                      git_workspace,
-                                                      repo_name=image_repo_name)
-    checkout_specified_commit(manager, self.config.pr_ref,
-                              self.config.commit_sha)
-
-    return BuildPreparationResult(True, image_repo_path, manager)
-
-
-class InternalGeneric(BaseCi):
-  """Class representing CI for an OSS-Fuzz project on a CI other than Github
-  actions."""
-
-  def prepare_for_fuzzer_build(self):
-    """Builds the project builder image for an OSS-Fuzz project outside of
-    GitHub actions. Returns the repo_manager. Does not checkout source code
-    since external projects are expected to bring their own source code to
-    CIFuzz."""
-    logging.info('Building OSS-Fuzz project.')
-    # detect_main_repo builds the image as a side effect.
-    _, image_repo_path = (build_specified_commit.detect_main_repo(
-        self.config.project_name, repo_name=self.config.project_repo_name))
-
-    if not image_repo_path:
-      logging.error('Could not detect repo from project %s.',
-                    self.config.project_name)
-      return BuildPreparationResult(False, None, None)
-
-    manager = repo_manager.RepoManager(self.config.project_src_path)
-    return BuildPreparationResult(True, image_repo_path, manager)
-
-  def get_diff_base(self):
-    return 'origin...'
-
-
-_IMAGE_BUILD_TRIES = 3
-_IMAGE_BUILD_BACKOFF = 2
-
-
-@retry.wrap(_IMAGE_BUILD_TRIES, _IMAGE_BUILD_BACKOFF)
-def build_external_project_docker_image(project_name, project_src,
-                                        build_integration_path):
-  """Builds the project builder image for an external (non-OSS-Fuzz) project.
-  Returns True on success."""
-  dockerfile_path = os.path.join(build_integration_path, 'Dockerfile')
-  tag = 'gcr.io/oss-fuzz/{project_name}'.format(project_name=project_name)
-  command = ['-t', tag, '-f', dockerfile_path, project_src]
-  return helper.docker_build(command)
-
-
-class ExternalGithub(GithubCiMixin, BaseCi):
-  """Class representing CI for a non-OSS-Fuzz project on Github Actions."""
-
-  def prepare_for_fuzzer_build(self):
-    """Builds the project builder image for a non-OSS-Fuzz project on GitHub
-    actions. Sets the repo manager. Does not checkout source code since external
-    projects are expected to bring their own source code to CIFuzz. Returns True
-    on success."""
-    logging.info('Building external project.')
-    git_workspace = os.path.join(self.config.workspace, 'storage')
-    os.makedirs(git_workspace, exist_ok=True)
-    # Checkout before building, so we don't need to rely on copying the source
-    # into the image.
-    # TODO(metzman): Figure out if we want second copy at all.
-    manager = repo_manager.clone_repo_and_get_manager(
-        self.config.git_url,
-        git_workspace,
-        repo_name=self.config.project_repo_name)
-    checkout_specified_commit(manager, self.config.pr_ref,
-                              self.config.commit_sha)
-
-    build_integration_path = os.path.join(manager.repo_dir,
-                                          self.config.build_integration_path)
-    if not build_external_project_docker_image(
-        self.config.project_name, manager.repo_dir, build_integration_path):
-      logging.error('Failed to build external project.')
-      return BuildPreparationResult(False, None, None)
-
-    image_repo_path = os.path.join('/src', self.config.project_repo_name)
-    return BuildPreparationResult(True, image_repo_path, manager)
diff --git a/infra/cifuzz/coverage.py b/infra/cifuzz/coverage.py
deleted file mode 100644
index 9a179c5..0000000
--- a/infra/cifuzz/coverage.py
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Module for determining coverage of fuzz targets."""
-import logging
-import os
-import sys
-import json
-import urllib.error
-import urllib.request
-
-# pylint: disable=wrong-import-position,import-error
-sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-import utils
-
-# The path to get project's latest report json file.
-LATEST_REPORT_INFO_PATH = 'oss-fuzz-coverage/latest_report_info/'
-
-
-class OssFuzzCoverageGetter:
-  """Gets coverage data for a project from OSS-Fuzz."""
-
-  def __init__(self, project_name, repo_path):
-    """Constructor for OssFuzzCoverageGetter. Callers should check that
-    fuzzer_stats_url is initialized."""
-    self.project_name = project_name
-    self.repo_path = _normalize_repo_path(repo_path)
-    self.fuzzer_stats_url = _get_fuzzer_stats_dir_url(self.project_name)
-
-  def get_target_coverage_report(self, target):
-    """Get the coverage report for a specific fuzz target.
-
-    Args:
-      target: The name of the fuzz target whose coverage is requested.
-
-    Returns:
-      The target's coverage json dict or None on failure.
-    """
-    if not self.fuzzer_stats_url:
-      return None
-
-    target_url = utils.url_join(self.fuzzer_stats_url, target + '.json')
-    return get_json_from_url(target_url)
-
-  def get_files_covered_by_target(self, target):
-    """Gets a list of source files covered by the specific fuzz target.
-
-    Args:
-      target: The name of the fuzz target whose coverage is requested.
-
-    Returns:
-      A list of files that the fuzz targets covers or None.
-    """
-    target_cov = self.get_target_coverage_report(target)
-    if not target_cov:
-      return None
-
-    coverage_per_file = get_coverage_per_file(target_cov)
-    if not coverage_per_file:
-      logging.info('No files found in coverage report.')
-      return None
-
-    affected_file_list = []
-    for file_cov in coverage_per_file:
-      norm_file_path = os.path.normpath(file_cov['filename'])
-      if not norm_file_path.startswith(self.repo_path):
-        # Exclude files outside of the main repo.
-        continue
-
-      if not is_file_covered(file_cov):
-        # Don't consider a file affected if code in it is never executed.
-        continue
-
-      # TODO(metzman): It's weird to me that we access file_cov['filename']
-      # again and not norm_file_path, figure out if this makes sense.
-      relative_path = utils.remove_prefix(file_cov['filename'], self.repo_path)
-      affected_file_list.append(relative_path)
-
-    return affected_file_list
-
-
-def is_file_covered(file_cov):
-  """Returns whether the file is covered."""
-  return file_cov['summary']['regions']['covered']
-
-
-def get_coverage_per_file(target_cov):
-  """Returns the coverage per file within |target_cov|."""
-  return target_cov['data'][0]['files']
-
-
-def _normalize_repo_path(repo_path):
-  """Normalizes and returns |repo_path| to make sure cases like /src/curl and
-  /src/curl/ are both handled."""
-  repo_path = os.path.normpath(repo_path)
-  if not repo_path.endswith('/'):
-    repo_path += '/'
-  return repo_path
-
-
-def _get_latest_cov_report_info(project_name):
-  """Gets and returns a dictionary containing the latest coverage report info
-  for |project|."""
-  latest_report_info_url = utils.url_join(utils.GCS_BASE_URL,
-                                          LATEST_REPORT_INFO_PATH,
-                                          project_name + '.json')
-  latest_cov_info = get_json_from_url(latest_report_info_url)
-  if latest_cov_info is None:
-    logging.error('Could not get the coverage report json from url: %s.',
-                  latest_report_info_url)
-    return None
-  return latest_cov_info
-
-
-def _get_fuzzer_stats_dir_url(project_name):
-  """Gets latest coverage report info for a specific OSS-Fuzz project from GCS.
-
-  Args:
-    project_name: The name of the relevant OSS-Fuzz project.
-
-  Returns:
-    The projects coverage report info in json dict or None on failure.
-  """
-  latest_cov_info = _get_latest_cov_report_info(project_name)
-
-  if not latest_cov_info:
-    return None
-
-  if 'fuzzer_stats_dir' not in latest_cov_info:
-    logging.error('fuzzer_stats_dir not in latest coverage info.')
-    return None
-
-  fuzzer_stats_dir_gs_url = latest_cov_info['fuzzer_stats_dir']
-  fuzzer_stats_dir_url = utils.gs_url_to_https(fuzzer_stats_dir_gs_url)
-  return fuzzer_stats_dir_url
-
-
-def get_json_from_url(url):
-  """Gets a json object from a specified HTTP URL.
-
-  Args:
-    url: The url of the json to be downloaded.
-
-  Returns:
-    A dictionary deserialized from JSON or None on failure.
-  """
-  try:
-    response = urllib.request.urlopen(url)
-  except urllib.error.HTTPError:
-    logging.error('HTTP error with url %s.', url)
-    return None
-
-  try:
-    # read().decode() fixes compatibility issue with urllib response object.
-    result_json = json.loads(response.read().decode())
-  except (ValueError, TypeError, json.JSONDecodeError) as err:
-    logging.error('Loading json from url %s failed with: %s.', url, str(err))
-    return None
-  return result_json
diff --git a/infra/cifuzz/coverage_test.py b/infra/cifuzz/coverage_test.py
deleted file mode 100644
index 1b24d79..0000000
--- a/infra/cifuzz/coverage_test.py
+++ /dev/null
@@ -1,194 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Tests for coverage.py"""
-import os
-import json
-import unittest
-from unittest import mock
-
-import coverage
-
-# pylint: disable=protected-access
-
-TEST_DATA_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)),
-                              'test_data')
-
-PROJECT_NAME = 'curl'
-REPO_PATH = '/src/curl'
-FUZZ_TARGET = 'curl_fuzzer'
-PROJECT_COV_JSON_FILENAME = 'example_curl_cov.json'
-FUZZ_TARGET_COV_JSON_FILENAME = 'example_curl_fuzzer_cov.json'
-INVALID_TARGET = 'not-a-fuzz-target'
-
-with open(os.path.join(TEST_DATA_PATH,
-                       PROJECT_COV_JSON_FILENAME),) as cov_file_handle:
-  PROJECT_COV_INFO = json.loads(cov_file_handle.read())
-
-
-class GetFuzzerStatsDirUrlTest(unittest.TestCase):
-  """Tests _get_fuzzer_stats_dir_url."""
-
-  @mock.patch('coverage.get_json_from_url',
-              return_value={
-                  'fuzzer_stats_dir':
-                      'gs://oss-fuzz-coverage/systemd/fuzzer_stats/20210303'
-              })
-  def test_get_valid_project(self, mocked_get_json_from_url):
-    """Tests that a project's coverage report can be downloaded and parsed.
-
-    NOTE: This test relies on the PROJECT_NAME repo's coverage report.
-    The "example" project was not used because it has no coverage reports.
-    """
-    result = coverage._get_fuzzer_stats_dir_url(PROJECT_NAME)
-    (url,), _ = mocked_get_json_from_url.call_args
-    self.assertEqual(
-        'https://storage.googleapis.com/oss-fuzz-coverage/'
-        'latest_report_info/curl.json', url)
-
-    expected_result = (
-        'https://storage.googleapis.com/oss-fuzz-coverage/systemd/fuzzer_stats/'
-        '20210303')
-    self.assertEqual(result, expected_result)
-
-  def test_get_invalid_project(self):
-    """Tests that passing a bad project returns None."""
-    self.assertIsNone(coverage._get_fuzzer_stats_dir_url('not-a-proj'))
-
-
-class GetTargetCoverageReportTest(unittest.TestCase):
-  """Tests get_target_coverage_report."""
-
-  def setUp(self):
-    with mock.patch('coverage._get_latest_cov_report_info',
-                    return_value=PROJECT_COV_INFO):
-      self.coverage_getter = coverage.OssFuzzCoverageGetter(
-          PROJECT_NAME, REPO_PATH)
-
-  @mock.patch('coverage.get_json_from_url', return_value={})
-  def test_valid_target(self, mocked_get_json_from_url):
-    """Tests that a target's coverage report can be downloaded and parsed."""
-    self.coverage_getter.get_target_coverage_report(FUZZ_TARGET)
-    (url,), _ = mocked_get_json_from_url.call_args
-    self.assertEqual(
-        'https://storage.googleapis.com/oss-fuzz-coverage/'
-        'curl/fuzzer_stats/20200226/curl_fuzzer.json', url)
-
-  def test_invalid_target(self):
-    """Tests that passing an invalid target coverage report returns None."""
-    self.assertIsNone(
-        self.coverage_getter.get_target_coverage_report(INVALID_TARGET))
-
-  @mock.patch('coverage._get_latest_cov_report_info', return_value=None)
-  def test_invalid_project_json(self, _):
-    """Tests an invalid project JSON results in None being returned."""
-    coverage_getter = coverage.OssFuzzCoverageGetter(PROJECT_NAME, REPO_PATH)
-    self.assertIsNone(coverage_getter.get_target_coverage_report(FUZZ_TARGET))
-
-
-class GetFilesCoveredByTargetTest(unittest.TestCase):
-  """Tests get_files_covered_by_target."""
-
-  def setUp(self):
-    with mock.patch('coverage._get_latest_cov_report_info',
-                    return_value=PROJECT_COV_INFO):
-      self.coverage_getter = coverage.OssFuzzCoverageGetter(
-          PROJECT_NAME, REPO_PATH)
-
-  def test_valid_target(self):
-    """Tests that covered files can be retrieved from a coverage report."""
-    with open(os.path.join(TEST_DATA_PATH,
-                           FUZZ_TARGET_COV_JSON_FILENAME),) as file_handle:
-      fuzzer_cov_info = json.loads(file_handle.read())
-
-    with mock.patch('coverage.OssFuzzCoverageGetter.get_target_coverage_report',
-                    return_value=fuzzer_cov_info):
-      file_list = self.coverage_getter.get_files_covered_by_target(FUZZ_TARGET)
-
-    curl_files_list_path = os.path.join(TEST_DATA_PATH,
-                                        'example_curl_file_list.json')
-    with open(curl_files_list_path) as file_handle:
-      expected_file_list = json.loads(file_handle.read())
-    self.assertCountEqual(file_list, expected_file_list)
-
-  def test_invalid_target(self):
-    """Tests passing invalid fuzz target returns None."""
-    self.assertIsNone(
-        self.coverage_getter.get_files_covered_by_target(INVALID_TARGET))
-
-
-class IsFileCoveredTest(unittest.TestCase):
-  """Tests for is_file_covered."""
-
-  def test_is_file_covered_covered(self):
-    """Tests that is_file_covered returns True for a covered file."""
-    file_coverage = {
-        'filename': '/src/systemd/src/basic/locale-util.c',
-        'summary': {
-            'regions': {
-                'count': 204,
-                'covered': 200,
-                'notcovered': 200,
-                'percent': 98.03
-            }
-        }
-    }
-    self.assertTrue(coverage.is_file_covered(file_coverage))
-
-  def test_is_file_covered_not_covered(self):
-    """Tests that is_file_covered returns False for a not covered file."""
-    file_coverage = {
-        'filename': '/src/systemd/src/basic/locale-util.c',
-        'summary': {
-            'regions': {
-                'count': 204,
-                'covered': 0,
-                'notcovered': 0,
-                'percent': 0
-            }
-        }
-    }
-    self.assertFalse(coverage.is_file_covered(file_coverage))
-
-
-class GetLatestCovReportInfo(unittest.TestCase):
-  """Tests that _get_latest_cov_report_info works as intended."""
-
-  PROJECT = 'project'
-  LATEST_REPORT_INFO_URL = ('https://storage.googleapis.com/oss-fuzz-coverage/'
-                            'latest_report_info/project.json')
-
-  @mock.patch('logging.error')
-  @mock.patch('coverage.get_json_from_url', return_value={'coverage': 1})
-  def test_get_latest_cov_report_info(self, mocked_get_json_from_url,
-                                      mocked_error):
-    """Tests that _get_latest_cov_report_info works as intended."""
-    result = coverage._get_latest_cov_report_info(self.PROJECT)
-    self.assertEqual(result, {'coverage': 1})
-    mocked_error.assert_not_called()
-    mocked_get_json_from_url.assert_called_with(self.LATEST_REPORT_INFO_URL)
-
-  @mock.patch('logging.error')
-  @mock.patch('coverage.get_json_from_url', return_value=None)
-  def test_get_latest_cov_report_info_fail(self, _, mocked_error):
-    """Tests that _get_latest_cov_report_info works as intended when we can't
-    get latest report info."""
-    result = coverage._get_latest_cov_report_info('project')
-    self.assertIsNone(result)
-    mocked_error.assert_called_with(
-        'Could not get the coverage report json from url: %s.',
-        self.LATEST_REPORT_INFO_URL)
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/infra/cifuzz/docker.py b/infra/cifuzz/docker.py
deleted file mode 100644
index eb993e2..0000000
--- a/infra/cifuzz/docker.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Module for dealing with docker."""
-import os
-import sys
-
-# pylint: disable=wrong-import-position,import-error
-sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-
-import utils
-
-BASE_BUILDER_TAG = 'gcr.io/oss-fuzz-base/base-builder'
-BASE_RUNNER_TAG = 'gcr.io/oss-fuzz-base/base-runner'
-MSAN_LIBS_BUILDER_TAG = 'gcr.io/oss-fuzz-base/msan-libs-builder'
-PROJECT_TAG_PREFIX = 'gcr.io/oss-fuzz/'
-
-
-def get_project_image_name(project):
-  """Returns the name of the project builder image for |project_name|."""
-  return PROJECT_TAG_PREFIX + project
-
-
-def delete_images(images):
-  """Deletes |images|."""
-  command = ['docker', 'rmi', '-f'] + images
-  utils.execute(command)
-  utils.execute(['docker', 'builder', 'prune', '-f'])
diff --git a/infra/cifuzz/environment.py b/infra/cifuzz/environment.py
deleted file mode 100644
index 4cc0f84..0000000
--- a/infra/cifuzz/environment.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Module for dealing with env vars."""
-
-import ast
-import os
-
-
-def _eval_value(value_string):
-  """Returns evaluated value."""
-  try:
-    return ast.literal_eval(value_string)
-  except:  # pylint: disable=bare-except
-    # String fallback.
-    return value_string
-
-
-def get(env_var, default_value=None):
-  """Returns an environment variable value."""
-  value_string = os.getenv(env_var)
-  if value_string is None:
-    return default_value
-
-  return _eval_value(value_string)
-
-
-def get_bool(env_var, default_value=None):
-  """Returns a boolean environment variable value. This is needed because a lot
-  of CIFuzz users specified 'false' for dry-run. So we need to special case
-  this."""
-  value = get(env_var, default_value)
-  if not isinstance(value, str):
-    return bool(value)
-
-  lower_value = value.lower()
-  allowed_values = {'true', 'false'}
-  if lower_value not in allowed_values:
-    raise Exception(('Bool env var {env_var} value {value} is invalid. '
-                     'Must be one of {allowed_values}').format(
-                         env_var=env_var,
-                         value=value,
-                         allowed_values=allowed_values))
-  return lower_value == 'true'
diff --git a/infra/cifuzz/example_main.yml b/infra/cifuzz/example_main.yml
deleted file mode 100644
index 82c239c..0000000
--- a/infra/cifuzz/example_main.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: CIFuzz
-on: [pull_request]
-jobs:
-  Fuzzing:
-    runs-on: ubuntu-latest
-    steps:
-    - name: Build Fuzzers
-      id: build
-      uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
-      with:
-        oss-fuzz-project-name: 'example'
-        dry-run: false
-    - name: Run Fuzzers
-      uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
-      with:
-        oss-fuzz-project-name: 'example'
-        fuzz-seconds: 600
-        dry-run: false
-    - name: Upload Crash
-      uses: actions/upload-artifact@v1
-      if: failure() && steps.build.outcome == 'success'
-      with:
-        name: artifacts
-        path: ./out/artifacts
diff --git a/infra/cifuzz/fuzz_target.py b/infra/cifuzz/fuzz_target.py
index c623bf6..9272bd2 100644
--- a/infra/cifuzz/fuzz_target.py
+++ b/infra/cifuzz/fuzz_target.py
@@ -12,84 +12,52 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 """A module to handle running a fuzz target for a specified amount of time."""
-import collections
 import logging
 import os
 import re
-import shutil
-import stat
 import subprocess
 import sys
 
-import docker
-
-# pylint: disable=wrong-import-position,import-error
+# pylint: disable=wrong-import-position
 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 import utils
 
+# TODO: Turn default logging to WARNING when CIFuzz is stable
 logging.basicConfig(
     format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
     level=logging.DEBUG)
 
-# Use a fixed seed for determinism. Use len_control=0 since we don't have enough
-# time fuzzing for len_control to make sense (probably).
-LIBFUZZER_OPTIONS = '-seed=1337 -len_control=0'
-
-# The number of reproduce attempts for a crash.
-REPRODUCE_ATTEMPTS = 10
-
-# Seconds on top of duration until a timeout error is raised.
-BUFFER_TIME = 10
-
-# Log message if we can't check if crash reproduces on an recent build.
-COULD_NOT_TEST_ON_RECENT_MESSAGE = (
-    'Crash is reproducible. Could not run recent build of '
-    'target to determine if this code change (pr/commit) introduced crash. '
-    'Assuming this code change introduced crash.')
-
-FuzzResult = collections.namedtuple('FuzzResult', ['testcase', 'stacktrace'])
-
-
-class ReproduceError(Exception):
-  """Error for when we can't attempt to reproduce a crash."""
-
 
 class FuzzTarget:
   """A class to manage a single fuzz target.
 
   Attributes:
+    project_name: The name of the OSS-Fuzz project the target is associated.
     target_name: The name of the fuzz target.
     duration: The length of time in seconds that the target should run.
     target_path: The location of the fuzz target binary.
-    out_dir: The location of where output artifacts are stored.
   """
 
-  # pylint: disable=too-many-arguments
-  def __init__(self, target_path, duration, out_dir, clusterfuzz_deployment,
-               config):
+  def __init__(self, project_name, target_path, duration, out_dir):
     """Represents a single fuzz target.
 
     Args:
+      project_name: The OSS-Fuzz project of this target.
       target_path: The location of the fuzz target binary.
       duration: The length of time  in seconds the target should run.
       out_dir: The location of where the output from crashes should be stored.
-      clusterfuzz_deployment: The object representing the ClusterFuzz
-          deployment.
-      config: The config of this project.
     """
+    self.target_name = os.path.basename(target_path)
+    self.duration = duration
+    self.project_name = project_name
     self.target_path = target_path
-    self.target_name = os.path.basename(self.target_path)
-    self.duration = int(duration)
     self.out_dir = out_dir
-    self.clusterfuzz_deployment = clusterfuzz_deployment
-    self.config = config
-    self.latest_corpus_path = None
 
   def fuzz(self):
     """Starts the fuzz target run for the length of time specified by duration.
 
     Returns:
-      FuzzResult namedtuple with stacktrace and testcase if applicable.
+      (test_case, stack trace) if found or (None, None) on timeout or error.
     """
     logging.info('Fuzzer %s, started.', self.target_name)
     docker_container = utils.get_container_name()
@@ -102,197 +70,39 @@
       command += ['-v', '%s:%s' % (self.out_dir, '/out')]
 
     command += [
-        '-e', 'FUZZING_ENGINE=libfuzzer', '-e',
-        'SANITIZER=' + self.config.sanitizer, '-e', 'CIFUZZ=True', '-e',
-        'RUN_FUZZER_MODE=interactive', docker.BASE_RUNNER_TAG, 'bash', '-c'
+        '-e', 'FUZZING_ENGINE=libfuzzer', '-e', 'SANITIZER=address', '-e',
+        'RUN_FUZZER_MODE=interactive', 'gcr.io/oss-fuzz-base/base-runner',
+        'bash', '-c', 'run_fuzzer {0}'.format(self.target_name)
     ]
-
-    run_fuzzer_command = 'run_fuzzer {fuzz_target} {options}'.format(
-        fuzz_target=self.target_name,
-        options=LIBFUZZER_OPTIONS + ' -max_total_time=' + str(self.duration))
-
-    # If corpus can be downloaded use it for fuzzing.
-    self.latest_corpus_path = self.clusterfuzz_deployment.download_corpus(
-        self.target_name, self.out_dir)
-    if self.latest_corpus_path:
-      run_fuzzer_command = run_fuzzer_command + ' ' + self.latest_corpus_path
-    command.append(run_fuzzer_command)
-
     logging.info('Running command: %s', ' '.join(command))
     process = subprocess.Popen(command,
                                stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE)
 
     try:
-      _, stderr = process.communicate(timeout=self.duration + BUFFER_TIME)
+      _, err = process.communicate(timeout=self.duration)
     except subprocess.TimeoutExpired:
-      logging.error('Fuzzer %s timed out, ending fuzzing.', self.target_name)
-      return FuzzResult(None, None)
+      logging.info('Fuzzer %s, finished with timeout.', self.target_name)
+      return None, None
 
-    # Libfuzzer timeout was reached.
-    if not process.returncode:
-      logging.info('Fuzzer %s finished with no crashes discovered.',
-                   self.target_name)
-      return FuzzResult(None, None)
-
-    # Crash was discovered.
     logging.info('Fuzzer %s, ended before timeout.', self.target_name)
-    testcase = self.get_testcase(stderr)
-    if not testcase:
-      logging.error(b'No testcase found in stacktrace: %s.', stderr)
-      return FuzzResult(None, None)
+    err_str = err.decode('ascii')
+    test_case = self.get_test_case(err_str)
+    if not test_case:
+      logging.error('No test case found in stack trace.', file=sys.stderr)
+      return None, None
+    return test_case, err_str
 
-    utils.binary_print(b'Fuzzer: %s. Detected bug:\n%s' %
-                       (self.target_name.encode(), stderr))
-    if self.is_crash_reportable(testcase):
-      # We found a bug in the fuzz target and we will report it.
-      return FuzzResult(testcase, stderr)
-
-    # We found a bug but we won't report it.
-    return FuzzResult(None, None)
-
-  def free_disk_if_needed(self):
-    """Deletes things that are no longer needed from fuzzing this fuzz target to
-    save disk space if needed."""
-    if not self.config.low_disk_space:
-      return
-    logging.info(
-        'Deleting corpus, seed corpus and fuzz target of %s to save disk.',
-        self.target_name)
-
-    # Delete the seed corpus, corpus, and fuzz target.
-    if self.latest_corpus_path and os.path.exists(self.latest_corpus_path):
-      # Use ignore_errors=True to fix
-      # https://github.com/google/oss-fuzz/issues/5383.
-      shutil.rmtree(self.latest_corpus_path, ignore_errors=True)
-
-    os.remove(self.target_path)
-    target_seed_corpus_path = self.target_path + '_seed_corpus.zip'
-    if os.path.exists(target_seed_corpus_path):
-      os.remove(target_seed_corpus_path)
-    logging.info('Done deleting.')
-
-  def is_reproducible(self, testcase, target_path):
-    """Checks if the testcase reproduces.
-
-      Args:
-        testcase: The path to the testcase to be tested.
-        target_path: The path to the fuzz target to be tested
-
-      Returns:
-        True if crash is reproducible and we were able to run the
-        binary.
-
-      Raises:
-        ReproduceError if we can't attempt to reproduce the crash.
-    """
-
-    if not os.path.exists(target_path):
-      raise ReproduceError('Target %s not found.' % target_path)
-
-    os.chmod(target_path, stat.S_IRWXO)
-
-    target_dirname = os.path.dirname(target_path)
-    command = ['docker', 'run', '--rm', '--privileged']
-    container = utils.get_container_name()
-    if container:
-      command += [
-          '--volumes-from', container, '-e', 'OUT=' + target_dirname, '-e',
-          'TESTCASE=' + testcase
-      ]
-    else:
-      command += [
-          '-v',
-          '%s:/out' % target_dirname, '-v',
-          '%s:/testcase' % testcase
-      ]
-
-    command += [
-        '-t', docker.BASE_RUNNER_TAG, 'reproduce', self.target_name, '-runs=100'
-    ]
-
-    logging.info('Running reproduce command: %s.', ' '.join(command))
-    for _ in range(REPRODUCE_ATTEMPTS):
-      _, _, returncode = utils.execute(command)
-      if returncode != 0:
-        logging.info('Reproduce command returned: %s. Reproducible on %s.',
-                     returncode, target_path)
-
-        return True
-
-    logging.info('Reproduce command returned 0. Not reproducible on %s.',
-                 target_path)
-    return False
-
-  def is_crash_reportable(self, testcase):
-    """Returns True if a crash is reportable. This means the crash is
-    reproducible but not reproducible on a build from the ClusterFuzz deployment
-    (meaning the crash was introduced by this PR/commit/code change).
+  def get_test_case(self, error_string):
+    """Gets the file from a fuzzer run stack trace.
 
     Args:
-      testcase: The path to the testcase that triggered the crash.
+      error_string: The stack trace string containing the error.
 
     Returns:
-      True if the crash was introduced by the current pull request.
-
-    Raises:
-      ReproduceError if we can't attempt to reproduce the crash on the PR build.
+      The error test case or None if not found.
     """
-    if not os.path.exists(testcase):
-      raise ReproduceError('Testcase %s not found.' % testcase)
-
-    try:
-      reproducible_on_code_change = self.is_reproducible(
-          testcase, self.target_path)
-    except ReproduceError as error:
-      logging.error('Could not run target when checking for reproducibility.'
-                    'Please file an issue:'
-                    'https://github.com/google/oss-fuzz/issues/new.')
-      raise error
-
-    if not reproducible_on_code_change:
-      logging.info('Failed to reproduce the crash using the obtained testcase.')
-      return False
-
-    clusterfuzz_build_dir = self.clusterfuzz_deployment.download_latest_build(
-        self.out_dir)
-    if not clusterfuzz_build_dir:
-      # Crash is reproducible on PR build and we can't test on a recent
-      # ClusterFuzz/OSS-Fuzz build.
-      logging.info(COULD_NOT_TEST_ON_RECENT_MESSAGE)
-      return True
-
-    clusterfuzz_target_path = os.path.join(clusterfuzz_build_dir,
-                                           self.target_name)
-    try:
-      reproducible_on_clusterfuzz_build = self.is_reproducible(
-          testcase, clusterfuzz_target_path)
-    except ReproduceError:
-      # This happens if the project has ClusterFuzz builds, but the fuzz target
-      # is not in it (e.g. because the fuzz target is new).
-      logging.info(COULD_NOT_TEST_ON_RECENT_MESSAGE)
-      return True
-
-    if not reproducible_on_clusterfuzz_build:
-      logging.info('The crash is reproducible. The crash doesn\'t reproduce '
-                   'on old builds. This code change probably introduced the '
-                   'crash.')
-      return True
-
-    logging.info('The crash is reproducible on old builds '
-                 '(without the current code change).')
-    return False
-
-  def get_testcase(self, error_bytes):
-    """Gets the file from a fuzzer run stacktrace.
-
-    Args:
-      error_bytes: The bytes containing the output from the fuzzer.
-
-    Returns:
-      The path to the testcase or None if not found.
-    """
-    match = re.search(rb'\bTest unit written to \.\/([^\s]+)', error_bytes)
+    match = re.search(r'\bTest unit written to \.\/([^\s]+)', error_string)
     if match:
-      return os.path.join(self.out_dir, match.group(1).decode('utf-8'))
+      return os.path.join(self.out_dir, match.group(1))
     return None
diff --git a/infra/cifuzz/fuzz_target_test.py b/infra/cifuzz/fuzz_target_test.py
deleted file mode 100644
index 8bec234..0000000
--- a/infra/cifuzz/fuzz_target_test.py
+++ /dev/null
@@ -1,253 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Tests the functionality of the fuzz_target module."""
-
-import os
-import tempfile
-import unittest
-from unittest import mock
-
-import parameterized
-from pyfakefs import fake_filesystem_unittest
-
-import clusterfuzz_deployment
-import config_utils
-import fuzz_target
-
-# NOTE: This integration test relies on
-# https://github.com/google/oss-fuzz/tree/master/projects/example project.
-EXAMPLE_PROJECT = 'example'
-
-# An example fuzzer that triggers an error.
-EXAMPLE_FUZZER = 'example_crash_fuzzer'
-
-# The return value of a successful call to utils.execute.
-EXECUTE_SUCCESS_RETVAL = ('', '', 0)
-
-# The return value of a failed call to utils.execute.
-EXECUTE_FAILURE_RETVAL = ('', '', 1)
-
-
-def _create_config(**kwargs):
-  """Creates a config object and then sets every attribute that is a key in
-  |kwargs| to the corresponding value. Asserts that each key in |kwargs| is an
-  attribute of Config."""
-  defaults = {'is_github': True, 'project_name': EXAMPLE_PROJECT}
-  for default_key, default_value in defaults.items():
-    if default_key not in kwargs:
-      kwargs[default_key] = default_value
-
-  with mock.patch('os.path.basename', return_value=None), mock.patch(
-      'config_utils.get_project_src_path',
-      return_value=None), mock.patch('config_utils._is_dry_run',
-                                     return_value=True):
-    config = config_utils.RunFuzzersConfig()
-
-  for key, value in kwargs.items():
-    assert hasattr(config, key), 'Config doesn\'t have attribute: ' + key
-    setattr(config, key, value)
-  return config
-
-
-def _create_deployment(**kwargs):
-  config = _create_config(**kwargs)
-  return clusterfuzz_deployment.get_clusterfuzz_deployment(config)
-
-
-# TODO(metzman): Use patch from test_libs/helpers.py in clusterfuzz so that we
-# don't need to accept this as an argument in every test method.
-@mock.patch('utils.get_container_name', return_value='container')
-class IsReproducibleTest(fake_filesystem_unittest.TestCase):
-  """Tests the is_reproducible method in the fuzz_target.FuzzTarget class."""
-
-  def setUp(self):
-    """Sets up example fuzz target to test is_reproducible method."""
-    self.fuzz_target_path = '/example/path'
-    self.testcase_path = '/testcase'
-    deployment = _create_deployment()
-    self.test_target = fuzz_target.FuzzTarget(self.fuzz_target_path,
-                                              fuzz_target.REPRODUCE_ATTEMPTS,
-                                              '/example/outdir', deployment,
-                                              deployment.config)
-
-  def test_reproducible(self, _):
-    """Tests that is_reproducible returns True if crash is detected and that
-    is_reproducible uses the correct command to reproduce a crash."""
-    self._set_up_fakefs()
-    all_repro = [EXECUTE_FAILURE_RETVAL] * fuzz_target.REPRODUCE_ATTEMPTS
-    with mock.patch('utils.execute', side_effect=all_repro) as mocked_execute:
-      result = self.test_target.is_reproducible(self.testcase_path,
-                                                self.fuzz_target_path)
-      mocked_execute.assert_called_once_with([
-          'docker', 'run', '--rm', '--privileged', '--volumes-from',
-          'container', '-e', 'OUT=/example', '-e',
-          'TESTCASE=' + self.testcase_path, '-t',
-          'gcr.io/oss-fuzz-base/base-runner', 'reproduce', 'path', '-runs=100'
-      ])
-      self.assertTrue(result)
-      self.assertEqual(1, mocked_execute.call_count)
-
-  def _set_up_fakefs(self):
-    """Helper to setup pyfakefs and add important files to the fake
-    filesystem."""
-    self.setUpPyfakefs()
-    self.fs.create_file(self.fuzz_target_path)
-    self.fs.create_file(self.testcase_path)
-
-  def test_flaky(self, _):
-    """Tests that is_reproducible returns True if crash is detected on the last
-    attempt."""
-    self._set_up_fakefs()
-    last_time_repro = [EXECUTE_SUCCESS_RETVAL] * 9 + [EXECUTE_FAILURE_RETVAL]
-    with mock.patch('utils.execute',
-                    side_effect=last_time_repro) as mocked_execute:
-      self.assertTrue(
-          self.test_target.is_reproducible(self.testcase_path,
-                                           self.fuzz_target_path))
-      self.assertEqual(fuzz_target.REPRODUCE_ATTEMPTS,
-                       mocked_execute.call_count)
-
-  def test_nonexistent_fuzzer(self, _):
-    """Tests that is_reproducible raises an error if it could not attempt
-    reproduction because the fuzzer doesn't exist."""
-    with self.assertRaises(fuzz_target.ReproduceError):
-      self.test_target.is_reproducible(self.testcase_path, '/non-existent-path')
-
-  def test_unreproducible(self, _):
-    """Tests that is_reproducible returns False for a crash that did not
-    reproduce."""
-    all_unrepro = [EXECUTE_SUCCESS_RETVAL] * fuzz_target.REPRODUCE_ATTEMPTS
-    self._set_up_fakefs()
-    with mock.patch('utils.execute', side_effect=all_unrepro):
-      result = self.test_target.is_reproducible(self.testcase_path,
-                                                self.fuzz_target_path)
-      self.assertFalse(result)
-
-
-class GetTestCaseTest(unittest.TestCase):
-  """Tests get_testcase."""
-
-  def setUp(self):
-    """Sets up example fuzz target to test get_testcase method."""
-    deployment = _create_deployment()
-    self.test_target = fuzz_target.FuzzTarget('/example/path', 10,
-                                              '/example/outdir', deployment,
-                                              deployment.config)
-
-  def test_valid_error_string(self):
-    """Tests that get_testcase returns the correct testcase give an error."""
-    testcase_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),
-                                 'test_data', 'example_crash_fuzzer_output.txt')
-    with open(testcase_path, 'rb') as test_fuzz_output:
-      parsed_testcase = self.test_target.get_testcase(test_fuzz_output.read())
-    self.assertEqual(
-        parsed_testcase,
-        '/example/outdir/crash-ad6700613693ef977ff3a8c8f4dae239c3dde6f5')
-
-  def test_invalid_error_string(self):
-    """Tests that get_testcase returns None with a bad error string."""
-    self.assertIsNone(self.test_target.get_testcase(b''))
-    self.assertIsNone(self.test_target.get_testcase(b' Example crash string.'))
-
-  def test_encoding(self):
-    """Tests that get_testcase accepts bytes and returns a string."""
-    fuzzer_output = b'\x8fTest unit written to ./crash-1'
-    result = self.test_target.get_testcase(fuzzer_output)
-    self.assertTrue(isinstance(result, str))
-
-
-class IsCrashReportableTest(fake_filesystem_unittest.TestCase):
-  """Tests the is_crash_reportable method of FuzzTarget."""
-
-  def setUp(self):
-    """Sets up example fuzz target to test is_crash_reportable method."""
-    self.fuzz_target_path = '/example/do_stuff_fuzzer'
-    deployment = _create_deployment()
-    self.test_target = fuzz_target.FuzzTarget(self.fuzz_target_path, 100,
-                                              '/example/outdir', deployment,
-                                              deployment.config)
-    self.oss_fuzz_build_path = '/oss-fuzz-build'
-    self.setUpPyfakefs()
-    self.fs.create_file(self.fuzz_target_path)
-    self.oss_fuzz_target_path = os.path.join(
-        self.oss_fuzz_build_path, os.path.basename(self.fuzz_target_path))
-    self.fs.create_file(self.oss_fuzz_target_path)
-    self.testcase_path = '/testcase'
-    self.fs.create_file(self.testcase_path, contents='')
-
-  @mock.patch('fuzz_target.FuzzTarget.is_reproducible',
-              side_effect=[True, False])
-  @mock.patch('logging.info')
-  def test_new_reproducible_crash(self, mocked_info, _):
-    """Tests that a new reproducible crash returns True."""
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      self.test_target.out_dir = tmp_dir
-      self.assertTrue(self.test_target.is_crash_reportable(self.testcase_path))
-    mocked_info.assert_called_with(
-        'The crash is reproducible. The crash doesn\'t reproduce '
-        'on old builds. This code change probably introduced the '
-        'crash.')
-
-  # yapf: disable
-  @parameterized.parameterized.expand([
-      # Reproducible on PR build, but also reproducible on OSS-Fuzz.
-      ([True, True],),
-
-      # Not reproducible on PR build, but somehow reproducible on OSS-Fuzz.
-      # Unlikely to happen in real world except if test is flaky.
-      ([False, True],),
-
-      # Not reproducible on PR build, and not reproducible on OSS-Fuzz.
-      ([False, False],),
-  ])
-  # yapf: enable
-  def test_invalid_crash(self, is_reproducible_retvals):
-    """Tests that a nonreportable crash causes the method to return False."""
-    with mock.patch('fuzz_target.FuzzTarget.is_reproducible',
-                    side_effect=is_reproducible_retvals):
-      with mock.patch('clusterfuzz_deployment.OSSFuzz.download_latest_build',
-                      return_value=self.oss_fuzz_build_path):
-        self.assertFalse(
-            self.test_target.is_crash_reportable(self.testcase_path))
-
-  @mock.patch('logging.info')
-  @mock.patch('fuzz_target.FuzzTarget.is_reproducible', return_value=[True])
-  def test_reproducible_no_oss_fuzz_target(self, _, mocked_info):
-    """Tests that is_crash_reportable returns True when a crash reproduces on
-    the PR build but the target is not in the OSS-Fuzz build (usually because it
-    is new)."""
-    os.remove(self.oss_fuzz_target_path)
-
-    def is_reproducible_side_effect(_, target_path):
-      if os.path.dirname(target_path) == self.oss_fuzz_build_path:
-        raise fuzz_target.ReproduceError()
-      return True
-
-    with mock.patch(
-        'fuzz_target.FuzzTarget.is_reproducible',
-        side_effect=is_reproducible_side_effect) as mocked_is_reproducible:
-      with mock.patch('clusterfuzz_deployment.OSSFuzz.download_latest_build',
-                      return_value=self.oss_fuzz_build_path):
-        self.assertTrue(self.test_target.is_crash_reportable(
-            self.testcase_path))
-    mocked_is_reproducible.assert_any_call(self.testcase_path,
-                                           self.oss_fuzz_target_path)
-    mocked_info.assert_called_with(
-        'Crash is reproducible. Could not run recent build of '
-        'target to determine if this code change (pr/commit) introduced crash. '
-        'Assuming this code change introduced crash.')
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/infra/cifuzz/run_fuzzers.py b/infra/cifuzz/run_fuzzers.py
deleted file mode 100644
index 513cfb6..0000000
--- a/infra/cifuzz/run_fuzzers.py
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Module for running fuzzers."""
-import enum
-import logging
-import os
-import shutil
-import sys
-import time
-
-import clusterfuzz_deployment
-import fuzz_target
-import stack_parser
-
-# pylint: disable=wrong-import-position,import-error
-sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-
-import utils
-
-
-class RunFuzzersResult(enum.Enum):
-  """Enum result from running fuzzers."""
-  ERROR = 0
-  BUG_FOUND = 1
-  NO_BUG_FOUND = 2
-
-
-class BaseFuzzTargetRunner:
-  """Base class for fuzzer runners."""
-
-  def __init__(self, config):
-    self.config = config
-    self.clusterfuzz_deployment = (
-        clusterfuzz_deployment.get_clusterfuzz_deployment(self.config))
-    # Set by the initialize method.
-    self.out_dir = None
-    self.fuzz_target_paths = None
-    self.artifacts_dir = None
-
-  def initialize(self):
-    """Initialization method. Must be called before calling run_fuzz_targets.
-    Returns True on success."""
-    # Use a seperate initialization function so we can return False on failure
-    # instead of exceptioning like we need to do if this were done in the
-    # __init__ method.
-
-    logging.info('Using %s sanitizer.', self.config.sanitizer)
-
-    # TODO(metzman) Add a check to ensure we aren't over time limit.
-    if not self.config.fuzz_seconds or self.config.fuzz_seconds < 1:
-      logging.error(
-          'Fuzz_seconds argument must be greater than 1, but was: %s.',
-          self.config.fuzz_seconds)
-      return False
-
-    self.out_dir = os.path.join(self.config.workspace, 'out')
-    if not os.path.exists(self.out_dir):
-      logging.error('Out directory: %s does not exist.', self.out_dir)
-      return False
-
-    self.artifacts_dir = os.path.join(self.out_dir, 'artifacts')
-    if not os.path.exists(self.artifacts_dir):
-      os.mkdir(self.artifacts_dir)
-    elif (not os.path.isdir(self.artifacts_dir) or
-          os.listdir(self.artifacts_dir)):
-      logging.error('Artifacts path: %s exists and is not an empty directory.',
-                    self.artifacts_dir)
-      return False
-
-    self.fuzz_target_paths = utils.get_fuzz_targets(self.out_dir)
-    logging.info('Fuzz targets: %s', self.fuzz_target_paths)
-    if not self.fuzz_target_paths:
-      logging.error('No fuzz targets were found in out directory: %s.',
-                    self.out_dir)
-      return False
-
-    return True
-
-  def run_fuzz_target(self, fuzz_target_obj):  # pylint: disable=no-self-use
-    """Fuzzes with |fuzz_target_obj| and returns the result."""
-    # TODO(metzman): Make children implement this so that the batch runner can
-    # do things differently.
-    result = fuzz_target_obj.fuzz()
-    fuzz_target_obj.free_disk_if_needed()
-    return result
-
-  @property
-  def quit_on_bug_found(self):
-    """Property that is checked to determine if fuzzing should quit after first
-    bug is found."""
-    raise NotImplementedError('Child class must implement method')
-
-  def get_fuzz_target_artifact(self, target, artifact_name):
-    """Returns the path of a fuzzing artifact named |artifact_name| for
-    |fuzz_target|."""
-    artifact_name = '{target_name}-{sanitizer}-{artifact_name}'.format(
-        target_name=target.target_name,
-        sanitizer=self.config.sanitizer,
-        artifact_name=artifact_name)
-    return os.path.join(self.artifacts_dir, artifact_name)
-
-  def create_fuzz_target_obj(self, target_path, run_seconds):
-    """Returns a fuzz target object."""
-    return fuzz_target.FuzzTarget(target_path, run_seconds, self.out_dir,
-                                  self.clusterfuzz_deployment, self.config)
-
-  def run_fuzz_targets(self):
-    """Runs fuzz targets. Returns True if a bug was found."""
-    fuzzers_left_to_run = len(self.fuzz_target_paths)
-
-    # Make a copy since we will mutate it.
-    fuzz_seconds = self.config.fuzz_seconds
-
-    min_seconds_per_fuzzer = fuzz_seconds // fuzzers_left_to_run
-    bug_found = False
-    for target_path in self.fuzz_target_paths:
-      # By doing this, we can ensure that every fuzz target runs for at least
-      # min_seconds_per_fuzzer, but that other fuzzers will have longer to run
-      # if one ends early.
-      run_seconds = max(fuzz_seconds // fuzzers_left_to_run,
-                        min_seconds_per_fuzzer)
-
-      target = self.create_fuzz_target_obj(target_path, run_seconds)
-      start_time = time.time()
-      result = self.run_fuzz_target(target)
-
-      # It's OK if this goes negative since we take max when determining
-      # run_seconds.
-      fuzz_seconds -= time.time() - start_time
-
-      fuzzers_left_to_run -= 1
-      if not result.testcase or not result.stacktrace:
-        logging.info('Fuzzer %s finished running without crashes.',
-                     target.target_name)
-        continue
-
-      # TODO(metzman): Do this with filestore.
-      testcase_artifact_path = self.get_fuzz_target_artifact(
-          target, os.path.basename(result.testcase))
-      shutil.move(result.testcase, testcase_artifact_path)
-      bug_summary_artifact_path = self.get_fuzz_target_artifact(
-          target, 'bug-summary.txt')
-      stack_parser.parse_fuzzer_output(result.stacktrace,
-                                       bug_summary_artifact_path)
-
-      bug_found = True
-      if self.quit_on_bug_found:
-        logging.info('Bug found. Stopping fuzzing.')
-        return bug_found
-
-    return bug_found
-
-
-class CiFuzzTargetRunner(BaseFuzzTargetRunner):
-  """Runner for fuzz targets used in CI (patch-fuzzing) context."""
-
-  @property
-  def quit_on_bug_found(self):
-    return True
-
-
-class BatchFuzzTargetRunner(BaseFuzzTargetRunner):
-  """Runner for fuzz targets used in batch fuzzing context."""
-
-  @property
-  def quit_on_bug_found(self):
-    return False
-
-
-def get_fuzz_target_runner(config):
-  """Returns a fuzz target runner object based on the run_fuzzers_mode of
-  |config|."""
-  logging.info('RUN_FUZZERS_MODE is: %s', config.run_fuzzers_mode)
-  if config.run_fuzzers_mode == 'batch':
-    return BatchFuzzTargetRunner(config)
-  return CiFuzzTargetRunner(config)
-
-
-def run_fuzzers(config):  # pylint: disable=too-many-locals
-  """Runs fuzzers for a specific OSS-Fuzz project.
-
-  Args:
-    config: A RunFuzzTargetsConfig.
-
-  Returns:
-    A RunFuzzersResult enum value indicating what happened during fuzzing.
-  """
-  fuzz_target_runner = get_fuzz_target_runner(config)
-  if not fuzz_target_runner.initialize():
-    # We didn't fuzz at all because of internal (CIFuzz) errors. And we didn't
-    # find any bugs.
-    return RunFuzzersResult.ERROR
-
-  if not fuzz_target_runner.run_fuzz_targets():
-    # We fuzzed successfully, but didn't find any bugs (in the fuzz target).
-    return RunFuzzersResult.NO_BUG_FOUND
-
-  # We fuzzed successfully and found bug(s) in the fuzz targets.
-  return RunFuzzersResult.BUG_FOUND
diff --git a/infra/cifuzz/run_fuzzers_entrypoint.py b/infra/cifuzz/run_fuzzers_entrypoint.py
deleted file mode 100644
index 46e208d..0000000
--- a/infra/cifuzz/run_fuzzers_entrypoint.py
+++ /dev/null
@@ -1,97 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Runs a specific OSS-Fuzz project's fuzzers for CI tools."""
-import logging
-import sys
-
-import config_utils
-import docker
-import run_fuzzers
-
-# pylint: disable=c-extension-no-member
-# pylint gets confused because of the relative import of cifuzz.
-
-logging.basicConfig(
-    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
-    level=logging.DEBUG)
-
-
-def delete_unneeded_docker_images(config):
-  """Deletes unneeded docker images if running in an environment with low
-  disk space."""
-  if not config.low_disk_space:
-    return
-  logging.info('Deleting builder docker images to save disk space.')
-  project_image = docker.get_project_image_name(config.project_name)
-  images = [
-      project_image,
-      docker.BASE_RUNNER_TAG,
-      docker.MSAN_LIBS_BUILDER_TAG,
-  ]
-  docker.delete_images(images)
-
-
-def main():
-  """Runs OSS-Fuzz project's fuzzers for CI tools.
-  This is the entrypoint for the run_fuzzers github action.
-  This action can be added to any OSS-Fuzz project's workflow that uses Github.
-
-  NOTE: libFuzzer binaries must be located in the ${GITHUB_WORKSPACE}/out
-  directory in order for this action to be used. This action will only fuzz the
-  binaries that are located in that directory. It is recommended that you add
-  the build_fuzzers action preceding this one.
-
-  NOTE: Any crash report will be in the filepath:
-  ${GITHUB_WORKSPACE}/out/testcase
-  This can be used in parallel with the upload-artifact action to surface the
-  logs.
-
-  Required environment variables:
-    FUZZ_SECONDS: The length of time in seconds that fuzzers are to be run.
-    GITHUB_WORKSPACE: The shared volume directory where input artifacts are.
-    DRY_RUN: If true, no failures will surface.
-    OSS_FUZZ_PROJECT_NAME: The name of the relevant OSS-Fuzz project.
-    SANITIZER: The sanitizer to use when running fuzzers.
-
-  Returns:
-    0 on success or 1 on failure.
-  """
-  config = config_utils.RunFuzzersConfig()
-  # The default return code when an error occurs.
-  returncode = 1
-  if config.dry_run:
-    # Sets the default return code on error to success.
-    returncode = 0
-
-  if not config.workspace:
-    logging.error('This script needs to be run within Github actions.')
-    return returncode
-
-  delete_unneeded_docker_images(config)
-  # Run the specified project's fuzzers from the build.
-  result = run_fuzzers.run_fuzzers(config)
-  if result == run_fuzzers.RunFuzzersResult.ERROR:
-    logging.error('Error occurred while running in workspace %s.',
-                  config.workspace)
-    return returncode
-  if result == run_fuzzers.RunFuzzersResult.BUG_FOUND:
-    logging.info('Bug found.')
-    if not config.dry_run:
-      # Return 2 when a bug was found by a fuzzer causing the CI to fail.
-      return 2
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/infra/cifuzz/run_fuzzers_test.py b/infra/cifuzz/run_fuzzers_test.py
deleted file mode 100644
index b265990..0000000
--- a/infra/cifuzz/run_fuzzers_test.py
+++ /dev/null
@@ -1,381 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Tests for running fuzzers."""
-import os
-import sys
-import shutil
-import tempfile
-import unittest
-from unittest import mock
-
-import parameterized
-from pyfakefs import fake_filesystem_unittest
-
-import config_utils
-import fuzz_target
-import run_fuzzers
-
-# pylint: disable=wrong-import-position
-INFRA_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-sys.path.append(INFRA_DIR)
-
-import test_helpers
-
-# NOTE: This integration test relies on
-# https://github.com/google/oss-fuzz/tree/master/projects/example project.
-EXAMPLE_PROJECT = 'example'
-
-# Location of files used for testing.
-TEST_DATA_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)),
-                              'test_data')
-
-MEMORY_FUZZER_DIR = os.path.join(TEST_DATA_PATH, 'memory')
-MEMORY_FUZZER = 'curl_fuzzer_memory'
-
-UNDEFINED_FUZZER_DIR = os.path.join(TEST_DATA_PATH, 'undefined')
-UNDEFINED_FUZZER = 'curl_fuzzer_undefined'
-
-FUZZ_SECONDS = 10
-
-
-def _create_config(**kwargs):
-  """Creates a config object and then sets every attribute that is a key in
-  |kwargs| to the corresponding value. Asserts that each key in |kwargs| is an
-  attribute of Config."""
-  with mock.patch('os.path.basename', return_value=None), mock.patch(
-      'config_utils.get_project_src_path',
-      return_value=None), mock.patch('config_utils._is_dry_run',
-                                     return_value=True):
-    config = config_utils.RunFuzzersConfig()
-
-  for key, value in kwargs.items():
-    assert hasattr(config, key), 'Config doesn\'t have attribute: ' + key
-    setattr(config, key, value)
-  return config
-
-
-class RunFuzzerIntegrationTestMixin:  # pylint: disable=too-few-public-methods,invalid-name
-  """Mixin for integration test classes that runbuild_fuzzers on builds of a
-  specific sanitizer."""
-  # These must be defined by children.
-  FUZZER_DIR = None
-  FUZZER = None
-
-  def _test_run_with_sanitizer(self, fuzzer_dir, sanitizer):
-    """Calls run_fuzzers on fuzzer_dir and |sanitizer| and asserts
-    the run succeeded and that no bug was found."""
-    with test_helpers.temp_dir_copy(fuzzer_dir) as fuzzer_dir_copy:
-      config = _create_config(fuzz_seconds=FUZZ_SECONDS,
-                              workspace=fuzzer_dir_copy,
-                              project_name='curl',
-                              sanitizer=sanitizer)
-      result = run_fuzzers.run_fuzzers(config)
-    self.assertEqual(result, run_fuzzers.RunFuzzersResult.NO_BUG_FOUND)
-
-
-class RunMemoryFuzzerIntegrationTest(RunFuzzerIntegrationTestMixin,
-                                     unittest.TestCase):
-  """Integration test for build_fuzzers with an MSAN build."""
-  FUZZER_DIR = MEMORY_FUZZER_DIR
-  FUZZER = MEMORY_FUZZER
-
-  @unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                   'INTEGRATION_TESTS=1 not set')
-  def test_run_with_memory_sanitizer(self):
-    """Tests run_fuzzers with a valid MSAN build."""
-    self._test_run_with_sanitizer(self.FUZZER_DIR, 'memory')
-
-
-class RunUndefinedFuzzerIntegrationTest(RunFuzzerIntegrationTestMixin,
-                                        unittest.TestCase):
-  """Integration test for build_fuzzers with an UBSAN build."""
-  FUZZER_DIR = UNDEFINED_FUZZER_DIR
-  FUZZER = UNDEFINED_FUZZER
-
-  @unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                   'INTEGRATION_TESTS=1 not set')
-  def test_run_with_undefined_sanitizer(self):
-    """Tests run_fuzzers with a valid UBSAN build."""
-    self._test_run_with_sanitizer(self.FUZZER_DIR, 'undefined')
-
-
-class BaseFuzzTargetRunnerTest(unittest.TestCase):
-  """Tests BaseFuzzTargetRunner."""
-
-  def _create_runner(self, **kwargs):  # pylint: disable=no-self-use
-    defaults = {'fuzz_seconds': FUZZ_SECONDS, 'project_name': EXAMPLE_PROJECT}
-    for default_key, default_value in defaults.items():
-      if default_key not in kwargs:
-        kwargs[default_key] = default_value
-
-    config = _create_config(**kwargs)
-    return run_fuzzers.BaseFuzzTargetRunner(config)
-
-  def _test_initialize_fail(self, expected_error_args, **create_runner_kwargs):
-    with mock.patch('logging.error') as mocked_error:
-      runner = self._create_runner(**create_runner_kwargs)
-      self.assertFalse(runner.initialize())
-      mocked_error.assert_called_with(*expected_error_args)
-
-  @parameterized.parameterized.expand([(0,), (None,), (-1,)])
-  def test_initialize_invalid_fuzz_seconds(self, fuzz_seconds):
-    """Tests initialize fails with an invalid fuzz seconds."""
-    expected_error_args = ('Fuzz_seconds argument must be greater than 1, '
-                           'but was: %s.', fuzz_seconds)
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      out_path = os.path.join(tmp_dir, 'out')
-      os.mkdir(out_path)
-      with mock.patch('utils.get_fuzz_targets') as mocked_get_fuzz_targets:
-        mocked_get_fuzz_targets.return_value = [
-            os.path.join(out_path, 'fuzz_target')
-        ]
-        self._test_initialize_fail(expected_error_args,
-                                   fuzz_seconds=fuzz_seconds,
-                                   workspace=tmp_dir)
-
-  def test_initialize_no_out_dir(self):
-    """Tests initialize fails with no out dir."""
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      out_path = os.path.join(tmp_dir, 'out')
-      expected_error_args = ('Out directory: %s does not exist.', out_path)
-      self._test_initialize_fail(expected_error_args, workspace=tmp_dir)
-
-  def test_initialize_nonempty_artifacts(self):
-    """Tests initialize with a file artifacts path."""
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      out_path = os.path.join(tmp_dir, 'out')
-      os.mkdir(out_path)
-      artifacts_path = os.path.join(out_path, 'artifacts')
-      with open(artifacts_path, 'w') as artifacts_handle:
-        artifacts_handle.write('fake')
-      expected_error_args = (
-          'Artifacts path: %s exists and is not an empty directory.',
-          artifacts_path)
-      self._test_initialize_fail(expected_error_args, workspace=tmp_dir)
-
-  def test_initialize_bad_artifacts(self):
-    """Tests initialize with a non-empty artifacts path."""
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      out_path = os.path.join(tmp_dir, 'out')
-      artifacts_path = os.path.join(out_path, 'artifacts')
-      os.makedirs(artifacts_path)
-      artifact_path = os.path.join(artifacts_path, 'artifact')
-      with open(artifact_path, 'w') as artifact_handle:
-        artifact_handle.write('fake')
-      expected_error_args = (
-          'Artifacts path: %s exists and is not an empty directory.',
-          artifacts_path)
-      self._test_initialize_fail(expected_error_args, workspace=tmp_dir)
-
-  @mock.patch('utils.get_fuzz_targets')
-  @mock.patch('logging.error')
-  def test_initialize_empty_artifacts(self, mocked_log_error,
-                                      mocked_get_fuzz_targets):
-    """Tests initialize with an empty artifacts dir."""
-    mocked_get_fuzz_targets.return_value = ['fuzz-target']
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      out_path = os.path.join(tmp_dir, 'out')
-      artifacts_path = os.path.join(out_path, 'artifacts')
-      os.makedirs(artifacts_path)
-      runner = self._create_runner(workspace=tmp_dir)
-      self.assertTrue(runner.initialize())
-      mocked_log_error.assert_not_called()
-      self.assertTrue(os.path.isdir(artifacts_path))
-
-  @mock.patch('utils.get_fuzz_targets')
-  @mock.patch('logging.error')
-  def test_initialize_no_artifacts(self, mocked_log_error,
-                                   mocked_get_fuzz_targets):
-    """Tests initialize with no artifacts dir (the expected setting)."""
-    mocked_get_fuzz_targets.return_value = ['fuzz-target']
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      out_path = os.path.join(tmp_dir, 'out')
-      os.makedirs(out_path)
-      runner = self._create_runner(workspace=tmp_dir)
-      self.assertTrue(runner.initialize())
-      mocked_log_error.assert_not_called()
-      self.assertTrue(os.path.isdir(os.path.join(out_path, 'artifacts')))
-
-  def test_initialize_no_fuzz_targets(self):
-    """Tests initialize with no fuzz targets."""
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      out_path = os.path.join(tmp_dir, 'out')
-      os.makedirs(out_path)
-      expected_error_args = ('No fuzz targets were found in out directory: %s.',
-                             out_path)
-      self._test_initialize_fail(expected_error_args, workspace=tmp_dir)
-
-  def test_get_fuzz_target_artifact(self):
-    """Tests that get_fuzz_target_artifact works as intended."""
-    runner = self._create_runner()
-    artifacts_dir = 'artifacts-dir'
-    runner.artifacts_dir = artifacts_dir
-    artifact_name = 'artifact-name'
-    target = mock.MagicMock()
-    target_name = 'target_name'
-    target.target_name = target_name
-    fuzz_target_artifact = runner.get_fuzz_target_artifact(
-        target, artifact_name)
-    expected_fuzz_target_artifact = (
-        'artifacts-dir/target_name-address-artifact-name')
-    self.assertEqual(fuzz_target_artifact, expected_fuzz_target_artifact)
-
-
-class CiFuzzTargetRunnerTest(fake_filesystem_unittest.TestCase):
-  """Tests that CiFuzzTargetRunner works as intended."""
-
-  def setUp(self):
-    self.setUpPyfakefs()
-
-  @mock.patch('utils.get_fuzz_targets')
-  @mock.patch('run_fuzzers.CiFuzzTargetRunner.run_fuzz_target')
-  @mock.patch('run_fuzzers.CiFuzzTargetRunner.create_fuzz_target_obj')
-  def test_run_fuzz_targets_quits(self, mocked_create_fuzz_target_obj,
-                                  mocked_run_fuzz_target,
-                                  mocked_get_fuzz_targets):
-    """Tests that run_fuzz_targets quits on the first crash it finds."""
-    workspace = 'workspace'
-    out_path = os.path.join(workspace, 'out')
-    self.fs.create_dir(out_path)
-    config = _create_config(fuzz_seconds=FUZZ_SECONDS,
-                            workspace=workspace,
-                            project_name=EXAMPLE_PROJECT)
-    runner = run_fuzzers.CiFuzzTargetRunner(config)
-
-    mocked_get_fuzz_targets.return_value = ['target1', 'target2']
-    runner.initialize()
-    testcase = os.path.join(workspace, 'testcase')
-    self.fs.create_file(testcase)
-    stacktrace = b'stacktrace'
-    mocked_run_fuzz_target.return_value = fuzz_target.FuzzResult(
-        testcase, stacktrace)
-    magic_mock = mock.MagicMock()
-    magic_mock.target_name = 'target1'
-    mocked_create_fuzz_target_obj.return_value = magic_mock
-    self.assertTrue(runner.run_fuzz_targets())
-    self.assertIn('target1-address-testcase', os.listdir(runner.artifacts_dir))
-    self.assertEqual(mocked_run_fuzz_target.call_count, 1)
-
-
-class BatchFuzzTargetRunnerTest(fake_filesystem_unittest.TestCase):
-  """Tests that CiFuzzTargetRunner works as intended."""
-
-  def setUp(self):
-    self.setUpPyfakefs()
-
-  @mock.patch('utils.get_fuzz_targets')
-  @mock.patch('run_fuzzers.BatchFuzzTargetRunner.run_fuzz_target')
-  @mock.patch('run_fuzzers.BatchFuzzTargetRunner.create_fuzz_target_obj')
-  def test_run_fuzz_targets_quits(self, mocked_create_fuzz_target_obj,
-                                  mocked_run_fuzz_target,
-                                  mocked_get_fuzz_targets):
-    """Tests that run_fuzz_targets doesn't quit on the first crash it finds."""
-    workspace = 'workspace'
-    out_path = os.path.join(workspace, 'out')
-    self.fs.create_dir(out_path)
-    config = _create_config(fuzz_seconds=FUZZ_SECONDS,
-                            workspace=workspace,
-                            project_name=EXAMPLE_PROJECT)
-    runner = run_fuzzers.BatchFuzzTargetRunner(config)
-
-    mocked_get_fuzz_targets.return_value = ['target1', 'target2']
-    runner.initialize()
-    testcase1 = os.path.join(workspace, 'testcase-aaa')
-    testcase2 = os.path.join(workspace, 'testcase-bbb')
-    self.fs.create_file(testcase1)
-    self.fs.create_file(testcase2)
-    stacktrace = b'stacktrace'
-    call_count = 0
-
-    def mock_run_fuzz_target(_):
-      nonlocal call_count
-      if call_count == 0:
-        testcase = testcase1
-      elif call_count == 1:
-        testcase = testcase2
-      assert call_count != 2
-      call_count += 1
-      return fuzz_target.FuzzResult(testcase, stacktrace)
-
-    mocked_run_fuzz_target.side_effect = mock_run_fuzz_target
-    magic_mock = mock.MagicMock()
-    magic_mock.target_name = 'target1'
-    mocked_create_fuzz_target_obj.return_value = magic_mock
-    self.assertTrue(runner.run_fuzz_targets())
-    self.assertIn('target1-address-testcase-aaa',
-                  os.listdir(runner.artifacts_dir))
-    self.assertEqual(mocked_run_fuzz_target.call_count, 2)
-
-
-class RunAddressFuzzersIntegrationTest(RunFuzzerIntegrationTestMixin,
-                                       unittest.TestCase):
-  """Integration tests for build_fuzzers with an ASAN build."""
-
-  BUILD_DIR_NAME = 'cifuzz-latest-build'
-
-  @unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                   'INTEGRATION_TESTS=1 not set')
-  def test_new_bug_found(self):
-    """Tests run_fuzzers with a valid ASAN build."""
-    # Set the first return value to True, then the second to False to
-    # emulate a bug existing in the current PR but not on the downloaded
-    # OSS-Fuzz build.
-    with mock.patch('fuzz_target.FuzzTarget.is_reproducible',
-                    side_effect=[True, False]):
-      with tempfile.TemporaryDirectory() as tmp_dir:
-        workspace = os.path.join(tmp_dir, 'workspace')
-        shutil.copytree(TEST_DATA_PATH, workspace)
-        config = _create_config(fuzz_seconds=FUZZ_SECONDS,
-                                workspace=workspace,
-                                project_name=EXAMPLE_PROJECT)
-        result = run_fuzzers.run_fuzzers(config)
-        self.assertEqual(result, run_fuzzers.RunFuzzersResult.BUG_FOUND)
-        build_dir = os.path.join(workspace, 'out', self.BUILD_DIR_NAME)
-        self.assertNotEqual(0, len(os.listdir(build_dir)))
-
-  @unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                   'INTEGRATION_TESTS=1 not set')
-  @mock.patch('fuzz_target.FuzzTarget.is_reproducible',
-              side_effect=[True, True])
-  def test_old_bug_found(self, _):
-    """Tests run_fuzzers with a bug found in OSS-Fuzz before."""
-    config = _create_config(fuzz_seconds=FUZZ_SECONDS,
-                            workspace=TEST_DATA_PATH,
-                            project_name=EXAMPLE_PROJECT)
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      workspace = os.path.join(tmp_dir, 'workspace')
-      shutil.copytree(TEST_DATA_PATH, workspace)
-      config = _create_config(fuzz_seconds=FUZZ_SECONDS,
-                              workspace=TEST_DATA_PATH,
-                              project_name=EXAMPLE_PROJECT)
-      result = run_fuzzers.run_fuzzers(config)
-      self.assertEqual(result, run_fuzzers.RunFuzzersResult.NO_BUG_FOUND)
-      build_dir = os.path.join(TEST_DATA_PATH, 'out', self.BUILD_DIR_NAME)
-      self.assertTrue(os.path.exists(build_dir))
-      self.assertNotEqual(0, len(os.listdir(build_dir)))
-
-  def test_invalid_build(self):
-    """Tests run_fuzzers with an invalid ASAN build."""
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      out_path = os.path.join(tmp_dir, 'out')
-      os.mkdir(out_path)
-      config = _create_config(fuzz_seconds=FUZZ_SECONDS,
-                              workspace=tmp_dir,
-                              project_name=EXAMPLE_PROJECT)
-      result = run_fuzzers.run_fuzzers(config)
-    self.assertEqual(result, run_fuzzers.RunFuzzersResult.ERROR)
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/infra/cifuzz/stack_parser.py b/infra/cifuzz/stack_parser.py
deleted file mode 100644
index 69c44bc..0000000
--- a/infra/cifuzz/stack_parser.py
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Module for parsing stacks from fuzz targets."""
-
-import logging
-
-# From clusterfuzz: src/python/crash_analysis/crash_analyzer.py
-# Used to get the beginning of the stacktrace.
-STACKTRACE_TOOL_MARKERS = [
-    b'AddressSanitizer',
-    b'ASAN:',
-    b'CFI: Most likely a control flow integrity violation;',
-    b'ERROR: libFuzzer',
-    b'KASAN:',
-    b'LeakSanitizer',
-    b'MemorySanitizer',
-    b'ThreadSanitizer',
-    b'UndefinedBehaviorSanitizer',
-    b'UndefinedSanitizer',
-]
-
-# From clusterfuzz: src/python/crash_analysis/crash_analyzer.py
-# Used to get the end of the stacktrace.
-STACKTRACE_END_MARKERS = [
-    b'ABORTING',
-    b'END MEMORY TOOL REPORT',
-    b'End of process memory map.',
-    b'END_KASAN_OUTPUT',
-    b'SUMMARY:',
-    b'Shadow byte and word',
-    b'[end of stack trace]',
-    b'\nExiting',
-    b'minidump has been written',
-]
-
-
-def parse_fuzzer_output(fuzzer_output, parsed_output_file_path):
-  """Parses the fuzzer output from a fuzz target binary.
-
-  Args:
-    fuzzer_output: A fuzz target binary output string to be parsed.
-    parsed_output_file_path: The location to store the parsed output.
-  """
-  # Get index of key file points.
-  begin_stack = None
-  for marker in STACKTRACE_TOOL_MARKERS:
-    marker_index = fuzzer_output.find(marker)
-    if marker_index != -1:
-      begin_stack = marker_index
-      break
-
-  if begin_stack is None:
-    logging.error(
-        b'Could not find a begin stack marker (%s) in fuzzer output:\n%s',
-        STACKTRACE_TOOL_MARKERS, fuzzer_output)
-    return
-
-  end_stack = None
-  for marker in STACKTRACE_END_MARKERS:
-    marker_index = fuzzer_output.find(marker)
-    if marker_index != -1:
-      end_stack = marker_index + len(marker)
-      break
-
-  if end_stack is None:
-    logging.error(
-        b'Could not find an end stack marker (%s) in fuzzer output:\n%s',
-        STACKTRACE_END_MARKERS, fuzzer_output)
-    return
-
-  summary_str = fuzzer_output[begin_stack:end_stack]
-
-  # Write sections of fuzzer output to specific files.
-  with open(parsed_output_file_path, 'ab') as summary_handle:
-    summary_handle.write(summary_str)
diff --git a/infra/cifuzz/stack_parser_test.py b/infra/cifuzz/stack_parser_test.py
deleted file mode 100644
index faf601f..0000000
--- a/infra/cifuzz/stack_parser_test.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Tests for stack_parser."""
-import os
-import unittest
-from unittest import mock
-
-import parameterized
-from pyfakefs import fake_filesystem_unittest
-
-import stack_parser
-
-# NOTE: This integration test relies on
-# https://github.com/google/oss-fuzz/tree/master/projects/example project.
-EXAMPLE_PROJECT = 'example'
-
-# Location of data used for testing.
-TEST_DATA_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)),
-                              'test_data')
-
-
-class ParseOutputTest(fake_filesystem_unittest.TestCase):
-  """Tests parse_fuzzer_output."""
-
-  def setUp(self):
-    self.setUpPyfakefs()
-    self.maxDiff = None  # pylint: disable=invalid-name
-
-  @parameterized.parameterized.expand([('example_crash_fuzzer_output.txt',
-                                        'example_crash_fuzzer_bug_summary.txt'),
-                                       ('msan_crash_fuzzer_output.txt',
-                                        'msan_crash_fuzzer_bug_summary.txt')])
-  def test_parse_valid_output(self, fuzzer_output_file, bug_summary_file):
-    """Checks that the parse fuzzer output can correctly parse output."""
-    # Read the fuzzer output from disk.
-    fuzzer_output_path = os.path.join(TEST_DATA_PATH, fuzzer_output_file)
-    self.fs.add_real_file(fuzzer_output_path)
-    with open(fuzzer_output_path, 'rb') as fuzzer_output_handle:
-      fuzzer_output = fuzzer_output_handle.read()
-    bug_summary_path = '/bug-summary.txt'
-    with mock.patch('logging.info') as mocked_info:
-      stack_parser.parse_fuzzer_output(fuzzer_output, bug_summary_path)
-      mocked_info.assert_not_called()
-
-    with open(bug_summary_path) as bug_summary_handle:
-      bug_summary = bug_summary_handle.read()
-
-    # Compare the bug to the expected one.
-    expected_bug_summary_path = os.path.join(TEST_DATA_PATH, bug_summary_file)
-    self.fs.add_real_file(expected_bug_summary_path)
-    with open(expected_bug_summary_path) as expected_bug_summary_handle:
-      expected_bug_summary = expected_bug_summary_handle.read()
-
-    self.assertEqual(expected_bug_summary, bug_summary)
-
-  def test_parse_invalid_output(self):
-    """Checks that no files are created when an invalid input was given."""
-    artifact_path = '/bug-summary.txt'
-    with mock.patch('logging.error') as mocked_error:
-      stack_parser.parse_fuzzer_output(b'not a valid output_string',
-                                       artifact_path)
-      assert mocked_error.call_count
-    self.assertFalse(os.path.exists(artifact_path))
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/infra/cifuzz/test_data/example_crash_fuzzer_bug_summary.txt b/infra/cifuzz/test_data/example_crash_fuzzer_bug_summary.txt
deleted file mode 100644
index 8caebad..0000000
--- a/infra/cifuzz/test_data/example_crash_fuzzer_bug_summary.txt
+++ /dev/null
@@ -1,68 +0,0 @@
-AddressSanitizer: heap-buffer-overflow on address 0x62500001b530 at pc 0x00000052138a bp 0x7ffe62db2c10 sp 0x7ffe62db23d8
-READ of size 52 at 0x62500001b530 thread T0
-SCARINESS: 26 (multi-byte-read-heap-buffer-overflow)
-    #0 0x521389 in __asan_memcpy /src/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp:22:3
-    #1 0x567590 in yr_object_set_string /src/yara/libyara/object.c:1122:5
-    #2 0x5afced in dex_parse /src/yara/libyara/modules/dex/dex.c:781:5
-    #3 0x5b4a8b in dex__load /src/yara/libyara/modules/dex/dex.c:1218:7
-    #4 0x56537c in yr_modules_load /src/yara/libyara/modules.c:179:16
-    #5 0x5d6583 in yr_execute_code /src/yara/libyara/exec.c:1276:18
-    #6 0x56f5c0 in yr_scanner_scan_mem_blocks /src/yara/libyara/scanner.c:444:3
-    #7 0x56bf23 in yr_rules_scan_mem_blocks /src/yara/libyara/rules.c:235:12
-    #8 0x56c182 in yr_rules_scan_mem /src/yara/libyara/rules.c:285:10
-    #9 0x5548d2 in LLVMFuzzerTestOneInput /src/yara/tests/oss-fuzz/dex_fuzzer.cc:40:3
-    #10 0x45a3b1 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:556:15
-    #11 0x459ad5 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:470:3
-    #12 0x45be77 in fuzzer::Fuzzer::MutateAndTestOne() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:698:19
-    #13 0x45cc05 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:830:5
-    #14 0x44ac88 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:824:6
-    #15 0x474ab2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:19:10
-    #16 0x7f4409b7a82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
-    #17 0x41e348 in _start (out/dex_fuzzer+0x41e348)
-
-0x62500001b530 is located 0 bytes to the right of 9264-byte region [0x625000019100,0x62500001b530)
-allocated by thread T0 here:
-    #0 0x521f4d in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:145:3
-    #1 0x4331b7 in operator new(unsigned long) (out/dex_fuzzer+0x4331b7)
-    #2 0x459ad5 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:470:3
-    #3 0x45be77 in fuzzer::Fuzzer::MutateAndTestOne() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:698:19
-    #4 0x45cc05 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:830:5
-    #5 0x44ac88 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:824:6
-    #6 0x474ab2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:19:10
-    #7 0x7f4409b7a82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
-
-SUMMARY: AddressSanitizer: heap-buffer-overflow /src/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp:22:3 in __asan_memcpy
-Shadow bytes around the buggy address:
-  0x0c4a7fffb650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-  0x0c4a7fffb660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-  0x0c4a7fffb670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-  0x0c4a7fffb680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-  0x0c4a7fffb690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-=>0x0c4a7fffb6a0: 00 00 00 00 00 00[fa]fa fa fa fa fa fa fa fa fa
-  0x0c4a7fffb6b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
-  0x0c4a7fffb6c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
-  0x0c4a7fffb6d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
-  0x0c4a7fffb6e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
-  0x0c4a7fffb6f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
-
-Shadow byte legend (one shadow byte represents 8 application bytes):
-  Addressable:           00
-  Partially addressable: 01 02 03 04 05 06 07
-  Heap left redzone:       fa
-  Freed heap region:       fd
-  Stack left redzone:      f1
-  Stack mid redzone:       f2
-  Stack right redzone:     f3
-  Stack after return:      f5
-  Stack use after scope:   f8
-  Global redzone:          f9
-  Global init order:       f6
-  Poisoned by user:        f7
-  Container overflow:      fc
-  Array cookie:            ac
-  Intra object redzone:    bb
-  ASan internal:           fe
-  Left alloca redzone:     ca
-  Right alloca redzone:    cb
-  Shadow gap:              cc
-==12==ABORTING
\ No newline at end of file
diff --git a/infra/cifuzz/test_data/example_crash_fuzzer_output.txt b/infra/cifuzz/test_data/example_crash_fuzzer_output.txt
deleted file mode 100644
index d316f5f..0000000
--- a/infra/cifuzz/test_data/example_crash_fuzzer_output.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-2020-02-05 17:50:20,470 - root - INFO - Fuzzer dex_fuzzer, detected error: INFO: Seed: 1337
-INFO: Loaded 1 modules   (8322 inline 8-bit counters): 8322 [0x8eaaf0, 0x8ecb72),
-INFO: Loaded 1 PC tables (8322 PCs): 8322 [0x661bd8,0x6823f8),
-INFO:        7 files found in /tmp/dex_fuzzer_corpus
-INFO: -max_len is not provided; libFuzzer will not generate inputs larger than 46328 bytes
-INFO: seed corpus: files: 7 min: 1264b max: 46328b total: 136996b rss: 36Mb
-#8	INITED cov: 265 ft: 523 corp: 7/133Kb exec/s: 0 rss: 43Mb
-#10	NEW    cov: 266 ft: 538 corp: 8/147Kb lim: 46328 exec/s: 0 rss: 44Mb L: 13929/46328 MS: 2 ChangeBit-InsertByte-
-#12	NEW    cov: 270 ft: 550 corp: 9/192Kb lim: 46328 exec/s: 0 rss: 44Mb L: 46328/46328 MS: 2 ShuffleBytes-CrossOver-
-#14	NEW    cov: 270 ft: 557 corp: 10/201Kb lim: 46328 exec/s: 0 rss: 45Mb L: 9103/46328 MS: 2 ChangeASCIIInt-EraseBytes-
-#15	NEW    cov: 270 ft: 565 corp: 11/218Kb lim: 46328 exec/s: 0 rss: 45Mb L: 16991/46328 MS: 1 InsertRepeatedBytes-
-#21	NEW    cov: 272 ft: 568 corp: 12/227Kb lim: 46328 exec/s: 0 rss: 45Mb L: 9132/46328 MS: 1 InsertRepeatedBytes-
-#25	NEW    cov: 275 ft: 575 corp: 13/236Kb lim: 46328 exec/s: 0 rss: 45Mb L: 9262/46328 MS: 4 ChangeBinInt-InsertByte-ChangeBit-EraseBytes-
-#26	NEW    cov: 280 ft: 602 corp: 14/244Kb lim: 46328 exec/s: 0 rss: 45Mb L: 9133/46328 MS: 1 InsertByte-
-#44	NEW    cov: 280 ft: 609 corp: 15/254Kb lim: 46328 exec/s: 0 rss: 45Mb L: 9290/46328 MS: 3 ChangeByte-InsertRepeatedBytes-InsertRepeatedBytes-
-#60	NEW    cov: 280 ft: 611 corp: 16/263Kb lim: 46328 exec/s: 0 rss: 45Mb L: 9291/46328 MS: 1 InsertByte-
-#67	NEW    cov: 280 ft: 614 corp: 17/272Kb lim: 46328 exec/s: 0 rss: 45Mb L: 9074/46328 MS: 2 CopyPart-EraseBytes-
-#68	NEW    cov: 280 ft: 617 corp: 18/305Kb lim: 46328 exec/s: 0 rss: 45Mb L: 34216/46328 MS: 1 InsertRepeatedBytes-
-#70	NEW    cov: 280 ft: 618 corp: 19/321Kb lim: 46328 exec/s: 0 rss: 45Mb L: 16543/46328 MS: 2 ChangeASCIIInt-CopyPart-
-#71	NEW    cov: 280 ft: 619 corp: 20/336Kb lim: 46328 exec/s: 0 rss: 45Mb L: 14936/46328 MS: 1 CopyPart-
-#72	NEW    cov: 280 ft: 623 corp: 21/345Kb lim: 46328 exec/s: 0 rss: 45Mb L: 9255/46328 MS: 1 EraseBytes-
-#79	NEW    cov: 280 ft: 628 corp: 22/354Kb lim: 46328 exec/s: 0 rss: 45Mb L: 9263/46328 MS: 2 CopyPart-CMP- DE: "\x00\x00\x00\x00\x00\x00$'"-
-#80	NEW    cov: 280 ft: 632 corp: 23/363Kb lim: 46328 exec/s: 80 rss: 45Mb L: 9312/46328 MS: 1 InsertRepeatedBytes-
-=================================================================
-==12==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x62500001b530 at pc 0x00000052138a bp 0x7ffe62db2c10 sp 0x7ffe62db23d8
-READ of size 52 at 0x62500001b530 thread T0
-SCARINESS: 26 (multi-byte-read-heap-buffer-overflow)
-    #0 0x521389 in __asan_memcpy /src/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp:22:3
-    #1 0x567590 in yr_object_set_string /src/yara/libyara/object.c:1122:5
-    #2 0x5afced in dex_parse /src/yara/libyara/modules/dex/dex.c:781:5
-    #3 0x5b4a8b in dex__load /src/yara/libyara/modules/dex/dex.c:1218:7
-    #4 0x56537c in yr_modules_load /src/yara/libyara/modules.c:179:16
-    #5 0x5d6583 in yr_execute_code /src/yara/libyara/exec.c:1276:18
-    #6 0x56f5c0 in yr_scanner_scan_mem_blocks /src/yara/libyara/scanner.c:444:3
-    #7 0x56bf23 in yr_rules_scan_mem_blocks /src/yara/libyara/rules.c:235:12
-    #8 0x56c182 in yr_rules_scan_mem /src/yara/libyara/rules.c:285:10
-    #9 0x5548d2 in LLVMFuzzerTestOneInput /src/yara/tests/oss-fuzz/dex_fuzzer.cc:40:3
-    #10 0x45a3b1 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:556:15
-    #11 0x459ad5 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:470:3
-    #12 0x45be77 in fuzzer::Fuzzer::MutateAndTestOne() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:698:19
-    #13 0x45cc05 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:830:5
-    #14 0x44ac88 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:824:6
-    #15 0x474ab2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:19:10
-    #16 0x7f4409b7a82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
-    #17 0x41e348 in _start (out/dex_fuzzer+0x41e348)
-
-0x62500001b530 is located 0 bytes to the right of 9264-byte region [0x625000019100,0x62500001b530)
-allocated by thread T0 here:
-    #0 0x521f4d in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:145:3
-    #1 0x4331b7 in operator new(unsigned long) (out/dex_fuzzer+0x4331b7)
-    #2 0x459ad5 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:470:3
-    #3 0x45be77 in fuzzer::Fuzzer::MutateAndTestOne() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:698:19
-    #4 0x45cc05 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:830:5
-    #5 0x44ac88 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:824:6
-    #6 0x474ab2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:19:10
-    #7 0x7f4409b7a82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
-
-SUMMARY: AddressSanitizer: heap-buffer-overflow /src/llvm-project/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp:22:3 in __asan_memcpy
-Shadow bytes around the buggy address:
-  0x0c4a7fffb650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-  0x0c4a7fffb660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-  0x0c4a7fffb670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-  0x0c4a7fffb680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-  0x0c4a7fffb690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-=>0x0c4a7fffb6a0: 00 00 00 00 00 00[fa]fa fa fa fa fa fa fa fa fa
-  0x0c4a7fffb6b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
-  0x0c4a7fffb6c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
-  0x0c4a7fffb6d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
-  0x0c4a7fffb6e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
-  0x0c4a7fffb6f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
-
-Shadow byte legend (one shadow byte represents 8 application bytes):
-  Addressable:           00
-  Partially addressable: 01 02 03 04 05 06 07
-  Heap left redzone:       fa
-  Freed heap region:       fd
-  Stack left redzone:      f1
-  Stack mid redzone:       f2
-  Stack right redzone:     f3
-  Stack after return:      f5
-  Stack use after scope:   f8
-  Global redzone:          f9
-  Global init order:       f6
-  Poisoned by user:        f7
-  Container overflow:      fc
-  Array cookie:            ac
-  Intra object redzone:    bb
-  ASan internal:           fe
-  Left alloca redzone:     ca
-  Right alloca redzone:    cb
-  Shadow gap:              cc
-==12==ABORTING
-MS: 1 InsertByte-; base unit: e91e5af87998bbf9aa64218be0652d64ba4ea89d
-artifact_prefix='./'; Test unit written to ./crash-ad6700613693ef977ff3a8c8f4dae239c3dde6f5
diff --git a/infra/cifuzz/test_data/example_curl_cov.json b/infra/cifuzz/test_data/example_curl_cov.json
deleted file mode 100644
index 0936102..0000000
--- a/infra/cifuzz/test_data/example_curl_cov.json
+++ /dev/null
@@ -1 +0,0 @@
-{"report_summary_path": "gs://oss-fuzz-coverage/curl/reports/20200226/linux/summary.json", "html_report_url": "https://storage.googleapis.com/oss-fuzz-coverage/curl/reports/20200226/linux/index.html", "report_date": "20200226", "fuzzer_stats_dir": "gs://oss-fuzz-coverage/curl/fuzzer_stats/20200226"}
\ No newline at end of file
diff --git a/infra/cifuzz/test_data/example_curl_file_list.json b/infra/cifuzz/test_data/example_curl_file_list.json
deleted file mode 100644
index 0ed1965..0000000
--- a/infra/cifuzz/test_data/example_curl_file_list.json
+++ /dev/null
@@ -1 +0,0 @@
-["lib/asyn-thread.c", "lib/base64.c", "lib/conncache.c", "lib/connect.c", "lib/content_encoding.c", "lib/cookie.c", "lib/curl_addrinfo.c", "lib/curl_ctype.c", "lib/curl_endian.c", "lib/curl_fnmatch.c", "lib/curl_gethostname.c", "lib/curl_memrchr.c", "lib/curl_ntlm_core.c", "lib/curl_ntlm_wb.c", "lib/curl_range.c", "lib/curl_sasl.c", "lib/curl_threads.c", "lib/dict.c", "lib/dotdot.c", "lib/easy.c", "lib/escape.c", "lib/file.c", "lib/fileinfo.c", "lib/ftp.c", "lib/ftplistparser.c", "lib/getenv.c", "lib/getinfo.c", "lib/gopher.c", "lib/hash.c", "lib/hmac.c", "lib/hostasyn.c", "lib/hostip.c", "lib/hostip6.c", "lib/http.c", "lib/http2.c", "lib/http_chunks.c", "lib/http_digest.c", "lib/http_ntlm.c", "lib/http_proxy.c", "lib/if2ip.c", "lib/imap.c", "lib/llist.c", "lib/md4.c", "lib/md5.c", "lib/memdebug.c", "lib/mime.c", "lib/mprintf.c", "lib/multi.c", "lib/nonblock.c", "lib/parsedate.c", "lib/pingpong.c", "lib/pop3.c", "lib/progress.c", "lib/rand.c", "lib/rename.c", "lib/rtsp.c", "lib/select.c", "lib/sendf.c", "lib/setopt.c", "lib/share.c", "lib/sigpipe.h", "lib/slist.c", "lib/smb.c", "lib/smtp.c", "lib/speedcheck.c", "lib/splay.c", "lib/strcase.c", "lib/strdup.c", "lib/strerror.c", "lib/strtoofft.c", "lib/tftp.c", "lib/timeval.c", "lib/transfer.c", "lib/url.c", "lib/urlapi.c", "lib/vauth/cleartext.c", "lib/vauth/cram.c", "lib/vauth/digest.c", "lib/vauth/ntlm.c", "lib/version.c", "lib/vtls/openssl.c", "lib/vtls/vtls.c", "lib/warnless.c", "lib/wildcard.c"]
\ No newline at end of file
diff --git a/infra/cifuzz/test_data/example_curl_fuzzer_cov.json b/infra/cifuzz/test_data/example_curl_fuzzer_cov.json
deleted file mode 100644
index 6f8c249..0000000
--- a/infra/cifuzz/test_data/example_curl_fuzzer_cov.json
+++ /dev/null
@@ -1 +0,0 @@
-{"data": [{"files": [{"filename": "/src/curl/include/curl/curl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/include/curl/curlver.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/include/curl/multi.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/include/curl/system.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/include/curl/urlapi.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/amigaos.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/arpa_telnet.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/asyn-thread.c", "summary": {"functions": {"count": 24, "covered": 17, "percent": 70.83333333333334}, "instantiations": {"count": 24, "covered": 17, "percent": 70.83333333333334}, "lines": {"count": 454, "covered": 316, "percent": 69.60352422907489}, "regions": {"count": 206, "covered": 133, "notcovered": 73, "percent": 64.56310679611651}}}, {"filename": "/src/curl/lib/asyn.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/base64.c", "summary": {"functions": {"count": 5, "covered": 5, "percent": 100}, "instantiations": {"count": 5, "covered": 5, "percent": 100}, "lines": {"count": 205, "covered": 199, "percent": 97.07317073170731}, "regions": {"count": 81, "covered": 76, "notcovered": 5, "percent": 93.82716049382715}}}, {"filename": "/src/curl/lib/conncache.c", "summary": {"functions": {"count": 22, "covered": 20, "percent": 90.9090909090909}, "instantiations": {"count": 22, "covered": 20, "percent": 90.9090909090909}, "lines": {"count": 405, "covered": 267, "percent": 65.92592592592592}, "regions": {"count": 225, "covered": 123, "notcovered": 102, "percent": 54.666666666666664}}}, {"filename": "/src/curl/lib/conncache.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/connect.c", "summary": {"functions": {"count": 21, "covered": 16, "percent": 76.19047619047619}, "instantiations": {"count": 21, "covered": 16, "percent": 76.19047619047619}, "lines": {"count": 1074, "covered": 439, "percent": 40.87523277467412}, "regions": {"count": 596, "covered": 233, "notcovered": 363, "percent": 39.09395973154363}}}, {"filename": "/src/curl/lib/connect.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/content_encoding.c", "summary": {"functions": {"count": 28, "covered": 27, "percent": 96.42857142857143}, "instantiations": {"count": 28, "covered": 27, "percent": 96.42857142857143}, "lines": {"count": 582, "covered": 404, "percent": 69.41580756013745}, "regions": {"count": 338, "covered": 223, "notcovered": 115, "percent": 65.97633136094674}}}, {"filename": "/src/curl/lib/cookie.c", "summary": {"functions": {"count": 27, "covered": 20, "percent": 74.07407407407408}, "instantiations": {"count": 27, "covered": 20, "percent": 74.07407407407408}, "lines": {"count": 1341, "covered": 837, "percent": 62.41610738255034}, "regions": {"count": 1020, "covered": 615, "notcovered": 405, "percent": 60.29411764705882}}}, {"filename": "/src/curl/lib/cookie.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_addrinfo.c", "summary": {"functions": {"count": 8, "covered": 5, "percent": 62.5}, "instantiations": {"count": 8, "covered": 5, "percent": 62.5}, "lines": {"count": 339, "covered": 149, "percent": 43.95280235988201}, "regions": {"count": 148, "covered": 52, "notcovered": 96, "percent": 35.13513513513514}}}, {"filename": "/src/curl/lib/curl_config.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_ctype.c", "summary": {"functions": {"count": 10, "covered": 8, "percent": 80}, "instantiations": {"count": 10, "covered": 8, "percent": 80}, "lines": {"count": 50, "covered": 39, "percent": 78}, "regions": {"count": 96, "covered": 73, "notcovered": 23, "percent": 76.04166666666666}}}, {"filename": "/src/curl/lib/curl_ctype.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_endian.c", "summary": {"functions": {"count": 5, "covered": 2, "percent": 40}, "instantiations": {"count": 5, "covered": 2, "percent": 40}, "lines": {"count": 22, "covered": 8, "percent": 36.36363636363637}, "regions": {"count": 5, "covered": 2, "notcovered": 3, "percent": 40}}}, {"filename": "/src/curl/lib/curl_fnmatch.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 18, "covered": 15, "percent": 83.33333333333334}, "regions": {"count": 13, "covered": 9, "notcovered": 4, "percent": 69.23076923076923}}}, {"filename": "/src/curl/lib/curl_fnmatch.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_get_line.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 21, "covered": 0, "percent": 0}, "regions": {"count": 18, "covered": 0, "notcovered": 18, "percent": 0}}}, {"filename": "/src/curl/lib/curl_gethostname.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 30, "covered": 25, "percent": 83.33333333333334}, "regions": {"count": 9, "covered": 6, "notcovered": 3, "percent": 66.66666666666666}}}, {"filename": "/src/curl/lib/curl_hmac.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_md5.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_memrchr.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 15, "covered": 15, "percent": 100}, "regions": {"count": 9, "covered": 9, "notcovered": 0, "percent": 100}}}, {"filename": "/src/curl/lib/curl_memrchr.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_ntlm_core.c", "summary": {"functions": {"count": 10, "covered": 6, "percent": 60}, "instantiations": {"count": 10, "covered": 6, "percent": 60}, "lines": {"count": 234, "covered": 106, "percent": 45.2991452991453}, "regions": {"count": 102, "covered": 43, "notcovered": 59, "percent": 42.15686274509804}}}, {"filename": "/src/curl/lib/curl_ntlm_wb.c", "summary": {"functions": {"count": 6, "covered": 4, "percent": 66.66666666666666}, "instantiations": {"count": 6, "covered": 4, "percent": 66.66666666666666}, "lines": {"count": 392, "covered": 130, "percent": 33.16326530612245}, "regions": {"count": 293, "covered": 66, "notcovered": 227, "percent": 22.525597269624573}}}, {"filename": "/src/curl/lib/curl_printf.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_range.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 57, "covered": 57, "percent": 100}, "regions": {"count": 42, "covered": 42, "notcovered": 0, "percent": 100}}}, {"filename": "/src/curl/lib/curl_sasl.c", "summary": {"functions": {"count": 8, "covered": 8, "percent": 100}, "instantiations": {"count": 8, "covered": 8, "percent": 100}, "lines": {"count": 411, "covered": 312, "percent": 75.91240875912408}, "regions": {"count": 272, "covered": 188, "notcovered": 84, "percent": 69.11764705882352}}}, {"filename": "/src/curl/lib/curl_sasl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_setup.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_setup_once.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/curl_threads.c", "summary": {"functions": {"count": 4, "covered": 3, "percent": 75}, "instantiations": {"count": 4, "covered": 3, "percent": 75}, "lines": {"count": 44, "covered": 31, "percent": 70.45454545454545}, "regions": {"count": 26, "covered": 15, "notcovered": 11, "percent": 57.692307692307686}}}, {"filename": "/src/curl/lib/curl_threads.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/dict.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 179, "covered": 165, "percent": 92.17877094972067}, "regions": {"count": 117, "covered": 107, "notcovered": 10, "percent": 91.45299145299145}}}, {"filename": "/src/curl/lib/doh.c", "summary": {"functions": {"count": 21, "covered": 0, "percent": 0}, "instantiations": {"count": 21, "covered": 0, "percent": 0}, "lines": {"count": 839, "covered": 0, "percent": 0}, "regions": {"count": 656, "covered": 0, "notcovered": 656, "percent": 0}}}, {"filename": "/src/curl/lib/doh.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/dotdot.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 129, "covered": 103, "percent": 79.84496124031007}, "regions": {"count": 56, "covered": 46, "notcovered": 10, "percent": 82.14285714285714}}}, {"filename": "/src/curl/lib/easy.c", "summary": {"functions": {"count": 28, "covered": 4, "percent": 14.285714285714285}, "instantiations": {"count": 28, "covered": 4, "percent": 14.285714285714285}, "lines": {"count": 767, "covered": 49, "percent": 6.388526727509778}, "regions": {"count": 421, "covered": 26, "notcovered": 395, "percent": 6.175771971496437}}}, {"filename": "/src/curl/lib/escape.c", "summary": {"functions": {"count": 7, "covered": 1, "percent": 14.285714285714285}, "instantiations": {"count": 7, "covered": 1, "percent": 14.285714285714285}, "lines": {"count": 160, "covered": 52, "percent": 32.5}, "regions": {"count": 156, "covered": 32, "notcovered": 124, "percent": 20.51282051282051}}}, {"filename": "/src/curl/lib/file.c", "summary": {"functions": {"count": 6, "covered": 6, "percent": 100}, "instantiations": {"count": 6, "covered": 6, "percent": 100}, "lines": {"count": 347, "covered": 306, "percent": 88.18443804034582}, "regions": {"count": 200, "covered": 169, "notcovered": 31, "percent": 84.5}}}, {"filename": "/src/curl/lib/fileinfo.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 10, "covered": 10, "percent": 100}, "regions": {"count": 12, "covered": 12, "notcovered": 0, "percent": 100}}}, {"filename": "/src/curl/lib/formdata.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 720, "covered": 0, "percent": 0}, "regions": {"count": 513, "covered": 0, "notcovered": 513, "percent": 0}}}, {"filename": "/src/curl/lib/ftp.c", "summary": {"functions": {"count": 65, "covered": 54, "percent": 83.07692307692308}, "instantiations": {"count": 65, "covered": 54, "percent": 83.07692307692308}, "lines": {"count": 3626, "covered": 2078, "percent": 57.30832873690016}, "regions": {"count": 2133, "covered": 1182, "notcovered": 951, "percent": 55.41490857946554}}}, {"filename": "/src/curl/lib/ftp.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/ftplistparser.c", "summary": {"functions": {"count": 6, "covered": 6, "percent": 100}, "instantiations": {"count": 6, "covered": 6, "percent": 100}, "lines": {"count": 818, "covered": 735, "percent": 89.85330073349633}, "regions": {"count": 498, "covered": 463, "notcovered": 35, "percent": 92.9718875502008}}}, {"filename": "/src/curl/lib/getenv.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 7, "covered": 7, "percent": 100}, "regions": {"count": 5, "covered": 3, "notcovered": 2, "percent": 60}}}, {"filename": "/src/curl/lib/getinfo.c", "summary": {"functions": {"count": 8, "covered": 1, "percent": 12.5}, "instantiations": {"count": 8, "covered": 1, "percent": 12.5}, "lines": {"count": 427, "covered": 44, "percent": 10.304449648711945}, "regions": {"count": 165, "covered": 4, "notcovered": 161, "percent": 2.4242424242424243}}}, {"filename": "/src/curl/lib/gopher.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 97, "covered": 72, "percent": 74.22680412371135}, "regions": {"count": 51, "covered": 38, "notcovered": 13, "percent": 74.50980392156863}}}, {"filename": "/src/curl/lib/hash.c", "summary": {"functions": {"count": 13, "covered": 13, "percent": 100}, "instantiations": {"count": 13, "covered": 13, "percent": 100}, "lines": {"count": 186, "covered": 171, "percent": 91.93548387096774}, "regions": {"count": 98, "covered": 92, "notcovered": 6, "percent": 93.87755102040816}}}, {"filename": "/src/curl/lib/hmac.c", "summary": {"functions": {"count": 4, "covered": 3, "percent": 75}, "instantiations": {"count": 4, "covered": 3, "percent": 75}, "lines": {"count": 84, "covered": 67, "percent": 79.76190476190477}, "regions": {"count": 22, "covered": 16, "notcovered": 6, "percent": 72.72727272727273}}}, {"filename": "/src/curl/lib/hostasyn.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 44, "covered": 22, "percent": 50}, "regions": {"count": 15, "covered": 5, "notcovered": 10, "percent": 33.33333333333333}}}, {"filename": "/src/curl/lib/hostcheck.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 81, "covered": 0, "percent": 0}, "regions": {"count": 72, "covered": 0, "notcovered": 72, "percent": 0}}}, {"filename": "/src/curl/lib/hostcheck.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/hostip.c", "summary": {"functions": {"count": 20, "covered": 14, "percent": 70}, "instantiations": {"count": 20, "covered": 14, "percent": 70}, "lines": {"count": 603, "covered": 260, "percent": 43.117744610281925}, "regions": {"count": 276, "covered": 107, "notcovered": 169, "percent": 38.768115942028984}}}, {"filename": "/src/curl/lib/hostip.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/hostip6.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 30, "covered": 30, "percent": 100}, "regions": {"count": 20, "covered": 18, "notcovered": 2, "percent": 90}}}, {"filename": "/src/curl/lib/http.c", "summary": {"functions": {"count": 38, "covered": 32, "percent": 84.21052631578947}, "instantiations": {"count": 38, "covered": 32, "percent": 84.21052631578947}, "lines": {"count": 3373, "covered": 2572, "percent": 76.25259412985473}, "regions": {"count": 2208, "covered": 1696, "notcovered": 512, "percent": 76.81159420289855}}}, {"filename": "/src/curl/lib/http.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/http2.c", "summary": {"functions": {"count": 46, "covered": 37, "percent": 80.43478260869566}, "instantiations": {"count": 46, "covered": 37, "percent": 80.43478260869566}, "lines": {"count": 1978, "covered": 1318, "percent": 66.6329625884732}, "regions": {"count": 1147, "covered": 741, "notcovered": 406, "percent": 64.60331299040976}}}, {"filename": "/src/curl/lib/http2.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/http_chunks.c", "summary": {"functions": {"count": 3, "covered": 3, "percent": 100}, "instantiations": {"count": 3, "covered": 3, "percent": 100}, "lines": {"count": 248, "covered": 227, "percent": 91.53225806451613}, "regions": {"count": 122, "covered": 108, "notcovered": 14, "percent": 88.52459016393442}}}, {"filename": "/src/curl/lib/http_chunks.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/http_digest.c", "summary": {"functions": {"count": 3, "covered": 3, "percent": 100}, "instantiations": {"count": 3, "covered": 3, "percent": 100}, "lines": {"count": 122, "covered": 111, "percent": 90.98360655737704}, "regions": {"count": 54, "covered": 46, "notcovered": 8, "percent": 85.18518518518519}}}, {"filename": "/src/curl/lib/http_ntlm.c", "summary": {"functions": {"count": 3, "covered": 3, "percent": 100}, "instantiations": {"count": 3, "covered": 3, "percent": 100}, "lines": {"count": 166, "covered": 110, "percent": 66.26506024096386}, "regions": {"count": 94, "covered": 50, "notcovered": 44, "percent": 53.191489361702125}}}, {"filename": "/src/curl/lib/http_proxy.c", "summary": {"functions": {"count": 9, "covered": 3, "percent": 33.33333333333333}, "instantiations": {"count": 9, "covered": 3, "percent": 33.33333333333333}, "lines": {"count": 594, "covered": 17, "percent": 2.861952861952862}, "regions": {"count": 357, "covered": 10, "notcovered": 347, "percent": 2.801120448179272}}}, {"filename": "/src/curl/lib/if2ip.c", "summary": {"functions": {"count": 2, "covered": 1, "percent": 50}, "instantiations": {"count": 2, "covered": 1, "percent": 50}, "lines": {"count": 97, "covered": 8, "percent": 8.24742268041237}, "regions": {"count": 59, "covered": 4, "notcovered": 55, "percent": 6.779661016949152}}}, {"filename": "/src/curl/lib/if2ip.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/imap.c", "summary": {"functions": {"count": 49, "covered": 41, "percent": 83.6734693877551}, "instantiations": {"count": 49, "covered": 41, "percent": 83.6734693877551}, "lines": {"count": 1567, "covered": 1285, "percent": 82.00382897255903}, "regions": {"count": 1081, "covered": 865, "notcovered": 216, "percent": 80.01850138760406}}}, {"filename": "/src/curl/lib/imap.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/inet_ntop.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/inet_pton.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/llist.c", "summary": {"functions": {"count": 5, "covered": 5, "percent": 100}, "instantiations": {"count": 5, "covered": 5, "percent": 100}, "lines": {"count": 80, "covered": 78, "percent": 97.5}, "regions": {"count": 41, "covered": 39, "notcovered": 2, "percent": 95.1219512195122}}}, {"filename": "/src/curl/lib/md4.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 7, "covered": 7, "percent": 100}, "regions": {"count": 1, "covered": 1, "notcovered": 0, "percent": 100}}}, {"filename": "/src/curl/lib/md5.c", "summary": {"functions": {"count": 4, "covered": 4, "percent": 100}, "instantiations": {"count": 4, "covered": 4, "percent": 100}, "lines": {"count": 42, "covered": 38, "percent": 90.47619047619048}, "regions": {"count": 15, "covered": 12, "notcovered": 3, "percent": 80}}}, {"filename": "/src/curl/lib/memdebug.c", "summary": {"functions": {"count": 18, "covered": 15, "percent": 83.33333333333334}, "instantiations": {"count": 18, "covered": 15, "percent": 83.33333333333334}, "lines": {"count": 283, "covered": 202, "percent": 71.37809187279152}, "regions": {"count": 165, "covered": 99, "notcovered": 66, "percent": 60}}}, {"filename": "/src/curl/lib/memdebug.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/mime.c", "summary": {"functions": {"count": 56, "covered": 34, "percent": 60.71428571428571}, "instantiations": {"count": 56, "covered": 34, "percent": 60.71428571428571}, "lines": {"count": 1277, "covered": 671, "percent": 52.54502740798747}, "regions": {"count": 828, "covered": 412, "notcovered": 416, "percent": 49.75845410628019}}}, {"filename": "/src/curl/lib/mime.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/mprintf.c", "summary": {"functions": {"count": 17, "covered": 11, "percent": 64.70588235294117}, "instantiations": {"count": 17, "covered": 11, "percent": 64.70588235294117}, "lines": {"count": 905, "covered": 585, "percent": 64.64088397790056}, "regions": {"count": 591, "covered": 323, "notcovered": 268, "percent": 54.653130287648054}}}, {"filename": "/src/curl/lib/multi.c", "summary": {"functions": {"count": 70, "covered": 43, "percent": 61.42857142857143}, "instantiations": {"count": 70, "covered": 43, "percent": 61.42857142857143}, "lines": {"count": 2793, "covered": 1523, "percent": 54.52918009308987}, "regions": {"count": 1565, "covered": 756, "notcovered": 809, "percent": 48.30670926517572}}}, {"filename": "/src/curl/lib/multihandle.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/multiif.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/netrc.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 180, "covered": 0, "percent": 0}, "regions": {"count": 143, "covered": 0, "notcovered": 143, "percent": 0}}}, {"filename": "/src/curl/lib/non-ascii.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/nonblock.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 8, "covered": 6, "percent": 75}, "regions": {"count": 7, "covered": 5, "notcovered": 2, "percent": 71.42857142857143}}}, {"filename": "/src/curl/lib/parsedate.c", "summary": {"functions": {"count": 9, "covered": 8, "percent": 88.88888888888889}, "instantiations": {"count": 9, "covered": 8, "percent": 88.88888888888889}, "lines": {"count": 317, "covered": 289, "percent": 91.16719242902208}, "regions": {"count": 218, "covered": 202, "notcovered": 16, "percent": 92.66055045871559}}}, {"filename": "/src/curl/lib/pingpong.c", "summary": {"functions": {"count": 10, "covered": 9, "percent": 90}, "instantiations": {"count": 10, "covered": 9, "percent": 90}, "lines": {"count": 386, "covered": 329, "percent": 85.23316062176166}, "regions": {"count": 202, "covered": 165, "notcovered": 37, "percent": 81.68316831683168}}}, {"filename": "/src/curl/lib/pop3.c", "summary": {"functions": {"count": 40, "covered": 36, "percent": 90}, "instantiations": {"count": 40, "covered": 36, "percent": 90}, "lines": {"count": 1087, "covered": 995, "percent": 91.53633854645814}, "regions": {"count": 559, "covered": 508, "notcovered": 51, "percent": 90.87656529516994}}}, {"filename": "/src/curl/lib/pop3.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/progress.c", "summary": {"functions": {"count": 15, "covered": 11, "percent": 73.33333333333333}, "instantiations": {"count": 15, "covered": 11, "percent": 73.33333333333333}, "lines": {"count": 488, "covered": 208, "percent": 42.62295081967213}, "regions": {"count": 499, "covered": 83, "notcovered": 416, "percent": 16.63326653306613}}}, {"filename": "/src/curl/lib/progress.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/rand.c", "summary": {"functions": {"count": 3, "covered": 3, "percent": 100}, "instantiations": {"count": 3, "covered": 3, "percent": 100}, "lines": {"count": 115, "covered": 65, "percent": 56.52173913043478}, "regions": {"count": 50, "covered": 26, "notcovered": 24, "percent": 52}}}, {"filename": "/src/curl/lib/rename.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 6, "covered": 5, "percent": 83.33333333333334}, "regions": {"count": 4, "covered": 3, "notcovered": 1, "percent": 75}}}, {"filename": "/src/curl/lib/rtsp.c", "summary": {"functions": {"count": 11, "covered": 8, "percent": 72.72727272727273}, "instantiations": {"count": 11, "covered": 8, "percent": 72.72727272727273}, "lines": {"count": 673, "covered": 579, "percent": 86.03268945022289}, "regions": {"count": 409, "covered": 323, "notcovered": 86, "percent": 78.97310513447434}}}, {"filename": "/src/curl/lib/select.c", "summary": {"functions": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "instantiations": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "lines": {"count": 154, "covered": 79, "percent": 51.298701298701296}, "regions": {"count": 111, "covered": 51, "notcovered": 60, "percent": 45.94594594594595}}}, {"filename": "/src/curl/lib/select.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/sendf.c", "summary": {"functions": {"count": 15, "covered": 11, "percent": 73.33333333333333}, "instantiations": {"count": 15, "covered": 11, "percent": 73.33333333333333}, "lines": {"count": 514, "covered": 296, "percent": 57.58754863813229}, "regions": {"count": 253, "covered": 147, "notcovered": 106, "percent": 58.10276679841897}}}, {"filename": "/src/curl/lib/sendf.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/setopt.c", "summary": {"functions": {"count": 4, "covered": 3, "percent": 75}, "instantiations": {"count": 4, "covered": 3, "percent": 75}, "lines": {"count": 2549, "covered": 488, "percent": 19.1447626520204}, "regions": {"count": 991, "covered": 145, "notcovered": 846, "percent": 14.631685166498487}}}, {"filename": "/src/curl/lib/sha256.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 7, "covered": 0, "percent": 0}, "regions": {"count": 1, "covered": 0, "notcovered": 1, "percent": 0}}}, {"filename": "/src/curl/lib/share.c", "summary": {"functions": {"count": 5, "covered": 2, "percent": 40}, "instantiations": {"count": 5, "covered": 2, "percent": 40}, "lines": {"count": 190, "covered": 10, "percent": 5.263157894736842}, "regions": {"count": 86, "covered": 6, "notcovered": 80, "percent": 6.976744186046512}}}, {"filename": "/src/curl/lib/sigpipe.h", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 6, "covered": 6, "percent": 100}, "lines": {"count": 20, "covered": 20, "percent": 100}, "regions": {"count": 6, "covered": 6, "notcovered": 0, "percent": 100}}}, {"filename": "/src/curl/lib/slist.c", "summary": {"functions": {"count": 5, "covered": 4, "percent": 80}, "instantiations": {"count": 5, "covered": 4, "percent": 80}, "lines": {"count": 79, "covered": 59, "percent": 74.68354430379746}, "regions": {"count": 40, "covered": 29, "notcovered": 11, "percent": 72.5}}}, {"filename": "/src/curl/lib/smb.c", "summary": {"functions": {"count": 27, "covered": 26, "percent": 96.29629629629629}, "instantiations": {"count": 27, "covered": 26, "percent": 96.29629629629629}, "lines": {"count": 740, "covered": 702, "percent": 94.86486486486486}, "regions": {"count": 406, "covered": 371, "notcovered": 35, "percent": 91.37931034482759}}}, {"filename": "/src/curl/lib/smb.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/smtp.c", "summary": {"functions": {"count": 44, "covered": 40, "percent": 90.9090909090909}, "instantiations": {"count": 44, "covered": 40, "percent": 90.9090909090909}, "lines": {"count": 1323, "covered": 1174, "percent": 88.73771730914588}, "regions": {"count": 674, "covered": 587, "notcovered": 87, "percent": 87.0919881305638}}}, {"filename": "/src/curl/lib/smtp.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/socketpair.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/socks.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 787, "covered": 0, "percent": 0}, "regions": {"count": 390, "covered": 0, "notcovered": 390, "percent": 0}}}, {"filename": "/src/curl/lib/speedcheck.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 36, "covered": 10, "percent": 27.77777777777778}, "regions": {"count": 18, "covered": 7, "notcovered": 11, "percent": 38.88888888888889}}}, {"filename": "/src/curl/lib/splay.c", "summary": {"functions": {"count": 4, "covered": 4, "percent": 100}, "instantiations": {"count": 4, "covered": 4, "percent": 100}, "lines": {"count": 203, "covered": 108, "percent": 53.20197044334976}, "regions": {"count": 143, "covered": 59, "notcovered": 84, "percent": 41.25874125874126}}}, {"filename": "/src/curl/lib/splay.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/strcase.c", "summary": {"functions": {"count": 9, "covered": 8, "percent": 88.88888888888889}, "instantiations": {"count": 9, "covered": 8, "percent": 88.88888888888889}, "lines": {"count": 69, "covered": 60, "percent": 86.95652173913044}, "regions": {"count": 59, "covered": 50, "notcovered": 9, "percent": 84.7457627118644}}}, {"filename": "/src/curl/lib/strcase.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/strdup.c", "summary": {"functions": {"count": 2, "covered": 1, "percent": 50}, "instantiations": {"count": 2, "covered": 1, "percent": 50}, "lines": {"count": 16, "covered": 7, "percent": 43.75}, "regions": {"count": 11, "covered": 5, "notcovered": 6, "percent": 45.45454545454545}}}, {"filename": "/src/curl/lib/strerror.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 403, "covered": 33, "percent": 8.188585607940446}, "regions": {"count": 145, "covered": 11, "notcovered": 134, "percent": 7.586206896551724}}}, {"filename": "/src/curl/lib/strtoofft.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 26, "covered": 26, "percent": 100}, "regions": {"count": 19, "covered": 19, "notcovered": 0, "percent": 100}}}, {"filename": "/src/curl/lib/telnet.c", "summary": {"functions": {"count": 18, "covered": 0, "percent": 0}, "instantiations": {"count": 18, "covered": 0, "percent": 0}, "lines": {"count": 1128, "covered": 0, "percent": 0}, "regions": {"count": 894, "covered": 0, "notcovered": 894, "percent": 0}}}, {"filename": "/src/curl/lib/tftp.c", "summary": {"functions": {"count": 27, "covered": 6, "percent": 22.22222222222222}, "instantiations": {"count": 27, "covered": 6, "percent": 22.22222222222222}, "lines": {"count": 1049, "covered": 199, "percent": 18.970448045757866}, "regions": {"count": 498, "covered": 79, "notcovered": 419, "percent": 15.863453815261044}}}, {"filename": "/src/curl/lib/timeval.c", "summary": {"functions": {"count": 3, "covered": 3, "percent": 100}, "instantiations": {"count": 3, "covered": 3, "percent": 100}, "lines": {"count": 52, "covered": 37, "percent": 71.15384615384616}, "regions": {"count": 68, "covered": 37, "notcovered": 31, "percent": 54.41176470588235}}}, {"filename": "/src/curl/lib/timeval.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/transfer.c", "summary": {"functions": {"count": 19, "covered": 16, "percent": 84.21052631578947}, "instantiations": {"count": 19, "covered": 16, "percent": 84.21052631578947}, "lines": {"count": 1580, "covered": 1270, "percent": 80.37974683544303}, "regions": {"count": 971, "covered": 788, "notcovered": 183, "percent": 81.15345005149331}}}, {"filename": "/src/curl/lib/transfer.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/url.c", "summary": {"functions": {"count": 50, "covered": 41, "percent": 82}, "instantiations": {"count": 50, "covered": 41, "percent": 82}, "lines": {"count": 3154, "covered": 2036, "percent": 64.55294863665188}, "regions": {"count": 2207, "covered": 1267, "notcovered": 940, "percent": 57.408246488445855}}}, {"filename": "/src/curl/lib/url.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/urlapi-int.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/urlapi.c", "summary": {"functions": {"count": 19, "covered": 18, "percent": 94.73684210526315}, "instantiations": {"count": 19, "covered": 18, "percent": 94.73684210526315}, "lines": {"count": 1308, "covered": 1054, "percent": 80.58103975535168}, "regions": {"count": 1031, "covered": 777, "notcovered": 254, "percent": 75.36372453928225}}}, {"filename": "/src/curl/lib/urldata.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/vauth/cleartext.c", "summary": {"functions": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "instantiations": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "lines": {"count": 59, "covered": 48, "percent": 81.35593220338984}, "regions": {"count": 26, "covered": 20, "notcovered": 6, "percent": 76.92307692307693}}}, {"filename": "/src/curl/lib/vauth/cram.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 54, "covered": 52, "percent": 96.29629629629629}, "regions": {"count": 18, "covered": 16, "notcovered": 2, "percent": 88.88888888888889}}}, {"filename": "/src/curl/lib/vauth/digest.c", "summary": {"functions": {"count": 13, "covered": 11, "percent": 84.61538461538461}, "instantiations": {"count": 13, "covered": 11, "percent": 84.61538461538461}, "lines": {"count": 747, "covered": 440, "percent": 58.90227576974565}, "regions": {"count": 482, "covered": 265, "notcovered": 217, "percent": 54.9792531120332}}}, {"filename": "/src/curl/lib/vauth/digest.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/vauth/ntlm.c", "summary": {"functions": {"count": 7, "covered": 4, "percent": 57.14285714285714}, "instantiations": {"count": 7, "covered": 4, "percent": 57.14285714285714}, "lines": {"count": 555, "covered": 152, "percent": 27.387387387387385}, "regions": {"count": 191, "covered": 41, "notcovered": 150, "percent": 21.465968586387437}}}, {"filename": "/src/curl/lib/vauth/ntlm.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/vauth/oauth2.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 36, "covered": 0, "percent": 0}, "regions": {"count": 18, "covered": 0, "notcovered": 18, "percent": 0}}}, {"filename": "/src/curl/lib/vauth/vauth.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 26, "covered": 0, "percent": 0}, "regions": {"count": 26, "covered": 0, "notcovered": 26, "percent": 0}}}, {"filename": "/src/curl/lib/version.c", "summary": {"functions": {"count": 3, "covered": 3, "percent": 100}, "instantiations": {"count": 3, "covered": 3, "percent": 100}, "lines": {"count": 76, "covered": 74, "percent": 97.36842105263158}, "regions": {"count": 21, "covered": 17, "notcovered": 4, "percent": 80.95238095238095}}}, {"filename": "/src/curl/lib/vtls/openssl.c", "summary": {"functions": {"count": 57, "covered": 20, "percent": 35.08771929824561}, "instantiations": {"count": 57, "covered": 20, "percent": 35.08771929824561}, "lines": {"count": 2927, "covered": 648, "percent": 22.138708575333105}, "regions": {"count": 2350, "covered": 386, "notcovered": 1964, "percent": 16.425531914893618}}}, {"filename": "/src/curl/lib/vtls/vtls.c", "summary": {"functions": {"count": 60, "covered": 19, "percent": 31.666666666666664}, "instantiations": {"count": 60, "covered": 19, "percent": 31.666666666666664}, "lines": {"count": 878, "covered": 186, "percent": 21.184510250569478}, "regions": {"count": 667, "covered": 159, "notcovered": 508, "percent": 23.838080959520237}}}, {"filename": "/src/curl/lib/vtls/vtls.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/warnless.c", "summary": {"functions": {"count": 15, "covered": 7, "percent": 46.666666666666664}, "instantiations": {"count": 15, "covered": 7, "percent": 46.666666666666664}, "lines": {"count": 71, "covered": 33, "percent": 46.478873239436616}, "regions": {"count": 50, "covered": 22, "notcovered": 28, "percent": 44}}}, {"filename": "/src/curl/lib/warnless.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl/lib/wildcard.c", "summary": {"functions": {"count": 3, "covered": 3, "percent": 100}, "instantiations": {"count": 3, "covered": 3, "percent": 100}, "lines": {"count": 32, "covered": 31, "percent": 96.875}, "regions": {"count": 12, "covered": 11, "notcovered": 1, "percent": 91.66666666666666}}}, {"filename": "/src/curl_fuzzer/curl_fuzzer.cc", "summary": {"functions": {"count": 11, "covered": 11, "percent": 100}, "instantiations": {"count": 11, "covered": 11, "percent": 100}, "lines": {"count": 391, "covered": 377, "percent": 96.41943734015345}, "regions": {"count": 202, "covered": 170, "notcovered": 32, "percent": 84.15841584158416}}}, {"filename": "/src/curl_fuzzer/curl_fuzzer.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_fuzzer/curl_fuzzer_callback.cc", "summary": {"functions": {"count": 4, "covered": 4, "percent": 100}, "instantiations": {"count": 4, "covered": 4, "percent": 100}, "lines": {"count": 161, "covered": 136, "percent": 84.472049689441}, "regions": {"count": 71, "covered": 60, "notcovered": 11, "percent": 84.50704225352112}}}, {"filename": "/src/curl_fuzzer/curl_fuzzer_tlv.cc", "summary": {"functions": {"count": 7, "covered": 7, "percent": 100}, "instantiations": {"count": 7, "covered": 7, "percent": 100}, "lines": {"count": 247, "covered": 247, "percent": 100}, "regions": {"count": 470, "covered": 442, "notcovered": 28, "percent": 94.04255319148936}}}, {"filename": "/src/curl_install/include/curl/curl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/nghttp2/nghttp2.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/asn1.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/bio.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/conf.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/crypto.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/des.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/engine.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/evp.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/obj_mac.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/ocsp.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/opensslv.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/rsa.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/safestack.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/ssl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/ssl2.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/ssl3.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/tls1.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/ui.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/x509.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/x509_vfy.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/openssl/x509v3.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/curl_install/include/zlib.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/nghttp2/lib/includes/nghttp2/nghttp2.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/nghttp2/lib/includes/nghttp2/nghttp2ver.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/nghttp2/lib/nghttp2_buf.c", "summary": {"functions": {"count": 30, "covered": 18, "percent": 60}, "instantiations": {"count": 30, "covered": 18, "percent": 60}, "lines": {"count": 458, "covered": 234, "percent": 51.09170305676856}, "regions": {"count": 183, "covered": 97, "notcovered": 86, "percent": 53.00546448087432}}}, {"filename": "/src/nghttp2/lib/nghttp2_buf.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/nghttp2/lib/nghttp2_callbacks.c", "summary": {"functions": {"count": 25, "covered": 9, "percent": 36}, "instantiations": {"count": 25, "covered": 9, "percent": 36}, "lines": {"count": 81, "covered": 31, "percent": 38.2716049382716}, "regions": {"count": 28, "covered": 11, "notcovered": 17, "percent": 39.285714285714285}}}, {"filename": "/src/nghttp2/lib/nghttp2_debug.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/nghttp2/lib/nghttp2_frame.c", "summary": {"functions": {"count": 69, "covered": 46, "percent": 66.66666666666666}, "instantiations": {"count": 69, "covered": 46, "percent": 66.66666666666666}, "lines": {"count": 953, "covered": 465, "percent": 48.79328436516264}, "regions": {"count": 315, "covered": 155, "notcovered": 160, "percent": 49.2063492063492}}}, {"filename": "/src/nghttp2/lib/nghttp2_frame.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/nghttp2/lib/nghttp2_hd.c", "summary": {"functions": {"count": 81, "covered": 55, "percent": 67.90123456790124}, "instantiations": {"count": 81, "covered": 55, "percent": 67.90123456790124}, "lines": {"count": 1989, "covered": 1616, "percent": 81.24685771744595}, "regions": {"count": 1043, "covered": 891, "notcovered": 152, "percent": 85.42665388302973}}}, {"filename": "/src/nghttp2/lib/nghttp2_hd.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/nghttp2/lib/nghttp2_hd_huffman.c", "summary": {"functions": {"count": 5, "covered": 5, "percent": 100}, "instantiations": {"count": 5, "covered": 5, "percent": 100}, "lines": {"count": 184, "covered": 170, "percent": 92.3913043478261}, "regions": {"count": 143, "covered": 136, "notcovered": 7, "percent": 95.1048951048951}}}, {"filename": "/src/nghttp2/lib/nghttp2_helper.c", "summary": {"functions": {"count": 12, "covered": 11, "percent": 91.66666666666666}, "instantiations": {"count": 12, "covered": 11, "percent": 91.66666666666666}, "lines": {"count": 237, "covered": 177, "percent": 74.68354430379746}, "regions": {"count": 115, "covered": 85, "notcovered": 30, "percent": 73.91304347826086}}}, {"filename": "/src/nghttp2/lib/nghttp2_helper.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/nghttp2/lib/nghttp2_http.c", "summary": {"functions": {"count": 18, "covered": 15, "percent": 83.33333333333334}, "instantiations": {"count": 18, "covered": 15, "percent": 83.33333333333334}, "lines": {"count": 463, "covered": 309, "percent": 66.73866090712744}, "regions": {"count": 376, "covered": 248, "notcovered": 128, "percent": 65.95744680851064}}}, {"filename": "/src/nghttp2/lib/nghttp2_map.c", "summary": {"functions": {"count": 12, "covered": 11, "percent": 91.66666666666666}, "instantiations": {"count": 12, "covered": 11, "percent": 91.66666666666666}, "lines": {"count": 140, "covered": 92, "percent": 65.71428571428571}, "regions": {"count": 69, "covered": 44, "notcovered": 25, "percent": 63.76811594202898}}}, {"filename": "/src/nghttp2/lib/nghttp2_mem.c", "summary": {"functions": {"count": 10, "covered": 10, "percent": 100}, "instantiations": {"count": 10, "covered": 10, "percent": 100}, "lines": {"count": 36, "covered": 36, "percent": 100}, "regions": {"count": 10, "covered": 10, "notcovered": 0, "percent": 100}}}, {"filename": "/src/nghttp2/lib/nghttp2_outbound_item.c", "summary": {"functions": {"count": 5, "covered": 4, "percent": 80}, "instantiations": {"count": 5, "covered": 4, "percent": 80}, "lines": {"count": 93, "covered": 62, "percent": 66.66666666666666}, "regions": {"count": 32, "covered": 21, "notcovered": 11, "percent": 65.625}}}, {"filename": "/src/nghttp2/lib/nghttp2_outbound_item.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/nghttp2/lib/nghttp2_pq.c", "summary": {"functions": {"count": 13, "covered": 9, "percent": 69.23076923076923}, "instantiations": {"count": 13, "covered": 9, "percent": 69.23076923076923}, "lines": {"count": 141, "covered": 71, "percent": 50.35460992907801}, "regions": {"count": 73, "covered": 31, "notcovered": 42, "percent": 42.465753424657535}}}, {"filename": "/src/nghttp2/lib/nghttp2_priority_spec.c", "summary": {"functions": {"count": 4, "covered": 3, "percent": 75}, "instantiations": {"count": 4, "covered": 3, "percent": 75}, "lines": {"count": 21, "covered": 14, "percent": 66.66666666666666}, "regions": {"count": 20, "covered": 10, "notcovered": 10, "percent": 50}}}, {"filename": "/src/nghttp2/lib/nghttp2_rcbuf.c", "summary": {"functions": {"count": 7, "covered": 5, "percent": 71.42857142857143}, "instantiations": {"count": 7, "covered": 5, "percent": 71.42857142857143}, "lines": {"count": 59, "covered": 48, "percent": 81.35593220338984}, "regions": {"count": 23, "covered": 19, "notcovered": 4, "percent": 82.6086956521739}}}, {"filename": "/src/nghttp2/lib/nghttp2_session.c", "summary": {"functions": {"count": 189, "covered": 124, "percent": 65.60846560846561}, "instantiations": {"count": 189, "covered": 124, "percent": 65.60846560846561}, "lines": {"count": 6806, "covered": 4020, "percent": 59.06553041434029}, "regions": {"count": 3356, "covered": 1973, "notcovered": 1383, "percent": 58.790226460071516}}}, {"filename": "/src/nghttp2/lib/nghttp2_session.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/nghttp2/lib/nghttp2_stream.c", "summary": {"functions": {"count": 50, "covered": 29, "percent": 57.99999999999999}, "instantiations": {"count": 50, "covered": 29, "percent": 57.99999999999999}, "lines": {"count": 734, "covered": 348, "percent": 47.41144414168937}, "regions": {"count": 310, "covered": 132, "notcovered": 178, "percent": 42.58064516129032}}}, {"filename": "/src/nghttp2/lib/nghttp2_submit.c", "summary": {"functions": {"count": 23, "covered": 9, "percent": 39.130434782608695}, "instantiations": {"count": 23, "covered": 9, "percent": 39.130434782608695}, "lines": {"count": 698, "covered": 167, "percent": 23.925501432664756}, "regions": {"count": 292, "covered": 66, "notcovered": 226, "percent": 22.602739726027394}}}, {"filename": "/src/nghttp2/lib/nghttp2_version.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 5, "covered": 5, "percent": 100}, "regions": {"count": 5, "covered": 4, "notcovered": 1, "percent": 80}}}, {"filename": "/src/openssl/crypto/LPdir_unix.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 54, "covered": 0, "percent": 0}, "regions": {"count": 26, "covered": 0, "notcovered": 26, "percent": 0}}}, {"filename": "/src/openssl/crypto/aes/aes_misc.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 7, "covered": 0, "percent": 0}, "regions": {"count": 3, "covered": 0, "notcovered": 3, "percent": 0}}}, {"filename": "/src/openssl/crypto/aes/aes_wrap.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 7, "covered": 0, "percent": 0}, "regions": {"count": 2, "covered": 0, "notcovered": 2, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_bitstr.c", "summary": {"functions": {"count": 6, "covered": 1, "percent": 16.666666666666664}, "instantiations": {"count": 6, "covered": 1, "percent": 16.666666666666664}, "lines": {"count": 184, "covered": 42, "percent": 22.82608695652174}, "regions": {"count": 148, "covered": 24, "notcovered": 124, "percent": 16.216216216216218}}}, {"filename": "/src/openssl/crypto/asn1/a_bool.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 46, "covered": 0, "percent": 0}, "regions": {"count": 26, "covered": 0, "notcovered": 26, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_bytes.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 233, "covered": 0, "percent": 0}, "regions": {"count": 167, "covered": 0, "notcovered": 167, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_d2i_fp.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 199, "covered": 0, "percent": 0}, "regions": {"count": 141, "covered": 0, "notcovered": 141, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_digest.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 34, "covered": 0, "percent": 0}, "regions": {"count": 23, "covered": 0, "notcovered": 23, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_dup.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 41, "covered": 0, "percent": 0}, "regions": {"count": 21, "covered": 0, "notcovered": 21, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_enum.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 106, "covered": 0, "percent": 0}, "regions": {"count": 91, "covered": 0, "notcovered": 91, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_gentm.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 176, "covered": 0, "percent": 0}, "regions": {"count": 160, "covered": 0, "notcovered": 160, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_i2d_fp.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 79, "covered": 0, "percent": 0}, "regions": {"count": 47, "covered": 0, "notcovered": 47, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_int.c", "summary": {"functions": {"count": 9, "covered": 1, "percent": 11.11111111111111}, "instantiations": {"count": 9, "covered": 1, "percent": 11.11111111111111}, "lines": {"count": 345, "covered": 64, "percent": 18.55072463768116}, "regions": {"count": 266, "covered": 39, "notcovered": 227, "percent": 14.661654135338345}}}, {"filename": "/src/openssl/crypto/asn1/a_mbstr.c", "summary": {"functions": {"count": 11, "covered": 7, "percent": 63.63636363636363}, "instantiations": {"count": 11, "covered": 7, "percent": 63.63636363636363}, "lines": {"count": 277, "covered": 143, "percent": 51.624548736462096}, "regions": {"count": 225, "covered": 102, "notcovered": 123, "percent": 45.33333333333333}}}, {"filename": "/src/openssl/crypto/asn1/a_object.c", "summary": {"functions": {"count": 9, "covered": 3, "percent": 33.33333333333333}, "instantiations": {"count": 9, "covered": 3, "percent": 33.33333333333333}, "lines": {"count": 316, "covered": 91, "percent": 28.79746835443038}, "regions": {"count": 263, "covered": 58, "notcovered": 205, "percent": 22.0532319391635}}}, {"filename": "/src/openssl/crypto/asn1/a_octet.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 9, "covered": 0, "percent": 0}, "regions": {"count": 6, "covered": 0, "notcovered": 6, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_print.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 57, "covered": 0, "percent": 0}, "regions": {"count": 84, "covered": 0, "notcovered": 84, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_set.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 155, "covered": 0, "percent": 0}, "regions": {"count": 175, "covered": 0, "notcovered": 175, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_sign.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 189, "covered": 0, "percent": 0}, "regions": {"count": 143, "covered": 0, "notcovered": 143, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_strex.c", "summary": {"functions": {"count": 14, "covered": 1, "percent": 7.142857142857142}, "instantiations": {"count": 14, "covered": 1, "percent": 7.142857142857142}, "lines": {"count": 452, "covered": 19, "percent": 4.20353982300885}, "regions": {"count": 347, "covered": 13, "notcovered": 334, "percent": 3.7463976945244957}}}, {"filename": "/src/openssl/crypto/asn1/a_strnid.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 94, "covered": 0, "percent": 0}, "regions": {"count": 99, "covered": 0, "notcovered": 99, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_time.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 117, "covered": 0, "percent": 0}, "regions": {"count": 98, "covered": 0, "notcovered": 98, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_type.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 80, "covered": 8, "percent": 10}, "regions": {"count": 90, "covered": 5, "notcovered": 85, "percent": 5.555555555555555}}}, {"filename": "/src/openssl/crypto/asn1/a_utctm.c", "summary": {"functions": {"count": 6, "covered": 0, "percent": 0}, "instantiations": {"count": 6, "covered": 0, "percent": 0}, "lines": {"count": 184, "covered": 0, "percent": 0}, "regions": {"count": 176, "covered": 0, "notcovered": 176, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/a_utf8.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 151, "covered": 31, "percent": 20.52980132450331}, "regions": {"count": 137, "covered": 25, "notcovered": 112, "percent": 18.248175182481752}}}, {"filename": "/src/openssl/crypto/asn1/a_verify.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 148, "covered": 0, "percent": 0}, "regions": {"count": 106, "covered": 0, "notcovered": 106, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/ameth_lib.c", "summary": {"functions": {"count": 19, "covered": 9, "percent": 47.368421052631575}, "instantiations": {"count": 19, "covered": 9, "percent": 47.368421052631575}, "lines": {"count": 263, "covered": 109, "percent": 41.44486692015209}, "regions": {"count": 169, "covered": 44, "notcovered": 125, "percent": 26.035502958579883}}}, {"filename": "/src/openssl/crypto/asn1/asn1_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/asn1/asn1_gen.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 680, "covered": 0, "percent": 0}, "regions": {"count": 560, "covered": 0, "notcovered": 560, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/asn1_lib.c", "summary": {"functions": {"count": 27, "covered": 8, "percent": 29.629629629629626}, "instantiations": {"count": 27, "covered": 8, "percent": 29.629629629629626}, "lines": {"count": 349, "covered": 124, "percent": 35.53008595988539}, "regions": {"count": 251, "covered": 81, "notcovered": 170, "percent": 32.27091633466135}}}, {"filename": "/src/openssl/crypto/asn1/asn1_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/asn1_par.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 333, "covered": 0, "percent": 0}, "regions": {"count": 322, "covered": 0, "notcovered": 322, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/asn_mime.c", "summary": {"functions": {"count": 24, "covered": 0, "percent": 0}, "instantiations": {"count": 24, "covered": 0, "percent": 0}, "lines": {"count": 743, "covered": 0, "percent": 0}, "regions": {"count": 741, "covered": 0, "notcovered": 741, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/asn_moid.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 69, "covered": 3, "percent": 4.3478260869565215}, "regions": {"count": 52, "covered": 1, "notcovered": 51, "percent": 1.9230769230769231}}}, {"filename": "/src/openssl/crypto/asn1/asn_pack.c", "summary": {"functions": {"count": 6, "covered": 0, "percent": 0}, "instantiations": {"count": 6, "covered": 0, "percent": 0}, "lines": {"count": 109, "covered": 0, "percent": 0}, "regions": {"count": 96, "covered": 0, "notcovered": 96, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/bio_asn1.c", "summary": {"functions": {"count": 18, "covered": 0, "percent": 0}, "instantiations": {"count": 18, "covered": 0, "percent": 0}, "lines": {"count": 298, "covered": 0, "percent": 0}, "regions": {"count": 183, "covered": 0, "notcovered": 183, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/bio_ndef.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 141, "covered": 0, "percent": 0}, "regions": {"count": 64, "covered": 0, "notcovered": 64, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/d2i_pr.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 97, "covered": 0, "percent": 0}, "regions": {"count": 99, "covered": 0, "notcovered": 99, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/evp_asn1.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 117, "covered": 0, "percent": 0}, "regions": {"count": 92, "covered": 0, "notcovered": 92, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/f_int.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 141, "covered": 0, "percent": 0}, "regions": {"count": 129, "covered": 0, "notcovered": 129, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/f_string.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 135, "covered": 0, "percent": 0}, "regions": {"count": 118, "covered": 0, "notcovered": 118, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/i2d_pr.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 16, "covered": 0, "percent": 0}, "regions": {"count": 17, "covered": 0, "notcovered": 17, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/nsseq.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 8, "covered": 0, "percent": 0}, "regions": {"count": 5, "covered": 0, "notcovered": 5, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/p5_pbe.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 60, "covered": 0, "percent": 0}, "regions": {"count": 51, "covered": 0, "notcovered": 51, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/p5_pbev2.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 178, "covered": 0, "percent": 0}, "regions": {"count": 123, "covered": 0, "notcovered": 123, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/p8_pkey.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 61, "covered": 0, "percent": 0}, "regions": {"count": 55, "covered": 0, "notcovered": 55, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/t_pkey.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 47, "covered": 0, "percent": 0}, "regions": {"count": 49, "covered": 0, "notcovered": 49, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/t_x509.c", "summary": {"functions": {"count": 12, "covered": 0, "percent": 0}, "instantiations": {"count": 12, "covered": 0, "percent": 0}, "lines": {"count": 433, "covered": 0, "percent": 0}, "regions": {"count": 424, "covered": 0, "notcovered": 424, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/t_x509a.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 45, "covered": 0, "percent": 0}, "regions": {"count": 49, "covered": 0, "notcovered": 49, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/tasn_dec.c", "summary": {"functions": {"count": 13, "covered": 9, "percent": 69.23076923076923}, "instantiations": {"count": 13, "covered": 9, "percent": 69.23076923076923}, "lines": {"count": 1012, "covered": 510, "percent": 50.39525691699605}, "regions": {"count": 816, "covered": 383, "notcovered": 433, "percent": 46.93627450980392}}}, {"filename": "/src/openssl/crypto/asn1/tasn_enc.c", "summary": {"functions": {"count": 10, "covered": 5, "percent": 50}, "instantiations": {"count": 10, "covered": 5, "percent": 50}, "lines": {"count": 533, "covered": 310, "percent": 58.16135084427767}, "regions": {"count": 445, "covered": 227, "notcovered": 218, "percent": 51.01123595505618}}}, {"filename": "/src/openssl/crypto/asn1/tasn_fre.c", "summary": {"functions": {"count": 5, "covered": 4, "percent": 80}, "instantiations": {"count": 5, "covered": 4, "percent": 80}, "lines": {"count": 170, "covered": 130, "percent": 76.47058823529412}, "regions": {"count": 144, "covered": 107, "notcovered": 37, "percent": 74.30555555555556}}}, {"filename": "/src/openssl/crypto/asn1/tasn_new.c", "summary": {"functions": {"count": 8, "covered": 8, "percent": 100}, "instantiations": {"count": 8, "covered": 8, "percent": 100}, "lines": {"count": 250, "covered": 153, "percent": 61.199999999999996}, "regions": {"count": 220, "covered": 124, "notcovered": 96, "percent": 56.36363636363636}}}, {"filename": "/src/openssl/crypto/asn1/tasn_prn.c", "summary": {"functions": {"count": 21, "covered": 0, "percent": 0}, "instantiations": {"count": 21, "covered": 0, "percent": 0}, "lines": {"count": 426, "covered": 0, "percent": 0}, "regions": {"count": 379, "covered": 0, "notcovered": 379, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/tasn_utl.c", "summary": {"functions": {"count": 10, "covered": 8, "percent": 80}, "instantiations": {"count": 10, "covered": 8, "percent": 80}, "lines": {"count": 152, "covered": 83, "percent": 54.60526315789473}, "regions": {"count": 100, "covered": 57, "notcovered": 43, "percent": 56.99999999999999}}}, {"filename": "/src/openssl/crypto/asn1/x_algor.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 58, "covered": 0, "percent": 0}, "regions": {"count": 53, "covered": 0, "notcovered": 53, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/x_attrib.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 24, "covered": 0, "percent": 0}, "regions": {"count": 27, "covered": 0, "notcovered": 27, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/x_bignum.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 53, "covered": 0, "percent": 0}, "regions": {"count": 40, "covered": 0, "notcovered": 40, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/x_crl.c", "summary": {"functions": {"count": 17, "covered": 0, "percent": 0}, "instantiations": {"count": 17, "covered": 0, "percent": 0}, "lines": {"count": 331, "covered": 0, "percent": 0}, "regions": {"count": 332, "covered": 0, "notcovered": 332, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/x_info.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 38, "covered": 34, "percent": 89.47368421052632}, "regions": {"count": 24, "covered": 16, "notcovered": 8, "percent": 66.66666666666666}}}, {"filename": "/src/openssl/crypto/asn1/x_long.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 109, "covered": 0, "percent": 0}, "regions": {"count": 55, "covered": 0, "notcovered": 55, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/x_name.c", "summary": {"functions": {"count": 12, "covered": 8, "percent": 66.66666666666666}, "instantiations": {"count": 12, "covered": 8, "percent": 66.66666666666666}, "lines": {"count": 345, "covered": 218, "percent": 63.18840579710145}, "regions": {"count": 386, "covered": 205, "notcovered": 181, "percent": 53.10880829015544}}}, {"filename": "/src/openssl/crypto/asn1/x_pkey.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 80, "covered": 0, "percent": 0}, "regions": {"count": 101, "covered": 0, "notcovered": 101, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/x_pubkey.c", "summary": {"functions": {"count": 13, "covered": 1, "percent": 7.6923076923076925}, "instantiations": {"count": 13, "covered": 1, "percent": 7.6923076923076925}, "lines": {"count": 252, "covered": 7, "percent": 2.7777777777777777}, "regions": {"count": 166, "covered": 4, "notcovered": 162, "percent": 2.4096385542168677}}}, {"filename": "/src/openssl/crypto/asn1/x_req.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 10, "covered": 0, "percent": 0}, "regions": {"count": 9, "covered": 0, "notcovered": 9, "percent": 0}}}, {"filename": "/src/openssl/crypto/asn1/x_x509.c", "summary": {"functions": {"count": 10, "covered": 1, "percent": 10}, "instantiations": {"count": 10, "covered": 1, "percent": 10}, "lines": {"count": 142, "covered": 40, "percent": 28.169014084507044}, "regions": {"count": 76, "covered": 13, "notcovered": 63, "percent": 17.105263157894736}}}, {"filename": "/src/openssl/crypto/asn1/x_x509a.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 88, "covered": 0, "percent": 0}, "regions": {"count": 134, "covered": 0, "notcovered": 134, "percent": 0}}}, {"filename": "/src/openssl/crypto/bf/bf_cfb64.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 53, "covered": 0, "percent": 0}, "regions": {"count": 21, "covered": 0, "notcovered": 21, "percent": 0}}}, {"filename": "/src/openssl/crypto/bf/bf_ecb.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 20, "covered": 0, "percent": 0}, "regions": {"count": 10, "covered": 0, "notcovered": 10, "percent": 0}}}, {"filename": "/src/openssl/crypto/bf/bf_enc.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 134, "covered": 0, "percent": 0}, "regions": {"count": 94, "covered": 0, "notcovered": 94, "percent": 0}}}, {"filename": "/src/openssl/crypto/bf/bf_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/bf/bf_ofb64.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 41, "covered": 0, "percent": 0}, "regions": {"count": 16, "covered": 0, "notcovered": 16, "percent": 0}}}, {"filename": "/src/openssl/crypto/bf/bf_skey.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 51, "covered": 0, "percent": 0}, "regions": {"count": 25, "covered": 0, "notcovered": 25, "percent": 0}}}, {"filename": "/src/openssl/crypto/bio/b_dump.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 109, "covered": 0, "percent": 0}, "regions": {"count": 68, "covered": 0, "notcovered": 68, "percent": 0}}}, {"filename": "/src/openssl/crypto/bio/b_print.c", "summary": {"functions": {"count": 12, "covered": 6, "percent": 50}, "instantiations": {"count": 12, "covered": 6, "percent": 50}, "lines": {"count": 651, "covered": 254, "percent": 39.01689708141321}, "regions": {"count": 473, "covered": 172, "notcovered": 301, "percent": 36.36363636363637}}}, {"filename": "/src/openssl/crypto/bio/b_sock.c", "summary": {"functions": {"count": 11, "covered": 0, "percent": 0}, "instantiations": {"count": 11, "covered": 0, "percent": 0}, "lines": {"count": 455, "covered": 0, "percent": 0}, "regions": {"count": 266, "covered": 0, "notcovered": 266, "percent": 0}}}, {"filename": "/src/openssl/crypto/bio/bf_buff.c", "summary": {"functions": {"count": 9, "covered": 5, "percent": 55.55555555555556}, "instantiations": {"count": 9, "covered": 5, "percent": 55.55555555555556}, "lines": {"count": 409, "covered": 125, "percent": 30.56234718826406}, "regions": {"count": 302, "covered": 84, "notcovered": 218, "percent": 27.81456953642384}}}, {"filename": "/src/openssl/crypto/bio/bio_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/bio/bio_lcl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/bio/bio_lib.c", "summary": {"functions": {"count": 38, "covered": 15, "percent": 39.473684210526315}, "instantiations": {"count": 38, "covered": 15, "percent": 39.473684210526315}, "lines": {"count": 433, "covered": 194, "percent": 44.80369515011547}, "regions": {"count": 312, "covered": 109, "notcovered": 203, "percent": 34.93589743589743}}}, {"filename": "/src/openssl/crypto/bio/bss_conn.c", "summary": {"functions": {"count": 13, "covered": 0, "percent": 0}, "instantiations": {"count": 13, "covered": 0, "percent": 0}, "lines": {"count": 456, "covered": 0, "percent": 0}, "regions": {"count": 323, "covered": 0, "notcovered": 323, "percent": 0}}}, {"filename": "/src/openssl/crypto/bio/bss_file.c", "summary": {"functions": {"count": 11, "covered": 7, "percent": 63.63636363636363}, "instantiations": {"count": 11, "covered": 7, "percent": 63.63636363636363}, "lines": {"count": 233, "covered": 88, "percent": 37.76824034334764}, "regions": {"count": 193, "covered": 48, "notcovered": 145, "percent": 24.870466321243523}}}, {"filename": "/src/openssl/crypto/bio/bss_mem.c", "summary": {"functions": {"count": 9, "covered": 5, "percent": 55.55555555555556}, "instantiations": {"count": 9, "covered": 5, "percent": 55.55555555555556}, "lines": {"count": 207, "covered": 71, "percent": 34.29951690821256}, "regions": {"count": 140, "covered": 35, "notcovered": 105, "percent": 25}}}, {"filename": "/src/openssl/crypto/bio/bss_null.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 51, "covered": 0, "percent": 0}, "regions": {"count": 38, "covered": 0, "notcovered": 38, "percent": 0}}}, {"filename": "/src/openssl/crypto/bio/bss_sock.c", "summary": {"functions": {"count": 10, "covered": 8, "percent": 80}, "instantiations": {"count": 10, "covered": 8, "percent": 80}, "lines": {"count": 145, "covered": 83, "percent": 57.24137931034483}, "regions": {"count": 88, "covered": 49, "notcovered": 39, "percent": 55.68181818181818}}}, {"filename": "/src/openssl/crypto/bn/asm/x86_64-gcc.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 372, "covered": 0, "percent": 0}, "regions": {"count": 659, "covered": 0, "notcovered": 659, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_add.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 225, "covered": 0, "percent": 0}, "regions": {"count": 132, "covered": 0, "notcovered": 132, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_blind.c", "summary": {"functions": {"count": 13, "covered": 0, "percent": 0}, "instantiations": {"count": 13, "covered": 0, "percent": 0}, "lines": {"count": 215, "covered": 0, "percent": 0}, "regions": {"count": 173, "covered": 0, "notcovered": 173, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_ctx.c", "summary": {"functions": {"count": 16, "covered": 0, "percent": 0}, "instantiations": {"count": 16, "covered": 0, "percent": 0}, "lines": {"count": 192, "covered": 0, "percent": 0}, "regions": {"count": 110, "covered": 0, "notcovered": 110, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_div.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 237, "covered": 0, "percent": 0}, "regions": {"count": 186, "covered": 0, "notcovered": 186, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/bn/bn_exp.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 1076, "covered": 0, "percent": 0}, "regions": {"count": 895, "covered": 0, "notcovered": 895, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_exp2.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 183, "covered": 0, "percent": 0}, "regions": {"count": 170, "covered": 0, "notcovered": 170, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_gcd.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 567, "covered": 0, "percent": 0}, "regions": {"count": 387, "covered": 0, "notcovered": 387, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_gf2m.c", "summary": {"functions": {"count": 19, "covered": 0, "percent": 0}, "instantiations": {"count": 19, "covered": 0, "percent": 0}, "lines": {"count": 692, "covered": 0, "percent": 0}, "regions": {"count": 551, "covered": 0, "notcovered": 551, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_kron.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 123, "covered": 0, "percent": 0}, "regions": {"count": 93, "covered": 0, "notcovered": 93, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_lcl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_lib.c", "summary": {"functions": {"count": 30, "covered": 1, "percent": 3.3333333333333335}, "instantiations": {"count": 30, "covered": 1, "percent": 3.3333333333333335}, "lines": {"count": 669, "covered": 3, "percent": 0.4484304932735426}, "regions": {"count": 463, "covered": 3, "notcovered": 460, "percent": 0.6479481641468683}}}, {"filename": "/src/openssl/crypto/bn/bn_mod.c", "summary": {"functions": {"count": 11, "covered": 0, "percent": 0}, "instantiations": {"count": 11, "covered": 0, "percent": 0}, "lines": {"count": 146, "covered": 0, "percent": 0}, "regions": {"count": 108, "covered": 0, "notcovered": 108, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_mont.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 284, "covered": 0, "percent": 0}, "regions": {"count": 210, "covered": 0, "notcovered": 210, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_mul.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 894, "covered": 0, "percent": 0}, "regions": {"count": 514, "covered": 0, "notcovered": 514, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_nist.c", "summary": {"functions": {"count": 12, "covered": 0, "percent": 0}, "instantiations": {"count": 12, "covered": 0, "percent": 0}, "lines": {"count": 661, "covered": 0, "percent": 0}, "regions": {"count": 944, "covered": 0, "notcovered": 944, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_prime.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 341, "covered": 0, "percent": 0}, "regions": {"count": 352, "covered": 0, "notcovered": 352, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_prime.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_print.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 309, "covered": 0, "percent": 0}, "regions": {"count": 278, "covered": 0, "notcovered": 278, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_rand.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 161, "covered": 0, "percent": 0}, "regions": {"count": 118, "covered": 0, "notcovered": 118, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_recp.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 169, "covered": 0, "percent": 0}, "regions": {"count": 110, "covered": 0, "notcovered": 110, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_shift.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 155, "covered": 0, "percent": 0}, "regions": {"count": 132, "covered": 0, "notcovered": 132, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_sqr.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 175, "covered": 0, "percent": 0}, "regions": {"count": 90, "covered": 0, "notcovered": 90, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_sqrt.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 341, "covered": 0, "percent": 0}, "regions": {"count": 297, "covered": 0, "notcovered": 297, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/bn_word.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 169, "covered": 0, "percent": 0}, "regions": {"count": 122, "covered": 0, "notcovered": 122, "percent": 0}}}, {"filename": "/src/openssl/crypto/bn/rsaz_exp.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 226, "covered": 0, "percent": 0}, "regions": {"count": 15, "covered": 0, "notcovered": 15, "percent": 0}}}, {"filename": "/src/openssl/crypto/buffer/buf_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/buffer/buf_str.c", "summary": {"functions": {"count": 6, "covered": 5, "percent": 83.33333333333334}, "instantiations": {"count": 6, "covered": 5, "percent": 83.33333333333334}, "lines": {"count": 63, "covered": 47, "percent": 74.60317460317461}, "regions": {"count": 49, "covered": 31, "notcovered": 18, "percent": 63.26530612244898}}}, {"filename": "/src/openssl/crypto/buffer/buffer.c", "summary": {"functions": {"count": 5, "covered": 4, "percent": 80}, "instantiations": {"count": 5, "covered": 4, "percent": 80}, "lines": {"count": 109, "covered": 79, "percent": 72.47706422018348}, "regions": {"count": 71, "covered": 43, "notcovered": 28, "percent": 60.56338028169014}}}, {"filename": "/src/openssl/crypto/buildinf.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/camellia/cmll_misc.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 14, "covered": 0, "percent": 0}, "regions": {"count": 15, "covered": 0, "notcovered": 15, "percent": 0}}}, {"filename": "/src/openssl/crypto/camellia/cmll_utl.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 2, "covered": 0, "percent": 0}, "regions": {"count": 1, "covered": 0, "notcovered": 1, "percent": 0}}}, {"filename": "/src/openssl/crypto/cast/c_cfb64.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 53, "covered": 0, "percent": 0}, "regions": {"count": 21, "covered": 0, "notcovered": 21, "percent": 0}}}, {"filename": "/src/openssl/crypto/cast/c_ecb.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 17, "covered": 0, "percent": 0}, "regions": {"count": 9, "covered": 0, "notcovered": 9, "percent": 0}}}, {"filename": "/src/openssl/crypto/cast/c_enc.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 132, "covered": 0, "percent": 0}, "regions": {"count": 160, "covered": 0, "notcovered": 160, "percent": 0}}}, {"filename": "/src/openssl/crypto/cast/c_ofb64.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 41, "covered": 0, "percent": 0}, "regions": {"count": 16, "covered": 0, "notcovered": 16, "percent": 0}}}, {"filename": "/src/openssl/crypto/cast/c_skey.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 92, "covered": 0, "percent": 0}, "regions": {"count": 200, "covered": 0, "notcovered": 200, "percent": 0}}}, {"filename": "/src/openssl/crypto/cast/cast_lcl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/cmac/cm_ameth.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 8, "covered": 0, "percent": 0}, "regions": {"count": 5, "covered": 0, "notcovered": 5, "percent": 0}}}, {"filename": "/src/openssl/crypto/cmac/cm_pmeth.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 73, "covered": 0, "percent": 0}, "regions": {"count": 55, "covered": 0, "notcovered": 55, "percent": 0}}}, {"filename": "/src/openssl/crypto/cmac/cmac.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 166, "covered": 0, "percent": 0}, "regions": {"count": 122, "covered": 0, "notcovered": 122, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_asn1.c", "summary": {"functions": {"count": 6, "covered": 0, "percent": 0}, "instantiations": {"count": 6, "covered": 0, "percent": 0}, "lines": {"count": 114, "covered": 0, "percent": 0}, "regions": {"count": 80, "covered": 0, "notcovered": 80, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_att.c", "summary": {"functions": {"count": 20, "covered": 0, "percent": 0}, "instantiations": {"count": 20, "covered": 0, "percent": 0}, "lines": {"count": 77, "covered": 0, "percent": 0}, "regions": {"count": 44, "covered": 0, "notcovered": 44, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_dd.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 74, "covered": 0, "percent": 0}, "regions": {"count": 38, "covered": 0, "notcovered": 38, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_enc.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 185, "covered": 0, "percent": 0}, "regions": {"count": 149, "covered": 0, "notcovered": 149, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_env.c", "summary": {"functions": {"count": 28, "covered": 0, "percent": 0}, "instantiations": {"count": 28, "covered": 0, "percent": 0}, "lines": {"count": 795, "covered": 0, "percent": 0}, "regions": {"count": 608, "covered": 0, "notcovered": 608, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/cms/cms_io.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 52, "covered": 0, "percent": 0}, "regions": {"count": 34, "covered": 0, "notcovered": 34, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_kari.c", "summary": {"functions": {"count": 14, "covered": 0, "percent": 0}, "instantiations": {"count": 14, "covered": 0, "percent": 0}, "lines": {"count": 336, "covered": 0, "percent": 0}, "regions": {"count": 299, "covered": 0, "notcovered": 299, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_lcl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_lib.c", "summary": {"functions": {"count": 28, "covered": 0, "percent": 0}, "instantiations": {"count": 28, "covered": 0, "percent": 0}, "lines": {"count": 505, "covered": 0, "percent": 0}, "regions": {"count": 475, "covered": 0, "notcovered": 475, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_pwri.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 343, "covered": 0, "percent": 0}, "regions": {"count": 216, "covered": 0, "notcovered": 216, "percent": 0}}}, {"filename": "/src/openssl/crypto/cms/cms_sd.c", "summary": {"functions": {"count": 32, "covered": 0, "percent": 0}, "instantiations": {"count": 32, "covered": 0, "percent": 0}, "lines": {"count": 804, "covered": 0, "percent": 0}, "regions": {"count": 841, "covered": 0, "notcovered": 841, "percent": 0}}}, {"filename": "/src/openssl/crypto/comp/c_zlib.c", "summary": {"functions": {"count": 2, "covered": 1, "percent": 50}, "instantiations": {"count": 2, "covered": 1, "percent": 50}, "lines": {"count": 6, "covered": 5, "percent": 83.33333333333334}, "regions": {"count": 2, "covered": 1, "notcovered": 1, "percent": 50}}}, {"filename": "/src/openssl/crypto/comp/comp_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/comp/comp_lib.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 51, "covered": 0, "percent": 0}, "regions": {"count": 29, "covered": 0, "notcovered": 29, "percent": 0}}}, {"filename": "/src/openssl/crypto/conf/conf_api.c", "summary": {"functions": {"count": 10, "covered": 1, "percent": 10}, "instantiations": {"count": 10, "covered": 1, "percent": 10}, "lines": {"count": 154, "covered": 3, "percent": 1.948051948051948}, "regions": {"count": 218, "covered": 5, "notcovered": 213, "percent": 2.293577981651376}}}, {"filename": "/src/openssl/crypto/conf/conf_def.c", "summary": {"functions": {"count": 19, "covered": 6, "percent": 31.57894736842105}, "instantiations": {"count": 19, "covered": 6, "percent": 31.57894736842105}, "lines": {"count": 537, "covered": 44, "percent": 8.193668528864059}, "regions": {"count": 489, "covered": 25, "notcovered": 464, "percent": 5.112474437627812}}}, {"filename": "/src/openssl/crypto/conf/conf_def.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/conf/conf_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/conf/conf_lib.c", "summary": {"functions": {"count": 22, "covered": 3, "percent": 13.636363636363635}, "instantiations": {"count": 22, "covered": 3, "percent": 13.636363636363635}, "lines": {"count": 228, "covered": 21, "percent": 9.210526315789473}, "regions": {"count": 129, "covered": 11, "notcovered": 118, "percent": 8.527131782945736}}}, {"filename": "/src/openssl/crypto/conf/conf_mall.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 8, "covered": 8, "percent": 100}, "regions": {"count": 1, "covered": 1, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/conf/conf_mod.c", "summary": {"functions": {"count": 24, "covered": 4, "percent": 16.666666666666664}, "instantiations": {"count": 24, "covered": 4, "percent": 16.666666666666664}, "lines": {"count": 391, "covered": 74, "percent": 18.925831202046037}, "regions": {"count": 317, "covered": 48, "notcovered": 269, "percent": 15.141955835962145}}}, {"filename": "/src/openssl/crypto/constant_time_locl.h", "summary": {"functions": {"count": 14, "covered": 0, "percent": 0}, "instantiations": {"count": 98, "covered": 0, "percent": 0}, "lines": {"count": 42, "covered": 0, "percent": 0}, "regions": {"count": 14, "covered": 0, "notcovered": 14, "percent": 0}}}, {"filename": "/src/openssl/crypto/cpt_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/cryptlib.c", "summary": {"functions": {"count": 36, "covered": 8, "percent": 22.22222222222222}, "instantiations": {"count": 36, "covered": 8, "percent": 22.22222222222222}, "lines": {"count": 370, "covered": 71, "percent": 19.18918918918919}, "regions": {"count": 287, "covered": 28, "notcovered": 259, "percent": 9.75609756097561}}}, {"filename": "/src/openssl/crypto/cryptlib.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/cversion.c", "summary": {"functions": {"count": 2, "covered": 1, "percent": 50}, "instantiations": {"count": 2, "covered": 1, "percent": 50}, "lines": {"count": 20, "covered": 3, "percent": 15}, "regions": {"count": 26, "covered": 2, "notcovered": 24, "percent": 7.6923076923076925}}}, {"filename": "/src/openssl/crypto/des/cfb64ede.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 158, "covered": 0, "percent": 0}, "regions": {"count": 116, "covered": 0, "notcovered": 116, "percent": 0}}}, {"filename": "/src/openssl/crypto/des/cfb64enc.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 53, "covered": 0, "percent": 0}, "regions": {"count": 23, "covered": 0, "notcovered": 23, "percent": 0}}}, {"filename": "/src/openssl/crypto/des/cfb_enc.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 92, "covered": 0, "percent": 0}, "regions": {"count": 85, "covered": 0, "notcovered": 85, "percent": 0}}}, {"filename": "/src/openssl/crypto/des/des_enc.c", "summary": {"functions": {"count": 5, "covered": 1, "percent": 20}, "instantiations": {"count": 5, "covered": 1, "percent": 20}, "lines": {"count": 267, "covered": 52, "percent": 19.475655430711612}, "regions": {"count": 374, "covered": 83, "notcovered": 291, "percent": 22.192513368983956}}}, {"filename": "/src/openssl/crypto/des/des_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/des/ecb3_enc.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 19, "covered": 0, "percent": 0}, "regions": {"count": 9, "covered": 0, "notcovered": 9, "percent": 0}}}, {"filename": "/src/openssl/crypto/des/ecb_enc.c", "summary": {"functions": {"count": 2, "covered": 1, "percent": 50}, "instantiations": {"count": 2, "covered": 1, "percent": 50}, "lines": {"count": 38, "covered": 17, "percent": 44.73684210526316}, "regions": {"count": 12, "covered": 6, "notcovered": 6, "percent": 50}}}, {"filename": "/src/openssl/crypto/des/ncbc_enc.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 81, "covered": 0, "percent": 0}, "regions": {"count": 62, "covered": 0, "notcovered": 62, "percent": 0}}}, {"filename": "/src/openssl/crypto/des/ofb64ede.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 44, "covered": 0, "percent": 0}, "regions": {"count": 16, "covered": 0, "notcovered": 16, "percent": 0}}}, {"filename": "/src/openssl/crypto/des/ofb64enc.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 41, "covered": 0, "percent": 0}, "regions": {"count": 17, "covered": 0, "notcovered": 17, "percent": 0}}}, {"filename": "/src/openssl/crypto/des/set_key.c", "summary": {"functions": {"count": 7, "covered": 3, "percent": 42.857142857142854}, "instantiations": {"count": 7, "covered": 3, "percent": 42.857142857142854}, "lines": {"count": 107, "covered": 72, "percent": 67.28971962616822}, "regions": {"count": 52, "covered": 27, "notcovered": 25, "percent": 51.92307692307693}}}, {"filename": "/src/openssl/crypto/des/xcbc_enc.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 86, "covered": 0, "percent": 0}, "regions": {"count": 66, "covered": 0, "notcovered": 66, "percent": 0}}}, {"filename": "/src/openssl/crypto/dh/dh_ameth.c", "summary": {"functions": {"count": 29, "covered": 0, "percent": 0}, "instantiations": {"count": 29, "covered": 0, "percent": 0}, "lines": {"count": 738, "covered": 0, "percent": 0}, "regions": {"count": 595, "covered": 0, "notcovered": 595, "percent": 0}}}, {"filename": "/src/openssl/crypto/dh/dh_asn1.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 69, "covered": 0, "percent": 0}, "regions": {"count": 36, "covered": 0, "notcovered": 36, "percent": 0}}}, {"filename": "/src/openssl/crypto/dh/dh_check.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 104, "covered": 0, "percent": 0}, "regions": {"count": 162, "covered": 0, "notcovered": 162, "percent": 0}}}, {"filename": "/src/openssl/crypto/dh/dh_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/dh/dh_gen.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 77, "covered": 0, "percent": 0}, "regions": {"count": 71, "covered": 0, "notcovered": 71, "percent": 0}}}, {"filename": "/src/openssl/crypto/dh/dh_kdf.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 107, "covered": 0, "percent": 0}, "regions": {"count": 82, "covered": 0, "notcovered": 82, "percent": 0}}}, {"filename": "/src/openssl/crypto/dh/dh_key.c", "summary": {"functions": {"count": 9, "covered": 1, "percent": 11.11111111111111}, "instantiations": {"count": 9, "covered": 1, "percent": 11.11111111111111}, "lines": {"count": 172, "covered": 3, "percent": 1.744186046511628}, "regions": {"count": 141, "covered": 1, "notcovered": 140, "percent": 0.7092198581560284}}}, {"filename": "/src/openssl/crypto/dh/dh_lib.c", "summary": {"functions": {"count": 11, "covered": 0, "percent": 0}, "instantiations": {"count": 11, "covered": 0, "percent": 0}, "lines": {"count": 141, "covered": 0, "percent": 0}, "regions": {"count": 87, "covered": 0, "notcovered": 87, "percent": 0}}}, {"filename": "/src/openssl/crypto/dh/dh_pmeth.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 318, "covered": 0, "percent": 0}, "regions": {"count": 223, "covered": 0, "notcovered": 223, "percent": 0}}}, {"filename": "/src/openssl/crypto/dh/dh_rfc5114.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 18, "covered": 0, "percent": 0}, "regions": {"count": 17, "covered": 0, "notcovered": 17, "percent": 0}}}, {"filename": "/src/openssl/crypto/dsa/dsa_ameth.c", "summary": {"functions": {"count": 22, "covered": 0, "percent": 0}, "instantiations": {"count": 22, "covered": 0, "percent": 0}, "lines": {"count": 498, "covered": 0, "percent": 0}, "regions": {"count": 407, "covered": 0, "notcovered": 407, "percent": 0}}}, {"filename": "/src/openssl/crypto/dsa/dsa_asn1.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 68, "covered": 0, "percent": 0}, "regions": {"count": 45, "covered": 0, "notcovered": 45, "percent": 0}}}, {"filename": "/src/openssl/crypto/dsa/dsa_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/dsa/dsa_gen.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 604, "covered": 0, "percent": 0}, "regions": {"count": 503, "covered": 0, "notcovered": 503, "percent": 0}}}, {"filename": "/src/openssl/crypto/dsa/dsa_key.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 58, "covered": 0, "percent": 0}, "regions": {"count": 48, "covered": 0, "notcovered": 48, "percent": 0}}}, {"filename": "/src/openssl/crypto/dsa/dsa_lib.c", "summary": {"functions": {"count": 12, "covered": 1, "percent": 8.333333333333332}, "instantiations": {"count": 12, "covered": 1, "percent": 8.333333333333332}, "lines": {"count": 197, "covered": 6, "percent": 3.0456852791878175}, "regions": {"count": 121, "covered": 3, "notcovered": 118, "percent": 2.479338842975207}}}, {"filename": "/src/openssl/crypto/dsa/dsa_ossl.c", "summary": {"functions": {"count": 6, "covered": 1, "percent": 16.666666666666664}, "instantiations": {"count": 6, "covered": 1, "percent": 16.666666666666664}, "lines": {"count": 299, "covered": 3, "percent": 1.0033444816053512}, "regions": {"count": 248, "covered": 1, "notcovered": 247, "percent": 0.4032258064516129}}}, {"filename": "/src/openssl/crypto/dsa/dsa_pmeth.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 158, "covered": 0, "percent": 0}, "regions": {"count": 132, "covered": 0, "notcovered": 132, "percent": 0}}}, {"filename": "/src/openssl/crypto/dsa/dsa_sign.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 22, "covered": 0, "percent": 0}, "regions": {"count": 15, "covered": 0, "notcovered": 15, "percent": 0}}}, {"filename": "/src/openssl/crypto/dsa/dsa_vrf.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 2, "covered": 0, "percent": 0}, "regions": {"count": 1, "covered": 0, "notcovered": 1, "percent": 0}}}, {"filename": "/src/openssl/crypto/dso/dso_dlfcn.c", "summary": {"functions": {"count": 9, "covered": 4, "percent": 44.44444444444444}, "instantiations": {"count": 9, "covered": 4, "percent": 44.44444444444444}, "lines": {"count": 235, "covered": 53, "percent": 22.5531914893617}, "regions": {"count": 212, "covered": 40, "notcovered": 172, "percent": 18.867924528301888}}}, {"filename": "/src/openssl/crypto/dso/dso_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/dso/dso_lib.c", "summary": {"functions": {"count": 21, "covered": 7, "percent": 33.33333333333333}, "instantiations": {"count": 21, "covered": 7, "percent": 33.33333333333333}, "lines": {"count": 321, "covered": 116, "percent": 36.13707165109034}, "regions": {"count": 287, "covered": 96, "notcovered": 191, "percent": 33.44947735191638}}}, {"filename": "/src/openssl/crypto/dso/dso_openssl.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 1, "covered": 1, "percent": 100}, "regions": {"count": 1, "covered": 1, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/ec/ec2_mult.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 318, "covered": 0, "percent": 0}, "regions": {"count": 291, "covered": 0, "notcovered": 291, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec2_oct.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 290, "covered": 0, "percent": 0}, "regions": {"count": 254, "covered": 0, "notcovered": 254, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec2_smpl.c", "summary": {"functions": {"count": 27, "covered": 0, "percent": 0}, "instantiations": {"count": 27, "covered": 0, "percent": 0}, "lines": {"count": 562, "covered": 0, "percent": 0}, "regions": {"count": 412, "covered": 0, "notcovered": 412, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_ameth.c", "summary": {"functions": {"count": 27, "covered": 0, "percent": 0}, "instantiations": {"count": 27, "covered": 0, "percent": 0}, "lines": {"count": 795, "covered": 0, "percent": 0}, "regions": {"count": 678, "covered": 0, "notcovered": 678, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_asn1.c", "summary": {"functions": {"count": 17, "covered": 0, "percent": 0}, "instantiations": {"count": 17, "covered": 0, "percent": 0}, "lines": {"count": 1034, "covered": 0, "percent": 0}, "regions": {"count": 910, "covered": 0, "notcovered": 910, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_curve.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 160, "covered": 0, "percent": 0}, "regions": {"count": 137, "covered": 0, "notcovered": 137, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_cvt.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 81, "covered": 0, "percent": 0}, "regions": {"count": 33, "covered": 0, "notcovered": 33, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/ec/ec_key.c", "summary": {"functions": {"count": 26, "covered": 0, "percent": 0}, "instantiations": {"count": 26, "covered": 0, "percent": 0}, "lines": {"count": 412, "covered": 0, "percent": 0}, "regions": {"count": 305, "covered": 0, "notcovered": 305, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_lcl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_lib.c", "summary": {"functions": {"count": 60, "covered": 0, "percent": 0}, "instantiations": {"count": 60, "covered": 0, "percent": 0}, "lines": {"count": 868, "covered": 0, "percent": 0}, "regions": {"count": 672, "covered": 0, "notcovered": 672, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_mult.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 751, "covered": 0, "percent": 0}, "regions": {"count": 513, "covered": 0, "notcovered": 513, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_oct.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 87, "covered": 0, "percent": 0}, "regions": {"count": 88, "covered": 0, "notcovered": 88, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_pmeth.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 336, "covered": 0, "percent": 0}, "regions": {"count": 282, "covered": 0, "notcovered": 282, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ec_print.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 104, "covered": 0, "percent": 0}, "regions": {"count": 66, "covered": 0, "notcovered": 66, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/eck_prn.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 289, "covered": 0, "percent": 0}, "regions": {"count": 259, "covered": 0, "notcovered": 259, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ecp_mont.c", "summary": {"functions": {"count": 11, "covered": 0, "percent": 0}, "instantiations": {"count": 11, "covered": 0, "percent": 0}, "lines": {"count": 207, "covered": 0, "percent": 0}, "regions": {"count": 106, "covered": 0, "notcovered": 106, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ecp_nist.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 130, "covered": 0, "percent": 0}, "regions": {"count": 84, "covered": 0, "notcovered": 84, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ecp_nistp224.c", "summary": {"functions": {"count": 41, "covered": 0, "percent": 0}, "instantiations": {"count": 41, "covered": 0, "percent": 0}, "lines": {"count": 1273, "covered": 0, "percent": 0}, "regions": {"count": 405, "covered": 0, "notcovered": 405, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ecp_nistp521.c", "summary": {"functions": {"count": 42, "covered": 0, "percent": 0}, "instantiations": {"count": 42, "covered": 0, "percent": 0}, "lines": {"count": 1596, "covered": 0, "percent": 0}, "regions": {"count": 395, "covered": 0, "notcovered": 395, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ecp_nistputil.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 73, "covered": 0, "percent": 0}, "regions": {"count": 63, "covered": 0, "notcovered": 63, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ecp_nistz256.c", "summary": {"functions": {"count": 21, "covered": 0, "percent": 0}, "instantiations": {"count": 21, "covered": 0, "percent": 0}, "lines": {"count": 886, "covered": 0, "percent": 0}, "regions": {"count": 476, "covered": 0, "notcovered": 476, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ecp_oct.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 347, "covered": 0, "percent": 0}, "regions": {"count": 294, "covered": 0, "notcovered": 294, "percent": 0}}}, {"filename": "/src/openssl/crypto/ec/ecp_smpl.c", "summary": {"functions": {"count": 28, "covered": 0, "percent": 0}, "instantiations": {"count": 28, "covered": 0, "percent": 0}, "lines": {"count": 1244, "covered": 0, "percent": 0}, "regions": {"count": 938, "covered": 0, "notcovered": 938, "percent": 0}}}, {"filename": "/src/openssl/crypto/ecdh/ech_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/ecdh/ech_kdf.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 44, "covered": 0, "percent": 0}, "regions": {"count": 38, "covered": 0, "notcovered": 38, "percent": 0}}}, {"filename": "/src/openssl/crypto/ecdh/ech_key.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 6, "covered": 0, "percent": 0}, "regions": {"count": 4, "covered": 0, "notcovered": 4, "percent": 0}}}, {"filename": "/src/openssl/crypto/ecdh/ech_lib.c", "summary": {"functions": {"count": 11, "covered": 0, "percent": 0}, "instantiations": {"count": 11, "covered": 0, "percent": 0}, "lines": {"count": 129, "covered": 0, "percent": 0}, "regions": {"count": 61, "covered": 0, "notcovered": 61, "percent": 0}}}, {"filename": "/src/openssl/crypto/ecdh/ech_ossl.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 112, "covered": 0, "percent": 0}, "regions": {"count": 86, "covered": 0, "notcovered": 86, "percent": 0}}}, {"filename": "/src/openssl/crypto/ecdsa/ecs_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/ecdsa/ecs_lib.c", "summary": {"functions": {"count": 21, "covered": 0, "percent": 0}, "instantiations": {"count": 21, "covered": 0, "percent": 0}, "lines": {"count": 209, "covered": 0, "percent": 0}, "regions": {"count": 99, "covered": 0, "notcovered": 99, "percent": 0}}}, {"filename": "/src/openssl/crypto/ecdsa/ecs_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/ecdsa/ecs_ossl.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 383, "covered": 0, "percent": 0}, "regions": {"count": 337, "covered": 0, "notcovered": 337, "percent": 0}}}, {"filename": "/src/openssl/crypto/ecdsa/ecs_sign.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 30, "covered": 0, "percent": 0}, "regions": {"count": 14, "covered": 0, "notcovered": 14, "percent": 0}}}, {"filename": "/src/openssl/crypto/ecdsa/ecs_vrf.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 31, "covered": 0, "percent": 0}, "regions": {"count": 20, "covered": 0, "notcovered": 20, "percent": 0}}}, {"filename": "/src/openssl/crypto/engine/eng_all.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 41, "covered": 41, "percent": 100}, "regions": {"count": 1, "covered": 1, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/engine/eng_cnf.c", "summary": {"functions": {"count": 5, "covered": 1, "percent": 20}, "instantiations": {"count": 5, "covered": 1, "percent": 20}, "lines": {"count": 49, "covered": 4, "percent": 8.16326530612245}, "regions": {"count": 59, "covered": 1, "notcovered": 58, "percent": 1.694915254237288}}}, {"filename": "/src/openssl/crypto/engine/eng_ctrl.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 287, "covered": 0, "percent": 0}, "regions": {"count": 254, "covered": 0, "notcovered": 254, "percent": 0}}}, {"filename": "/src/openssl/crypto/engine/eng_dyn.c", "summary": {"functions": {"count": 11, "covered": 2, "percent": 18.181818181818183}, "instantiations": {"count": 11, "covered": 2, "percent": 18.181818181818183}, "lines": {"count": 360, "covered": 28, "percent": 7.777777777777778}, "regions": {"count": 275, "covered": 21, "notcovered": 254, "percent": 7.636363636363637}}}, {"filename": "/src/openssl/crypto/engine/eng_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/engine/eng_fat.c", "summary": {"functions": {"count": 4, "covered": 2, "percent": 50}, "instantiations": {"count": 4, "covered": 2, "percent": 50}, "lines": {"count": 75, "covered": 30, "percent": 40}, "regions": {"count": 75, "covered": 8, "notcovered": 67, "percent": 10.666666666666668}}}, {"filename": "/src/openssl/crypto/engine/eng_init.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 76, "covered": 12, "percent": 15.789473684210526}, "regions": {"count": 59, "covered": 6, "notcovered": 53, "percent": 10.16949152542373}}}, {"filename": "/src/openssl/crypto/engine/eng_lib.c", "summary": {"functions": {"count": 30, "covered": 15, "percent": 50}, "instantiations": {"count": 30, "covered": 15, "percent": 50}, "lines": {"count": 186, "covered": 86, "percent": 46.236559139784944}, "regions": {"count": 113, "covered": 59, "notcovered": 54, "percent": 52.21238938053098}}}, {"filename": "/src/openssl/crypto/engine/eng_list.c", "summary": {"functions": {"count": 12, "covered": 4, "percent": 33.33333333333333}, "instantiations": {"count": 12, "covered": 4, "percent": 33.33333333333333}, "lines": {"count": 276, "covered": 72, "percent": 26.08695652173913}, "regions": {"count": 204, "covered": 55, "notcovered": 149, "percent": 26.96078431372549}}}, {"filename": "/src/openssl/crypto/engine/eng_pkey.c", "summary": {"functions": {"count": 9, "covered": 2, "percent": 22.22222222222222}, "instantiations": {"count": 9, "covered": 2, "percent": 22.22222222222222}, "lines": {"count": 99, "covered": 8, "percent": 8.080808080808081}, "regions": {"count": 97, "covered": 2, "notcovered": 95, "percent": 2.0618556701030926}}}, {"filename": "/src/openssl/crypto/engine/eng_rdrand.c", "summary": {"functions": {"count": 6, "covered": 3, "percent": 50}, "instantiations": {"count": 6, "covered": 3, "percent": 50}, "lines": {"count": 58, "covered": 26, "percent": 44.827586206896555}, "regions": {"count": 41, "covered": 22, "notcovered": 19, "percent": 53.65853658536586}}}, {"filename": "/src/openssl/crypto/engine/eng_table.c", "summary": {"functions": {"count": 13, "covered": 6, "percent": 46.15384615384615}, "instantiations": {"count": 13, "covered": 6, "percent": 46.15384615384615}, "lines": {"count": 186, "covered": 109, "percent": 58.602150537634415}, "regions": {"count": 232, "covered": 117, "notcovered": 115, "percent": 50.43103448275862}}}, {"filename": "/src/openssl/crypto/engine/tb_asnmth.c", "summary": {"functions": {"count": 13, "covered": 2, "percent": 15.384615384615385}, "instantiations": {"count": 13, "covered": 2, "percent": 15.384615384615385}, "lines": {"count": 119, "covered": 18, "percent": 15.126050420168067}, "regions": {"count": 80, "covered": 9, "notcovered": 71, "percent": 11.25}}}, {"filename": "/src/openssl/crypto/engine/tb_cipher.c", "summary": {"functions": {"count": 9, "covered": 2, "percent": 22.22222222222222}, "instantiations": {"count": 9, "covered": 2, "percent": 22.22222222222222}, "lines": {"count": 53, "covered": 15, "percent": 28.30188679245283}, "regions": {"count": 29, "covered": 7, "notcovered": 22, "percent": 24.137931034482758}}}, {"filename": "/src/openssl/crypto/engine/tb_dh.c", "summary": {"functions": {"count": 8, "covered": 2, "percent": 25}, "instantiations": {"count": 8, "covered": 2, "percent": 25}, "lines": {"count": 36, "covered": 11, "percent": 30.555555555555557}, "regions": {"count": 17, "covered": 5, "notcovered": 12, "percent": 29.411764705882355}}}, {"filename": "/src/openssl/crypto/engine/tb_digest.c", "summary": {"functions": {"count": 9, "covered": 3, "percent": 33.33333333333333}, "instantiations": {"count": 9, "covered": 3, "percent": 33.33333333333333}, "lines": {"count": 53, "covered": 18, "percent": 33.9622641509434}, "regions": {"count": 29, "covered": 8, "notcovered": 21, "percent": 27.586206896551722}}}, {"filename": "/src/openssl/crypto/engine/tb_dsa.c", "summary": {"functions": {"count": 8, "covered": 2, "percent": 25}, "instantiations": {"count": 8, "covered": 2, "percent": 25}, "lines": {"count": 36, "covered": 11, "percent": 30.555555555555557}, "regions": {"count": 17, "covered": 5, "notcovered": 12, "percent": 29.411764705882355}}}, {"filename": "/src/openssl/crypto/engine/tb_ecdh.c", "summary": {"functions": {"count": 8, "covered": 1, "percent": 12.5}, "instantiations": {"count": 8, "covered": 1, "percent": 12.5}, "lines": {"count": 36, "covered": 4, "percent": 11.11111111111111}, "regions": {"count": 17, "covered": 3, "notcovered": 14, "percent": 17.647058823529413}}}, {"filename": "/src/openssl/crypto/engine/tb_ecdsa.c", "summary": {"functions": {"count": 8, "covered": 1, "percent": 12.5}, "instantiations": {"count": 8, "covered": 1, "percent": 12.5}, "lines": {"count": 36, "covered": 4, "percent": 11.11111111111111}, "regions": {"count": 17, "covered": 3, "notcovered": 14, "percent": 17.647058823529413}}}, {"filename": "/src/openssl/crypto/engine/tb_pkmeth.c", "summary": {"functions": {"count": 10, "covered": 2, "percent": 20}, "instantiations": {"count": 10, "covered": 2, "percent": 20}, "lines": {"count": 68, "covered": 15, "percent": 22.058823529411764}, "regions": {"count": 37, "covered": 7, "notcovered": 30, "percent": 18.91891891891892}}}, {"filename": "/src/openssl/crypto/engine/tb_rand.c", "summary": {"functions": {"count": 8, "covered": 3, "percent": 37.5}, "instantiations": {"count": 8, "covered": 3, "percent": 37.5}, "lines": {"count": 36, "covered": 14, "percent": 38.88888888888889}, "regions": {"count": 17, "covered": 6, "notcovered": 11, "percent": 35.294117647058826}}}, {"filename": "/src/openssl/crypto/engine/tb_rsa.c", "summary": {"functions": {"count": 8, "covered": 2, "percent": 25}, "instantiations": {"count": 8, "covered": 2, "percent": 25}, "lines": {"count": 36, "covered": 11, "percent": 30.555555555555557}, "regions": {"count": 17, "covered": 5, "notcovered": 12, "percent": 29.411764705882355}}}, {"filename": "/src/openssl/crypto/err/err.c", "summary": {"functions": {"count": 54, "covered": 37, "percent": 68.51851851851852}, "instantiations": {"count": 54, "covered": 37, "percent": 68.51851851851852}, "lines": {"count": 660, "covered": 486, "percent": 73.63636363636363}, "regions": {"count": 598, "covered": 423, "notcovered": 175, "percent": 70.73578595317726}}}, {"filename": "/src/openssl/crypto/err/err_all.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 49, "covered": 49, "percent": 100}, "regions": {"count": 1, "covered": 1, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/err/err_prn.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 36, "covered": 0, "percent": 0}, "regions": {"count": 14, "covered": 0, "notcovered": 14, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/bio_b64.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 446, "covered": 0, "percent": 0}, "regions": {"count": 321, "covered": 0, "notcovered": 321, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/bio_enc.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 296, "covered": 0, "percent": 0}, "regions": {"count": 183, "covered": 0, "notcovered": 183, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/bio_md.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 157, "covered": 0, "percent": 0}, "regions": {"count": 115, "covered": 0, "notcovered": 115, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/c_all.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 10, "covered": 10, "percent": 100}, "regions": {"count": 1, "covered": 1, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/evp/c_allc.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 176, "covered": 176, "percent": 100}, "regions": {"count": 115, "covered": 115, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/evp/c_alld.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 49, "covered": 49, "percent": 100}, "regions": {"count": 28, "covered": 28, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/evp/digest.c", "summary": {"functions": {"count": 12, "covered": 5, "percent": 41.66666666666667}, "instantiations": {"count": 12, "covered": 5, "percent": 41.66666666666667}, "lines": {"count": 221, "covered": 78, "percent": 35.294117647058826}, "regions": {"count": 167, "covered": 56, "notcovered": 111, "percent": 33.532934131736525}}}, {"filename": "/src/openssl/crypto/evp/e_aes.c", "summary": {"functions": {"count": 33, "covered": 5, "percent": 15.151515151515152}, "instantiations": {"count": 60, "covered": 32, "percent": 53.333333333333336}, "lines": {"count": 939, "covered": 13, "percent": 1.384451544195953}, "regions": {"count": 678, "covered": 9, "notcovered": 669, "percent": 1.3274336283185841}}}, {"filename": "/src/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c", "summary": {"functions": {"count": 7, "covered": 2, "percent": 28.57142857142857}, "instantiations": {"count": 7, "covered": 2, "percent": 28.57142857142857}, "lines": {"count": 641, "covered": 8, "percent": 1.24804992199688}, "regions": {"count": 310, "covered": 6, "notcovered": 304, "percent": 1.935483870967742}}}, {"filename": "/src/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c", "summary": {"functions": {"count": 7, "covered": 2, "percent": 28.57142857142857}, "instantiations": {"count": 7, "covered": 2, "percent": 28.57142857142857}, "lines": {"count": 682, "covered": 8, "percent": 1.1730205278592376}, "regions": {"count": 317, "covered": 8, "notcovered": 309, "percent": 2.5236593059936907}}}, {"filename": "/src/openssl/crypto/evp/e_bf.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 4, "covered": 0, "percent": 0}, "regions": {"count": 3, "covered": 0, "notcovered": 3, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/e_camellia.c", "summary": {"functions": {"count": 8, "covered": 1, "percent": 12.5}, "instantiations": {"count": 25, "covered": 18, "percent": 72}, "lines": {"count": 92, "covered": 2, "percent": 2.1739130434782608}, "regions": {"count": 51, "covered": 1, "notcovered": 50, "percent": 1.9607843137254901}}}, {"filename": "/src/openssl/crypto/evp/e_cast.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 4, "covered": 0, "percent": 0}, "regions": {"count": 3, "covered": 0, "notcovered": 3, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/e_des.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 110, "covered": 0, "percent": 0}, "regions": {"count": 75, "covered": 0, "notcovered": 75, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/e_des3.c", "summary": {"functions": {"count": 15, "covered": 3, "percent": 20}, "instantiations": {"count": 15, "covered": 3, "percent": 20}, "lines": {"count": 227, "covered": 9, "percent": 3.9647577092511015}, "regions": {"count": 175, "covered": 3, "notcovered": 172, "percent": 1.7142857142857144}}}, {"filename": "/src/openssl/crypto/evp/e_idea.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 23, "covered": 0, "percent": 0}, "regions": {"count": 26, "covered": 0, "notcovered": 26, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/e_null.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 12, "covered": 0, "percent": 0}, "regions": {"count": 5, "covered": 0, "notcovered": 5, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/e_rc2.c", "summary": {"functions": {"count": 8, "covered": 2, "percent": 25}, "instantiations": {"count": 8, "covered": 2, "percent": 25}, "lines": {"count": 90, "covered": 6, "percent": 6.666666666666667}, "regions": {"count": 70, "covered": 2, "notcovered": 68, "percent": 2.857142857142857}}}, {"filename": "/src/openssl/crypto/evp/e_rc4.c", "summary": {"functions": {"count": 4, "covered": 2, "percent": 50}, "instantiations": {"count": 4, "covered": 2, "percent": 50}, "lines": {"count": 14, "covered": 6, "percent": 42.857142857142854}, "regions": {"count": 6, "covered": 2, "notcovered": 4, "percent": 33.33333333333333}}}, {"filename": "/src/openssl/crypto/evp/e_rc4_hmac_md5.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 184, "covered": 3, "percent": 1.6304347826086956}, "regions": {"count": 96, "covered": 1, "notcovered": 95, "percent": 1.0416666666666665}}}, {"filename": "/src/openssl/crypto/evp/e_rc5.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 32, "covered": 0, "percent": 0}, "regions": {"count": 30, "covered": 0, "notcovered": 30, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/e_seed.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 4, "covered": 0, "percent": 0}, "regions": {"count": 1, "covered": 0, "notcovered": 1, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/e_xcbc_d.c", "summary": {"functions": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "instantiations": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "lines": {"count": 27, "covered": 3, "percent": 11.11111111111111}, "regions": {"count": 21, "covered": 1, "notcovered": 20, "percent": 4.761904761904762}}}, {"filename": "/src/openssl/crypto/evp/encode.c", "summary": {"functions": {"count": 9, "covered": 5, "percent": 55.55555555555556}, "instantiations": {"count": 9, "covered": 5, "percent": 55.55555555555556}, "lines": {"count": 253, "covered": 112, "percent": 44.26877470355731}, "regions": {"count": 159, "covered": 86, "notcovered": 73, "percent": 54.088050314465406}}}, {"filename": "/src/openssl/crypto/evp/evp_cnf.c", "summary": {"functions": {"count": 2, "covered": 1, "percent": 50}, "instantiations": {"count": 2, "covered": 1, "percent": 50}, "lines": {"count": 35, "covered": 3, "percent": 8.571428571428571}, "regions": {"count": 35, "covered": 1, "notcovered": 34, "percent": 2.857142857142857}}}, {"filename": "/src/openssl/crypto/evp/evp_enc.c", "summary": {"functions": {"count": 24, "covered": 0, "percent": 0}, "instantiations": {"count": 24, "covered": 0, "percent": 0}, "lines": {"count": 516, "covered": 0, "percent": 0}, "regions": {"count": 406, "covered": 0, "notcovered": 406, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/evp_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/evp/evp_key.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 111, "covered": 0, "percent": 0}, "regions": {"count": 102, "covered": 0, "notcovered": 102, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/evp_lib.c", "summary": {"functions": {"count": 31, "covered": 4, "percent": 12.903225806451612}, "instantiations": {"count": 31, "covered": 4, "percent": 12.903225806451612}, "lines": {"count": 217, "covered": 13, "percent": 5.990783410138248}, "regions": {"count": 150, "covered": 8, "notcovered": 142, "percent": 5.333333333333334}}}, {"filename": "/src/openssl/crypto/evp/evp_locl.h", "summary": {"functions": {"count": 5, "covered": 1, "percent": 20}, "instantiations": {"count": 63, "covered": 38, "percent": 60.317460317460316}, "lines": {"count": 48, "covered": 1, "percent": 2.083333333333333}, "regions": {"count": 47, "covered": 1, "notcovered": 46, "percent": 2.127659574468085}}}, {"filename": "/src/openssl/crypto/evp/evp_pbe.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 137, "covered": 0, "percent": 0}, "regions": {"count": 123, "covered": 0, "notcovered": 123, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/evp_pkey.c", "summary": {"functions": {"count": 13, "covered": 0, "percent": 0}, "instantiations": {"count": 13, "covered": 0, "percent": 0}, "lines": {"count": 125, "covered": 0, "percent": 0}, "regions": {"count": 83, "covered": 0, "notcovered": 83, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/m_dss.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 12, "covered": 3, "percent": 25}, "regions": {"count": 4, "covered": 1, "notcovered": 3, "percent": 25}}}, {"filename": "/src/openssl/crypto/evp/m_dss1.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 12, "covered": 3, "percent": 25}, "regions": {"count": 4, "covered": 1, "notcovered": 3, "percent": 25}}}, {"filename": "/src/openssl/crypto/evp/m_ecdsa.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 12, "covered": 3, "percent": 25}, "regions": {"count": 4, "covered": 1, "notcovered": 3, "percent": 25}}}, {"filename": "/src/openssl/crypto/evp/m_md4.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 12, "covered": 3, "percent": 25}, "regions": {"count": 4, "covered": 1, "notcovered": 3, "percent": 25}}}, {"filename": "/src/openssl/crypto/evp/m_md5.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 12, "covered": 3, "percent": 25}, "regions": {"count": 4, "covered": 1, "notcovered": 3, "percent": 25}}}, {"filename": "/src/openssl/crypto/evp/m_mdc2.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 12, "covered": 3, "percent": 25}, "regions": {"count": 4, "covered": 1, "notcovered": 3, "percent": 25}}}, {"filename": "/src/openssl/crypto/evp/m_ripemd.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 12, "covered": 3, "percent": 25}, "regions": {"count": 4, "covered": 1, "notcovered": 3, "percent": 25}}}, {"filename": "/src/openssl/crypto/evp/m_sha.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 12, "covered": 3, "percent": 25}, "regions": {"count": 4, "covered": 1, "notcovered": 3, "percent": 25}}}, {"filename": "/src/openssl/crypto/evp/m_sha1.c", "summary": {"functions": {"count": 16, "covered": 8, "percent": 50}, "instantiations": {"count": 16, "covered": 8, "percent": 50}, "lines": {"count": 48, "covered": 24, "percent": 50}, "regions": {"count": 16, "covered": 8, "notcovered": 8, "percent": 50}}}, {"filename": "/src/openssl/crypto/evp/m_sigver.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 122, "covered": 0, "percent": 0}, "regions": {"count": 118, "covered": 0, "notcovered": 118, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/m_wp.c", "summary": {"functions": {"count": 4, "covered": 1, "percent": 25}, "instantiations": {"count": 4, "covered": 1, "percent": 25}, "lines": {"count": 12, "covered": 3, "percent": 25}, "regions": {"count": 4, "covered": 1, "notcovered": 3, "percent": 25}}}, {"filename": "/src/openssl/crypto/evp/names.c", "summary": {"functions": {"count": 11, "covered": 4, "percent": 36.36363636363637}, "instantiations": {"count": 11, "covered": 4, "percent": 36.36363636363637}, "lines": {"count": 110, "covered": 51, "percent": 46.36363636363636}, "regions": {"count": 55, "covered": 30, "notcovered": 25, "percent": 54.54545454545454}}}, {"filename": "/src/openssl/crypto/evp/p5_crpt.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 75, "covered": 0, "percent": 0}, "regions": {"count": 66, "covered": 0, "notcovered": 66, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/p5_crpt2.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 200, "covered": 0, "percent": 0}, "regions": {"count": 138, "covered": 0, "notcovered": 138, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/p_lib.c", "summary": {"functions": {"count": 31, "covered": 1, "percent": 3.225806451612903}, "instantiations": {"count": 31, "covered": 1, "percent": 3.225806451612903}, "lines": {"count": 291, "covered": 5, "percent": 1.718213058419244}, "regions": {"count": 242, "covered": 3, "notcovered": 239, "percent": 1.2396694214876034}}}, {"filename": "/src/openssl/crypto/evp/p_sign.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 55, "covered": 0, "percent": 0}, "regions": {"count": 50, "covered": 0, "notcovered": 50, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/p_verify.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 50, "covered": 0, "percent": 0}, "regions": {"count": 47, "covered": 0, "notcovered": 47, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/pmeth_fn.c", "summary": {"functions": {"count": 13, "covered": 0, "percent": 0}, "instantiations": {"count": 13, "covered": 0, "percent": 0}, "lines": {"count": 229, "covered": 0, "percent": 0}, "regions": {"count": 355, "covered": 0, "notcovered": 355, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/pmeth_gn.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 130, "covered": 0, "percent": 0}, "regions": {"count": 119, "covered": 0, "notcovered": 119, "percent": 0}}}, {"filename": "/src/openssl/crypto/evp/pmeth_lib.c", "summary": {"functions": {"count": 50, "covered": 13, "percent": 26}, "instantiations": {"count": 50, "covered": 13, "percent": 26}, "lines": {"count": 420, "covered": 57, "percent": 13.571428571428571}, "regions": {"count": 296, "covered": 17, "notcovered": 279, "percent": 5.743243243243244}}}, {"filename": "/src/openssl/crypto/ex_data.c", "summary": {"functions": {"count": 24, "covered": 13, "percent": 54.166666666666664}, "instantiations": {"count": 24, "covered": 13, "percent": 54.166666666666664}, "lines": {"count": 296, "covered": 160, "percent": 54.054054054054056}, "regions": {"count": 436, "covered": 224, "notcovered": 212, "percent": 51.37614678899083}}}, {"filename": "/src/openssl/crypto/hmac/hm_ameth.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 52, "covered": 0, "percent": 0}, "regions": {"count": 32, "covered": 0, "notcovered": 32, "percent": 0}}}, {"filename": "/src/openssl/crypto/hmac/hm_pmeth.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 118, "covered": 0, "percent": 0}, "regions": {"count": 75, "covered": 0, "notcovered": 75, "percent": 0}}}, {"filename": "/src/openssl/crypto/hmac/hmac.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 138, "covered": 0, "percent": 0}, "regions": {"count": 124, "covered": 0, "notcovered": 124, "percent": 0}}}, {"filename": "/src/openssl/crypto/idea/i_cbc.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 105, "covered": 0, "percent": 0}, "regions": {"count": 202, "covered": 0, "notcovered": 202, "percent": 0}}}, {"filename": "/src/openssl/crypto/idea/i_cfb64.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 53, "covered": 0, "percent": 0}, "regions": {"count": 20, "covered": 0, "notcovered": 20, "percent": 0}}}, {"filename": "/src/openssl/crypto/idea/i_ecb.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 20, "covered": 0, "percent": 0}, "regions": {"count": 9, "covered": 0, "notcovered": 9, "percent": 0}}}, {"filename": "/src/openssl/crypto/idea/i_ofb64.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 41, "covered": 0, "percent": 0}, "regions": {"count": 15, "covered": 0, "notcovered": 15, "percent": 0}}}, {"filename": "/src/openssl/crypto/idea/i_skey.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 93, "covered": 0, "percent": 0}, "regions": {"count": 33, "covered": 0, "notcovered": 33, "percent": 0}}}, {"filename": "/src/openssl/crypto/idea/idea_lcl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/lhash/lhash.c", "summary": {"functions": {"count": 13, "covered": 11, "percent": 84.61538461538461}, "instantiations": {"count": 13, "covered": 11, "percent": 84.61538461538461}, "lines": {"count": 310, "covered": 239, "percent": 77.09677419354838}, "regions": {"count": 136, "covered": 97, "notcovered": 39, "percent": 71.32352941176471}}}, {"filename": "/src/openssl/crypto/md32_common.h", "summary": {"functions": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "instantiations": {"count": 18, "covered": 6, "percent": 33.33333333333333}, "lines": {"count": 91, "covered": 87, "percent": 95.6043956043956}, "regions": {"count": 84, "covered": 58, "notcovered": 26, "percent": 69.04761904761905}}}, {"filename": "/src/openssl/crypto/md4/md4_dgst.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 112, "covered": 112, "percent": 100}, "regions": {"count": 184, "covered": 184, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/md4/md4_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/md5/md5_dgst.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 8, "covered": 8, "percent": 100}, "regions": {"count": 5, "covered": 5, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/md5/md5_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/mdc2/mdc2dgst.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 90, "covered": 0, "percent": 0}, "regions": {"count": 41, "covered": 0, "notcovered": 41, "percent": 0}}}, {"filename": "/src/openssl/crypto/mem.c", "summary": {"functions": {"count": 23, "covered": 5, "percent": 21.73913043478261}, "instantiations": {"count": 23, "covered": 5, "percent": 21.73913043478261}, "lines": {"count": 234, "covered": 42, "percent": 17.94871794871795}, "regions": {"count": 170, "covered": 19, "notcovered": 151, "percent": 11.176470588235295}}}, {"filename": "/src/openssl/crypto/mem_dbg.c", "summary": {"functions": {"count": 21, "covered": 4, "percent": 19.047619047619047}, "instantiations": {"count": 21, "covered": 4, "percent": 19.047619047619047}, "lines": {"count": 490, "covered": 45, "percent": 9.183673469387756}, "regions": {"count": 403, "covered": 25, "notcovered": 378, "percent": 6.20347394540943}}}, {"filename": "/src/openssl/crypto/modes/cbc128.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 135, "covered": 0, "percent": 0}, "regions": {"count": 83, "covered": 0, "notcovered": 83, "percent": 0}}}, {"filename": "/src/openssl/crypto/modes/ccm128.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 359, "covered": 0, "percent": 0}, "regions": {"count": 139, "covered": 0, "notcovered": 139, "percent": 0}}}, {"filename": "/src/openssl/crypto/modes/cfb128.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 164, "covered": 0, "percent": 0}, "regions": {"count": 85, "covered": 0, "notcovered": 85, "percent": 0}}}, {"filename": "/src/openssl/crypto/modes/ctr128.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 165, "covered": 0, "percent": 0}, "regions": {"count": 64, "covered": 0, "notcovered": 64, "percent": 0}}}, {"filename": "/src/openssl/crypto/modes/gcm128.c", "summary": {"functions": {"count": 12, "covered": 0, "percent": 0}, "instantiations": {"count": 12, "covered": 0, "percent": 0}, "lines": {"count": 732, "covered": 0, "percent": 0}, "regions": {"count": 376, "covered": 0, "notcovered": 376, "percent": 0}}}, {"filename": "/src/openssl/crypto/modes/modes_lcl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/modes/ofb128.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 55, "covered": 0, "percent": 0}, "regions": {"count": 26, "covered": 0, "notcovered": 26, "percent": 0}}}, {"filename": "/src/openssl/crypto/modes/wrap128.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 62, "covered": 0, "percent": 0}, "regions": {"count": 41, "covered": 0, "notcovered": 41, "percent": 0}}}, {"filename": "/src/openssl/crypto/modes/xts128.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 120, "covered": 0, "percent": 0}, "regions": {"count": 35, "covered": 0, "notcovered": 35, "percent": 0}}}, {"filename": "/src/openssl/crypto/o_init.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 5, "covered": 5, "percent": 100}, "regions": {"count": 4, "covered": 4, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/o_time.c", "summary": {"functions": {"count": 6, "covered": 0, "percent": 0}, "instantiations": {"count": 6, "covered": 0, "percent": 0}, "lines": {"count": 122, "covered": 0, "percent": 0}, "regions": {"count": 50, "covered": 0, "notcovered": 50, "percent": 0}}}, {"filename": "/src/openssl/crypto/objects/o_names.c", "summary": {"functions": {"count": 15, "covered": 5, "percent": 33.33333333333333}, "instantiations": {"count": 15, "covered": 5, "percent": 33.33333333333333}, "lines": {"count": 258, "covered": 87, "percent": 33.72093023255814}, "regions": {"count": 296, "covered": 75, "notcovered": 221, "percent": 25.33783783783784}}}, {"filename": "/src/openssl/crypto/objects/obj_dat.c", "summary": {"functions": {"count": 25, "covered": 8, "percent": 32}, "instantiations": {"count": 25, "covered": 8, "percent": 32}, "lines": {"count": 567, "covered": 87, "percent": 15.343915343915343}, "regions": {"count": 541, "covered": 80, "notcovered": 461, "percent": 14.78743068391867}}}, {"filename": "/src/openssl/crypto/objects/obj_dat.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/objects/obj_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/objects/obj_lib.c", "summary": {"functions": {"count": 2, "covered": 1, "percent": 50}, "instantiations": {"count": 2, "covered": 1, "percent": 50}, "lines": {"count": 68, "covered": 31, "percent": 45.588235294117645}, "regions": {"count": 51, "covered": 20, "notcovered": 31, "percent": 39.21568627450981}}}, {"filename": "/src/openssl/crypto/objects/obj_xref.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 108, "covered": 0, "percent": 0}, "regions": {"count": 133, "covered": 0, "notcovered": 133, "percent": 0}}}, {"filename": "/src/openssl/crypto/ocsp/ocsp_cl.c", "summary": {"functions": {"count": 12, "covered": 0, "percent": 0}, "instantiations": {"count": 12, "covered": 0, "percent": 0}, "lines": {"count": 219, "covered": 0, "percent": 0}, "regions": {"count": 209, "covered": 0, "notcovered": 209, "percent": 0}}}, {"filename": "/src/openssl/crypto/ocsp/ocsp_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/ocsp/ocsp_ht.c", "summary": {"functions": {"count": 14, "covered": 0, "percent": 0}, "instantiations": {"count": 14, "covered": 0, "percent": 0}, "lines": {"count": 402, "covered": 0, "percent": 0}, "regions": {"count": 328, "covered": 0, "notcovered": 328, "percent": 0}}}, {"filename": "/src/openssl/crypto/ocsp/ocsp_lib.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 192, "covered": 0, "percent": 0}, "regions": {"count": 118, "covered": 0, "notcovered": 118, "percent": 0}}}, {"filename": "/src/openssl/crypto/ocsp/ocsp_prn.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 210, "covered": 0, "percent": 0}, "regions": {"count": 226, "covered": 0, "notcovered": 226, "percent": 0}}}, {"filename": "/src/openssl/crypto/ocsp/ocsp_vfy.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 338, "covered": 0, "percent": 0}, "regions": {"count": 348, "covered": 0, "notcovered": 348, "percent": 0}}}, {"filename": "/src/openssl/crypto/pem/pem_all.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 72, "covered": 0, "percent": 0}, "regions": {"count": 33, "covered": 0, "notcovered": 33, "percent": 0}}}, {"filename": "/src/openssl/crypto/pem/pem_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/pem/pem_info.c", "summary": {"functions": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "instantiations": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "lines": {"count": 310, "covered": 86, "percent": 27.741935483870968}, "regions": {"count": 294, "covered": 72, "notcovered": 222, "percent": 24.489795918367346}}}, {"filename": "/src/openssl/crypto/pem/pem_lib.c", "summary": {"functions": {"count": 14, "covered": 3, "percent": 21.428571428571427}, "instantiations": {"count": 14, "covered": 3, "percent": 21.428571428571427}, "lines": {"count": 605, "covered": 118, "percent": 19.50413223140496}, "regions": {"count": 476, "covered": 71, "notcovered": 405, "percent": 14.915966386554622}}}, {"filename": "/src/openssl/crypto/pem/pem_oth.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 15, "covered": 0, "percent": 0}, "regions": {"count": 8, "covered": 0, "notcovered": 8, "percent": 0}}}, {"filename": "/src/openssl/crypto/pem/pem_pk8.c", "summary": {"functions": {"count": 12, "covered": 0, "percent": 0}, "instantiations": {"count": 12, "covered": 0, "percent": 0}, "lines": {"count": 124, "covered": 0, "percent": 0}, "regions": {"count": 81, "covered": 0, "notcovered": 81, "percent": 0}}}, {"filename": "/src/openssl/crypto/pem/pem_pkey.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 163, "covered": 0, "percent": 0}, "regions": {"count": 116, "covered": 0, "notcovered": 116, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/p12_add.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 158, "covered": 0, "percent": 0}, "regions": {"count": 120, "covered": 0, "notcovered": 120, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/p12_attr.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 62, "covered": 0, "percent": 0}, "regions": {"count": 73, "covered": 0, "notcovered": 73, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/p12_crpt.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 49, "covered": 0, "percent": 0}, "regions": {"count": 40, "covered": 0, "notcovered": 40, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/p12_decr.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 92, "covered": 0, "percent": 0}, "regions": {"count": 66, "covered": 0, "notcovered": 66, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/p12_key.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 117, "covered": 0, "percent": 0}, "regions": {"count": 117, "covered": 0, "notcovered": 117, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/p12_kiss.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 210, "covered": 0, "percent": 0}, "regions": {"count": 269, "covered": 0, "notcovered": 269, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/p12_mutl.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 114, "covered": 0, "percent": 0}, "regions": {"count": 111, "covered": 0, "notcovered": 111, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/p12_p8d.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 5, "covered": 0, "percent": 0}, "regions": {"count": 2, "covered": 0, "notcovered": 2, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/p12_p8e.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 38, "covered": 0, "percent": 0}, "regions": {"count": 26, "covered": 0, "notcovered": 26, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/p12_utl.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 76, "covered": 0, "percent": 0}, "regions": {"count": 69, "covered": 0, "notcovered": 69, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs12/pk12err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/pkcs7/pk7_asn1.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 38, "covered": 0, "percent": 0}, "regions": {"count": 27, "covered": 0, "notcovered": 27, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs7/pk7_attr.c", "summary": {"functions": {"count": 6, "covered": 0, "percent": 0}, "instantiations": {"count": 6, "covered": 0, "percent": 0}, "lines": {"count": 82, "covered": 0, "percent": 0}, "regions": {"count": 82, "covered": 0, "notcovered": 82, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs7/pk7_doit.c", "summary": {"functions": {"count": 24, "covered": 0, "percent": 0}, "instantiations": {"count": 24, "covered": 0, "percent": 0}, "lines": {"count": 1136, "covered": 0, "percent": 0}, "regions": {"count": 1049, "covered": 0, "notcovered": 1049, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs7/pk7_lib.c", "summary": {"functions": {"count": 20, "covered": 0, "percent": 0}, "instantiations": {"count": 20, "covered": 0, "percent": 0}, "lines": {"count": 540, "covered": 0, "percent": 0}, "regions": {"count": 449, "covered": 0, "notcovered": 449, "percent": 0}}}, {"filename": "/src/openssl/crypto/pkcs7/pkcs7err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/pqueue/pqueue.c", "summary": {"functions": {"count": 12, "covered": 0, "percent": 0}, "instantiations": {"count": 12, "covered": 0, "percent": 0}, "lines": {"count": 137, "covered": 0, "percent": 0}, "regions": {"count": 69, "covered": 0, "notcovered": 69, "percent": 0}}}, {"filename": "/src/openssl/crypto/rand/md_rand.c", "summary": {"functions": {"count": 8, "covered": 5, "percent": 62.5}, "instantiations": {"count": 8, "covered": 5, "percent": 62.5}, "lines": {"count": 405, "covered": 349, "percent": 86.17283950617283}, "regions": {"count": 273, "covered": 231, "notcovered": 42, "percent": 84.61538461538461}}}, {"filename": "/src/openssl/crypto/rand/rand_egd.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 148, "covered": 0, "percent": 0}, "regions": {"count": 75, "covered": 0, "notcovered": 75, "percent": 0}}}, {"filename": "/src/openssl/crypto/rand/rand_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/rand/rand_lcl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/rand/rand_lib.c", "summary": {"functions": {"count": 9, "covered": 4, "percent": 44.44444444444444}, "instantiations": {"count": 9, "covered": 4, "percent": 44.44444444444444}, "lines": {"count": 79, "covered": 25, "percent": 31.645569620253166}, "regions": {"count": 55, "covered": 21, "notcovered": 34, "percent": 38.18181818181819}}}, {"filename": "/src/openssl/crypto/rand/rand_unix.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 133, "covered": 114, "percent": 85.71428571428571}, "regions": {"count": 57, "covered": 37, "notcovered": 20, "percent": 64.91228070175438}}}, {"filename": "/src/openssl/crypto/rand/randfile.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 159, "covered": 0, "percent": 0}, "regions": {"count": 89, "covered": 0, "notcovered": 89, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc2/rc2_cbc.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 161, "covered": 0, "percent": 0}, "regions": {"count": 75, "covered": 0, "notcovered": 75, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc2/rc2_ecb.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 17, "covered": 0, "percent": 0}, "regions": {"count": 8, "covered": 0, "notcovered": 8, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc2/rc2_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc2/rc2_skey.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 45, "covered": 0, "percent": 0}, "regions": {"count": 19, "covered": 0, "notcovered": 19, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc2/rc2cfb64.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 53, "covered": 0, "percent": 0}, "regions": {"count": 20, "covered": 0, "notcovered": 20, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc2/rc2ofb64.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 41, "covered": 0, "percent": 0}, "regions": {"count": 15, "covered": 0, "notcovered": 15, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc4/rc4_utl.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 2, "covered": 0, "percent": 0}, "regions": {"count": 1, "covered": 0, "notcovered": 1, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc5/rc5_ecb.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 17, "covered": 0, "percent": 0}, "regions": {"count": 8, "covered": 0, "notcovered": 8, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc5/rc5_enc.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 140, "covered": 0, "percent": 0}, "regions": {"count": 271, "covered": 0, "notcovered": 271, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc5/rc5_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc5/rc5_skey.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 47, "covered": 0, "percent": 0}, "regions": {"count": 50, "covered": 0, "notcovered": 50, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc5/rc5cfb64.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 53, "covered": 0, "percent": 0}, "regions": {"count": 20, "covered": 0, "notcovered": 20, "percent": 0}}}, {"filename": "/src/openssl/crypto/rc5/rc5ofb64.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 41, "covered": 0, "percent": 0}, "regions": {"count": 15, "covered": 0, "notcovered": 15, "percent": 0}}}, {"filename": "/src/openssl/crypto/ripemd/rmd_dgst.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 249, "covered": 0, "percent": 0}, "regions": {"count": 841, "covered": 0, "notcovered": 841, "percent": 0}}}, {"filename": "/src/openssl/crypto/ripemd/rmd_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_ameth.c", "summary": {"functions": {"count": 32, "covered": 0, "percent": 0}, "instantiations": {"count": 32, "covered": 0, "percent": 0}, "lines": {"count": 751, "covered": 0, "percent": 0}, "regions": {"count": 780, "covered": 0, "notcovered": 780, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_asn1.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 19, "covered": 0, "percent": 0}, "regions": {"count": 16, "covered": 0, "notcovered": 16, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_crpt.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 122, "covered": 0, "percent": 0}, "regions": {"count": 88, "covered": 0, "notcovered": 88, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_eay.c", "summary": {"functions": {"count": 11, "covered": 1, "percent": 9.090909090909092}, "instantiations": {"count": 11, "covered": 1, "percent": 9.090909090909092}, "lines": {"count": 724, "covered": 3, "percent": 0.4143646408839779}, "regions": {"count": 598, "covered": 1, "notcovered": 597, "percent": 0.16722408026755853}}}, {"filename": "/src/openssl/crypto/rsa/rsa_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/rsa/rsa_gen.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 151, "covered": 0, "percent": 0}, "regions": {"count": 178, "covered": 0, "notcovered": 178, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_lib.c", "summary": {"functions": {"count": 12, "covered": 0, "percent": 0}, "instantiations": {"count": 12, "covered": 0, "percent": 0}, "lines": {"count": 207, "covered": 0, "percent": 0}, "regions": {"count": 118, "covered": 0, "notcovered": 118, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_none.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 25, "covered": 0, "percent": 0}, "regions": {"count": 17, "covered": 0, "notcovered": 17, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_oaep.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 232, "covered": 0, "percent": 0}, "regions": {"count": 129, "covered": 0, "notcovered": 129, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_pk1.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 196, "covered": 0, "percent": 0}, "regions": {"count": 93, "covered": 0, "notcovered": 93, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_pmeth.c", "summary": {"functions": {"count": 12, "covered": 0, "percent": 0}, "instantiations": {"count": 12, "covered": 0, "percent": 0}, "lines": {"count": 456, "covered": 0, "percent": 0}, "regions": {"count": 439, "covered": 0, "notcovered": 439, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_pss.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 206, "covered": 0, "percent": 0}, "regions": {"count": 166, "covered": 0, "notcovered": 166, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_saos.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 74, "covered": 0, "percent": 0}, "regions": {"count": 51, "covered": 0, "notcovered": 51, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_sign.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 195, "covered": 0, "percent": 0}, "regions": {"count": 182, "covered": 0, "notcovered": 182, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_ssl.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 80, "covered": 0, "percent": 0}, "regions": {"count": 60, "covered": 0, "notcovered": 60, "percent": 0}}}, {"filename": "/src/openssl/crypto/rsa/rsa_x931.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 92, "covered": 0, "percent": 0}, "regions": {"count": 55, "covered": 0, "notcovered": 55, "percent": 0}}}, {"filename": "/src/openssl/crypto/seed/seed.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 106, "covered": 0, "percent": 0}, "regions": {"count": 216, "covered": 0, "notcovered": 216, "percent": 0}}}, {"filename": "/src/openssl/crypto/seed/seed_cbc.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 8, "covered": 0, "percent": 0}, "regions": {"count": 4, "covered": 0, "notcovered": 4, "percent": 0}}}, {"filename": "/src/openssl/crypto/seed/seed_cfb.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 4, "covered": 0, "percent": 0}, "regions": {"count": 1, "covered": 0, "notcovered": 1, "percent": 0}}}, {"filename": "/src/openssl/crypto/seed/seed_ecb.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 6, "covered": 0, "percent": 0}, "regions": {"count": 4, "covered": 0, "notcovered": 4, "percent": 0}}}, {"filename": "/src/openssl/crypto/seed/seed_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/seed/seed_ofb.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 4, "covered": 0, "percent": 0}, "regions": {"count": 1, "covered": 0, "notcovered": 1, "percent": 0}}}, {"filename": "/src/openssl/crypto/sha/sha1_one.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 13, "covered": 0, "percent": 0}, "regions": {"count": 6, "covered": 0, "notcovered": 6, "percent": 0}}}, {"filename": "/src/openssl/crypto/sha/sha256.c", "summary": {"functions": {"count": 6, "covered": 0, "percent": 0}, "instantiations": {"count": 6, "covered": 0, "percent": 0}, "lines": {"count": 56, "covered": 0, "percent": 0}, "regions": {"count": 12, "covered": 0, "notcovered": 12, "percent": 0}}}, {"filename": "/src/openssl/crypto/sha/sha512.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 171, "covered": 0, "percent": 0}, "regions": {"count": 71, "covered": 0, "notcovered": 71, "percent": 0}}}, {"filename": "/src/openssl/crypto/sha/sha_locl.h", "summary": {"functions": {"count": 2, "covered": 1, "percent": 50}, "instantiations": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "lines": {"count": 204, "covered": 9, "percent": 4.411764705882353}, "regions": {"count": 632, "covered": 6, "notcovered": 626, "percent": 0.949367088607595}}}, {"filename": "/src/openssl/crypto/srp/srp_grps.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/srp/srp_lib.c", "summary": {"functions": {"count": 11, "covered": 0, "percent": 0}, "instantiations": {"count": 11, "covered": 0, "percent": 0}, "lines": {"count": 254, "covered": 0, "percent": 0}, "regions": {"count": 209, "covered": 0, "notcovered": 209, "percent": 0}}}, {"filename": "/src/openssl/crypto/srp/srp_vfy.c", "summary": {"functions": {"count": 21, "covered": 0, "percent": 0}, "instantiations": {"count": 21, "covered": 0, "percent": 0}, "lines": {"count": 567, "covered": 0, "percent": 0}, "regions": {"count": 511, "covered": 0, "notcovered": 511, "percent": 0}}}, {"filename": "/src/openssl/crypto/stack/stack.c", "summary": {"functions": {"count": 23, "covered": 16, "percent": 69.56521739130434}, "instantiations": {"count": 23, "covered": 16, "percent": 69.56521739130434}, "lines": {"count": 253, "covered": 165, "percent": 65.21739130434783}, "regions": {"count": 194, "covered": 107, "notcovered": 87, "percent": 55.154639175257735}}}, {"filename": "/src/openssl/crypto/ts/ts_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/txt_db/txt_db.c", "summary": {"functions": {"count": 6, "covered": 0, "percent": 0}, "instantiations": {"count": 6, "covered": 0, "percent": 0}, "lines": {"count": 314, "covered": 0, "percent": 0}, "regions": {"count": 386, "covered": 0, "notcovered": 386, "percent": 0}}}, {"filename": "/src/openssl/crypto/ui/ui_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/ui/ui_lib.c", "summary": {"functions": {"count": 55, "covered": 0, "percent": 0}, "instantiations": {"count": 55, "covered": 0, "percent": 0}, "lines": {"count": 653, "covered": 0, "percent": 0}, "regions": {"count": 465, "covered": 0, "notcovered": 465, "percent": 0}}}, {"filename": "/src/openssl/crypto/ui/ui_locl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/ui/ui_openssl.c", "summary": {"functions": {"count": 11, "covered": 0, "percent": 0}, "instantiations": {"count": 11, "covered": 0, "percent": 0}, "lines": {"count": 196, "covered": 0, "percent": 0}, "regions": {"count": 124, "covered": 0, "notcovered": 124, "percent": 0}}}, {"filename": "/src/openssl/crypto/uid.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 7, "covered": 0, "percent": 0}, "regions": {"count": 7, "covered": 0, "notcovered": 7, "percent": 0}}}, {"filename": "/src/openssl/crypto/whrlpool/wp_dgst.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 191, "covered": 0, "percent": 0}, "regions": {"count": 97, "covered": 0, "notcovered": 97, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/by_dir.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 290, "covered": 0, "percent": 0}, "regions": {"count": 302, "covered": 0, "notcovered": 302, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/by_file.c", "summary": {"functions": {"count": 5, "covered": 3, "percent": 60}, "instantiations": {"count": 5, "covered": 3, "percent": 60}, "lines": {"count": 180, "covered": 42, "percent": 23.333333333333332}, "regions": {"count": 175, "covered": 40, "notcovered": 135, "percent": 22.857142857142858}}}, {"filename": "/src/openssl/crypto/x509/x509_att.c", "summary": {"functions": {"count": 19, "covered": 0, "percent": 0}, "instantiations": {"count": 19, "covered": 0, "percent": 0}, "lines": {"count": 261, "covered": 0, "percent": 0}, "regions": {"count": 280, "covered": 0, "notcovered": 280, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/x509_cmp.c", "summary": {"functions": {"count": 26, "covered": 2, "percent": 7.6923076923076925}, "instantiations": {"count": 26, "covered": 2, "percent": 7.6923076923076925}, "lines": {"count": 327, "covered": 22, "percent": 6.727828746177369}, "regions": {"count": 278, "covered": 13, "notcovered": 265, "percent": 4.676258992805756}}}, {"filename": "/src/openssl/crypto/x509/x509_d2.c", "summary": {"functions": {"count": 2, "covered": 1, "percent": 50}, "instantiations": {"count": 2, "covered": 1, "percent": 50}, "lines": {"count": 39, "covered": 14, "percent": 35.8974358974359}, "regions": {"count": 39, "covered": 15, "notcovered": 24, "percent": 38.46153846153847}}}, {"filename": "/src/openssl/crypto/x509/x509_def.c", "summary": {"functions": {"count": 6, "covered": 1, "percent": 16.666666666666664}, "instantiations": {"count": 6, "covered": 1, "percent": 16.666666666666664}, "lines": {"count": 18, "covered": 3, "percent": 16.666666666666664}, "regions": {"count": 15, "covered": 2, "notcovered": 13, "percent": 13.333333333333334}}}, {"filename": "/src/openssl/crypto/x509/x509_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/crypto/x509/x509_ext.c", "summary": {"functions": {"count": 27, "covered": 0, "percent": 0}, "instantiations": {"count": 27, "covered": 0, "percent": 0}, "lines": {"count": 83, "covered": 0, "percent": 0}, "regions": {"count": 27, "covered": 0, "notcovered": 27, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/x509_lu.c", "summary": {"functions": {"count": 34, "covered": 13, "percent": 38.23529411764706}, "instantiations": {"count": 34, "covered": 13, "percent": 38.23529411764706}, "lines": {"count": 554, "covered": 167, "percent": 30.144404332129966}, "regions": {"count": 608, "covered": 138, "notcovered": 470, "percent": 22.697368421052634}}}, {"filename": "/src/openssl/crypto/x509/x509_obj.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 123, "covered": 77, "percent": 62.601626016260155}, "regions": {"count": 104, "covered": 63, "notcovered": 41, "percent": 60.57692307692307}}}, {"filename": "/src/openssl/crypto/x509/x509_req.c", "summary": {"functions": {"count": 18, "covered": 0, "percent": 0}, "instantiations": {"count": 18, "covered": 0, "percent": 0}, "lines": {"count": 198, "covered": 0, "percent": 0}, "regions": {"count": 168, "covered": 0, "notcovered": 168, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/x509_trs.c", "summary": {"functions": {"count": 17, "covered": 0, "percent": 0}, "instantiations": {"count": 17, "covered": 0, "percent": 0}, "lines": {"count": 182, "covered": 0, "percent": 0}, "regions": {"count": 209, "covered": 0, "notcovered": 209, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/x509_txt.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 147, "covered": 0, "percent": 0}, "regions": {"count": 134, "covered": 0, "notcovered": 134, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/x509_v3.c", "summary": {"functions": {"count": 15, "covered": 0, "percent": 0}, "instantiations": {"count": 15, "covered": 0, "percent": 0}, "lines": {"count": 180, "covered": 0, "percent": 0}, "regions": {"count": 223, "covered": 0, "notcovered": 223, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/x509_vfy.c", "summary": {"functions": {"count": 72, "covered": 1, "percent": 1.3888888888888888}, "instantiations": {"count": 72, "covered": 1, "percent": 1.3888888888888888}, "lines": {"count": 2208, "covered": 8, "percent": 0.36231884057971014}, "regions": {"count": 1926, "covered": 2, "notcovered": 1924, "percent": 0.10384215991692627}}}, {"filename": "/src/openssl/crypto/x509/x509_vpm.c", "summary": {"functions": {"count": 35, "covered": 5, "percent": 14.285714285714285}, "instantiations": {"count": 35, "covered": 5, "percent": 14.285714285714285}, "lines": {"count": 386, "covered": 110, "percent": 28.497409326424872}, "regions": {"count": 461, "covered": 87, "notcovered": 374, "percent": 18.872017353579178}}}, {"filename": "/src/openssl/crypto/x509/x509cset.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 88, "covered": 0, "percent": 0}, "regions": {"count": 75, "covered": 0, "notcovered": 75, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/x509name.c", "summary": {"functions": {"count": 18, "covered": 0, "percent": 0}, "instantiations": {"count": 18, "covered": 0, "percent": 0}, "lines": {"count": 274, "covered": 0, "percent": 0}, "regions": {"count": 288, "covered": 0, "notcovered": 288, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/x509rset.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 15, "covered": 0, "percent": 0}, "regions": {"count": 16, "covered": 0, "notcovered": 16, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/x509type.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 62, "covered": 0, "percent": 0}, "regions": {"count": 57, "covered": 0, "notcovered": 57, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509/x_all.c", "summary": {"functions": {"count": 80, "covered": 0, "percent": 0}, "instantiations": {"count": 80, "covered": 0, "percent": 0}, "lines": {"count": 291, "covered": 0, "percent": 0}, "regions": {"count": 422, "covered": 0, "notcovered": 422, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/ext_dat.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/pcy_cache.c", "summary": {"functions": {"count": 7, "covered": 1, "percent": 14.285714285714285}, "instantiations": {"count": 7, "covered": 1, "percent": 14.285714285714285}, "lines": {"count": 179, "covered": 3, "percent": 1.675977653631285}, "regions": {"count": 196, "covered": 3, "notcovered": 193, "percent": 1.530612244897959}}}, {"filename": "/src/openssl/crypto/x509v3/pcy_data.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 50, "covered": 0, "percent": 0}, "regions": {"count": 54, "covered": 0, "notcovered": 54, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/pcy_int.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/pcy_lib.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 60, "covered": 0, "percent": 0}, "regions": {"count": 64, "covered": 0, "notcovered": 64, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/pcy_map.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 59, "covered": 0, "percent": 0}, "regions": {"count": 76, "covered": 0, "notcovered": 76, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/pcy_node.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 99, "covered": 0, "percent": 0}, "regions": {"count": 120, "covered": 0, "notcovered": 120, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/pcy_tree.c", "summary": {"functions": {"count": 14, "covered": 0, "percent": 0}, "instantiations": {"count": 14, "covered": 0, "percent": 0}, "lines": {"count": 576, "covered": 0, "percent": 0}, "regions": {"count": 541, "covered": 0, "notcovered": 541, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_akey.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 103, "covered": 0, "percent": 0}, "regions": {"count": 110, "covered": 0, "notcovered": 110, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_alt.c", "summary": {"functions": {"count": 13, "covered": 0, "percent": 0}, "instantiations": {"count": 13, "covered": 0, "percent": 0}, "lines": {"count": 478, "covered": 0, "percent": 0}, "regions": {"count": 527, "covered": 0, "notcovered": 527, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_bcons.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 5, "covered": 0, "percent": 0}, "regions": {"count": 1, "covered": 0, "notcovered": 1, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_bitst.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 8, "covered": 0, "percent": 0}, "regions": {"count": 6, "covered": 0, "notcovered": 6, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_conf.c", "summary": {"functions": {"count": 27, "covered": 0, "percent": 0}, "instantiations": {"count": 27, "covered": 0, "percent": 0}, "lines": {"count": 304, "covered": 0, "percent": 0}, "regions": {"count": 244, "covered": 0, "notcovered": 244, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_cpols.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 338, "covered": 0, "percent": 0}, "regions": {"count": 410, "covered": 0, "notcovered": 410, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_crld.c", "summary": {"functions": {"count": 11, "covered": 0, "percent": 0}, "instantiations": {"count": 11, "covered": 0, "percent": 0}, "lines": {"count": 292, "covered": 0, "percent": 0}, "regions": {"count": 348, "covered": 0, "notcovered": 348, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_enum.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 10, "covered": 0, "percent": 0}, "regions": {"count": 7, "covered": 0, "notcovered": 7, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_extku.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 41, "covered": 0, "percent": 0}, "regions": {"count": 61, "covered": 0, "notcovered": 61, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_genn.c", "summary": {"functions": {"count": 7, "covered": 0, "percent": 0}, "instantiations": {"count": 7, "covered": 0, "percent": 0}, "lines": {"count": 132, "covered": 0, "percent": 0}, "regions": {"count": 93, "covered": 0, "notcovered": 93, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_ia5.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 31, "covered": 0, "percent": 0}, "regions": {"count": 30, "covered": 0, "notcovered": 30, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_info.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 93, "covered": 0, "percent": 0}, "regions": {"count": 117, "covered": 0, "notcovered": 117, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_int.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 3, "covered": 0, "percent": 0}, "regions": {"count": 1, "covered": 0, "notcovered": 1, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_lib.c", "summary": {"functions": {"count": 13, "covered": 0, "percent": 0}, "instantiations": {"count": 13, "covered": 0, "percent": 0}, "lines": {"count": 226, "covered": 0, "percent": 0}, "regions": {"count": 241, "covered": 0, "notcovered": 241, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_ncons.c", "summary": {"functions": {"count": 13, "covered": 0, "percent": 0}, "instantiations": {"count": 13, "covered": 0, "percent": 0}, "lines": {"count": 358, "covered": 0, "percent": 0}, "regions": {"count": 355, "covered": 0, "notcovered": 355, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_ocsp.c", "summary": {"functions": {"count": 11, "covered": 0, "percent": 0}, "instantiations": {"count": 11, "covered": 0, "percent": 0}, "lines": {"count": 117, "covered": 0, "percent": 0}, "regions": {"count": 129, "covered": 0, "notcovered": 129, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_pci.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 105, "covered": 0, "percent": 0}, "regions": {"count": 102, "covered": 0, "notcovered": 102, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_pcons.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 8, "covered": 0, "percent": 0}, "regions": {"count": 1, "covered": 0, "notcovered": 1, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_pku.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 14, "covered": 0, "percent": 0}, "regions": {"count": 7, "covered": 0, "notcovered": 7, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_pmaps.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 56, "covered": 0, "percent": 0}, "regions": {"count": 87, "covered": 0, "notcovered": 87, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_prn.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 143, "covered": 0, "percent": 0}, "regions": {"count": 146, "covered": 0, "notcovered": 146, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_purp.c", "summary": {"functions": {"count": 34, "covered": 0, "percent": 0}, "instantiations": {"count": 34, "covered": 0, "percent": 0}, "lines": {"count": 598, "covered": 0, "percent": 0}, "regions": {"count": 670, "covered": 0, "notcovered": 670, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_scts.c", "summary": {"functions": {"count": 6, "covered": 0, "percent": 0}, "instantiations": {"count": 6, "covered": 0, "percent": 0}, "lines": {"count": 186, "covered": 0, "percent": 0}, "regions": {"count": 125, "covered": 0, "notcovered": 125, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_skey.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 69, "covered": 0, "percent": 0}, "regions": {"count": 57, "covered": 0, "notcovered": 57, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_sxnet.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 124, "covered": 0, "percent": 0}, "regions": {"count": 138, "covered": 0, "notcovered": 138, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3_utl.c", "summary": {"functions": {"count": 43, "covered": 0, "percent": 0}, "instantiations": {"count": 43, "covered": 0, "percent": 0}, "lines": {"count": 1020, "covered": 0, "percent": 0}, "regions": {"count": 974, "covered": 0, "notcovered": 974, "percent": 0}}}, {"filename": "/src/openssl/crypto/x509v3/v3err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/e_os.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/e_gost_err.c", "summary": {"functions": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "instantiations": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "lines": {"count": 26, "covered": 12, "percent": 46.15384615384615}, "regions": {"count": 12, "covered": 5, "notcovered": 7, "percent": 41.66666666666667}}}, {"filename": "/src/openssl/engines/ccgost/e_gost_err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gost2001.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 375, "covered": 0, "percent": 0}, "regions": {"count": 336, "covered": 0, "notcovered": 336, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gost2001_keyx.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 237, "covered": 0, "percent": 0}, "regions": {"count": 129, "covered": 0, "notcovered": 129, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gost89.c", "summary": {"functions": {"count": 18, "covered": 0, "percent": 0}, "instantiations": {"count": 18, "covered": 0, "percent": 0}, "lines": {"count": 293, "covered": 0, "percent": 0}, "regions": {"count": 74, "covered": 0, "notcovered": 74, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gost94_keyx.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 222, "covered": 0, "percent": 0}, "regions": {"count": 131, "covered": 0, "notcovered": 131, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gost_ameth.c", "summary": {"functions": {"count": 39, "covered": 1, "percent": 2.564102564102564}, "instantiations": {"count": 39, "covered": 1, "percent": 2.564102564102564}, "lines": {"count": 835, "covered": 45, "percent": 5.389221556886228}, "regions": {"count": 486, "covered": 11, "notcovered": 475, "percent": 2.263374485596708}}}, {"filename": "/src/openssl/engines/ccgost/gost_crypt.c", "summary": {"functions": {"count": 20, "covered": 0, "percent": 0}, "instantiations": {"count": 20, "covered": 0, "percent": 0}, "lines": {"count": 425, "covered": 0, "percent": 0}, "regions": {"count": 232, "covered": 0, "notcovered": 232, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gost_ctl.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 49, "covered": 0, "percent": 0}, "regions": {"count": 42, "covered": 0, "notcovered": 42, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gost_eng.c", "summary": {"functions": {"count": 10, "covered": 6, "percent": 60}, "instantiations": {"count": 10, "covered": 6, "percent": 60}, "lines": {"count": 202, "covered": 78, "percent": 38.613861386138616}, "regions": {"count": 144, "covered": 80, "notcovered": 64, "percent": 55.55555555555556}}}, {"filename": "/src/openssl/engines/ccgost/gost_keywrap.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 53, "covered": 0, "percent": 0}, "regions": {"count": 15, "covered": 0, "notcovered": 15, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gost_lcl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gost_md.c", "summary": {"functions": {"count": 5, "covered": 0, "percent": 0}, "instantiations": {"count": 5, "covered": 0, "percent": 0}, "lines": {"count": 28, "covered": 0, "percent": 0}, "regions": {"count": 11, "covered": 0, "notcovered": 11, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gost_pmeth.c", "summary": {"functions": {"count": 25, "covered": 1, "percent": 4}, "instantiations": {"count": 25, "covered": 1, "percent": 4}, "lines": {"count": 491, "covered": 57, "percent": 11.608961303462321}, "regions": {"count": 313, "covered": 10, "notcovered": 303, "percent": 3.1948881789137378}}}, {"filename": "/src/openssl/engines/ccgost/gost_sign.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 239, "covered": 0, "percent": 0}, "regions": {"count": 152, "covered": 0, "notcovered": 152, "percent": 0}}}, {"filename": "/src/openssl/engines/ccgost/gosthash.c", "summary": {"functions": {"count": 11, "covered": 0, "percent": 0}, "instantiations": {"count": 11, "covered": 0, "percent": 0}, "lines": {"count": 183, "covered": 0, "percent": 0}, "regions": {"count": 56, "covered": 0, "notcovered": 56, "percent": 0}}}, {"filename": "/src/openssl/engines/e_4758cca.c", "summary": {"functions": {"count": 20, "covered": 5, "percent": 25}, "instantiations": {"count": 20, "covered": 5, "percent": 25}, "lines": {"count": 659, "covered": 59, "percent": 8.952959028831563}, "regions": {"count": 321, "covered": 43, "notcovered": 278, "percent": 13.395638629283487}}}, {"filename": "/src/openssl/engines/e_4758cca_err.c", "summary": {"functions": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "instantiations": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "lines": {"count": 26, "covered": 16, "percent": 61.53846153846154}, "regions": {"count": 12, "covered": 8, "notcovered": 4, "percent": 66.66666666666666}}}, {"filename": "/src/openssl/engines/e_4758cca_err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/e_aep.c", "summary": {"functions": {"count": 24, "covered": 3, "percent": 12.5}, "instantiations": {"count": 24, "covered": 3, "percent": 12.5}, "lines": {"count": 613, "covered": 85, "percent": 13.866231647634583}, "regions": {"count": 327, "covered": 29, "notcovered": 298, "percent": 8.868501529051988}}}, {"filename": "/src/openssl/engines/e_aep_err.c", "summary": {"functions": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "instantiations": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "lines": {"count": 26, "covered": 12, "percent": 46.15384615384615}, "regions": {"count": 12, "covered": 5, "notcovered": 7, "percent": 41.66666666666667}}}, {"filename": "/src/openssl/engines/e_aep_err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/e_atalla.c", "summary": {"functions": {"count": 16, "covered": 3, "percent": 18.75}, "instantiations": {"count": 16, "covered": 3, "percent": 18.75}, "lines": {"count": 313, "covered": 78, "percent": 24.920127795527154}, "regions": {"count": 163, "covered": 29, "notcovered": 134, "percent": 17.791411042944784}}}, {"filename": "/src/openssl/engines/e_atalla_err.c", "summary": {"functions": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "instantiations": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "lines": {"count": 35, "covered": 17, "percent": 48.57142857142857}, "regions": {"count": 13, "covered": 6, "notcovered": 7, "percent": 46.15384615384615}}}, {"filename": "/src/openssl/engines/e_atalla_err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/e_chil.c", "summary": {"functions": {"count": 28, "covered": 5, "percent": 17.857142857142858}, "instantiations": {"count": 28, "covered": 5, "percent": 17.857142857142858}, "lines": {"count": 847, "covered": 104, "percent": 12.278630460448642}, "regions": {"count": 560, "covered": 44, "notcovered": 516, "percent": 7.857142857142857}}}, {"filename": "/src/openssl/engines/e_chil_err.c", "summary": {"functions": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "instantiations": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "lines": {"count": 35, "covered": 21, "percent": 60}, "regions": {"count": 13, "covered": 9, "notcovered": 4, "percent": 69.23076923076923}}}, {"filename": "/src/openssl/engines/e_chil_err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/e_cswift.c", "summary": {"functions": {"count": 22, "covered": 5, "percent": 22.727272727272727}, "instantiations": {"count": 22, "covered": 5, "percent": 22.727272727272727}, "lines": {"count": 732, "covered": 91, "percent": 12.431693989071038}, "regions": {"count": 455, "covered": 42, "notcovered": 413, "percent": 9.230769230769232}}}, {"filename": "/src/openssl/engines/e_cswift_err.c", "summary": {"functions": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "instantiations": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "lines": {"count": 35, "covered": 21, "percent": 60}, "regions": {"count": 13, "covered": 9, "notcovered": 4, "percent": 69.23076923076923}}}, {"filename": "/src/openssl/engines/e_cswift_err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/e_nuron.c", "summary": {"functions": {"count": 16, "covered": 3, "percent": 18.75}, "instantiations": {"count": 16, "covered": 3, "percent": 18.75}, "lines": {"count": 195, "covered": 78, "percent": 40}, "regions": {"count": 104, "covered": 29, "notcovered": 75, "percent": 27.884615384615387}}}, {"filename": "/src/openssl/engines/e_nuron_err.c", "summary": {"functions": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "instantiations": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "lines": {"count": 35, "covered": 17, "percent": 48.57142857142857}, "regions": {"count": 13, "covered": 6, "notcovered": 7, "percent": 46.15384615384615}}}, {"filename": "/src/openssl/engines/e_nuron_err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/e_padlock.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 2, "covered": 2, "percent": 100}, "regions": {"count": 1, "covered": 1, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/engines/e_sureware.c", "summary": {"functions": {"count": 22, "covered": 4, "percent": 18.181818181818183}, "instantiations": {"count": 22, "covered": 4, "percent": 18.181818181818183}, "lines": {"count": 734, "covered": 123, "percent": 16.7574931880109}, "regions": {"count": 489, "covered": 47, "notcovered": 442, "percent": 9.611451942740286}}}, {"filename": "/src/openssl/engines/e_sureware_err.c", "summary": {"functions": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "instantiations": {"count": 3, "covered": 2, "percent": 66.66666666666666}, "lines": {"count": 35, "covered": 21, "percent": 60}, "regions": {"count": 13, "covered": 9, "notcovered": 4, "percent": 69.23076923076923}}}, {"filename": "/src/openssl/engines/e_sureware_err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/e_ubsec.c", "summary": {"functions": {"count": 19, "covered": 3, "percent": 15.789473684210526}, "instantiations": {"count": 19, "covered": 3, "percent": 15.789473684210526}, "lines": {"count": 649, "covered": 69, "percent": 10.631741140215716}, "regions": {"count": 314, "covered": 29, "notcovered": 285, "percent": 9.235668789808917}}}, {"filename": "/src/openssl/engines/e_ubsec_err.c", "summary": {"functions": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "instantiations": {"count": 3, "covered": 1, "percent": 33.33333333333333}, "lines": {"count": 35, "covered": 17, "percent": 48.57142857142857}, "regions": {"count": 13, "covered": 6, "notcovered": 7, "percent": 46.15384615384615}}}, {"filename": "/src/openssl/engines/e_ubsec_err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/vendor_defns/aep.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/vendor_defns/cswift.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/vendor_defns/hw_4758_cca.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/vendor_defns/hw_ubsec.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/vendor_defns/hwcryptohook.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/engines/vendor_defns/sureware.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/aes.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/asn1.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/asn1_mac.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/asn1t.h", "summary": {"functions": {"count": 9, "covered": 3, "percent": 33.33333333333333}, "instantiations": {"count": 484, "covered": 11, "percent": 2.272727272727273}, "lines": {"count": 28, "covered": 9, "percent": 32.142857142857146}, "regions": {"count": 18, "covered": 6, "notcovered": 12, "percent": 33.33333333333333}}}, {"filename": "/src/openssl/include/openssl/bio.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/blowfish.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/bn.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/cast.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/cms.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/conf.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/crypto.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/des.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/dh.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/dsa.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/dso.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/dtls1.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/e_os2.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/ec.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/ecdh.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/engine.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/err.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/evp.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/hmac.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/lhash.h", "summary": {"functions": {"count": 4, "covered": 2, "percent": 50}, "instantiations": {"count": 34, "covered": 10, "percent": 29.411764705882355}, "lines": {"count": 14, "covered": 7, "percent": 50}, "regions": {"count": 4, "covered": 2, "notcovered": 2, "percent": 50}}}, {"filename": "/src/openssl/include/openssl/md4.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/md5.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/mdc2.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/obj_mac.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/objects.h", "summary": {"functions": {"count": 4, "covered": 2, "percent": 50}, "instantiations": {"count": 26, "covered": 2, "percent": 7.6923076923076925}, "lines": {"count": 18, "covered": 9, "percent": 50}, "regions": {"count": 4, "covered": 2, "notcovered": 2, "percent": 50}}}, {"filename": "/src/openssl/include/openssl/ocsp.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/opensslconf.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/opensslv.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/pem.h", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 84, "covered": 0, "percent": 0}, "lines": {"count": 36, "covered": 0, "percent": 0}, "regions": {"count": 10, "covered": 0, "notcovered": 10, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/pkcs12.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/pkcs7.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/rc5.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/ripemd.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/rsa.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/safestack.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/sha.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/srp.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/ssl.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/ssl2.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/ssl23.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/ssl3.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/tls1.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/txt_db.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/ui.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/whrlpool.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/x509.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/x509_vfy.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/include/openssl/x509v3.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/openssl/ssl/bio_ssl.c", "summary": {"functions": {"count": 13, "covered": 0, "percent": 0}, "instantiations": {"count": 13, "covered": 0, "percent": 0}, "lines": {"count": 452, "covered": 0, "percent": 0}, "regions": {"count": 331, "covered": 0, "notcovered": 331, "percent": 0}}}, {"filename": "/src/openssl/ssl/d1_both.c", "summary": {"functions": {"count": 28, "covered": 0, "percent": 0}, "instantiations": {"count": 28, "covered": 0, "percent": 0}, "lines": {"count": 1270, "covered": 0, "percent": 0}, "regions": {"count": 723, "covered": 0, "notcovered": 723, "percent": 0}}}, {"filename": "/src/openssl/ssl/d1_clnt.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 522, "covered": 0, "percent": 0}, "regions": {"count": 447, "covered": 0, "notcovered": 447, "percent": 0}}}, {"filename": "/src/openssl/ssl/d1_lib.c", "summary": {"functions": {"count": 20, "covered": 0, "percent": 0}, "instantiations": {"count": 20, "covered": 0, "percent": 0}, "lines": {"count": 394, "covered": 0, "percent": 0}, "regions": {"count": 210, "covered": 0, "notcovered": 210, "percent": 0}}}, {"filename": "/src/openssl/ssl/d1_meth.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 10, "covered": 0, "percent": 0}, "regions": {"count": 13, "covered": 0, "notcovered": 13, "percent": 0}}}, {"filename": "/src/openssl/ssl/d1_pkt.c", "summary": {"functions": {"count": 17, "covered": 0, "percent": 0}, "instantiations": {"count": 17, "covered": 0, "percent": 0}, "lines": {"count": 1452, "covered": 0, "percent": 0}, "regions": {"count": 912, "covered": 0, "notcovered": 912, "percent": 0}}}, {"filename": "/src/openssl/ssl/d1_srtp.c", "summary": {"functions": {"count": 10, "covered": 0, "percent": 0}, "instantiations": {"count": 10, "covered": 0, "percent": 0}, "lines": {"count": 273, "covered": 0, "percent": 0}, "regions": {"count": 220, "covered": 0, "notcovered": 220, "percent": 0}}}, {"filename": "/src/openssl/ssl/d1_srvr.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 660, "covered": 0, "percent": 0}, "regions": {"count": 557, "covered": 0, "notcovered": 557, "percent": 0}}}, {"filename": "/src/openssl/ssl/s23_clnt.c", "summary": {"functions": {"count": 6, "covered": 4, "percent": 66.66666666666666}, "instantiations": {"count": 6, "covered": 4, "percent": 66.66666666666666}, "lines": {"count": 577, "covered": 320, "percent": 55.45927209705373}, "regions": {"count": 474, "covered": 218, "notcovered": 256, "percent": 45.9915611814346}}}, {"filename": "/src/openssl/ssl/s23_lib.c", "summary": {"functions": {"count": 8, "covered": 3, "percent": 37.5}, "instantiations": {"count": 8, "covered": 3, "percent": 37.5}, "lines": {"count": 92, "covered": 13, "percent": 14.130434782608695}, "regions": {"count": 87, "covered": 5, "notcovered": 82, "percent": 5.747126436781609}}}, {"filename": "/src/openssl/ssl/s23_meth.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 16, "covered": 0, "percent": 0}, "regions": {"count": 17, "covered": 0, "notcovered": 17, "percent": 0}}}, {"filename": "/src/openssl/ssl/s23_pkt.c", "summary": {"functions": {"count": 2, "covered": 2, "percent": 100}, "instantiations": {"count": 2, "covered": 2, "percent": 100}, "lines": {"count": 44, "covered": 36, "percent": 81.81818181818183}, "regions": {"count": 22, "covered": 19, "notcovered": 3, "percent": 86.36363636363636}}}, {"filename": "/src/openssl/ssl/s23_srvr.c", "summary": {"functions": {"count": 3, "covered": 0, "percent": 0}, "instantiations": {"count": 3, "covered": 0, "percent": 0}, "lines": {"count": 453, "covered": 0, "percent": 0}, "regions": {"count": 355, "covered": 0, "notcovered": 355, "percent": 0}}}, {"filename": "/src/openssl/ssl/s3_both.c", "summary": {"functions": {"count": 16, "covered": 8, "percent": 50}, "instantiations": {"count": 16, "covered": 8, "percent": 50}, "lines": {"count": 538, "covered": 214, "percent": 39.77695167286245}, "regions": {"count": 435, "covered": 142, "notcovered": 293, "percent": 32.64367816091954}}}, {"filename": "/src/openssl/ssl/s3_cbc.c", "summary": {"functions": {"count": 9, "covered": 0, "percent": 0}, "instantiations": {"count": 9, "covered": 0, "percent": 0}, "lines": {"count": 550, "covered": 0, "percent": 0}, "regions": {"count": 215, "covered": 0, "notcovered": 215, "percent": 0}}}, {"filename": "/src/openssl/ssl/s3_clnt.c", "summary": {"functions": {"count": 20, "covered": 2, "percent": 10}, "instantiations": {"count": 20, "covered": 2, "percent": 10}, "lines": {"count": 3303, "covered": 92, "percent": 2.785346654556464}, "regions": {"count": 2670, "covered": 58, "notcovered": 2612, "percent": 2.1722846441947565}}}, {"filename": "/src/openssl/ssl/s3_enc.c", "summary": {"functions": {"count": 16, "covered": 3, "percent": 18.75}, "instantiations": {"count": 16, "covered": 3, "percent": 18.75}, "lines": {"count": 737, "covered": 19, "percent": 2.578018995929444}, "regions": {"count": 577, "covered": 15, "notcovered": 562, "percent": 2.5996533795493932}}}, {"filename": "/src/openssl/ssl/s3_lib.c", "summary": {"functions": {"count": 27, "covered": 8, "percent": 29.629629629629626}, "instantiations": {"count": 27, "covered": 8, "percent": 29.629629629629626}, "lines": {"count": 1385, "covered": 224, "percent": 16.173285198555956}, "regions": {"count": 1021, "covered": 103, "notcovered": 918, "percent": 10.088148873653282}}}, {"filename": "/src/openssl/ssl/s3_meth.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 6, "covered": 0, "percent": 0}, "regions": {"count": 5, "covered": 0, "notcovered": 5, "percent": 0}}}, {"filename": "/src/openssl/ssl/s3_pkt.c", "summary": {"functions": {"count": 11, "covered": 7, "percent": 63.63636363636363}, "instantiations": {"count": 11, "covered": 7, "percent": 63.63636363636363}, "lines": {"count": 1515, "covered": 535, "percent": 35.31353135313531}, "regions": {"count": 1083, "covered": 290, "notcovered": 793, "percent": 26.777469990766388}}}, {"filename": "/src/openssl/ssl/s3_srvr.c", "summary": {"functions": {"count": 16, "covered": 0, "percent": 0}, "instantiations": {"count": 16, "covered": 0, "percent": 0}, "lines": {"count": 3192, "covered": 0, "percent": 0}, "regions": {"count": 2464, "covered": 0, "notcovered": 2464, "percent": 0}}}, {"filename": "/src/openssl/ssl/ssl_algs.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 86, "covered": 86, "percent": 100}, "regions": {"count": 22, "covered": 22, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/ssl/ssl_asn1.c", "summary": {"functions": {"count": 2, "covered": 0, "percent": 0}, "instantiations": {"count": 2, "covered": 0, "percent": 0}, "lines": {"count": 482, "covered": 0, "percent": 0}, "regions": {"count": 715, "covered": 0, "notcovered": 715, "percent": 0}}}, {"filename": "/src/openssl/ssl/ssl_cert.c", "summary": {"functions": {"count": 35, "covered": 6, "percent": 17.142857142857142}, "instantiations": {"count": 35, "covered": 6, "percent": 17.142857142857142}, "lines": {"count": 974, "covered": 197, "percent": 20.2258726899384}, "regions": {"count": 902, "covered": 87, "notcovered": 815, "percent": 9.645232815964523}}}, {"filename": "/src/openssl/ssl/ssl_ciph.c", "summary": {"functions": {"count": 31, "covered": 14, "percent": 45.16129032258064}, "instantiations": {"count": 31, "covered": 14, "percent": 45.16129032258064}, "lines": {"count": 1468, "covered": 783, "percent": 53.33787465940054}, "regions": {"count": 1300, "covered": 575, "notcovered": 725, "percent": 44.230769230769226}}}, {"filename": "/src/openssl/ssl/ssl_err.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 9, "covered": 9, "percent": 100}, "regions": {"count": 3, "covered": 3, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/ssl/ssl_err2.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 6, "covered": 6, "percent": 100}, "regions": {"count": 1, "covered": 1, "notcovered": 0, "percent": 100}}}, {"filename": "/src/openssl/ssl/ssl_lib.c", "summary": {"functions": {"count": 171, "covered": 30, "percent": 17.543859649122805}, "instantiations": {"count": 171, "covered": 30, "percent": 17.543859649122805}, "lines": {"count": 2598, "covered": 762, "percent": 29.330254041570434}, "regions": {"count": 2003, "covered": 395, "notcovered": 1608, "percent": 19.720419370943585}}}, {"filename": "/src/openssl/ssl/ssl_locl.h", "summary": {"functions": {"count": 4, "covered": 2, "percent": 50}, "instantiations": {"count": 24, "covered": 2, "percent": 8.333333333333332}, "lines": {"count": 136, "covered": 68, "percent": 50}, "regions": {"count": 6, "covered": 3, "notcovered": 3, "percent": 50}}}, {"filename": "/src/openssl/ssl/ssl_rsa.c", "summary": {"functions": {"count": 27, "covered": 0, "percent": 0}, "instantiations": {"count": 27, "covered": 0, "percent": 0}, "lines": {"count": 879, "covered": 0, "percent": 0}, "regions": {"count": 640, "covered": 0, "notcovered": 640, "percent": 0}}}, {"filename": "/src/openssl/ssl/ssl_sess.c", "summary": {"functions": {"count": 46, "covered": 9, "percent": 19.565217391304348}, "instantiations": {"count": 46, "covered": 9, "percent": 19.565217391304348}, "lines": {"count": 938, "covered": 152, "percent": 16.204690831556505}, "regions": {"count": 656, "covered": 84, "notcovered": 572, "percent": 12.804878048780488}}}, {"filename": "/src/openssl/ssl/ssl_stat.c", "summary": {"functions": {"count": 8, "covered": 0, "percent": 0}, "instantiations": {"count": 8, "covered": 0, "percent": 0}, "lines": {"count": 742, "covered": 0, "percent": 0}, "regions": {"count": 637, "covered": 0, "notcovered": 637, "percent": 0}}}, {"filename": "/src/openssl/ssl/t1_clnt.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 9, "covered": 0, "percent": 0}, "regions": {"count": 13, "covered": 0, "notcovered": 13, "percent": 0}}}, {"filename": "/src/openssl/ssl/t1_enc.c", "summary": {"functions": {"count": 12, "covered": 2, "percent": 16.666666666666664}, "instantiations": {"count": 12, "covered": 2, "percent": 16.666666666666664}, "lines": {"count": 912, "covered": 69, "percent": 7.565789473684211}, "regions": {"count": 780, "covered": 24, "notcovered": 756, "percent": 3.076923076923077}}}, {"filename": "/src/openssl/ssl/t1_ext.c", "summary": {"functions": {"count": 11, "covered": 4, "percent": 36.36363636363637}, "instantiations": {"count": 11, "covered": 4, "percent": 36.36363636363637}, "lines": {"count": 194, "covered": 23, "percent": 11.855670103092782}, "regions": {"count": 139, "covered": 11, "notcovered": 128, "percent": 7.913669064748201}}}, {"filename": "/src/openssl/ssl/t1_lib.c", "summary": {"functions": {"count": 61, "covered": 9, "percent": 14.754098360655737}, "instantiations": {"count": 61, "covered": 9, "percent": 14.754098360655737}, "lines": {"count": 3401, "covered": 396, "percent": 11.643634225227874}, "regions": {"count": 2727, "covered": 247, "notcovered": 2480, "percent": 9.057572423909058}}}, {"filename": "/src/openssl/ssl/t1_meth.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 9, "covered": 0, "percent": 0}, "regions": {"count": 13, "covered": 0, "notcovered": 13, "percent": 0}}}, {"filename": "/src/openssl/ssl/t1_reneg.c", "summary": {"functions": {"count": 4, "covered": 0, "percent": 0}, "instantiations": {"count": 4, "covered": 0, "percent": 0}, "lines": {"count": 140, "covered": 0, "percent": 0}, "regions": {"count": 84, "covered": 0, "notcovered": 84, "percent": 0}}}, {"filename": "/src/openssl/ssl/t1_srvr.c", "summary": {"functions": {"count": 1, "covered": 0, "percent": 0}, "instantiations": {"count": 1, "covered": 0, "percent": 0}, "lines": {"count": 9, "covered": 0, "percent": 0}, "regions": {"count": 13, "covered": 0, "notcovered": 13, "percent": 0}}}, {"filename": "/src/openssl/ssl/tls_srp.c", "summary": {"functions": {"count": 22, "covered": 4, "percent": 18.181818181818183}, "instantiations": {"count": 22, "covered": 4, "percent": 18.181818181818183}, "lines": {"count": 417, "covered": 136, "percent": 32.61390887290168}, "regions": {"count": 260, "covered": 48, "notcovered": 212, "percent": 18.461538461538463}}}, {"filename": "/src/zlib/adler32.c", "summary": {"functions": {"count": 5, "covered": 2, "percent": 40}, "instantiations": {"count": 5, "covered": 2, "percent": 40}, "lines": {"count": 97, "covered": 68, "percent": 70.10309278350515}, "regions": {"count": 140, "covered": 111, "notcovered": 29, "percent": 79.28571428571428}}}, {"filename": "/src/zlib/crc32.c", "summary": {"functions": {"count": 10, "covered": 3, "percent": 30}, "instantiations": {"count": 10, "covered": 3, "percent": 30}, "lines": {"count": 159, "covered": 41, "percent": 25.78616352201258}, "regions": {"count": 106, "covered": 33, "notcovered": 73, "percent": 31.132075471698112}}}, {"filename": "/src/zlib/inffast.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 219, "covered": 210, "percent": 95.8904109589041}, "regions": {"count": 84, "covered": 81, "notcovered": 3, "percent": 96.42857142857143}}}, {"filename": "/src/zlib/inffixed.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/zlib/inflate.c", "summary": {"functions": {"count": 22, "covered": 10, "percent": 45.45454545454545}, "instantiations": {"count": 22, "covered": 10, "percent": 45.45454545454545}, "lines": {"count": 1023, "covered": 744, "percent": 72.72727272727273}, "regions": {"count": 1170, "covered": 894, "notcovered": 276, "percent": 76.41025641025641}}}, {"filename": "/src/zlib/inftrees.c", "summary": {"functions": {"count": 1, "covered": 1, "percent": 100}, "instantiations": {"count": 1, "covered": 1, "percent": 100}, "lines": {"count": 266, "covered": 256, "percent": 96.2406015037594}, "regions": {"count": 109, "covered": 101, "notcovered": 8, "percent": 92.66055045871559}}}, {"filename": "/src/zlib/inftrees.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/zlib/zconf.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/zlib/zlib.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}, {"filename": "/src/zlib/zutil.c", "summary": {"functions": {"count": 5, "covered": 1, "percent": 20}, "instantiations": {"count": 5, "covered": 1, "percent": 20}, "lines": {"count": 45, "covered": 3, "percent": 6.666666666666667}, "regions": {"count": 30, "covered": 2, "notcovered": 28, "percent": 6.666666666666667}}}, {"filename": "/src/zlib/zutil.h", "summary": {"functions": {"count": 0, "covered": 0, "percent": 0}, "instantiations": {"count": 0, "covered": 0, "percent": 0}, "lines": {"count": 0, "covered": 0, "percent": 0}, "regions": {"count": 0, "covered": 0, "notcovered": 0, "percent": 0}}}], "totals": {"functions": {"count": 6666, "covered": 1907, "percent": 28.60786078607861}, "instantiations": {"count": 7495, "covered": 2012, "percent": 26.844563042028017}, "lines": {"count": 197515, "covered": 51027, "percent": 25.834493582765866}, "regions": {"count": 143296, "covered": 30159, "notcovered": 113137, "percent": 21.046644707458686}}}], "type": "llvm.coverage.json.export", "version": "2.0.0"}
\ No newline at end of file
diff --git a/infra/cifuzz/test_data/external-project/Makefile b/infra/cifuzz/test_data/external-project/Makefile
deleted file mode 100644
index 2c17737..0000000
--- a/infra/cifuzz/test_data/external-project/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 2017 Google Inc. All Rights Reserved.
-# Licensed under the Apache License, Version 2.0 (the "License");
-
-# Simple example of a build file that nicely integrates a fuzz target
-# with the rest of the project.
-#
-# We use 'make' as the build system, but these ideas are applicable
-# to any other build system
-
-# By default, use our own standalone_fuzz_target_runner.
-# This runner does no fuzzing, but simply executes the inputs
-# provided via parameters.
-# Run e.g. "make all LIB_FUZZING_ENGINE=/path/to/libFuzzer.a"
-# to link the fuzzer(s) against a real fuzzing engine.
-#
-# OSS-Fuzz will define its own value for LIB_FUZZING_ENGINE.
-LIB_FUZZING_ENGINE ?= standalone_fuzz_target_runner.o
-
-# Values for CC, CFLAGS, CXX, CXXFLAGS are provided by OSS-Fuzz.
-# Outside of OSS-Fuzz use the ones you prefer or rely on the default values.
-# Do not use the -fsanitize=* flags by default.
-# OSS-Fuzz will use different -fsanitize=* flags for different builds (asan, ubsan, msan, ...)
-
-# You may add extra compiler flags like this:
-CXXFLAGS += -std=c++11
-
-all: do_stuff_fuzzer
-
-clean:
-	rm -fv *.a *.o *_fuzzer crash-* *.zip
-
-# Fuzz target, links against $LIB_FUZZING_ENGINE, so that
-# you may choose which fuzzing engine to use.
-do_stuff_fuzzer: do_stuff_fuzzer.cpp my_api.a standalone_fuzz_target_runner.o
-	${CXX} ${CXXFLAGS} $< my_api.a ${LIB_FUZZING_ENGINE} -o $@
-
-
-# The library itself.
-my_api.a: my_api.cpp my_api.h
-	${CXX} ${CXXFLAGS} $< -c
-	ar ruv my_api.a my_api.o
-
-# The standalone fuzz target runner.
-standalone_fuzz_target_runner.o: standalone_fuzz_target_runner.cpp
diff --git a/infra/cifuzz/test_data/external-project/do_stuff_fuzzer.cpp b/infra/cifuzz/test_data/external-project/do_stuff_fuzzer.cpp
deleted file mode 100644
index 71fa8ca..0000000
--- a/infra/cifuzz/test_data/external-project/do_stuff_fuzzer.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#include "my_api.h"
-
-#include <string>
-
-// Simple fuzz target for DoStuff().
-// See http://libfuzzer.info for details.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  std::string str(reinterpret_cast<const char *>(data), size);
-  DoStuff(str);  // Disregard the output.
-  return 0;
-}
diff --git a/infra/cifuzz/test_data/external-project/do_stuff_fuzzer.dict b/infra/cifuzz/test_data/external-project/do_stuff_fuzzer.dict
deleted file mode 100644
index 224679b..0000000
--- a/infra/cifuzz/test_data/external-project/do_stuff_fuzzer.dict
+++ /dev/null
@@ -1,6 +0,0 @@
-# A dictionary for more efficient fuzzing of DoStuff(). 
-# If the inputs contain multi-byte tokens, list them here.
-# See http://libfuzzer.info#dictionaries
-"foo"
-"bar"
-"ouch"
diff --git a/infra/cifuzz/test_data/external-project/my_api.cpp b/infra/cifuzz/test_data/external-project/my_api.cpp
deleted file mode 100644
index 9a2c1bc..0000000
--- a/infra/cifuzz/test_data/external-project/my_api.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Implementation of "my_api".
-#include "my_api.h"
-
-#include <vector>
-
-// Do some computations with 'str', return the result.
-// This function contains a bug. Can you spot it?
-size_t DoStuff(const std::string &str) {
-  std::vector<int> Vec({0, 1, 2, 3, 4});
-  size_t Idx = 0;
-  if (str.size() > 5)
-    Idx++;
-  if (str.find("foo") != std::string::npos)
-    Idx++;
-  if (str.find("bar") != std::string::npos)
-    Idx++;
-  if (str.find("ouch") != std::string::npos)
-    Idx++;
-  if (str.find("omg") != std::string::npos)
-    Idx++;
-  return Vec[Idx];
-}
diff --git a/infra/cifuzz/test_data/external-project/my_api.h b/infra/cifuzz/test_data/external-project/my_api.h
deleted file mode 100644
index 325aa15..0000000
--- a/infra/cifuzz/test_data/external-project/my_api.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// A library that does ... stuff.
-// Serves as an example of good fuzz testing and OSS-Fuzz integration.
-#include <string>
-
-size_t DoStuff(const std::string &str);
diff --git a/infra/cifuzz/test_data/external-project/oss-fuzz/Dockerfile b/infra/cifuzz/test_data/external-project/oss-fuzz/Dockerfile
deleted file mode 100644
index e9dc330..0000000
--- a/infra/cifuzz/test_data/external-project/oss-fuzz/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make
-
-COPY . $SRC/external-project
-WORKDIR external-project
-COPY oss-fuzz/build.sh $SRC/
diff --git a/infra/cifuzz/test_data/external-project/oss-fuzz/build.sh b/infra/cifuzz/test_data/external-project/oss-fuzz/build.sh
deleted file mode 100644
index 2c52ef9..0000000
--- a/infra/cifuzz/test_data/external-project/oss-fuzz/build.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-make clean  # Not strictly necessary, since we are building in a fresh dir.
-make -j$(nproc) all    # Build the fuzz targets.
-
-# Copy the fuzzer executables, zip-ed corpora, option and dictionary files to $OUT
-find . -name '*_fuzzer' -exec cp -v '{}' $OUT ';'
-find . -name '*_fuzzer.dict' -exec cp -v '{}' $OUT ';'     # If you have dictionaries.
-find . -name '*_fuzzer.options' -exec cp -v '{}' $OUT ';'  # If you have custom options.
diff --git a/infra/cifuzz/test_data/external-project/standalone_fuzz_target_runner.cpp b/infra/cifuzz/test_data/external-project/standalone_fuzz_target_runner.cpp
deleted file mode 100644
index 38a0454..0000000
--- a/infra/cifuzz/test_data/external-project/standalone_fuzz_target_runner.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Example of a standalone runner for "fuzz targets".
-// It reads all files passed as parameters and feeds their contents
-// one by one into the fuzz target (LLVMFuzzerTestOneInput).
-// This runner does not do any fuzzing, but allows us to run the fuzz target
-// on the test corpus (e.g. "do_stuff_test_data") or on a single file,
-// e.g. the one that comes from a bug report.
-
-#include <cassert>
-#include <iostream>
-#include <fstream>
-#include <vector>
-
-// Forward declare the "fuzz target" interface.
-// We deliberately keep this inteface simple and header-free.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
-
-int main(int argc, char **argv) {
-  for (int i = 1; i < argc; i++) {
-    std::ifstream in(argv[i]);
-    in.seekg(0, in.end);
-    size_t length = in.tellg();
-    in.seekg (0, in.beg);
-    std::cout << "Reading " << length << " bytes from " << argv[i] << std::endl;
-    // Allocate exactly length bytes so that we reliably catch buffer overflows.
-    std::vector<char> bytes(length);
-    in.read(bytes.data(), bytes.size());
-    assert(in);
-    LLVMFuzzerTestOneInput(reinterpret_cast<const uint8_t *>(bytes.data()),
-                           bytes.size());
-    std::cout << "Execution successful" << std::endl;
-  }
-  return 0;
-}
diff --git a/infra/cifuzz/test_data/memory/out/curl_fuzzer_memory b/infra/cifuzz/test_data/memory/out/curl_fuzzer_memory
deleted file mode 100755
index c602ce9..0000000
--- a/infra/cifuzz/test_data/memory/out/curl_fuzzer_memory
+++ /dev/null
Binary files differ
diff --git a/infra/cifuzz/test_data/msan_crash_fuzzer_bug_summary.txt b/infra/cifuzz/test_data/msan_crash_fuzzer_bug_summary.txt
deleted file mode 100644
index b55e9c6..0000000
--- a/infra/cifuzz/test_data/msan_crash_fuzzer_bug_summary.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-MemorySanitizer: use-of-uninitialized-value
-#0 0x52675f in LLVMFuzzerTestOneInput /src/cifuzz-example/do_stuff_fuzzer.cpp:13:7
-#1 0x45a431 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:599:15
-#2 0x45ba46 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:792:3
-#3 0x45bed9 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:845:3
-#4 0x44a4bc in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:906:6
-#5 0x474432 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
-#6 0x7eff5562683f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2083f)
-#7 0x41eab8 in _start (out/do_stuff_fuzzer+0x41eab8)
-
-DEDUP_TOKEN: LLVMFuzzerTestOneInput--fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long)--fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&)
-Uninitialized value was created by a heap allocation
-#0 0x4d57ad in malloc /src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp:901:3
-#1 0x437c07 in operator new(unsigned long) (out/do_stuff_fuzzer+0x437c07)
-#2 0x45ba46 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:792:3
-#3 0x45bed9 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:845:3
-#4 0x44a4bc in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:906:6
-#5 0x474432 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
-#6 0x7eff5562683f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2083f)
-DEDUP_TOKEN: malloc--operator new(unsigned long)--fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&)
-
-SUMMARY:
\ No newline at end of file
diff --git a/infra/cifuzz/test_data/msan_crash_fuzzer_output.txt b/infra/cifuzz/test_data/msan_crash_fuzzer_output.txt
deleted file mode 100644
index c803bfb..0000000
--- a/infra/cifuzz/test_data/msan_crash_fuzzer_output.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-Dictionary: 3 entries
-INFO: Running with entropic power schedule (0xFF, 100).
-INFO: Seed: 1337
-INFO: Loaded 1 modules   (184 inline 8-bit counters): 184 [0x829300, 0x8293b8), 
-INFO: Loaded 1 PC tables (184 PCs): 184 [0x5dc910,0x5dd490), 
-INFO:        5 files found in /tmp/do_stuff_fuzzer_corpus
-INFO: -max_len is not provided; libFuzzer will not generate inputs larger than 4096 bytes
-==13==WARNING: MemorySanitizer: use-of-uninitialized-value
-#0 0x52675f in LLVMFuzzerTestOneInput /src/cifuzz-example/do_stuff_fuzzer.cpp:13:7
-#1 0x45a431 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:599:15
-#2 0x45ba46 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:792:3
-#3 0x45bed9 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:845:3
-#4 0x44a4bc in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:906:6
-#5 0x474432 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
-#6 0x7eff5562683f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2083f)
-#7 0x41eab8 in _start (out/do_stuff_fuzzer+0x41eab8)
-
-DEDUP_TOKEN: LLVMFuzzerTestOneInput--fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long)--fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&)
-Uninitialized value was created by a heap allocation
-#0 0x4d57ad in malloc /src/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp:901:3
-#1 0x437c07 in operator new(unsigned long) (out/do_stuff_fuzzer+0x437c07)
-#2 0x45ba46 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:792:3
-#3 0x45bed9 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:845:3
-#4 0x44a4bc in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:906:6
-#5 0x474432 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
-#6 0x7eff5562683f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2083f)
-DEDUP_TOKEN: malloc--operator new(unsigned long)--fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&)
-
-SUMMARY: MemorySanitizer: use-of-uninitialized-value /src/cifuzz-example/do_stuff_fuzzer.cpp:13:7 in LLVMFuzzerTestOneInput
-Unique heap origins: 65
-Stack depot allocated bytes: 4424
-Unique origin histories: 29
-History depot allocated bytes: 696
-Exiting
-MS: 0 ; base unit: 0000000000000000000000000000000000000000
-
-
-artifact_prefix='./'; Test unit written to ./crash-da39a3ee5e6b4b0d3255bfef95601890afd80709
-Base64: 
diff --git a/infra/cifuzz/test_data/out/example_crash_fuzzer b/infra/cifuzz/test_data/out/example_crash_fuzzer
deleted file mode 100755
index 704800d..0000000
--- a/infra/cifuzz/test_data/out/example_crash_fuzzer
+++ /dev/null
Binary files differ
diff --git a/infra/cifuzz/test_data/out/example_nocrash_fuzzer b/infra/cifuzz/test_data/out/example_nocrash_fuzzer
deleted file mode 100755
index e4ff860..0000000
--- a/infra/cifuzz/test_data/out/example_nocrash_fuzzer
+++ /dev/null
Binary files differ
diff --git a/infra/cifuzz/test_data/undefined/out/curl_fuzzer_undefined b/infra/cifuzz/test_data/undefined/out/curl_fuzzer_undefined
deleted file mode 100755
index 504cab1..0000000
--- a/infra/cifuzz/test_data/undefined/out/curl_fuzzer_undefined
+++ /dev/null
Binary files differ
diff --git a/infra/dev-requirements.txt b/infra/dev-requirements.txt
new file mode 100644
index 0000000..55e3b50
--- /dev/null
+++ b/infra/dev-requirements.txt
@@ -0,0 +1,5 @@
+# Requirements for submitting code changes to infra/ (needed by presubmit.py).
+pylint==2.4.4
+yapf==0.28.0
+PyYAML==5.1
+
diff --git a/infra/gcb/.gitignore b/infra/gcb/.gitignore
new file mode 100644
index 0000000..4d3dae7
--- /dev/null
+++ b/infra/gcb/.gitignore
@@ -0,0 +1 @@
+default/
diff --git a/infra/gcb/badge_images/building.png b/infra/gcb/badge_images/building.png
new file mode 100644
index 0000000..9e7e734
--- /dev/null
+++ b/infra/gcb/badge_images/building.png
Binary files differ
diff --git a/infra/gcb/badge_images/building.svg b/infra/gcb/badge_images/building.svg
new file mode 100644
index 0000000..19f28d7
--- /dev/null
+++ b/infra/gcb/badge_images/building.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="104" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="104" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h55v20H0z"/><path fill="#4c1" d="M55 0h49v20H55z"/><path fill="url(#b)" d="M0 0h104v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"> <text x="285" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="450">oss-fuzz</text><text x="285" y="140" transform="scale(.1)" textLength="450">oss-fuzz</text><text x="785" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="390">fuzzing</text><text x="785" y="140" transform="scale(.1)" textLength="390">fuzzing</text></g> </svg>
\ No newline at end of file
diff --git a/infra/gcb/badge_images/coverage_failing.png b/infra/gcb/badge_images/coverage_failing.png
new file mode 100644
index 0000000..85abe23
--- /dev/null
+++ b/infra/gcb/badge_images/coverage_failing.png
Binary files differ
diff --git a/infra/gcb/badge_images/coverage_failing.svg b/infra/gcb/badge_images/coverage_failing.svg
new file mode 100644
index 0000000..dc7b72e
--- /dev/null
+++ b/infra/gcb/badge_images/coverage_failing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="152" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="152" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h55v20H0z"/><path fill="#dfb317" d="M55 0h97v20H55z"/><path fill="url(#b)" d="M0 0h152v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"> <text x="285" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="450">oss-fuzz</text><text x="285" y="140" transform="scale(.1)" textLength="450">oss-fuzz</text><text x="1025" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="870">coverage failing</text><text x="1025" y="140" transform="scale(.1)" textLength="870">coverage failing</text></g> </svg>
\ No newline at end of file
diff --git a/infra/gcb/badge_images/failing.png b/infra/gcb/badge_images/failing.png
new file mode 100644
index 0000000..0d2bb47
--- /dev/null
+++ b/infra/gcb/badge_images/failing.png
Binary files differ
diff --git a/infra/gcb/badge_images/failing.svg b/infra/gcb/badge_images/failing.svg
new file mode 100644
index 0000000..ed0f862
--- /dev/null
+++ b/infra/gcb/badge_images/failing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="128" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h55v20H0z"/><path fill="#e05d44" d="M55 0h73v20H55z"/><path fill="url(#b)" d="M0 0h128v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"> <text x="285" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="450">oss-fuzz</text><text x="285" y="140" transform="scale(.1)" textLength="450">oss-fuzz</text><text x="905" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="630">build failing</text><text x="905" y="140" transform="scale(.1)" textLength="630">build failing</text></g> </svg>
\ No newline at end of file
diff --git a/infra/gcb/build_and_run_coverage.py b/infra/gcb/build_and_run_coverage.py
new file mode 100644
index 0000000..b94fe35
--- /dev/null
+++ b/infra/gcb/build_and_run_coverage.py
@@ -0,0 +1,282 @@
+#!/usr/bin/python2
+"""Starts and runs coverage build on Google Cloud Builder.
+
+Usage: build_and_run_coverage.py <project_dir>
+"""
+
+import datetime
+import json
+import os
+import requests
+import sys
+import urlparse
+
+import build_lib
+import build_project
+
+SANITIZER = 'coverage'
+CONFIGURATION = ['FUZZING_ENGINE=libfuzzer', 'SANITIZER=%s' % SANITIZER]
+PLATFORM = 'linux'
+
+COVERAGE_BUILD_TAG = 'coverage'
+
+# Where code coverage reports need to be uploaded to.
+COVERAGE_BUCKET_NAME = 'oss-fuzz-coverage'
+
+# Link to the code coverage report in HTML format.
+HTML_REPORT_URL_FORMAT = (build_lib.GCS_URL_BASENAME + COVERAGE_BUCKET_NAME +
+                          '/{project}/reports/{date}/{platform}/index.html')
+
+# This is needed for ClusterFuzz to pick up the most recent reports data.
+LATEST_REPORT_INFO_URL = ('/' + COVERAGE_BUCKET_NAME +
+                          '/latest_report_info/{project}.json')
+
+# Link where to upload code coverage report files to.
+UPLOAD_URL_FORMAT = 'gs://' + COVERAGE_BUCKET_NAME + '/{project}/{type}/{date}'
+
+# Languages from project.yaml that have code coverage support.
+LANGUAGES_WITH_COVERAGE_SUPPORT = ['c', 'cpp']
+
+
+def skip_build(message):
+  """Exit with 0 code not to mark code coverage job as failed."""
+  sys.stderr.write('%s\n' % message)
+
+  # Since the script should print build_id, print '0' as a special value.
+  print '0'
+  exit(0)
+
+
+def usage():
+  sys.stderr.write("Usage: " + sys.argv[0] + " <project_dir>\n")
+  exit(1)
+
+
+def get_build_steps(project_dir):
+  project_name = os.path.basename(project_dir)
+  project_yaml = build_project.load_project_yaml(project_dir)
+  if project_yaml['disabled']:
+    skip_build('Project "%s" is disabled.' % project_name)
+
+  build_script_path = os.path.join(project_dir, 'build.sh')
+  if os.path.exists(build_script_path):
+    with open(build_script_path) as fh:
+      if project_yaml['language'] not in LANGUAGES_WITH_COVERAGE_SUPPORT:
+        skip_build(('Project "{project_name}" is written in "{language}", '
+                    'coverage is not supported yet.').format(
+                        project_name=project_name,
+                        language=project_yaml['language']))
+
+  dockerfile_path = os.path.join(project_dir, 'Dockerfile')
+  name = project_yaml['name']
+  image = project_yaml['image']
+  report_date = datetime.datetime.now().strftime('%Y%m%d')
+
+  build_steps = [
+      {
+          'args': [
+              'clone',
+              'https://github.com/google/oss-fuzz.git',
+          ],
+          'name': 'gcr.io/cloud-builders/git',
+      },
+      {
+          'name': 'gcr.io/cloud-builders/docker',
+          'args': [
+              'build',
+              '-t',
+              image,
+              '.',
+          ],
+          'dir': 'oss-fuzz/projects/' + name,
+      },
+      {
+          'name': image,
+          'args': [
+              'bash', '-c',
+              'srcmap > /workspace/srcmap.json && cat /workspace/srcmap.json'
+          ],
+          'env': ['OSSFUZZ_REVISION=$REVISION_ID'],
+      },
+  ]
+
+  env = CONFIGURATION[:]
+  out = '/workspace/out/' + SANITIZER
+  env.append('OUT=' + out)
+
+  workdir = build_project.workdir_from_dockerfile(dockerfile_path)
+  if not workdir:
+    workdir = '/src'
+
+  failure_msg = ('*' * 80 + '\nCoverage build failed.\nTo reproduce, run:\n'
+                 'python infra/helper.py build_image {name}\n'
+                 'python infra/helper.py build_fuzzers --sanitizer coverage '
+                 '{name}\n' + '*' * 80).format(name=name)
+
+  # Compilation step.
+  build_steps.append({
+      'name':
+          image,
+      'env':
+          env,
+      'args': [
+          'bash',
+          '-c',
+          # Remove /out to make sure there are non instrumented binaries.
+          # `cd /src && cd {workdir}` (where {workdir} is parsed from the
+          # Dockerfile). Container Builder overrides our workdir so we need
+          # to add this step to set it back.
+          ('rm -r /out && cd /src && cd {workdir} && mkdir -p {out} && '
+           'compile || (echo "{failure_msg}" && false)'
+          ).format(workdir=workdir, out=out, failure_msg=failure_msg),
+      ],
+  })
+
+  download_corpora_step = build_lib.download_corpora_step(project_name)
+  if not download_corpora_step:
+    skip_build("Skipping code coverage build for %s.\n" % project_name)
+
+  build_steps.append(download_corpora_step)
+
+  failure_msg = ('*' * 80 + '\nCode coverage report generation failed.\n'
+                 'To reproduce, run:\n'
+                 'python infra/helper.py build_image {name}\n'
+                 'python infra/helper.py build_fuzzers --sanitizer coverage '
+                 '{name}\n'
+                 'python infra/helper.py coverage {name}\n' +
+                 '*' * 80).format(name=name)
+
+  # Unpack the corpus and run coverage script.
+  build_steps.append({
+      'name':
+          'gcr.io/oss-fuzz-base/base-runner',
+      'env':
+          env + [
+              'HTTP_PORT=',
+              'COVERAGE_EXTRA_ARGS=%s' %
+              project_yaml['coverage_extra_args'].strip()
+          ],
+      'args': [
+          'bash', '-c',
+          ('for f in /corpus/*.zip; do unzip -q $f -d ${f%%.*} || ('
+           'echo "Failed to unpack the corpus for $(basename ${f%%.*}). '
+           'This usually means that corpus backup for a particular fuzz '
+           'target does not exist. If a fuzz target was added in the last '
+           '24 hours, please wait one more day. Otherwise, something is '
+           'wrong with the fuzz target or the infrastructure, and corpus '
+           'pruning task does not finish successfully." && exit 1'
+           '); done && coverage || (echo "' + failure_msg + '" && false)')
+      ],
+      'volumes': [{
+          'name': 'corpus',
+          'path': '/corpus'
+      }],
+  })
+
+  # Upload the report.
+  upload_report_url = UPLOAD_URL_FORMAT.format(project=project_name,
+                                               type='reports',
+                                               date=report_date)
+  build_steps.append({
+      'name':
+          'gcr.io/cloud-builders/gsutil',
+      'args': [
+          '-m',
+          'cp',
+          '-r',
+          os.path.join(out, 'report'),
+          upload_report_url,
+      ],
+  })
+
+  # Upload the fuzzer stats.
+  upload_fuzzer_stats_url = UPLOAD_URL_FORMAT.format(project=project_name,
+                                                     type='fuzzer_stats',
+                                                     date=report_date)
+  build_steps.append({
+      'name':
+          'gcr.io/cloud-builders/gsutil',
+      'args': [
+          '-m',
+          'cp',
+          '-r',
+          os.path.join(out, 'fuzzer_stats'),
+          upload_fuzzer_stats_url,
+      ],
+  })
+
+  # Upload the fuzzer logs.
+  build_steps.append({
+      'name':
+          'gcr.io/cloud-builders/gsutil',
+      'args': [
+          '-m',
+          'cp',
+          '-r',
+          os.path.join(out, 'logs'),
+          UPLOAD_URL_FORMAT.format(project=project_name,
+                                   type='logs',
+                                   date=report_date),
+      ],
+  })
+
+  # Upload srcmap.
+  srcmap_upload_url = UPLOAD_URL_FORMAT.format(project=project_name,
+                                               type='srcmap',
+                                               date=report_date)
+  srcmap_upload_url = srcmap_upload_url.rstrip('/') + '.json'
+  build_steps.append({
+      'name': 'gcr.io/cloud-builders/gsutil',
+      'args': [
+          'cp',
+          '/workspace/srcmap.json',
+          srcmap_upload_url,
+      ],
+  })
+
+  # Update the latest report information file for ClusterFuzz.
+  latest_report_info_url = build_lib.get_signed_url(
+      LATEST_REPORT_INFO_URL.format(project=project_name),
+      method='PUT',
+      content_type='application/json')
+  latest_report_info_body = json.dumps({
+      'fuzzer_stats_dir':
+          upload_fuzzer_stats_url,
+      'html_report_url':
+          HTML_REPORT_URL_FORMAT.format(project=project_name,
+                                        date=report_date,
+                                        platform=PLATFORM),
+      'report_date':
+          report_date,
+      'report_summary_path':
+          os.path.join(upload_report_url, PLATFORM, 'summary.json'),
+  })
+
+  build_steps.append({
+      'name':
+          'gcr.io/cloud-builders/curl',
+      'args': [
+          '-H',
+          'Content-Type: application/json',
+          '-X',
+          'PUT',
+          '-d',
+          latest_report_info_body,
+          latest_report_info_url,
+      ],
+  })
+  return build_steps
+
+
+def main():
+  if len(sys.argv) != 2:
+    usage()
+
+  project_dir = sys.argv[1].rstrip(os.path.sep)
+  project_name = os.path.basename(project_dir)
+  steps = get_build_steps(project_dir)
+  build_project.run_build(steps, project_name, COVERAGE_BUILD_TAG)
+
+
+if __name__ == "__main__":
+  main()
diff --git a/infra/gcb/build_base_images.py b/infra/gcb/build_base_images.py
new file mode 100755
index 0000000..3c2bace
--- /dev/null
+++ b/infra/gcb/build_base_images.py
@@ -0,0 +1,79 @@
+#!/usr/bin/python2
+"""Build base images on Google Cloud Builder.
+
+Usage: build_base_images.py
+"""
+
+import os
+import sys
+import yaml
+
+from oauth2client.client import GoogleCredentials
+from googleapiclient.discovery import build
+
+BASE_IMAGES = [
+    'base-image',
+    'base-clang',
+    'base-builder',
+    'base-runner',
+    'base-runner-debug',
+    'base-msan-builder',
+]
+
+TAG_PREFIX = 'gcr.io/oss-fuzz-base/'
+
+
+def get_steps(images):
+  steps = [{
+      'args': [
+          'clone',
+          'https://github.com/google/oss-fuzz.git',
+      ],
+      'name': 'gcr.io/cloud-builders/git',
+  }]
+
+  for base_image in images:
+    steps.append({
+        'args': [
+            'build',
+            '-t',
+            TAG_PREFIX + base_image,
+            '.',
+        ],
+        'dir': 'oss-fuzz/infra/base-images/' + base_image,
+        'name': 'gcr.io/cloud-builders/docker',
+    })
+
+  return steps
+
+
+def get_logs_url(build_id):
+  URL_FORMAT = ('https://console.developers.google.com/logs/viewer?'
+                'resource=build%2Fbuild_id%2F{0}&project=oss-fuzz-base')
+  return URL_FORMAT.format(build_id)
+
+
+def main():
+  options = {}
+  if 'GCB_OPTIONS' in os.environ:
+    options = yaml.safe_load(os.environ['GCB_OPTIONS'])
+
+  build_body = {
+      'steps': get_steps(BASE_IMAGES),
+      'timeout': str(4 * 3600) + 's',
+      'options': options,
+      'images': [TAG_PREFIX + base_image for base_image in BASE_IMAGES],
+  }
+
+  credentials = GoogleCredentials.get_application_default()
+  cloudbuild = build('cloudbuild', 'v1', credentials=credentials)
+  build_info = cloudbuild.projects().builds().create(
+      projectId='oss-fuzz-base', body=build_body).execute()
+  build_id = build_info['metadata']['build']['id']
+
+  print >> sys.stderr, 'Logs:', get_logs_url(build_id)
+  print build_id
+
+
+if __name__ == '__main__':
+  main()
diff --git a/infra/gcb/build_lib.py b/infra/gcb/build_lib.py
new file mode 100644
index 0000000..d350873
--- /dev/null
+++ b/infra/gcb/build_lib.py
@@ -0,0 +1,134 @@
+"""Utility module for Google Cloud Build scripts."""
+import base64
+import collections
+import os
+import requests
+import sys
+import time
+import urllib
+import urlparse
+
+from oauth2client.service_account import ServiceAccountCredentials
+
+BUILD_TIMEOUT = 12 * 60 * 60
+
+# Needed for reading public target.list.* files.
+GCS_URL_BASENAME = 'https://storage.googleapis.com/'
+
+GCS_UPLOAD_URL_FORMAT = '/{0}/{1}/{2}'
+
+# Where corpus backups can be downloaded from.
+CORPUS_BACKUP_URL = ('/{project}-backup.clusterfuzz-external.appspot.com/'
+                     'corpus/libFuzzer/{fuzzer}/latest.zip')
+
+# Cloud Builder has a limit of 100 build steps and 100 arguments for each step.
+CORPUS_DOWNLOAD_BATCH_SIZE = 100
+
+TARGETS_LIST_BASENAME = 'targets.list'
+
+EngineInfo = collections.namedtuple(
+    'EngineInfo',
+    ['upload_bucket', 'supported_sanitizers', 'supported_architectures'])
+
+ENGINE_INFO = {
+    'libfuzzer':
+        EngineInfo(upload_bucket='clusterfuzz-builds',
+                   supported_sanitizers=['address', 'memory', 'undefined'],
+                   supported_architectures=['x86_64', 'i386']),
+    'afl':
+        EngineInfo(upload_bucket='clusterfuzz-builds-afl',
+                   supported_sanitizers=['address'],
+                   supported_architectures=['x86_64']),
+    'honggfuzz':
+        EngineInfo(upload_bucket='clusterfuzz-builds-honggfuzz',
+                   supported_sanitizers=['address', 'memory', 'undefined'],
+                   supported_architectures=['x86_64']),
+    'dataflow':
+        EngineInfo(upload_bucket='clusterfuzz-builds-dataflow',
+                   supported_sanitizers=['dataflow'],
+                   supported_architectures=['x86_64']),
+    'none':
+        EngineInfo(upload_bucket='clusterfuzz-builds-no-engine',
+                   supported_sanitizers=['address'],
+                   supported_architectures=['x86_64']),
+}
+
+
+def get_targets_list_filename(sanitizer):
+  return TARGETS_LIST_BASENAME + '.' + sanitizer
+
+
+def get_targets_list_url(bucket, project, sanitizer):
+  filename = get_targets_list_filename(sanitizer)
+  url = GCS_UPLOAD_URL_FORMAT.format(bucket, project, filename)
+  return url
+
+
+def _get_targets_list(project_name):
+  # libFuzzer ASan is the default configuration, get list of targets from it.
+  url = get_targets_list_url(ENGINE_INFO['libfuzzer'].upload_bucket,
+                             project_name, 'address')
+
+  url = urlparse.urljoin(GCS_URL_BASENAME, url)
+  response = requests.get(url)
+  if not response.status_code == 200:
+    sys.stderr.write('Failed to get list of targets from "%s".\n' % url)
+    sys.stderr.write('Status code: %d \t\tText:\n%s\n' %
+                     (response.status_code, response.text))
+    return None
+
+  return response.text.split()
+
+
+def get_signed_url(path, method='PUT', content_type=''):
+  timestamp = int(time.time() + BUILD_TIMEOUT)
+  blob = '{0}\n\n{1}\n{2}\n{3}'.format(method, content_type, timestamp, path)
+
+  creds = ServiceAccountCredentials.from_json_keyfile_name(
+      os.environ['GOOGLE_APPLICATION_CREDENTIALS'])
+  client_id = creds.service_account_email
+  signature = base64.b64encode(creds.sign_blob(blob)[1])
+  values = {
+      'GoogleAccessId': client_id,
+      'Expires': timestamp,
+      'Signature': signature,
+  }
+
+  return ('https://storage.googleapis.com{0}?'.format(path) +
+          urllib.urlencode(values))
+
+
+def download_corpora_step(project_name):
+  """Returns a GCB step for downloading corpora backups for the given project.
+  """
+  fuzz_targets = _get_targets_list(project_name)
+  if not fuzz_targets:
+    sys.stderr.write('No fuzz targets found for project "%s".\n' % project_name)
+    return None
+
+  # Split fuzz targets into batches of CORPUS_DOWNLOAD_BATCH_SIZE.
+  for i in range(0, len(fuzz_targets), CORPUS_DOWNLOAD_BATCH_SIZE):
+    download_corpus_args = []
+    for binary_name in fuzz_targets[i:i + CORPUS_DOWNLOAD_BATCH_SIZE]:
+      qualified_name = binary_name
+      qualified_name_prefix = '%s_' % project_name
+      if not binary_name.startswith(qualified_name_prefix):
+        qualified_name = qualified_name_prefix + binary_name
+
+      url = get_signed_url(CORPUS_BACKUP_URL.format(project=project_name,
+                                                    fuzzer=qualified_name),
+                           method='GET')
+
+      corpus_archive_path = os.path.join('/corpus', binary_name + '.zip')
+      download_corpus_args.append('%s %s' % (corpus_archive_path, url))
+
+    step = {
+        'name': 'gcr.io/oss-fuzz-base/base-runner',
+        'entrypoint': 'download_corpus',
+        'args': download_corpus_args,
+        'volumes': [{
+            'name': 'corpus',
+            'path': '/corpus'
+        }],
+    }
+    return step
diff --git a/infra/gcb/build_msan_libs.py b/infra/gcb/build_msan_libs.py
new file mode 100755
index 0000000..2c87b15
--- /dev/null
+++ b/infra/gcb/build_msan_libs.py
@@ -0,0 +1,66 @@
+#!/usr/bin/python2
+"""Build base images on Google Cloud Builder.
+
+Usage: build_base_images.py
+"""
+
+import datetime
+import os
+import yaml
+import sys
+
+from oauth2client.client import GoogleCredentials
+from googleapiclient.discovery import build
+
+import build_base_images
+
+
+def main():
+  options = {}
+  if 'GCB_OPTIONS' in os.environ:
+    options = yaml.safe_load(os.environ['GCB_OPTIONS'])
+
+  image = 'gcr.io/oss-fuzz-base/msan-builder'
+  steps = build_base_images.get_steps(['base-msan-builder', 'msan-builder'])
+  ts = datetime.datetime.utcnow().strftime('%Y%m%d%H%M')
+  upload_name = 'msan-libs-' + ts + '.zip'
+
+  steps.extend([{
+      'name': image,
+      'args': [
+          'bash',
+          '-c',
+          'cd /msan && zip -r /workspace/libs.zip .',
+      ],
+  }, {
+      'name':
+          'gcr.io/cloud-builders/gsutil',
+      'args': [
+          'cp',
+          '/workspace/libs.zip',
+          'gs://oss-fuzz-msan-libs/' + upload_name,
+      ],
+  }])
+
+  build_body = {
+      'steps': steps,
+      'timeout': str(6 * 3600) + 's',
+      'options': options,
+      'images': [
+          'gcr.io/oss-fuzz-base/base-msan-builder',
+          image,
+      ],
+  }
+
+  credentials = GoogleCredentials.get_application_default()
+  cloudbuild = build('cloudbuild', 'v1', credentials=credentials)
+  build_info = cloudbuild.projects().builds().create(
+      projectId='oss-fuzz-base', body=build_body).execute()
+  build_id = build_info['metadata']['build']['id']
+
+  print >> sys.stderr, 'Logs:', build_base_images.get_logs_url(build_id)
+  print build_id
+
+
+if __name__ == '__main__':
+  main()
diff --git a/infra/gcb/build_project.py b/infra/gcb/build_project.py
new file mode 100644
index 0000000..f45b099
--- /dev/null
+++ b/infra/gcb/build_project.py
@@ -0,0 +1,405 @@
+#!/usr/bin/python2
+"""Starts project build on Google Cloud Builder.
+
+Usage: build_project.py <project_dir>
+"""
+
+from __future__ import print_function
+
+import datetime
+import json
+import os
+import re
+import sys
+import yaml
+
+from oauth2client.client import GoogleCredentials
+from googleapiclient.discovery import build
+
+import build_lib
+
+FUZZING_BUILD_TAG = 'fuzzing'
+
+GCB_LOGS_BUCKET = 'oss-fuzz-gcb-logs'
+
+CONFIGURATIONS = {
+    'sanitizer-address': ['SANITIZER=address'],
+    'sanitizer-dataflow': ['SANITIZER=dataflow'],
+    'sanitizer-memory': ['SANITIZER=memory'],
+    'sanitizer-undefined': ['SANITIZER=undefined'],
+    'engine-libfuzzer': ['FUZZING_ENGINE=libfuzzer'],
+    'engine-afl': ['FUZZING_ENGINE=afl'],
+    'engine-honggfuzz': ['FUZZING_ENGINE=honggfuzz'],
+    'engine-dataflow': ['FUZZING_ENGINE=dataflow'],
+    'engine-none': ['FUZZING_ENGINE=none'],
+}
+
+DEFAULT_ARCHITECTURES = ['x86_64']
+DEFAULT_ENGINES = ['libfuzzer', 'afl', 'honggfuzz']
+DEFAULT_SANITIZERS = ['address', 'undefined']
+
+
+def usage():
+  sys.stderr.write('Usage: ' + sys.argv[0] + ' <project_dir>\n')
+  exit(1)
+
+
+def load_project_yaml(project_dir):
+  project_name = os.path.basename(project_dir)
+  project_yaml_path = os.path.join(project_dir, 'project.yaml')
+  with open(project_yaml_path) as f:
+    project_yaml = yaml.safe_load(f)
+    project_yaml.setdefault('disabled', False)
+    project_yaml.setdefault('name', project_name)
+    project_yaml.setdefault('image', 'gcr.io/oss-fuzz/' + project_name)
+    project_yaml.setdefault('architectures', DEFAULT_ARCHITECTURES)
+    project_yaml.setdefault('sanitizers', DEFAULT_SANITIZERS)
+    project_yaml.setdefault('fuzzing_engines', DEFAULT_ENGINES)
+    project_yaml.setdefault('run_tests', True)
+    project_yaml.setdefault('coverage_extra_args', '')
+    project_yaml.setdefault('labels', {})
+    project_yaml.setdefault('language', 'cpp')
+    return project_yaml
+
+
+def is_supported_configuration(fuzzing_engine, sanitizer, architecture):
+  fuzzing_engine_info = build_lib.ENGINE_INFO[fuzzing_engine]
+  if architecture == 'i386' and sanitizer != 'address':
+    return False
+  return (sanitizer in fuzzing_engine_info.supported_sanitizers and
+          architecture in fuzzing_engine_info.supported_architectures)
+
+
+def get_sanitizers(project_yaml):
+  sanitizers = project_yaml['sanitizers']
+  assert isinstance(sanitizers, list)
+
+  processed_sanitizers = []
+  for sanitizer in sanitizers:
+    if isinstance(sanitizer, basestring):
+      processed_sanitizers.append(sanitizer)
+    elif isinstance(sanitizer, dict):
+      for key in sanitizer.iterkeys():
+        processed_sanitizers.append(key)
+
+  return processed_sanitizers
+
+
+def workdir_from_dockerfile(dockerfile):
+  """Parse WORKDIR from the Dockerfile."""
+  WORKDIR_REGEX = re.compile(r'\s*WORKDIR\s*([^\s]+)')
+
+  with open(dockerfile) as f:
+    lines = f.readlines()
+
+  for line in lines:
+    match = re.match(WORKDIR_REGEX, line)
+    if match:
+      # We need to escape '$' since they're used for subsitutions in Container
+      # Builer builds.
+      return match.group(1).replace('$', '$$')
+
+  return None
+
+
+def get_build_steps(project_dir):
+  project_yaml = load_project_yaml(project_dir)
+  dockerfile_path = os.path.join(project_dir, 'Dockerfile')
+  name = project_yaml['name']
+  image = project_yaml['image']
+  run_tests = project_yaml['run_tests']
+
+  ts = datetime.datetime.now().strftime('%Y%m%d%H%M')
+
+  build_steps = [
+      {
+          'args': [
+              'clone',
+              'https://github.com/google/oss-fuzz.git',
+          ],
+          'name': 'gcr.io/cloud-builders/git',
+      },
+      {
+          'name': 'gcr.io/cloud-builders/docker',
+          'args': [
+              'build',
+              '-t',
+              image,
+              '.',
+          ],
+          'dir': 'oss-fuzz/projects/' + name,
+      },
+      {
+          'name': image,
+          'args': [
+              'bash', '-c',
+              'srcmap > /workspace/srcmap.json && cat /workspace/srcmap.json'
+          ],
+          'env': ['OSSFUZZ_REVISION=$REVISION_ID'],
+      },
+      {
+          'name': 'gcr.io/oss-fuzz-base/msan-builder',
+          'args': [
+              'bash',
+              '-c',
+              'cp -r /msan /workspace',
+          ],
+      },
+  ]
+
+  for fuzzing_engine in project_yaml['fuzzing_engines']:
+    for sanitizer in get_sanitizers(project_yaml):
+      for architecture in project_yaml['architectures']:
+        if not is_supported_configuration(fuzzing_engine, sanitizer,
+                                          architecture):
+          continue
+
+        env = CONFIGURATIONS['engine-' + fuzzing_engine][:]
+        env.extend(CONFIGURATIONS['sanitizer-' + sanitizer])
+        out = '/workspace/out/' + sanitizer
+        stamped_name = '-'.join([name, sanitizer, ts])
+        zip_file = stamped_name + '.zip'
+        stamped_srcmap_file = stamped_name + '.srcmap.json'
+        bucket = build_lib.ENGINE_INFO[fuzzing_engine].upload_bucket
+        if architecture != 'x86_64':
+          bucket += '-' + architecture
+        upload_url = build_lib.get_signed_url(
+            build_lib.GCS_UPLOAD_URL_FORMAT.format(bucket, name, zip_file))
+        srcmap_url = build_lib.get_signed_url(
+            build_lib.GCS_UPLOAD_URL_FORMAT.format(bucket, name,
+                                                   stamped_srcmap_file))
+
+        targets_list_filename = build_lib.get_targets_list_filename(sanitizer)
+        targets_list_url = build_lib.get_signed_url(
+            build_lib.get_targets_list_url(bucket, name, sanitizer))
+
+        env.append('OUT=' + out)
+        env.append('MSAN_LIBS_PATH=/workspace/msan')
+        env.append('ARCHITECTURE=' + architecture)
+
+        workdir = workdir_from_dockerfile(dockerfile_path)
+        if not workdir:
+          workdir = '/src'
+
+        failure_msg = ('*' * 80 + '\nFailed to build.\nTo reproduce, run:\n'
+                       'python infra/helper.py build_image {name}\n'
+                       'python infra/helper.py build_fuzzers --sanitizer '
+                       '{sanitizer} --engine {engine} --architecture '
+                       '{architecture} {name}\n' + '*' * 80).format(
+                           name=name,
+                           sanitizer=sanitizer,
+                           engine=fuzzing_engine,
+                           architecture=architecture)
+
+        build_steps.append(
+            # compile
+            {
+                'name':
+                    image,
+                'env':
+                    env,
+                'args': [
+                    'bash',
+                    '-c',
+                    # Remove /out to break loudly when a build script
+                    # incorrectly uses /out instead of $OUT.
+                    # `cd /src && cd {workdir}` (where {workdir} is parsed from
+                    # the Dockerfile). Container Builder overrides our workdir
+                    # so we need to add this step to set it back.
+                    ('rm -r /out && cd /src && cd {workdir} && mkdir -p {out} && '
+                     'compile || (echo "{failure_msg}" && false)'
+                    ).format(workdir=workdir, out=out, failure_msg=failure_msg),
+                ],
+            })
+
+        if sanitizer == 'memory':
+          # Patch dynamic libraries to use instrumented ones.
+          build_steps.append({
+              'name':
+                  'gcr.io/oss-fuzz-base/msan-builder',
+              'args': [
+                  'bash',
+                  '-c',
+                  # TODO(ochang): Replace with just patch_build.py once
+                  # permission in image is fixed.
+                  'python /usr/local/bin/patch_build.py {0}'.format(out),
+              ],
+          })
+
+        if run_tests:
+          failure_msg = ('*' * 80 + '\nBuild checks failed.\n'
+                         'To reproduce, run:\n'
+                         'python infra/helper.py build_image {name}\n'
+                         'python infra/helper.py build_fuzzers --sanitizer '
+                         '{sanitizer} --engine {engine} --architecture '
+                         '{architecture} {name}\n'
+                         'python infra/helper.py check_build --sanitizer '
+                         '{sanitizer} --engine {engine} --architecture '
+                         '{architecture} {name}\n' + '*' * 80).format(
+                             name=name,
+                             sanitizer=sanitizer,
+                             engine=fuzzing_engine,
+                             architecture=architecture)
+
+          build_steps.append(
+              # test binaries
+              {
+                  'name':
+                      'gcr.io/oss-fuzz-base/base-runner',
+                  'env':
+                      env,
+                  'args': [
+                      'bash', '-c',
+                      'test_all || (echo "{0}" && false)'.format(failure_msg)
+                  ],
+              })
+
+        if project_yaml['labels']:
+          # write target labels
+          build_steps.append({
+              'name':
+                  image,
+              'env':
+                  env,
+              'args': [
+                  '/usr/local/bin/write_labels.py',
+                  json.dumps(project_yaml['labels']),
+                  out,
+              ],
+          })
+
+        if sanitizer == 'dataflow' and fuzzing_engine == 'dataflow':
+          dataflow_steps = dataflow_post_build_steps(name, env)
+          if dataflow_steps:
+            build_steps.extend(dataflow_steps)
+          else:
+            sys.stderr.write('Skipping dataflow post build steps.\n')
+
+        build_steps.extend([
+            # generate targets list
+            {
+                'name':
+                    'gcr.io/oss-fuzz-base/base-runner',
+                'env':
+                    env,
+                'args': [
+                    'bash',
+                    '-c',
+                    'targets_list > /workspace/{0}'.format(
+                        targets_list_filename),
+                ],
+            },
+            # zip binaries
+            {
+                'name':
+                    image,
+                'args': [
+                    'bash', '-c',
+                    'cd {out} && zip -r {zip_file} *'.format(out=out,
+                                                             zip_file=zip_file)
+                ],
+            },
+            # upload srcmap
+            {
+                'name': 'gcr.io/oss-fuzz-base/uploader',
+                'args': [
+                    '/workspace/srcmap.json',
+                    srcmap_url,
+                ],
+            },
+            # upload binaries
+            {
+                'name': 'gcr.io/oss-fuzz-base/uploader',
+                'args': [
+                    os.path.join(out, zip_file),
+                    upload_url,
+                ],
+            },
+            # upload targets list
+            {
+                'name':
+                    'gcr.io/oss-fuzz-base/uploader',
+                'args': [
+                    '/workspace/{0}'.format(targets_list_filename),
+                    targets_list_url,
+                ],
+            },
+            # cleanup
+            {
+                'name': image,
+                'args': [
+                    'bash',
+                    '-c',
+                    'rm -r ' + out,
+                ],
+            },
+        ])
+
+  return build_steps
+
+
+def dataflow_post_build_steps(project_name, env):
+  steps = []
+  download_corpora_step = build_lib.download_corpora_step(project_name)
+  if not download_corpora_step:
+    return None
+
+  steps = [download_corpora_step]
+  steps.append({
+      'name': 'gcr.io/oss-fuzz-base/base-runner',
+      'env': env,
+      'args': [
+          'bash', '-c',
+          ('for f in /corpus/*.zip; do unzip -q $f -d ${f%%.*}; done && '
+           'collect_dft || (echo "DFT collection failed." && false)')
+      ],
+      'volumes': [{
+          'name': 'corpus',
+          'path': '/corpus'
+      }],
+  })
+  return steps
+
+
+def get_logs_url(build_id):
+  URL_FORMAT = ('https://console.developers.google.com/logs/viewer?'
+                'resource=build%2Fbuild_id%2F{0}&project=oss-fuzz')
+  return URL_FORMAT.format(build_id)
+
+
+def run_build(build_steps, project_name, tag):
+  options = {}
+  if 'GCB_OPTIONS' in os.environ:
+    options = yaml.safe_load(os.environ['GCB_OPTIONS'])
+
+  build_body = {
+      'steps': build_steps,
+      'timeout': str(build_lib.BUILD_TIMEOUT) + 's',
+      'options': options,
+      'logsBucket': GCB_LOGS_BUCKET,
+      'tags': [project_name + '-' + tag,],
+  }
+
+  credentials = GoogleCredentials.get_application_default()
+  cloudbuild = build('cloudbuild', 'v1', credentials=credentials)
+  build_info = cloudbuild.projects().builds().create(projectId='oss-fuzz',
+                                                     body=build_body).execute()
+  build_id = build_info['metadata']['build']['id']
+
+  print('Logs:', get_logs_url(build_id), file=sys.stderr)
+  print(build_id)
+
+
+def main():
+  if len(sys.argv) != 2:
+    usage()
+
+  project_dir = sys.argv[1].rstrip(os.path.sep)
+  steps = get_build_steps(project_dir)
+
+  project_name = os.path.basename(project_dir)
+  run_build(steps, project_name, FUZZING_BUILD_TAG)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/infra/gcb/builds_status.py b/infra/gcb/builds_status.py
new file mode 100755
index 0000000..5352d36
--- /dev/null
+++ b/infra/gcb/builds_status.py
@@ -0,0 +1,243 @@
+#!/usr/bin/env python2
+
+import datetime
+import os
+import sys
+import json
+import tempfile
+import time
+
+import dateutil.parser
+from oauth2client.client import GoogleCredentials
+from googleapiclient.discovery import build as gcb_build
+from google.cloud import storage
+
+import build_and_run_coverage
+import build_project
+
+STATUS_BUCKET = 'oss-fuzz-build-logs'
+SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
+BADGE_DIR = 'badges'
+RETRY_COUNT = 3
+RETRY_WAIT = 5
+MAX_BUILD_RESULTS = 2000
+BUILDS_PAGE_SIZE = 256
+BADGE_IMAGE_TYPES = {'svg': 'image/svg+xml', 'png': 'image/png'}
+
+_client = None
+
+
+def _get_storage_client():
+  """Return storage client."""
+  global _client
+  if not _client:
+    _client = storage.Client()
+
+  return _client
+
+
+def usage():
+  sys.stderr.write('Usage: ' + sys.argv[0] + ' <projects_dir>\n')
+  exit(1)
+
+
+def scan_project_names(projects_dir):
+  projects = []
+  for root, dirs, files in os.walk(projects_dir):
+    for f in files:
+      if f == 'Dockerfile':
+        projects.append(os.path.basename(root))
+  return sorted(projects)
+
+
+def upload_status(successes, failures, status_filename):
+  """Upload main status page."""
+  data = {
+      'projects': failures + successes,
+      'failures': failures,
+      'successes': successes,
+      'last_updated': datetime.datetime.utcnow().ctime()
+  }
+
+  bucket = _get_storage_client().get_bucket(STATUS_BUCKET)
+  blob = bucket.blob(status_filename)
+  blob.cache_control = 'no-cache'
+  blob.upload_from_string(json.dumps(data), content_type='application/json')
+
+
+def is_build_successful(build):
+  return build['status'] == 'SUCCESS'
+
+
+def find_last_build(builds, project, build_tag_suffix):
+  DELAY_MINUTES = 40
+  tag = project + '-' + build_tag_suffix
+
+  builds = builds.get(tag)
+  if not builds:
+    print >> sys.stderr, 'Failed to find builds with tag', tag
+    return None
+
+  for build in builds:
+    if build['status'] == 'WORKING':
+      continue
+
+    if tag not in build['tags']:
+      continue
+
+    if not 'finishTime' in build:
+      continue
+
+    finish_time = dateutil.parser.parse(build['finishTime'], ignoretz=True)
+    if (datetime.datetime.utcnow() - finish_time >=
+        datetime.timedelta(minutes=DELAY_MINUTES)):
+      status_bucket = _get_storage_client().get_bucket(STATUS_BUCKET)
+      gcb_bucket = _get_storage_client().get_bucket(
+          build_project.GCB_LOGS_BUCKET)
+      log_name = 'log-{0}.txt'.format(build['id'])
+      log = gcb_bucket.blob(log_name)
+      dest_log = status_bucket.blob(log_name)
+
+      with tempfile.NamedTemporaryFile() as f:
+        log.download_to_filename(f.name)
+        dest_log.upload_from_filename(f.name, content_type='text/plain')
+
+      return build
+
+  return None
+
+
+def execute_with_retries(request):
+  for i in xrange(RETRY_COUNT + 1):
+    try:
+      return request.execute()
+    except Exception as e:
+      print('request failed with {0}, retrying...'.format(str(e)))
+      if i < RETRY_COUNT:
+        time.sleep(RETRY_WAIT)
+        continue
+
+      raise
+
+
+def get_builds(cloudbuild):
+  """Get a batch of the latest builds (up to MAX_BUILD_RESULTS), grouped by
+  tag."""
+  ungrouped_builds = []
+  next_page_token = None
+
+  while True:
+    page_size = min(BUILDS_PAGE_SIZE, MAX_BUILD_RESULTS - len(ungrouped_builds))
+    response = execute_with_retries(cloudbuild.projects().builds().list(
+        projectId='oss-fuzz', pageSize=page_size, pageToken=next_page_token))
+
+    if not 'builds' in response:
+      print >> sys.stderr, 'Invalid response from builds list:', response
+      return None
+
+    ungrouped_builds.extend(response['builds'])
+    if len(ungrouped_builds) >= MAX_BUILD_RESULTS:
+      break
+
+    next_page_token = response.get('nextPageToken')
+
+  builds = {}
+  for build in ungrouped_builds:
+    for tag in build['tags']:
+      builds.setdefault(tag, []).append(build)
+
+  return builds
+
+
+def update_build_status(builds, projects, build_tag_suffix, status_filename):
+  successes = []
+  failures = []
+
+  for project in projects:
+    print project
+
+    last_build = find_last_build(builds, project, build_tag_suffix)
+    if not last_build:
+      print >> sys.stderr, 'Failed to get build for', project
+      continue
+
+    print last_build['startTime'], last_build['status'], last_build['id']
+    if is_build_successful(last_build):
+      successes.append({
+          'name': project,
+          'build_id': last_build['id'],
+          'finish_time': last_build['finishTime'],
+          'success': True,
+      })
+    else:
+      failures.append({
+          'name': project,
+          'build_id': last_build['id'],
+          'finish_time': last_build['finishTime'],
+          'success': False,
+      })
+
+  upload_status(successes, failures, status_filename)
+
+
+def update_build_badges(builds, projects, build_tag, coverage_tag):
+  for project in projects:
+    last_build = find_last_build(builds, project, build_tag)
+    last_coverage_build = find_last_build(builds, project, coverage_tag)
+    if not last_build or not last_coverage_build:
+      continue
+
+    badge = 'building'
+    if not is_build_successful(last_coverage_build):
+      badge = 'coverage_failing'
+    if not is_build_successful(last_build):
+      badge = 'failing'
+
+    print("[badge] {}: {}".format(project, badge))
+
+    for extension, mime_type in BADGE_IMAGE_TYPES.items():
+      badge_name = '{badge}.{extension}'.format(
+          badge=badge, extension=extension)
+      # Retrieve the image relative to this script's location
+      badge_file = os.path.join(SCRIPT_DIR, 'badge_images', badge_name)
+
+      # The uploaded blob name should look like `badges/project.png`
+      blob_name = '{badge_dir}/{project_name}.{extension}'.format(
+          badge_dir=BADGE_DIR, project_name=project, extension=extension)
+
+      status_bucket = _get_storage_client().get_bucket(STATUS_BUCKET)
+      badge_blob = status_bucket.blob(blob_name)
+      badge_blob.upload_from_filename(badge_file, content_type=mime_type)
+
+
+def main():
+  if len(sys.argv) != 2:
+    usage()
+
+  projects_dir = sys.argv[1]
+  projects = scan_project_names(projects_dir)
+
+  credentials = GoogleCredentials.get_application_default()
+  cloudbuild = gcb_build('cloudbuild', 'v1', credentials=credentials)
+
+  builds = get_builds(cloudbuild)
+  update_build_status(
+      builds,
+      projects,
+      build_project.FUZZING_BUILD_TAG,
+      status_filename='status.json')
+  update_build_status(
+      builds,
+      projects,
+      build_and_run_coverage.COVERAGE_BUILD_TAG,
+      status_filename='status-coverage.json')
+
+  update_build_badges(
+      builds,
+      projects,
+      build_tag=build_project.FUZZING_BUILD_TAG,
+      coverage_tag=build_and_run_coverage.COVERAGE_BUILD_TAG)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/infra/gcb/cancel.py b/infra/gcb/cancel.py
new file mode 100755
index 0000000..8393a51
--- /dev/null
+++ b/infra/gcb/cancel.py
@@ -0,0 +1,40 @@
+#!/usr/bin/python2
+"""Cancels project build on Google Cloud Builder.
+
+Usage: cancel.py <build_id>
+"""
+
+import base64
+import collections
+import datetime
+import os
+import subprocess
+import sys
+import time
+import urllib
+import yaml
+
+from oauth2client.client import GoogleCredentials
+from googleapiclient.discovery import build
+
+
+def usage():
+  sys.stderr.write('Usage: ' + sys.argv[0] + ' <build_id>\n')
+  exit(1)
+
+
+def main():
+  if len(sys.argv) != 2:
+    usage()
+
+  build_id = sys.argv[1]
+
+  credentials = GoogleCredentials.get_application_default()
+  cloudbuild = build('cloudbuild', 'v1', credentials=credentials)
+  print cloudbuild.projects().builds().cancel(projectId='oss-fuzz',
+                                              id=build_id,
+                                              body={}).execute()
+
+
+if __name__ == '__main__':
+  main()
diff --git a/infra/gcb/jenkins_config/base_job.xml b/infra/gcb/jenkins_config/base_job.xml
new file mode 100644
index 0000000..fa90aa4
--- /dev/null
+++ b/infra/gcb/jenkins_config/base_job.xml
@@ -0,0 +1,62 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<project>
+  <actions/>
+  <description></description>
+  <keepDependencies>false</keepDependencies>
+  <properties/>
+  <scm class="hudson.plugins.git.GitSCM" plugin="git@3.1.0">
+    <configVersion>2</configVersion>
+    <userRemoteConfigs>
+      <hudson.plugins.git.UserRemoteConfig>
+        <url>https://github.com/google/oss-fuzz.git</url>
+      </hudson.plugins.git.UserRemoteConfig>
+    </userRemoteConfigs>
+    <branches>
+      <hudson.plugins.git.BranchSpec>
+        <name>*/master</name>
+      </hudson.plugins.git.BranchSpec>
+    </branches>
+    <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
+    <submoduleCfg class="list"/>
+    <extensions>
+      <hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
+        <relativeTargetDir>oss-fuzz</relativeTargetDir>
+      </hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
+    </extensions>
+  </scm>
+  <canRoam>true</canRoam>
+  <disabled>false</disabled>
+  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
+  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
+  <triggers>
+    <jenkins.triggers.ReverseBuildTrigger>
+      <spec/>
+      <upstreamProjects>infra/base-images</upstreamProjects>
+      <threshold>
+        <name>SUCCESS</name>
+        <ordinal>0</ordinal>
+        <color>BLUE</color>
+        <completeBuild>true</completeBuild>
+      </threshold>
+    </jenkins.triggers.ReverseBuildTrigger>
+  </triggers>
+  <concurrentBuild>false</concurrentBuild>
+  <builders>
+    <hudson.tasks.Shell>
+      <command>#!/bin/bash -eux
+
+virtualenv ENV
+set +o nounset
+. ENV/bin/activate
+set -o nounset
+
+cd $WORKSPACE/oss-fuzz/infra/gcb
+pip install -r requirements.txt
+build_id=$(python build_project.py $WORKSPACE/oss-fuzz/$JOB_NAME)
+python wait_for_build.py $build_id
+</command>
+    </hudson.tasks.Shell>
+  </builders>
+  <publishers/>
+  <buildWrappers/>
+</project>
diff --git a/infra/gcb/jenkins_config/coverage_job.xml b/infra/gcb/jenkins_config/coverage_job.xml
new file mode 100644
index 0000000..be5cb82
--- /dev/null
+++ b/infra/gcb/jenkins_config/coverage_job.xml
@@ -0,0 +1,60 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<project>
+  <actions/>
+  <description></description>
+  <keepDependencies>false</keepDependencies>
+  <properties/>
+  <scm class="hudson.plugins.git.GitSCM" plugin="git@3.1.0">
+    <configVersion>2</configVersion>
+    <userRemoteConfigs>
+      <hudson.plugins.git.UserRemoteConfig>
+        <url>https://github.com/google/oss-fuzz.git</url>
+      </hudson.plugins.git.UserRemoteConfig>
+    </userRemoteConfigs>
+    <branches>
+      <hudson.plugins.git.BranchSpec>
+        <name>*/master</name>
+      </hudson.plugins.git.BranchSpec>
+    </branches>
+    <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
+    <submoduleCfg class="list"/>
+    <extensions>
+      <hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
+        <relativeTargetDir>oss-fuzz</relativeTargetDir>
+      </hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
+    </extensions>
+  </scm>
+  <canRoam>true</canRoam>
+  <disabled>false</disabled>
+  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
+  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
+  <triggers>
+    <hudson.triggers.TimerTrigger>
+      <spec>H 6 * * *</spec>
+    </hudson.triggers.TimerTrigger>
+  </triggers>
+  <concurrentBuild>false</concurrentBuild>
+  <builders>
+    <hudson.tasks.Shell>
+      <command>#!/bin/bash -eux
+
+virtualenv ENV
+set +o nounset
+. ENV/bin/activate
+set -o nounset
+
+cd $WORKSPACE/oss-fuzz/infra/gcb
+pip install -r requirements.txt
+project_dir=$WORKSPACE/oss-fuzz/projects/$(basename $JOB_NAME)
+build_id=$(python build_and_run_coverage.py $project_dir)
+if [[ "$build_id" == "0" ]]; then
+  echo "Intentionally skipping code coverage job."
+else
+  python wait_for_build.py $build_id
+fi
+</command>
+    </hudson.tasks.Shell>
+  </builders>
+  <publishers/>
+  <buildWrappers/>
+</project>
diff --git a/infra/gcb/requirements.txt b/infra/gcb/requirements.txt
new file mode 100644
index 0000000..af53d16
--- /dev/null
+++ b/infra/gcb/requirements.txt
@@ -0,0 +1,35 @@
+cachetools==2.1.0
+certifi==2018.4.16
+chardet==3.0.4
+enum34==1.1.6
+futures==3.2.0
+google-api-core==1.2.0
+google-api-python-client==1.7.0
+google-auth==1.5.0
+google-auth-httplib2==0.0.3
+google-cloud-core==0.28.1
+google-cloud-logging==1.6.0
+google-cloud-pubsub==0.35.2
+google-cloud-storage==1.10.0
+google-resumable-media==0.3.1
+googleapis-common-protos==1.5.3
+grpc-google-iam-v1==0.11.4
+grpcio==1.12.0
+httplib2==0.11.3
+idna==2.6
+Jinja2==2.10.1
+MarkupSafe==1.0
+multi-key-dict==2.0.3
+oauth2client==4.1.2
+pbr==4.0.3
+protobuf==3.5.2.post1
+pyasn1==0.4.3
+pyasn1-modules==0.2.1
+python-dateutil==2.7.3
+python-jenkins==1.0.0
+pytz==2018.4
+PyYAML==5.1
+requests==2.21.0
+rsa==3.4.2
+six==1.11.0
+uritemplate==3.0.0
diff --git a/infra/gcb/sync.py b/infra/gcb/sync.py
new file mode 100755
index 0000000..9004678
--- /dev/null
+++ b/infra/gcb/sync.py
@@ -0,0 +1,106 @@
+#!/usr/bin/env python
+"""Script to sync CF and Jenkins jobs."""
+
+import json
+import os
+import re
+import sys
+import yaml
+
+import jenkins
+
+JENKINS_SERVER = ('localhost', 8080)
+
+JOB_TEMPLATES = [
+    {'prefix': 'projects/', 'config': 'base_job.xml'},
+    {'prefix': 'coverage/', 'config': 'coverage_job.xml'},
+]
+
+SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
+OSSFUZZ_DIR = os.path.dirname(os.path.dirname(SCRIPT_DIR))
+
+VALID_PROJECT_NAME = re.compile(r'^[a-zA-Z0-9_-]+$')
+
+
+def main():
+  # Connect to jenkins server.
+  jenkins_login = get_jenkins_login()
+  server = jenkins.Jenkins(
+      'http://%s:%d' % JENKINS_SERVER,
+      username=jenkins_login[0],
+      password=jenkins_login[1])
+
+  for project in get_projects():
+    print 'syncing configs for', project
+    try:
+      # Create/update jenkins build job.
+      sync_jenkins_job(server, project)
+
+    except Exception as e:
+      print >> sys.stderr, 'Failed to setup job with exception', e
+
+
+def _has_dockerfile(project_dir):
+  """Whether or not the project has a Dockerfile."""
+  if os.path.exists(os.path.join(project_dir, 'Dockerfile')):
+    return True
+
+  project_yaml_path = os.path.join(project_dir, 'project.yaml')
+  if not os.path.exists(project_yaml_path):
+    return False
+
+  with open(project_yaml_path) as f:
+    project_info = yaml.safe_load(f)
+
+  return 'dockerfile' in project_info
+
+
+def get_projects():
+  """Return list of projects for oss-fuzz."""
+  projects = []
+  projects_dir = os.path.join(OSSFUZZ_DIR, 'projects')
+  for name in os.listdir(projects_dir):
+    full_path = os.path.join(projects_dir, name)
+    if not os.path.isdir(full_path) or not _has_dockerfile(full_path):
+      continue
+
+    if not VALID_PROJECT_NAME.match(name):
+      print >> sys.stderr, 'Invalid project name:', name
+      continue
+
+    projects.append(name)
+
+  if not projects:
+    print >> sys.stderr, 'No projects found.'
+
+  return projects
+
+
+def get_jenkins_login():
+  """Returns (username, password) for jenkins."""
+  username = os.getenv('JENKINS_USER')
+  password = os.getenv('JENKINS_PASS')
+
+  return username, password
+
+
+def sync_jenkins_job(server, project):
+  """Sync the config with jenkins."""
+  project_yaml = os.path.join(OSSFUZZ_DIR, 'projects', project, 'project.yaml')
+  with open(project_yaml, 'r') as f:
+    project_json_string = json.dumps(json.dumps(yaml.safe_load(f)))
+
+  for job in JOB_TEMPLATES:
+    job_name = job['prefix'] + project
+    with open(os.path.join(SCRIPT_DIR, 'jenkins_config', job['config'])) as f:
+      job_config_xml = f.read()
+
+    if server.job_exists(job_name):
+      server.reconfig_job(job_name, job_config_xml)
+    else:
+      server.create_job(job_name, job_config_xml)
+      server.build_job(job_name)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/infra/build/status/bower.json b/infra/gcb/templates/bower.json
similarity index 100%
rename from infra/build/status/bower.json
rename to infra/gcb/templates/bower.json
diff --git a/infra/gcb/templates/deploy.sh b/infra/gcb/templates/deploy.sh
new file mode 100755
index 0000000..36aa871
--- /dev/null
+++ b/infra/gcb/templates/deploy.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+gsutil -h "Cache-Control:no-cache,max-age=0" -m cp -r bower_components index.html src manifest.json gs://oss-fuzz-build-logs
diff --git a/infra/gcb/templates/index.html b/infra/gcb/templates/index.html
new file mode 100644
index 0000000..36dd15b
--- /dev/null
+++ b/infra/gcb/templates/index.html
@@ -0,0 +1,28 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
+    <title>OSS-Fuzz build status</title>
+    <meta name="description" content="OSS-Fuzz build status">
+
+    <!-- See https://goo.gl/OOhYW5 -->
+    <link rel="manifest" href="/manifest.json">
+
+    <script src="/bower_components/webcomponentsjs/webcomponents-loader.js"></script>
+
+
+    <link rel="import" href="/src/build-status/build-status.html">
+
+    <style>
+      body {
+        font-family: 'Roboto', 'Noto', sans-serif;
+        background: #f1f1f1;
+        margin: 0;
+      }
+    </style>
+  </head>
+  <body>
+    <build-status></build-status>
+  </body>
+</html>
diff --git a/infra/build/status/manifest.json b/infra/gcb/templates/manifest.json
similarity index 100%
rename from infra/build/status/manifest.json
rename to infra/gcb/templates/manifest.json
diff --git a/infra/build/status/polymer.json b/infra/gcb/templates/polymer.json
similarity index 100%
rename from infra/build/status/polymer.json
rename to infra/gcb/templates/polymer.json
diff --git a/infra/gcb/templates/src/build-status/build-status.html b/infra/gcb/templates/src/build-status/build-status.html
new file mode 100644
index 0000000..35ee99a
--- /dev/null
+++ b/infra/gcb/templates/src/build-status/build-status.html
@@ -0,0 +1,223 @@
+<link rel="import" href="../../bower_components/polymer/polymer-element.html">
+<link rel="import" href="../../bower_components/app-layout/app-drawer-layout/app-drawer-layout.html">
+<link rel="import" href="../../bower_components/app-layout/app-drawer/app-drawer.html">
+<link rel="import" href="../../bower_components/app-layout/app-scroll-effects/app-scroll-effects.html">
+<link rel="import" href="../../bower_components/app-layout/app-header/app-header.html">
+<link rel="import" href="../../bower_components/app-layout/app-header-layout/app-header-layout.html">
+<link rel="import" href="../../bower_components/app-layout/app-toolbar/app-toolbar.html">
+<link rel="import" href="../../bower_components/paper-item/paper-item.html">
+<link rel="import" href="../../bower_components/paper-item/paper-item-body.html">
+<link rel="import" href="../../bower_components/paper-card/paper-card.html">
+<link rel="import" href="../../bower_components/paper-tabs/paper-tabs.html">
+<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
+<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
+<link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">
+<link rel="import" href="../../bower_components/iron-flex-layout/iron-flex-layout-classes.html">
+<link rel="import" href="../../bower_components/polymer/lib/elements/dom-if.html">
+<link rel="import" href="../../bower_components/polymer/lib/elements/dom-repeat.html">
+<link rel="import" href="../../bower_components/app-route/app-location.html">
+<link rel="import" href="../../bower_components/app-route/app-route.html">
+
+<dom-module id="build-status">
+  <template>
+    <app-location route="{{route}}" use-hash-as-path></app-location>
+    <app-route route="{{route}}"
+      pattern=":project_name"
+      data="{{routeData}}">
+    </app-route>
+    <style is="custom-style" include="iron-flex iron-flex-alignment">
+    <style>
+      .paper-item-link {
+        color: inherit;
+        text-decoration: none;
+      }
+
+      app-header {
+        background-color: #2ba4ad;
+        color: #fff;
+      }
+
+      paper-card {
+        margin: 0.5em;
+      }
+
+      paper-item {
+        cursor: pointer;
+      }
+
+      paper-tabs {
+        -webkit-font-smoothing: antialiased;
+        width: 100%;
+        margin-bottom: 1px;
+        height: 40px;
+      }
+
+      :host {
+        display: block;
+      }
+
+      .icon-error {
+        color: #e83030;
+        margin-right: 0.2em;
+      }
+
+      .projects {
+        min-width: 10em;
+      }
+
+      .log {
+        width: 80%;
+        display: inline;
+      }
+
+      pre {
+        white-space: pre-wrap;
+      }
+    </style>
+    <app-header reveals>
+      <app-toolbar>
+        <div main-title>OSS-Fuzz build status</div>
+        <div><small>(Updated every 30 minutes)</small></div>
+      </app-toolbar>
+    </app-header>
+    <div class="layout horizontal">
+      <paper-card class="projects">
+        <div class="card-tabs">
+          <paper-tabs selected="fuzzing" id="build_type" attr-for-selected="type" on-click="onChanged">
+            <paper-tab type="fuzzing">Fuzzing Builds</paper-tab>
+            <paper-tab type="coverage">Coverage Builds</paper-tab>
+          </paper-tabs>
+        </div>
+        <div class="card-content">
+          <template is="dom-repeat" items="[[status.projects]]" as="project">
+            <paper-item on-tap="onTap">
+              <paper-item-body two-line>
+                <div>
+                  <template is="dom-if" if="[[!project.success]]">
+                    <iron-icon class="icon-error" icon="icons:error"></iron-icon>
+                  </template>
+                  [[project.name]]
+                </div>
+                <div secondary title$="Last built [[toLocalDate(project.finish_time)]]">
+                  Last built [[toLocalDate(project.finish_time)]]
+                </div>
+              </paper-item-body>
+            </paper-item>
+          </template>
+        </div>
+      </paper-card>
+      <paper-card class="log">
+        <div class="card-content">
+          <template is="dom-if" if="[[showMessage(loading_log, log)]]">
+            Select a project to see logs.
+          </template>
+          <template is="dom-if" if="[[loading_log]]">
+            Loading...
+          </template>
+          <template is="dom-if" if="[[showLog(log)]]">
+            <a href="/log-[[build_id]].txt" tabindex="-1">
+              <iron-icon icon="icons:link"></iron-iron>
+            </a>
+          </template>
+          <pre>[[log]]</pre>
+        </div>
+      </paper-card>
+    </div>
+      <iron-ajax id="status_fuzzing" auto handle-as="json" url="/status.json" on-response="onResponseForFuzzing"></iron-ajax>
+      <iron-ajax id="status_coverage" auto handle-as="json" url="/status-coverage.json" on-response="onResponseForCoverage"></iron-ajax>
+    <iron-ajax id="logxhr" auto handle-as="text" on-response="onLogResponse"></iron-ajax>
+  </template>
+
+  <script>
+    /** @polymerElement */
+    class BuildStatus extends Polymer.Element {
+      static get is() { return 'build-status'; }
+      static get properties() {
+        return {
+          log: {
+            type: String,
+            value: ''
+          },
+          loading_log: {
+            type: Boolean,
+            value: false
+          }
+        };
+      }
+      static get observers() {
+        return [
+          '_routeChanged(route.*)'
+        ];
+      }
+
+      _routeChanged() {
+        if (!this.status || !this.routeData.project_name) {
+          // If our status json is loaded and there is a project_name specified
+          // in the URL, we can proceed to load that project's log.
+          return;
+        }
+        var project = this.getProjectByName(this.routeData.project_name);
+
+        this.$.logxhr.url = "/log-" + project.build_id + ".txt";
+        this.build_id = project.build_id;
+        this.log = '';
+        this.loading_log = true;
+      }
+
+      getProjectByName(project_name) {
+        return this.status.projects.find(p => p.name === project_name);
+      }
+
+      onResponseForFuzzing(e) {
+        this.status_fuzzing = e.detail.response;
+        if (!this.status) {
+          // Show status of the fuzzing builds by default.
+          this.status = this.status_fuzzing;
+          // Manually invoke a _routeChanged call, in order to load the log for
+          // someone going directly to a project's URL.
+          this._routeChanged();
+        }
+      }
+
+      onResponseForCoverage(e) {
+        this.status_coverage = e.detail.response;
+      }
+
+      onLogResponse(e) {
+        this.log = e.detail.response;
+        this.loading_log = false;
+      }
+
+      onTap(e) {
+        // Change the route, this should auto-magically update the url in the
+        // browser and invoke the _routeChanged method.
+        this.set('route.path', e.model.project.name);
+      }
+
+      onChanged(e) {
+        if (this.$.build_type.selected == 'coverage') {
+          this.status = this.status_coverage
+        } else {
+          this.status = this.status_fuzzing
+        }
+      }
+
+      showMessage(loading_log, log) {
+        return !loading_log && log === '';
+      }
+
+      showLog(log) {
+        return log !== '';
+      }
+
+      toLocalDate(str) {
+        let date = new Date(str);
+        let ds = date.toString();
+        let timezone = ds.substring(ds.indexOf("("));
+        return date.toLocaleString() + " " + timezone;
+      }
+    };
+
+    window.customElements.define(BuildStatus.is, BuildStatus);
+  </script>
+</dom-module>
diff --git a/infra/gcb/wait_for_build.py b/infra/gcb/wait_for_build.py
new file mode 100755
index 0000000..ec2f89e
--- /dev/null
+++ b/infra/gcb/wait_for_build.py
@@ -0,0 +1,68 @@
+#!/usr/bin/python2
+"""Waits for project build on Google Cloud Builder.
+
+Usage: wait_for_build.py <build_id>
+"""
+
+import argparse
+import sys
+import time
+import datetime
+
+from googleapiclient.discovery import build
+from oauth2client.client import GoogleCredentials
+
+POLL_INTERVAL = 15
+cloudbuild = None
+
+
+def get_build(build_id, cloudbuild, project):
+  return cloudbuild.projects().builds().get(
+      projectId=project, id=build_id).execute()
+
+
+def wait_for_build(build_id, project):
+  DONE_STATUSES = [
+      'SUCCESS',
+      'FAILURE',
+      'INTERNAL_ERROR',
+      'CANCELLED',
+      'TIMEOUT',
+  ]
+
+  status = None
+  while True:
+    build_info = get_build(build_id, cloudbuild, project)
+
+    current_status = build_info['status']
+    if current_status != status:
+      print datetime.datetime.now(), current_status
+      sys.stdout.flush()
+    status = current_status
+    if status in DONE_STATUSES:
+      return status == 'SUCCESS'
+
+    time.sleep(POLL_INTERVAL)
+
+
+def main():
+  global cloudbuild
+
+  parser = argparse.ArgumentParser(description='Wait for build to complete')
+  parser.add_argument(
+      '-p', '--project', help='Cloud Project', default='oss-fuzz')
+  parser.add_argument('build_id', help='The Container Builder build ID.')
+
+  args = parser.parse_args()
+
+  credentials = GoogleCredentials.get_application_default()
+  cloudbuild = build('cloudbuild', 'v1', credentials=credentials)
+
+  success = wait_for_build(args.build_id, args.project)
+
+  if not success:
+    sys.exit(1)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/infra/helper.py b/infra/helper.py
index e24df4d..5a3880b 100755
--- a/infra/helper.py
+++ b/infra/helper.py
@@ -22,6 +22,7 @@
 import argparse
 import datetime
 import errno
+import multiprocessing
 import os
 import pipes
 import re
@@ -29,8 +30,8 @@
 import sys
 import templates
 
-OSS_FUZZ_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
-BUILD_DIR = os.path.join(OSS_FUZZ_DIR, 'build')
+OSSFUZZ_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+BUILD_DIR = os.path.join(OSSFUZZ_DIR, 'build')
 
 BASE_IMAGES = [
     'gcr.io/oss-fuzz-base/base-image',
@@ -38,8 +39,8 @@
     'gcr.io/oss-fuzz-base/base-builder',
     'gcr.io/oss-fuzz-base/base-runner',
     'gcr.io/oss-fuzz-base/base-runner-debug',
-    'gcr.io/oss-fuzz-base/base-sanitizer-libs-builder',
-    'gcr.io/oss-fuzz-base/msan-libs-builder',
+    'gcr.io/oss-fuzz-base/base-msan-builder',
+    'gcr.io/oss-fuzz-base/msan-builder',
 ]
 
 VALID_PROJECT_NAME_REGEX = re.compile(r'^[a-zA-Z0-9_-]+$')
@@ -55,64 +56,13 @@
     'gs://{project_name}-backup.clusterfuzz-external.appspot.com/corpus/'
     'libFuzzer/{fuzz_target}/')
 
-PROJECT_LANGUAGE_REGEX = re.compile(r'\s*language\s*:\s*([^\s]+)')
 
-# Languages from project.yaml that have code coverage support.
-LANGUAGES_WITH_COVERAGE_SUPPORT = ['c', 'c++', 'go', 'rust']
-
-# pylint: disable=too-many-lines
-
-
-def main():  # pylint: disable=too-many-branches,too-many-return-statements
+def main():  # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements
   """Get subcommand from program arguments and do it."""
-  os.chdir(OSS_FUZZ_DIR)
+  os.chdir(OSSFUZZ_DIR)
   if not os.path.exists(BUILD_DIR):
     os.mkdir(BUILD_DIR)
 
-  args = parse_args()
-
-  # We have different default values for `sanitizer` depending on the `engine`.
-  # Some commands do not have `sanitizer` argument, so `hasattr` is necessary.
-  if hasattr(args, 'sanitizer') and not args.sanitizer:
-    if args.engine == 'dataflow':
-      args.sanitizer = 'dataflow'
-    else:
-      args.sanitizer = 'address'
-
-  if args.command == 'generate':
-    return generate(args)
-  if args.command == 'build_image':
-    return build_image(args)
-  if args.command == 'build_fuzzers':
-    return build_fuzzers(args)
-  if args.command == 'check_build':
-    return check_build(args)
-  if args.command == 'download_corpora':
-    return download_corpora(args)
-  if args.command == 'run_fuzzer':
-    return run_fuzzer(args)
-  if args.command == 'coverage':
-    return coverage(args)
-  if args.command == 'reproduce':
-    return reproduce(args)
-  if args.command == 'shell':
-    return shell(args)
-  if args.command == 'pull_images':
-    return pull_images(args)
-
-  return 0
-
-
-def parse_args(args=None):
-  """Parses args using argparser and returns parsed args."""
-  # Use default argument None for args so that in production, argparse does its
-  # normal behavior, but unittesting is easier.
-  parser = get_parser()
-  return parser.parse_args(args)
-
-
-def get_parser():  # pylint: disable=too-many-statements
-  """Returns an argparse parser."""
   parser = argparse.ArgumentParser('helper.py', description='oss-fuzz helpers')
   subparsers = parser.add_subparsers(dest='command')
 
@@ -154,12 +104,9 @@
   check_build_parser = subparsers.add_parser(
       'check_build', help='Checks that fuzzers execute without errors.')
   _add_architecture_args(check_build_parser)
-  _add_engine_args(
-      check_build_parser,
-      choices=['libfuzzer', 'afl', 'honggfuzz', 'dataflow', 'none'])
-  _add_sanitizer_args(
-      check_build_parser,
-      choices=['address', 'memory', 'undefined', 'dataflow', 'thread'])
+  _add_engine_args(check_build_parser, choices=['libfuzzer', 'afl', 'dataflow'])
+  _add_sanitizer_args(check_build_parser,
+                      choices=['address', 'memory', 'undefined', 'dataflow'])
   _add_environment_args(check_build_parser)
   check_build_parser.add_argument('project_name', help='name of the project')
   check_build_parser.add_argument('fuzzer_name',
@@ -171,8 +118,6 @@
   _add_engine_args(run_fuzzer_parser)
   _add_sanitizer_args(run_fuzzer_parser)
   _add_environment_args(run_fuzzer_parser)
-  run_fuzzer_parser.add_argument(
-      '--corpus-dir', help='directory to store corpus for the fuzz target')
   run_fuzzer_parser.add_argument('project_name', help='name of the project')
   run_fuzzer_parser.add_argument('fuzzer_name', help='name of the fuzzer')
   run_fuzzer_parser.add_argument('fuzzer_args',
@@ -226,16 +171,45 @@
   shell_parser = subparsers.add_parser(
       'shell', help='Run /bin/bash within the builder container.')
   shell_parser.add_argument('project_name', help='name of the project')
-  shell_parser.add_argument('source_path',
-                            help='path of local source',
-                            nargs='?')
   _add_architecture_args(shell_parser)
   _add_engine_args(shell_parser)
   _add_sanitizer_args(shell_parser)
   _add_environment_args(shell_parser)
 
   subparsers.add_parser('pull_images', help='Pull base images.')
-  return parser
+
+  args = parser.parse_args()
+
+  # We have different default values for `sanitizer` depending on the `engine`.
+  # Some commands do not have `sanitizer` argument, so `hasattr` is necessary.
+  if hasattr(args, 'sanitizer') and not args.sanitizer:
+    if args.engine == 'dataflow':
+      args.sanitizer = 'dataflow'
+    else:
+      args.sanitizer = 'address'
+
+  if args.command == 'generate':
+    return generate(args)
+  if args.command == 'build_image':
+    return build_image(args)
+  if args.command == 'build_fuzzers':
+    return build_fuzzers(args)
+  if args.command == 'check_build':
+    return check_build(args)
+  if args.command == 'download_corpora':
+    return download_corpora(args)
+  if args.command == 'run_fuzzer':
+    return run_fuzzer(args)
+  if args.command == 'coverage':
+    return coverage(args)
+  if args.command == 'reproduce':
+    return reproduce(args)
+  if args.command == 'shell':
+    return shell(args)
+  if args.command == 'pull_images':
+    return pull_images(args)
+
+  return 0
 
 
 def is_base_image(image_name):
@@ -283,7 +257,7 @@
 
 def _get_project_dir(project_name):
   """Returns path to the project."""
-  return os.path.join(OSS_FUZZ_DIR, 'projects', project_name)
+  return os.path.join(OSSFUZZ_DIR, 'projects', project_name)
 
 
 def get_dockerfile_path(project_name):
@@ -292,47 +266,18 @@
 
 
 def _get_corpus_dir(project_name=''):
-  """Creates and returns path to /corpus directory for the given project (if
-  specified)."""
-  directory = os.path.join(BUILD_DIR, 'corpus', project_name)
-  if not os.path.exists(directory):
-    os.makedirs(directory)
-
-  return directory
+  """Returns path to /corpus directory for the given project (if specified)."""
+  return os.path.join(BUILD_DIR, 'corpus', project_name)
 
 
 def _get_output_dir(project_name=''):
-  """Creates and returns path to /out directory for the given project (if
-  specified)."""
-  directory = os.path.join(BUILD_DIR, 'out', project_name)
-  if not os.path.exists(directory):
-    os.makedirs(directory)
-
-  return directory
+  """Returns path to /out directory for the given project (if specified)."""
+  return os.path.join(BUILD_DIR, 'out', project_name)
 
 
 def _get_work_dir(project_name=''):
-  """Creates and returns path to /work directory for the given project (if
-  specified)."""
-  directory = os.path.join(BUILD_DIR, 'work', project_name)
-  if not os.path.exists(directory):
-    os.makedirs(directory)
-
-  return directory
-
-
-def _get_project_language(project_name):
-  """Returns project language."""
-  project_yaml_path = os.path.join(OSS_FUZZ_DIR, 'projects', project_name,
-                                   'project.yaml')
-  with open(project_yaml_path) as file_handle:
-    content = file_handle.read()
-    for line in content.splitlines():
-      match = PROJECT_LANGUAGE_REGEX.match(line)
-      if match:
-        return match.group(1)
-
-  return None
+  """Returns path to /work directory for the given project (if specified)."""
+  return os.path.join(BUILD_DIR, 'work', project_name)
 
 
 def _add_architecture_args(parser, choices=('x86_64', 'i386')):
@@ -349,7 +294,7 @@
 
 def _add_sanitizer_args(parser,
                         choices=('address', 'memory', 'undefined', 'coverage',
-                                 'dataflow', 'thread')):
+                                 'dataflow')):
   """Add common sanitizer args."""
   parser.add_argument(
       '--sanitizer',
@@ -398,8 +343,13 @@
 WORKDIR_REGEX = re.compile(r'\s*WORKDIR\s*([^\s]+)')
 
 
-def workdir_from_lines(lines, default='/src'):
-  """Get the WORKDIR from the given lines."""
+def _workdir_from_dockerfile(project_name):
+  """Parse WORKDIR from the Dockerfile for the given project."""
+  dockerfile_path = get_dockerfile_path(project_name)
+
+  with open(dockerfile_path) as file_handle:
+    lines = file_handle.readlines()
+
   for line in reversed(lines):  # reversed to get last WORKDIR.
     match = re.match(WORKDIR_REGEX, line)
     if match:
@@ -411,17 +361,7 @@
 
       return os.path.normpath(workdir)
 
-  return default
-
-
-def _workdir_from_dockerfile(project_name):
-  """Parse WORKDIR from the Dockerfile for the given project."""
-  dockerfile_path = get_dockerfile_path(project_name)
-
-  with open(dockerfile_path) as file_handle:
-    lines = file_handle.readlines()
-
-  return workdir_from_lines(lines, default=os.path.join('/src', project_name))
+  return os.path.join('/src', project_name)
 
 
 def docker_run(run_args, print_output=True):
@@ -505,7 +445,7 @@
   return 1
 
 
-def build_fuzzers_impl(  # pylint: disable=too-many-arguments,too-many-locals,too-many-branches
+def build_fuzzers_impl(  # pylint: disable=too-many-arguments
     project_name,
     clean,
     engine,
@@ -520,11 +460,6 @@
     return 1
 
   project_out_dir = _get_output_dir(project_name)
-  project_work_dir = _get_work_dir(project_name)
-  project_language = _get_project_language(project_name)
-  if not project_language:
-    print('WARNING: language not specified in project.yaml. Build may fail.')
-
   if clean:
     print('Cleaning existing build artifacts.')
 
@@ -535,12 +470,6 @@
         'gcr.io/oss-fuzz/%s' % project_name, '/bin/bash', '-c', 'rm -rf /out/*'
     ])
 
-    docker_run([
-        '-v',
-        '%s:/work' % project_work_dir, '-t',
-        'gcr.io/oss-fuzz/%s' % project_name, '/bin/bash', '-c', 'rm -rf /work/*'
-    ])
-
   else:
     print('Keeping existing build artifacts as-is (if any).')
   env = [
@@ -548,18 +477,16 @@
       'SANITIZER=' + sanitizer,
       'ARCHITECTURE=' + architecture,
   ]
-
-  if project_language:
-    env.append('FUZZING_LANGUAGE=' + project_language)
-
   if env_to_add:
     env += env_to_add
 
+  project_work_dir = _get_work_dir(project_name)
+
   # Copy instrumented libraries.
   if sanitizer == 'memory':
     docker_run([
         '-v',
-        '%s:/work' % project_work_dir, 'gcr.io/oss-fuzz-base/msan-libs-builder',
+        '%s:/work' % project_work_dir, 'gcr.io/oss-fuzz-base/msan-builder',
         'bash', '-c', 'cp -r /msan /work'
     ])
     env.append('MSAN_LIBS_PATH=' + '/work/msan')
@@ -567,21 +494,19 @@
   command = ['--cap-add', 'SYS_PTRACE'] + _env_to_docker_args(env)
   if source_path:
     workdir = _workdir_from_dockerfile(project_name)
-    if mount_location:
-      command += [
-          '-v',
-          '%s:%s' % (_get_absolute_path(source_path), mount_location),
-      ]
-    else:
-      if workdir == '/src':
-        print('Cannot use local checkout with "WORKDIR: /src".',
-              file=sys.stderr)
-        return 1
-
+    if workdir == '/src':
+      print('Cannot use local checkout with "WORKDIR: /src".', file=sys.stderr)
+      return 1
+    if not mount_location:
       command += [
           '-v',
           '%s:%s' % (_get_absolute_path(source_path), workdir),
       ]
+    else:
+      command += [
+          '-v',
+          '%s:%s' % (_get_absolute_path(source_path), mount_location),
+      ]
 
   command += [
       '-v',
@@ -597,14 +522,13 @@
 
   # Patch MSan builds to use instrumented shared libraries.
   if sanitizer == 'memory':
-    docker_run([
-        '-v',
-        '%s:/out' % project_out_dir, '-v',
-        '%s:/work' % project_work_dir
-    ] + _env_to_docker_args(env) + [
-        'gcr.io/oss-fuzz-base/base-sanitizer-libs-builder', 'patch_build.py',
-        '/out'
-    ])
+    docker_run(
+        [
+            '-v',
+            '%s:/out' % project_out_dir, '-v',
+            '%s:/work' % project_work_dir
+        ] + _env_to_docker_args(env) +
+        ['gcr.io/oss-fuzz-base/base-msan-builder', 'patch_build.py', '/out'])
 
   return 0
 
@@ -625,16 +549,10 @@
       not _check_fuzzer_exists(args.project_name, args.fuzzer_name)):
     return 1
 
-  fuzzing_language = _get_project_language(args.project_name)
-  if fuzzing_language is None:
-    print('WARNING: language not specified in project.yaml. Defaulting to C++.')
-    fuzzing_language = 'c++'
-
   env = [
       'FUZZING_ENGINE=' + args.engine,
       'SANITIZER=' + args.sanitizer,
       'ARCHITECTURE=' + args.architecture,
-      'FUZZING_LANGUAGE=' + fuzzing_language,
   ]
   if args.e:
     env += args.e
@@ -646,9 +564,9 @@
   ]
 
   if args.fuzzer_name:
-    run_args += ['test_one.py', args.fuzzer_name]
+    run_args += ['test_one', os.path.join('/out', args.fuzzer_name)]
   else:
-    run_args.append('test_all.py')
+    run_args.append('test_all')
 
   exit_code = docker_run(run_args)
   if exit_code == 0:
@@ -679,21 +597,21 @@
   if not os.path.exists(corpus_dir):
     os.makedirs(corpus_dir)
 
-  if not fuzz_target.startswith(project_name + '_'):
+  if not fuzz_target.startswith(project_name):
     fuzz_target = '%s_%s' % (project_name, fuzz_target)
 
   corpus_backup_url = CORPUS_BACKUP_URL_FORMAT.format(project_name=project_name,
                                                       fuzz_target=fuzz_target)
   command = ['gsutil', 'ls', corpus_backup_url]
 
-  # Don't capture stderr. We want it to print in real time, in case gsutil is
-  # asking for two-factor authentication.
-  corpus_listing = subprocess.Popen(command, stdout=subprocess.PIPE)
-  output, _ = corpus_listing.communicate()
+  corpus_listing = subprocess.Popen(command,
+                                    stdout=subprocess.PIPE,
+                                    stderr=subprocess.PIPE)
+  output, error = corpus_listing.communicate()
 
   # Some fuzz targets (e.g. new ones) may not have corpus yet, just skip those.
   if corpus_listing.returncode:
-    print('WARNING: corpus for {0} not found:\n'.format(fuzz_target),
+    print('WARNING: corpus for {0} not found:\n{1}'.format(fuzz_target, error),
           file=sys.stderr)
     return
 
@@ -750,7 +668,7 @@
 
   print('Downloading corpora for %s project to %s' %
         (args.project_name, corpus_dir))
-  thread_pool = ThreadPool()
+  thread_pool = ThreadPool(multiprocessing.cpu_count())
   return all(thread_pool.map(_download_for_single_target, fuzz_targets))
 
 
@@ -766,21 +684,12 @@
   if not check_project_exists(args.project_name):
     return 1
 
-  project_language = _get_project_language(args.project_name)
-  if project_language not in LANGUAGES_WITH_COVERAGE_SUPPORT:
-    print(
-        'ERROR: Project is written in %s, coverage for it is not supported yet.'
-        % project_language,
-        file=sys.stderr)
-    return 1
-
   if not args.no_corpus_download and not args.corpus_dir:
     if not download_corpora(args):
       return 1
 
   env = [
       'FUZZING_ENGINE=libfuzzer',
-      'FUZZING_LANGUAGE=%s' % project_language,
       'PROJECT=%s' % args.project_name,
       'SANITIZER=coverage',
       'HTTP_PORT=%s' % args.port,
@@ -789,12 +698,6 @@
 
   run_args = _env_to_docker_args(env)
 
-  if args.port:
-    run_args.extend([
-        '-p',
-        '%s:%s' % (args.port, args.port),
-    ])
-
   if args.corpus_dir:
     if not os.path.exists(args.corpus_dir):
       print('ERROR: the path provided in --corpus-dir argument does not exist',
@@ -808,6 +711,8 @@
   run_args.extend([
       '-v',
       '%s:/out' % _get_output_dir(args.project_name),
+      '-p',
+      '%s:%s' % (args.port, args.port),
       '-t',
       'gcr.io/oss-fuzz-base/base-runner',
   ])
@@ -842,28 +747,14 @@
   if args.e:
     env += args.e
 
-  run_args = _env_to_docker_args(env)
-
-  if args.corpus_dir:
-    if not os.path.exists(args.corpus_dir):
-      print('ERROR: the path provided in --corpus-dir argument does not exist',
-            file=sys.stderr)
-      return 1
-    corpus_dir = os.path.realpath(args.corpus_dir)
-    run_args.extend([
-        '-v',
-        '{corpus_dir}:/tmp/{fuzzer}_corpus'.format(corpus_dir=corpus_dir,
-                                                   fuzzer=args.fuzzer_name)
-    ])
-
-  run_args.extend([
+  run_args = _env_to_docker_args(env) + [
       '-v',
       '%s:/out' % _get_output_dir(args.project_name),
       '-t',
       'gcr.io/oss-fuzz-base/base-runner',
       'run_fuzzer',
       args.fuzzer_name,
-  ] + args.fuzzer_args)
+  ] + args.fuzzer_args
 
   return docker_run(run_args)
 
@@ -875,20 +766,14 @@
 
 
 def reproduce_impl(  # pylint: disable=too-many-arguments
-    project_name,
-    fuzzer_name,
-    valgrind,
-    env_to_add,
-    fuzzer_args,
-    testcase_path,
-    runner=docker_run,
-    err_result=1):
+    project_name, fuzzer_name, valgrind, env_to_add, fuzzer_args,
+    testcase_path):
   """Reproduces a testcase in the container."""
   if not check_project_exists(project_name):
-    return err_result
+    return 1
 
   if not _check_fuzzer_exists(project_name, fuzzer_name):
-    return err_result
+    return 1
 
   debugger = ''
   env = []
@@ -916,7 +801,7 @@
       '-runs=100',
   ] + fuzzer_args
 
-  return runner(run_args)
+  return docker_run(run_args)
 
 
 def generate(args):
@@ -972,9 +857,6 @@
       'ARCHITECTURE=' + args.architecture,
   ]
 
-  if args.project_name != 'base-runner-debug':
-    env.append('FUZZING_LANGUAGE=' + _get_project_language(args.project_name))
-
   if args.e:
     env += args.e
 
@@ -985,19 +867,12 @@
     image_project = 'oss-fuzz'
     out_dir = _get_output_dir(args.project_name)
 
-  run_args = _env_to_docker_args(env)
-  if args.source_path:
-    run_args.extend([
-        '-v',
-        '%s:%s' % (_get_absolute_path(args.source_path), '/src'),
-    ])
-
-  run_args.extend([
+  run_args = _env_to_docker_args(env) + [
       '-v',
       '%s:/out' % out_dir, '-v',
       '%s:/work' % _get_work_dir(args.project_name), '-t',
       'gcr.io/%s/%s' % (image_project, args.project_name), '/bin/bash'
-  ])
+  ]
 
   docker_run(run_args)
   return 0
diff --git a/infra/helper_test.py b/infra/helper_test.py
deleted file mode 100644
index d899a83..0000000
--- a/infra/helper_test.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Tests for helper.py"""
-
-import unittest
-from unittest import mock
-
-import helper
-
-
-class TestShell(unittest.TestCase):
-  """Tests 'shell' command."""
-
-  @mock.patch('helper.docker_run')
-  @mock.patch('helper.build_image_impl')
-  def test_base_runner_debug(self, mocked_build_image_impl, _):
-    """Tests that shell base-runner-debug works as intended."""
-    image_name = 'base-runner-debug'
-    unparsed_args = ['shell', image_name]
-    args = helper.parse_args(unparsed_args)
-    args.sanitizer = 'address'
-    result = helper.shell(args)
-    mocked_build_image_impl.assert_called_with(image_name)
-    self.assertEqual(result, 0)
diff --git a/infra/jenkins-cluster/deployment-jenkins.yaml b/infra/jenkins-cluster/deployment-jenkins.yaml
new file mode 100644
index 0000000..6ff526d
--- /dev/null
+++ b/infra/jenkins-cluster/deployment-jenkins.yaml
@@ -0,0 +1,60 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: jenkins-master
+spec:
+  replicas: 1
+  template:
+    metadata:
+      name: jenkins-master
+      labels:
+        app: jenkins-master
+    spec:
+      containers:
+      - name: jenkins
+        image: gcr.io/oss-fuzz-base/jenkins:20170726v4
+        env:
+          - name: JAVA_OPTS
+            value: "-Duser.timezone=America/Los_Angeles -Dhudson.security.csrf.requestfield=Jenkins-Crumb -Xmx16g -Djenkins.security.ApiTokenProperty.showTokenToAdmins=true"
+        ports:
+        - containerPort: 8080
+        - containerPort: 50000
+        volumeMounts:
+        - name: jenkins-home
+          mountPath: "/var/jenkins_home"
+        - name: secrets
+          mountPath: "/var/secrets"
+          readOnly: true
+        livenessProbe:
+          httpGet:
+            path: "/login"
+            port: 8080
+          initialDelaySeconds: 60
+          timeoutSeconds: 15
+        resources:
+          requests:
+            memory: "4Gi"
+            cpu: "4"
+      - name: kubectl-proxy
+        image: lachlanevenson/k8s-kubectl
+        args:
+          - "proxy"
+          - "-p"
+          - "8081"
+      volumes:
+      - name: jenkins-home
+        gcePersistentDisk:
+          pdName: jenkins-home
+          fsType: ext4
+      - name: secrets
+        secret:
+          secretName: secrets
+          items:
+            - key: build-service-account.json
+              path: build-service-account.json
+            - key: base-build-service-account.json
+              path: base-build-service-account.json
+            - key: tls-cert
+              path: cert.pem
+            - key: tls-key
+              path: cert.key
diff --git a/infra/jenkins-cluster/ingress-jenkins-https.yaml b/infra/jenkins-cluster/ingress-jenkins-https.yaml
new file mode 100644
index 0000000..396a9b6
--- /dev/null
+++ b/infra/jenkins-cluster/ingress-jenkins-https.yaml
@@ -0,0 +1,10 @@
+apiVersion: extensions/v1beta1
+kind: Ingress
+metadata:
+  name: jenkins-https-ingress
+spec:
+  backend:
+    serviceName: jenkins-master
+    servicePort: 8080
+  tls:
+    - secretName: tls
diff --git a/infra/jenkins-cluster/server/Dockerfile b/infra/jenkins-cluster/server/Dockerfile
new file mode 100644
index 0000000..c164a0c
--- /dev/null
+++ b/infra/jenkins-cluster/server/Dockerfile
@@ -0,0 +1,19 @@
+FROM jenkins/jenkins:lts
+USER root
+
+RUN mkdir /var/secrets
+RUN apt-get -y update && apt-get -y upgrade && apt-get -y install python-dev virtualenv python-pip build-essential
+
+WORKDIR /
+RUN wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.zip
+RUN unzip google-cloud-sdk.zip
+
+RUN /google-cloud-sdk/install.sh --usage-reporting=false --bash-completion=false --disable-installation-options
+RUN /google-cloud-sdk/bin/gcloud -q components install alpha beta
+RUN /google-cloud-sdk/bin/gcloud -q components update
+
+RUN chown -R jenkins:jenkins /google-cloud-sdk
+
+USER jenkins
+ENV JENKINS_OPTS --httpPort=8080 --httpsPort=8082 --httpsCertificate=/var/secrets/cert.pem --httpsPrivateKey=/var/secrets/cert.key
+ENV PATH=$PATH:/google-cloud-sdk/bin
diff --git a/infra/jenkins-cluster/service-jenkins-master.yaml b/infra/jenkins-cluster/service-jenkins-master.yaml
new file mode 100644
index 0000000..f68dc2c
--- /dev/null
+++ b/infra/jenkins-cluster/service-jenkins-master.yaml
@@ -0,0 +1,16 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: jenkins-master
+  labels:
+    app: jenkins-master
+spec:
+  type: NodePort
+  selector:
+    app: jenkins-master
+  ports:
+  - name: agent
+    port: 50000
+  - name: http
+    port: 8080
+    targetPort: 8080
diff --git a/infra/presubmit.py b/infra/presubmit.py
index 90b4f90..7be16a8 100755
--- a/infra/presubmit.py
+++ b/infra/presubmit.py
@@ -20,7 +20,6 @@
 import os
 import subprocess
 import sys
-import unittest
 import yaml
 
 _SRC_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
@@ -75,43 +74,29 @@
   SECTIONS_AND_CONSTANTS = {
       'sanitizers': {'address', 'none', 'memory', 'undefined', 'dataflow'},
       'architectures': {'i386', 'x86_64'},
-      'fuzzing_engines': {'afl', 'libfuzzer', 'honggfuzz', 'dataflow', 'none'},
+      'fuzzing_engines': {'afl', 'libfuzzer', 'honggfuzz', 'dataflow'},
   }
 
   # Note: this list must be updated when we allow new sections.
   VALID_SECTION_NAMES = [
       'architectures',
       'auto_ccs',
-      'blackbox',
-      'builds_per_day',
       'coverage_extra_args',
       'disabled',
       'fuzzing_engines',
-      'help_url',
       'homepage',
-      'language',
-      'labels',  # For internal use only, hard to lint as it uses fuzzer names.
-      'main_repo',
       'primary_contact',
-      'run_tests',
       'sanitizers',
-      'selective_unpack',
       'vendor_ccs',
       'view_restrictions',
+      'language',
   ]
 
-  LANGUAGES_SUPPORTED = [
-      'c',
-      'c++',
-      'go',
-      'jvm',
-      'python',
-      'rust',
-  ]
+  LANGUAGES_SUPPORTED = ['c', 'cpp', 'go', 'rust', 'python']
 
   # Note that some projects like boost only have auto-ccs. However, forgetting
   # primary contact is probably a mistake.
-  REQUIRED_SECTIONS = ['primary_contact', 'main_repo']
+  REQUIRED_SECTIONS = ['primary_contact']
 
   def __init__(self, filename):
     self.filename = filename
@@ -195,20 +180,20 @@
     if auto_ccs:
       email_addresses.extend(auto_ccs)
 
-    # Check that email addresses seem normal.
+    # Sanity check them.
     for email_address in email_addresses:
       if '@' not in email_address or '.' not in email_address:
         self.error(email_address + ' is an invalid email address.')
 
   def check_valid_language(self):
-    """Check that the language is specified and valid."""
+    """Check that the language specified is valid."""
     language = self.data.get('language')
     if not language:
-      self.error('Missing "language" attribute in project.yaml.')
-    elif language not in self.LANGUAGES_SUPPORTED:
-      self.error(
-          '"language: {language}" is not supported ({supported}).'.format(
-              language=language, supported=self.LANGUAGES_SUPPORTED))
+      return
+
+    if language not in self.LANGUAGES_SUPPORTED:
+      self.error('{language} is not supported ({supported}).'.format(
+          language=language, supported=self.LANGUAGES_SUPPORTED))
 
 
 def _check_one_project_yaml(project_yaml_filename):
@@ -288,15 +273,21 @@
   return 1
 
 
-def is_nonfuzzer_python(path):
+def is_python(path):
   """Returns True if |path| ends in .py."""
-  return os.path.splitext(path)[1] == '.py' and '/projects/' not in path
+  return os.path.splitext(path)[1] == '.py'
 
 
-def lint(_=None):
-  """Run python's linter on infra. Return False if it fails linting."""
+def lint(paths):
+  """Run python's linter on |paths| if it is a python file. Return False if it
+  fails linting."""
+  paths = [path for path in paths if is_python(path)]
+  if not paths:
+    return True
 
-  command = ['python3', '-m', 'pylint', '-j', '0', 'infra']
+  command = ['python3', '-m', 'pylint', '-j', '0']
+  command.extend(paths)
+
   returncode = subprocess.run(command, check=False).returncode
   return returncode == 0
 
@@ -305,7 +296,7 @@
   """Do yapf on |path| if it is Python file. Only validates format if
   |validate| otherwise, formats the file. Returns False if validation
   or formatting fails."""
-  paths = [path for path in paths if is_nonfuzzer_python(path)]
+  paths = [path for path in paths if is_python(path)]
   if not paths:
     return True
 
@@ -319,127 +310,43 @@
 
 def get_changed_files():
   """Return a list of absolute paths of files changed in this git branch."""
-  branch_commit_hash = subprocess.check_output(
-      ['git', 'merge-base', 'FETCH_HEAD', 'origin/HEAD']).strip().decode()
-
-  diff_commands = [
-      # Return list of modified files in the commits on this branch.
-      ['git', 'diff', '--name-only', branch_commit_hash + '..'],
-      # Return list of modified files from uncommitted changes.
-      ['git', 'diff', '--name-only']
+  # FIXME: This doesn't work if branch is behind master.
+  diff_command = ['git', 'diff', '--name-only', 'FETCH_HEAD']
+  return [
+      os.path.abspath(path)
+      for path in subprocess.check_output(diff_command).decode().splitlines()
+      if os.path.isfile(path)
   ]
 
-  changed_files = set()
-  for command in diff_commands:
-    file_paths = subprocess.check_output(command).decode().splitlines()
-    for file_path in file_paths:
-      if not os.path.isfile(file_path):
-        continue
-      changed_files.add(file_path)
-  print('Changed files: {changed_files}'.format(
-      changed_files=' '.join(changed_files)))
-  return [os.path.abspath(f) for f in changed_files]
-
-
-def run_build_tests():
-  """Runs build tests because they can't be run in parallel."""
-  suite_list = [
-      unittest.TestLoader().discover(os.path.join(_SRC_ROOT, 'infra', 'build'),
-                                     pattern='*_test.py'),
-  ]
-  suite = unittest.TestSuite(suite_list)
-  print('Running build tests.')
-  result = unittest.TextTestRunner().run(suite)
-  return not result.failures and not result.errors
-
-
-def run_nonbuild_tests(parallel):
-  """Run all tests but build tests. Do it in parallel if |parallel|. The reason
-  why we exclude build tests is because they use an emulator that prevents them
-  from being used in parallel."""
-  # We look for all project directories because otherwise pytest won't run tests
-  # that are not in valid modules (e.g. "base-images").
-  relevant_dirs = set()
-  all_files = get_all_files()
-  for file_path in all_files:
-    directory = os.path.dirname(file_path)
-    relevant_dirs.add(directory)
-
-  # Use ignore-glob because ignore doesn't seem to work properly with the way we
-  # pass directories to pytest.
-  command = [
-      'pytest',
-      # Test errors with error: "ModuleNotFoundError: No module named 'apt'.
-      '--ignore-glob=infra/base-images/base-sanitizer-libs-builder/*',
-      '--ignore-glob=infra/build/*',
-  ]
-  if parallel:
-    command.extend(['-n', 'auto'])
-  command += list(relevant_dirs)
-  print('Running non-build tests.')
-  return subprocess.run(command, check=False).returncode == 0
-
-
-def run_tests(_=None, parallel=False):
-  """Runs all unit tests."""
-  nonbuild_success = run_nonbuild_tests(parallel)
-  build_success = run_build_tests()
-  return nonbuild_success and build_success
-
-
-def get_all_files():
-  """Returns a list of absolute paths of files in this repo."""
-  get_all_files_command = ['git', 'ls-files']
-  output = subprocess.check_output(get_all_files_command).decode().splitlines()
-  return [os.path.abspath(path) for path in output if os.path.isfile(path)]
-
 
 def main():
   """Check changes on a branch for common issues before submitting."""
   # Get program arguments.
   parser = argparse.ArgumentParser(description='Presubmit script for oss-fuzz.')
   parser.add_argument('command',
-                      choices=['format', 'lint', 'license', 'infra-tests'],
+                      choices=['format', 'lint', 'license'],
                       nargs='?')
-  parser.add_argument('-a',
-                      '--all-files',
-                      action='store_true',
-                      help='Run presubmit check(s) on all files',
-                      default=False)
-  parser.add_argument('-p',
-                      '--parallel',
-                      action='store_true',
-                      help='Run tests in parallel.',
-                      default=False)
   args = parser.parse_args()
 
-  if args.all_files:
-    relevant_files = get_all_files()
-  else:
-    relevant_files = get_changed_files()
+  changed_files = get_changed_files()
 
   os.chdir(_SRC_ROOT)
 
   # Do one specific check if the user asked for it.
   if args.command == 'format':
-    success = yapf(relevant_files, False)
+    success = yapf(changed_files, False)
     return bool_to_returncode(success)
 
   if args.command == 'lint':
-    success = lint()
+    success = lint(changed_files)
     return bool_to_returncode(success)
 
   if args.command == 'license':
-    success = check_license(relevant_files)
+    success = check_license(changed_files)
     return bool_to_returncode(success)
 
-  if args.command == 'infra-tests':
-    success = run_tests(relevant_files, parallel=args.parallel)
-    return bool_to_returncode(success)
-
-  # Do all the checks (but no tests).
-  success = do_checks(relevant_files)
-
+  # Otherwise, do all of them.
+  success = do_checks(changed_files)
   return bool_to_returncode(success)
 
 
diff --git a/infra/pytest.ini b/infra/pytest.ini
deleted file mode 100644
index d9bb373..0000000
--- a/infra/pytest.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[pytest]
-python_files = *_test.py
\ No newline at end of file
diff --git a/infra/repo_manager.py b/infra/repo_manager.py
index a0b97b3..cf98ab9 100644
--- a/infra/repo_manager.py
+++ b/infra/repo_manager.py
@@ -21,8 +21,6 @@
     r_man =  RepoManager('https://github.com/google/oss-fuzz.git')
     r_man.checkout('5668cc422c2c92d38a370545d3591039fb5bb8d4')
 """
-import datetime
-import logging
 import os
 import shutil
 
@@ -30,10 +28,45 @@
 
 
 class RepoManager:
-  """Repo manager."""
+  """Class to manage git repos from python.
 
-  def __init__(self, repo_dir):
-    self.repo_dir = repo_dir
+  Attributes:
+    repo_url: The location of the git repo.
+    base_dir: The location of where the repo clone is stored locally.
+    repo_name: The name of the GitHub project.
+    repo_dir: The location of the main repo.
+  """
+
+  def __init__(self, repo_url, base_dir, repo_name=None):
+    """Constructs a repo manager class.
+
+    Args:
+      repo_url: The github url needed to clone.
+      base_dir: The full file-path where the git repo is located.
+      repo_name: The name of the directory the repo is cloned to.
+    """
+    self.repo_url = repo_url
+    self.base_dir = base_dir
+    if repo_name:
+      self.repo_name = repo_name
+    else:
+      self.repo_name = os.path.basename(self.repo_url).strip('.git')
+    self.repo_dir = os.path.join(self.base_dir, self.repo_name)
+    self._clone()
+
+  def _clone(self):
+    """Creates a clone of the repo in the specified directory.
+
+      Raises:
+        ValueError: when the repo is not able to be cloned.
+    """
+    if not os.path.exists(self.base_dir):
+      os.makedirs(self.base_dir)
+    self.remove_repo()
+    out, err = utils.execute(['git', 'clone', self.repo_url, self.repo_name],
+                             location=self.base_dir)
+    if not self._is_git_repo():
+      raise ValueError('%s is not a git repo' % self.repo_url)
 
   def _is_git_repo(self):
     """Test if the current repo dir is a git repo or not.
@@ -44,20 +77,6 @@
     git_path = os.path.join(self.repo_dir, '.git')
     return os.path.isdir(git_path)
 
-  def git(self, cmd, check_result=False):
-    """Run a git command.
-
-    Args:
-      command: The git command as a list to be run.
-      check_result: Should an exception be thrown on failed command.
-
-    Returns:
-      stdout, stderr, error code.
-    """
-    return utils.execute(['git'] + cmd,
-                         location=self.repo_dir,
-                         check_result=check_result)
-
   def commit_exists(self, commit):
     """Checks to see if a commit exists in the project repo.
 
@@ -70,122 +89,61 @@
     if not commit.rstrip():
       return False
 
-    _, _, err_code = self.git(['cat-file', '-e', commit])
+    _, err_code = utils.execute(['git', 'cat-file', '-e', commit],
+                                self.repo_dir)
     return not err_code
 
-  def commit_date(self, commit):
-    """Get the date of a commit.
-
-    Args:
-      commit: The commit hash.
-
-    Returns:
-      A datetime representing the date of the commit.
-    """
-    out, _, _ = self.git(['show', '-s', '--format=%ct', commit],
-                         check_result=True)
-    return datetime.datetime.fromtimestamp(int(out), tz=datetime.timezone.utc)
-
-  def get_git_diff(self, base='origin...'):
-    """Gets a list of files that have changed from the repo head.
-
-    Returns:
-      A list of changed file paths or None on Error.
-    """
-    self.fetch_unshallow()
-    # Add '--' so that git knows we aren't talking about files.
-    command = ['diff', '--name-only', base, '--']
-    out, err_msg, err_code = self.git(command)
-    if err_code:
-      logging.error('Git diff failed with error message %s.', err_msg)
-      return None
-    if not out:
-      logging.error('No diff was found.')
-      return None
-    return [line for line in out.splitlines() if line]
-
   def get_current_commit(self):
     """Gets the current commit SHA of the repo.
 
     Returns:
       The current active commit SHA.
     """
-    out, _, _ = self.git(['rev-parse', 'HEAD'], check_result=True)
-    return out.strip()
+    out, _ = utils.execute(['git', 'rev-parse', 'HEAD'],
+                           self.repo_dir,
+                           check_result=True)
+    return out.strip('\n')
 
-  def get_parent(self, commit, count):
-    """Gets the count'th parent of the given commit.
-
-    Returns:
-      The parent commit SHA.
-    """
-    self.fetch_unshallow()
-    out, _, err_code = self.git(['rev-parse', commit + '~' + str(count)],
-                                check_result=False)
-    if err_code:
-      return None
-
-    return out.strip()
-
-  def fetch_all_remotes(self):
-    """Fetch all remotes for checkouts that track a single branch."""
-    self.git([
-        'config', 'remote.origin.fetch', '+refs/heads/*:refs/remotes/origin/*'
-    ],
-             check_result=True)
-    self.git(['remote', 'update'], check_result=True)
-
-  def get_commit_list(self, newest_commit, oldest_commit=None):
+  def get_commit_list(self, old_commit, new_commit):
     """Gets the list of commits(inclusive) between the old and new commits.
 
     Args:
-      newest_commit: The newest commit to be in the list.
-      oldest_commit: The (optional) oldest commit to be in the list.
+      old_commit: The oldest commit to be in the list.
+      new_commit: The newest commit to be in the list.
 
     Returns:
       The list of commit SHAs from newest to oldest.
 
     Raises:
-      ValueError: When either the oldest or newest commit does not exist.
+      ValueError: When either the old or new commit does not exist.
       RuntimeError: When there is an error getting the commit list.
     """
-    self.fetch_unshallow()
-    if oldest_commit and not self.commit_exists(oldest_commit):
-      raise ValueError('The oldest commit %s does not exist' % oldest_commit)
-    if not self.commit_exists(newest_commit):
-      raise ValueError('The newest commit %s does not exist' % newest_commit)
-    if oldest_commit == newest_commit:
-      return [oldest_commit]
 
-    if oldest_commit:
-      commit_range = oldest_commit + '..' + newest_commit
-    else:
-      commit_range = newest_commit
-
-    out, _, err_code = self.git(['rev-list', commit_range])
+    if not self.commit_exists(old_commit):
+      raise ValueError('The old commit %s does not exist' % old_commit)
+    if not self.commit_exists(new_commit):
+      raise ValueError('The new commit %s does not exist' % new_commit)
+    if old_commit == new_commit:
+      return [old_commit]
+    out, err_code = utils.execute(
+        ['git', 'rev-list', old_commit + '..' + new_commit], self.repo_dir)
     commits = out.split('\n')
     commits = [commit for commit in commits if commit]
     if err_code or not commits:
       raise RuntimeError('Error getting commit list between %s and %s ' %
-                         (oldest_commit, newest_commit))
+                         (old_commit, new_commit))
 
     # Make sure result is inclusive
-    if oldest_commit:
-      commits.append(oldest_commit)
+    commits.append(old_commit)
     return commits
 
-  def fetch_branch(self, branch):
-    """Fetches a remote branch from origin."""
-    return self.git(
-        ['fetch', 'origin', '{branch}:{branch}'.format(branch=branch)])
-
   def fetch_unshallow(self):
     """Gets the current git repository history."""
-    shallow_file = os.path.join(self.repo_dir, '.git', 'shallow')
-    if os.path.exists(shallow_file):
-      _, err, err_code = self.git(['fetch', '--unshallow'], check_result=False)
-      if err_code:
-        logging.error('Unshallow returned non-zero code: %s', err)
+    git_path = os.path.join(self.repo_dir, '.git', 'shallow')
+    if os.path.exists(git_path):
+      utils.execute(['git', 'fetch', '--unshallow'],
+                    self.repo_dir,
+                    check_result=True)
 
   def checkout_pr(self, pr_ref):
     """Checks out a remote pull request.
@@ -194,10 +152,14 @@
       pr_ref: The pull request reference to be checked out.
     """
     self.fetch_unshallow()
-    self.git(['fetch', 'origin', pr_ref], check_result=True)
-    self.git(['checkout', '-f', 'FETCH_HEAD'], check_result=True)
+    utils.execute(['git', 'fetch', 'origin', pr_ref],
+                  self.repo_dir,
+                  check_result=True)
+    utils.execute(['git', 'checkout', '-f', 'FETCH_HEAD'],
+                  self.repo_dir,
+                  check_result=True)
 
-  def checkout_commit(self, commit, clean=True):
+  def checkout_commit(self, commit):
     """Checks out a specific commit from the repo.
 
     Args:
@@ -210,43 +172,14 @@
     self.fetch_unshallow()
     if not self.commit_exists(commit):
       raise ValueError('Commit %s does not exist in current branch' % commit)
-    self.git(['checkout', '-f', commit], check_result=True)
-    if clean:
-      self.git(['clean', '-fxd'], check_result=True)
+    utils.execute(['git', 'checkout', '-f', commit],
+                  self.repo_dir,
+                  check_result=True)
+    utils.execute(['git', 'clean', '-fxd'], self.repo_dir, check_result=True)
     if self.get_current_commit() != commit:
       raise RuntimeError('Error checking out commit %s' % commit)
 
   def remove_repo(self):
-    """Removes the git repo from disk."""
+    """Attempts to remove the git repo. """
     if os.path.isdir(self.repo_dir):
       shutil.rmtree(self.repo_dir)
-
-
-def clone_repo_and_get_manager(repo_url, base_dir, repo_name=None):
-  """Clones a repo and constructs a repo manager class.
-
-    Args:
-      repo_url: The github url needed to clone.
-      base_dir: The full file-path where the git repo is located.
-      repo_name: The name of the directory the repo is cloned to.
-    """
-  if repo_name is None:
-    repo_name = os.path.basename(repo_url).replace('.git', '')
-  repo_dir = os.path.join(base_dir, repo_name)
-  manager = RepoManager(repo_dir)
-
-  if not os.path.exists(repo_dir):
-    _clone(repo_url, base_dir, repo_name)
-
-  return manager
-
-
-def _clone(repo_url, base_dir, repo_name):
-  """Creates a clone of the repo in the specified directory.
-
-     Raises:
-       ValueError: when the repo is not able to be cloned.
-  """
-  utils.execute(['git', 'clone', repo_url, repo_name],
-                location=base_dir,
-                check_result=True)
diff --git a/infra/repo_manager_test.py b/infra/repo_manager_test.py
index 36a773c..f489b2d 100644
--- a/infra/repo_manager_test.py
+++ b/infra/repo_manager_test.py
@@ -9,87 +9,79 @@
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
+# See the License for the specific language governing perepo_managerissions and
 # limitations under the License.
 """Test the functionality of the RepoManager class."""
 
-import contextlib
 import os
-import tempfile
 import unittest
-from unittest import mock
+import tempfile
 
 import repo_manager
-import utils
 
-# pylint: disable=protected-access
-
-OSS_FUZZ_REPO_URL = 'https://github.com/google/oss-fuzz'
+OSS_FUZZ_REPO = 'https://github.com/google/oss-fuzz'
 
 
-@contextlib.contextmanager
-def get_oss_fuzz_repo():
-  """Clones a temporary copy of the OSS-Fuzz repo. Returns the path to the
-  repo."""
-  repo_name = 'oss-fuzz'
-  with tempfile.TemporaryDirectory() as tmp_dir:
-    repo_manager._clone(OSS_FUZZ_REPO_URL, tmp_dir, repo_name)
-    yield os.path.join(tmp_dir, repo_name)
+class TestRepoManager(unittest.TestCase):
+  """Class to test the functionality of the RepoManager class."""
 
 
-class CloneTest(unittest.TestCase):
-  """Tests the _clone function."""
+class RepoManagerCloneUnitTests(unittest.TestCase):
+  """Class to test the functionality of clone of the RepoManager class."""
 
-  @unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                   'INTEGRATION_TESTS=1 not set')
-  def test_clone_valid_repo_integration(self):
-    """Integration test that tests the correct location of the git repo."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      git_path = os.path.join(oss_fuzz_repo, '.git')
+  def test_clone_valid_repo(self):
+    """Tests the correct location of the git repo."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      test_repo_manager = repo_manager.RepoManager(OSS_FUZZ_REPO, tmp_dir)
+      git_path = os.path.join(test_repo_manager.base_dir,
+                              test_repo_manager.repo_name, '.git')
       self.assertTrue(os.path.isdir(git_path))
+      test_repo_manager.remove_repo()
 
   def test_clone_invalid_repo(self):
-    """Tests that cloning an invalid repo will fail."""
+    """Test that constructing RepoManager with an invalid repo will fail."""
     with tempfile.TemporaryDirectory() as tmp_dir:
-      with self.assertRaises(RuntimeError):
-        repo_manager._clone('https://github.com/oss-fuzz-not-real.git', tmp_dir,
-                            'oss-fuzz')
+      with self.assertRaises(ValueError):
+        repo_manager.RepoManager(' ', tmp_dir)
+      with self.assertRaises(ValueError):
+        repo_manager.RepoManager('not_a_valid_repo', tmp_dir)
+      with self.assertRaises(ValueError):
+        repo_manager.RepoManager('https://github.com/oss-fuzz-not-real.git',
+                                 tmp_dir)
 
 
-@unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                 'INTEGRATION_TESTS=1 not set')
-class RepoManagerCheckoutTest(unittest.TestCase):
-  """Tests the checkout functionality of RepoManager."""
+class RepoManagerCheckoutUnitTests(unittest.TestCase):
+  """Class to test the functionality of checkout of the RepoManager class."""
 
   def test_checkout_valid_commit(self):
     """Tests that the git checkout command works."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      repo_man = repo_manager.RepoManager(oss_fuzz_repo)
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      test_repo_manager = repo_manager.RepoManager(OSS_FUZZ_REPO, tmp_dir)
       commit_to_test = '04ea24ee15bbe46a19e5da6c5f022a2ffdfbdb3b'
-      repo_man.checkout_commit(commit_to_test)
-      self.assertEqual(commit_to_test, repo_man.get_current_commit())
+      test_repo_manager.checkout_commit(commit_to_test)
+      self.assertEqual(commit_to_test, test_repo_manager.get_current_commit())
 
   def test_checkout_invalid_commit(self):
     """Tests that the git checkout invalid commit fails."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      repo_man = repo_manager.RepoManager(oss_fuzz_repo)
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      test_repo_manager = repo_manager.RepoManager(OSS_FUZZ_REPO, tmp_dir)
       with self.assertRaises(ValueError):
-        repo_man.checkout_commit(' ')
+        test_repo_manager.checkout_commit(' ')
       with self.assertRaises(ValueError):
-        repo_man.checkout_commit('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
+        test_repo_manager.checkout_commit(
+            'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
       with self.assertRaises(ValueError):
-        repo_man.checkout_commit('not-a-valid-commit')
+        test_repo_manager.checkout_commit('not-a-valid-commit')
 
 
-@unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                 'INTEGRATION_TESTS=1 not set')
-class RepoManagerGetCommitListTest(unittest.TestCase):
-  """Tests the get_commit_list method of RepoManager."""
+class RepoManagerGetCommitListUnitTests(unittest.TestCase):
+  """Class to test the functionality of get commit list in the
+   RepoManager class."""
 
   def test_get_valid_commit_list(self):
     """Tests an accurate commit list can be retrieved from the repo manager."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      repo_man = repo_manager.RepoManager(oss_fuzz_repo)
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      test_repo_manager = repo_manager.RepoManager(OSS_FUZZ_REPO, tmp_dir)
       old_commit = '04ea24ee15bbe46a19e5da6c5f022a2ffdfbdb3b'
       new_commit = 'fa662173bfeb3ba08d2e84cefc363be11e6c8463'
       commit_list = [
@@ -98,88 +90,47 @@
           '97dee00a3c4ce95071c3e061592f5fd577dea886',
           '04ea24ee15bbe46a19e5da6c5f022a2ffdfbdb3b'
       ]
-      result_list = repo_man.get_commit_list(new_commit, old_commit)
+      result_list = test_repo_manager.get_commit_list(old_commit, new_commit)
       self.assertListEqual(commit_list, result_list)
 
-  def test_get_invalid_commit_list(self):
-    """Tests that the proper errors are thrown when invalid commits are
-    passed to get_commit_list."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      repo_man = repo_manager.RepoManager(oss_fuzz_repo)
+  def test_invalid_commit_list(self):
+    """Tests that the propper Errors are thrown when invalid commits are
+    passed."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
       old_commit = '04ea24ee15bbe46a19e5da6c5f022a2ffdfbdb3b'
       new_commit = 'fa662173bfeb3ba08d2e84cefc363be11e6c8463'
+      test_repo_manager = repo_manager.RepoManager(OSS_FUZZ_REPO, tmp_dir)
       with self.assertRaises(ValueError):
-        repo_man.get_commit_list('fakecommit', new_commit)
+        test_repo_manager.get_commit_list('fakecommit', new_commit)
       with self.assertRaises(ValueError):
-        repo_man.get_commit_list(new_commit, 'fakecommit')
+        test_repo_manager.get_commit_list(new_commit, 'fakecommit')
       with self.assertRaises(RuntimeError):
-        repo_man.get_commit_list(old_commit, new_commit)  # pylint: disable=arguments-out-of-order
+        # pylint: disable=arguments-out-of-order
+        test_repo_manager.get_commit_list(new_commit, old_commit)
 
 
-@unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                 'INTEGRATION_TESTS=1 not set')
-class GitDiffTest(unittest.TestCase):
-  """Tests get_git_diff."""
+class RepoManagerCheckoutPullRequestUnitTests(unittest.TestCase):
+  """Class to test the functionality of checkout_pr of the RepoManager class."""
 
-  def test_diff_exists(self):
-    """Tests that a real diff is returned when a valid repo manager exists."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      repo_man = repo_manager.RepoManager(oss_fuzz_repo)
-      with mock.patch.object(utils,
-                             'execute',
-                             return_value=('test.py\ndiff.py', None, 0)):
-        diff = repo_man.get_git_diff()
-        self.assertCountEqual(diff, ['test.py', 'diff.py'])
-
-  def test_diff_empty(self):
-    """Tests that None is returned when there is no difference between repos."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      repo_man = repo_manager.RepoManager(oss_fuzz_repo)
-      with mock.patch.object(utils, 'execute', return_value=('', None, 0)):
-        diff = repo_man.get_git_diff()
-        self.assertIsNone(diff)
-
-  def test_error_on_command(self):
-    """Tests that None is returned when the command errors out."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      repo_man = repo_manager.RepoManager(oss_fuzz_repo)
-      with mock.patch.object(utils,
-                             'execute',
-                             return_value=('', 'Test error.', 1)):
-        diff = repo_man.get_git_diff()
-        self.assertIsNone(diff)
-
-  def test_diff_no_change(self):
-    """Tests that None is returned when there is no difference between repos."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      repo_man = repo_manager.RepoManager(oss_fuzz_repo)
-      diff = repo_man.get_git_diff()
-      self.assertIsNone(diff)
-
-
-@unittest.skipIf(not os.getenv('INTEGRATION_TESTS'),
-                 'INTEGRATION_TESTS=1 not set')
-class CheckoutPrIntegrationTest(unittest.TestCase):
-  """Does Integration tests on the checkout_pr method of RepoManager."""
-
-  def test_pull_request_exists(self):
-    """Tests that a diff is returned when a valid PR is checked out."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      repo_man = repo_manager.RepoManager(oss_fuzz_repo)
-      repo_man.checkout_pr('refs/pull/3415/merge')
-      diff = repo_man.get_git_diff()
-      self.assertCountEqual(diff, ['README.md'])
+  def test_checkout_valid_pull_request(self):
+    """Tests that the git checkout pull request works."""
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      test_repo_manager = repo_manager.RepoManager(OSS_FUZZ_REPO, tmp_dir)
+      test_repo_manager.checkout_pr('refs/pull/3310/merge')
+      self.assertEqual(test_repo_manager.get_current_commit(),
+                       'ff00c1685ccf32f729cf6c834e641223ce6262e4')
 
   def test_checkout_invalid_pull_request(self):
     """Tests that the git checkout invalid pull request fails."""
-    with get_oss_fuzz_repo() as oss_fuzz_repo:
-      repo_man = repo_manager.RepoManager(oss_fuzz_repo)
+    with tempfile.TemporaryDirectory() as tmp_dir:
+      test_repo_manager = repo_manager.RepoManager(OSS_FUZZ_REPO, tmp_dir)
       with self.assertRaises(RuntimeError):
-        repo_man.checkout_pr(' ')
+        test_repo_manager.checkout_pr(' ')
       with self.assertRaises(RuntimeError):
-        repo_man.checkout_pr('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
+        test_repo_manager.checkout_pr(
+            'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
       with self.assertRaises(RuntimeError):
-        repo_man.checkout_pr('not/a/valid/pr')
+        test_repo_manager.checkout_pr('not/a/valid/pr')
 
 
 if __name__ == '__main__':
diff --git a/infra/retry.py b/infra/retry.py
deleted file mode 100644
index 1a94180..0000000
--- a/infra/retry.py
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Retry decorator. Copied from ClusterFuzz source."""
-
-import functools
-import inspect
-import logging
-import sys
-import time
-
-# pylint: disable=too-many-arguments,broad-except
-
-
-def sleep(seconds):
-  """Invoke time.sleep. This is to avoid the flakiness of time.sleep. See:
-    crbug.com/770375"""
-  time.sleep(seconds)
-
-
-def get_delay(num_try, delay, backoff):
-  """Compute backoff delay."""
-  return delay * (backoff**(num_try - 1))
-
-
-def wrap(retries,
-         delay,
-         backoff=2,
-         exception_type=Exception,
-         retry_on_false=False):
-  """Retry decorator for a function."""
-
-  assert delay > 0
-  assert backoff >= 1
-  assert retries >= 0
-
-  def decorator(func):
-    """Decorator for the given function."""
-    tries = retries + 1
-    is_generator = inspect.isgeneratorfunction(func)
-    function_with_type = func.__qualname__
-    if is_generator:
-      function_with_type += ' (generator)'
-
-    def handle_retry(num_try, exception=None):
-      """Handle retry."""
-      if (exception is None or
-          isinstance(exception, exception_type)) and num_try < tries:
-        logging.log('Retrying on %s failed with %s. Retrying again.',
-                    function_with_type,
-                    sys.exc_info()[1])
-        sleep(get_delay(num_try, delay, backoff))
-        return True
-
-      logging.error('Retrying on %s failed with %s. Raise.', function_with_type,
-                    sys.exc_info()[1])
-      return False
-
-    @functools.wraps(func)
-    def _wrapper(*args, **kwargs):
-      """Regular function wrapper."""
-      for num_try in range(1, tries + 1):
-        try:
-          result = func(*args, **kwargs)
-          if retry_on_false and not result:
-            if not handle_retry(num_try):
-              return result
-
-            continue
-          return result
-        except Exception as error:
-          if not handle_retry(num_try, exception=error):
-            raise
-
-    @functools.wraps(func)
-    def _generator_wrapper(*args, **kwargs):
-      """Generator function wrapper."""
-      # This argument is not applicable for generator functions.
-      assert not retry_on_false
-      already_yielded_element_count = 0
-      for num_try in range(1, tries + 1):
-        try:
-          for index, result in enumerate(func(*args, **kwargs)):
-            if index >= already_yielded_element_count:
-              yield result
-              already_yielded_element_count += 1
-          break
-        except Exception as error:
-          if not handle_retry(num_try, exception=error):
-            raise
-
-    if is_generator:
-      return _generator_wrapper
-    return _wrapper
-
-  return decorator
diff --git a/infra/run_fuzzers.Dockerfile b/infra/run_fuzzers.Dockerfile
deleted file mode 100644
index b00bb12..0000000
--- a/infra/run_fuzzers.Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-# Docker image to run the CIFuzz action run_fuzzers in.
-
-FROM gcr.io/oss-fuzz-base/cifuzz-base
-
-# Python file to execute when the docker container starts up.
-# We can't use the env var $OSS_FUZZ_ROOT here. Since it's a constant env var,
-# just expand to '/opt/oss-fuzz'.
-ENTRYPOINT ["python3", "/opt/oss-fuzz/infra/cifuzz/run_fuzzers_entrypoint.py"]
-
-# Copy infra source code.
-ADD . ${OSS_FUZZ_ROOT}/infra
\ No newline at end of file
diff --git a/infra/templates.py b/infra/templates.py
index f16da92..6065ebd 100755
--- a/infra/templates.py
+++ b/infra/templates.py
@@ -13,17 +13,14 @@
 # limitations under the License.
 #
 ################################################################################
-"""Templates for OSS-Fuzz project files."""
 
 PROJECT_YAML_TEMPLATE = """\
 homepage: "<your_project_homepage>"
-language: <programming_language>  # Example values: c, c++, go, rust.
 primary_contact: "<primary_contact_email>"
-main_repo: "https://path/to/main/repo.git"
 """
 
 DOCKER_TEMPLATE = """\
-# Copyright %(year)d Google LLC
+# Copyright %(year)d Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -40,6 +37,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER your@email.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 <git_url> %(project_name)s     # or use other version control
 WORKDIR %(project_name)s
@@ -48,7 +46,7 @@
 
 BUILD_TEMPLATE = """\
 #!/bin/bash -eu
-# Copyright %(year)d Google LLC
+# Copyright %(year)d Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/infra/test_helpers.py b/infra/test_helpers.py
deleted file mode 100644
index be0b1b8..0000000
--- a/infra/test_helpers.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Contains convenient helpers for writing tests."""
-
-import contextlib
-import os
-import shutil
-import tempfile
-from unittest import mock
-
-
-def patch_environ(testcase_obj, env=None):
-  """Patch environment."""
-  if env is None:
-    env = {}
-
-  patcher = mock.patch.dict(os.environ, env)
-  testcase_obj.addCleanup(patcher.stop)
-  patcher.start()
-
-
-@contextlib.contextmanager
-def temp_dir_copy(directory):
-  """Context manager that yields a temporary copy of |directory|."""
-  with tempfile.TemporaryDirectory() as temp_dir:
-    temp_copy_path = os.path.join(temp_dir, os.path.basename(directory))
-    shutil.copytree(directory, temp_copy_path)
-    yield temp_copy_path
diff --git a/infra/test_repos.py b/infra/test_repos.py
index fb12fbe..6100369 100644
--- a/infra/test_repos.py
+++ b/infra/test_repos.py
@@ -25,22 +25,29 @@
 import os
 
 ExampleRepo = collections.namedtuple('ExampleRepo', [
-    'project_name', 'oss_repo_name', 'git_repo_name', 'image_location',
-    'git_url', 'new_commit', 'old_commit', 'intro_commit', 'fuzz_target',
-    'test_case_path'
+    'project_name', 'oss_repo_name', 'git_repo_name', 'git_url', 'new_commit',
+    'old_commit', 'intro_commit', 'fuzz_target', 'test_case_path'
 ])
 
 TEST_DIR_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                              'testcases')
 
-# WARNING: Tests are dependent upon the following repos existing and the
-# specified commits existing.
-# TODO(metzman): Fix this problem.
+# WARNING: These tests  are dependent upon the following repos existing and
+# the specified commits existing.
 TEST_REPOS = [
+    ExampleRepo(project_name='usrsctp',
+                oss_repo_name='usrsctp',
+                git_repo_name='usrsctp',
+                git_url='https://github.com/weinrank/usrsctp',
+                old_commit='4886aaa49fb90e479226fcfc3241d74208908232',
+                new_commit='c710749b1053978179a027973a3ea3bccf20ee5c',
+                intro_commit='457d6ead58e82584d9dcb826f6739347f59ebd3a',
+                fuzz_target='fuzzer_connect',
+                test_case_path=os.path.join(TEST_DIR_PATH,
+                                            'usrsctp_test_data')),
     ExampleRepo(project_name='curl',
                 oss_repo_name='curl',
                 git_repo_name='curl',
-                image_location='/src',
                 git_url='https://github.com/curl/curl.git',
                 old_commit='df26f5f9c36e19cd503c0e462e9f72ad37b84c82',
                 new_commit='dda418266c99ceab368d723facb52069cbb9c8d5',
@@ -50,31 +57,19 @@
     ExampleRepo(project_name='libarchive',
                 oss_repo_name='libarchive',
                 git_repo_name='libarchive',
-                image_location='/src',
                 git_url='https://github.com/libarchive/libarchive.git',
                 old_commit='5bd2a9b6658a3a6efa20bb9ad75bd39a44d71da6',
                 new_commit='458e49358f17ec58d65ab1c45cf299baaf3c98d1',
                 intro_commit='840266712006de5e737f8052db920dfea2be4260',
                 fuzz_target='libarchive_fuzzer',
                 test_case_path=os.path.join(TEST_DIR_PATH,
-                                            'libarchive_test_data')),
-    ExampleRepo(project_name='gonids',
-                oss_repo_name='gonids',
-                git_repo_name='gonids',
-                image_location='/root/go/src/github.com/google/',
-                git_url='https://github.com/google/gonids',
-                old_commit='',
-                new_commit='',
-                intro_commit='',
-                fuzz_target='',
-                test_case_path='')
+                                            'libarchive_test_data'))
 ]
 
 INVALID_REPO = ExampleRepo(project_name='notaproj',
                            oss_repo_name='notarepo',
                            git_repo_name='notarepo',
                            git_url='invalid.git',
-                           image_location='/src',
                            old_commit='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
                            new_commit='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
                            intro_commit='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
diff --git a/infra/testcases/curl_test_data b/infra/testcases/curl_test_data
new file mode 100644
index 0000000..ed4b54e
--- /dev/null
+++ b/infra/testcases/curl_test_data
Binary files differ
diff --git a/infra/testcases/libarchive_test_data b/infra/testcases/libarchive_test_data
new file mode 100644
index 0000000..928bfec
--- /dev/null
+++ b/infra/testcases/libarchive_test_data
Binary files differ
diff --git a/infra/testcases/ndpi_test_data b/infra/testcases/ndpi_test_data
new file mode 100644
index 0000000..010af86
--- /dev/null
+++ b/infra/testcases/ndpi_test_data
Binary files differ
diff --git a/infra/testcases/usrsctp_test_data b/infra/testcases/usrsctp_test_data
new file mode 100644
index 0000000..fa90322
--- /dev/null
+++ b/infra/testcases/usrsctp_test_data
Binary files differ
diff --git a/infra/testcases/yara_test_data b/infra/testcases/yara_test_data
new file mode 100644
index 0000000..e2a0b94
--- /dev/null
+++ b/infra/testcases/yara_test_data
@@ -0,0 +1 @@
+rule N{condition:for 1r in r(r
\ No newline at end of file
diff --git a/infra/travis/requirements.txt b/infra/travis/requirements.txt
new file mode 100644
index 0000000..37917bb
--- /dev/null
+++ b/infra/travis/requirements.txt
@@ -0,0 +1 @@
+PyYAML==5.1
diff --git a/infra/travis/travis_build.py b/infra/travis/travis_build.py
new file mode 100755
index 0000000..c8b8de8
--- /dev/null
+++ b/infra/travis/travis_build.py
@@ -0,0 +1,146 @@
+#!/usr/bin/env python
+# Copyright 2019 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+"""Build modified projects."""
+
+from __future__ import print_function
+
+import os
+import re
+import subprocess
+import yaml
+
+DEFAULT_ARCHITECTURES = ['x86_64']
+DEFAULT_ENGINES = ['afl', 'libfuzzer']
+DEFAULT_SANITIZERS = ['address', 'undefined']
+
+
+def get_modified_buildable_projects():
+  """Returns a list of all the projects modified in this commit that have a
+  build.sh file."""
+  master_head_sha = subprocess.check_output(
+      ['git', 'merge-base', 'HEAD', 'FETCH_HEAD']).decode().strip()
+  output = subprocess.check_output(
+      ['git', 'diff', '--name-only', 'HEAD', master_head_sha]).decode()
+  projects_regex = '.*projects/(?P<name>.*)/.*\n'
+  modified_projects = set(re.findall(projects_regex, output))
+  projects_dir = os.path.join(get_oss_fuzz_root(), 'projects')
+  # Filter out projects without build.sh files since new projects and reverted
+  # projects frequently don't have them. In these cases we don't want Travis's
+  # builds to fail.
+  modified_buildable_projects = []
+  for project in modified_projects:
+    if not os.path.exists(os.path.join(projects_dir, project, 'build.sh')):
+      print('Project {0} does not have a build.sh. skipping build.'.format(
+          project))
+      continue
+    modified_buildable_projects.append(project)
+  return modified_buildable_projects
+
+
+def get_oss_fuzz_root():
+  """Get the absolute path of the root of the oss-fuzz checkout."""
+  script_path = os.path.realpath(__file__)
+  return os.path.abspath(
+      os.path.dirname(os.path.dirname(os.path.dirname(script_path))))
+
+
+def execute_helper_command(helper_command):
+  """Execute |helper_command| using helper.py."""
+  root = get_oss_fuzz_root()
+  script_path = os.path.join(root, 'infra', 'helper.py')
+  command = ['python', script_path] + helper_command
+  print('Running command: %s' % ' '.join(command))
+  subprocess.check_call(command)
+
+
+def build_fuzzers(project, engine, sanitizer, architecture):
+  """Execute helper.py's build_fuzzers command on |project|. Build the fuzzers
+  with |engine| and |sanitizer| for |architecture|."""
+  execute_helper_command([
+      'build_fuzzers', project, '--engine', engine, '--sanitizer', sanitizer,
+      '--architecture', architecture
+  ])
+
+
+def check_build(project, engine, sanitizer, architecture):
+  """Execute helper.py's check_build command on |project|, assuming it was most
+  recently built with |engine| and |sanitizer| for |architecture|."""
+  execute_helper_command([
+      'check_build', project, '--engine', engine, '--sanitizer', sanitizer,
+      '--architecture', architecture
+  ])
+
+
+def should_build(project_yaml):
+  """Is the build specified by travis enabled in the |project_yaml|?"""
+
+  def is_enabled(env_var, yaml_name, defaults):
+    """Is the value of |env_var| enabled in |project_yaml| (in the |yaml_name|
+    section)? Uses |defaults| if |yaml_name| section is unspecified."""
+    return os.getenv(env_var) in project_yaml.get(yaml_name, defaults)
+
+  return (is_enabled('TRAVIS_ENGINE', 'fuzzing_engines', DEFAULT_ENGINES) and
+          is_enabled('TRAVIS_SANITIZER', 'sanitizers', DEFAULT_SANITIZERS) and
+          is_enabled('TRAVIS_ARCHITECTURE', 'architectures',
+                     DEFAULT_ARCHITECTURES))
+
+
+def build_project(project):
+  """Do the build of |project| that is specified by the TRAVIS_* environment
+  variables (TRAVIS_SANITIZER, TRAVIS_ENGINE, and TRAVIS_ARCHITECTURE)."""
+  root = get_oss_fuzz_root()
+  project_yaml_path = os.path.join(root, 'projects', project, 'project.yaml')
+  with open(project_yaml_path) as fp:
+    project_yaml = yaml.safe_load(fp)
+
+  if project_yaml.get('disabled', False):
+    print('Project {0} is disabled, skipping build.'.format(project))
+    return
+
+  engine = os.getenv('TRAVIS_ENGINE')
+  sanitizer = os.getenv('TRAVIS_SANITIZER')
+  architecture = os.getenv('TRAVIS_ARCHITECTURE')
+
+  if not should_build(project_yaml):
+    print(('Specified build: engine: {0}, sanitizer: {1}, architecture: {2} '
+           'not enabled for this project: {3}. skipping build.').format(
+               engine, sanitizer, architecture, project))
+
+    return
+
+  print('Building project', project)
+  build_fuzzers(project, engine, sanitizer, architecture)
+  if engine != 'none':
+    check_build(project, engine, sanitizer, architecture)
+
+
+def main():
+  projects = get_modified_buildable_projects()
+  failed_projects = []
+  for project in projects:
+    try:
+      build_project(project)
+    except subprocess.CalledProcessError:
+      failed_projects.append(project)
+
+  if failed_projects:
+    print('Failed projects:', ' '.join(failed_projects))
+    exit(1)
+
+
+if __name__ == '__main__':
+  main()
diff --git a/infra/utils.py b/infra/utils.py
index fe5dd87..8f0e4e2 100644
--- a/infra/utils.py
+++ b/infra/utils.py
@@ -13,13 +13,10 @@
 # limitations under the License.
 """Utilities for OSS-Fuzz infrastructure."""
 
-import logging
 import os
-import posixpath
 import re
 import stat
 import subprocess
-import sys
 
 import helper
 
@@ -27,15 +24,12 @@
 FUZZ_TARGET_SEARCH_STRING = 'LLVMFuzzerTestOneInput'
 VALID_TARGET_NAME = re.compile(r'^[a-zA-Z0-9_-]+$')
 
-# Location of google cloud storage for latest OSS-Fuzz builds.
-GCS_BASE_URL = 'https://storage.googleapis.com/'
-
 
 def chdir_to_root():
   """Changes cwd to OSS-Fuzz root directory."""
   # Change to oss-fuzz main directory so helper.py runs correctly.
-  if os.getcwd() != helper.OSS_FUZZ_DIR:
-    os.chdir(helper.OSS_FUZZ_DIR)
+  if os.getcwd() != helper.OSSFUZZ_DIR:
+    os.chdir(helper.OSSFUZZ_DIR)
 
 
 def execute(command, location=None, check_result=False):
@@ -47,7 +41,7 @@
     check_result: Should an exception be thrown on failed command.
 
   Returns:
-    stdout, stderr, error code.
+    The stdout of the command, the error code.
 
   Raises:
     RuntimeError: running a command resulted in an error.
@@ -55,20 +49,14 @@
 
   if not location:
     location = os.getcwd()
-  process = subprocess.Popen(command,
-                             stdout=subprocess.PIPE,
-                             stderr=subprocess.PIPE,
-                             cwd=location)
+  process = subprocess.Popen(command, stdout=subprocess.PIPE, cwd=location)
   out, err = process.communicate()
-  out = out.decode('utf-8', errors='ignore')
-  err = err.decode('utf-8', errors='ignore')
-  if err:
-    logging.debug('Stderr of command \'%s\' is %s.', ' '.join(command), err)
-  if check_result and process.returncode:
-    raise RuntimeError(
-        'Executing command \'{0}\' failed with error: {1}.'.format(
-            ' '.join(command), err))
-  return out, err, process.returncode
+  if check_result and (process.returncode or err):
+    raise RuntimeError('Error: %s\n Command: %s\n Return code: %s\n Out: %s' %
+                       (err, command, process.returncode, out))
+  if out is not None:
+    out = out.decode('ascii').rstrip()
+  return out, process.returncode
 
 
 def get_fuzz_targets(path):
@@ -83,9 +71,9 @@
   if not os.path.exists(path):
     return []
   fuzz_target_paths = []
-  for root, _, fuzzers in os.walk(path):
-    for fuzzer in fuzzers:
-      file_path = os.path.join(root, fuzzer)
+  for root, _, _ in os.walk(path):
+    for filename in os.listdir(path):
+      file_path = os.path.join(root, filename)
       if is_fuzz_target_local(file_path):
         fuzz_target_paths.append(file_path)
 
@@ -94,15 +82,15 @@
 
 def get_container_name():
   """Gets the name of the current docker container you are in.
+  /proc/self/cgroup can be used to check control groups e.g. Docker.
+  See: https://docs.docker.com/config/containers/runmetrics/ for more info.
 
   Returns:
     Container name or None if not in a container.
   """
-  result = subprocess.run(  # pylint: disable=subprocess-run-check
-      ['systemd-detect-virt', '-c'],
-      stdout=subprocess.PIPE).stdout
-  if b'docker' not in result:
-    return None
+  with open('/proc/self/cgroup') as file_handle:
+    if 'docker' not in file_handle.read():
+      return None
   with open('/etc/hostname') as file_handle:
     return file_handle.read().strip()
 
@@ -132,40 +120,3 @@
 
   with open(file_path, 'rb') as file_handle:
     return file_handle.read().find(FUZZ_TARGET_SEARCH_STRING.encode()) != -1
-
-
-def binary_print(string):
-  """Print that can print a binary string."""
-  if isinstance(string, bytes):
-    string += b'\n'
-  else:
-    string += '\n'
-  sys.stdout.buffer.write(string)
-  sys.stdout.flush()
-
-
-def url_join(*url_parts):
-  """Joins URLs together using the POSIX join method.
-
-  Args:
-    url_parts: Sections of a URL to be joined.
-
-  Returns:
-    Joined URL.
-  """
-  return posixpath.join(*url_parts)
-
-
-def gs_url_to_https(url):
-  """Converts |url| from a GCS URL (beginning with 'gs://') to an HTTPS one."""
-  return url_join(GCS_BASE_URL, remove_prefix(url, 'gs://'))
-
-
-def remove_prefix(string, prefix):
-  """Returns |string| without the leading substring |prefix|."""
-  # Match behavior of removeprefix from python3.9:
-  # https://www.python.org/dev/peps/pep-0616/
-  if string.startswith(prefix):
-    return string[len(prefix):]
-
-  return string
diff --git a/infra/utils_test.py b/infra/utils_test.py
index aa6ec7b..ab3d216 100644
--- a/infra/utils_test.py
+++ b/infra/utils_test.py
@@ -11,27 +11,26 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-"""Tests the functionality of the utils module's functions"""
+"""Test the functionality of the utils module's functions:
+1. is_fuzz_target_local
+2. get_fuzz_targets
+3. get_env_var
+"""
 
 import os
-import tempfile
 import unittest
-from unittest import mock
 
 import utils
 import helper
 
 EXAMPLE_PROJECT = 'example'
 
-TEST_OUT_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)),
-                            'cifuzz', 'test_data', 'out')
 
-
-class IsFuzzTargetLocalTest(unittest.TestCase):
-  """Tests the is_fuzz_target_local function."""
+class IsFuzzTargetLocalUnitTest(unittest.TestCase):
+  """Test is_fuzz_target_local function in the utils module."""
 
   def test_invalid_filepath(self):
-    """Tests the function with an invalid file path."""
+    """Test the function with an invalid file path."""
     is_local = utils.is_fuzz_target_local('not/a/real/file')
     self.assertFalse(is_local)
     is_local = utils.is_fuzz_target_local('')
@@ -41,95 +40,63 @@
 
   def test_valid_filepath(self):
     """Checks is_fuzz_target_local function with a valid filepath."""
-
+    utils.chdir_to_root()
+    helper.build_fuzzers_impl(EXAMPLE_PROJECT,
+                              True,
+                              'libfuzzer',
+                              'address',
+                              'x86_64', [],
+                              None,
+                              no_cache=False,
+                              mount_location=None)
     is_local = utils.is_fuzz_target_local(
-        os.path.join(TEST_OUT_DIR, 'example_crash_fuzzer'))
+        os.path.join(helper.OSSFUZZ_DIR, 'build', 'out', EXAMPLE_PROJECT,
+                     'do_stuff_fuzzer'))
     self.assertTrue(is_local)
-    is_local = utils.is_fuzz_target_local(TEST_OUT_DIR)
+    is_local = utils.is_fuzz_target_local(
+        os.path.join(helper.OSSFUZZ_DIR, 'build', 'out', EXAMPLE_PROJECT,
+                     'do_stuff_fuzzer.dict'))
     self.assertFalse(is_local)
 
 
-class GetFuzzTargetsTest(unittest.TestCase):
-  """Tests the get_fuzz_targets function."""
+class GetFuzzTargetsUnitTest(unittest.TestCase):
+  """Test get_fuzz_targets function in the utils module."""
 
   def test_valid_filepath(self):
     """Tests that fuzz targets can be retrieved once the fuzzers are built."""
-    fuzz_targets = utils.get_fuzz_targets(TEST_OUT_DIR)
-    crash_fuzzer_path = os.path.join(TEST_OUT_DIR, 'example_crash_fuzzer')
-    nocrash_fuzzer_path = os.path.join(TEST_OUT_DIR, 'example_nocrash_fuzzer')
-    self.assertCountEqual(fuzz_targets,
-                          [crash_fuzzer_path, nocrash_fuzzer_path])
-
-    # Testing on a arbitrary directory with no fuzz targets in it.
+    utils.chdir_to_root()
+    helper.build_fuzzers_impl(EXAMPLE_PROJECT,
+                              True,
+                              'libfuzzer',
+                              'address',
+                              'x86_64', [],
+                              None,
+                              no_cache=False,
+                              mount_location=None)
     fuzz_targets = utils.get_fuzz_targets(
-        os.path.join(helper.OSS_FUZZ_DIR, 'infra', 'travis'))
+        os.path.join(helper.OSSFUZZ_DIR, 'build', 'out', EXAMPLE_PROJECT))
+    self.assertCountEqual(fuzz_targets, [
+        os.path.join(helper.OSSFUZZ_DIR, 'build', 'out', EXAMPLE_PROJECT,
+                     'do_stuff_fuzzer')
+    ])
+    fuzz_targets = utils.get_fuzz_targets(
+        os.path.join(helper.OSSFUZZ_DIR, 'infra'))
     self.assertFalse(fuzz_targets)
 
   def test_invalid_filepath(self):
     """Tests what get_fuzz_targets return when invalid filepath is used."""
+    utils.chdir_to_root()
+    helper.build_fuzzers_impl(EXAMPLE_PROJECT,
+                              True,
+                              'libfuzzer',
+                              'address',
+                              'x86_64', [],
+                              None,
+                              no_cache=False,
+                              mount_location=None)
     fuzz_targets = utils.get_fuzz_targets('not/a/valid/file/path')
     self.assertFalse(fuzz_targets)
 
 
-class ExecuteTest(unittest.TestCase):
-  """Tests the execute function."""
-
-  def test_valid_command(self):
-    """Tests that execute can produce valid output."""
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      out, err, err_code = utils.execute(['ls', '.'],
-                                         location=tmp_dir,
-                                         check_result=False)
-      self.assertEqual(err_code, 0)
-      self.assertEqual(err, '')
-      self.assertEqual(out, '')
-      out, err, err_code = utils.execute(['mkdir', 'tmp'],
-                                         location=tmp_dir,
-                                         check_result=False)
-      self.assertEqual(err_code, 0)
-      self.assertEqual(err, '')
-      self.assertEqual(out, '')
-      out, err, err_code = utils.execute(['ls', '.'],
-                                         location=tmp_dir,
-                                         check_result=False)
-      self.assertEqual(err_code, 0)
-      self.assertEqual(err, '')
-      self.assertEqual(out, 'tmp\n')
-
-  def test_error_command(self):
-    """Tests that execute can correctly surface errors."""
-    with tempfile.TemporaryDirectory() as tmp_dir:
-      out, err, err_code = utils.execute(['ls', 'notarealdir'],
-                                         location=tmp_dir,
-                                         check_result=False)
-      self.assertEqual(err_code, 2)
-      self.assertIsNotNone(err)
-      self.assertEqual(out, '')
-      with self.assertRaises(RuntimeError):
-        out, err, err_code = utils.execute(['ls', 'notarealdir'],
-                                           location=tmp_dir,
-                                           check_result=True)
-
-
-class BinaryPrintTest(unittest.TestCase):
-  """Tests for utils.binary_print."""
-
-  @unittest.skip('Causes spurious failures because of side-effects.')
-  def test_string(self):  # pylint: disable=no-self-use
-    """Tests that utils.binary_print can print a regular string."""
-    # Should execute without raising any exceptions.
-    with mock.patch('sys.stdout.buffer.write') as mocked_write:
-      utils.binary_print('hello')
-      mocked_write.assert_called_with('hello\n')
-
-  @unittest.skip('Causes spurious failures because of side-effects.')
-  def test_binary_string(self):  # pylint: disable=no-self-use
-    """Tests that utils.binary_print can print a bianry string."""
-    # Should execute without raising any exceptions.
-    with mock.patch('sys.stdout.buffer.write') as mocked_write:
-      utils.binary_print(b'hello')
-      mocked_write.assert_called_with(b'hello\n')
-
-
 if __name__ == '__main__':
   unittest.main()
diff --git a/oss-fuzz.iml b/oss-fuzz.iml
new file mode 100644
index 0000000..20f48fa
--- /dev/null
+++ b/oss-fuzz.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="jdk" jdkName="Python 2.7" jdkType="Python SDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/projects/abseil-cpp/BUILD b/projects/abseil-cpp/BUILD
deleted file mode 100644
index d40194e..0000000
--- a/projects/abseil-cpp/BUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cc_binary(
-	name = "string_escape_fuzzer",
-	deps = ["@com_google_absl//absl/strings"],
-	srcs = ["string_escape_fuzzer.cc"],
-)
-
-cc_binary(
-	name = "string_utilities_fuzzer",
-	deps = [
-		"@com_google_absl//absl/strings",
-		"@com_google_absl//absl/strings:cord"
-		],
-	srcs = ["string_utilities_fuzzer.cc"],
-)
\ No newline at end of file
diff --git a/projects/abseil-cpp/Dockerfile b/projects/abseil-cpp/Dockerfile
deleted file mode 100644
index 09f6684..0000000
--- a/projects/abseil-cpp/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get --no-install-recommends install -y build-essential make curl wget rsync
-
-RUN echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list
-RUN curl https://bazel.build/bazel-release.pub.gpg | apt-key add -
-RUN apt-get update && apt-get install -y bazel
-RUN curl -Lo /usr/bin/bazel \
-        https://github.com/bazelbuild/bazelisk/releases/download/v1.1.0/bazelisk-linux-amd64 \
-        && \
-    chmod +x /usr/bin/bazel
-
-RUN git clone --depth 1 https://github.com/abseil/abseil-cpp.git
-
-COPY BUILD WORKSPACE build.sh string_escape_fuzzer.cc string_utilities_fuzzer.cc $SRC/
\ No newline at end of file
diff --git a/projects/abseil-cpp/WORKSPACE b/projects/abseil-cpp/WORKSPACE
deleted file mode 100644
index e155690..0000000
--- a/projects/abseil-cpp/WORKSPACE
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-local_repository(
-	name = "com_google_absl",
-	path = "abseil-cpp/",
-)
diff --git a/projects/abseil-cpp/build.sh b/projects/abseil-cpp/build.sh
deleted file mode 100644
index ec3acd4..0000000
--- a/projects/abseil-cpp/build.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-readonly EXTRA_BAZEL_FLAGS="$(
-for f in ${CFLAGS}; do
-  echo "--conlyopt=${f}" "--linkopt=${f}"
-done
-for f in ${CXXFLAGS}; do
-  echo "--cxxopt=${f}" "--linkopt=${f}"
-done
-
-if [ "$SANITIZER" = "undefined" ]
-then
-  # Bazel uses clang to link binary, which does not link clang_rt ubsan library for C++ automatically.
-  # See issue: https://github.com/bazelbuild/bazel/issues/8777
-  echo "--linkopt=\"$(find $(llvm-config --libdir) -name libclang_rt.ubsan_standalone_cxx-x86_64.a | head -1)\""
-fi
-)"
-
-declare FUZZ_TARGETS=("string_escape_fuzzer" "string_utilities_fuzzer")
-
-bazel build \
-	--verbose_failures \
-	--dynamic_mode=off \
-	--spawn_strategy=standalone \
-	--genrule_strategy=standalone \
-	--strip=never \
-	--linkopt=-pthread \
-	--copt=${LIB_FUZZING_ENGINE} \
-	--linkopt=${LIB_FUZZING_ENGINE} \
-	--linkopt=-lc++ \
-	${EXTRA_BAZEL_FLAGS} \
-	${FUZZ_TARGETS[*]}
-
-
-if [ "$SANITIZER" = "coverage" ]
-then
-  # The build invoker looks for sources in $SRC, but it turns out that we need
-  # to not be buried under src/, paths are expected at out/proc/self/cwd by
-  # the profiler.
-  declare -r REMAP_PATH="${OUT}/proc/self/cwd"
-  mkdir -p "${REMAP_PATH}"
-  mkdir -p "${REMAP_PATH}/external/com_google_absl"
-  rsync -av "${SRC}"/abseil-cpp/absl "${REMAP_PATH}/external/com_google_absl"
-
-  declare -r RSYNC_FILTER_ARGS=("--include" "*.h" "--include" "*.cc" "--include" \
-    "*.hpp" "--include" "*.cpp" "--include" "*.c" "--include" "*/" "--exclude" "*")
-  rsync -avLk "${RSYNC_FILTER_ARGS[@]}" "${SRC}"/bazel-out "${REMAP_PATH}"
-  rsync -avLkR "${RSYNC_FILTER_ARGS[@]}" "${HOME}" "${OUT}"
-  rsync -avLkR "${RSYNC_FILTER_ARGS[@]}" /tmp "${OUT}"
-
-  cp *fuzzer.cc "${OUT}/proc/self/cwd"
-fi
-
-cp "./bazel-bin/"*fuzzer "${OUT}/"
diff --git a/projects/abseil-cpp/project.yaml b/projects/abseil-cpp/project.yaml
deleted file mode 100644
index b0b7a16..0000000
--- a/projects/abseil-cpp/project.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-homepage: "abseil.io"
-language: c++
-primary_contact: "abseil-io@googlegroups.com"
-main_repo: 'https://github.com/abseil/abseil-cpp.git'
diff --git a/projects/abseil-cpp/string_escape_fuzzer.cc b/projects/abseil-cpp/string_escape_fuzzer.cc
deleted file mode 100644
index 581afab..0000000
--- a/projects/abseil-cpp/string_escape_fuzzer.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-#include <string> 
-
-#include "absl/strings/escaping.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-	std::string str (reinterpret_cast<const char*>(data), size);
-	std::string escaped, unescaped;
-	escaped = absl::CHexEscape(str);
-	absl::CUnescape(escaped, &unescaped);
-	if (str != unescaped)
-		abort();
-
-	escaped = absl::CEscape(str);
-	absl::CUnescape(escaped, &unescaped);
-	if (str != unescaped)
-		abort();
-
-	escaped = absl::Utf8SafeCEscape(str);
-	absl::CUnescape(escaped, &unescaped);
-	if (str != unescaped)
-		abort();
-	
-	escaped = absl::Utf8SafeCHexEscape(str);
-	absl::CUnescape(escaped, &unescaped);
-	if (str != unescaped)
-		abort();
-	
-	std::string encoded, decoded;
-	absl::Base64Escape(str, &encoded);
-	absl::Base64Unescape(encoded, &decoded);
-	if (str != unescaped)
-		abort();
-
-	absl::WebSafeBase64Escape(str, &encoded);
-	absl::WebSafeBase64Unescape(encoded, &decoded);
-	if (str != decoded)
-		abort();
-
-	std::string hex_result, bytes_result;
-	hex_result = absl::BytesToHexString(str);
-	bytes_result = absl::HexStringToBytes(hex_result);
-	if (str != decoded)
-		abort();
-
-	return 0;
-}
\ No newline at end of file
diff --git a/projects/abseil-cpp/string_utilities_fuzzer.cc b/projects/abseil-cpp/string_utilities_fuzzer.cc
deleted file mode 100644
index 6735b7b..0000000
--- a/projects/abseil-cpp/string_utilities_fuzzer.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-#include <string>
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include "absl/strings/str_format.h"
-#include "absl/strings/str_join.h"
-#include "absl/strings/str_split.h"
-#include "absl/strings/numbers.h"
-#include "absl/strings/str_cat.h"
-
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-	FuzzedDataProvider fuzzed_data(data, size);
-	float float_value = fuzzed_data.ConsumeFloatingPoint<float>();
-	double double_value = fuzzed_data.ConsumeFloatingPoint<double>();
-	int int_value = fuzzed_data.ConsumeIntegral<int>();
-	bool bool_value = fuzzed_data.ConsumeBool();
-	std::string str1 = fuzzed_data.ConsumeRandomLengthString();
-	std::string str2 = fuzzed_data.ConsumeRemainingBytesAsString();
-
-	std::string float_str = absl::StrFormat("%g", float_value);
-	std::string double_str = absl::StrFormat("%g", double_value);
-	std::string int_str = absl::StrFormat("%d", int_value);
-	std::string bool_str = absl::StrFormat("%d", bool_value);
-	
-	if (!absl::SimpleAtof(float_str, &float_value))
-		return 0;
-	if (!absl::SimpleAtod(double_str, &double_value))
-		return 0;
-	if (!absl::SimpleAtoi(int_str, &int_value))
-		return 0;
-	if (!absl::SimpleAtob(bool_str, &bool_value))
-		return 0;
-
-	absl::StrAppend(&str1, str2);
-	std::string str_result = absl::StrCat(str1, float_value, double_value, int_value, bool_value);
-	std::vector<std::string> v = absl::StrSplit(str_result, ".");
-	absl::StrJoin(v, ".");
-	return 0;
-}
\ No newline at end of file
diff --git a/projects/alembic/Dockerfile b/projects/alembic/Dockerfile
deleted file mode 100644
index baf498d..0000000
--- a/projects/alembic/Dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y build-essential zlib1g-dev zlib1g-dev:i386 python make automake
-
-RUN git clone --depth 1 https://github.com/alembic/alembic
-
-# Ubuntu's libilmbase-dev package doesn't include static libraries, so we have
-# to build OpenEXR from source.  The v2.4.2 release is the most recent as of
-# 2020-07-29.
-RUN git clone -b v2.4.2 --depth 1 https://github.com/AcademySoftwareFoundation/openexr
-
-COPY build.sh *.h *.cc $SRC/
-WORKDIR $WORK/
diff --git a/projects/alembic/alembic_dump_info_fuzzer.cc b/projects/alembic/alembic_dump_info_fuzzer.cc
deleted file mode 100644
index e3aa716..0000000
--- a/projects/alembic/alembic_dump_info_fuzzer.cc
+++ /dev/null
@@ -1,204 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <err.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "alembic/lib/Alembic/AbcCoreFactory/All.h"
-#include "alembic/lib/Alembic/AbcCoreOgawa/All.h"
-#include "alembic/lib/Alembic/AbcGeom/All.h"
-#include "alembic/lib/Alembic/AbcMaterial/All.h"
-
-#include "fuzzer_temp_file.h"
-
-using Alembic::AbcCoreAbstract::PropertyHeader;
-using Alembic::AbcCoreAbstract::PropertyType;
-using Alembic::AbcCoreFactory::IFactory;
-using Alembic::AbcGeom::C4fArraySamplePtr;
-using Alembic::AbcGeom::IArchive;
-using Alembic::AbcGeom::IC4fGeomParam;
-using Alembic::AbcGeom::ICompoundProperty;
-using Alembic::AbcGeom::ICurves;
-using Alembic::AbcGeom::ICurvesSchema;
-using Alembic::AbcGeom::IFaceSet;
-using Alembic::AbcGeom::IFaceSetSchema;
-using Alembic::AbcGeom::IGeomBaseSchema;
-using Alembic::AbcGeom::IN3fGeomParam;
-using Alembic::AbcGeom::index_t;
-using Alembic::AbcGeom::Int32ArraySamplePtr;
-using Alembic::AbcGeom::IObject;
-using Alembic::AbcGeom::IPolyMesh;
-using Alembic::AbcGeom::IPolyMeshSchema;
-using Alembic::AbcGeom::ISubD;
-using Alembic::AbcGeom::ISubDSchema;
-using Alembic::AbcGeom::IV2fGeomParam;
-using Alembic::AbcGeom::IXform;
-using Alembic::AbcGeom::IXformSchema;
-using Alembic::AbcGeom::M44d;
-using Alembic::AbcGeom::M44f;
-using Alembic::AbcGeom::N3fArraySamplePtr;
-using Alembic::AbcGeom::ObjectHeader;
-using Alembic::AbcGeom::P3fArraySamplePtr;
-using Alembic::AbcGeom::UInt32ArraySamplePtr;
-using Alembic::AbcGeom::V2fArraySamplePtr;
-using Alembic::AbcMaterial::IMaterial;
-using Alembic::AbcMaterial::IMaterialSchema;
-
-template <typename T> void dumpAttributes(T const &schema) {
-
-  const size_t meshPropertyCount = schema.getNumProperties();
-
-  for (size_t p = 0; p < meshPropertyCount; p++) {
-    const PropertyHeader &header = schema.getPropertyHeader(p);
-    const PropertyType pType = header.getPropertyType();
-    const std::string &name = header.getName();
-
-    if (name == "P") {
-      schema.getNumSamples();
-    } else if (name == "uv" || name == "st") {
-      schema.getUVsParam().getNumSamples();
-    } else if (name == ".arbGeomParams") {
-      // additional geometry elements (color sets, additional texture
-      // coordinates)
-      const ICompoundProperty geoParam = schema.getArbGeomParams();
-      const size_t geoPropCount = geoParam.getNumProperties();
-
-      for (size_t g = 0; g < geoPropCount; g++) {
-        const PropertyHeader &headerGeo = geoParam.getPropertyHeader(g);
-        const std::string &nameGeo = headerGeo.getName();
-      }
-    }
-  }
-}
-
-void dumpPolyMesh(const IObject &node) {
-  const ObjectHeader &header = node.getHeader();
-  const IPolyMesh mesh(node.getParent(), header.getName());
-  const IPolyMeshSchema &schema = mesh.getSchema();
-
-  // Mesh properties
-  dumpAttributes(schema);
-}
-
-void dumpSubD(const IObject &node) {
-  const ObjectHeader &header = node.getHeader();
-  const ISubD mesh(node.getParent(), header.getName());
-  const ISubDSchema &schema = mesh.getSchema();
-
-  dumpAttributes(schema);
-  schema.getSubdivisionSchemeProperty();
-  schema.getFaceVaryingInterpolateBoundaryProperty();
-  schema.getFaceVaryingPropagateCornersProperty();
-  schema.getInterpolateBoundaryProperty();
-}
-
-void dumpFaceSet(const IObject &node) {
-  const ObjectHeader &header = node.getHeader();
-  const IFaceSet faceSet(node.getParent(), header.getName());
-  const IFaceSetSchema &schema = faceSet.getSchema();
-  schema.getNumSamples();
-}
-
-void dumpCurves(const IObject &node) {
-  const ObjectHeader &header = node.getHeader();
-  const ICurves curves(node.getParent(), header.getName());
-  const ICurvesSchema &schema = curves.getSchema();
-
-  dumpAttributes(schema);
-}
-
-void dumpXform(const IObject &node) {
-  const ObjectHeader &header = node.getHeader();
-  const IXform xform(node.getParent(), header.getName());
-  const IXformSchema &schema = xform.getSchema();
-
-  schema.getNumSamples();
-  schema.getNumOps();
-}
-
-void dumpMaterial(const IObject &node) {
-  const ObjectHeader &header = node.getHeader();
-  IMaterial material(node.getParent(), header.getName());
-  IMaterialSchema &schema = material.getSchema();
-
-  std::vector<std::string> targetNames;
-  schema.getTargetNames(targetNames);
-
-  for (const std::string &target : targetNames) {
-    std::vector<std::string> shaderTypes;
-    schema.getShaderTypesForTarget(target, shaderTypes);
-    const size_t shaderTypeCount = shaderTypes.size();
-    for (size_t s = 0; s < shaderTypeCount; s++) {
-
-      ICompoundProperty parameters =
-          schema.getShaderParameters(target, shaderTypes[s]);
-      const size_t parameterCount = parameters.getNumProperties();
-    }
-  }
-}
-
-void dumpNodes(const IObject &node) {
-  const ObjectHeader &header = node.getHeader();
-  // Dump the general node information.
-  header.getName();
-  header.getFullName();
-  header.getMetaData().serialize();
-
-  // Dump the type specific information.
-  if (Alembic::AbcGeom::IPolyMesh::matches(header)) {
-    dumpPolyMesh(node);
-  } else if (Alembic::AbcGeom::ISubD::matches(header)) {
-    dumpSubD(node);
-  } else if (Alembic::AbcGeom::IFaceSet::matches(header)) {
-    dumpFaceSet(node);
-  } else if (Alembic::AbcGeom::ICurves::matches(header)) {
-    dumpCurves(node);
-  } else if (Alembic::AbcGeom::IXform::matches(header)) {
-    dumpXform(node);
-  } else if (Alembic::AbcMaterial::IMaterial::matches(header)) {
-    dumpMaterial(node);
-  } else { // Miscellaneous nodes such as the root.
-    ;
-  }
-
-  // Dump the child headers.
-  const size_t childCount = node.getNumChildren();
-  for (size_t i = 0; i < childCount; i++) {
-    dumpNodes(node.getChild(i));
-  }
-}
-
-void dumpInfo(const char *file) {
-  // Load the Alembic archive and verify that it is valid.
-  IFactory factory;
-  IArchive archive = factory.getArchive(file);
-
-  if (archive.valid()) {
-    archive.getName();
-    dumpNodes(archive.getTop());
-  }
-}
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  FuzzerTemporaryFile tempFile(data, size);
-  dumpInfo(tempFile.filename());
-
-  return 0;
-}
diff --git a/projects/alembic/build.sh b/projects/alembic/build.sh
deleted file mode 100644
index 28ada7e..0000000
--- a/projects/alembic/build.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-mkdir -p $WORK/build_openexr
-mkdir -p $WORK/build_alembic
-
-# build openexr for alembic
-cd $WORK/build_openexr
-OPENEXR_CMAKE_SETTINGS=(
-  "-D BUILD_SHARED_LIBS=OFF"         # Build static libraries only
-  "-D PYILMBASE_ENABLE=OFF"          # Don't build Python support
-  "-D BUILD_TESTING=OFF"             # Or tests
-  "-D INSTALL_OPENEXR_EXAMPLES=OFF"  # Or examples
-  "-D OPENEXR_LIB_SUFFIX="           # Don't append the version number to library files
-  "-D ILMBASE_LIB_SUFFIX="
-)
-cmake $SRC/openexr ${OPENEXR_CMAKE_SETTINGS[@]}
-make -j$(nproc) && make install
-
-# build alembic
-cd $WORK/build_alembic
-cmake $SRC/alembic -DALEMBIC_SHARED_LIBS=OFF
-make -j$(nproc)
-
-INCLUDES=(
-  "-I $SRC"
-  "-I ${SRC}/alembic/lib"
-  "-I ${WORK}/build_alembic/lib"
-  "-I /usr/local/include/OpenEXR"
-)
-LIBS=("-lImath" "-lIex" "-lHalf")
-
-for fuzzer in $(find $SRC -name '*_fuzzer.cc'); do
-  fuzzer_basename=$(basename -s .cc $fuzzer)
-  $CXX $CXXFLAGS -std=c++11 ${INCLUDES[@]} \
-    $fuzzer $WORK/build_alembic/lib/Alembic/libAlembic.a $LIB_FUZZING_ENGINE \
-    -o $OUT/$fuzzer_basename ${LIBS[@]}
-done
diff --git a/projects/alembic/fuzzer_temp_file.h b/projects/alembic/fuzzer_temp_file.h
deleted file mode 100644
index b5442f1..0000000
--- a/projects/alembic/fuzzer_temp_file.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Adapter utility from fuzzer input to a temporary file, for fuzzing APIs that
-// require a file instead of an input buffer.
-
-#ifndef FUZZER_TEMP_FILE_H_
-#define FUZZER_TEMP_FILE_H_
-
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-// Pure-C interface for creating and cleaning up temporary files.
-
-static char *fuzzer_get_tmpfile(const uint8_t *data, size_t size) {
-  char *filename_buffer = strdup("/tmp/generate_temporary_file.XXXXXX");
-  if (!filename_buffer) {
-    perror("Failed to allocate file name buffer.");
-    abort();
-  }
-  const int file_descriptor = mkstemp(filename_buffer);
-  if (file_descriptor < 0) {
-    perror("Failed to make temporary file.");
-    abort();
-  }
-  FILE *file = fdopen(file_descriptor, "wb");
-  if (!file) {
-    perror("Failed to open file descriptor.");
-    close(file_descriptor);
-    abort();
-  }
-  const size_t bytes_written = fwrite(data, sizeof(uint8_t), size, file);
-  if (bytes_written != size) {
-    fclose(file);
-    fprintf(stderr, "Failed to write all bytes to file (%zu out of %zu)",
-            bytes_written, size);
-    abort();
-  }
-  fclose(file);
-  return filename_buffer;
-}
-
-static void fuzzer_release_tmpfile(char *filename) {
-  if (unlink(filename) != 0) {
-    perror("WARNING: Failed to delete temporary file.");
-  }
-  free(filename);
-}
-
-// C++ RAII object for creating temporary files.
-
-#ifdef __cplusplus
-class FuzzerTemporaryFile {
-public:
-  FuzzerTemporaryFile(const uint8_t *data, size_t size)
-      : filename_(fuzzer_get_tmpfile(data, size)) {}
-
-  ~FuzzerTemporaryFile() { fuzzer_release_tmpfile(filename_); }
-
-  const char *filename() const { return filename_; }
-
-private:
-  char *filename_;
-};
-#endif
-
-#endif // FUZZER_TEMP_FILE_H_
diff --git a/projects/alembic/project.yaml b/projects/alembic/project.yaml
deleted file mode 100644
index f3e4771..0000000
--- a/projects/alembic/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/alembic/alembic"
-language: c++
-primary_contact: "miller.lucas@gmail.com"
-sanitizers:
-  - address
-main_repo: 'https://github.com/alembic/alembic'
diff --git a/projects/arduinojson/Dockerfile b/projects/arduinojson/Dockerfile
index e2561d4..66fb411 100644
--- a/projects/arduinojson/Dockerfile
+++ b/projects/arduinojson/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER oss-fuzz@benoitblanchon.fr
 RUN apt-get update && apt-get install -y make zip git
 RUN git clone --depth 1 https://github.com/bblanchon/ArduinoJson.git arduinojson
 WORKDIR arduinojson
diff --git a/projects/arduinojson/project.yaml b/projects/arduinojson/project.yaml
index fe71e04..ab6c8b7 100644
--- a/projects/arduinojson/project.yaml
+++ b/projects/arduinojson/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/bblanchon/ArduinoJson"
-language: c++
 primary_contact: "benoit.blanchon@gmail.com"
 sanitizers:
   - address
@@ -8,4 +7,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/bblanchon/ArduinoJson.git'
diff --git a/projects/arrow/Dockerfile b/projects/arrow/Dockerfile
index 5161c28..110056d 100644
--- a/projects/arrow/Dockerfile
+++ b/projects/arrow/Dockerfile
@@ -15,20 +15,15 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER dev@arrow.apache.org
 
 ENV DEBIAN_FRONTEND noninteractive
 RUN apt-get update -y -q && \
     apt-get update -y -q && \
     apt-get install -y -q --no-install-recommends \
-        bison \
-        build-essential \
         cmake \
-        flex \
-        libboost-all-dev \
         ninja-build \
         python3
 
-RUN git clone --depth=1 --recurse-submodules \
-    https://github.com/apache/arrow.git $SRC/arrow
-
+RUN git clone --depth=1 https://github.com/apache/arrow.git $SRC/arrow
 COPY build.sh $SRC/
diff --git a/projects/arrow/build.sh b/projects/arrow/build.sh
index 6a61e92..dad1c0d 100755
--- a/projects/arrow/build.sh
+++ b/projects/arrow/build.sh
@@ -21,21 +21,16 @@
 
 cd ${WORK}
 
-# The CMake build setup compiles and runs the Thrift compiler, but ASAN
-# would report leaks and error out.
-export ASAN_OPTIONS="detect_leaks=0"
-
 cmake ${ARROW} -GNinja \
     -DCMAKE_BUILD_TYPE=Release \
     -DARROW_DEPENDENCY_SOURCE=BUNDLED \
-    -DBOOST_SOURCE=SYSTEM \
     -DCMAKE_C_FLAGS="${CFLAGS}" \
     -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
     -DARROW_EXTRA_ERROR_CONTEXT=off \
     -DARROW_JEMALLOC=off \
     -DARROW_MIMALLOC=off \
     -DARROW_FILESYSTEM=off \
-    -DARROW_PARQUET=on \
+    -DARROW_PARQUET=off \
     -DARROW_BUILD_SHARED=off \
     -DARROW_BUILD_STATIC=on \
     -DARROW_BUILD_TESTS=off \
@@ -47,7 +42,7 @@
     -DPARQUET_BUILD_EXAMPLES=off \
     -DPARQUET_BUILD_EXECUTABLES=off \
     -DPARQUET_REQUIRE_ENCRYPTION=off \
-    -DARROW_WITH_BROTLI=on \
+    -DARROW_WITH_BROTLI=off \
     -DARROW_WITH_BZ2=off \
     -DARROW_WITH_LZ4=off \
     -DARROW_WITH_SNAPPY=off \
diff --git a/projects/arrow/project.yaml b/projects/arrow/project.yaml
index 6d4d2e3..27a1456 100644
--- a/projects/arrow/project.yaml
+++ b/projects/arrow/project.yaml
@@ -1,14 +1,10 @@
 homepage: "https://arrow.apache.org/"
-language: c++
 primary_contact: "antoine@python.org"
 auto_ccs:
   - "bengilgit@gmail.com"
   - "emkornfield@gmail.com"
   - "fsaintjacques@gmail.com"
   - "micahk@google.com"
-  - "muraken@gmail.com"
   - "neal@rstudio.com"
   - "szucs.krisztian@gmail.com"
   - "wesmckinn@gmail.com"
-  - "xhochy@gmail.com"
-main_repo: 'https://github.com/apache/arrow.git'
diff --git a/projects/aspell/Dockerfile b/projects/aspell/Dockerfile
index 44c3ea0..a444a36 100644
--- a/projects/aspell/Dockerfile
+++ b/projects/aspell/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER cmeister2@gmail.com
 
 RUN git clone --depth 1 https://github.com/gnuaspell/aspell.git $SRC/aspell
 RUN git clone --depth 1 -b master https://github.com/gnuaspell/aspell-fuzz.git $SRC/aspell-fuzz
diff --git a/projects/aspell/project.yaml b/projects/aspell/project.yaml
index f753368..6c8f4d1 100644
--- a/projects/aspell/project.yaml
+++ b/projects/aspell/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/GNUAspell/aspell"
-language: c++
 primary_contact: "kevina@gnu.org"
 auto_ccs:
   - "kevinatkn@gmail.com"
@@ -9,4 +8,3 @@
   - undefined
   - memory:
       experimental: true
-main_repo: 'https://github.com/gnuaspell/aspell.git'
diff --git a/projects/assimp/project_proposed.yaml "b/projects/assimp/\043project.yaml\043"
similarity index 100%
rename from projects/assimp/project_proposed.yaml
rename to "projects/assimp/\043project.yaml\043"
diff --git a/projects/assimp/Dockerfile b/projects/assimp/Dockerfile
deleted file mode 100644
index 88564a7..0000000
--- a/projects/assimp/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y cmake ninja-build
-RUN git clone --depth 1 --recursive https://github.com/assimp/assimp.git
-WORKDIR assimp
-COPY build.sh $SRC/
-
diff --git a/projects/assimp/build.sh b/projects/assimp/build.sh
deleted file mode 100644
index 55efcb7..0000000
--- a/projects/assimp/build.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# generate build env and build assimp
-cmake CMakeLists.txt -G "Ninja" -DBUILD_SHARED_LIBS=OFF -DASSIMP_BUILD_ZLIB=ON -DASSIMP_BUILD_TESTS=OFF -DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_SAMPLES=OFF
-cmake --build .
-
-# build the fuzzer
-$CXX $CXXFLAGS -std=c++11 -I$SRC/assimp/include \
-	fuzz/assimp_fuzzer.cc -o $OUT/assimp_fuzzer \
-	$LIB_FUZZING_ENGINE $SRC/assimp/lib/libassimp.a $SRC/assimp/lib/libIrrXML.a $SRC/assimp/lib/libzlibstatic.a
diff --git a/projects/assimp/project.yaml b/projects/assimp/project.yaml
deleted file mode 100644
index 834e912..0000000
--- a/projects/assimp/project.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-homepage: "https://github.com/assimp/assimp"
-language: c++
-primary_contact: "kim.kulling@googlemail.com"
-sanitizers:
-  - address
-  - memory:
-     experimental: True
-  - undefined
-main_repo: 'https://github.com/assimp/assimp.git'
diff --git a/projects/astc-encoder/Dockerfile b/projects/astc-encoder/Dockerfile
deleted file mode 100644
index 3872f22..0000000
--- a/projects/astc-encoder/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool
-RUN git clone --depth 1 https://github.com/ARM-software/astc-encoder
-WORKDIR astc-encoder/Source
-COPY build.sh $SRC/
diff --git a/projects/astc-encoder/build.sh b/projects/astc-encoder/build.sh
deleted file mode 100755
index e34e5b0..0000000
--- a/projects/astc-encoder/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-# !/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project and project-hosted fuzzers
-$SRC/astc-encoder/Source/Fuzzers/build.sh
diff --git a/projects/astc-encoder/project.yaml b/projects/astc-encoder/project.yaml
deleted file mode 100644
index b96091a..0000000
--- a/projects/astc-encoder/project.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-homepage: "https://github.com/ARM-software/astc-encoder"
-language: c++
-primary_contact: "peter.harris@arm.com"
-main_repo: 'https://github.com/ARM-software/astc-encoder'
diff --git a/projects/augeas/Dockerfile b/projects/augeas/Dockerfile
index 651be93..738a9c6 100644
--- a/projects/augeas/Dockerfile
+++ b/projects/augeas/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER hhan@redhat.com
 RUN apt-get update && apt-get install -y libreadline-dev libselinux1-dev \
     libxml2-dev make autoconf automake libtool pkg-config bison flex
 
@@ -23,5 +24,3 @@
 
 COPY build.sh $SRC/
 COPY augeas_escape_name_fuzzer.cc $SRC/
-COPY augeas_fa_fuzzer.cc $SRC/
-COPY augeas_api_fuzzer.cc $SRC/
diff --git a/projects/augeas/augeas_api_fuzzer.cc b/projects/augeas/augeas_api_fuzzer.cc
deleted file mode 100644
index 342d7e8..0000000
--- a/projects/augeas/augeas_api_fuzzer.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-*/
-
-
-#include "config.h"
-#include "augeas.h"
-#include "internal.h"
-#include "memory.h"
-#include "syntax.h"
-#include "transform.h"
-#include "errcode.h"
-
-
-#include <fnmatch.h>
-#include <argz.h>
-#include <string.h>
-#include <stdarg.h>
-#include <locale.h>
-
-
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-	if(size<3){
-		return 0;
-	}
-	
-	char *loadpath = NULL;
-	const char *value;
-	const char *label;
-	char *new_str = (char *)malloc(size+1);
-	if (new_str == NULL){
-		return 0;
-	}
-	memcpy(new_str, data, size);
-	new_str[size] = '\0';
-	
-	struct augeas *aug = aug_init(new_str, loadpath, AUG_NO_STDINC|AUG_NO_LOAD);
-	aug_defvar(aug, new_str, &new_str[1]);
-	aug_get(aug, new_str, &value);
-	aug_label(aug, new_str, &label);
-	
-	aug_rename(aug, new_str, &new_str[1]);
-	aug_text_store(aug, &new_str[1], new_str, &new_str[2]);	
-	aug_print(aug, stdout, new_str);
-	aug_setm(aug, new_str, NULL, &new_str[1]);	
-	
-	free(new_str);
-	aug_close(aug);
-	return 0;
-}
diff --git a/projects/augeas/augeas_fa_fuzzer.cc b/projects/augeas/augeas_fa_fuzzer.cc
deleted file mode 100644
index 434175c..0000000
--- a/projects/augeas/augeas_fa_fuzzer.cc
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-*/
-
-
-
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-
-// Augea includes
-#include "augeas.h"
-#include "config.h"
-#include "fa.h"
-#include "internal.h"
-
-
-/*
- * FA fuzzer. 
- */
-extern "C"
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size){
-	if(Size<3){
-		return 0;
-	}
-	char *new_str = (char *)malloc(Size+1);
-	if (new_str == NULL){
-		return 0;
-	}
-	memcpy(new_str, Data, Size);
-	new_str[Size] = '\0';
-	int intSize = (int)Size;	
-	char *s;
-
-
-	size_t len;
-	int r = fa_expand_nocase(new_str, intSize, &s, &len);
-	
-	struct fa *fa2 = NULL; 
-	int r2 = fa_compile(new_str, intSize, &fa2);
-
-	struct fa *fa1 = NULL;	
-	fa_compile(&new_str[1], intSize, &fa1);
-	struct fa *fa_min;
-	fa_min = fa_minus(fa1, fa2);
-	
-	if (fa2 != NULL)
-	{
-		char* word = NULL;
-		size_t word_len = 0;
-		fa_example(fa2, &word, &word_len);
-		
-		if(word != NULL) 
-			free(word);
-
-		fa_json(stdout, fa2);
-		fa_minimize(fa2);
-		fa_dot(stdout, fa2);
-	}
-
-	struct fa *fa_b = fa_make_basic(intSize);
-	
-	// cleanup
-	if (s != NULL) 		free(s);
-	if (new_str != NULL) 	free(new_str);
-	if (fa_b != NULL)	fa_free(fa_b);
-	if (fa_min != NULL) 	fa_free(fa_min);
-	if (fa1 != NULL)	fa_free(fa1);
-	if (fa2 != NULL)	fa_free(fa2);
-	return 0;
-}
diff --git a/projects/augeas/build.sh b/projects/augeas/build.sh
index 46afebe..6e16c1a 100644
--- a/projects/augeas/build.sh
+++ b/projects/augeas/build.sh
@@ -16,24 +16,13 @@
 #
 ################################################################################
 
-
 ./autogen.sh
 ./configure --enable-static --disable-shared --without-selinux
 make -j$(nproc)
 
-sed -i '31 i\#ifdef __cplusplus'\\n'\extern "C" {'\\n'\#endif'\\n src/fa.h
-sed -i '326 i\#ifdef __cplusplus'\\n'\}'\\n'\#endif'\\n src/fa.h
-
-ASAN_OPTIONS=detect_leaks=0
-
-cp $SRC/augeas_escape_name_fuzzer.cc .
-cp $SRC/augeas_fa_fuzzer.cc .
-cp $SRC/augeas_api_fuzzer.cc .
-
-
-for fuzzer in augeas_api_fuzzer augeas_escape_name_fuzzer augeas_fa_fuzzer; do
+for fuzzer in augeas_escape_name_fuzzer; do
     $CXX $CXXFLAGS -std=c++11 -Isrc/ `xml2-config --cflags` \
-        $fuzzer.cc -o $OUT/$fuzzer $LIB_FUZZING_ENGINE \
+        $SRC/$fuzzer.cc -o $OUT/$fuzzer $LIB_FUZZING_ENGINE \
         src/.libs/libaugeas.a src/.libs/libfa.a ./gnulib/lib/.libs/libgnu.a \
         /usr/lib/x86_64-linux-gnu/libxml2.a
 done
diff --git a/projects/augeas/project.yaml b/projects/augeas/project.yaml
index be5317d..6b0ad9f 100644
--- a/projects/augeas/project.yaml
+++ b/projects/augeas/project.yaml
@@ -1,10 +1,7 @@
 homepage: https://github.com/hercules-team/augeas
-language: c++
 primary_contact: lutter@watzmann.net
 auto_ccs:
   - hhan@redhat.com
-  - adam@adalogics.com
 sanitizers:
   - address
   - undefined
-main_repo: 'https://github.com/hercules-team/augeas'
diff --git a/projects/avahi/Dockerfile b/projects/avahi/Dockerfile
index d9e9c64..91f0b5f 100644
--- a/projects/avahi/Dockerfile
+++ b/projects/avahi/Dockerfile
@@ -15,7 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && \
+MAINTAINER alex.gaynor@gmail.com
+RUN dpkg --add-architecture i386 && \
+    apt-get update && \
     apt-get install -y autoconf gettext libtool m4 automake pkg-config libexpat-dev libexpat-dev:i386
 RUN git clone --depth 1 https://github.com/lathiat/avahi
 WORKDIR avahi
diff --git a/projects/avahi/project.yaml b/projects/avahi/project.yaml
index b639001..bd85af7 100644
--- a/projects/avahi/project.yaml
+++ b/projects/avahi/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://avahi.org/"
-language: c++
 primary_contact: trent@lloyd.id.au
 auto_ccs:
   - alex.gaynor@gmail.com
@@ -10,4 +9,4 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/lathiat/avahi'
+
diff --git a/projects/bad_example/Dockerfile b/projects/bad_example/Dockerfile
index d0a6810..eb69f25 100644
--- a/projects/bad_example/Dockerfile
+++ b/projects/bad_example/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mmoroz@chromium.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 
 # Using a real zlib project, but with broken build script and/or fuzz target.
diff --git a/projects/bad_example/build.sh b/projects/bad_example/build.sh
index 88a7caa..eb08bd6 100755
--- a/projects/bad_example/build.sh
+++ b/projects/bad_example/build.sh
@@ -22,7 +22,7 @@
     $LIB_FUZZING_ENGINE ./libz.a
 
 
-# The latest two examples won't work for coverage build, bail out.
+# The latest two examples won't for for coverage build, bail out.
 if [[ $SANITIZER = *coverage* ]]; then
   exit 0
 fi
diff --git a/projects/bad_example/project.yaml b/projects/bad_example/project.yaml
index 59b5eed..0b303ab 100644
--- a/projects/bad_example/project.yaml
+++ b/projects/bad_example/project.yaml
@@ -1,7 +1,6 @@
+disabled: True
 homepage: "http://www.zlib.net/"
-language: c++
 sanitizers:
   - address
   - memory
   - undefined
-disabled: True
diff --git a/projects/bazel-rules-fuzzing-test/Dockerfile b/projects/bazel-rules-fuzzing-test/Dockerfile
deleted file mode 100644
index c007f5a..0000000
--- a/projects/bazel-rules-fuzzing-test/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone https://github.com/bazelbuild/rules_fuzzing.git
-WORKDIR $SRC/rules_fuzzing/
-COPY build.sh $SRC/
diff --git a/projects/bazel-rules-fuzzing-test/build.sh b/projects/bazel-rules-fuzzing-test/build.sh
deleted file mode 100644
index 056e16b..0000000
--- a/projects/bazel-rules-fuzzing-test/build.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash -eu
-#
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# This is an example build script for projects using the rules_fuzzing library
-# for Bazel.
-
-bazel_build_fuzz_tests
diff --git a/projects/bazel-rules-fuzzing-test/project.yaml b/projects/bazel-rules-fuzzing-test/project.yaml
deleted file mode 100644
index ecb68c6..0000000
--- a/projects/bazel-rules-fuzzing-test/project.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-homepage: "https://github.com/bazelbuild/rules_fuzzing"
-language: c++
-primary_contact: "test@example.com"
-
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
-
-sanitizers:
-  - address
-  - undefined
-  - memory
-  - dataflow
-
-# This is a test project.
-disabled: true
diff --git a/projects/bearssl/Dockerfile b/projects/bearssl/Dockerfile
deleted file mode 100644
index 2a5d3e7..0000000
--- a/projects/bearssl/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool wget python
-RUN git clone --depth 1 https://www.bearssl.org/git/BearSSL
-RUN git clone --depth 1 https://github.com/randombit/botan.git
-RUN git clone --depth 1 https://github.com/guidovranken/cryptofuzz
-RUN git clone --depth 1 https://github.com/guidovranken/cryptofuzz-corpora
-RUN wget https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2
-COPY build.sh $SRC/
diff --git a/projects/bearssl/build.sh b/projects/bearssl/build.sh
deleted file mode 100755
index db97318..0000000
--- a/projects/bearssl/build.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Not using OpenSSL
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NO_OPENSSL"
-
-# Install Boost headers
-    cd $SRC/
-    tar jxf boost_1_74_0.tar.bz2
-    cd boost_1_74_0/
-    CFLAGS="" CXXFLAGS="" ./bootstrap.sh
-    CFLAGS="" CXXFLAGS="" ./b2 headers
-    cp -R boost/ /usr/include/
-
-# Generate lookup tables. This only needs to be done once.
-    cd $SRC/cryptofuzz
-    python gen_repository.py
-
-# Only test primitives which BearSSL supports
-    rm extra_options.h
-    echo -n '"' >>extra_options.h
-    echo -n '--force-module=BearSSL ' >>extra_options.h
-    echo -n '--digests=MD5,SHA1,SHA224,SHA256,SHA384,SHA512,MD5_SHA1,SHAKE128,SHAKE256 ' >>extra_options.h
-    echo -n '--ciphers=AES_128_GCM,AES_192_GCM,AES_256_GCM,AES_128_CCM,AES_192_CCM,AES_256_CCM,CHACHA20,CHACHA20_POLY1305 ' >>extra_options.h
-    echo -n '--operations=Digest,HMAC,SymmetricEncrypt,SymmetricDecrypt,KDF_HKDF,KDF_TLS1_PRF,ECC_GenerateKeyPair,ECC_PrivateToPublic,ECDSA_Verify,ECDSA_Sign' >>extra_options.h
-    echo -n '"' >>extra_options.h
-
-# Compile BearSSL
-    cd $SRC/BearSSL/
-    sed -i '/^CC = /d' conf/Unix.mk
-    sed -i '/^CFLAGS = /d' conf/Unix.mk
-    make -j$(nproc) lib
-
-    export BEARSSL_INCLUDE_PATH=$(realpath inc/)
-    export LIBBEARSSL_A_PATH=$(realpath ./build/libbearssl.a)
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BEARSSL"
-
-    # Compile Cryptofuzz BearSSL module
-    cd $SRC/cryptofuzz/modules/bearssl
-    make -B
-
-# Compile Botan
-    cd $SRC/botan
-    if [[ $CFLAGS != *-m32* ]]
-    then
-        ./configure.py --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator --build-targets=static --without-documentation
-    else
-        ./configure.py --cpu=x86_32 --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator --build-targets=static --without-documentation
-    fi
-    make -j$(nproc)
-
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BOTAN"
-    export LIBBOTAN_A_PATH="$SRC/botan/libbotan-3.a"
-    export BOTAN_INCLUDE_PATH="$SRC/botan/build/include"
-
-    # Compile Cryptofuzz Botan module
-    cd $SRC/cryptofuzz/modules/botan
-    make -B
-
-# Compile Cryptofuzz
-    cd $SRC/cryptofuzz
-    LIBFUZZER_LINK="$LIB_FUZZING_ENGINE" make -B -j$(nproc) >/dev/null
-
-    # Generate dictionary
-    ./generate_dict
-
-    # Copy fuzzer
-    cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz-bearssl
-    # Copy dictionary
-    cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-bearssl.dict
diff --git a/projects/bearssl/project.yaml b/projects/bearssl/project.yaml
deleted file mode 100644
index d9b20ae..0000000
--- a/projects/bearssl/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://bearssl.org/"
-language: c++
-primary_contact: "guidovranken@gmail.com"
-auto_ccs:
-    - "pornin@gmail.com"
-sanitizers:
- - address
- - undefined
- - memory
-architectures:
- - x86_64
- - i386
diff --git a/projects/bignum-fuzzer/Dockerfile b/projects/bignum-fuzzer/Dockerfile
index 6b74836..4dbd6c3 100644
--- a/projects/bignum-fuzzer/Dockerfile
+++ b/projects/bignum-fuzzer/Dockerfile
@@ -15,12 +15,16 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 RUN apt-get update && apt-get install -y software-properties-common python-software-properties wget curl sudo mercurial autoconf bison texinfo libboost-all-dev cmake
+RUN add-apt-repository -y ppa:gophers/archive && apt-get update && apt-get install -y golang-1.9-go
+RUN ln -s /usr/lib/go-1.9/bin/go /usr/bin/go
 
-RUN wget https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.0.tar.gz
+RUN wget https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.4.2.tar.gz
+RUN git clone --recursive https://github.com/golang/go
 RUN git clone --depth 1 https://github.com/guidovranken/bignum-fuzzer
 RUN git clone --depth 1 https://github.com/openssl/openssl
 RUN hg clone https://gmplib.org/repo/gmp/ libgmp/
 RUN git clone https://boringssl.googlesource.com/boringssl
-RUN git clone --depth 1 https://github.com/ARMmbed/mbedtls
+RUN git clone --recursive --depth 1 https://github.com/ARMmbed/mbedtls
 COPY build.sh $SRC/
diff --git a/projects/bignum-fuzzer/build.sh b/projects/bignum-fuzzer/build.sh
index 8c29baf..2539917 100755
--- a/projects/bignum-fuzzer/build.sh
+++ b/projects/bignum-fuzzer/build.sh
@@ -1,27 +1,21 @@
-#!/bin/bash -eu
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
+# Compile latest Go
+cd go/src
+./make.bash
+cd $SRC
+
+# Remove previous Go install (used for bootstrapping)
+apt-get remove golang-1.9-go -y
+rm /usr/bin/go
+
+export PATH=`realpath $SRC/go/bin`:$PATH
 
 # Install Rust nightly
 #curl https://sh.rustup.rs -sSf | sh -s -- -y
 #source $HOME/.cargo/env
 
 # Build libmpdec
-tar zxf mpdecimal-2.5.0.tar.gz
-cd mpdecimal-2.5.0
+tar zxf mpdecimal-2.4.2.tar.gz
+cd mpdecimal-2.4.2
 ./configure && make -j$(nproc)
 
 cd $SRC/openssl
@@ -60,7 +54,7 @@
 
 # Build libmpdec module
 cd $SRC/bignum-fuzzer/modules/libmpdec
-LIBMPDEC_A_PATH=$SRC/mpdecimal-2.5.0/libmpdec/libmpdec.a LIBMPDEC_INCLUDE_PATH=$SRC/mpdecimal-2.5.0/libmpdec make
+LIBMPDEC_A_PATH=$SRC/mpdecimal-2.4.2/libmpdec/libmpdec.a LIBMPDEC_INCLUDE_PATH=$SRC/mpdecimal-2.4.2/libmpdec make
 
 BASE_CXXFLAGS=$CXXFLAGS
 
@@ -104,7 +98,7 @@
 cp $SRC/bignum-fuzzer/fuzzer $OUT/fuzzer_openssl_libgmp_num_len_1200_all_operations_num_loops_1
 
 # Build mbedtls
-cd $SRC/mbedtls
+cd $SRC/mbedtls/crypto
 make lib -j$(nproc)
 
 # Build BoringSSL
@@ -121,7 +115,7 @@
 
 # Build mbedtls module
 cd $SRC/bignum-fuzzer/modules/mbedtls
-MBEDTLS_LIBMBEDCRYPTO_A_PATH=$SRC/mbedtls/library/libmbedcrypto.a MBEDTLS_INCLUDE_PATH=$SRC/mbedtls/include make
+MBEDTLS_LIBMBEDCRYPTO_A_PATH=$SRC/mbedtls/crypto/library/libmbedcrypto.a MBEDTLS_INCLUDE_PATH=$SRC/mbedtls/crypto/include make
 
 # Build BoringSSL/mbedtls fuzzer
 cd $SRC/bignum-fuzzer
diff --git a/projects/bignum-fuzzer/project.yaml b/projects/bignum-fuzzer/project.yaml
index 6de7c9d..92e47f7 100644
--- a/projects/bignum-fuzzer/project.yaml
+++ b/projects/bignum-fuzzer/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/guidovranken/bignum-fuzzer"
-language: c++
 primary_contact: "guidovranken@gmail.com"
 auto_ccs:
     - "martin.swende@ethereum.org"
@@ -12,7 +11,6 @@
     - "agl@google.com"
     - "davidben@google.com"
     - "svaldez@google.com"
-    - "mbed-tls-security@lists.trustedfirmware.org"
+    - "support-mbedtls@arm.com"
     - "libmpdec@gmail.com"
     - "richard@levitte.org"
-main_repo: 'https://github.com/guidovranken/bignum-fuzzer'
diff --git a/projects/bind9/Dockerfile b/projects/bind9/Dockerfile
deleted file mode 100644
index 25ba538..0000000
--- a/projects/bind9/Dockerfile
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-ENV DEBIAN_FRONTEND noninteractive
-RUN apt-get -y update && apt-get -y dist-upgrade
-RUN apt-get -y install		\
-	autoconf		\
-	automake		\
-	autotools-dev		\
-	bison			\
-	build-essential		\
-	libnghttp2-dev		\
-	libssl-dev		\
-	libtool			\
-	libtool-bin		\
-	libuv1-dev		\
-	pkg-config		\
-	zip
-RUN git clone --depth 1 https://gitlab.isc.org/isc-projects/bind9.git
-WORKDIR bind9
-COPY build.sh $SRC/
diff --git a/projects/bind9/build.sh b/projects/bind9/build.sh
deleted file mode 100644
index 933f6b4..0000000
--- a/projects/bind9/build.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh -eu
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build the project
-autoreconf -fi
-./configure --disable-shared --enable-static --enable-developer --without-cmocka --without-zlib --disable-linux-caps --prefix="$WORK" --enable-fuzzing=ossfuzz
-(cd lib/isc && make -j"$(nproc)" all V=1)
-(cd lib/dns && make -j"$(nproc)" all V=1)
-
-LIBISC_CFLAGS="-Ilib/isc/unix/include -Ilib/isc/pthreads/include -Ilib/isc/include"
-LIBDNS_CFLAGS="-Ilib/dns/include"
-LIBISC_LIBS="lib/isc/.libs/libisc.a -Wl,-Bstatic -lssl -lcrypto -luv -lnghttp2 -Wl,-Bdynamic"
-LIBDNS_LIBS="lib/dns/.libs/libdns.a -Wl,-Bstatic -lcrypto -Wl,-Bdynamic"
-
-for fuzzer in fuzz/*.c; do
-    output=$(basename "${fuzzer%.c}")
-    [ "$output" = "main" ] && continue
-    # We need to try little bit harder to link everything statically
-    (cd fuzz && make -j"$(nproc)" "${output}.o" V=1)
-    ${CXX} ${CXXFLAGS} \
-	   -o "${OUT}/${output}_fuzzer" \
-	   "fuzz/${output}.o" \
-	   -include config.h \
-	   $LIBISC_CFLAGS $LIBDNS_CFLAGS \
-	   $LIBDNS_LIBS $LIBISC_LIBS $LIB_FUZZING_ENGINE
-    zip -j "${OUT}/${output}_seed_corpus.zip" "fuzz/${output}.in/"*
-done
diff --git a/projects/bind9/project.yaml b/projects/bind9/project.yaml
deleted file mode 100644
index 82ff413..0000000
--- a/projects/bind9/project.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-homepage: "https://gitlab.isc.org/isc-projects/bind9"
-language: c
-primary_contact: "bind9-dev@isc.org"
-auto_ccs:
-  - "artem@isc.org"
-  - "dfronza@isc.org"
-  - "each@isc.org"
-  - "marka@isc.org"
-  - "matthijs@isc.org"
-  - "michal@isc.org"
-  - "mnowak@isc.org"
-  - "ondrej@isc.org"
-  - "pspacek@isc.org"
-sanitizers:
-  - address
-  - memory:
-     experimental: True
-  - undefined
-main_repo: 'https://gitlab.isc.org/isc-projects/bind9.git'
diff --git a/projects/binutils/Dockerfile b/projects/binutils/Dockerfile
index 694e0bf..9d0b590 100644
--- a/projects/binutils/Dockerfile
+++ b/projects/binutils/Dockerfile
@@ -16,11 +16,9 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 #TODO change
+MAINTAINER bug-binutils@gnu.org
 RUN apt-get update && apt-get install -y make
-RUN apt-get install -y flex bison
 RUN git clone --recursive --depth 1 git://sourceware.org/git/binutils-gdb.git binutils-gdb
 WORKDIR $SRC
 COPY build.sh $SRC/
 COPY fuzz_*.c $SRC/
-COPY fuzz_readelf_seed_corpus $SRC/fuzz_readelf_seed_corpus
-COPY fuzz_readelf.options $SRC/fuzz_readelf.options
diff --git a/projects/binutils/build.sh b/projects/binutils/build.sh
index c5d9038..0c6fcc4 100755
--- a/projects/binutils/build.sh
+++ b/projects/binutils/build.sh
@@ -21,50 +21,15 @@
     export CXXFLAGS="$CXXFLAGS -fno-sanitize=unsigned-integer-overflow"
 fi
 cd binutils-gdb
-
-# Comment out the lines of logging to stderror from elfcomm.c
-# This is to make it nicer to read the output of libfuzzer.
-cd binutils
-sed -i 's/vfprintf (stderr/\/\//' elfcomm.c
-sed -i 's/fprintf (stderr/\/\//' elfcomm.c
-cd ../
-
 ./configure --disable-gdb --enable-targets=all
 make MAKEINFO=true && true
-
-# Make fuzzer directory
 mkdir fuzz
 cp ../fuzz_*.c fuzz/
-cd fuzz
 
-for i in fuzz_disassemble fuzz_bfd; do
+cd fuzz
+ls fuzz_*.c | cut -d. -f1 | while read i; do
     $CC $CFLAGS -I ../include -I ../bfd -I ../opcodes -c $i.c -o $i.o
     $CXX $CXXFLAGS $i.o -o $OUT/$i $LIB_FUZZING_ENGINE ../opcodes/libopcodes.a ../bfd/libbfd.a ../libiberty/libiberty.a ../zlib/libz.a
 done
+
 # TODO build corpuses
-
-# Now compile the src/binutils fuzzers
-cd ../binutils
-
-# First copy the fuzzers, modify applications and copile object files
-for i in readelf; do
-    cp ../../fuzz_$i.c .
-
-    # Modify main functions so we dont have them anymore
-    sed 's/main (int argc/old_main (int argc, char **argv);\nint old_main (int argc/' $i.c >> $i.h
-
-    # Compile object file
-    $CC $CFLAGS -DHAVE_CONFIG_H -I. -I../bfd -I./../bfd -I./../include -I./../zlib -DLOCALEDIR="\"/usr/local/share/locale\"" -Dbin_dummy_emulation=bin_vanilla_emulation -W -Wall -MT fuzz_$i.o -MD -MP -c -o fuzz_$i.o fuzz_$i.c
-done
-
-# Link the files
-## Readelf
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE -W -Wall -I./../zlib -o fuzz_readelf fuzz_readelf.o version.o unwind-ia64.o dwarf.o elfcomm.o ../libctf/.libs/libctf-nobfd.a -L/src/binutils-gdb/zlib -lz ../libiberty/libiberty.a 
-mv fuzz_readelf $OUT/fuzz_readelf
-
-### Set up seed corpus for readelf in the form of a single ELF file. 
-zip fuzz_readelf_seed_corpus.zip /src/fuzz_readelf_seed_corpus/simple_elf
-mv fuzz_readelf_seed_corpus.zip $OUT/ 
-
-## Copy over the options file
-cp $SRC/fuzz_readelf.options $OUT/fuzz_readelf.options
diff --git a/projects/binutils/fuzz_bfd.c b/projects/binutils/fuzz_bfd.c
index e42799c..0afe728 100644
--- a/projects/binutils/fuzz_bfd.c
+++ b/projects/binutils/fuzz_bfd.c
@@ -1,37 +1,28 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
 #include "sysdep.h"
 #include "bfd.h"
 
 #include <stdint.h>
 #include <stdio.h>
-#include <unistd.h>
 
-static int bufferToFile(char * name, const uint8_t *Data, size_t Size) {
-    int fd = mkstemp(name);
-    if (fd < 0) {
-        printf("failed mkstemp, errno=%d\n", errno);
+
+static int bufferToFile(const char * name, const uint8_t *Data, size_t Size) {
+    FILE * fd;
+    if (remove(name) != 0) {
+        if (errno != ENOENT) {
+            printf("failed remove, errno=%d\n", errno);
+            return -1;
+        }
+    }
+    fd = fopen(name, "wb");
+    if (fd == NULL) {
+        printf("failed open, errno=%d\n", errno);
         return -2;
     }
-    if (write (fd, Data, Size) != Size) {
-        printf("failed write, errno=%d\n", errno);
-        close(fd);
+    if (fwrite (Data, 1, Size, fd) != Size) {
+        fclose(fd);
         return -3;
     }
-    close(fd);
+    fclose(fd);
     return 0;
 }
 
@@ -40,7 +31,6 @@
 char *target = NULL;
 
 int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
-    char tmpfilename[32];
     if (initialized == 0) {
         if (bfd_init () != BFD_INIT_MAGIC) {
             abort();
@@ -48,20 +38,17 @@
         initialized = 1;
     }
 
-    strncpy(tmpfilename, "/tmp/fuzz.bfd-XXXXXX", 31);
-    if (bufferToFile(tmpfilename, Data, Size) < 0) {
-        return 0;
+    if (bufferToFile("/tmp/fuzz.bfd", Data, Size) < 0) {
+        abort();
     }
-    bfd *file = bfd_openr (tmpfilename, target);
+    bfd *file = bfd_openr ("/tmp/fuzz.bfd", target);
     if (file == NULL)
     {
-        remove(tmpfilename);
         return 0;
     }
     bfd_check_format (file, bfd_archive);
     //TODO loop over subfiles and more processing
     bfd_close (file);
-    remove(tmpfilename);
 
     return 0;
 }
diff --git a/projects/binutils/fuzz_disassemble.c b/projects/binutils/fuzz_disassemble.c
index af603ca..09e08bb 100644
--- a/projects/binutils/fuzz_disassemble.c
+++ b/projects/binutils/fuzz_disassemble.c
@@ -1,18 +1,3 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
 #include "sysdep.h"
 #include "bfd.h"
 #include "dis-asm.h"
@@ -28,43 +13,45 @@
     size_t pos;
 } SFILE;
 
-static int objdump_sprintf (void *vf, const char *format, ...)
+static int objdump_sprintf (SFILE *f, const char *format, ...)
 {
-    SFILE *f = (SFILE *) vf;
     size_t n;
     va_list args;
 
     va_start (args, format);
     if (f->pos >= MAX_TEXT_SIZE){
         printf("buffer needs more space\n");
-        //reset
-        f->pos=0;
         return 0;
     }
     n = vsnprintf (f->buffer + f->pos, MAX_TEXT_SIZE - f->pos, format, args);
     //vfprintf(stdout, format, args);
     va_end (args);
     f->pos += n;
+
     return n;
 }
 
+static void objdump_print_address (bfd_vma vma, struct disassemble_info *inf)
+{
+    (*inf->fprintf_func) (inf->stream, "0x%x", vma);
+}
 
 int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
     char AssemblyText[MAX_TEXT_SIZE];
     struct disassemble_info disasm_info;
     SFILE s;
+    bfd abfd;
 
-    if (Size < 10 || Size > 16394) {
+    if (Size < 10) {
         // 10 bytes for options
-        // 16394 limit code to prevent timeouts
         return 0;
     }
 
     init_disassemble_info (&disasm_info, stdout, (fprintf_ftype) fprintf);
     disasm_info.fprintf_func = objdump_sprintf;
-    disasm_info.print_address_func = generic_print_address;
+    disasm_info.print_address_func = objdump_print_address;
     disasm_info.display_endian = disasm_info.endian = BFD_ENDIAN_LITTLE;
-    disasm_info.buffer = (bfd_byte *) Data;
+    disasm_info.buffer = Data;
     disasm_info.buffer_vma = 0x1000;
     disasm_info.buffer_length = Size-10;
     disasm_info.insn_info_valid = 0;
@@ -74,24 +61,14 @@
     disasm_info.bytes_per_line = 0;
 
     disasm_info.arch = Data[Size-1];
-    disasm_info.mach = bfd_getl64(&Data[Size-9]);
+    disasm_info.mach = *((unsigned long *) (Data + Size - 9));
     disasm_info.flavour = Data[Size-10];
 
     if (bfd_lookup_arch (disasm_info.arch, disasm_info.mach) != NULL) {
         disassembler_ftype disasfunc = disassembler(disasm_info.arch, 0, disasm_info.mach, NULL);
         if (disasfunc != NULL) {
             disassemble_init_for_target(&disasm_info);
-            while (1) {
-                s.pos = 0;
-                int octets = disasfunc(disasm_info.buffer_vma, &disasm_info);
-                if (octets < (int) disasm_info.octets_per_byte)
-                    break;
-                if (disasm_info.buffer_length <= (size_t) octets)
-                    break;
-                disasm_info.buffer += octets;
-                disasm_info.buffer_vma += octets / disasm_info.octets_per_byte;
-                disasm_info.buffer_length -= octets;
-            }
+            disasfunc(0x1000, &disasm_info);
             disassemble_free_target(&disasm_info);
         }
     }
diff --git a/projects/binutils/fuzz_readelf.c b/projects/binutils/fuzz_readelf.c
deleted file mode 100644
index a222e0c..0000000
--- a/projects/binutils/fuzz_readelf.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-#include "readelf.h"
-
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size);
-int
-LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
-{
-	char filename[256];
-	sprintf(filename, "/tmp/libfuzzer.%d", getpid());
-
-	FILE *fp = fopen(filename, "wb");
-	if (!fp)
-		return 0;
-
-	fwrite(data, size, 1, fp);
-	fclose(fp);
-	do_syms = TRUE;
-	do_reloc = TRUE;
-	do_unwind = TRUE;
-	do_dynamic = TRUE;
-	do_header = TRUE;
-	do_sections = TRUE;
-	do_section_groups = TRUE;
-	do_segments = TRUE;
-	do_version = TRUE;
-	do_histogram = TRUE;
-	do_arch = TRUE;
-	do_notes = TRUE;
-
-    // Main fuzz entrypoint
-	process_file(filename);
-
-	unlink(filename);
-
-	free (dump_ctf_symtab_name);
-	dump_ctf_symtab_name = NULL;
-	free (dump_ctf_strtab_name);
-	dump_ctf_strtab_name = NULL;
-	free (dump_ctf_parent_name);
-	dump_ctf_parent_name = NULL;
-
-	return 0;
-}
diff --git a/projects/binutils/fuzz_readelf.options b/projects/binutils/fuzz_readelf.options
deleted file mode 100644
index f9d0965..0000000
--- a/projects/binutils/fuzz_readelf.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-detect_leaks=0
diff --git a/projects/binutils/fuzz_readelf_seed_corpus/simple_elf b/projects/binutils/fuzz_readelf_seed_corpus/simple_elf
deleted file mode 100755
index deea869..0000000
--- a/projects/binutils/fuzz_readelf_seed_corpus/simple_elf
+++ /dev/null
Binary files differ
diff --git a/projects/binutils/project.yaml b/projects/binutils/project.yaml
index df0ca37..44a487f 100644
--- a/projects/binutils/project.yaml
+++ b/projects/binutils/project.yaml
@@ -1,18 +1,6 @@
 homepage: "https://www.gnu.org/software/binutils/"
-language: c++
 primary_contact: "bug-binutils@gnu.org"
 auto_ccs :
   - "p.antoine@catenacyber.fr"
   - "nickc@redhat.com"
   - "amodra@gmail.com"
-  - "david@adalogics.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
-sanitizers:
-  - address
-  - undefined
-  - memory
-  - dataflow
diff --git a/projects/bleach/Dockerfile b/projects/bleach/Dockerfile
deleted file mode 100644
index 1d31647..0000000
--- a/projects/bleach/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2021 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone \
-	--depth 1 \
-	--branch master \
-	https://github.com/mozilla/bleach.git
-
-WORKDIR bleach
-
-RUN git clone --depth 1 https://github.com/google/fuzzing
-RUN cat fuzzing/dictionaries/html.dict > $OUT/linkify_fuzzer.dict
-RUN cat fuzzing/dictionaries/html.dict > $OUT/sanitize_fuzzer.dict
-
-COPY build.sh sanitize_fuzzer.py linkify_fuzzer.py $SRC/
diff --git a/projects/bleach/build.sh b/projects/bleach/build.sh
deleted file mode 100644
index b3b6179..0000000
--- a/projects/bleach/build.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Build and install project (using current CFLAGS, CXXFLAGS).
-pip3 install .
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find $SRC -name '*_fuzzer.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/bleach/linkify_fuzzer.py b/projects/bleach/linkify_fuzzer.py
deleted file mode 100644
index 6a42b07..0000000
--- a/projects/bleach/linkify_fuzzer.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-import atheris
-import bleach
-
-
-def TestOneInput(input_bytes):
-  fdp = atheris.FuzzedDataProvider(input_bytes)
-  data = fdp.ConsumeUnicode(atheris.ALL_REMAINING)
-
-  bleach.linkify(data)
-
-
-def main():
-  atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
-  atheris.Fuzz()
-
-
-if __name__ == "__main__":
-  main()
diff --git a/projects/bleach/project.yaml b/projects/bleach/project.yaml
deleted file mode 100644
index cc1ef0e..0000000
--- a/projects/bleach/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/mozilla/bleach"
-main_repo: "https://github.com/mozilla/bleach"
-language: python
-primary_contact: "gguthe@mozilla.com"
-auto_ccs:
-  - "jvoisin@google.com"
-  - "ipudney@google.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
diff --git a/projects/bleach/sanitize_fuzzer.py b/projects/bleach/sanitize_fuzzer.py
deleted file mode 100644
index 3337816..0000000
--- a/projects/bleach/sanitize_fuzzer.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-import atheris
-import bleach
-
-
-def TestOneInput(input_bytes):
-  fdp = atheris.FuzzedDataProvider(input_bytes)
-  data = fdp.ConsumeUnicode(atheris.ALL_REMAINING)
-
-  bleach.clean(data)
-
-
-def main():
-  atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
-  atheris.Fuzz()
-
-
-if __name__ == "__main__":
-  main()
diff --git a/projects/bloaty/Dockerfile b/projects/bloaty/Dockerfile
index 7a08527..c41cdb9 100644
--- a/projects/bloaty/Dockerfile
+++ b/projects/bloaty/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jhaberman@gmail.com
 RUN apt-get update && apt-get install -y cmake ninja-build g++
 RUN git clone --depth 1 https://github.com/google/bloaty.git bloaty
 WORKDIR bloaty
diff --git a/projects/bloaty/project.yaml b/projects/bloaty/project.yaml
index db9ecf9..6e74b89 100644
--- a/projects/bloaty/project.yaml
+++ b/projects/bloaty/project.yaml
@@ -1,7 +1,5 @@
 homepage: "https://github.com/google/bloaty"
-language: c++
 primary_contact: "jhaberman@gmail.com"
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/google/bloaty.git'
diff --git a/projects/boost/project.yaml b/projects/boost/project.yaml
index 44949c8..e46f5a4 100644
--- a/projects/boost/project.yaml
+++ b/projects/boost/project.yaml
@@ -1,7 +1,9 @@
 homepage: "http://www.boost.org/"
-language: c++
-primary_contact: "mclow@boost.org"
+
+# TODO: add more boost maintainers here and possibly a mailing list.
+# primary_contact: "someone@boost.org"
 auto_ccs:  
    - "jz.maddock@googlemail.com"
+   - "mclow@boost.org"
    - "bshas3@gmail.com"
-main_repo: 'https://github.com/boostorg/boost.git'
+#   - "someone-else@boost.org"
diff --git a/projects/boringssl/Dockerfile b/projects/boringssl/Dockerfile
index 33cc1c2..4760fbf 100644
--- a/projects/boringssl/Dockerfile
+++ b/projects/boringssl/Dockerfile
@@ -15,12 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y wget \
-    golang binutils cmake ninja-build liblzma-dev libz-dev \
-    pkg-config autoconf libtool
+MAINTAINER mike.aizatsky@gmail.com
+RUN apt-get update && apt-get install -y cmake ninja-build golang
+
 RUN git clone --depth 1 https://boringssl.googlesource.com/boringssl
-# Use ASN.1 pdu protobuf and converter from the google/fuzzing repo.
-RUN git clone --depth 1 https://github.com/google/fuzzing.git
-RUN git clone --depth 1 https://github.com/google/libprotobuf-mutator.git
-RUN (mkdir LPM && cd LPM && cmake ../libprotobuf-mutator -GNinja -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON -DLIB_PROTO_MUTATOR_TESTING=OFF -DCMAKE_BUILD_TYPE=Release && ninja)
-COPY *.cc build.sh $SRC/
\ No newline at end of file
+COPY build.sh $SRC/
diff --git a/projects/boringssl/build.sh b/projects/boringssl/build.sh
index 7e6302f..26d9330 100755
--- a/projects/boringssl/build.sh
+++ b/projects/boringssl/build.sh
@@ -32,6 +32,7 @@
       $CMAKE_DEFINES $SRC/boringssl/
 ninja
 
+
 fuzzerFiles=$(find $SRC/boringssl/fuzz/ -name "*.cc")
 
 find . -name "*.a"
@@ -47,26 +48,3 @@
     zip -j $OUT/${fuzzerName}_seed_corpus.zip $SRC/boringssl/fuzz/${fuzzerName}_corpus/*
   fi
 done
-
-if [[ $CFLAGS != *sanitize=memory* ]]; then
-  fuzzerLPMFiles=$(find $SRC/ -maxdepth 1 -name "*.cc")
-
-  cp $SRC/fuzzing/proto/asn1-pdu/* $SRC/
-
-  rm -rf genfiles && mkdir genfiles && $SRC/LPM/external.protobuf/bin/protoc asn1_pdu.proto --cpp_out=genfiles --proto_path=$SRC/
-
-  for F in $fuzzerLPMFiles
-  do
-    fuzzerName=$(echo ${F#*_})
-    fuzzerName=$(basename $fuzzerName .cc)
-    echo "Building fuzzer $fuzzerName"
-    $CXX $CXXFLAGS -I genfiles -I . -I $SRC/libprotobuf-mutator/ -I $SRC/LPM/external.protobuf/include -I include $LIB_FUZZING_ENGINE \
-        -I $SRC/boringssl/include \
-        $F genfiles/asn1_pdu.pb.cc $SRC/asn1_pdu_to_der.cc $SRC/common.cc \
-        ./ssl/libssl.a ./crypto/libcrypto.a \
-        $SRC/LPM/src/libfuzzer/libprotobuf-mutator-libfuzzer.a \
-        $SRC/LPM/src/libprotobuf-mutator.a \
-        $SRC/LPM/external.protobuf/lib/libprotobuf.a \
-        -o $OUT/"${fuzzerName}_lpm"
-  done
-fi
diff --git a/projects/boringssl/fuzz_certs.cc b/projects/boringssl/fuzz_certs.cc
deleted file mode 100644
index d8d2a24..0000000
--- a/projects/boringssl/fuzz_certs.cc
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-// This fuzz target fuzzes the same API as
-// https://github.com/google/boringssl/blob/master/fuzz/cert.cc, but it employs
-// libprotobuf-mutator for structure-aware fuzzing.
-
-#include <openssl/err.h>
-#include <openssl/mem.h>
-#include <openssl/x509.h>
-#include "asn1_pdu.pb.h"
-#include "asn1_pdu_to_der.h"
-#include "libprotobuf-mutator/src/libfuzzer/libfuzzer_macro.h"
-
-DEFINE_PROTO_FUZZER(const asn1_pdu::PDU& asn1) {
-  asn1_pdu::ASN1PDUToDER converter;
-  std::vector<uint8_t> encoded = converter.PDUToDER(asn1);
-  const uint8_t* buf = encoded.data();
-  size_t len = encoded.size();
-
-  X509* x509 = d2i_X509(NULL, &buf, len);
-  if (x509 != NULL) {
-    // Extract the public key.
-    EVP_PKEY_free(X509_get_pubkey(x509));
-
-    // Reserialize the structure.
-    uint8_t* der = NULL;
-    i2d_X509(x509, &der);
-    OPENSSL_free(der);
-  }
-  X509_free(x509);
-  ERR_clear_error();
-}
\ No newline at end of file
diff --git a/projects/boringssl/fuzz_pkcs12.cc b/projects/boringssl/fuzz_pkcs12.cc
deleted file mode 100644
index 11cded4..0000000
--- a/projects/boringssl/fuzz_pkcs12.cc
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-// This fuzz target fuzzes the same API as
-// https://github.com/google/boringssl/blob/master/fuzz/pkcs12.cc, but it
-// employs libprotobuf-mutator for structure-aware fuzzing.
-
-#include <openssl/bytestring.h>
-#include <openssl/evp.h>
-#include <openssl/pkcs8.h>
-#include <openssl/x509.h>
-#include "asn1_pdu.pb.h"
-#include "asn1_pdu_to_der.h"
-#include "libprotobuf-mutator/src/libfuzzer/libfuzzer_macro.h"
-
-DEFINE_PROTO_FUZZER(const asn1_pdu::PDU& asn1) {
-  asn1_pdu::ASN1PDUToDER converter;
-  std::vector<uint8_t> encoded = converter.PDUToDER(asn1);
-  const uint8_t* buf = encoded.data();
-  size_t len = encoded.size();
-
-  bssl::UniquePtr<STACK_OF(X509)> certs(sk_X509_new_null());
-  EVP_PKEY* key = nullptr;
-  CBS cbs;
-  CBS_init(&cbs, buf, len);
-  PKCS12_get_key_and_certs(&key, certs.get(), &cbs, "foo");
-  EVP_PKEY_free(key);
-}
\ No newline at end of file
diff --git a/projects/boringssl/fuzz_pkcs8.cc b/projects/boringssl/fuzz_pkcs8.cc
deleted file mode 100644
index a657d8b..0000000
--- a/projects/boringssl/fuzz_pkcs8.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-// This fuzz target fuzzes the same API as
-// https://github.com/google/boringssl/blob/master/fuzz/pkcs8.cc, but it employs
-// libprotobuf-mutator for structure-aware fuzzing.
-
-#include <openssl/bytestring.h>
-#include <openssl/err.h>
-#include <openssl/evp.h>
-#include <openssl/mem.h>
-#include "asn1_pdu.pb.h"
-#include "asn1_pdu_to_der.h"
-#include "libprotobuf-mutator/src/libfuzzer/libfuzzer_macro.h"
-
-DEFINE_PROTO_FUZZER(const asn1_pdu::PDU& asn1) {
-  asn1_pdu::ASN1PDUToDER converter;
-  std::vector<uint8_t> encoded = converter.PDUToDER(asn1);
-  const uint8_t* buf = encoded.data();
-  size_t len = encoded.size();
-
-  CBS cbs;
-  CBS_init(&cbs, buf, len);
-  bssl::UniquePtr<EVP_PKEY> pkey(EVP_parse_private_key(&cbs));
-  if (pkey == NULL) {
-    return;
-  }
-
-  uint8_t* der;
-  size_t der_len;
-  bssl::ScopedCBB cbb;
-  if (CBB_init(cbb.get(), 0) &&
-      EVP_marshal_private_key(cbb.get(), pkey.get()) &&
-      CBB_finish(cbb.get(), &der, &der_len)) {
-    OPENSSL_free(der);
-  }
-  ERR_clear_error();
-}
\ No newline at end of file
diff --git a/projects/boringssl/project.yaml b/projects/boringssl/project.yaml
index ab49fcb..5691f93 100644
--- a/projects/boringssl/project.yaml
+++ b/projects/boringssl/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://boringssl.googlesource.com/boringssl/"
-language: c++
 primary_contact: "agl@google.com"
 auto_ccs:
  - "davidben@google.com"
@@ -8,4 +7,3 @@
 - address
 - undefined
 - memory
-main_repo: 'https://boringssl.googlesource.com/boringssl'
diff --git a/projects/botan/Dockerfile b/projects/botan/Dockerfile
index 8055967..d048940 100644
--- a/projects/botan/Dockerfile
+++ b/projects/botan/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jack@randombit.net
 RUN apt-get update && apt-get install -y make python
 RUN git clone --depth 1 https://github.com/randombit/botan.git botan
 RUN git clone --depth 1 https://github.com/randombit/crypto-corpus.git fuzzer_corpus
diff --git a/projects/botan/build.sh b/projects/botan/build.sh
index b88e785..0a3d534 100755
--- a/projects/botan/build.sh
+++ b/projects/botan/build.sh
@@ -22,7 +22,7 @@
 ./configure.py --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" \
                --disable-shared --disable-modules=locking_allocator \
                --unsafe-fuzzer-mode --build-fuzzers=libfuzzer \
-               --without-os-features=getrandom,getentropy --with-fuzzer-lib='FuzzingEngine'
+               --with-fuzzer-lib='FuzzingEngine'
 
 make -j$(nproc) libs
 make -j$(nproc) fuzzers
diff --git a/projects/botan/project.yaml b/projects/botan/project.yaml
index becbd81..12fd93a 100644
--- a/projects/botan/project.yaml
+++ b/projects/botan/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://botan.randombit.net"
-language: c++
 primary_contact: "jack.lloyd@gmail.com"
 auto_ccs:
   - "r.korthaus@sirrix.com"
@@ -9,4 +8,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/randombit/botan.git'
diff --git a/projects/brotli/Dockerfile b/projects/brotli/Dockerfile
index 1f20de2..db25382 100644
--- a/projects/brotli/Dockerfile
+++ b/projects/brotli/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER eustas@chromium.org
 RUN apt-get update && apt-get install -y cmake libtool make
 
 RUN git clone --depth 1 https://github.com/google/brotli.git
diff --git a/projects/brotli/build.sh b/projects/brotli/build.sh
index c6abf66..cf6f5e7 100755
--- a/projects/brotli/build.sh
+++ b/projects/brotli/build.sh
@@ -1,19 +1,4 @@
 #!/bin/bash -eu
-# Copyright 2016 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
 
 cmake . -DBUILD_TESTING=OFF
 make clean
diff --git a/projects/brotli/project.yaml b/projects/brotli/project.yaml
index 5128769..67be80d 100644
--- a/projects/brotli/project.yaml
+++ b/projects/brotli/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/google/brotli"
-language: c++
 primary_contact: "eustas@chromium.org"
 vendor_ccs:
   - "jkew@mozilla.com"
@@ -7,7 +6,6 @@
 fuzzing_engines:
   - libfuzzer
   - afl
-  - honggfuzz
   - dataflow
 sanitizers:
   - address
@@ -17,4 +15,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/google/brotli.git'
diff --git a/projects/brunsli/Dockerfile b/projects/brunsli/Dockerfile
deleted file mode 100644
index 24dc994..0000000
--- a/projects/brunsli/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y cmake libtool make
-
-RUN git clone --depth 1 https://github.com/google/brunsli.git && \
-    cd brunsli && \
-    git submodule update --init --depth 1
-WORKDIR brunsli
-COPY build.sh $SRC/
diff --git a/projects/brunsli/build.sh b/projects/brunsli/build.sh
deleted file mode 100755
index 048bbd0..0000000
--- a/projects/brunsli/build.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cmake . -DBUILD_TESTING=OFF
-make clean
-make -j$(nproc) brunslidec-static
-
-# TODO(eustas): add seed corpus
-
-$CXX $CXXFLAGS -std=c++11 -I./c/include c/tests/fuzz_decode.cc \
-    -o $OUT/fuzz_decode $LIB_FUZZING_ENGINE \
-    ./artifacts/libbrunslidec-static.a ./artifacts/libbrunslicommon-static.a \
-    ./third_party/brotli/libbrotlidec-static.a \
-    ./third_party/brotli/libbrotlicommon-static.a
-
-$CXX $CXXFLAGS -std=c++11 -I./c/include c/tests/fuzz_decode_streaming.cc \
-    -o $OUT/fuzz_decode_streaming $LIB_FUZZING_ENGINE \
-    ./artifacts/libbrunslidec-static.a ./artifacts/libbrunslicommon-static.a \
-    ./third_party/brotli/libbrotlidec-static.a \
-    ./third_party/brotli/libbrotlicommon-static.a
diff --git a/projects/brunsli/project.yaml b/projects/brunsli/project.yaml
deleted file mode 100644
index 26594a8..0000000
--- a/projects/brunsli/project.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-homepage: "https://github.com/google/brunsli"
-language: c++
-primary_contact: "eustas@chromium.org"
-vendor_ccs:
-  - "jkew@mozilla.com"
-  - "twsmith@mozilla.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-sanitizers:
-  - address
-  - memory
-  - undefined
-architectures:
-  - x86_64
-  - i386
-main_repo: 'https://github.com/google/brunsli.git'
diff --git a/projects/bs4/Dockerfile b/projects/bs4/Dockerfile
deleted file mode 100644
index 9a0de07..0000000
--- a/projects/bs4/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt install -y bzr python-lxml python-html5lib
-RUN pip3 install 2to3 soupsieve html5lib lxml
-RUN pip3 install bzr+lp:beautifulsoup
-
-COPY build.sh bs4_fuzzer.py $SRC/
diff --git a/projects/bs4/bs4_fuzzer.py b/projects/bs4/bs4_fuzzer.py
deleted file mode 100644
index 1194261..0000000
--- a/projects/bs4/bs4_fuzzer.py
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import logging
-import sys
-import warnings
-import atheris
-
-from bs4 import BeautifulSoup
-
-
-try:
-  import HTMLParser
-  HTMLParseError = HTMLParser.HTMLParseError
-except ImportError:
-  # HTMLParseError is removed in Python 3.5. Since it can never be
-  # thrown in 3.5, we can just define our own class as a placeholder.
-
-  class HTMLParseError(Exception):
-    pass
-
-
-def TestOneInput(data):
-  """TestOneInput gets random data from the fuzzer, and throws it at bs4."""
-  if len(data) < 1:
-    return
-
-  parsers = ['lxml-xml', 'html5lib', 'html.parser', 'lxml']
-  try:
-    idx = int(data[0]) % len(parsers)
-  except ValueError:
-    return
-
-  try:
-    soup = BeautifulSoup(data[1:], features=parsers[idx])
-  except HTMLParseError:
-    return
-  except ValueError:
-    return
-
-  list(soup.find_all(True))
-  soup.prettify()
-
-
-def main():
-  logging.disable(logging.CRITICAL)
-  warnings.filterwarnings('ignore')
-  atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
-  atheris.Fuzz()
-
-
-if __name__ == "__main__":
-  main()
diff --git a/projects/bs4/build.sh b/projects/bs4/build.sh
deleted file mode 100644
index 111be46..0000000
--- a/projects/bs4/build.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find $SRC -name '*_fuzzer.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_PRELOAD=\$this_dir/sanitizer_with_fuzzer.so \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/bs4/project.yaml b/projects/bs4/project.yaml
deleted file mode 100644
index 2081650..0000000
--- a/projects/bs4/project.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-homepage: "https://www.crummy.com/software/BeautifulSoup/"
-main_repo: "https://code.launchpad.net/~leonardr/beautifulsoup/bs4"
-language: python
-primary_contact: "leonard.richardson@gmail.com"
-auto_ccs:
-  - "jvoisin@google.com"
-  - "ipudney@google.com"
-  - "security@tidelift.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
diff --git a/projects/bzip2/Dockerfile b/projects/bzip2/Dockerfile
index 0031695..356ad82 100644
--- a/projects/bzip2/Dockerfile
+++ b/projects/bzip2/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER bshas3@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool wget
 RUN git clone git://sourceware.org/git/bzip2.git
 RUN git clone git://sourceware.org/git/bzip2-tests.git
diff --git a/projects/bzip2/project.yaml b/projects/bzip2/project.yaml
index 5237e28..3ba800f 100644
--- a/projects/bzip2/project.yaml
+++ b/projects/bzip2/project.yaml
@@ -1,14 +1,13 @@
 homepage: "https://sourceware.org/bzip2/"
-language: c++
 primary_contact: "bzip2fuzzer@gmail.com"
 auto_ccs:
   - "bshas3@gmail.com"
 vendor_ccs:
   - "twsmith@mozilla.com"
+  - "cdiehl@mozilla.com"
 fuzzing_engines:
   - libfuzzer
   - afl
-  - honggfuzz
   - dataflow
 sanitizers:
   - address
diff --git a/projects/c-ares/Dockerfile b/projects/c-ares/Dockerfile
index ea15506..96b4eec 100644
--- a/projects/c-ares/Dockerfile
+++ b/projects/c-ares/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mmoroz@chromium.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 https://github.com/c-ares/c-ares.git
 WORKDIR c-ares
diff --git a/projects/c-ares/build.sh b/projects/c-ares/build.sh
index 2d68ee7..decac11 100755
--- a/projects/c-ares/build.sh
+++ b/projects/c-ares/build.sh
@@ -15,6 +15,12 @@
 #
 ################################################################################
 
+# Remove -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION from CFLAGS
+# as a workaround for https://github.com/google/oss-fuzz/issues/413.
+# It's unclear why the c-ares configure is that picky;
+# a better fix would probably be in the c-ares build system.
+CFLAGS=$(for f in $CFLAGS; do [ $f != "-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" ] && echo $f; done);
+
 # Build the project.
 ./buildconf
 ./configure --enable-debug
@@ -22,16 +28,16 @@
 make -j$(nproc) V=1 all
 
 # Build the fuzzers.
-$CC $CFLAGS -Iinclude -Isrc/lib -c $SRC/c-ares/test/ares-test-fuzz.c -o $WORK/ares-test-fuzz.o
+$CC $CFLAGS -I. -c $SRC/c-ares/test/ares-test-fuzz.c -o $WORK/ares-test-fuzz.o
 $CXX $CXXFLAGS -std=c++11 $WORK/ares-test-fuzz.o \
     -o $OUT/ares_parse_reply_fuzzer \
-    $LIB_FUZZING_ENGINE $SRC/c-ares/src/lib/.libs/libcares.a
+    $LIB_FUZZING_ENGINE $SRC/c-ares/.libs/libcares.a
 
-$CC $CFLAGS -Iinclude -Isrc/lib -c $SRC/c-ares/test/ares-test-fuzz-name.c \
+$CC $CFLAGS -I. -c $SRC/c-ares/test/ares-test-fuzz-name.c \
     -o $WORK/ares-test-fuzz-name.o
 $CXX $CXXFLAGS -std=c++11 $WORK/ares-test-fuzz-name.o \
     -o $OUT/ares_create_query_fuzzer \
-    $LIB_FUZZING_ENGINE $SRC/c-ares/src/lib/.libs/libcares.a
+    $LIB_FUZZING_ENGINE $SRC/c-ares/.libs/libcares.a
 
 # Archive and copy to $OUT seed corpus if the build succeeded.
 zip -j $OUT/ares_parse_reply_fuzzer_seed_corpus.zip $SRC/c-ares/test/fuzzinput/*
diff --git a/projects/c-ares/project.yaml b/projects/c-ares/project.yaml
index aed3272..70f5bed 100644
--- a/projects/c-ares/project.yaml
+++ b/projects/c-ares/project.yaml
@@ -1,13 +1,5 @@
 homepage: "https://c-ares.haxx.se/"
-language: c++
 primary_contact: "drysdale@google.com"
-auto_ccs:
-  - "daniel.haxx@gmail.com"
-  - "brad@brad-house.com"
-fuzzing_engines:
-  - afl
-  - libfuzzer
-  - honggfuzz
 sanitizers:
   - address
   - memory
@@ -15,4 +7,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/c-ares/c-ares.git'
diff --git a/projects/c-blosc/Dockerfile b/projects/c-blosc/Dockerfile
index 5037037..aed3eca 100644
--- a/projects/c-blosc/Dockerfile
+++ b/projects/c-blosc/Dockerfile
@@ -15,7 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER blosc.oss.fuzz@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool cmake
 RUN git clone --depth 1 https://github.com/Blosc/c-blosc.git c-blosc
 WORKDIR c-blosc
-COPY build.sh $SRC/
\ No newline at end of file
+COPY build.sh blosc_fuzzer.cc $SRC/
diff --git a/projects/c-blosc/blosc_fuzzer.cc b/projects/c-blosc/blosc_fuzzer.cc
new file mode 100644
index 0000000..c769c38
--- /dev/null
+++ b/projects/c-blosc/blosc_fuzzer.cc
@@ -0,0 +1,33 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include <stddef.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "blosc/blosc.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+  if (size < BLOSC_MIN_HEADER_LENGTH) return 0;
+
+  size_t nbytes, cbytes, blocksize;
+  blosc_cbuffer_sizes(data, &nbytes, &cbytes, &blocksize);
+  if (cbytes != size) return 0;
+  if (nbytes == 0) return 0;
+
+  void *output = malloc(nbytes);
+  blosc_decompress_ctx(data, output, nbytes, /*numinternalthreads=*/1);
+  free(output);
+  return 0;
+}
diff --git a/projects/c-blosc/build.sh b/projects/c-blosc/build.sh
index 4b1a5a6..311ed2c 100755
--- a/projects/c-blosc/build.sh
+++ b/projects/c-blosc/build.sh
@@ -15,15 +15,17 @@
 #
 ################################################################################
 
-# Build project
-cmake . -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DBUILD_FUZZERS=ON
-make clean
+# build project
+mkdir -p build_dir
+pushd build_dir
+cmake ..
 make -j$(nproc)
+popd
 
-# Package seed corpus
-zip -j $OUT/decompress_fuzzer_seed_corpus.zip compat/*.cdata
-
-# Copy the fuzzer executables, zip-ed corpora, and dictionary files to $OUT
-find . -name '*_fuzzer' -exec cp -v '{}' $OUT ';'
-find . -name '*_fuzzer.dict' -exec cp -v '{}' $OUT ';'
-find . -name '*_fuzzer_seed_corpus.zip' -exec cp -v '{}' $OUT ';'
\ No newline at end of file
+# build fuzzers
+for fuzzers in $(find $SRC -name '*_fuzzer.cc'); do
+  fuzz_basename=$(basename -s .cc $fuzzers)
+  $CXX $CXXFLAGS -std=c++11 -I. -I../blosc/ \
+  $fuzzers $LIB_FUZZING_ENGINE ./build_dir/blosc/libblosc.a  \
+  -o $OUT/$fuzz_basename
+done
diff --git a/projects/c-blosc/project.yaml b/projects/c-blosc/project.yaml
index 2e1fc80..0dc2bbb 100644
--- a/projects/c-blosc/project.yaml
+++ b/projects/c-blosc/project.yaml
@@ -1,13 +1,8 @@
 homepage: "https://github.com/Blosc/c-blosc"
-language: c++
 primary_contact: "blosc.oss.fuzz@gmail.com"
-auto_ccs:
-  - "nathan.moinvaziri@gmail.com"
 sanitizers:
   - address
   - memory
-  - undefined
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/Blosc/c-blosc.git'
diff --git a/projects/c-blosc2/Dockerfile b/projects/c-blosc2/Dockerfile
deleted file mode 100644
index cdd4200..0000000
--- a/projects/c-blosc2/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool cmake
-RUN git clone --depth 1 https://github.com/Blosc/c-blosc2.git c-blosc2
-WORKDIR c-blosc2
-COPY build.sh $SRC/
\ No newline at end of file
diff --git a/projects/c-blosc2/build.sh b/projects/c-blosc2/build.sh
deleted file mode 100755
index afe771d..0000000
--- a/projects/c-blosc2/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Build project
-export LDSHARED=lld
-
-cmake . -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DBUILD_FUZZERS=ON
-make clean
-make -j$(nproc)
-
-# Package seed corpus
-zip -j $OUT/decompress_chunk_fuzzer_seed_corpus.zip compat/*.cdata
-zip -j $OUT/decompress_frame_fuzzer_seed_corpus.zip tests/fuzz/corpus/*
-
-# Copy the fuzzer executables, zip-ed corpora, and dictionary files to $OUT
-find . -name '*_fuzzer' -exec cp -v '{}' $OUT ';'
-find . -name '*_fuzzer.dict' -exec cp -v '{}' $OUT ';'
-find . -name '*_fuzzer_seed_corpus.zip' -exec cp -v '{}' $OUT ';'
diff --git a/projects/c-blosc2/project.yaml b/projects/c-blosc2/project.yaml
deleted file mode 100644
index 7d8bb8e..0000000
--- a/projects/c-blosc2/project.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-homepage: "https://github.com/Blosc/c-blosc2"
-language: c++
-primary_contact: "blosc.oss.fuzz@gmail.com"
-auto_ccs:
-  - "nathan.moinvaziri@gmail.com"
-sanitizers:
-  - address
-  - memory
-  - undefined
-architectures:
-  - x86_64
-  - i386
-main_repo: 'https://github.com/Blosc/c-blosc2.git'
diff --git a/projects/cairo/Dockerfile b/projects/cairo/Dockerfile
deleted file mode 100644
index 7463bbd..0000000
--- a/projects/cairo/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2018 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y python3-pip gtk-doc-tools libffi-dev
-RUN pip3 install -U meson==0.55.3 ninja
-
-RUN git clone --depth 1 git://git.sv.nongnu.org/freetype/freetype2.git
-ADD https://ftp.gnome.org/pub/gnome/sources/glib/2.64/glib-2.64.2.tar.xz $SRC
-RUN tar xvJf $SRC/glib-2.64.2.tar.xz
-RUN git clone --depth 1 https://gitlab.freedesktop.org/cairo/cairo.git && \
-    zip -q $SRC/cairo_seed_corpus.zip $SRC/cairo/test/reference/*
-
-ADD https://raw.githubusercontent.com/google/fuzzing/master/dictionaries/png.dict $SRC/cairo.dict
-
-WORKDIR $SRC/cairo
-COPY targets $SRC/fuzz
-COPY build.sh $SRC/
diff --git a/projects/cairo/build.sh b/projects/cairo/build.sh
deleted file mode 100755
index 655103e..0000000
--- a/projects/cairo/build.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2018 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-PREFIX=$WORK/prefix
-mkdir -p $PREFIX
-
-export PKG_CONFIG="`which pkg-config` --static"
-export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
-export PATH=$PREFIX/bin:$PATH
-
-BUILD=$WORK/build
-
-rm -rf $WORK/*
-rm -rf $BUILD
-mkdir -p $BUILD
-
-# Build glib
-pushd $SRC/glib-2.64.2
-meson \
-    --prefix=$PREFIX \
-    --libdir=lib \
-    --default-library=static \
-    -Db_lundef=false \
-    -Doss_fuzz=enabled \
-    -Dlibmount=disabled \
-    -Dinternal_pcre=true \
-    _builddir
-ninja -C _builddir
-ninja -C _builddir install
-popd
-
-pushd $SRC/freetype2
-./autogen.sh
-./configure --prefix="$PREFIX" --disable-shared PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
-make -j$(nproc)
-make install
-
-# Build cairo
-pushd $SRC/cairo
-meson \
-    --prefix=$PREFIX \
-    --libdir=lib \
-    --default-library=static \
-    _builddir
-ninja -C _builddir
-ninja -C _builddir install
-popd
-
-mv $SRC/{*.zip,*.dict} $OUT
-
-if [ ! -f "${OUT}/cairo_seed_corpus.zip" ]; then
-  echo "missing seed corpus"
-  exit 1
-fi
-
-if [ ! -f "${OUT}/cairo.dict" ]; then
-  echo "missing dictionary"
-  exit 1
-fi
-
-PREDEPS_LDFLAGS="-Wl,-Bdynamic -ldl -lm -lc -pthread -lrt -lpthread"
-DEPS="gmodule-2.0 glib-2.0 gio-2.0 gobject-2.0 freetype2 cairo cairo-gobject" 
-BUILD_CFLAGS="$CFLAGS `pkg-config --static --cflags $DEPS`"
-BUILD_LDFLAGS="-Wl,-static `pkg-config --static --libs $DEPS`"
-
-fuzzers=$(find $SRC/fuzz/ -name "*_fuzzer.c")
-for f in $fuzzers; do
-  fuzzer_name=$(basename $f .c)
-  $CC $CFLAGS $BUILD_CFLAGS \
-    -c $f -o $WORK/${fuzzer_name}.o
-  $CXX $CXXFLAGS \
-    $WORK/${fuzzer_name}.o -o $OUT/${fuzzer_name} \
-    $PREDEPS_LDFLAGS \
-    $BUILD_LDFLAGS \
-    $LIB_FUZZING_ENGINE \
-    -Wl,-Bdynamic
-  ln -sf $SRC/cairo_seed_corpus.zip $OUT/${fuzzer_name}_seed_corpus.zip
-  ln -sf $SRC/cairo.dict $OUT/${fuzzer_name}.dict
-done
diff --git a/projects/cairo/project.yaml b/projects/cairo/project.yaml
deleted file mode 100644
index 9a078de..0000000
--- a/projects/cairo/project.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-homepage: https://gitlab.freedesktop.org/cairo/cairo
-language: c
-primary_contact: security-tps@google.com
-auto_ccs:
-  - "psychon@znc.in"
-sanitizers:
-  - address
-  - undefined
-vendor_ccs:
-  - "jkew@mozilla.com"
-  - "jmuizelaar@mozilla.com"
-  - "twsmith@mozilla.com"
-view_restrictions: none
-main_repo: 'https://gitlab.freedesktop.org/cairo/cairo.git'
diff --git a/projects/cairo/targets/fuzzer_temp_file.h b/projects/cairo/targets/fuzzer_temp_file.h
deleted file mode 100644
index 158b497..0000000
--- a/projects/cairo/targets/fuzzer_temp_file.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2018 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Adapter utility from fuzzer input to a temporary file, for fuzzing APIs that
-// require a file instead of an input buffer.
-
-#ifndef FUZZER_TEMP_FILE_H_
-#define FUZZER_TEMP_FILE_H_
-
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-// Pure-C interface for creating and cleaning up temporary files.
-
-static char* fuzzer_get_tmpfile(const uint8_t* data, size_t size) {
-    char* filename_buffer = strdup("/tmp/generate_temporary_file.XXXXXX");
-    if (!filename_buffer) {
-        perror("Failed to allocate file name buffer.");
-        abort();
-    }
-    const int file_descriptor = mkstemp(filename_buffer);
-    if (file_descriptor < 0) {
-        perror("Failed to make temporary file.");
-        abort();
-    }
-    FILE* file = fdopen(file_descriptor, "wb");
-    if (!file) {
-        perror("Failed to open file descriptor.");
-        close(file_descriptor);
-        abort();
-    }
-    const size_t bytes_written = fwrite(data, sizeof(uint8_t), size, file);
-    if (bytes_written < size) {
-        close(file_descriptor);
-        fprintf(stderr, "Failed to write all bytes to file (%zu out of %zu)",
-                bytes_written, size);
-        abort();
-    }
-    fclose(file);
-    return filename_buffer;
-}
-
-static void fuzzer_release_tmpfile(char* filename) {
-    if (unlink(filename) != 0) {
-        perror("WARNING: Failed to delete temporary file.");
-    }
-    free(filename);
-}
-
-// C++ RAII object for creating temporary files.
-
-#ifdef __cplusplus
-class FuzzerTemporaryFile {
-    public:
-        FuzzerTemporaryFile(const uint8_t* data, size_t size)
-            : filename_(fuzzer_get_tmpfile(data, size)) {}
-
-        ~FuzzerTemporaryFile() { fuzzer_release_tmpfile(filename_); }
-
-        const char* filename() const { return filename_; }
-
-    private:
-        char* filename_;
-};
-#endif
-
-#endif  // FUZZER_TEMP_FILE_H_
diff --git a/projects/cairo/targets/pdf_surface_fuzzer.c b/projects/cairo/targets/pdf_surface_fuzzer.c
deleted file mode 100644
index 7967d1d..0000000
--- a/projects/cairo/targets/pdf_surface_fuzzer.c
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cairo.h>
-#include <cairo-pdf.h>
-#include "fuzzer_temp_file.h"
-
-const double width_in_inches = 3;
-const double height_in_inches = 3;
-const double width_in_points = width_in_inches * 72.0;
-const double height_in_points = height_in_inches * 72.0;
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    cairo_t *cr;
-    cairo_surface_t *surface;
-    cairo_status_t status;
-
-    if (size == 0) {
-        return 0;
-    }
-
-    char *tmpfile = fuzzer_get_tmpfile(data, size);
-    surface = cairo_pdf_surface_create(tmpfile, width_in_points, height_in_points);
-    status = cairo_surface_status(surface);
-    if (status != CAIRO_STATUS_SUCCESS) {
-        fuzzer_release_tmpfile(tmpfile);
-        return 0;
-    }
-
-    char *buf = (char *) calloc(size + 1, sizeof(char));
-    memcpy(buf, data, size);
-    buf[size] = '\0';
-
-    cairo_pdf_surface_set_metadata(surface, CAIRO_PDF_METADATA_TITLE, buf);
-    cr = cairo_create(surface);
-    cairo_tag_begin(cr, buf, NULL);
-    cairo_tag_end(cr, buf);
-
-    cairo_destroy(cr);
-    cairo_surface_destroy(surface);
-    free(buf);
-    fuzzer_release_tmpfile(tmpfile);
-    return 0;
-}
diff --git a/projects/cairo/targets/raster_fuzzer.c b/projects/cairo/targets/raster_fuzzer.c
deleted file mode 100644
index e7f9bc1..0000000
--- a/projects/cairo/targets/raster_fuzzer.c
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cairo.h>
-#include <cairo-pdf.h>
-#include "fuzzer_temp_file.h"
-
-static cairo_surface_t *
-acquire (cairo_pattern_t *pattern, void *closure,
-	     cairo_surface_t *target,
-	     const cairo_rectangle_int_t *extents)
-{
-    return cairo_image_surface_create_from_png(closure);
-}
-
-static void
-release (cairo_pattern_t *pattern, void *closure, cairo_surface_t *surface)
-{
-    cairo_surface_destroy(surface);
-}
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    cairo_t *cr;
-    cairo_surface_t *surface;
-    cairo_pattern_t *pattern;
-    cairo_content_t content;
-    cairo_status_t status;
-    int w, h;
-
-    char *tmpfile = fuzzer_get_tmpfile(data, size);
-    surface = cairo_image_surface_create_from_png(tmpfile);
-    status = cairo_surface_status (surface);
-    if (status != CAIRO_STATUS_SUCCESS) {
-        fuzzer_release_tmpfile(tmpfile);
-        return 0;
-    }
-
-    cr = cairo_create(surface);
-    content = cairo_surface_get_content(surface);
-    w = cairo_image_surface_get_width(surface);
-    h = cairo_image_surface_get_height(surface);
-
-    char *buf = (char *) calloc(size + 1, sizeof(char));
-    memcpy(buf, data, size);
-    buf[size] = '\0';
-
-    pattern = cairo_pattern_create_raster_source(buf, content, w, h);
-    cairo_raster_source_pattern_set_acquire (pattern, acquire, release);
-    cairo_set_source(cr, pattern);
-    cairo_pdf_surface_set_page_label(surface, buf);
-    cairo_pdf_surface_set_metadata(surface, CAIRO_PDF_METADATA_KEYWORDS, buf);
-    cairo_paint(cr);
-
-    cairo_destroy(cr);
-    cairo_pattern_destroy(pattern);
-    cairo_surface_destroy(surface);
-    free(buf);
-    fuzzer_release_tmpfile(tmpfile);
-    return 0;
-}
diff --git a/projects/cairo/targets/surface_write_png_fuzzer.c b/projects/cairo/targets/surface_write_png_fuzzer.c
deleted file mode 100644
index 9819fa2..0000000
--- a/projects/cairo/targets/surface_write_png_fuzzer.c
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cairo.h>
-#include "fuzzer_temp_file.h"
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    cairo_surface_t *image;
-    cairo_surface_t *surface;
-    cairo_status_t status;
-    cairo_format_t format;
-
-    char *tmpfile = fuzzer_get_tmpfile(data, size);
-    image = cairo_image_surface_create_from_png(tmpfile);
-    status = cairo_surface_status (image);
-    if (status != CAIRO_STATUS_SUCCESS) {
-        fuzzer_release_tmpfile(tmpfile);
-        return 0;
-    }
-
-    format = cairo_image_surface_get_format(image);
-    surface = cairo_image_surface_create_for_data((unsigned char*)data, format, 1, 1, size);
-    status = cairo_surface_status (surface);
-    if (status != CAIRO_STATUS_SUCCESS) {
-        cairo_surface_destroy(image);
-        fuzzer_release_tmpfile(tmpfile);
-        return 0;
-    }
-    cairo_surface_write_to_png(surface, tmpfile);
-
-    cairo_surface_destroy(surface);
-    cairo_surface_destroy(image);
-    fuzzer_release_tmpfile(tmpfile);
-    return 0;
-}
diff --git a/projects/cairo/targets/text_glyphs_fuzzer.c b/projects/cairo/targets/text_glyphs_fuzzer.c
deleted file mode 100644
index 41c180d..0000000
--- a/projects/cairo/targets/text_glyphs_fuzzer.c
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cairo.h>
-#include "fuzzer_temp_file.h"
-
-const int glyph_range = 9;
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    if (size < glyph_range) {
-        return 0;
-    }
-    cairo_t *cr;
-    cairo_surface_t *surface;
-    cairo_status_t status;
-    cairo_text_extents_t extents;
-    cairo_text_cluster_t cluster;
-
-    char *tmpfile = fuzzer_get_tmpfile(data, size);
-    surface = cairo_image_surface_create_from_png(tmpfile);
-    status = cairo_surface_status(surface);
-    if (status != CAIRO_STATUS_SUCCESS) {
-        fuzzer_release_tmpfile(tmpfile);
-        return 0;
-    }
-
-    char *buf = (char *) calloc(size + 1, sizeof(char));
-    memcpy(buf, data, size);
-    buf[size] = '\0';
-
-    cr = cairo_create(surface);
-    cairo_text_extents(cr, buf, &extents);
-    cluster.num_bytes = size;
-    cluster.num_glyphs = 1;
-    for (int i = 0; i < glyph_range; i++) {
-        // Taken from test/text-glyph-range.c
-        cairo_glyph_t glyph = {
-            (long int)data[i], 10 * i, 25
-        };
-        cairo_show_text_glyphs(cr, buf, size, &glyph, 1, &cluster, 1, 0);
-    }
-
-    cairo_destroy(cr);
-    cairo_surface_destroy(surface);
-    free(buf);
-    fuzzer_release_tmpfile(tmpfile);
-    return 0;
-}
diff --git a/projects/capnproto/Dockerfile b/projects/capnproto/Dockerfile
deleted file mode 100644
index dffaa45..0000000
--- a/projects/capnproto/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y cmake zlib1g-dev
-RUN git clone --depth 1 https://github.com/capnproto/capnproto
-WORKDIR $SRC/capnproto
-COPY build.sh $SRC/
diff --git a/projects/capnproto/build.sh b/projects/capnproto/build.sh
deleted file mode 100755
index 176418d..0000000
--- a/projects/capnproto/build.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-mkdir build
-cd build
-cmake -DBUILD_SHARED_LIBS=OFF ..
-make -j$(nproc)
-cp c++/src/capnp/*fuzzer* $OUT/
diff --git a/projects/capnproto/project.yaml b/projects/capnproto/project.yaml
deleted file mode 100644
index e8cffba..0000000
--- a/projects/capnproto/project.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-homepage: "https://capnproto.org"
-language: c++
-primary_contact: "security@sandstorm.io"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
-sanitizers:
-  - address
-main_repo: 'https://github.com/capnproto/capnproto'
diff --git a/projects/capstone/Dockerfile b/projects/capstone/Dockerfile
index 6f157a9..d4ef223 100644
--- a/projects/capstone/Dockerfile
+++ b/projects/capstone/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER capstone.engine@gmail.com
 RUN apt-get update && apt-get install -y make cmake python python-setuptools
 RUN git clone --depth 1 --branch v4 https://github.com/aquynh/capstone.git capstonev4
 RUN git clone --depth 1 --branch next https://github.com/aquynh/capstone.git capstonenext
diff --git a/projects/capstone/build.sh b/projects/capstone/build.sh
index b0da123..35720ea 100755
--- a/projects/capstone/build.sh
+++ b/projects/capstone/build.sh
@@ -32,7 +32,6 @@
     sed -i -e 's/#print/print/' capstone/__init__.py
     (
     export CFLAGS=""
-    export AFL_NOOPT=1
     python setup.py install
     )
     cd $SRC/capstone$branch/suite
diff --git a/projects/capstone/project.yaml b/projects/capstone/project.yaml
index 6042f72..ea91d82 100644
--- a/projects/capstone/project.yaml
+++ b/projects/capstone/project.yaml
@@ -1,9 +1,7 @@
 homepage: "https://www.capstone-engine.org"
-language: c++
 primary_contact: "capstone.engine@gmail.com"
 auto_ccs : 
   - "p.antoine@catenacyber.fr"
-  - "stalkr@stalkr.net"
 fuzzing_engines:
   - libfuzzer
   - afl
@@ -14,4 +12,3 @@
   - memory
   - undefined
   - dataflow
-main_repo: 'https://github.com/aquynh/capstone.git'
diff --git a/projects/cascadia/Dockerfile b/projects/cascadia/Dockerfile
deleted file mode 100644
index 094b5e1..0000000
--- a/projects/cascadia/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/andybalholm/cascadia
-
-COPY build.sh $SRC/
-WORKDIR $SRC/cascadia
diff --git a/projects/cascadia/build.sh b/projects/cascadia/build.sh
deleted file mode 100755
index 4643b2c..0000000
--- a/projects/cascadia/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-compile_go_fuzzer github.com/andybalholm/cascadia/fuzz Fuzz fuzz
diff --git a/projects/cascadia/project.yaml b/projects/cascadia/project.yaml
deleted file mode 100644
index fba3e9e..0000000
--- a/projects/cascadia/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/andybalholm/cascadia"
-primary_contact: "cascadia@balholm.com"
-auto_ccs :
-  - "adam@adalogics.com"
-language: go
-fuzzing_engines:
-- libfuzzer
-sanitizers:
-- address
-main_repo: 'https://github.com/andybalholm/cascadia'
diff --git a/projects/casync/Dockerfile b/projects/casync/Dockerfile
index da6bab7..6351a4c 100644
--- a/projects/casync/Dockerfile
+++ b/projects/casync/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER zbyszek@in.waw.pl
 RUN apt-get update && \
     apt-get install -y \
         python3-pip pkg-config wget \
diff --git a/projects/casync/project.yaml b/projects/casync/project.yaml
index e2d38b8..23ec8b0 100644
--- a/projects/casync/project.yaml
+++ b/projects/casync/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/casync/casync"
-language: c++
 primary_contact: "lennart@poettering.net"
 sanitizers:
   - address
@@ -9,4 +8,3 @@
   - zbyszek@in.waw.pl
   - poettering@gmail.com
   - fsumsal@redhat.com
-main_repo: 'https://github.com/systemd/casync'
diff --git a/projects/cctz/Dockerfile b/projects/cctz/Dockerfile
deleted file mode 100644
index 7882330..0000000
--- a/projects/cctz/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf libgtest-dev
-RUN git clone --depth 1 https://github.com/google/cctz
-WORKDIR $SRC/cctz
-
-COPY build.sh $SRC/
-COPY fuzz_* $SRC/
-
diff --git a/projects/cctz/build.sh b/projects/cctz/build.sh
deleted file mode 100755
index b83b4f5..0000000
--- a/projects/cctz/build.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-mkdir build && cd build
-cmake -DBUILD_TESTING=OFF ../
-make
-
-# Compile fuzzers
-cp $SRC/fuzz* .
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE ./fuzz_cctz.cc ./libcctz.a  -I../include/ -o $OUT/fuzz_cctz
diff --git a/projects/cctz/fuzz_cctz.cc b/projects/cctz/fuzz_cctz.cc
deleted file mode 100644
index 2096152..0000000
--- a/projects/cctz/fuzz_cctz.cc
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2020 Google LLC
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include <iostream>
-#include <string>
-
-#include "cctz/civil_time.h"
-#include "cctz/time_zone.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-	FuzzedDataProvider fuzzed_data(data, size);
-
-	cctz::time_zone lax;
-	std::string tz = fuzzed_data.ConsumeRandomLengthString();
-	if (load_time_zone(tz, &lax)) {
-		std::chrono::system_clock::time_point tp;
-		std::string date_format = fuzzed_data.ConsumeRandomLengthString();
-		std::string parse_format = fuzzed_data.ConsumeRandomLengthString();
-		cctz::parse(parse_format, date_format, lax, &tp);
-
-		const auto t1 = cctz::convert(cctz::civil_second(
-				fuzzed_data.ConsumeIntegral<uint32_t>(),
-				fuzzed_data.ConsumeIntegral<uint32_t>(),
-				fuzzed_data.ConsumeIntegral<uint32_t>(),
-				fuzzed_data.ConsumeIntegral<uint32_t>(),
-				fuzzed_data.ConsumeIntegral<uint32_t>(),
-				fuzzed_data.ConsumeIntegral<uint32_t>()), lax);
-		std::string format = fuzzed_data.ConsumeRandomLengthString();
-		cctz::format(format, t1, lax);
-	}
-
-	return 0;
-}
diff --git a/projects/cctz/project.yaml b/projects/cctz/project.yaml
deleted file mode 100644
index 58562e6..0000000
--- a/projects/cctz/project.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-homepage: "https://github.com/google/cctz"
-language: c++
-primary_contact: "david@adalogics.com"
diff --git a/projects/cel-cpp/.bazelrc b/projects/cel-cpp/.bazelrc
deleted file mode 100644
index f55fb55..0000000
--- a/projects/cel-cpp/.bazelrc
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Force the use of Clang for C++ builds.
-build --action_env=CC=clang
-build --action_env=CXX=clang++
-
-build:oss-fuzz --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing_oss_fuzz//:oss_fuzz_engine
-build:oss-fuzz --@rules_fuzzing//fuzzing:cc_engine_instrumentation=oss-fuzz
-build:oss-fuzz --@rules_fuzzing//fuzzing:cc_engine_sanitizer=none
diff --git a/projects/cel-cpp/BUILD b/projects/cel-cpp/BUILD
deleted file mode 100644
index 6fdd773..0000000
--- a/projects/cel-cpp/BUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-load("@rules_fuzzing//fuzzing:cc_defs.bzl", "cc_fuzz_test")
-
-cc_fuzz_test(
-	name = "fuzz_parse",
-	deps = ["//parser"],
-	srcs = ["fuzz_parse.cc"],
-)
diff --git a/projects/cel-cpp/Dockerfile b/projects/cel-cpp/Dockerfile
deleted file mode 100644
index 6c4b67e..0000000
--- a/projects/cel-cpp/Dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone --depth 1 https://github.com/google/cel-cpp/
-COPY build.sh $SRC/
-RUN mkdir $SRC/cel-cpp/fuzz/
-COPY BUILD fuzz*.cc $SRC/cel-cpp/fuzz/
-COPY WORKSPACE .bazelrc $SRC/
-RUN cat WORKSPACE >> $SRC/cel-cpp/WORKSPACE
-RUN cat .bazelrc >> $SRC/cel-cpp/.bazelrc
-RUN echo "4.0.0" > $SRC/cel-cpp/.bazelversion
-WORKDIR $SRC/cel-cpp
diff --git a/projects/cel-cpp/WORKSPACE b/projects/cel-cpp/WORKSPACE
deleted file mode 100644
index bc59fa0..0000000
--- a/projects/cel-cpp/WORKSPACE
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-http_archive(
-    name = "fuzzing_rules_python",
-    url = "https://github.com/bazelbuild/rules_python/releases/download/0.1.0/rules_python-0.1.0.tar.gz",
-    sha256 = "b6d46438523a3ec0f3cead544190ee13223a52f6a6765a29eae7b7cc24cc83a0",
-)
-
-http_archive(
-    name = "rules_fuzzing",
-    sha256 = "a5734cb42b1b69395c57e0bbd32ade394d5c3d6afbfe782b24816a96da24660d",
-    strip_prefix = "rules_fuzzing-0.1.1",
-    urls = ["https://github.com/bazelbuild/rules_fuzzing/archive/v0.1.1.zip"],
-    repo_mapping = {
-        "@rules_python": "@fuzzing_rules_python",
-    },
-)
-
-load("@rules_fuzzing//fuzzing:repositories.bzl", "rules_fuzzing_dependencies")
-
-rules_fuzzing_dependencies()
-
-load("@rules_fuzzing//fuzzing:init.bzl", "rules_fuzzing_init")
-
-rules_fuzzing_init()
diff --git a/projects/cel-cpp/build.sh b/projects/cel-cpp/build.sh
deleted file mode 100755
index 5a6315a..0000000
--- a/projects/cel-cpp/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-declare -r QUERY='
-    let all_fuzz_tests = attr(tags, "fuzz-test", "//...") in
-    $all_fuzz_tests - attr(tags, "no-oss-fuzz", $all_fuzz_tests)
-'
-
-declare -r PACKAGE_SUFFIX="_oss_fuzz"
-declare -r OSS_FUZZ_TESTS="$(bazel query "${QUERY}" | sed "s/$/${PACKAGE_SUFFIX}/")"
-
-bazel build -c opt --config=oss-fuzz --linkopt=-lc++ \
-    --action_env=CC="${CC}" --action_env=CXX="${CXX}" \
-    ${OSS_FUZZ_TESTS[*]}
-
-for oss_fuzz_archive in $(find bazel-bin/ -name "*${PACKAGE_SUFFIX}.tar"); do
-    tar -xvf "${oss_fuzz_archive}" -C "${OUT}"
-done
diff --git a/projects/cel-cpp/fuzz_parse.cc b/projects/cel-cpp/fuzz_parse.cc
deleted file mode 100644
index f4755d3..0000000
--- a/projects/cel-cpp/fuzz_parse.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-#include <string>
-
-#include "parser/parser.h"
-
-#define MAX_RECURSION 0x100
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-    std::string str (reinterpret_cast<const char*>(data), size);
-    try {
-        auto parse_status = google::api::expr::parser::Parse(str, "fuzzinput", MAX_RECURSION);
-        if (!parse_status.ok()) {
-            parse_status.status().message();
-        }
-    } catch (const std::exception& e) {
-        return 0;
-    }
-    return 0;
-}
diff --git a/projects/cel-cpp/project.yaml b/projects/cel-cpp/project.yaml
deleted file mode 100644
index ad4bf90..0000000
--- a/projects/cel-cpp/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://opensource.google/projects/cel"
-language: c++
-primary_contact: "kyessenov@gmail.com"
-auto_ccs :
-- "tswadell@google.com"
-- "p.antoine@catenacyber.fr"
-
-sanitizers:
-- address
-- memory
-main_repo: 'https://github.com/google/cel-cpp'
diff --git a/projects/chakra/Dockerfile b/projects/chakra/Dockerfile
new file mode 100644
index 0000000..27db5db
--- /dev/null
+++ b/projects/chakra/Dockerfile
@@ -0,0 +1,22 @@
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER ochang@google.com
+RUN apt-get update && apt-get install -y build-essential cmake libicu-dev python
+RUN git clone --depth 1 https://github.com/Microsoft/ChakraCore.git chakra
+WORKDIR chakra
+COPY build.sh $SRC/
diff --git a/projects/chakra/build.sh b/projects/chakra/build.sh
new file mode 100755
index 0000000..bde4088
--- /dev/null
+++ b/projects/chakra/build.sh
@@ -0,0 +1,32 @@
+#!/bin/bash -eu
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+DISABLED_WARNINGS='-Wno-everything'
+
+# Inject additional C/CXXFLAGS
+cat <<EOF > /usr/local/bin/cmake
+#!/bin/sh
+/usr/bin/cmake \\
+  -DCMAKE_C_FLAGS="\$CFLAGS $DISABLED_WARNINGS" \\
+  -DCMAKE_CXX_FLAGS="\$CXXFLAGS $DISABLED_WARNINGS" \\
+  "\$@"
+EOF
+
+chmod +x /usr/local/bin/cmake
+
+./build.sh --test-build --static --embed-icu --cc="$(which clang)" --cxx="$(which clang++)" -j -v -y
+cp out/Test/ch $OUT
diff --git a/projects/chakra/project.yaml b/projects/chakra/project.yaml
new file mode 100644
index 0000000..7fbcae6
--- /dev/null
+++ b/projects/chakra/project.yaml
@@ -0,0 +1,6 @@
+homepage: "https://github.com/Microsoft/ChakraCore"
+primary_contact: "ChakraCoreEng@microsoft.com"
+fuzzing_engines:
+  - none
+sanitizers:
+  - address
diff --git a/projects/cifuzz-example/Dockerfile b/projects/cifuzz-example/Dockerfile
deleted file mode 100644
index af1fd05..0000000
--- a/projects/cifuzz-example/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make
-
-RUN git clone https://github.com/jonathanmetzman/cifuzz-example.git
-WORKDIR cifuzz-example
-COPY build.sh $SRC/
diff --git a/projects/cifuzz-example/build.sh b/projects/cifuzz-example/build.sh
deleted file mode 100755
index 57aa208..0000000
--- a/projects/cifuzz-example/build.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-echo $PWD
-ls .
-make clean  # Not strictly necessary, since we are building in a fresh dir.
-make -j$(nproc) all    # Build the fuzz targets.
-# make -j$(nproc) check  # Sanity check, not strictly required, but nice to have.
-
-# Copy the fuzzer executables, zip-ed corpora, option and dictionary files to $OUT
-find . -name '*_fuzzer' -exec cp -v '{}' $OUT ';'
-find . -name '*_fuzzer.dict' -exec cp -v '{}' $OUT ';'     # If you have dictionaries.
-find . -name '*_fuzzer.options' -exec cp -v '{}' $OUT ';'  # If you have custom options.
-find . -name '*_fuzzer_seed_corpus.zip' -exec cp -v '{}' $OUT ';' # If you have seed corpora (you better have them!)
diff --git a/projects/cifuzz-example/project.yaml b/projects/cifuzz-example/project.yaml
deleted file mode 100644
index 778c69a..0000000
--- a/projects/cifuzz-example/project.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-language: c++
-sanitizers:
-  - address
-
-disabled: true
-
-primary_contact:
-  fake@example.com
-main_repo: 'https://github.com/jonathanmetzman/cifuzz-example.git'
diff --git a/projects/cilium/Dockerfile b/projects/cilium/Dockerfile
deleted file mode 100644
index 89f2f00..0000000
--- a/projects/cilium/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y wget
-RUN wget https://raw.githubusercontent.com/google/AFL/master/dictionaries/json.dict -O $OUT/fuzz.dict
-
-RUN git clone --depth 1 https://github.com/dvyukov/go-fuzz-corpus
-RUN zip $OUT/fuzz_seed_corpus.zip go-fuzz-corpus/json/corpus/*
-
-RUN git clone https://github.com/cilium/cilium/ cilium
-RUN cp $SRC/cilium/test/fuzzing/oss-fuzz-build.sh $SRC/build.sh
-WORKDIR $SRC/cilium
diff --git a/projects/cilium/project.yaml b/projects/cilium/project.yaml
deleted file mode 100644
index 0d75f44..0000000
--- a/projects/cilium/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://cilium.io"
-language: go
-primary_contact: "security@cilium.io"
-auto_ccs:
-- "tom@isovalent.com"
-- "natalia@isovalent.com"
-- "adam@adalogics.com"
-fuzzing_engines:
-- libfuzzer
-sanitizers:
-- address
diff --git a/projects/civetweb/Dockerfile b/projects/civetweb/Dockerfile
deleted file mode 100755
index 523cf01..0000000
--- a/projects/civetweb/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y zlib1g-dev
-RUN git clone https://github.com/civetweb/civetweb
-
-WORKDIR $SRC/civetweb
-COPY build.sh $SRC/
diff --git a/projects/civetweb/build.sh b/projects/civetweb/build.sh
deleted file mode 100755
index 413dd5a..0000000
--- a/projects/civetweb/build.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-sed -i 's/CFLAGS += -g -fsanitize=address,fuzzer,undefined/#CFLAGS += -g -fsanitize=address,fuzzer,undefined/' ./Makefile
-export LDFLAGS="${LIB_FUZZING_ENGINE} ${CFLAGS}"
-
-chmod +x ./fuzztest/build.sh
-./fuzztest/build.sh
-mv civetweb_fuzz* $OUT/
diff --git a/projects/civetweb/project.yaml b/projects/civetweb/project.yaml
deleted file mode 100755
index f191b2a..0000000
--- a/projects/civetweb/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/civetweb/civetweb"
-primary_contact: "bel2125@gmail.com"
-language: c
-fuzzing_engines:
-  - libfuzzer
-  - honggfuzz
-  - dataflow
-auto_ccs:
-  - "xt4ubq@gmail.com"
-  - "david@adalogics.com"
-main_repo: 'https://github.com/civetweb/civetweb'
diff --git a/projects/cjson/Dockerfile b/projects/cjson/Dockerfile
index 30597b8..925dd66 100644
--- a/projects/cjson/Dockerfile
+++ b/projects/cjson/Dockerfile
@@ -17,6 +17,7 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 
+MAINTAINER randy408@protonmail.com
 
 RUN apt-get update && apt-get install -y cmake
 
diff --git a/projects/cjson/project.yaml b/projects/cjson/project.yaml
index 25128b4..14ed6b1 100644
--- a/projects/cjson/project.yaml
+++ b/projects/cjson/project.yaml
@@ -1,17 +1,5 @@
 homepage: "https://github.com/DaveGamble/cJSON"
-language: c++
 primary_contact: "max@maxbruckner.de"
 auto_ccs:
   - "randy440088@gmail.com"
   - "wp_scut@163.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
-sanitizers:
-  - address
-  - undefined
-  - memory
-  - dataflow
-main_repo: 'https://github.com/DaveGamble/cJSON.git'
diff --git a/projects/clamav/Dockerfile b/projects/clamav/Dockerfile
index 0d4cc03..f91236d 100644
--- a/projects/clamav/Dockerfile
+++ b/projects/clamav/Dockerfile
@@ -15,22 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y \
-    flex bison \
-    python3-dev \
-    pkg-config
-
-#
-# Build static libs for dependencies
-#
-RUN python3 -m pip install mussels
-RUN git clone --depth 1 https://github.com/Cisco-Talos/clamav-mussels-cookbook.git
-
-RUN mkdir /mussels
-RUN cd ${SRC}/clamav-mussels-cookbook && \
-    msl build clamav_deps -t host-static -w /mussels/work -i /mussels/install
-
-# Collect clamav source & fuzz corpus
+MAINTAINER clamav.fuzz@gmail.com
+RUN apt-get update && apt-get install -y libssl-dev libcurl4-openssl-dev
 RUN git clone --depth 1 https://github.com/Cisco-Talos/clamav-devel.git
 RUN git clone --depth 1 https://github.com/Cisco-Talos/clamav-fuzz-corpus.git
 
diff --git a/projects/clamav/build.sh b/projects/clamav/build.sh
index 1f7e902..716bc8a 100755
--- a/projects/clamav/build.sh
+++ b/projects/clamav/build.sh
@@ -15,43 +15,20 @@
 #
 ################################################################################
 
-set -ex
-export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
-
 #
 # Build the library.
 #
 rm -rf ${WORK}/build
 mkdir -p ${WORK}/build
 cd ${WORK}/build
+ac_cv_c_mmap_anonymous=no ${SRC}/clamav-devel/configure --disable-mempool --enable-fuzz=yes --with-libjson=no --with-pcre=no --enable-static=yes --enable-shared=no --disable-llvm --host=x86_64-unknown-linux-gnu
+make clean
+make -j"$(nproc)"
 
 #
-# Run ./configure
+# Build the fuzz targets.
 #
-export CLAMAV_DEPENDENCIES=/mussels/install
-cmake ${SRC}/clamav-devel \
-    -DENABLE_FUZZ=ON                                                   \
-    -DHAVE_MMAP=OFF                                                    \
-    -DJSONC_INCLUDE_DIR="$CLAMAV_DEPENDENCIES/include/json-c"          \
-    -DJSONC_LIBRARY="$CLAMAV_DEPENDENCIES/lib/libjson-c.a"             \
-    -DENABLE_JSON_SHARED=OFF                                           \
-    -DBZIP2_INCLUDE_DIR="$CLAMAV_DEPENDENCIES/include"                 \
-    -DBZIP2_LIBRARY_RELEASE="$CLAMAV_DEPENDENCIES/lib/libbz2_static.a" \
-    -DOPENSSL_ROOT_DIR="$CLAMAV_DEPENDENCIES"                          \
-    -DOPENSSL_INCLUDE_DIR="$CLAMAV_DEPENDENCIES/include"               \
-    -DOPENSSL_CRYPTO_LIBRARY="$CLAMAV_DEPENDENCIES/lib/libcrypto.a"    \
-    -DOPENSSL_SSL_LIBRARY="$CLAMAV_DEPENDENCIES/lib/libssl.a"          \
-    -DZLIB_LIBRARY="$CLAMAV_DEPENDENCIES/lib/libssl.a"                 \
-    -DLIBXML2_INCLUDE_DIR="$CLAMAV_DEPENDENCIES/include"               \
-    -DLIBXML2_LIBRARY="$CLAMAV_DEPENDENCIES/lib/libxml2.a"             \
-    -DPCRE2_INCLUDE_DIR="$CLAMAV_DEPENDENCIES/include"                 \
-    -DPCRE2_LIBRARY="$CLAMAV_DEPENDENCIES/lib/libpcre2-8.a"            \
-    -DZLIB_INCLUDE_DIR="$CLAMAV_DEPENDENCIES/include"                  \
-    -DZLIB_LIBRARY="$CLAMAV_DEPENDENCIES/lib/libz.a"                   \
-    -DCMAKE_INSTALL_PREFIX="install"
-
-# Build libclamav and the fuzz targets
-make -j4
+make -j"$(nproc)" fuzz-all
 cp ./fuzz/clamav_* ${OUT}/.
 
 #
@@ -63,16 +40,16 @@
 mkdir ${WORK}/all-scantype-seeds
 
 for type in ARCHIVE MAIL OLE2 PDF HTML PE ELF SWF XMLDOCS HWP3; do
-    # Prepare seed corpus for the type-specific fuzz targets.
-    zip ${OUT}/clamav_scanfile_${type}_fuzzer_seed_corpus.zip ${SRC}/clamav-fuzz-corpus/scantype/${type}/*
-    zip ${OUT}/clamav_scanmap_${type}_fuzzer_seed_corpus.zip ${SRC}/clamav-fuzz-corpus/scantype/${type}/*
+	# Prepare seed corpus for the type-specific fuzz targets.
+	zip ${OUT}/clamav_scanfile_${type}_fuzzer_seed_corpus.zip ${SRC}/clamav-fuzz-corpus/scantype/${type}/*
+	zip ${OUT}/clamav_scanmap_${type}_fuzzer_seed_corpus.zip ${SRC}/clamav-fuzz-corpus/scantype/${type}/*
 
-    # Prepare dictionary for the type-specific fuzz targets (may not exist for all types).
-    cp ${SRC}/clamav-fuzz-corpus/scantype/${type}.dict ${OUT}/clamav_scanfile_${type}_fuzzer.dict 2>/dev/null || :
-    cp ${SRC}/clamav-fuzz-corpus/scantype/${type}.dict ${OUT}/clamav_scanmap_${type}_fuzzer.dict 2>/dev/null || :
+	# Prepare dictionary for the type-specific fuzz targets (may not exist for all types).
+	cp ${SRC}/clamav-fuzz-corpus/scantype/${type}.dict ${OUT}/clamav_scanfile_${type}_fuzzer.dict 2>/dev/null || :
+	cp ${SRC}/clamav-fuzz-corpus/scantype/${type}.dict ${OUT}/clamav_scanmap_${type}_fuzzer.dict 2>/dev/null || :
 
-    # Copy seeds for the generic fuzz target.
-    cp ${SRC}/clamav-fuzz-corpus/scantype/${type}/* ${WORK}/all-scantype-seeds/
+	# Copy seeds for the generic fuzz target.
+	cp ${SRC}/clamav-fuzz-corpus/scantype/${type}/* ${WORK}/all-scantype-seeds/
 done
 
 # Prepare seed corpus for the generic fuzz target.
@@ -84,9 +61,9 @@
 # `dbload`
 # --------
 for type in CDB CFG CRB FP FTM HDB HSB IDB IGN IGN2 LDB MDB MSB NDB PDB WDB YARA; do
-    # Prepare seed corpus for the type-specific fuzz targets.
-    zip ${OUT}/clamav_dbload_${type}_fuzzer_seed_corpus.zip ${SRC}/clamav-fuzz-corpus/database/${type}/*
+	# Prepare seed corpus for the type-specific fuzz targets.
+	zip ${OUT}/clamav_dbload_${type}_fuzzer_seed_corpus.zip ${SRC}/clamav-fuzz-corpus/database/${type}/*
 
-    # Prepare dictionary for the type-specific fuzz targets (may not exist for all types).
-    cp ${SRC}/clamav-fuzz-corpus/database/${type}.dict ${OUT}/clamav_dbload_${type}_fuzzer.dict 2>/dev/null || :
+	# Prepare dictionary for the type-specific fuzz targets (may not exist for all types).
+	cp ${SRC}/clamav-fuzz-corpus/database/${type}.dict ${OUT}/clamav_dbload_${type}_fuzzer.dict 2>/dev/null || :
 done
diff --git a/projects/clamav/project.yaml b/projects/clamav/project.yaml
index 1f8f5d7..ab52b8d 100644
--- a/projects/clamav/project.yaml
+++ b/projects/clamav/project.yaml
@@ -1,12 +1,7 @@
 homepage: "https://www.clamav.net/"
-language: c++
 primary_contact: "clamav.fuzz@gmail.com"
 auto_ccs:
     - clamav-bugs@external.cisco.com
 sanitizers:
  - address
  - undefined
-fuzzing_engines:
- - libfuzzer
- - afl
-main_repo: 'https://github.com/Cisco-Talos/clamav-devel.git'
diff --git a/projects/clib/Dockerfile b/projects/clib/Dockerfile
deleted file mode 100644
index 92e1490..0000000
--- a/projects/clib/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake ninja libcurl4-gnutls-dev -qq
-RUN git clone https://github.com/clibs/clib
-WORKDIR $SRC/
-COPY build.sh $SRC/
diff --git a/projects/clib/build.sh b/projects/clib/build.sh
deleted file mode 100644
index c48ba9d..0000000
--- a/projects/clib/build.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd clib
-make -j$(nproc)
-
-sed 's/int main(int argc/int main2(int argc/g' -i ./src/clib-search.c
-sed 's/int main(int argc/int main2(int argc/g' -i ./src/clib-configure.c
-
-find . -name "*.o" -exec ar rcs fuzz_lib.a {} \;
-
-$CC $CFLAGS -Wno-unused-function -U__STRICT_ANSI__  \
-	-DHAVE_PTHREADS=1 -pthread -o fuzz_manifest.o \
-	-c test/fuzzing/fuzz_manifest.c -I./asprintf -I./deps/ \
-	-I./deps/asprintf
-
-$CC $CFLAGS $LIB_FUZZING_ENGINE fuzz_manifest.o \
-	-o $OUT/fuzz_manifest src/common/clib-package.c \
-	src/common/clib-cache.c src/clib-configure.c \
-	-I./deps/asprintf -I./deps -I./asprintf \
-	fuzz_lib.a -L/usr/lib/x86_64-linux-gnu -lcurl
-
diff --git a/projects/clib/project.yaml b/projects/clib/project.yaml
deleted file mode 100644
index bc58713..0000000
--- a/projects/clib/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: "https://github.com/clibs/clib"
-language: c
-primary_contact: "joseph.werle@gmail.com"
-auto_ccs:
-  - "Adam@adalogics.com"
-  - "isty001@gmail.com"
-main_repo: 'https://github.com/clibs/clib'
diff --git a/projects/clickhouse/project.yaml b/projects/clickhouse/project.yaml
deleted file mode 100644
index 9c0c7cf..0000000
--- a/projects/clickhouse/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://clickhouse.tech/"
-language: c++
-primary_contact: "clickhouse-feedback@yandex-team.com"
-auto_ccs:
- - "security@yandex-team.com"
- - "kyprizel@gmail.com"
diff --git a/projects/cmake/Dockerfile b/projects/cmake/Dockerfile
deleted file mode 100644
index 2b7c2ef..0000000
--- a/projects/cmake/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool \
-  pkg-config libssl-dev
-RUN git clone --depth 1 https://gitlab.kitware.com/cmake/cmake CMake
-RUN git clone --depth 1 https://github.com/strongcourage/fuzzing-corpus
-WORKDIR CMake
-COPY build.sh $SRC/
diff --git a/projects/cmake/build.sh b/projects/cmake/build.sh
deleted file mode 100755
index 01bb41b..0000000
--- a/projects/cmake/build.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Build CMake.
-mkdir build-dir && cd build-dir
-../bootstrap && make -j$(nproc)
-
-
-# Build fuzzers.
-cd ../Tests/Fuzzing
-$CXX $CXXFLAGS -I../../Source \
-	-I../../build-dir/Source \
-	-c xml_parser_fuzzer.cc \
-	-o xml_parser_fuzzer.o 
-
-
-export cmexpat_dir="${SRC}/CMake/build-dir/Utilities/cmexpat/CMakeFiles/cmexpat.dir/lib"
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE \
-		xml_parser_fuzzer.o -o $OUT/xml_parser_fuzzer \
-		../../build-dir/Source/CMakeFiles/CMakeLib.dir/cmXMLParser.cxx.o \
-		$cmexpat_dir/xmlparse.c.o \
-		$cmexpat_dir/xmlrole.c.o \
-		$cmexpat_dir/xmltok.c.o	
-
-
-# Build seed corpus
-zip $OUT/xml_parser_fuzzer_seed_corpus.zip $SRC/fuzzing-corpus/xml/test.xml
diff --git a/projects/cmake/project.yaml b/projects/cmake/project.yaml
deleted file mode 100644
index 8ab3533..0000000
--- a/projects/cmake/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://gitlab.kitware.com/cmake/cmake"
-main_repo: "https://gitlab.kitware.com/cmake/cmake"
-language: c
-primary_contact: "brad.king@kitware.com"
-auto_ccs:
-  - "Adam@adalogics.com"
-sanitizers:
-  - address
-  - undefined
-  - memory
diff --git a/projects/cmark/Dockerfile b/projects/cmark/Dockerfile
index 99d8112..ad404ac 100644
--- a/projects/cmark/Dockerfile
+++ b/projects/cmark/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER philipturnbull@github.com
 RUN apt-get update && apt-get install -y make cmake
 RUN git clone --depth 1 https://github.com/commonmark/cmark.git cmark
 WORKDIR cmark
diff --git a/projects/cmark/cmark_fuzzer.options b/projects/cmark/cmark_fuzzer.options
index 99957c1..58e0755 100644
--- a/projects/cmark/cmark_fuzzer.options
+++ b/projects/cmark/cmark_fuzzer.options
@@ -1,2 +1,3 @@
 [libfuzzer]
 dict = cmark.dict
+max_len = 256
diff --git a/projects/cmark/project.yaml b/projects/cmark/project.yaml
index 0d1a887..06a0be9 100644
--- a/projects/cmark/project.yaml
+++ b/projects/cmark/project.yaml
@@ -1,7 +1,7 @@
 homepage: "http://commonmark.org"
-language: c++
 primary_contact: "jgm@berkeley.edu"
 auto_ccs:
+  - "kivikakk@github.com"
   - "wellnhofer@aevum.de"
 fuzzing_engines:
   - libfuzzer
@@ -16,4 +16,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/commonmark/cmark.git'
diff --git a/projects/cosign/Dockerfile b/projects/cosign/Dockerfile
deleted file mode 100644
index f0282dd..0000000
--- a/projects/cosign/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/sigstore/cosign
-
-COPY build.sh $SRC/
-WORKDIR $SRC/cosign
diff --git a/projects/cosign/build.sh b/projects/cosign/build.sh
deleted file mode 100755
index 87d865d..0000000
--- a/projects/cosign/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-compile_go_fuzzer github.com/sigstore/cosign/test FuzzGetPassword fuzz_getPassword gofuzz
diff --git a/projects/cosign/project.yaml b/projects/cosign/project.yaml
deleted file mode 100644
index dc5735f..0000000
--- a/projects/cosign/project.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-homepage: https://sigstore.dev/
-language: go 
-primary_contact: "priyawadhwa@google.com"
-main_repo: "https://github.com/sigstore/cosign"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
diff --git a/projects/cpp-httplib/Dockerfile b/projects/cpp-httplib/Dockerfile
deleted file mode 100644
index 3889e5c..0000000
--- a/projects/cpp-httplib/Dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool
-
-# Install brotli.
-RUN apt-get install -y libbrotli-dev
-
-# Install zlib.
-RUN apt-get update && apt-get install -y zlib1g-dev
-
-RUN git clone --depth 1 https://github.com/yhirose/cpp-httplib.git cpp-httplib
-
-WORKDIR cpp-httplib
-COPY build.sh $SRC/
diff --git a/projects/cpp-httplib/build.sh b/projects/cpp-httplib/build.sh
deleted file mode 100755
index 0cdbd80..0000000
--- a/projects/cpp-httplib/build.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Build fuzz targets specified  in test/Makefile.
-cd test/fuzzing && make -j$(nproc) server_fuzzer
-
-# Copy the fuzzer executables, zip-ed corpora, option and dictionary files to $OUT.
-find . -name '*_fuzzer' -exec cp -v '{}' $OUT ';'          # Copy fuzz-target.
-find . -name '*_fuzzer.dict' -exec cp -v '{}' $OUT ';'     # Copy dictionaries.
-find . -name '*_fuzzer_seed_corpus.zip' -exec cp -v '{}' $OUT ';' # Copy seed corpora.
diff --git a/projects/cpp-httplib/project.yaml b/projects/cpp-httplib/project.yaml
deleted file mode 100644
index 0c90fa0..0000000
--- a/projects/cpp-httplib/project.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-homepage: "https://github.com/yhirose/cpp-httplib"
-language: c++
-primary_contact: "yuji.hirose.bug@gmail.com"
-auto_ccs :
-  - "cpp-httplib-oss-fuzz@googlegroups.com"
-  - "omkarjadhav@google.com"
-  - "hlivingstone@google.com"
-  - "kalaskar@google.com"
-  - "ankitlohia@google.com"
-sanitizers:
-  - address
-  - dataflow
-  - undefined
-  - memory
-main_repo: 'https://github.com/yhirose/cpp-httplib.git'
diff --git a/projects/cppcheck/Dockerfile b/projects/cppcheck/Dockerfile
index 5bec928..2686254 100644
--- a/projects/cppcheck/Dockerfile
+++ b/projects/cppcheck/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER daniel.marjamaki@gmail.com
 
 RUN git clone https://github.com/danmar/cppcheck.git
 
diff --git a/projects/cppcheck/project.yaml b/projects/cppcheck/project.yaml
index 97f737d..09fc7aa 100644
--- a/projects/cppcheck/project.yaml
+++ b/projects/cppcheck/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://cppcheck.sourceforge.net"
-language: c++
 primary_contact: "daniel.marjamaki@gmail.com"
 auto_ccs:
   - "daniel.marjamaki@gmail.com"
@@ -7,4 +6,3 @@
 sanitizers:
   - address
   - undefined
-main_repo: 'https://github.com/danmar/cppcheck.git'
diff --git a/projects/cpython3/Dockerfile b/projects/cpython3/Dockerfile
index 6ca60d4..154076b 100644
--- a/projects/cpython3/Dockerfile
+++ b/projects/cpython3/Dockerfile
@@ -1,4 +1,5 @@
 FROM gcr.io/oss-fuzz-base/base-builder
+LABEL maintainer="aaskar@google.com; ammar@ammaraskar.com"
 
 RUN apt-get update
 RUN apt-get install -y build-essential libncursesw5-dev \
diff --git a/projects/cpython3/project.yaml b/projects/cpython3/project.yaml
index 7edfd24..25ec319 100644
--- a/projects/cpython3/project.yaml
+++ b/projects/cpython3/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://python.org/"
-language: c++
 primary_contact: "gps@google.com"
 auto_ccs:
  - "alex.gaynor@gmail.com"
diff --git a/projects/cras/Dockerfile b/projects/cras/Dockerfile
index 71b2b12..e6cce9a 100644
--- a/projects/cras/Dockerfile
+++ b/projects/cras/Dockerfile
@@ -2,29 +2,16 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 #
-# Copyright 2018 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
 # Defines a docker image that can build cras fuzzers.
 #
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER dgreid@chromium.org
 
 RUN apt-get -y update && \
       apt-get install -y \
       automake \
       build-essential \
+      cargo \
       cmake \
       g++ \
       git \
@@ -36,7 +23,6 @@
       libsbc-dev \
       libsndfile-dev \
       libspeexdsp-dev \
-      libsystemd-dev \
       libtool \
       libudev-dev \
       wget \
@@ -50,14 +36,11 @@
       chmod 644 /usr/local/include/dictionary.h /usr/local/include/iniparser.h && \
       chmod 644 /usr/local/lib/libiniparser.a && \
       chmod 755 /usr/local/lib/libiniparser.so.*
-
-RUN cd /tmp && git clone https://github.com/google/googletest.git -b v1.8.x && \
-      cd googletest && \
-      mkdir build && cd build && \
-      cmake .. -DBUILD_SHARED_LIBS=ON \
-         -DINSTALL_GTEST=ON \
-         -DCMAKE_INSTALL_PREFIX:PATH=/usr && \
-      make && make install
+RUN cd /usr/src/gtest && \
+      cmake . && \
+      make && \
+      chmod 644 *.a && \
+      cp *.a /usr/local/lib
 
 # Need to build and install alsa so there is a static lib.
 RUN mkdir -p /tmp/alsa-build && cd /tmp/alsa-build && \
diff --git a/projects/cras/build.sh b/projects/cras/build.sh
index 84f50b1..1ade076 100755
--- a/projects/cras/build.sh
+++ b/projects/cras/build.sh
@@ -3,44 +3,22 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 #
-# Copyright 2018 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
 # Builds fuzzers from within a container into /out/ directory.
 # Expects /src/cras to contain a cras checkout.
 
 cd ${SRC}/adhd/cras
 ./git_prepare.sh
-./configure
+./configure --disable-dbus --disable-webrtc-apm
+cargo build --release --manifest-path $SRC/adhd/cras/src/server/rust/Cargo.toml && \
+  cp $SRC/adhd/cras/src/server/rust/target/release/libcras_rust.a /usr/local/lib
 make -j$(nproc)
-cp ${SRC}/adhd/cras/src/server/rust/target/release/libcras_rust.a /usr/local/lib
 
-CRAS_FUZZERS="rclient_message cras_hfp_slc"
-
-for fuzzer in ${CRAS_FUZZERS};
-do
 $CXX $CXXFLAGS $FUZZER_LDFLAGS \
-  ${SRC}/adhd/cras/src/fuzz/${fuzzer}.cc -o ${OUT}/${fuzzer} \
+  ${SRC}/adhd/cras/src/fuzz/rclient_message.cc -o ${OUT}/rclient_message \
   -I ${SRC}/adhd/cras/src/server \
   -I ${SRC}/adhd/cras/src/common \
-  $(pkg-config --cflags dbus-1) \
   ${SRC}/adhd/cras/src/.libs/libcrasserver.a \
-  -lcras_rust -lpthread -lrt -ludev -ldl -lm -lsystemd \
+  -lcras_rust -lpthread -lrt -ludev -ldl -lm \
   $LIB_FUZZING_ENGINE \
-  -Wl,-Bstatic -liniparser -lasound -lspeexdsp -ldbus-1 -lsbc -Wl,-Bdynamic
-done
-
+  -Wl,-Bstatic -liniparser -lasound -lspeexdsp -Wl,-Bdynamic
 zip -j ${OUT}/rclient_message_corpus.zip ${SRC}/adhd/cras/src/fuzz/corpus/*
-cp "${SRC}/adhd/cras/src/fuzz/cras_hfp_slc.dict" "${OUT}/cras_hfp_slc.dict"
diff --git a/projects/cras/project.yaml b/projects/cras/project.yaml
index 330b025..1f2ec11 100644
--- a/projects/cras/project.yaml
+++ b/projects/cras/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.chromium.org"
-language: c++
 primary_contact: "dgreid@chromium.org"
 auto_ccs:
   - "hychao@chromium.org"
@@ -9,4 +8,3 @@
   - "enshuo@chromium.org"
   - "tzungbi@chromium.org"
   - "cujomalainey@chromium.org"
-main_repo: 'https://chromium.googlesource.com/chromiumos/third_party/adhd'
diff --git a/projects/cryptofuzz/Dockerfile b/projects/cryptofuzz/Dockerfile
index 7ed5d42..1629cec 100644
--- a/projects/cryptofuzz/Dockerfile
+++ b/projects/cryptofuzz/Dockerfile
@@ -15,45 +15,32 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 
-RUN apt-get update && \
-    apt-get install -y apt-transport-https ca-certificates gnupg software-properties-common wget && \
-    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | apt-key add - && \
-    apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main' && \
-    apt-get update && \
-    apt-get install -y software-properties-common python-software-properties make autoconf automake libtool build-essential cmake mercurial gyp ninja-build zlib1g-dev libsqlite3-dev bison flex texinfo
+RUN apt-get update && apt-get install -y software-properties-common python-software-properties make autoconf automake libtool build-essential cmake libboost-all-dev wget mercurial gyp ninja-build zlib1g-dev libsqlite3-dev
+
+# BoringSSL needs Go to build
+RUN add-apt-repository -y ppa:gophers/archive && apt-get update && apt-get install -y golang-1.9-go
+RUN ln -s /usr/lib/go-1.9/bin/go /usr/bin/go
 
 RUN git clone --depth 1 https://github.com/guidovranken/cryptofuzz
 RUN git clone --depth 1 https://github.com/guidovranken/cryptofuzz-corpora
 RUN git clone --depth 1 https://github.com/openssl/openssl
+
 RUN git clone --depth 1 https://boringssl.googlesource.com/boringssl
 RUN git clone --depth 1 https://github.com/libressl-portable/portable libressl
 RUN cd $SRC/libressl && ./update.sh
 RUN git clone --depth 1 https://github.com/weidai11/cryptopp/
-RUN git clone --depth 1 git://git.gnupg.org/libgcrypt.git
+RUN git clone --depth 1 https://dev.gnupg.org/source/libgcrypt.git
 RUN wget https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.36.tar.bz2
 RUN git clone --depth 1 -b oss-fuzz https://github.com/project-everest/hacl-star evercrypt
 RUN git clone --depth 1 https://github.com/google/cityhash.git
+RUN git clone --depth 1 https://github.com/golang/go
 RUN git clone --depth 1 https://github.com/randombit/botan.git
 RUN git clone --depth 1 https://github.com/wolfSSL/wolfssl.git
-RUN git clone --depth 1 https://github.com/ARMmbed/mbedtls.git
+RUN git clone --depth 1 https://github.com/ARMmbed/mbed-crypto.git
 RUN hg clone https://hg.mozilla.org/projects/nspr
 RUN hg clone https://hg.mozilla.org/projects/nss
-RUN git clone --depth 1 https://github.com/jedisct1/libsodium.git
-RUN git clone --depth 1 https://github.com/libtom/libtomcrypt.git
-RUN git clone --depth 1 https://github.com/microsoft/SymCrypt.git
-RUN git clone --depth 1 https://git.lysator.liu.se/nettle/nettle
-RUN hg clone https://gmplib.org/repo/gmp/ libgmp/
-RUN wget https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.0.tar.gz
-RUN git clone --depth 1 https://github.com/indutny/bn.js.git
-RUN git clone --depth 1 https://github.com/MikeMcl/bignumber.js.git
-RUN git clone --depth 1 https://github.com/guidovranken/libfuzzer-js.git
-RUN git clone --depth 1 https://github.com/brix/crypto-js.git
-RUN git clone --depth 1 https://github.com/LoupVaillant/Monocypher.git
-RUN git clone --depth 1 https://github.com/trezor/trezor-firmware.git
-RUN git clone --depth 1 https://github.com/Cyan4973/xxHash.git
 RUN apt-get remove -y libunwind8
-RUN apt-get install -y libssl-dev
-RUN wget https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2
 
-COPY build.sh xxd.c $SRC/
+COPY build.sh $SRC/
diff --git a/projects/cryptofuzz/build.sh b/projects/cryptofuzz/build.sh
index 9aa3c94..f2c0501 100755
--- a/projects/cryptofuzz/build.sh
+++ b/projects/cryptofuzz/build.sh
@@ -18,23 +18,6 @@
 # TODO(metzman): Switch this to LIB_FUZZING_ENGINE when it works.
 # https://github.com/google/oss-fuzz/issues/2336
 
-export GO111MODULE=off
-
-# Compile xxd
-$CC $SRC/xxd.c -o /usr/bin/xxd
-
-# Copy the upstream checkout of xxHash over the old version
-rm -rf $SRC/cryptofuzz/modules/reference/xxHash/
-cp -R $SRC/xxHash/ $SRC/cryptofuzz/modules/reference/
-
-# Install Boost headers
-cd $SRC/
-tar jxf boost_1_74_0.tar.bz2
-cd boost_1_74_0/
-CFLAGS="" CXXFLAGS="" ./bootstrap.sh
-CFLAGS="" CXXFLAGS="" ./b2 headers
-cp -R boost/ /usr/include/
-
 export LINK_FLAGS=""
 export INCLUDE_PATH_FLAGS=""
 
@@ -42,6 +25,24 @@
 cd $SRC/cryptofuzz
 python gen_repository.py
 
+if [[ $CFLAGS = *-m32* ]]
+then
+    export GOARCH=386
+    export CGO_ENABLED=1
+fi
+
+export GO111MODULE=off
+cd $SRC/go/src
+./make.bash
+export GOROOT=$(realpath $SRC/go)
+export GOPATH=$GOROOT/packages
+mkdir $GOPATH
+export PATH=$GOROOT/bin:$PATH
+export PATH=$GOROOT/packages/bin:$PATH
+
+apt-get remove golang-1.9-go -y
+rm /usr/bin/go
+
 go get golang.org/x/crypto/blake2b
 go get golang.org/x/crypto/blake2s
 go get golang.org/x/crypto/md4
@@ -59,33 +60,6 @@
     export CXXFLAGS="$CXXFLAGS -DMSAN"
 fi
 
-if [[ $CFLAGS != *sanitize=memory* && $CFLAGS != *-m32* ]]
-then
-    # Compile libfuzzer-js (required for all JavaScript libraries)
-    export LIBFUZZER_A_PATH="$LIB_FUZZING_ENGINE"
-    cd $SRC/libfuzzer-js/
-    make
-    export LIBFUZZER_JS_PATH=$(realpath .)
-    export LINK_FLAGS="$LINK_FLAGS $LIBFUZZER_JS_PATH/js.o $LIBFUZZER_JS_PATH/quickjs/libquickjs.a"
-
-    # Compile bn.js module
-    export BN_JS_PATH="$SRC/bn.js/lib/bn.js"
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BN_JS"
-    cd $SRC/cryptofuzz/modules/bn.js/
-    make
-
-    # Compile bignumber.js module
-    export BIGNUMBER_JS_PATH="$SRC/bignumber.js/bignumber.js"
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BIGNUMBER_JS"
-    cd $SRC/cryptofuzz/modules/bignumber.js/
-    make
-
-    export CRYPTO_JS_PATH="$SRC/crypto-js/"
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_CRYPTO_JS"
-    cd $SRC/cryptofuzz/modules/crypto-js/
-    make
-fi
-
 # Compile NSS
 if [[ $CFLAGS != *-m32* ]]
 then
@@ -93,9 +67,15 @@
     mv $SRC/nss $SRC/nss-nspr/
     mv $SRC/nspr $SRC/nss-nspr/
     cd $SRC/nss-nspr/
-
-    CXX="$CXX -stdlib=libc++" LDFLAGS="$CFLAGS" nss/build.sh --enable-fips --static --disable-tests --fuzz=oss
-
+    if [[ $CFLAGS = *sanitize=address* ]]
+    then
+        CFLAGS="" CXXFLAGS="" nss/build.sh --asan --static
+    elif [[ $CFLAGS = *sanitize=memory* ]]
+    then
+        CFLAGS="" CXXFLAGS="" nss/build.sh --msan --static
+    else
+        CFLAGS="" CXXFLAGS="" nss/build.sh --ubsan --static
+    fi
     export NSS_NSPR_PATH=$(realpath $SRC/nss-nspr/)
     export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NSS"
     export LINK_FLAGS="$LINK_FLAGS -lsqlite3"
@@ -105,125 +85,6 @@
     make -B
 fi
 
-# Compile Monocypher
-cd $SRC/Monocypher/
-make CC="$CC" CFLAGS="$CFLAGS"
-export LIBMONOCYPHER_A_PATH=$(realpath lib/libmonocypher.a)
-export MONOCYPHER_INCLUDE_PATH=$(realpath src/)
-export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_MONOCYPHER"
-
-# Compile Cryptofuzz monocypher module
-cd $SRC/cryptofuzz/modules/monocypher
-make -B
-
-# Rename blake2b_* functions to avoid symbol collisions with other libraries
-cd $SRC/trezor-firmware/crypto
-sed -i "s/\<blake2b_\([A-Za-z_]\)/trezor_blake2b_\1/g" *.c *.h
-sed -i 's/\<blake2b(/trezor_blake2b(/g' *.c *.h
-
-# Compile Cryptofuzz trezor module
-export TREZOR_FIRMWARE_PATH=$(realpath $SRC/trezor-firmware)
-export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_TREZOR_FIRMWARE"
-cd $SRC/cryptofuzz/modules/trezor
-make -B
-
-# Compile libtomcrypt
-cd $SRC/libtomcrypt
-if [[ $CFLAGS != *sanitize=memory* ]]
-then
-    make -j$(nproc)
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBTOMCRYPT"
-    export LIBTOMCRYPT_INCLUDE_PATH=$(realpath src/headers/)
-    export LIBTOMCRYPT_A_PATH=$(realpath libtomcrypt.a)
-
-    # Compile Cryptofuzz libtomcrypt module
-    cd $SRC/cryptofuzz/modules/libtomcrypt
-    make -B
-fi
-
-# Compile SymCrypt
-cd $SRC/SymCrypt/
-if [[ $CFLAGS != *sanitize=array-bounds* ]]
-then
-    # Unittests don't build with clang and are not needed anyway
-    sed -i "s/^add_subdirectory(unittest)$//g" CMakeLists.txt
-
-    mkdir b/
-    cd b/
-    cmake ../
-    make -j$(nproc)
-
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_SYMCRYPT"
-    export SYMCRYPT_INCLUDE_PATH=$(realpath ../inc/)
-    export LIBSYMCRYPT_COMMON_A_PATH=$(realpath lib/x86_64/Generic/libsymcrypt_common.a)
-    export SYMCRYPT_GENERIC_A_PATH=$(realpath lib/x86_64/Generic/symcrypt_generic.a)
-
-    # Compile Cryptofuzz SymCrypt module
-    cd $SRC/cryptofuzz/modules/symcrypt
-    make -B
-fi
-
-# Compile Nettle
-mkdir $SRC/nettle-install/
-cd $SRC/nettle/
-bash .bootstrap
-if [[ $CFLAGS != *sanitize=memory* ]]
-then
-    ./configure --disable-documentation --disable-openssl --prefix=`realpath ../nettle-install`
-else
-    ./configure --disable-documentation --disable-openssl --disable-assembler --prefix=`realpath ../nettle-install`
-fi
-make -j$(nproc)
-make install
-if [[ $CFLAGS != *-m32* ]]
-then
-export LIBNETTLE_A_PATH=`realpath ../nettle-install/lib/libnettle.a`
-export LIBHOGWEED_A_PATH=`realpath ../nettle-install/lib/libhogweed.a`
-else
-export LIBNETTLE_A_PATH=`realpath ../nettle-install/lib32/libnettle.a`
-export LIBHOGWEED_A_PATH=`realpath ../nettle-install/lib32/libhogweed.a`
-fi
-export NETTLE_INCLUDE_PATH=`realpath ../nettle-install/include`
-export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NETTLE"
-# Compile Cryptofuzz Nettle module
-cd $SRC/cryptofuzz/modules/nettle
-make -B
-
-# Compile libgmp
-if [[ $CFLAGS != *sanitize=memory* ]]
-then
-    cd $SRC/libgmp/
-    autoreconf -ivf
-    if [[ $CFLAGS != *-m32* ]]
-    then
-        ./configure --enable-maintainer-mode
-    else
-        setarch i386 ./configure --enable-maintainer-mode
-    fi
-    make -j$(nproc)
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBGMP"
-    export LIBGMP_INCLUDE_PATH=$(realpath .)
-    export LIBGMP_A_PATH=$(realpath .libs/libgmp.a)
-    # Compile Cryptofuzz libgmp module
-    cd $SRC/cryptofuzz/modules/libgmp
-    make -B
-fi
-
-# Compile mpdecimal
-cd $SRC/
-tar zxf mpdecimal-2.5.0.tar.gz
-cd mpdecimal-2.5.0/
-./configure
-cd libmpdec/
-make libmpdec.a -j$(nproc)
-cd ../
-export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_MPDECIMAL"
-export LIBMPDEC_A_PATH=$(realpath libmpdec/libmpdec.a)
-export LIBMPDEC_INCLUDE_PATH=$(realpath libmpdec/)
-# Compile Cryptofuzz mpdecimal module
-cd $SRC/cryptofuzz/modules/mpdecimal
-make -B
-
 # Compile Cityhash
 cd $SRC/cityhash
 if [[ $CFLAGS != *-m32* ]]
@@ -238,33 +99,25 @@
 export CRYPTOFUZZ_REFERENCE_CITY_O_PATH="$SRC/cityhash/src/city.o"
 
 ##############################################################################
-# Compile cryptopp
-cd $SRC/cryptopp
 if [[ $CFLAGS != *sanitize=memory* ]]
 then
-    make libcryptopp.a -j$(nproc) >/dev/null 2>&1
-else
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOPP_DISABLE_ASM=1"
-    make libcryptopp.a -j$(nproc) >/dev/null 2>&1
+    # Compile cryptopp (with assembly)
+    cd $SRC/cryptopp
+    make -j$(nproc) >/dev/null 2>&1
+
+    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_CRYPTOPP"
+    export LIBCRYPTOPP_A_PATH="$SRC/cryptopp/libcryptopp.a"
+    export CRYPTOPP_INCLUDE_PATH="$SRC/cryptopp"
+
+    # Compile Cryptofuzz cryptopp (with assembly) module
+    cd $SRC/cryptofuzz/modules/cryptopp
+    make -B
 fi
 
-export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_CRYPTOPP"
-export LIBCRYPTOPP_A_PATH="$SRC/cryptopp/libcryptopp.a"
-export CRYPTOPP_INCLUDE_PATH="$SRC/cryptopp"
-
-# Compile Cryptofuzz cryptopp module
-cd $SRC/cryptofuzz/modules/cryptopp
-make -B
-
 ##############################################################################
-# Compile mbed TLS
-cd $SRC/mbedtls/
+# Compile mbed crypto
+cd $SRC/mbed-crypto/
 scripts/config.pl set MBEDTLS_PLATFORM_MEMORY
-scripts/config.pl set MBEDTLS_CMAC_C
-scripts/config.pl set MBEDTLS_NIST_KW_C
-scripts/config.pl set MBEDTLS_ARIA_C
-scripts/config.pl set MBEDTLS_MD2_C
-scripts/config.pl set MBEDTLS_MD4_C
 if [[ $CFLAGS == *sanitize=memory* ]]
 then
     scripts/config.pl unset MBEDTLS_HAVE_ASM
@@ -275,8 +128,8 @@
 cd build/
 cmake .. -DENABLE_PROGRAMS=0 -DENABLE_TESTING=0
 make -j$(nproc) >/dev/null 2>&1
-export MBEDTLS_LIBMBEDCRYPTO_A_PATH="$SRC/mbedtls/build/library/libmbedcrypto.a"
-export MBEDTLS_INCLUDE_PATH="$SRC/mbedtls/include"
+export MBEDTLS_LIBMBEDCRYPTO_A_PATH="$SRC/mbed-crypto/build/library/libmbedcrypto.a"
+export MBEDTLS_INCLUDE_PATH="$SRC/mbed-crypto/include"
 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_MBEDTLS"
 # Compile Cryptofuzz mbed crypto module
 cd $SRC/cryptofuzz/modules/mbedtls
@@ -287,14 +140,14 @@
 cd $SRC/botan
 if [[ $CFLAGS != *-m32* ]]
 then
-    ./configure.py --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator --build-targets=static --without-documentation
+    ./configure.py --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator
 else
-    ./configure.py --cpu=x86_32 --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator --build-targets=static --without-documentation
+    ./configure.py --cpu=x86_32 --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator
 fi
 make -j$(nproc)
 
 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BOTAN"
-export LIBBOTAN_A_PATH="$SRC/botan/libbotan-3.a"
+export LIBBOTAN_A_PATH="$SRC/botan/libbotan-2.a"
 export BOTAN_INCLUDE_PATH="$SRC/botan/build/include"
 
 # Compile Cryptofuzz Botan module
@@ -318,14 +171,14 @@
     make install
     export LINK_FLAGS="$LINK_FLAGS $SRC/libgpg-error-1.36/src/.libs/libgpg-error.a"
 
-    # Compile libgcrypt
+    # Compile libgcrypt (with assembly)
     cd $SRC/libgcrypt
     autoreconf -ivf
-    if [[ $CFLAGS = *-m32* ]]
+    if [[ $CFLAGS != *-m32* ]]
     then
-        ./configure --enable-static --disable-doc --host=i386
-    else
         ./configure --enable-static --disable-doc
+    else
+        ./configure --enable-static --disable-doc --host=i386
     fi
     make -j$(nproc) >/dev/null 2>&1
 
@@ -333,29 +186,33 @@
     export LIBGCRYPT_A_PATH="$SRC/libgcrypt/src/.libs/libgcrypt.a"
     export LIBGCRYPT_INCLUDE_PATH="$SRC/libgcrypt/src"
 
-    # Compile Cryptofuzz libgcrypt module
+    # Compile Cryptofuzz libgcrypt (with assembly) module
     cd $SRC/cryptofuzz/modules/libgcrypt
     make -B
 fi
 
-# Compile libsodium
-cd $SRC/libsodium
-autoreconf -ivf
-if [[ $CFLAGS != *sanitize=memory* ]]
-then
-    ./configure
-else
-    ./configure --disable-asm
-fi
-make -j$(nproc) >/dev/null 2>&1
-
-export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBSODIUM"
-export LIBSODIUM_A_PATH="$SRC/libsodium/src/libsodium/.libs/libsodium.a"
-export LIBSODIUM_INCLUDE_PATH="$SRC/libsodium/src/libsodium/include"
-
-# Compile Cryptofuzz libsodium module
-cd $SRC/cryptofuzz/modules/libsodium
-make -B
+##############################################################################
+# libsodium is currently disabled due to crashes whose cause
+# is not entirely clear.
+# It will be enabled again once the problem has been resolved.
+# See also: https://github.com/jedisct1/libsodium/issues/859
+#
+#if [[ $CFLAGS != *sanitize=memory* ]]
+#then
+#    # Compile libsodium (with assembly)
+#    cd $SRC/libsodium
+#    autoreconf -ivf
+#    ./configure
+#    make -j$(nproc) >/dev/null 2>&1
+#
+#    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBSODIUM"
+#    export LIBSODIUM_A_PATH="$SRC/libsodium/src/libsodium/.libs/libsodium.a"
+#    export LIBSODIUM_INCLUDE_PATH="$SRC/libsodium/src/libsodium/include"
+#
+#    # Compile Cryptofuzz libsodium (with assembly) module
+#    cd $SRC/cryptofuzz/modules/libsodium
+#    make -B
+#fi
 
 if [[ $CFLAGS != *sanitize=memory* && $CFLAGS != *-m32* ]]
 then
@@ -425,24 +282,12 @@
     LINK_FLAGS=${LINK_FLAGS//"-lsqlite3"/}
 fi
 
-if [[ $CFLAGS != *sanitize=memory* ]]
-then
-    # libtomcrypt can only be compiled with NSS, because OpenSSL, LibreSSL and
-    # BoringSSL have symbol collisions with libtomcrypt.
-    #
-    # So, now that NSS-based Cryptofuzz has been compiled, remove libtomcrypt
-    export CXXFLAGS=${CXXFLAGS/-DCRYPTOFUZZ_LIBTOMCRYPT/}
-    rm -rf "$LIBTOMCRYPT_A_PATH"
-fi
-
 ##############################################################################
 # Compile wolfCrypt
 cd $SRC/wolfssl
-# Enable additional wolfCrypt features which cannot be activated through arguments to ./configure
-export CFLAGS="$CFLAGS -DHAVE_AES_ECB -DWOLFSSL_DES_ECB -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DWOLFSSL_ECDSA_SET_K -DWOLFSSL_ECDSA_SET_K_ONE_LOOP"
 autoreconf -ivf
 
-export WOLFCRYPT_CONFIGURE_PARAMS="--enable-static --enable-md2 --enable-md4 --enable-ripemd --enable-blake2 --enable-blake2s --enable-pwdbased --enable-scrypt --enable-hkdf --enable-cmac --enable-arc4 --enable-camellia --enable-rabbit --enable-aesccm --enable-aesctr --enable-hc128 --enable-xts --enable-des3 --enable-idea --enable-x963kdf --enable-harden --enable-aescfb --enable-aesofb --enable-aeskeywrap --enable-shake256 --enable-curve25519 --enable-curve448 --disable-crypttests --disable-examples --enable-keygen --enable-compkey --enable-ed448 --enable-ed25519 --enable-ecccustcurves --enable-xchacha --enable-cryptocb --enable-eccencrypt"
+export WOLFCRYPT_CONFIGURE_PARAMS="--enable-static --enable-md2 --enable-md4 --enable-ripemd --enable-blake2 --enable-blake2s --enable-pwdbased --enable-scrypt --enable-hkdf --enable-cmac --enable-arc4 --enable-camellia --enable-rabbit --enable-aesccm --enable-aesctr --enable-hc128 --enable-xts --enable-des3 --enable-idea --enable-x963kdf --enable-harden"
 
 if [[ $CFLAGS = *sanitize=memory* ]]
 then
@@ -467,18 +312,13 @@
 
 
 ##############################################################################
-if [[ $CFLAGS != *sanitize=memory* ]]
+if [[ $CFLAGS != *sanitize=memory* && $CFLAGS != *-m32* ]]
 then
     # Compile LibreSSL (with assembly)
     cd $SRC/libressl
     rm -rf build ; mkdir build
     cd build
-    if [[ $CFLAGS != *-m32* ]]
-    then
-        cmake -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLAGS="$CFLAGS" ..
-    else
-        setarch i386 cmake -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLAGS="$CFLAGS" ..
-    fi
+    cmake -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLAGS="$CFLAGS" ..
     make -j$(nproc) crypto >/dev/null 2>&1
 
     # Compile Cryptofuzz LibreSSL (with assembly) module
@@ -597,18 +437,13 @@
 export CXXFLAGS="$SAVE_CXXFLAGS"
 
 ##############################################################################
-if [[ $CFLAGS != *sanitize=memory* ]]
+if [[ $CFLAGS != *sanitize=memory* && $CFLAGS != *-m32* ]]
 then
     # Compile BoringSSL (with assembly)
     cd $SRC/boringssl
     rm -rf build ; mkdir build
     cd build
-    if [[ $CFLAGS = *-m32* ]]
-    then
-        setarch i386 cmake -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLAGS="$CFLAGS" -DBORINGSSL_ALLOW_CXX_RUNTIME=1 -DCMAKE_ASM_FLAGS="-m32" ..
-    else
-        cmake -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLAGS="$CFLAGS" -DBORINGSSL_ALLOW_CXX_RUNTIME=1 ..
-    fi
+    cmake -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLAGS="$CFLAGS" -DBORINGSSL_ALLOW_CXX_RUNTIME=1 ..
     make -j$(nproc) crypto >/dev/null 2>&1
 
     # Compile Cryptofuzz BoringSSL (with assembly) module
@@ -655,4 +490,3 @@
 cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-boringssl-noasm.dict
 # Copy seed corpus
 cp $SRC/cryptofuzz-corpora/boringssl_latest.zip $OUT/cryptofuzz-boringssl-noasm_seed_corpus.zip
-
diff --git a/projects/cryptofuzz/project.yaml b/projects/cryptofuzz/project.yaml
index 59c3ac4..9ac4f6a 100644
--- a/projects/cryptofuzz/project.yaml
+++ b/projects/cryptofuzz/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/guidovranken/cryptofuzz"
-language: c++
 primary_contact: "guidovranken@gmail.com"
 auto_ccs:
     - "openssl-security@openssl.org"
@@ -23,16 +22,14 @@
     - "david@wolfssl.com"
     - "kaleb@wolfssl.com"
     - "jacob@wolfssl.com"
+    - "jjones@mozilla.com"
     - "sledru@mozilla.com"
-    - "bbeurdouche@mozilla.com"
+    - "kjacobs@mozilla.com"
     - "matthias.st.pierre@gmail.com"
-    - "kaleb.himes@gmail.com"
-    - "polubelovam@gmail.com"
-    - "mbed-tls-security@lists.trustedfirmware.org"
 sanitizers:
  - address
  - undefined
  - memory
 architectures:
  - x86_64
-main_repo: 'https://github.com/guidovranken/cryptofuzz'
+ - i386
diff --git a/projects/cryptofuzz/xxd.c b/projects/cryptofuzz/xxd.c
deleted file mode 100644
index f76adaa..0000000
--- a/projects/cryptofuzz/xxd.c
+++ /dev/null
@@ -1,868 +0,0 @@
-/* xxd: my hexdump facility. jw
- *
- *  2.10.90 changed to word output
- *  3.03.93 new indent style, dumb bug inserted and fixed.
- *	    -c option, mls
- * 26.04.94 better option parser, -ps, -l, -s added.
- *  1.07.94 -r badly needs - as input file.  Per default autoskip over
- *	       consecutive lines of zeroes, as unix od does.
- *	    -a shows them too.
- *	    -i dump as c-style #include "file.h"
- *  1.11.95 if "xxd -i" knows the filename, an 'unsigned char filename_bits[]'
- *	    array is written in correct c-syntax.
- *	    -s improved, now defaults to absolute seek, relative requires a '+'.
- *	    -r improved, now -r -s -0x... is supported.
- *	       change/suppress leading '\0' bytes.
- *	    -l n improved: stops exactly after n bytes.
- *	    -r improved, better handling of partial lines with trailing garbage.
- *	    -r improved, now -r -p works again!
- *	    -r improved, less flushing, much faster now! (that was silly)
- *  3.04.96 Per repeated request of a single person: autoskip defaults to off.
- * 15.05.96 -v added. They want to know the version.
- *	    -a fixed, to show last line inf file ends in all zeros.
- *	    -u added: Print upper case hex-letters, as preferred by unix bc.
- *	    -h added to usage message. Usage message extended.
- *	    Now using outfile if specified even in normal mode, aehem.
- *	    No longer mixing of ints and longs. May help doze people.
- *	    Added binify ioctl for same reason. (Enough Doze stress for 1996!)
- * 16.05.96 -p improved, removed occasional superfluous linefeed.
- * 20.05.96 -l 0 fixed. tried to read anyway.
- * 21.05.96 -i fixed. now honours -u, and prepends __ to numeric filenames.
- *	    compile -DWIN32 for NT or W95. George V. Reilly, * -v improved :-)
- *	    support --gnuish-longhorn-options
- * 25.05.96 MAC support added: CodeWarrior already uses ``outline'' in Types.h
- *	    which is included by MacHeaders (Axel Kielhorn). Renamed to
- *	    xxdline().
- *  7.06.96 -i printed 'int' instead of 'char'. *blush*
- *	    added Bram's OS2 ifdefs...
- * 18.07.96 gcc -Wall @ SunOS4 is now slient.
- *	    Added osver for MSDOS/DJGPP/WIN32.
- * 29.08.96 Added size_t to strncmp() for Amiga.
- * 24.03.97 Windows NT support (Phil Hanna). Clean exit for Amiga WB (Bram)
- * 02.04.97 Added -E option, to have EBCDIC translation instead of ASCII
- *	    (azc10@yahoo.com)
- * 22.05.97 added -g (group octets) option (jcook@namerica.kla.com).
- * 23.09.98 nasty -p -r misfeature fixed: slightly wrong output, when -c was
- *	    missing or wrong.
- * 26.09.98 Fixed: 'xxd -i infile outfile' did not truncate outfile.
- * 27.10.98 Fixed: -g option parser required blank.
- *	    option -b added: 01000101 binary output in normal format.
- * 16.05.00 Added VAXC changes by Stephen P. Wall
- * 16.05.00 Improved MMS file and merge for VMS by Zoltan Arpadffy
- * 2011 March  Better error handling by Florian Zumbiehl.
- * 2011 April  Formatting by Bram Moolenaar
- * 08.06.2013  Little-endian hexdump (-e) and offset (-o) by Vadim Vygonets.
- *
- * (c) 1990-1998 by Juergen Weigert (jnweiger@informatik.uni-erlangen.de)
- *
- * I hereby grant permission to distribute and use xxd
- * under X11-MIT or GPL-2.0 (at the user's choice).
- *
- * Small changes made afterwards by Bram Moolenaar et al.
- *
- * Distribute freely and credit me,
- * make money and share with me,
- * lose money and don't ask me.
- */
-
-/* Visual Studio 2005 has 'deprecated' many of the standard CRT functions */
-#if _MSC_VER >= 1400
-# define _CRT_SECURE_NO_DEPRECATE
-# define _CRT_NONSTDC_NO_DEPRECATE
-#endif
-#if !defined(CYGWIN) && (defined(CYGWIN32) || defined(__CYGWIN__) || defined(__CYGWIN32__))
-# define CYGWIN
-#endif
-
-#include <stdio.h>
-#ifdef VAXC
-# include <file.h>
-#else
-# include <fcntl.h>
-#endif
-#if defined(WIN32) || defined(__BORLANDC__) || defined(CYGWIN)
-# include <io.h>	/* for setmode() */
-#else
-# ifdef UNIX
-#  include <unistd.h>
-# endif
-#endif
-#include <stdlib.h>
-#include <string.h>	/* for strncmp() */
-#include <ctype.h>	/* for isalnum() */
-#if __MWERKS__ && !defined(BEBOX)
-# include <unix.h>	/* for fdopen() on MAC */
-#endif
-
-#if defined(__BORLANDC__) && __BORLANDC__ <= 0x0410 && !defined(fileno)
-/* Missing define and prototype grabbed from the BC 4.0 <stdio.h> */
-# define fileno(f)       ((f)->fd)
-FILE   _FAR *_Cdecl _FARFUNC fdopen(int __handle, char _FAR *__type);
-#endif
-
-
-/*  This corrects the problem of missing prototypes for certain functions
- *  in some GNU installations (e.g. SunOS 4.1.x).
- *  Darren Hiebert <darren@hmi.com> (sparc-sun-sunos4.1.3_U1/2.7.2.2)
- */
-#if defined(__GNUC__) && defined(__STDC__)
-# ifndef __USE_FIXED_PROTOTYPES__
-#  define __USE_FIXED_PROTOTYPES__
-# endif
-#endif
-
-#ifndef __USE_FIXED_PROTOTYPES__
-/*
- * This is historic and works only if the compiler really has no prototypes:
- *
- * Include prototypes for Sun OS 4.x, when using an ANSI compiler.
- * FILE is defined on OS 4.x, not on 5.x (Solaris).
- * if __SVR4 is defined (some Solaris versions), don't include this.
- */
-#if defined(sun) && defined(FILE) && !defined(__SVR4) && defined(__STDC__)
-#  define __P(a) a
-/* excerpt from my sun_stdlib.h */
-extern int fprintf __P((FILE *, char *, ...));
-extern int fputs   __P((char *, FILE *));
-extern int _flsbuf __P((unsigned char, FILE *));
-extern int _filbuf __P((FILE *));
-extern int fflush  __P((FILE *));
-extern int fclose  __P((FILE *));
-extern int fseek   __P((FILE *, long, int));
-extern int rewind  __P((FILE *));
-
-extern void perror __P((char *));
-# endif
-#endif
-
-extern long int strtol();
-extern long int ftell();
-
-char version[] = "xxd V1.10 27oct98 by Juergen Weigert";
-#ifdef WIN32
-char osver[] = " (Win32)";
-#else
-char osver[] = "";
-#endif
-
-#if defined(WIN32)
-# define BIN_READ(yes)  ((yes) ? "rb" : "rt")
-# define BIN_WRITE(yes) ((yes) ? "wb" : "wt")
-# define BIN_CREAT(yes) ((yes) ? (O_CREAT|O_BINARY) : O_CREAT)
-# define BIN_ASSIGN(fp, yes) setmode(fileno(fp), (yes) ? O_BINARY : O_TEXT)
-# define PATH_SEP '\\'
-#elif defined(CYGWIN)
-# define BIN_READ(yes)  ((yes) ? "rb" : "rt")
-# define BIN_WRITE(yes) ((yes) ? "wb" : "w")
-# define BIN_CREAT(yes) ((yes) ? (O_CREAT|O_BINARY) : O_CREAT)
-# define BIN_ASSIGN(fp, yes) ((yes) ? (void) setmode(fileno(fp), O_BINARY) : (void) (fp))
-# define PATH_SEP '/'
-#else
-# ifdef VMS
-#  define BIN_READ(dummy)  "r"
-#  define BIN_WRITE(dummy) "w"
-#  define BIN_CREAT(dummy) O_CREAT
-#  define BIN_ASSIGN(fp, dummy) fp
-#  define PATH_SEP ']'
-#  define FILE_SEP '.'
-# else
-#  define BIN_READ(dummy)  "r"
-#  define BIN_WRITE(dummy) "w"
-#  define BIN_CREAT(dummy) O_CREAT
-#  define BIN_ASSIGN(fp, dummy) fp
-#  define PATH_SEP '/'
-# endif
-#endif
-
-/* open has only to arguments on the Mac */
-#if __MWERKS__
-# define OPEN(name, mode, umask) open(name, mode)
-#else
-# define OPEN(name, mode, umask) open(name, mode, umask)
-#endif
-
-#ifdef AMIGA
-# define STRNCMP(s1, s2, l) strncmp(s1, s2, (size_t)l)
-#else
-# define STRNCMP(s1, s2, l) strncmp(s1, s2, l)
-#endif
-
-#ifndef __P
-# if defined(__STDC__) || defined(WIN32) || defined(__BORLANDC__)
-#  define __P(a) a
-# else
-#  define __P(a) ()
-# endif
-#endif
-
-/* Let's collect some prototypes */
-/* CodeWarrior is really picky about missing prototypes */
-static void exit_with_usage __P((void));
-static void die __P((int));
-static int huntype __P((FILE *, FILE *, FILE *, int, int, long));
-static void xxdline __P((FILE *, char *, int));
-
-#define TRY_SEEK	/* attempt to use lseek, or skip forward by reading */
-#define COLS 256	/* change here, if you ever need more columns */
-#define LLEN (12 + (9*COLS-1) + COLS + 2)
-
-char hexxa[] = "0123456789abcdef0123456789ABCDEF", *hexx = hexxa;
-
-/* the different hextypes known by this program: */
-#define HEX_NORMAL 0
-#define HEX_POSTSCRIPT 1
-#define HEX_CINCLUDE 2
-#define HEX_BITS 3		/* not hex a dump, but bits: 01111001 */
-#define HEX_LITTLEENDIAN 4
-
-static char *pname;
-
-  static void
-exit_with_usage(void)
-{
-  fprintf(stderr, "Usage:\n       %s [options] [infile [outfile]]\n", pname);
-  fprintf(stderr, "    or\n       %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
-  fprintf(stderr, "Options:\n");
-  fprintf(stderr, "    -a          toggle autoskip: A single '*' replaces nul-lines. Default off.\n");
-  fprintf(stderr, "    -b          binary digit dump (incompatible with -ps,-i,-r). Default hex.\n");
-  fprintf(stderr, "    -c cols     format <cols> octets per line. Default 16 (-i: 12, -ps: 30).\n");
-  fprintf(stderr, "    -E          show characters in EBCDIC. Default ASCII.\n");
-  fprintf(stderr, "    -e          little-endian dump (incompatible with -ps,-i,-r).\n");
-  fprintf(stderr, "    -g          number of octets per group in normal output. Default 2 (-e: 4).\n");
-  fprintf(stderr, "    -h          print this summary.\n");
-  fprintf(stderr, "    -i          output in C include file style.\n");
-  fprintf(stderr, "    -l len      stop after <len> octets.\n");
-  fprintf(stderr, "    -o off      add <off> to the displayed file position.\n");
-  fprintf(stderr, "    -ps         output in postscript plain hexdump style.\n");
-  fprintf(stderr, "    -r          reverse operation: convert (or patch) hexdump into binary.\n");
-  fprintf(stderr, "    -r -s off   revert with <off> added to file positions found in hexdump.\n");
-  fprintf(stderr, "    -s %sseek  start at <seek> bytes abs. %sinfile offset.\n",
-#ifdef TRY_SEEK
-	  "[+][-]", "(or +: rel.) ");
-#else
-	  "", "");
-#endif
-  fprintf(stderr, "    -u          use upper case hex letters.\n");
-  fprintf(stderr, "    -v          show version: \"%s%s\".\n", version, osver);
-  exit(1);
-}
-
-  static void
-die(int ret)
-{
-  fprintf(stderr, "%s: ", pname);
-  perror(NULL);
-  exit(ret);
-}
-
-/*
- * Max. cols binary characters are decoded from the input stream per line.
- * Two adjacent garbage characters after evaluated data delimit valid data.
- * Everything up to the next newline is discarded.
- *
- * The name is historic and came from 'undo type opt h'.
- */
-  static int
-huntype(
-  FILE *fpi,
-  FILE *fpo,
-  FILE *fperr,
-  int cols,
-  int hextype,
-  long base_off)
-{
-  int c, ign_garb = 1, n1 = -1, n2 = 0, n3, p = cols;
-  long have_off = 0, want_off = 0;
-
-  rewind(fpi);
-
-  while ((c = getc(fpi)) != EOF)
-    {
-      if (c == '\r')	/* Doze style input file? */
-	continue;
-
-      /* Allow multiple spaces.  This doesn't work when there is normal text
-       * after the hex codes in the last line that looks like hex, thus only
-       * use it for PostScript format. */
-      if (hextype == HEX_POSTSCRIPT && (c == ' ' || c == '\n' || c == '\t'))
-	continue;
-
-      n3 = n2;
-      n2 = n1;
-
-      if (c >= '0' && c <= '9')
-	n1 = c - '0';
-      else if (c >= 'a' && c <= 'f')
-	n1 = c - 'a' + 10;
-      else if (c >= 'A' && c <= 'F')
-	n1 = c - 'A' + 10;
-      else
-	{
-	  n1 = -1;
-	  if (ign_garb)
-	    continue;
-	}
-
-      ign_garb = 0;
-
-      if (p >= cols)
-	{
-	  if (!hextype)
-	    {
-	      if (n1 < 0)
-		{
-		  p = 0;
-		  continue;
-		}
-	      want_off = (want_off << 4) | n1;
-	      continue;
-	    }
-	  else
-	    p = 0;
-	}
-
-      if (base_off + want_off != have_off)
-	{
-	  if (fflush(fpo) != 0)
-	    die(3);
-#ifdef TRY_SEEK
-	  c = fseek(fpo, base_off + want_off - have_off, 1);
-	  if (c >= 0)
-	    have_off = base_off + want_off;
-#endif
-	  if (base_off + want_off < have_off)
-	    {
-	      fprintf(fperr, "%s: sorry, cannot seek backwards.\n", pname);
-	      return 5;
-	    }
-	  for (; have_off < base_off + want_off; have_off++)
-	    if (putc(0, fpo) == EOF)
-	      die(3);
-	}
-
-      if (n2 >= 0 && n1 >= 0)
-	{
-	  if (putc((n2 << 4) | n1, fpo) == EOF)
-	    die(3);
-	  have_off++;
-	  want_off++;
-	  n1 = -1;
-	  if ((++p >= cols) && !hextype)
-	    {
-	      /* skip rest of line as garbage */
-	      want_off = 0;
-	      while ((c = getc(fpi)) != '\n' && c != EOF)
-		;
-	      if (c == EOF && ferror(fpi))
-		die(2);
-	      ign_garb = 1;
-	    }
-	}
-      else if (n1 < 0 && n2 < 0 && n3 < 0)
-	{
-	  /* already stumbled into garbage, skip line, wait and see */
-	  if (!hextype)
-	    want_off = 0;
-	  while ((c = getc(fpi)) != '\n' && c != EOF)
-	    ;
-	  if (c == EOF && ferror(fpi))
-	    die(2);
-	  ign_garb = 1;
-	}
-    }
-  if (fflush(fpo) != 0)
-    die(3);
-#ifdef TRY_SEEK
-  fseek(fpo, 0L, 2);
-#endif
-  if (fclose(fpo) != 0)
-    die(3);
-  if (fclose(fpi) != 0)
-    die(2);
-  return 0;
-}
-
-/*
- * Print line l. If nz is false, xxdline regards the line a line of
- * zeroes. If there are three or more consecutive lines of zeroes,
- * they are replaced by a single '*' character.
- *
- * If the output ends with more than two lines of zeroes, you
- * should call xxdline again with l being the last line and nz
- * negative. This ensures that the last line is shown even when
- * it is all zeroes.
- *
- * If nz is always positive, lines are never suppressed.
- */
-  static void
-xxdline(FILE *fp, char *l, int nz)
-{
-  static char z[LLEN+1];
-  static int zero_seen = 0;
-
-  if (!nz && zero_seen == 1)
-    strcpy(z, l);
-
-  if (nz || !zero_seen++)
-    {
-      if (nz)
-	{
-	  if (nz < 0)
-	    zero_seen--;
-	  if (zero_seen == 2)
-	    if (fputs(z, fp) == EOF)
-	      die(3);
-	  if (zero_seen > 2)
-	    if (fputs("*\n", fp) == EOF)
-	      die(3);
-	}
-      if (nz >= 0 || zero_seen > 0)
-	if (fputs(l, fp) == EOF)
-	  die(3);
-      if (nz)
-	zero_seen = 0;
-    }
-}
-
-/* This is an EBCDIC to ASCII conversion table */
-/* from a proposed BTL standard April 16, 1979 */
-static unsigned char etoa64[] =
-{
-    0040,0240,0241,0242,0243,0244,0245,0246,
-    0247,0250,0325,0056,0074,0050,0053,0174,
-    0046,0251,0252,0253,0254,0255,0256,0257,
-    0260,0261,0041,0044,0052,0051,0073,0176,
-    0055,0057,0262,0263,0264,0265,0266,0267,
-    0270,0271,0313,0054,0045,0137,0076,0077,
-    0272,0273,0274,0275,0276,0277,0300,0301,
-    0302,0140,0072,0043,0100,0047,0075,0042,
-    0303,0141,0142,0143,0144,0145,0146,0147,
-    0150,0151,0304,0305,0306,0307,0310,0311,
-    0312,0152,0153,0154,0155,0156,0157,0160,
-    0161,0162,0136,0314,0315,0316,0317,0320,
-    0321,0345,0163,0164,0165,0166,0167,0170,
-    0171,0172,0322,0323,0324,0133,0326,0327,
-    0330,0331,0332,0333,0334,0335,0336,0337,
-    0340,0341,0342,0343,0344,0135,0346,0347,
-    0173,0101,0102,0103,0104,0105,0106,0107,
-    0110,0111,0350,0351,0352,0353,0354,0355,
-    0175,0112,0113,0114,0115,0116,0117,0120,
-    0121,0122,0356,0357,0360,0361,0362,0363,
-    0134,0237,0123,0124,0125,0126,0127,0130,
-    0131,0132,0364,0365,0366,0367,0370,0371,
-    0060,0061,0062,0063,0064,0065,0066,0067,
-    0070,0071,0372,0373,0374,0375,0376,0377
-};
-
-  int
-main(int argc, char *argv[])
-{
-  FILE *fp, *fpo;
-  int c, e, p = 0, relseek = 1, negseek = 0, revert = 0;
-  int cols = 0, nonzero = 0, autoskip = 0, hextype = HEX_NORMAL;
-  int ebcdic = 0;
-  int octspergrp = -1;	/* number of octets grouped in output */
-  int grplen;		/* total chars per octet group */
-  long length = -1, n = 0, seekoff = 0, displayoff = 0;
-  static char l[LLEN+1];  /* static because it may be too big for stack */
-  char *pp;
-
-#ifdef AMIGA
-  /* This program doesn't work when started from the Workbench */
-  if (argc == 0)
-    exit(1);
-#endif
-
-  pname = argv[0];
-  for (pp = pname; *pp; )
-    if (*pp++ == PATH_SEP)
-      pname = pp;
-#ifdef FILE_SEP
-  for (pp = pname; *pp; pp++)
-    if (*pp == FILE_SEP)
-      {
-	*pp = '\0';
-	break;
-      }
-#endif
-
-  while (argc >= 2)
-    {
-      pp = argv[1] + (!STRNCMP(argv[1], "--", 2) && argv[1][2]);
-	   if (!STRNCMP(pp, "-a", 2)) autoskip = 1 - autoskip;
-      else if (!STRNCMP(pp, "-b", 2)) hextype = HEX_BITS;
-      else if (!STRNCMP(pp, "-e", 2)) hextype = HEX_LITTLEENDIAN;
-      else if (!STRNCMP(pp, "-u", 2)) hexx = hexxa + 16;
-      else if (!STRNCMP(pp, "-p", 2)) hextype = HEX_POSTSCRIPT;
-      else if (!STRNCMP(pp, "-i", 2)) hextype = HEX_CINCLUDE;
-      else if (!STRNCMP(pp, "-r", 2)) revert++;
-      else if (!STRNCMP(pp, "-E", 2)) ebcdic++;
-      else if (!STRNCMP(pp, "-v", 2))
-	{
-	  fprintf(stderr, "%s%s\n", version, osver);
-	  exit(0);
-	}
-      else if (!STRNCMP(pp, "-c", 2))
-	{
-	  if (pp[2] && STRNCMP("ols", pp + 2, 3))
-	    cols = (int)strtol(pp + 2, NULL, 0);
-	  else
-	    {
-	      if (!argv[2])
-		exit_with_usage();
-	      cols = (int)strtol(argv[2], NULL, 0);
-	      argv++;
-	      argc--;
-	    }
-	}
-      else if (!STRNCMP(pp, "-g", 2))
-	{
-	  if (pp[2] && STRNCMP("group", pp + 2, 5))
-	    octspergrp = (int)strtol(pp + 2, NULL, 0);
-	  else
-	    {
-	      if (!argv[2])
-		exit_with_usage();
-	      octspergrp = (int)strtol(argv[2], NULL, 0);
-	      argv++;
-	      argc--;
-	    }
-	}
-      else if (!STRNCMP(pp, "-o", 2))
-	{
-	  if (pp[2] && STRNCMP("ffset", pp + 2, 5))
-	    displayoff = (int)strtol(pp + 2, NULL, 0);
-	  else
-	    {
-	      if (!argv[2])
-		exit_with_usage();
-	      displayoff = (int)strtol(argv[2], NULL, 0);
-	      argv++;
-	      argc--;
-	    }
-	}
-      else if (!STRNCMP(pp, "-s", 2))
-	{
-	  relseek = 0;
-	  negseek = 0;
-	  if (pp[2] && STRNCMP("kip", pp+2, 3) && STRNCMP("eek", pp+2, 3))
-	    {
-#ifdef TRY_SEEK
-	      if (pp[2] == '+')
-		relseek++;
-	      if (pp[2+relseek] == '-')
-		negseek++;
-#endif
-	      seekoff = strtol(pp + 2+relseek+negseek, (char **)NULL, 0);
-	    }
-	  else
-	    {
-	      if (!argv[2])
-		exit_with_usage();
-#ifdef TRY_SEEK
-	      if (argv[2][0] == '+')
-		relseek++;
-	      if (argv[2][relseek] == '-')
-		negseek++;
-#endif
-	      seekoff = strtol(argv[2] + relseek+negseek, (char **)NULL, 0);
-	      argv++;
-	      argc--;
-	    }
-	}
-      else if (!STRNCMP(pp, "-l", 2))
-	{
-	  if (pp[2] && STRNCMP("en", pp + 2, 2))
-	    length = strtol(pp + 2, (char **)NULL, 0);
-	  else
-	    {
-	      if (!argv[2])
-		exit_with_usage();
-	      length = strtol(argv[2], (char **)NULL, 0);
-	      argv++;
-	      argc--;
-	    }
-	}
-      else if (!strcmp(pp, "--"))	/* end of options */
-	{
-	  argv++;
-	  argc--;
-	  break;
-	}
-      else if (pp[0] == '-' && pp[1])	/* unknown option */
-	exit_with_usage();
-      else
-	break;				/* not an option */
-
-      argv++;				/* advance to next argument */
-      argc--;
-    }
-
-  if (!cols)
-    switch (hextype)
-      {
-      case HEX_POSTSCRIPT:	cols = 30; break;
-      case HEX_CINCLUDE:	cols = 12; break;
-      case HEX_BITS:		cols = 6; break;
-      case HEX_NORMAL:
-      case HEX_LITTLEENDIAN:
-      default:			cols = 16; break;
-      }
-
-  if (octspergrp < 0)
-    switch (hextype)
-      {
-      case HEX_BITS:		octspergrp = 1; break;
-      case HEX_NORMAL:		octspergrp = 2; break;
-      case HEX_LITTLEENDIAN:	octspergrp = 4; break;
-      case HEX_POSTSCRIPT:
-      case HEX_CINCLUDE:
-      default:			octspergrp = 0; break;
-      }
-
-  if (cols < 1 || ((hextype == HEX_NORMAL || hextype == HEX_BITS || hextype == HEX_LITTLEENDIAN)
-							    && (cols > COLS)))
-    {
-      fprintf(stderr, "%s: invalid number of columns (max. %d).\n", pname, COLS);
-      exit(1);
-    }
-
-  if (octspergrp < 1 || octspergrp > cols)
-    octspergrp = cols;
-  else if (hextype == HEX_LITTLEENDIAN && (octspergrp & (octspergrp-1)))
-    {
-      fprintf(stderr,
-	      "%s: number of octets per group must be a power of 2 with -e.\n",
-	      pname);
-      exit(1);
-    }
-
-  if (argc > 3)
-    exit_with_usage();
-
-  if (argc == 1 || (argv[1][0] == '-' && !argv[1][1]))
-    BIN_ASSIGN(fp = stdin, !revert);
-  else
-    {
-      if ((fp = fopen(argv[1], BIN_READ(!revert))) == NULL)
-	{
-	  fprintf(stderr,"%s: ", pname);
-	  perror(argv[1]);
-	  return 2;
-	}
-    }
-
-  if (argc < 3 || (argv[2][0] == '-' && !argv[2][1]))
-    BIN_ASSIGN(fpo = stdout, revert);
-  else
-    {
-      int fd;
-      int mode = revert ? O_WRONLY : (O_TRUNC|O_WRONLY);
-
-      if (((fd = OPEN(argv[2], mode | BIN_CREAT(revert), 0666)) < 0) ||
-	  (fpo = fdopen(fd, BIN_WRITE(revert))) == NULL)
-	{
-	  fprintf(stderr, "%s: ", pname);
-	  perror(argv[2]);
-	  return 3;
-	}
-      rewind(fpo);
-    }
-
-  if (revert)
-    {
-      if (hextype && (hextype != HEX_POSTSCRIPT))
-	{
-	  fprintf(stderr, "%s: sorry, cannot revert this type of hexdump\n", pname);
-	  return -1;
-	}
-      return huntype(fp, fpo, stderr, cols, hextype,
-		negseek ? -seekoff : seekoff);
-    }
-
-  if (seekoff || negseek || !relseek)
-    {
-#ifdef TRY_SEEK
-      if (relseek)
-	e = fseek(fp, negseek ? -seekoff : seekoff, 1);
-      else
-	e = fseek(fp, negseek ? -seekoff : seekoff, negseek ? 2 : 0);
-      if (e < 0 && negseek)
-	{
-	  fprintf(stderr, "%s: sorry cannot seek.\n", pname);
-	  return 4;
-	}
-      if (e >= 0)
-	seekoff = ftell(fp);
-      else
-#endif
-	{
-	  long s = seekoff;
-
-	  while (s--)
-	    if (getc(fp) == EOF)
-	    {
-	      if (ferror(fp))
-		{
-		  die(2);
-		}
-	      else
-		{
-		  fprintf(stderr, "%s: sorry cannot seek.\n", pname);
-		  return 4;
-		}
-	    }
-	}
-    }
-
-  if (hextype == HEX_CINCLUDE)
-    {
-      if (fp != stdin)
-	{
-	  if (fprintf(fpo, "unsigned char %s", isdigit((int)argv[1][0]) ? "__" : "") < 0)
-	    die(3);
-	  for (e = 0; (c = argv[1][e]) != 0; e++)
-	    if (putc(isalnum(c) ? c : '_', fpo) == EOF)
-	      die(3);
-	  if (fputs("[] = {\n", fpo) == EOF)
-	    die(3);
-	}
-
-      p = 0;
-      c = 0;
-      while ((length < 0 || p < length) && (c = getc(fp)) != EOF)
-	{
-	  if (fprintf(fpo, (hexx == hexxa) ? "%s0x%02x" : "%s0X%02X",
-		(p % cols) ? ", " : &",\n  "[2*!p],  c) < 0)
-	    die(3);
-	  p++;
-	}
-      if (c == EOF && ferror(fp))
-	die(2);
-
-      if (p && fputs("\n", fpo) == EOF)
-	die(3);
-      if (fputs(&"};\n"[3 * (fp == stdin)], fpo) == EOF)
-	die(3);
-
-      if (fp != stdin)
-	{
-	  if (fprintf(fpo, "unsigned int %s", isdigit((int)argv[1][0]) ? "__" : "") < 0)
-	    die(3);
-	  for (e = 0; (c = argv[1][e]) != 0; e++)
-	    if (putc(isalnum(c) ? c : '_', fpo) == EOF)
-	      die(3);
-	  if (fprintf(fpo, "_len = %d;\n", p) < 0)
-	    die(3);
-	}
-
-      if (fclose(fp))
-	die(2);
-      if (fclose(fpo))
-	die(3);
-      return 0;
-    }
-
-  if (hextype == HEX_POSTSCRIPT)
-    {
-      p = cols;
-      e = 0;
-      while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
-	{
-	  if (putc(hexx[(e >> 4) & 0xf], fpo) == EOF
-		  || putc(hexx[e & 0xf], fpo) == EOF)
-	    die(3);
-	  n++;
-	  if (!--p)
-	    {
-	      if (putc('\n', fpo) == EOF)
-		die(3);
-	      p = cols;
-	    }
-	}
-      if (e == EOF && ferror(fp))
-	die(2);
-      if (p < cols)
-	if (putc('\n', fpo) == EOF)
-	  die(3);
-      if (fclose(fp))
-	die(2);
-      if (fclose(fpo))
-	die(3);
-      return 0;
-    }
-
-  /* hextype: HEX_NORMAL or HEX_BITS or HEX_LITTLEENDIAN */
-
-  if (hextype != HEX_BITS)
-    grplen = octspergrp + octspergrp + 1;	/* chars per octet group */
-  else	/* hextype == HEX_BITS */
-    grplen = 8 * octspergrp + 1;
-
-  e = 0;
-  while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
-    {
-      if (p == 0)
-	{
-	  sprintf(l, "%08lx:",
-	    ((unsigned long)(n + seekoff + displayoff)) & 0xffffffff);
-	  for (c = 9; c < LLEN; l[c++] = ' ');
-	}
-      if (hextype == HEX_NORMAL)
-	{
-	  l[c = (10 + (grplen * p) / octspergrp)] = hexx[(e >> 4) & 0xf];
-	  l[++c]				  = hexx[ e       & 0xf];
-	}
-      else if (hextype == HEX_LITTLEENDIAN)
-	{
-	  int x = p ^ (octspergrp-1);
-	  l[c = (10 + (grplen * x) / octspergrp)] = hexx[(e >> 4) & 0xf];
-	  l[++c]				  = hexx[ e       & 0xf];
-	}
-      else /* hextype == HEX_BITS */
-	{
-	  int i;
-
-	  c = (10 + (grplen * p) / octspergrp) - 1;
-	  for (i = 7; i >= 0; i--)
-	    l[++c] = (e & (1 << i)) ? '1' : '0';
-	}
-      if (ebcdic)
-	e = (e < 64) ? '.' : etoa64[e-64];
-      /* When changing this update definition of LLEN above. */
-      l[12 + (grplen * cols - 1)/octspergrp + p] =
-#ifdef __MVS__
-	  (e >= 64)
-#else
-	  (e > 31 && e < 127)
-#endif
-	  ? e : '.';
-      if (e)
-	nonzero++;
-      n++;
-      if (++p == cols)
-	{
-	  l[c = (12 + (grplen * cols - 1)/octspergrp + p)] = '\n'; l[++c] = '\0';
-	  xxdline(fpo, l, autoskip ? nonzero : 1);
-	  nonzero = 0;
-	  p = 0;
-	}
-    }
-  if (e == EOF && ferror(fp))
-    die(2);
-  if (p)
-    {
-      l[c = (12 + (grplen * cols - 1)/octspergrp + p)] = '\n'; l[++c] = '\0';
-      xxdline(fpo, l, 1);
-    }
-  else if (autoskip)
-    xxdline(fpo, l, -1);	/* last chance to flush out suppressed lines */
-
-  if (fclose(fp))
-    die(2);
-  if (fclose(fpo))
-    die(3);
-  return 0;
-}
-
-/* vi:set ts=8 sw=4 sts=2 cino+={2 cino+=n-2 : */
diff --git a/projects/curl/Dockerfile b/projects/curl/Dockerfile
index 1dc106a..dcd1239 100644
--- a/projects/curl/Dockerfile
+++ b/projects/curl/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER dvyukov@google.com
 
 RUN git clone --depth 1 https://github.com/curl/curl.git /src/curl
 RUN git clone --depth 1 https://github.com/curl/curl-fuzzer.git /src/curl_fuzzer
diff --git a/projects/curl/project.yaml b/projects/curl/project.yaml
index 71e6905..6ab2811 100644
--- a/projects/curl/project.yaml
+++ b/projects/curl/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://curl.haxx.se/"
-language: c++
 primary_contact: "daniel@haxx.se"
 auto_ccs:
   - "daniel.haxx@gmail.com"
@@ -11,4 +10,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/curl/curl.git'
diff --git a/projects/dart/Dockerfile b/projects/dart/Dockerfile
deleted file mode 100644
index d60afcb..0000000
--- a/projects/dart/Dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt install -y g++-multilib git python curl
-
-RUN git clone --depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git
-ENV PATH="${SRC}/depot_tools:${PATH}"
-RUN mkdir dart-sdk && cd dart-sdk && fetch dart
-COPY build.sh $SRC
-COPY patch.diff $SRC
-WORKDIR $SRC/dart-sdk/sdk
diff --git a/projects/dart/build.sh b/projects/dart/build.sh
deleted file mode 100755
index 520b275..0000000
--- a/projects/dart/build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-git apply ../../patch.diff
-./tools/build.py --no-goma -j$(nproc) -m debug -a x64 --sanitizer=asan dart_libfuzzer
-cp out/DebugASANX64/*fuzzer $OUT/
diff --git a/projects/dart/patch.diff b/projects/dart/patch.diff
deleted file mode 100644
index 18729d5..0000000
--- a/projects/dart/patch.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/runtime/bin/BUILD.gn b/runtime/bin/BUILD.gn
-index 1bc82252087..68e983b4902 100644
---- a/runtime/bin/BUILD.gn
-+++ b/runtime/bin/BUILD.gn
-@@ -1084,6 +1084,8 @@ if (defined(is_linux) && is_linux && defined(is_asan) && is_asan &&
-     extra_sources = [
-       "../vm/libfuzzer/dart_libfuzzer.cc",
-       "builtin.cc",
-+      "dartdev_isolate.cc",
-+      "dartdev_isolate.h",
-       "dfe.cc",
-       "dfe.h",
-     ]
diff --git a/projects/dart/project.yaml b/projects/dart/project.yaml
deleted file mode 100644
index 155fe23..0000000
--- a/projects/dart/project.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-homepage: "https://dart.dev"
-language: c++
-primary_contact: "scheglov@google.com"
-auto_ccs :
-- "p.antoine@catenacyber.fr"
-
-sanitizers:
-- address
-main_repo: 'https://github.com/dart-lang/sdk.git'
diff --git a/projects/dav1d/Dockerfile b/projects/dav1d/Dockerfile
index 81a4e59..61340ad 100644
--- a/projects/dav1d/Dockerfile
+++ b/projects/dav1d/Dockerfile
@@ -15,12 +15,14 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER janne-vlc@jannau.net
 
-ADD nasm.list /etc/apt/sources.list.d/nasm.list
+ADD bionic.list /etc/apt/sources.list.d/bionic.list
 ADD nasm_apt.pin /etc/apt/preferences
 
-RUN apt-get update && \
-    apt-get install --no-install-recommends -y curl python3-pip python3-setuptools python3-wheel nasm && \
+RUN dpkg --add-architecture i386 && \
+    apt-get update && \
+    apt-get install --no-install-recommends -y libstdc++-5-dev libstdc++-5-dev:i386 curl python3-pip python3-setuptools python3-wheel nasm && \
     pip3 install meson ninja
 RUN curl --silent -O https://storage.googleapis.com/aom-test-data/fuzzer/dec_fuzzer_seed_corpus.zip
 RUN curl --silent -O https://jannau.net/dav1d_fuzzer_seed_corpus.zip
diff --git a/projects/dav1d/bionic.list b/projects/dav1d/bionic.list
new file mode 100644
index 0000000..8621803
--- /dev/null
+++ b/projects/dav1d/bionic.list
@@ -0,0 +1,2 @@
+# use nasm 2.13.02 from bionic
+deb http://archive.ubuntu.com/ubuntu/ bionic universe
diff --git a/projects/dav1d/build.sh b/projects/dav1d/build.sh
index e1384ee..252817f 100755
--- a/projects/dav1d/build.sh
+++ b/projects/dav1d/build.sh
@@ -46,7 +46,7 @@
 (cd ${WORK}/tmp && zip -q -m -r -0 ${WORK}/tmp/seed_corpus.zip testdata)
 
 # copy fuzzers and link testdata
-for fuzzer in $(find ${build}/tests/libfuzzer -maxdepth 1 -type f -executable -name 'dav1d_fuzzer*'); do
+for fuzzer in $(find ${build} -name 'dav1d_fuzzer*'); do
 	cp "${fuzzer}" $OUT/
 	cp ${WORK}/tmp/seed_corpus.zip $OUT/$(basename "$fuzzer")_seed_corpus.zip
 done
diff --git a/projects/dav1d/nasm.list b/projects/dav1d/nasm.list
deleted file mode 100644
index 673ee99..0000000
--- a/projects/dav1d/nasm.list
+++ /dev/null
@@ -1,2 +0,0 @@
-# use nasm from a newer ubuntu release
-deb http://archive.ubuntu.com/ubuntu/ focal universe
diff --git a/projects/dav1d/nasm_apt.pin b/projects/dav1d/nasm_apt.pin
index d1932e9..6909902 100644
--- a/projects/dav1d/nasm_apt.pin
+++ b/projects/dav1d/nasm_apt.pin
@@ -1,7 +1,7 @@
 Package: *
-Pin: release n=focal
+Pin: release n=bionic
 Pin-Priority: 1
 
 Package: nasm
-Pin: release n=focal
+Pin: release n=bionic
 Pin-Priority: 555
diff --git a/projects/dav1d/project.yaml b/projects/dav1d/project.yaml
index 76c2349..9ff319f 100644
--- a/projects/dav1d/project.yaml
+++ b/projects/dav1d/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://code.videolan.org/videolan/dav1d"
-language: c++
 primary_contact: "janne.grunau@gmail.com"
 auto_ccs:
   - "rsbultje@gmail.com"
@@ -7,8 +6,8 @@
   - "b@rr-dav.id.au"
   - "dav1d-fuzz@videolan.org"
 vendor_ccs:
-  - "negge@mozilla.com"
   - "twsmith@mozilla.com"
+  - "cdiehl@mozilla.com"
 sanitizers:
   - address
   - memory
@@ -17,4 +16,3 @@
 architectures:
   - i386
   - x86_64
-main_repo: 'https://code.videolan.org/videolan/dav1d.git'
diff --git a/projects/django/Dockerfile b/projects/django/Dockerfile
index a73872f..8d55326 100644
--- a/projects/django/Dockerfile
+++ b/projects/django/Dockerfile
@@ -15,8 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 RUN apt-get install -y build-essential libncursesw5-dev libreadline-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev libbz2-dev zlib1g-dev libffi-dev wget
-RUN wget -q https://github.com/python/cpython/archive/v3.8.7.tar.gz
-RUN git clone --depth 1 https://github.com/django/django-fuzzers.git
+RUN wget -q https://github.com/python/cpython/archive/v3.8.0b2.tar.gz
+RUN git clone --depth 1 https://github.com/guidovranken/django-fuzzers.git
 RUN git clone --depth 1 https://github.com/django/django.git
 COPY build.sh $SRC/
diff --git a/projects/django/build.sh b/projects/django/build.sh
index b4e25a4..25d7594 100755
--- a/projects/django/build.sh
+++ b/projects/django/build.sh
@@ -45,8 +45,8 @@
 rm -rf $CPYTHON_INSTALL_PATH
 mkdir $CPYTHON_INSTALL_PATH
 
-tar zxf v3.8.7.tar.gz
-cd cpython-3.8.7/
+tar zxf v3.8.0b2.tar.gz
+cd cpython-3.8.0b2/
 cp $SRC/django-fuzzers/python_coverage.h Python/
 
 # Patch the interpreter to record code coverage
diff --git a/projects/django/project.yaml b/projects/django/project.yaml
index b3836b9..9597d8b 100644
--- a/projects/django/project.yaml
+++ b/projects/django/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.djangoproject.com/"
-language: c++
 primary_contact: "guidovranken@gmail.com"
 auto_ccs:
  - "f.apolloner@gmail.com"
@@ -7,7 +6,5 @@
  - "jammamarkus@gmail.com"
 fuzzing_engines:
   - libfuzzer
-  - honggfuzz
 sanitizers:
  - undefined
-main_repo: 'https://github.com/django/django.git'
diff --git a/projects/dlplibs/Dockerfile b/projects/dlplibs/Dockerfile
index 9c52a61..ec2e29e 100644
--- a/projects/dlplibs/Dockerfile
+++ b/projects/dlplibs/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER dtardon@redhat.com
 # install build requirements
 RUN apt-get update && \
     apt-get install -y wget xz-utils autoconf automake libtool pkg-config \
diff --git a/projects/dlplibs/project.yaml b/projects/dlplibs/project.yaml
index 7d3ed33..9711576 100644
--- a/projects/dlplibs/project.yaml
+++ b/projects/dlplibs/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.documentliberation.org"
-language: c++
 primary_contact: "dtardon@redhat.com"
 sanitizers:
   - address
diff --git a/projects/double-conversion/Dockerfile b/projects/double-conversion/Dockerfile
index 56ac7cb..08aa8db 100644
--- a/projects/double-conversion/Dockerfile
+++ b/projects/double-conversion/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER sbucur@google.com
 
 RUN apt-get update && \
     apt-get install -y --no-install-recommends \
diff --git a/projects/double-conversion/project.yaml b/projects/double-conversion/project.yaml
index 2e72b53..1c890f5 100644
--- a/projects/double-conversion/project.yaml
+++ b/projects/double-conversion/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/google/double-conversion"
-language: c++
 primary_contact: "florian@loitsch.com"
 auto_ccs:
   - "sbucur@google.com"
@@ -13,4 +12,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/google/double-conversion.git'
diff --git a/projects/dovecot/Dockerfile b/projects/dovecot/Dockerfile
deleted file mode 100755
index 5dcf792..0000000
--- a/projects/dovecot/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool wget gettext automake libxml2-dev m4 pkg-config bison flex
-RUN git clone --depth 1 https://github.com/dovecot/core dovecot
-WORKDIR dovecot
-COPY build.sh $SRC/
-#COPY fuzz-* $SRC/
-
diff --git a/projects/dovecot/build.sh b/projects/dovecot/build.sh
deleted file mode 100755
index bed21c6..0000000
--- a/projects/dovecot/build.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-./autogen.sh
-./configure PANDOC=false --with-fuzzer=clang
-make
-
-# Copy over the fuzzers
-find . -name "fuzz-*" -executable -exec cp {} $OUT/ \;
diff --git a/projects/dovecot/project.yaml b/projects/dovecot/project.yaml
deleted file mode 100755
index 91e350e..0000000
--- a/projects/dovecot/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://www.dovecot.org/"
-language: c
-primary_contact: "oss-fuzz@open-xchange.com"
-auto_ccs:
-    - "david@adalogics.com"
-    - "p.antoine@catenacyber.fr"
-    - "cmousefi@gmail.com"
-    - "boschstephan@gmail.com"
-    - "timo.sirainen@gmail.com"
-main_repo: 'https://github.com/dovecot/core'
diff --git a/projects/draco/Dockerfile b/projects/draco/Dockerfile
deleted file mode 100644
index 772ae6d..0000000
--- a/projects/draco/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y git cmake make pkg-config
-RUN git clone --depth 1 https://github.com/google/draco draco
-COPY build.sh $SRC/
-WORKDIR $WORK/
diff --git a/projects/draco/build.sh b/projects/draco/build.sh
deleted file mode 100755
index 1ebc898..0000000
--- a/projects/draco/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-sh $SRC/draco/src/draco/tools/fuzz/build.sh
diff --git a/projects/draco/project.yaml b/projects/draco/project.yaml
deleted file mode 100644
index 04ef12e..0000000
--- a/projects/draco/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: "https://github.com/google/draco"
-language: c++
-primary_contact: "fgalligan@google.com"
-auto_ccs:
-  - "ostava@google.com"
-  - "vytyaz@google.com"
-main_repo: 'https://github.com/google/draco'
diff --git a/projects/dragonfly/Dockerfile b/projects/dragonfly/Dockerfile
deleted file mode 100644
index 46870a6..0000000
--- a/projects/dragonfly/Dockerfile
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN go get	github.com/go-openapi/swag \
-		github.com/go-openapi/validate \
-		gopkg.in/warnings.v0 \
-		github.com/gorilla/mux \
-		github.com/prometheus/client_golang/prometheus \ 
-		github.com/pkg/errors \
-		github.com/sirupsen/logrus \
-		gopkg.in/gcfg.v1 \
-		github.com/valyala/fasthttp \
-		gopkg.in/natefinch/lumberjack.v2 \
-		github.com/emirpasic/gods/maps/treemap \
-		github.com/emirpasic/gods/utils \
-		github.com/willf/bitset
-RUN git clone https://github.com/dragonflyoss/Dragonfly
-COPY build.sh $SRC/
-WORKDIR $SRC/Dragonfly
diff --git a/projects/dragonfly/build.sh b/projects/dragonfly/build.sh
deleted file mode 100755
index 6487785..0000000
--- a/projects/dragonfly/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-compile_go_fuzzer github.com/dragonflyoss/Dragonfly/dfget/core/uploader FuzzParseParams uploader_fuzz
-compile_go_fuzzer github.com/dragonflyoss/Dragonfly/supernode/daemon/mgr/cdn Fuzz cdn_fuzz
diff --git a/projects/dragonfly/project.yaml b/projects/dragonfly/project.yaml
deleted file mode 100644
index eb125ca..0000000
--- a/projects/dragonfly/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/dragonflyoss/Dragonfly"
-primary_contact: "zj3142063@gmail.com"
-auto_ccs :
-  - "adam@adalogics.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/dragonflyoss/Dragonfly'
diff --git a/projects/dropbear/Dockerfile b/projects/dropbear/Dockerfile
index f2c2354..aaca681 100644
--- a/projects/dropbear/Dockerfile
+++ b/projects/dropbear/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2021 Google LLC
+# Copyright 2016 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,9 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER matt@ucc.asn.au
 RUN apt-get update && apt-get install -y libz-dev autoconf mercurial
-RUN hg clone https://hg.ucc.asn.au/dropbear-fuzzcorpus dropbear-corpus
-RUN git clone https://github.com/mkj/dropbear dropbear
+RUN hg clone https://secure.ucc.asn.au/hg/dropbear dropbear
+RUN hg clone https://secure.ucc.asn.au/hg/dropbear-fuzzcorpus dropbear/corpus
 WORKDIR dropbear
 COPY build.sh *.options $SRC/
 
diff --git a/projects/dropbear/build.sh b/projects/dropbear/build.sh
index 9732110..b7030b6 100644
--- a/projects/dropbear/build.sh
+++ b/projects/dropbear/build.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 2021 Google LLC
+# Copyright 2016 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -21,15 +21,17 @@
 autoheader
 popd
 
-$SRC/dropbear/configure --enable-fuzz --disable-harden --disable-zlib
+$SRC/dropbear/configure --enable-fuzz --disable-harden
+# force static zlib
+sed -i 's@-lz@/usr/lib/x86_64-linux-gnu/libz.a@' Makefile
 
 make -j$(nproc) fuzz-targets FUZZLIB=$LIB_FUZZING_ENGINE
 
 TARGETS="$(make list-fuzz-targets)"
 
-make -C $SRC/dropbear-corpus
+make -C $SRC/dropbear/corpus
 
 cp -v $TARGETS $OUT/
 cp -v *.options $OUT/
-cp -v $SRC/dropbear-corpus/*.zip $OUT/
-cp -v $SRC/dropbear-corpus/*.dict $OUT/
+cp -v $SRC/dropbear/corpus/*.zip $OUT/
+cp -v $SRC/dropbear/corpus/*.dict $OUT/
diff --git a/projects/dropbear/project.yaml b/projects/dropbear/project.yaml
index 78ee900..f6f10ad 100644
--- a/projects/dropbear/project.yaml
+++ b/projects/dropbear/project.yaml
@@ -1,5 +1,8 @@
 homepage: "https://matt.ucc.asn.au/dropbear/dropbear.html"
-language: c++
 primary_contact: "matt@ucc.asn.au"
-builds_per_day: 4
-main_repo: "https://github.com/mkj/dropbear"
+sanitizers:
+  - address
+  - undefined
+  - memory
+fuzzing_engines:
+   - libfuzzer
diff --git a/projects/e2fsprogs/Dockerfile b/projects/e2fsprogs/Dockerfile
deleted file mode 100644
index 484525b..0000000
--- a/projects/e2fsprogs/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get install -y --allow-downgrades --allow-remove-essential --allow-change-held-packages git make texinfo
-RUN git clone --depth 1 https://github.com/tytso/e2fsprogs
-
-COPY build.sh $SRC/
-COPY fuzz/ $SRC/fuzz/
-WORKDIR $SRC/e2fsprogs
diff --git a/projects/e2fsprogs/build.sh b/projects/e2fsprogs/build.sh
deleted file mode 100755
index 7b19f10..0000000
--- a/projects/e2fsprogs/build.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-export LDFLAGS="$CXXFLAGS"
-$SRC/e2fsprogs/configure
-make -j$(nproc) all
-
-# build fuzzers
-for fuzzer in $(find $SRC/fuzz -name '*_fuzzer.cc'); do
-  fuzzer_basename=$(basename -s .cc $fuzzer)
-  $CXX $CXXFLAGS \
-      $LIB_FUZZING_ENGINE \
-      -I $SRC/e2fsprogs/lib \
-      $fuzzer \
-      -L'./lib/ext2fs' -lext2fs \
-      -L'./lib/et' -lcom_err \
-      -o $OUT/$fuzzer_basename
-done
diff --git a/projects/e2fsprogs/fuzz/ext2fs_check_directory_fuzzer.cc b/projects/e2fsprogs/fuzz/ext2fs_check_directory_fuzzer.cc
deleted file mode 100644
index bd5240b..0000000
--- a/projects/e2fsprogs/fuzz/ext2fs_check_directory_fuzzer.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stddef.h>
-#include <stdint.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-#include "ext2fs/ext2fs.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  static const char* fname = "/tmp/ext2_test_file";
-
-  // Write our data to a temp file.
-  int fd = open(fname, O_RDWR|O_CREAT|O_TRUNC);
-  write(fd, data, size);
-  close(fd);
-
-  ext2_filsys fs;
-  errcode_t retval = ext2fs_open(
-      fname,
-      0, 0, 0,
-      unix_io_manager,
-      &fs);
-
-  if (!retval) {
-    retval = ext2fs_check_directory(fs, EXT2_ROOT_INO);
-    ext2fs_close(fs);
-  }
-
-  return 0;
-}
diff --git a/projects/e2fsprogs/fuzz/ext2fs_image_read_write_fuzzer.cc b/projects/e2fsprogs/fuzz/ext2fs_image_read_write_fuzzer.cc
deleted file mode 100644
index 80128bf..0000000
--- a/projects/e2fsprogs/fuzz/ext2fs_image_read_write_fuzzer.cc
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stddef.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <assert.h>
-#include <sys/syscall.h>
-#include <linux/memfd.h>
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include "ext2fs/ext2fs.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-
-  enum FuzzerType {
-    ext2fsImageBitmapRead,
-    ext2fsImageInodeRead,
-    ext2fsImageSuperRead,
-    ext2fsImageBitmapWrite,
-    ext2fsImageInodeWrite,
-    ext2fsImageSuperWrite,
-    kMaxValue = ext2fsImageSuperWrite
-  };
-
-  FuzzedDataProvider stream(data, size);
-  const FuzzerType f = stream.ConsumeEnum<FuzzerType>();
-  static const char* fname = "/tmp/ext2_test_file";
-
-  // Write our data to a temp file.
-  int fd = syscall(SYS_memfd_create, fname, 0);
-  std::vector<char> buffer = stream.ConsumeRemainingBytes<char>();
-  write(fd, buffer.data(), buffer.size());
-  close(fd);
-
-  ext2_filsys fs;
-  errcode_t retval = ext2fs_open(
-      fname,
-      0, 0, 0,
-      unix_io_manager,
-      &fs);
-
-  if (!retval) {
-    switch (f) {
-      case ext2fsImageBitmapRead: {
-        ext2fs_image_bitmap_read(fs, fd, 0);
-        break;
-      }
-      case ext2fsImageInodeRead: {
-        ext2fs_image_inode_read(fs, fd, 0);
-        break;
-      }
-      case ext2fsImageSuperRead: {
-        ext2fs_image_super_read(fs, fd, 0);
-        break;
-      }
-      case ext2fsImageBitmapWrite: {
-        ext2fs_image_bitmap_write(fs, fd, 0);
-        break;
-      }
-      case ext2fsImageInodeWrite: {
-        ext2fs_image_inode_write(fs, fd, 0);
-        break;
-      }
-      case ext2fsImageSuperWrite: {
-        ext2fs_image_super_write(fs, fd, 0);
-        break;
-      }
-      default: {
-        assert(false);
-      }
-    }
-    ext2fs_close(fs);
-  }
-
-  return 0;
-}
diff --git a/projects/e2fsprogs/fuzz/ext2fs_read_bitmap_fuzzer.cc b/projects/e2fsprogs/fuzz/ext2fs_read_bitmap_fuzzer.cc
deleted file mode 100644
index 861d4b5..0000000
--- a/projects/e2fsprogs/fuzz/ext2fs_read_bitmap_fuzzer.cc
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stddef.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <assert.h>
-#include <sys/syscall.h>
-#include <linux/memfd.h>
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include "ext2fs/ext2fs.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-
-  enum FuzzerType {
-    ext2fsReadBlockBitmap,
-    ext2fsReadInodeBitmap,
-    kMaxValue = ext2fsReadInodeBitmap
-  };
-
-  FuzzedDataProvider stream(data, size);
-  const FuzzerType f = stream.ConsumeEnum<FuzzerType>();
-  static const char* fname = "/tmp/ext2_test_file";
-
-  // Write our data to a temp file.
-  int fd = syscall(SYS_memfd_create, fname, 0);
-  std::vector<char> buffer = stream.ConsumeRemainingBytes<char>();
-  write(fd, buffer.data(), buffer.size());
-  close(fd);
-
-  ext2_filsys fs;
-  errcode_t retval = ext2fs_open(
-      fname,
-      0, 0, 0,
-      unix_io_manager,
-      &fs);
-
-  if (!retval) {
-    switch (f) {
-      case ext2fsReadBlockBitmap: {
-        ext2fs_read_block_bitmap(fs);
-        break;
-      }
-      case ext2fsReadInodeBitmap: {
-        ext2fs_read_inode_bitmap(fs);
-        break;
-      }
-      default: {
-        assert(false);
-      }
-    }
-    ext2fs_close(fs);
-  }
-
-  return 0;
-}
diff --git a/projects/e2fsprogs/project.yaml b/projects/e2fsprogs/project.yaml
deleted file mode 100644
index aabadcf..0000000
--- a/projects/e2fsprogs/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: "https://github.com/tytso/e2fsprogs"
-language: c
-primary_contact: "tytso@mit.edu"
-auto_ccs:
-  - "theodore.tso@gmail.com"
-  - "tytso@google.com"
-main_repo: 'https://github.com/tytso/e2fsprogs'
diff --git a/projects/easywsclient/Dockerfile b/projects/easywsclient/Dockerfile
index 5f0cbf1..44678f0 100644
--- a/projects/easywsclient/Dockerfile
+++ b/projects/easywsclient/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER dhbaird@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 https://github.com/dhbaird/easywsclient easywsclient
 WORKDIR easywsclient
diff --git a/projects/easywsclient/project.yaml b/projects/easywsclient/project.yaml
index c3be9c4..1bab7b7 100644
--- a/projects/easywsclient/project.yaml
+++ b/projects/easywsclient/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/dhbaird/easywsclient"
-language: c++
 primary_contact: "dhbaird@gmail.com"
 sanitizers:
   - address
@@ -8,4 +7,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/dhbaird/easywsclient'
diff --git a/projects/ecc-diff-fuzzer/Dockerfile b/projects/ecc-diff-fuzzer/Dockerfile
index 0ea8a4e..fd6770f 100644
--- a/projects/ecc-diff-fuzzer/Dockerfile
+++ b/projects/ecc-diff-fuzzer/Dockerfile
@@ -15,15 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake bzip2 autoconf automake gettext libtool python curl
-RUN rustup target add i686-unknown-linux-gnu
-#use different package sources for recent npm
-RUN curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh
-RUN bash nodesource_setup.sh
-RUN apt install -y nodejs
-RUN npm install -g browserify
-RUN npm install elliptic
-RUN git clone --depth 1 https://github.com/horhof/quickjs quickjs
+MAINTAINER p.antoine@catenacyber.fr
+RUN apt-get update && apt-get install -y make cmake bzip2 autoconf automake gettext libtool python
 RUN git clone --depth 1 https://github.com/catenacyber/elliptic-curve-differential-fuzzer.git ecfuzzer
 RUN git clone --recursive --depth 1 https://github.com/ARMmbed/mbedtls.git mbedtls
 RUN git clone --depth 1 https://github.com/ANSSI-FR/libecc.git libecc
diff --git a/projects/ecc-diff-fuzzer/build.sh b/projects/ecc-diff-fuzzer/build.sh
index 9b951ca..248941c 100755
--- a/projects/ecc-diff-fuzzer/build.sh
+++ b/projects/ecc-diff-fuzzer/build.sh
@@ -23,21 +23,19 @@
 cd gmp-6.1.2
 #do not use assembly instructions as we do not know if they will be available on the machine who will run the fuzzer
 #we could do instead --enable-fat
-./configure --disable-shared --disable-assembly
-make -j$(nproc)
+./configure --disable-assembly
+make
 make install
 cd ..
 autoreconf
-./configure --disable-shared --disable-openssl
-make -j$(nproc)
-make install
+./configure
+make
 )
 
 #cryptopp
 (
 cd cryptopp
-make -j$(nproc)
-make install
+make
 )
 
 #gcrypt
@@ -49,17 +47,16 @@
 else
     ./configure --disable-doc --enable-static --disable-shared
 fi
-make -j$(nproc)
+make
 make install
 cd ../gcrypt
 ./autogen.sh
 if [ "$ARCHITECTURE" = 'i386' ]; then
-    ./configure -host=i386 --enable-static --disable-shared --disable-doc --enable-maintainer-mode
+    ./configure -host=i386 --enable-static --disable-shared --disable-doc --enable-maintainer-mode --disable-asm
 else
-    ./configure --enable-static --disable-shared --disable-doc --enable-maintainer-mode
+    ./configure --enable-static --disable-shared --disable-doc --enable-maintainer-mode --disable-asm
 fi
-make -j$(nproc)
-make install
+make
 )
 
 #mbedtls
@@ -67,7 +64,6 @@
 cd mbedtls
 cmake . -DENABLE_PROGRAMS=0 -DENABLE_TESTING=0
 make -j$(nproc) all
-make install
 )
 
 #openssl
@@ -80,73 +76,43 @@
     ./config no-poly1305 no-shared no-threads
 fi
 make build_generated libcrypto.a
-make install
 )
 
 #libecc
 (
 cd libecc
 #required by libecc
-(export CFLAGS="$CFLAGS -fPIC"; make; cp build/*.a /usr/local/lib; cp -r src/* /usr/local/include/)
+(export CFLAGS="$CFLAGS -fPIC"; make)
 )
 
 #botan
 (
 cd botan
+#help it find libstdc++
+cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so
+export LDFLAGS=$CXXFLAGS
 if [ "$ARCHITECTURE" = 'i386' ]; then
-    ./configure.py --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" \
-               --disable-shared --disable-modules=locking_allocator --disable-shared-library \
-               --without-os-features=getrandom,getentropy --cpu x86_32
+    ./configure.py --disable-shared-library --cpu x86_32
 else
-    ./configure.py --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" \
-               --disable-shared --disable-modules=locking_allocator --disable-shared-library \
-               --without-os-features=getrandom,getentropy
+    ./configure.py --disable-shared-library
 fi
-make -j$(nproc)
-make install
-)
-
-#quickjs
-(
-cd quickjs
-if [ "$ARCHITECTURE" = 'i386' ]; then
-    make qjsc
-    cp qjsc /usr/local/bin/
-    make clean
-    # Makefile should not override CFLAGS
-    sed -i -e 's/CFLAGS=/CFLAGS+=/' Makefile
-    CFLAGS="-m32" make libquickjs.a
-else
-    make && make install
-fi
-cp quickjs*.h /usr/local/include/
-cp libquickjs.a /usr/local/lib/
+make
 )
 
 #build fuzz target
 cd ecfuzzer
-if [ "$ARCHITECTURE" = 'i386' ]; then
-    export GOARCH=386
-#needed explicitly because of cross compilation cf https://golang.org/cmd/cgo/
-    export CGO_ENABLED=1
-    export CARGO_BUILD_TARGET=i686-unknown-linux-gnu
-fi
 zip -r fuzz_ec_seed_corpus.zip corpus/
 cp fuzz_ec_seed_corpus.zip $OUT/
 cp fuzz_ec.dict $OUT/
-cp fuzz_ec.dict $OUT/fuzz_ec_noblocker.dict
 
-mkdir build
-cd build
-#no afl with long javascript initialization
-if [ "$FUZZING_ENGINE" != 'afl' ]; then
-    cmake ..
-    make -j$(nproc)
-    cp ecfuzzer $OUT/fuzz_ec
-    rm -Rf *
-fi
+$CC $CFLAGS -I. -c fuzz_ec.c -o fuzz_ec.o
+$CC $CFLAGS -I. -c fail.c -o fail.o
+$CC $CFLAGS -I. -I../mbedtls/include -I../mbedtls/crypto/include -c modules/mbedtls.c -o mbedtls.o
+$CC $CFLAGS -I. -I../openssl/include -c modules/openssl.c -o openssl.o
+$CC $CFLAGS -DWITH_STDLIB -I. -I../libecc/src -c modules/libecc.c -o libecc.o
+$CC $CFLAGS -I. -I../gcrypt/src -c modules/gcrypt.c -o gcrypt.o
+$CXX $CXXFLAGS -I. -I../ -c modules/cryptopp.cpp -o cryptopp.o
+$CC $CFLAGS -I. -I../ -c modules/nettle.c -o nettle.o
+$CXX $CXXFLAGS -std=c++11 -I. -I../ -I../botan/build/include -c modules/botan.cpp -o botan.o
 
-#another target without javascript
-cmake -DDISABLE_JS=ON ..
-make -j$(nproc)
-cp ecfuzzer $OUT/fuzz_ec_noblocker
+$CXX $CXXFLAGS fuzz_ec.o fail.o mbedtls.o libecc.o openssl.o gcrypt.o cryptopp.o nettle.o botan.o -o $OUT/fuzz_ec ../mbedtls/crypto/library/libmbedcrypto.a ../libecc/build/libec.a ../libecc/src/external_deps/rand.o ../openssl/libcrypto.a ../nettle/libhogweed.a ../nettle/libnettle.a ../nettle/gmp-6.1.2/.libs/libgmp.a ../gcrypt/src/.libs/libgcrypt.a ../cryptopp/libcryptopp.a ../botan/libbotan-2.a -lgpg-error $LIB_FUZZING_ENGINE
diff --git a/projects/ecc-diff-fuzzer/project.yaml b/projects/ecc-diff-fuzzer/project.yaml
index d88c040..d6a5e0b 100644
--- a/projects/ecc-diff-fuzzer/project.yaml
+++ b/projects/ecc-diff-fuzzer/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/catenacyber/elliptic-curve-differential-fuzzer"
-language: c++
 primary_contact: "p.antoine@catenacyber.fr"
 
 architectures:
diff --git a/projects/eigen/Dockerfile b/projects/eigen/Dockerfile
index 59f9c65..4d442dd 100644
--- a/projects/eigen/Dockerfile
+++ b/projects/eigen/Dockerfile
@@ -15,7 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER eigen-core-team@lists.tuxfamily.org
 RUN apt-get update && apt-get install --yes cmake mercurial
-RUN git clone https://gitlab.com/libeigen/eigen.git
+RUN hg clone https://GOOGLE-AUTOFUZZ@bitbucket.org/eigen/eigen
 WORKDIR eigen
-COPY build.sh *.cc $SRC/
+COPY build.sh solver_fuzzer.cc $SRC/
diff --git a/projects/eigen/basicstuff_fuzzer.cc b/projects/eigen/basicstuff_fuzzer.cc
deleted file mode 100644
index d593239..0000000
--- a/projects/eigen/basicstuff_fuzzer.cc
+++ /dev/null
@@ -1,202 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include "Eigen/Core"
-
-namespace {
-
-static constexpr Eigen::Index kEigenTestMaxSize = 64;
-static constexpr Eigen::Index kEigenIndexOne = static_cast<Eigen::Index>(1);
-
-template <typename T>
-T ConsumeValue(FuzzedDataProvider* stream) {
-  return stream->ConsumeIntegral<T>();
-}
-
-template <>
-float ConsumeValue(FuzzedDataProvider* stream) {
-  return stream->ConsumeFloatingPoint<float>();
-}
-
-template <>
-double ConsumeValue(FuzzedDataProvider* stream) {
-  return stream->ConsumeFloatingPoint<double>();
-}
-
-template <>
-long double ConsumeValue(FuzzedDataProvider* stream) {
-  return stream->ConsumeFloatingPoint<long double>();
-}
-
-template <>
-std::complex<float> ConsumeValue(FuzzedDataProvider* stream) {
-  return std::complex<float>(stream->ConsumeFloatingPoint<float>(),
-                             stream->ConsumeFloatingPoint<float>());
-}
-
-template <>
-std::complex<double> ConsumeValue(FuzzedDataProvider* stream) {
-  return std::complex<float>(stream->ConsumeFloatingPoint<double>(),
-                             stream->ConsumeFloatingPoint<double>());
-}
-
-template <typename MatrixType>
-MatrixType GenerateTestMatrix(size_t rows, size_t cols,
-                              FuzzedDataProvider* stream) {
-  std::vector<typename MatrixType::value_type> test_data(rows * cols);
-  for (auto& value : test_data) {
-    value = ConsumeValue<typename MatrixType::value_type>(stream);
-  }
-  Eigen::Map<MatrixType> mapped_map(test_data.data(), rows, cols);
-  return MatrixType(mapped_map);
-}
-
-template <typename MatrixType>
-void basicStuff(const MatrixType& m, FuzzedDataProvider* stream) {
-  typedef typename MatrixType::Scalar Scalar;
-  typedef Eigen::Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> VectorType;
-  typedef Eigen::Matrix<Scalar, MatrixType::RowsAtCompileTime,
-                        MatrixType::RowsAtCompileTime>
-      SquareMatrixType;
-
-  Eigen::Index rows = m.rows();
-  Eigen::Index cols = m.cols();
-
-  MatrixType m1 = GenerateTestMatrix<MatrixType>(rows, cols, stream),
-             m2 = GenerateTestMatrix<MatrixType>(rows, cols, stream),
-             m3(rows, cols), mzero = MatrixType::Zero(rows, cols),
-             square = GenerateTestMatrix<
-                 Eigen::Matrix<Scalar, MatrixType::RowsAtCompileTime,
-                               MatrixType::RowsAtCompileTime>>(rows, rows,
-                                                               stream);
-  VectorType v1 = GenerateTestMatrix<VectorType>(rows, 1, stream),
-             vzero = VectorType::Zero(rows);
-  SquareMatrixType sm1 = SquareMatrixType::Random(rows, rows), sm2(rows, rows);
-
-  Scalar x = ConsumeValue<typename MatrixType::Scalar>(stream);
-
-  Eigen::Index r = stream->ConsumeIntegralInRange(
-                   std::min(kEigenIndexOne, rows - 1), rows - 1),
-               c = stream->ConsumeIntegralInRange(
-                   std::min(kEigenIndexOne, cols - 1), cols - 1);
-
-  m1.coeffRef(r, c) = x;
-  m1(r, c) = x;
-  v1.coeffRef(r) = x;
-  v1(r) = x;
-  v1[r] = x;
-
-  Eigen::Index r1 = stream->ConsumeIntegralInRange(
-      static_cast<Eigen::Index>(0),
-      std::min(static_cast<Eigen::Index>(127), rows - 1));
-  x = v1(static_cast<char>(r1));
-  x = v1(static_cast<signed char>(r1));
-  x = v1(static_cast<unsigned char>(r1));
-  x = v1(static_cast<signed short>(r1));
-  x = v1(static_cast<unsigned short>(r1));
-  x = v1(static_cast<signed int>(r1));
-  x = v1(static_cast<unsigned int>(r1));
-  x = v1(static_cast<signed long>(r1));
-  x = v1(static_cast<unsigned long>(r1));
-  x = v1(static_cast<long long int>(r1));
-  x = v1(static_cast<unsigned long long int>(r1));
-
-  // now test copying a row-vector into a (column-)vector and conversely.
-  square.col(r) = square.row(r).eval();
-  Eigen::Matrix<Scalar, 1, MatrixType::RowsAtCompileTime> rv(rows);
-  Eigen::Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> cv(rows);
-  rv = square.row(r);
-  cv = square.col(r);
-
-  cv.transpose();
-
-  m3.real() = m1.real();
-  m1 = m2;
-
-  sm2.setZero();
-  for (Eigen::Index i = 0; i < rows; ++i) sm2.col(i) = sm1.row(i);
-
-  sm2.setZero();
-  for (Eigen::Index i = 0; i < rows; ++i) sm2.col(i).noalias() = sm1.row(i);
-
-  sm2.setZero();
-  for (Eigen::Index i = 0; i < rows; ++i) sm2.col(i).noalias() += sm1.row(i);
-
-  sm2.setZero();
-  for (Eigen::Index i = 0; i < rows; ++i) sm2.col(i).noalias() -= sm1.row(i);
-}
-
-template <typename MatrixType>
-void basicStuffComplex(const MatrixType& m, FuzzedDataProvider* stream) {
-  typedef typename MatrixType::Scalar Scalar;
-  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar;
-  typedef Eigen::Matrix<RealScalar, MatrixType::RowsAtCompileTime,
-                        MatrixType::ColsAtCompileTime>
-      RealMatrixType;
-
-  Eigen::Index rows = m.rows();
-  Eigen::Index cols = m.cols();
-
-  RealMatrixType rm1 = GenerateTestMatrix<RealMatrixType>(rows, cols, stream),
-                 rm2 = GenerateTestMatrix<RealMatrixType>(rows, cols, stream);
-  MatrixType cm(rows, cols);
-  cm.real() = rm1;
-  cm.imag() = rm2;
-  rm1.setZero();
-  rm2.setZero();
-  rm1 = cm.real();
-  rm2 = cm.imag();
-  cm.real().setZero();
-}
-
-}  // namespace
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  FuzzedDataProvider stream(data, size);
-
-  basicStuff(
-      Eigen::MatrixXcf(
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize),
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize)),
-      &stream);
-  basicStuff(
-      Eigen::MatrixXi(
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize),
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize)),
-      &stream);
-  basicStuff(
-      Eigen::MatrixXcd(
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize),
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize)),
-      &stream);
-  basicStuff(
-      Eigen::Matrix<long double, Eigen::Dynamic, Eigen::Dynamic>(
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize),
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize)),
-      &stream);
-  basicStuffComplex(
-      Eigen::MatrixXcf(
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize),
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize)),
-      &stream);
-  basicStuffComplex(
-      Eigen::MatrixXcd(
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize),
-          stream.ConsumeIntegralInRange(kEigenIndexOne, kEigenTestMaxSize)),
-      &stream);
-
-  return 0;
-}
diff --git a/projects/eigen/project.yaml b/projects/eigen/project.yaml
index b64d68b..1968313 100644
--- a/projects/eigen/project.yaml
+++ b/projects/eigen/project.yaml
@@ -1,11 +1,6 @@
 homepage: "http://eigen.tuxfamily.org/index.php?title=Main_Page"
-language: c++
 primary_contact: "eigen-core-team@lists.tuxfamily.org"
 sanitizers:
- - address
- - memory
- - undefined
-architectures:
-  - x86_64
-  - i386
-main_repo: 'https://gitlab.com/libeigen/eigen.git'
+  - address
+  - memory
+  - undefined
diff --git a/projects/envoy/Dockerfile b/projects/envoy/Dockerfile
index 5055acc..0be1677 100644
--- a/projects/envoy/Dockerfile
+++ b/projects/envoy/Dockerfile
@@ -14,8 +14,10 @@
 #
 ################################################################################
 
-
-FROM gcr.io/oss-fuzz-base/base-builder
+# TODO(https://github.com/google/oss-fuzz/issues/3093): Stop specifying the
+# image SHA once the bug is fixed.
+FROM gcr.io/oss-fuzz-base/base-builder@sha256:276813aef0ce5972db43c0230f96162003994fa742fb1b2f4e66c67498575c65
+MAINTAINER htuch@google.com
 
 RUN apt-get update && apt-get -y install  \
 	build-essential \
@@ -27,7 +29,16 @@
     libtool         \
     wget            \
     golang          \
-    rsync
+    python
+
+# Install Bazelisk
+RUN wget -O /usr/local/bin/bazel https://github.com/bazelbuild/bazelisk/releases/download/v0.0.8/bazelisk-linux-amd64
+RUN chmod +x /usr/local/bin/bazel
+
+# Install cmake
+RUN wget https://github.com/Kitware/CMake/releases/download/v3.14.5/cmake-3.14.5-Linux-x86_64.sh; \
+    chmod +x cmake-3.14.5-Linux-x86_64.sh; \
+    ./cmake-3.14.5-Linux-x86_64.sh --skip-license --prefix="/usr/local"
 
 RUN git clone https://github.com/envoyproxy/envoy.git
 WORKDIR $SRC/envoy/
diff --git a/projects/envoy/build.sh b/projects/envoy/build.sh
index 09086a2..39ef1b2 100755
--- a/projects/envoy/build.sh
+++ b/projects/envoy/build.sh
@@ -15,38 +15,62 @@
 #
 ################################################################################
 
-declare -r FUZZ_TARGET_QUERY='
-  let all_fuzz_tests = attr(tags, "fuzz_target", "...") in
-  $all_fuzz_tests - attr(tags, "no_fuzz", $all_fuzz_tests)
-'
-declare -r OSS_FUZZ_TARGETS="$(bazel query "${FUZZ_TARGET_QUERY}" | sed 's/$/_oss_fuzz/')"
+export CFLAGS="$CFLAGS"
+export CXXFLAGS="$CXXFLAGS"
 
+declare -r FUZZER_TARGETS_CC=$(find . -name *_fuzz_test.cc)
+declare -r FUZZER_TARGETS="$(for t in ${FUZZER_TARGETS_CC}; do echo "${t:2:-3}"; done)"
+
+FUZZER_DICTIONARIES="\
+"
+
+# Copy $CFLAGS and $CXXFLAGS into Bazel command-line flags, for both
+# compilation and linking.
+#
+# Some flags, such as `-stdlib=libc++`, generate warnings if used on a C source
+# file. Since the build runs with `-Werror` this will cause it to break, so we
+# use `--conlyopt` and `--cxxopt` instead of `--copt`.
+#
 declare -r EXTRA_BAZEL_FLAGS="$(
+for f in ${CFLAGS}; do
+  echo "--conlyopt=${f}" "--linkopt=${f}"
+done
+for f in ${CXXFLAGS}; do
+  echo "--cxxopt=${f}" "--linkopt=${f}"
+done
+
 if [ "$SANITIZER" = "undefined" ]
 then
   # Bazel uses clang to link binary, which does not link clang_rt ubsan library for C++ automatically.
   # See issue: https://github.com/bazelbuild/bazel/issues/8777
   echo "--linkopt=\"$(find $(llvm-config --libdir) -name libclang_rt.ubsan_standalone_cxx-x86_64.a | head -1)\""
-elif [ "$SANITIZER" = "address" ]
-then
-  echo "--copt=-D__SANITIZE_ADDRESS__" "--copt=-DADDRESS_SANITIZER=1" "--linkopt=-fsanitize=address"
 fi
 )"
 
-# The Envoy build configuration may clobber CFLAGS/CXXFLAGS, so we use separate
-# environment variables that are understood by rules_fuzzing.
-export FUZZING_CFLAGS="$CFLAGS"
-export FUZZING_CXXFLAGS="$CXXFLAGS"
+declare BAZEL_BUILD_TARGETS=""
+declare BAZEL_CORPUS_TARGETS=""
+declare FILTERED_FUZZER_TARGETS=""
+for t in ${FUZZER_TARGETS}
+do
+  declare BAZEL_PATH="//"$(dirname "$t")":"$(basename "$t")
+  declare TAGGED=$(bazel query "attr('tags', 'no_fuzz', ${BAZEL_PATH})")
+  if [ -z "${TAGGED}" ]
+  then
+    FILTERED_FUZZER_TARGETS+="$t "
+    BAZEL_BUILD_TARGETS+="${BAZEL_PATH}_driverless "
+    BAZEL_CORPUS_TARGETS+="${BAZEL_PATH}_corpus_tar "
+  fi
+done
 
-# Benchmark about 3 GB per CPU (10 threads for 28.8 GB RAM)
-# TODO(asraa): Remove deprecation warnings when Envoy and deps moves to C++17
-bazel build --verbose_failures --dynamic_mode=off \
-  --spawn_strategy=standalone --genrule_strategy=standalone \
-  --local_cpu_resources=HOST_CPUS*0.32 \
-  --//source/extensions/wasm_runtime/v8:enabled=false \
-  --build_tag_filters=-no_asan --config=oss-fuzz \
-  ${EXTRA_BAZEL_FLAGS} \
-  ${OSS_FUZZ_TARGETS[*]}
+# Build driverless libraries.
+bazel build --verbose_failures --dynamic_mode=off --spawn_strategy=standalone \
+  --genrule_strategy=standalone --strip=never \
+  --copt=-fno-sanitize=vptr --linkopt=-fno-sanitize=vptr \
+  --define tcmalloc=disabled --define signal_trace=disabled \
+  --define ENVOY_CONFIG_ASAN=1 --copt -D__SANITIZE_ADDRESS__ \
+  --define force_libcpp=enabled --build_tag_filters=-no_asan \
+  --linkopt=-lc++ --linkopt=-pthread ${EXTRA_BAZEL_FLAGS} \
+  ${BAZEL_BUILD_TARGETS[*]} ${BAZEL_CORPUS_TARGETS[*]}
 
 # Profiling with coverage requires that we resolve+copy all Bazel symlinks and
 # also remap everything under proc/self/cwd to correspond to Bazel build paths.
@@ -75,8 +99,36 @@
   rsync -avLkR "${RSYNC_FILTER_ARGS[@]}" /tmp "${OUT}"
 fi
 
-for oss_fuzz_archive in $(find bazel-bin/ -name '*_oss_fuzz.tar'); do
-    tar -xvf "${oss_fuzz_archive}" -C "${OUT}"
+# Copy out test driverless binaries from bazel-bin/.
+for t in ${FILTERED_FUZZER_TARGETS}
+do
+  TARGET_BASE="$(expr "$t" : '.*/\(.*\)_fuzz_test')"
+  TARGET_DRIVERLESS=bazel-bin/"${t}"_driverless
+  echo "Copying fuzzer $t"
+  cp "${TARGET_DRIVERLESS}" "${OUT}"/"${TARGET_BASE}"_fuzz_test
+done
+
+# Zip up related test corpuses.
+# TODO(htuch): just use the .tar directly when
+# https://github.com/google/oss-fuzz/issues/1918 is fixed.
+CORPUS_UNTAR_PATH="${PWD}"/_tmp_corpus
+for t in ${FILTERED_FUZZER_TARGETS}
+do
+  echo "Extracting and zipping fuzzer $t corpus"
+  rm -rf "${CORPUS_UNTAR_PATH}"
+  mkdir -p "${CORPUS_UNTAR_PATH}"
+  tar -C "${CORPUS_UNTAR_PATH}" -xvf bazel-bin/"${t}"_corpus_tar.tar
+  TARGET_BASE="$(expr "$t" : '.*/\(.*\)_fuzz_test')"
+  # There may be *.dict files in this folder that need to be moved into the OUT dir.
+  find "${CORPUS_UNTAR_PATH}" -type f -name *.dict -exec mv -n {} "${OUT}"/ \;
+  zip "${OUT}/${TARGET_BASE}"_fuzz_test_seed_corpus.zip \
+    "${CORPUS_UNTAR_PATH}"/*
+done
+rm -rf "${CORPUS_UNTAR_PATH}"
+
+# Copy dictionaries and options files to $OUT/
+for d in $FUZZER_DICTIONARIES; do
+  cp "$d" "${OUT}"/
 done
 
 # Cleanup bazel- symlinks to avoid oss-fuzz trying to copy out of the build
diff --git a/projects/envoy/project.yaml b/projects/envoy/project.yaml
index 5fae149..eccfd77 100644
--- a/projects/envoy/project.yaml
+++ b/projects/envoy/project.yaml
@@ -1,22 +1,14 @@
 homepage: "https://www.envoyproxy.io/"
-language: c++
 primary_contact: "htuch@google.com"
 auto_ccs:
   - "mattklein123@gmail.com"
   - "alyssar@google.com"
   - "dio@tetrate.io"
+  - "jbuckland@google.com"
   - "jmarantz@google.com"
   - "lizan@tetrate.io"
   - "envoy-security@googlegroups.com"
   - "yavlasov@google.com"
   - "asraa@google.com"
-  - "adip@google.com"
   - "avd@google.com"
-  - "skerner@google.com"
-  - "rdsmith@google.com"
-  - "chaoqinli@google.com"
-  - "yanjunxiang@google.com"
-  - "arquebus@appspot.gserviceaccount.com"
-  - "david@adalogics.com"
 coverage_extra_args: -ignore-filename-regex=.*\.cache.*envoy_deps_cache.*
-main_repo: 'https://github.com/envoyproxy/envoy.git'
diff --git a/projects/esp-v2/Dockerfile b/projects/esp-v2/Dockerfile
deleted file mode 100644
index 0e5a296..0000000
--- a/projects/esp-v2/Dockerfile
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-## This file was copied from envoy (with minor changes).
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && apt-get -y install  \
-    build-essential \
-    openjdk-8-jdk   \
-    make            \
-    ninja-build     \
-    curl            \
-    autoconf        \
-    libtool         \
-    wget            \
-    golang          \
-    python          \
-    rsync
-
-# Install Bazelisk
-RUN wget -O /usr/local/bin/bazel https://github.com/bazelbuild/bazelisk/releases/download/v0.0.8/bazelisk-linux-amd64; \
-    chmod +x /usr/local/bin/bazel
-
-RUN git clone --depth 1 https://github.com/GoogleCloudPlatform/esp-v2.git
-WORKDIR $SRC/esp-v2/
-COPY build.sh $SRC/
diff --git a/projects/esp-v2/build.sh b/projects/esp-v2/build.sh
deleted file mode 100755
index 4206b30..0000000
--- a/projects/esp-v2/build.sh
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-## Copied from envoy
-
-export CFLAGS="$CFLAGS"
-export CXXFLAGS="$CXXFLAGS"
-
-FUZZER_DICTIONARIES="\
-"
-
-# Copy $CFLAGS and $CXXFLAGS into Bazel command-line flags, for both
-# compilation and linking.
-#
-# Some flags, such as `-stdlib=libc++`, generate warnings if used on a C source
-# file. Since the build runs with `-Werror` this will cause it to break, so we
-# use `--conlyopt` and `--cxxopt` instead of `--copt`.
-#
-declare -r EXTRA_BAZEL_FLAGS="$(
-for f in ${CFLAGS}; do
-  echo "--conlyopt=${f}" "--linkopt=${f}"
-done
-for f in ${CXXFLAGS}; do
-  echo "--cxxopt=${f}" "--linkopt=${f}"
-done
-
-if [ "$SANITIZER" = "undefined" ]
-then
-  # Bazel uses clang to link binary, which does not link clang_rt ubsan library for C++ automatically.
-  # See issue: https://github.com/bazelbuild/bazel/issues/8777
-  echo "--linkopt=\"$(find $(llvm-config --libdir) -name libclang_rt.ubsan_standalone_cxx-x86_64.a | head -1)\""
-elif [ "$SANITIZER" = "address" ]
-then
-  echo "--copt -D__SANITIZE_ADDRESS__" "--copt -DADDRESS_SANITIZER=1"
-fi
-)"
-
-declare BAZEL_BUILD_TARGETS=""
-declare BAZEL_CORPUS_TARGETS=""
-declare FILTERED_FUZZER_TARGETS=""
-for t in $(bazel query 'src/...' --output label | grep '_fuzz_test$')
-do
-  declare TAGGED=$(bazel query "attr('tags', 'no_fuzz', ${t})")
-  if [ -z "${TAGGED}" ]
-  then
-    BASE_PATH=${t//://}
-    BASE_PATH=${BASE_PATH#"//"}
-    FILTERED_FUZZER_TARGETS+="${BASE_PATH} "
-    BAZEL_BUILD_TARGETS+="${t}_driverless "
-    BAZEL_CORPUS_TARGETS+="${t}_corpus_tar "
-  fi
-done
-
-# Build driverless libraries.
-# Benchmark about 3 GB per CPU (10 threads for 28.8 GB RAM)
-# TODO(nareddyt): Remove deprecation warnings when Envoy and deps moves to C++17
-bazel build --verbose_failures --dynamic_mode=off --spawn_strategy=sandboxed \
-  --local_cpu_resources=HOST_CPUS*0.32 \
-  --genrule_strategy=standalone --strip=never \
-  --copt=-fno-sanitize=vptr --linkopt=-fno-sanitize=vptr \
-  --define tcmalloc=disabled --define signal_trace=disabled \
-  --define ENVOY_CONFIG_ASAN=1 \
-  --define force_libcpp=enabled --build_tag_filters=-no_asan \
-  --linkopt=-lc++ --linkopt=-pthread ${EXTRA_BAZEL_FLAGS} \
-  ${BAZEL_BUILD_TARGETS[*]} ${BAZEL_CORPUS_TARGETS[*]}
-
-# Profiling with coverage requires that we resolve+copy all Bazel symlinks and
-# also remap everything under proc/self/cwd to correspond to Bazel build paths.
-if [ "$SANITIZER" = "coverage" ]
-then
-  # The build invoker looks for sources in $SRC, but it turns out that we need
-  # to not be buried under src/, paths are expected at out/proc/self/cwd by
-  # the profiler.
-  declare -r REMAP_PATH="${OUT}/proc/self/cwd"
-  mkdir -p "${REMAP_PATH}"
-
-  rsync -av "${SRC}"/esp-v2/src "${REMAP_PATH}"
-  # Remove filesystem loop manually.
-  rm -rf "${SRC}"/esp-v2/bazel-esp-v2/external/esp-v2
-  # Clean up symlinks with a missing referrant.
-  find "${SRC}"/esp-v2/bazel-esp-v2/external -follow -type l -ls -delete || echo "Symlink cleanup soft fail"
-  rsync -avLk "${SRC}"/esp-v2/bazel-esp-v2/external "${REMAP_PATH}"
-  # For .h, and some generated artifacts, we need bazel-out/. Need to heavily
-  # filter out the build objects from bazel-out/. Also need to resolve symlinks,
-  # since they don't make sense outside the build container.
-  declare -r RSYNC_FILTER_ARGS=("--include" "*.h" "--include" "*.cc" "--include" \
-    "*.hpp" "--include" "*.cpp" "--include" "*.c" "--include" "*/" "--exclude" "*")
-  rsync -avLk "${RSYNC_FILTER_ARGS[@]}" "${SRC}"/esp-v2/bazel-out "${REMAP_PATH}"
-  rsync -avLkR "${RSYNC_FILTER_ARGS[@]}" "${HOME}" "${OUT}"
-  # Some low-level libraries are built located /tmp.
-  # But ESPv2 engineeers don't really look at them.
-  # rsync -avLkR "${RSYNC_FILTER_ARGS[@]}" /tmp "${OUT}"
-fi
-
-# Copy out test driverless binaries from bazel-bin/.
-for t in ${FILTERED_FUZZER_TARGETS}
-do
-  TARGET_BASE="$(expr "$t" : '.*/\(.*\)_fuzz_test')"
-  TARGET_DRIVERLESS=bazel-bin/"${t}"_driverless
-  echo "Copying fuzzer $t"
-  cp "${TARGET_DRIVERLESS}" "${OUT}"/"${TARGET_BASE}"_fuzz_test
-done
-
-# Zip up related test corpuses.
-# TODO(nareddyt): just use the .tar directly when
-# https://github.com/google/oss-fuzz/issues/1918 is fixed.
-CORPUS_UNTAR_PATH="${PWD}"/_tmp_corpus
-for t in ${FILTERED_FUZZER_TARGETS}
-do
-  echo "Extracting and zipping fuzzer $t corpus"
-  rm -rf "${CORPUS_UNTAR_PATH}"
-  mkdir -p "${CORPUS_UNTAR_PATH}"
-  tar -C "${CORPUS_UNTAR_PATH}" -xvf bazel-bin/"${t}"_corpus_tar.tar
-  TARGET_BASE="$(expr "$t" : '.*/\(.*\)_fuzz_test')"
-  # There may be *.dict files in this folder that need to be moved into the OUT dir.
-  find "${CORPUS_UNTAR_PATH}" -type f -name *.dict -exec mv -n {} "${OUT}"/ \;
-  zip "${OUT}/${TARGET_BASE}"_fuzz_test_seed_corpus.zip \
-    "${CORPUS_UNTAR_PATH}"/*
-done
-rm -rf "${CORPUS_UNTAR_PATH}"
-
-# Copy dictionaries and options files to $OUT/
-for d in $FUZZER_DICTIONARIES; do
-  cp "$d" "${OUT}"/
-done
-
-# Cleanup bazel- symlinks to avoid oss-fuzz trying to copy out of the build
-# cache.
-rm -f bazel-*
diff --git a/projects/esp-v2/project.yaml b/projects/esp-v2/project.yaml
deleted file mode 100644
index a24dbd2..0000000
--- a/projects/esp-v2/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/GoogleCloudPlatform/esp-v2"
-language: c++
-primary_contact: "nareddyt@google.com"
-auto_ccs:
-- "taoxuy@google.com"
-- "qiwzhang@google.com"
-sanitizers:
-- address
-- undefined
-coverage_extra_args: -ignore-filename-regex=.*\.cache.* -ignore-filename-regex=.*bazel-out.*
-main_repo: 'https://github.com/GoogleCloudPlatform/esp-v2.git'
diff --git a/projects/example/project.yaml b/projects/example/project.yaml
index 9ae82d4..ac3a4c7 100644
--- a/projects/example/project.yaml
+++ b/projects/example/project.yaml
@@ -1,9 +1,6 @@
 # Provide the home page for *your* project:
 homepage: "https://my-api.example.com"
 
-# Language the project is written in:
-language: c++
-
 # Provide the e-mail for the primary contact and others:
 # Un-comment the below lines to make auto-cc work.
 # primary_contact: "primary-my-api-maintainer@example.com"
diff --git a/projects/excelize/project.yaml b/projects/excelize/project.yaml
deleted file mode 100644
index 428a813..0000000
--- a/projects/excelize/project.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-homepage: "https://xuri.me/excelize"
-language: go
-primary_contact: "xuri.me@gmail.com"
\ No newline at end of file
diff --git a/projects/expat/Dockerfile b/projects/expat/Dockerfile
index b9aedc9..64efaff 100644
--- a/projects/expat/Dockerfile
+++ b/projects/expat/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mike.aizatsky@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool docbook2x cmake
 
 RUN git clone --depth 1 https://github.com/libexpat/libexpat expat
diff --git a/projects/expat/build.sh b/projects/expat/build.sh
index 333d258..21c4f51 100755
--- a/projects/expat/build.sh
+++ b/projects/expat/build.sh
@@ -15,33 +15,9 @@
 #
 ################################################################################
 
-: ${LD:="${CXX}"}
-: ${LDFLAGS:="${CXXFLAGS}"}  # to make sure we link with sanitizer runtime
-
-cmake_args=(
-    # Specific to Expat
-    -DEXPAT_BUILD_FUZZERS=ON
-    -DEXPAT_OSSFUZZ_BUILD=ON
-    -DEXPAT_SHARED_LIBS=OFF
-
-    # C compiler
-    -DCMAKE_C_COMPILER="${CC}"
-    -DCMAKE_C_FLAGS="${CFLAGS}"
-
-    # C++ compiler
-    -DCMAKE_CXX_COMPILER="${CXX}"
-    -DCMAKE_CXX_FLAGS="${CXXFLAGS}"
-
-    # Linker
-    -DCMAKE_LINKER="${LD}"
-    -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}"
-    -DCMAKE_MODULE_LINKER_FLAGS="${LDFLAGS}"
-    -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}"
-)
-
 mkdir -p build
 cd build
-cmake ../expat "${cmake_args[@]}"
+cmake ../expat -DEXPAT_BUILD_FUZZERS=ON -DEXPAT_OSSFUZZ_BUILD=ON -DEXPAT_SHARED_LIBS=OFF
 make -j$(nproc)
 
 for fuzzer in fuzz/*;
diff --git a/projects/expat/project.yaml b/projects/expat/project.yaml
index a72ec4e..0022a91 100644
--- a/projects/expat/project.yaml
+++ b/projects/expat/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/libexpat/libexpat"
-language: c++
 primary_contact: "sebastian@pipping.org"
 auto_ccs:
  - "rhodri@kynesim.co.uk"
@@ -7,7 +6,7 @@
  - "webmaster@hartwork.org"
  - "bshas3@gmail.com"
 vendor_ccs:
- - "twsmith@mozilla.com"
+ - "cdiehl@mozilla.com"
 sanitizers:
   - address
   - memory
@@ -15,4 +14,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/libexpat/libexpat'
diff --git a/projects/exprtk/Dockerfile b/projects/exprtk/Dockerfile
deleted file mode 100644
index 966d4e9..0000000
--- a/projects/exprtk/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool
-RUN git clone --depth 1 https://github.com/ArashPartow/exprtk.git exprtk
-WORKDIR exprtk
-COPY build.sh exprtk_fuzzer.cpp exprtk_test_expressions.dict $SRC/
diff --git a/projects/exprtk/build.sh b/projects/exprtk/build.sh
deleted file mode 100644
index 2fcb53d..0000000
--- a/projects/exprtk/build.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cp $SRC/*.dict $OUT/
-
-CXXFLAGS="${CXXFLAGS} -O2 -fno-sanitize=integer-divide-by-zero,float-divide-by-zero"
-
-$CXX -std=c++11 $CXXFLAGS -I. -I$SRC/exprtk \
-     $SRC/exprtk_fuzzer.cpp -o $OUT/exprtk_fuzzer \
-     $LIB_FUZZING_ENGINE
diff --git a/projects/exprtk/exprtk_fuzzer.cpp b/projects/exprtk/exprtk_fuzzer.cpp
deleted file mode 100644
index 3b10913..0000000
--- a/projects/exprtk/exprtk_fuzzer.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstdint>
-#include <string>
-
-#define exprtk_enable_runtime_checks
-#include "exprtk.hpp"
-
-
-template <typename T>
-void run(const std::string& expression_string)
-{
-   typedef exprtk::symbol_table<T>          symbol_table_t;
-   typedef exprtk::expression<T>              expression_t;
-   typedef exprtk::parser<T>                      parser_t;
-   typedef exprtk::loop_runtime_check loop_runtime_check_t;
-
-   T x = T(1.2345);
-   T y = T(2.2345);
-   T z = T(3.2345);
-   T w = T(4.2345);
-
-   symbol_table_t symbol_table;
-   symbol_table.add_variable("x",x);
-   symbol_table.add_variable("y",y);
-   symbol_table.add_variable("z",z);
-   symbol_table.add_variable("w",w);
-   symbol_table.add_constants();
-
-   expression_t expression;
-   expression.register_symbol_table(symbol_table);
-
-   loop_runtime_check_t loop_runtime_check;
-   loop_runtime_check.loop_set = loop_runtime_check_t::e_all_loops;
-   loop_runtime_check.max_loop_iterations = 1000000;
-
-   parser_t parser;
-
-   parser.register_loop_runtime_check(loop_runtime_check);
-
-   if (parser.compile(expression_string, expression))
-   {
-      const std::size_t max_expression_size = 64 * 1024;
-
-      if (expression_string.size() <= max_expression_size)
-      {
-         try
-         {
-            expression.value();
-         }
-         catch (std::runtime_error& rte)
-         {}
-
-         parser.clear_loop_runtime_check();
-      }
-   }
-}
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
-{
-   const std::string expression(reinterpret_cast<const char*>(data), size);
-
-   run<double>(expression);
-   run<float> (expression);
-
-   return 0;
-}
diff --git a/projects/exprtk/exprtk_test_expressions.dict b/projects/exprtk/exprtk_test_expressions.dict
deleted file mode 100644
index 40711f0..0000000
--- a/projects/exprtk/exprtk_test_expressions.dict
+++ /dev/null
@@ -1,7239 +0,0 @@
-"1"
-"a"
-"()"
-"a*2"
-"a+1"
-"a+b"
-"(())"
-"a+-b"
-"(a*e)"
-"(a+e)"
-"(a-a)"
-"(b*e)"
-"(b+a)"
-"(b-b)"
-"(e*e)"
-"1+a^2"
-"2*a+1"
-"a*2.2"
-"a*b*c"
-"a*b+c"
-"a+1.1"
-"a+b*c"
-"a+b+c"
-"a+b-c"
-"a-b-c"
-"a/b/c"
-"a^2+1"
-"a^2^3"
-"b^2*2"
-"x*y*z"
-"x*y+z"
-"x*y-z"
-"x*y/z"
-"x+y*z"
-"x+y+z"
-"x+y-z"
-"x+y/z"
-"x-y*z"
-"x-y/z"
-"x/y*z"
-"x/y+z"
-"x/y-z"
-"x/y/z"
-"((()))"
-"(pi*b)"
-"(pi+b)"
-"(x)(x)"
-"[x][x]"
-"abs(a)"
-"cos(a)"
-"sin(a)"
-"tan(a)"
-"{x}{x}"
-"(a+b)*3"
-"(pi+pi)"
-"1.1*a^2"
-"1.1+a^2"
-"2*(a+b)"
-"2.2*b^2"
-"2.2*y*z"
-"2.2*y+z"
-"2.2*y-z"
-"2.2*y/z"
-"2.2+y*z"
-"2.2+y+z"
-"2.2+y-z"
-"2.2+y/z"
-"2.2-y*z"
-"2.2-y/z"
-"2.2/y*z"
-"2.2/y+z"
-"2.2/y-z"
-"2.2/y/z"
-"a*2+b*2"
-"a^2+b^2"
-"sqrt(a)"
-"x*3.3*z"
-"x*3.3+z"
-"x*3.3-z"
-"x*3.3/z"
-"x*y*4.4"
-"x*y*z+w"
-"x*y*z-w"
-"x*y+4.4"
-"x*y+z*w"
-"x*y+z+w"
-"x*y+z-w"
-"x*y+z/w"
-"x*y-4.4"
-"x*y-z*w"
-"x*y-z+w"
-"x*y-z-w"
-"x*y-z/w"
-"x*y/4.4"
-"x*y/z+w"
-"x*y/z-w"
-"x+3.3*z"
-"x+3.3+z"
-"x+3.3-z"
-"x+3.3/z"
-"x+y*4.4"
-"x+y*z*w"
-"x+y*z-w"
-"x+y*z/w"
-"x+y+4.4"
-"x+y+z*w"
-"x+y+z-w"
-"x+y+z/w"
-"x+y-4.4"
-"x+y-z*w"
-"x+y-z-w"
-"x+y-z/w"
-"x+y/4.4"
-"x+y/z*w"
-"x+y/z+w"
-"x+y/z-w"
-"x+y/z/w"
-"x-3.3*z"
-"x-3.3/z"
-"x-y*4.4"
-"x-y*z*w"
-"x-y*z-w"
-"x-y*z/w"
-"x-y+z*w"
-"x-y+z+w"
-"x-y+z/w"
-"x-y-z*w"
-"x-y-z+w"
-"x-y-z/w"
-"x-y/4.4"
-"x-y/z*w"
-"x-y/z-w"
-"x-y/z/w"
-"x/3.3*z"
-"x/3.3+z"
-"x/3.3-z"
-"x/3.3/z"
-"x/y*4.4"
-"x/y*z+w"
-"x/y*z-w"
-"x/y+4.4"
-"x/y+z*w"
-"x/y+z+w"
-"x/y+z-w"
-"x/y+z/w"
-"x/y-4.4"
-"x/y-z*w"
-"x/y-z+w"
-"x/y-z-w"
-"x/y-z/w"
-"x/y/4.4"
-"x/y/z+w"
-"x/y/z-w"
-"(3.70/b)"
-"(a/0.20)"
-"(b+2.07)"
-"(b+3.52)"
-"-(b^1.1)"
-"((a/a)+e)"
-"((b/a)/a)"
-"((e/b)+e)"
-"((x*y*z))"
-"((x*y+z))"
-"((x*y-z))"
-"((x*y/z))"
-"((x+y*z))"
-"((x+y+z))"
-"((x+y-z))"
-"((x+y/z))"
-"((x-y*z))"
-"((x-y+z))"
-"((x-y-z))"
-"((x-y/z))"
-"((x/y*z))"
-"((x/y+z))"
-"((x/y-z))"
-"((x/y/z))"
-"(2*a+1)*3"
-"(2*a+2*a)"
-"(3.00+pi)"
-"(a+b)*3.3"
-"2.2*(a+b)"
-"2.2*a+1.1"
-"2.2*y*4.4"
-"2.2*y*z+w"
-"2.2*y*z-w"
-"2.2*y+4.4"
-"2.2*y+z*w"
-"2.2*y+z+w"
-"2.2*y+z-w"
-"2.2*y+z/w"
-"2.2*y-4.4"
-"2.2*y-z*w"
-"2.2*y-z+w"
-"2.2*y-z-w"
-"2.2*y-z/w"
-"2.2*y/4.4"
-"2.2*y/z+w"
-"2.2*y/z-w"
-"2.2+y*4.4"
-"2.2+y*z*w"
-"2.2+y*z-w"
-"2.2+y*z/w"
-"2.2+y+4.4"
-"2.2+y+z*w"
-"2.2+y+z-w"
-"2.2+y+z/w"
-"2.2+y-4.4"
-"2.2+y-z*w"
-"2.2+y-z-w"
-"2.2+y-z/w"
-"2.2+y/4.4"
-"2.2+y/z*w"
-"2.2+y/z+w"
-"2.2+y/z-w"
-"2.2+y/z/w"
-"2.2-y*4.4"
-"2.2-y*z*w"
-"2.2-y*z-w"
-"2.2-y*z/w"
-"2.2-y+z*w"
-"2.2-y+z+w"
-"2.2-y+z/w"
-"2.2-y-z*w"
-"2.2-y-z+w"
-"2.2-y-z/w"
-"2.2-y/4.4"
-"2.2-y/z*w"
-"2.2-y/z-w"
-"2.2-y/z/w"
-"2.2/y*4.4"
-"2.2/y*z+w"
-"2.2/y*z-w"
-"2.2/y+4.4"
-"2.2/y+z*w"
-"2.2/y+z+w"
-"2.2/y+z-w"
-"2.2/y+z/w"
-"2.2/y-4.4"
-"2.2/y-z*w"
-"2.2/y-z+w"
-"2.2/y-z-w"
-"2.2/y-z/w"
-"2.2/y/4.4"
-"2.2/y/z+w"
-"2.2/y/z-w"
-"a+b*(a+b)"
-"a^2^3-a^8"
-"tan(1.29)"
-"x*3.3*4.4"
-"x*3.3*z+w"
-"x*3.3*z-w"
-"x*3.3+4.4"
-"x*3.3+z*w"
-"x*3.3+z+w"
-"x*3.3+z-w"
-"x*3.3+z/w"
-"x*3.3-4.4"
-"x*3.3-z*w"
-"x*3.3-z+w"
-"x*3.3-z-w"
-"x*3.3-z/w"
-"x*3.3/4.4"
-"x*3.3/z+w"
-"x*3.3/z-w"
-"x*y*4.4+w"
-"x*y*4.4-w"
-"x*y*z+5.5"
-"x*y*z-5.5"
-"x*y+4.4*w"
-"x*y+4.4+w"
-"x*y+4.4-w"
-"x*y+4.4/w"
-"x*y+z*5.5"
-"x*y+z+5.5"
-"x*y+z-5.5"
-"x*y+z/5.5"
-"x*y-4.4*w"
-"x*y-4.4+w"
-"x*y-4.4-w"
-"x*y-4.4/w"
-"x*y-z*5.5"
-"x*y-z+5.5"
-"x*y-z-5.5"
-"x*y-z/5.5"
-"x*y/4.4+w"
-"x*y/4.4-w"
-"x*y/z+5.5"
-"x*y/z-5.5"
-"x+3.3*4.4"
-"x+3.3*z*w"
-"x+3.3*z-w"
-"x+3.3*z/w"
-"x+3.3+4.4"
-"x+3.3+z*w"
-"x+3.3+z-w"
-"x+3.3+z/w"
-"x+3.3-4.4"
-"x+3.3-z*w"
-"x+3.3-z-w"
-"x+3.3-z/w"
-"x+3.3/4.4"
-"x+3.3/z*w"
-"x+3.3/z+w"
-"x+3.3/z-w"
-"x+3.3/z/w"
-"x+y*4.4*w"
-"x+y*4.4-w"
-"x+y*4.4/w"
-"x+y*z*5.5"
-"x+y*z-5.5"
-"x+y*z/5.5"
-"x+y+4.4*w"
-"x+y+4.4-w"
-"x+y+4.4/w"
-"x+y+z*5.5"
-"x+y+z-5.5"
-"x+y+z/5.5"
-"x+y-4.4*w"
-"x+y-4.4-w"
-"x+y-4.4/w"
-"x+y-z*5.5"
-"x+y-z-5.5"
-"x+y-z/5.5"
-"x+y/4.4*w"
-"x+y/4.4+w"
-"x+y/4.4-w"
-"x+y/4.4/w"
-"x+y/z*5.5"
-"x+y/z+5.5"
-"x+y/z-5.5"
-"x+y/z/5.5"
-"x-3.3*4.4"
-"x-3.3*z*w"
-"x-3.3*z-w"
-"x-3.3*z/w"
-"x-3.3+z*w"
-"x-3.3+z+w"
-"x-3.3+z/w"
-"x-3.3-z*w"
-"x-3.3-z+w"
-"x-3.3-z/w"
-"x-3.3/4.4"
-"x-3.3/z*w"
-"x-3.3/z-w"
-"x-3.3/z/w"
-"x-y*4.4*w"
-"x-y*4.4-w"
-"x-y*4.4/w"
-"x-y*z*5.5"
-"x-y*z-5.5"
-"x-y*z/5.5"
-"x-y+4.4*w"
-"x-y+4.4+w"
-"x-y+4.4/w"
-"x-y+z*5.5"
-"x-y+z+5.5"
-"x-y+z/5.5"
-"x-y-4.4*w"
-"x-y-4.4+w"
-"x-y-4.4/w"
-"x-y-z*5.5"
-"x-y-z+5.5"
-"x-y-z/5.5"
-"x-y/4.4*w"
-"x-y/4.4-w"
-"x-y/4.4/w"
-"x-y/z*5.5"
-"x-y/z-5.5"
-"x-y/z/5.5"
-"x/3.3*4.4"
-"x/3.3*z+w"
-"x/3.3*z-w"
-"x/3.3+4.4"
-"x/3.3+z*w"
-"x/3.3+z+w"
-"x/3.3+z-w"
-"x/3.3+z/w"
-"x/3.3-4.4"
-"x/3.3-z*w"
-"x/3.3-z+w"
-"x/3.3-z-w"
-"x/3.3-z/w"
-"x/3.3/4.4"
-"x/3.3/z+w"
-"x/3.3/z-w"
-"x/y*4.4+w"
-"x/y*4.4-w"
-"x/y*z+5.5"
-"x/y*z-5.5"
-"x/y+4.4*w"
-"x/y+4.4+w"
-"x/y+4.4-w"
-"x/y+4.4/w"
-"x/y+z*5.5"
-"x/y+z+5.5"
-"x/y+z-5.5"
-"x/y+z/5.5"
-"x/y-4.4*w"
-"x/y-4.4+w"
-"x/y-4.4-w"
-"x/y-4.4/w"
-"x/y-z*5.5"
-"x/y-z+5.5"
-"x/y-z-5.5"
-"x/y-z/5.5"
-"x/y/4.4+w"
-"x/y/4.4-w"
-"x/y/z+5.5"
-"x/y/z-5.5"
-"((b/b)/pi)"
-"((x))((x))"
-"(1+b)*(-3)"
-"(b+(pi*a))"
-"-a^2^3-a^8"
-"1.1*a^2.01"
-"[[x]][[x]]"
-"e^log(7*a)"
-"{{x}}{{x}}"
-"(((x*y)*z))"
-"(((x*y)+z))"
-"(((x*y)-z))"
-"(((x*y)/z))"
-"(((x+y)*z))"
-"(((x+y)+z))"
-"(((x+y)-z))"
-"(((x+y)/z))"
-"(((x-y)*z))"
-"(((x-y)/z))"
-"(((x/y)*z))"
-"(((x/y)+z))"
-"(((x/y)-z))"
-"(((x/y)/z))"
-"((a-pi)*pi)"
-"((x*(y*z)))"
-"((x*(y+z)))"
-"((x*(y-z)))"
-"((x*(y/z)))"
-"((x*y*z+w))"
-"((x*y*z-w))"
-"((x*y+z*w))"
-"((x*y+z+w))"
-"((x*y+z-w))"
-"((x*y+z/w))"
-"((x*y-z*w))"
-"((x*y-z+w))"
-"((x*y-z-w))"
-"((x*y-z/w))"
-"((x*y/z+w))"
-"((x*y/z-w))"
-"((x+(y*z)))"
-"((x+(y+z)))"
-"((x+(y-z)))"
-"((x+(y/z)))"
-"((x+y*z*w))"
-"((x+y*z-w))"
-"((x+y*z/w))"
-"((x+y+z*w))"
-"((x+y+z-w))"
-"((x+y+z/w))"
-"((x+y-z*w))"
-"((x+y-z-w))"
-"((x+y-z/w))"
-"((x+y/z*w))"
-"((x+y/z+w))"
-"((x+y/z-w))"
-"((x+y/z/w))"
-"((x-(y*z)))"
-"((x-(y+z)))"
-"((x-(y-z)))"
-"((x-(y/z)))"
-"((x-y*z*w))"
-"((x-y*z+w))"
-"((x-y*z-w))"
-"((x-y*z/w))"
-"((x-y+z*w))"
-"((x-y+z+w))"
-"((x-y+z/w))"
-"((x-y-z*w))"
-"((x-y-z+w))"
-"((x-y-z/w))"
-"((x-y/z*w))"
-"((x-y/z+w))"
-"((x-y/z-w))"
-"((x-y/z/w))"
-"((x/(y*z)))"
-"((x/(y+z)))"
-"((x/(y-z)))"
-"((x/(y/z)))"
-"((x/y*z+w))"
-"((x/y*z-w))"
-"((x/y+z*w))"
-"((x/y+z+w))"
-"((x/y+z-w))"
-"((x/y+z/w))"
-"((x/y-z*w))"
-"((x/y-z+w))"
-"((x/y-z-w))"
-"((x/y-z/w))"
-"((x/y/z+w))"
-"((x/y/z-w))"
-"1-(a/b*0.5)"
-"10^log(3+b)"
-"2.2*a^1+1.1"
-"2.2*y*4.4+w"
-"2.2*y*4.4-w"
-"2.2*y*z+5.5"
-"2.2*y*z-5.5"
-"2.2*y+4.4*w"
-"2.2*y+4.4+w"
-"2.2*y+4.4-w"
-"2.2*y+4.4/w"
-"2.2*y+z*5.5"
-"2.2*y+z+5.5"
-"2.2*y+z-5.5"
-"2.2*y+z/5.5"
-"2.2*y-4.4*w"
-"2.2*y-4.4+w"
-"2.2*y-4.4-w"
-"2.2*y-4.4/w"
-"2.2*y-z*5.5"
-"2.2*y-z+5.5"
-"2.2*y-z-5.5"
-"2.2*y-z/5.5"
-"2.2*y/4.4+w"
-"2.2*y/4.4-w"
-"2.2*y/z+5.5"
-"2.2*y/z-5.5"
-"2.2+y*4.4*w"
-"2.2+y*4.4-w"
-"2.2+y*4.4/w"
-"2.2+y*z*5.5"
-"2.2+y*z-5.5"
-"2.2+y*z/5.5"
-"2.2+y+4.4*w"
-"2.2+y+4.4-w"
-"2.2+y+4.4/w"
-"2.2+y+z*5.5"
-"2.2+y+z-5.5"
-"2.2+y+z/5.5"
-"2.2+y-4.4*w"
-"2.2+y-4.4-w"
-"2.2+y-4.4/w"
-"2.2+y-z*5.5"
-"2.2+y-z-5.5"
-"2.2+y-z/5.5"
-"2.2+y/4.4*w"
-"2.2+y/4.4+w"
-"2.2+y/4.4-w"
-"2.2+y/4.4/w"
-"2.2+y/z*5.5"
-"2.2+y/z+5.5"
-"2.2+y/z-5.5"
-"2.2+y/z/5.5"
-"2.2-y*4.4*w"
-"2.2-y*4.4-w"
-"2.2-y*4.4/w"
-"2.2-y*z*5.5"
-"2.2-y*z-5.5"
-"2.2-y*z/5.5"
-"2.2-y+4.4*w"
-"2.2-y+4.4+w"
-"2.2-y+4.4/w"
-"2.2-y+z*5.5"
-"2.2-y+z+5.5"
-"2.2-y+z/5.5"
-"2.2-y-4.4*w"
-"2.2-y-4.4+w"
-"2.2-y-4.4/w"
-"2.2-y-z*5.5"
-"2.2-y-z+5.5"
-"2.2-y-z/5.5"
-"2.2-y/4.4*w"
-"2.2-y/4.4-w"
-"2.2-y/4.4/w"
-"2.2-y/z*5.5"
-"2.2-y/z-5.5"
-"2.2-y/z/5.5"
-"2.2/y*4.4+w"
-"2.2/y*4.4-w"
-"2.2/y*z+5.5"
-"2.2/y*z-5.5"
-"2.2/y+4.4*w"
-"2.2/y+4.4+w"
-"2.2/y+4.4-w"
-"2.2/y+4.4/w"
-"2.2/y+z*5.5"
-"2.2/y+z+5.5"
-"2.2/y+z-5.5"
-"2.2/y+z/5.5"
-"2.2/y-4.4*w"
-"2.2/y-4.4+w"
-"2.2/y-4.4-w"
-"2.2/y-4.4/w"
-"2.2/y-z*5.5"
-"2.2/y-z+5.5"
-"2.2/y-z-5.5"
-"2.2/y-z/5.5"
-"2.2/y/4.4+w"
-"2.2/y/4.4-w"
-"2.2/y/z+5.5"
-"2.2/y/z-5.5"
-"sin(tan(b))"
-"x*3.3*4.4+w"
-"x*3.3*4.4-w"
-"x*3.3*z+5.5"
-"x*3.3*z-5.5"
-"x*3.3+4.4*w"
-"x*3.3+4.4+w"
-"x*3.3+4.4-w"
-"x*3.3+4.4/w"
-"x*3.3+z*5.5"
-"x*3.3+z+5.5"
-"x*3.3+z-5.5"
-"x*3.3+z/5.5"
-"x*3.3-4.4*w"
-"x*3.3-4.4+w"
-"x*3.3-4.4-w"
-"x*3.3-4.4/w"
-"x*3.3-z*5.5"
-"x*3.3-z+5.5"
-"x*3.3-z-5.5"
-"x*3.3-z/5.5"
-"x*3.3/4.4+w"
-"x*3.3/4.4-w"
-"x*3.3/z+5.5"
-"x*3.3/z-5.5"
-"x*y*z-x*y/z"
-"x*y+z+x*y-z"
-"x*y/z-x*y*z"
-"x+3.3*4.4*w"
-"x+3.3*4.4-w"
-"x+3.3*4.4/w"
-"x+3.3*z*5.5"
-"x+3.3*z-5.5"
-"x+3.3*z/5.5"
-"x+3.3+4.4*w"
-"x+3.3+4.4-w"
-"x+3.3+4.4/w"
-"x+3.3+z*5.5"
-"x+3.3+z-5.5"
-"x+3.3+z/5.5"
-"x+3.3-4.4*w"
-"x+3.3-4.4-w"
-"x+3.3-4.4/w"
-"x+3.3-z*5.5"
-"x+3.3-z-5.5"
-"x+3.3-z/5.5"
-"x+3.3/4.4*w"
-"x+3.3/4.4-w"
-"x+3.3/4.4/w"
-"x+3.3/z*5.5"
-"x+3.3/z+5.5"
-"x+3.3/z-5.5"
-"x+3.3/z/5.5"
-"x+y-z-x+y+z"
-"x+y/z+x+y*z"
-"x+y/z-x+y+z"
-"x-3.3*4.4*w"
-"x-3.3*4.4-w"
-"x-3.3*4.4/w"
-"x-3.3*z*5.5"
-"x-3.3*z-5.5"
-"x-3.3*z/5.5"
-"x-3.3+4.4*w"
-"x-3.3+4.4+w"
-"x-3.3+4.4/w"
-"x-3.3+z*5.5"
-"x-3.3+z+5.5"
-"x-3.3+z/5.5"
-"x-3.3-4.4*w"
-"x-3.3-4.4+w"
-"x-3.3-4.4/w"
-"x-3.3-z*5.5"
-"x-3.3-z+5.5"
-"x-3.3-z/5.5"
-"x-3.3/4.4*w"
-"x-3.3/4.4-w"
-"x-3.3/4.4/w"
-"x-3.3/z*5.5"
-"x-3.3/z-5.5"
-"x-3.3/z/5.5"
-"x-y*z+x+y*z"
-"x-y/z*x-y*z"
-"x-y/z*x-y/z"
-"x/3.3*4.4+w"
-"x/3.3*4.4-w"
-"x/3.3*z+5.5"
-"x/3.3*z-5.5"
-"x/3.3+4.4*w"
-"x/3.3+4.4+w"
-"x/3.3+4.4-w"
-"x/3.3+4.4/w"
-"x/3.3+z*5.5"
-"x/3.3+z+5.5"
-"x/3.3+z-5.5"
-"x/3.3+z/5.5"
-"x/3.3-4.4*w"
-"x/3.3-4.4+w"
-"x/3.3-4.4-w"
-"x/3.3-4.4/w"
-"x/3.3-z*5.5"
-"x/3.3-z+5.5"
-"x/3.3-z-5.5"
-"x/3.3-z/5.5"
-"x/3.3/4.4+w"
-"x/3.3/4.4-w"
-"x/3.3/z+5.5"
-"x/3.3/z-5.5"
-"x/y*z*x/y/z"
-"x/y+z*x/y-z"
-"x/y+z-x/y-z"
-"x/y/z+x/y*z"
-"(((((())))))"
-"((1.11+a)*a)"
-"((3.08+e)-b)"
-"((a+b)+3.55)"
-"((b*b)*2.41)"
-"(b/(b*0.06))"
-"a+b-e*pi/5^6"
-"a^-2^3-1/a^8"
-"a^b/e*pi-5+6"
-"(((a-a)+e)/a)"
-"(((b+e)+a)-a)"
-"((0.73+pi)*e)"
-"((3.123*y*z))"
-"((3.123*y+z))"
-"((3.123*y-z))"
-"((3.123*y/z))"
-"((3.123+y*z))"
-"((3.123+y+z))"
-"((3.123+y-z))"
-"((3.123+y/z))"
-"((3.123-y*z))"
-"((3.123-y+z))"
-"((3.123-y-z))"
-"((3.123-y/z))"
-"((3.123/y*z))"
-"((3.123/y+z))"
-"((3.123/y-z))"
-"((3.123/y/z))"
-"((a/pi)-2.55)"
-"((b*(b+b))*b)"
-"((pi/2.23)-a)"
-"((x*5.123*z))"
-"((x*5.123+z))"
-"((x*5.123-z))"
-"((x*5.123/z))"
-"((x*y*7.123))"
-"((x*y+7.123))"
-"((x*y-7.123))"
-"((x*y/7.123))"
-"((x+5.123*z))"
-"((x+5.123+z))"
-"((x+5.123-z))"
-"((x+5.123/z))"
-"((x+y*7.123))"
-"((x+y+7.123))"
-"((x+y-7.123))"
-"((x+y/7.123))"
-"((x-5.123*z))"
-"((x-5.123+z))"
-"((x-5.123-z))"
-"((x-5.123/z))"
-"((x-y*7.123))"
-"((x-y+7.123))"
-"((x-y-7.123))"
-"((x-y/7.123))"
-"((x/5.123*z))"
-"((x/5.123+z))"
-"((x/5.123-z))"
-"((x/5.123/z))"
-"((x/y*7.123))"
-"((x/y+7.123))"
-"((x/y-7.123))"
-"((x/y/7.123))"
-"(a*(b-(b/b)))"
-"(cos(2.41)/b)"
-"+a^+2^+3-a^+8"
-"123456.123456"
-"2.2*y*4.4-5.5"
-"2.2*y/4.4-5.5"
-"2.2+y*4.4*5.5"
-"2.2+y*4.4-5.5"
-"2.2+y*4.4/5.5"
-"2.2+y+4.4*5.5"
-"2.2+y+4.4/5.5"
-"2.2+y-4.4*5.5"
-"2.2+y-4.4/5.5"
-"2.2+y/4.4*5.5"
-"2.2+y/4.4+5.5"
-"2.2+y/4.4-5.5"
-"2.2+y/4.4/5.5"
-"2.2-y*4.4*5.5"
-"2.2-y*4.4-5.5"
-"2.2-y*4.4/5.5"
-"2.2-y+4.4*5.5"
-"2.2-y+4.4/5.5"
-"2.2-y-4.4*5.5"
-"2.2-y-4.4/5.5"
-"2.2-y/4.4*5.5"
-"2.2-y/4.4-5.5"
-"2.2-y/4.4/5.5"
-"2.2/y*4.4-5.5"
-"2.2/y/4.4-5.5"
-"sin(a)+sin(b)"
-"sqrt(a^2+b^2)"
-"tan((3.59-e))"
-"x*3.3*4.4-5.5"
-"x*3.3/4.4-5.5"
-"x+3.3*4.4-5.5"
-"x+3.3/4.4-5.5"
-"x-3.3*4.4-5.5"
-"x-3.3/4.4-5.5"
-"x/3.3*4.4-5.5"
-"x/3.3/4.4-5.5"
-"(((x)))(((x)))"
-"(1.1+b)*(-3.3)"
-"-(sin(pi+a)+1)"
-"[[[x]]][[[x]]]"
-"sqrt(a)<sin(8)"
-"tan(((e+e)/a))"
-"{{{x}}}{{{x}}}"
-"((((x*y)*z)-w))"
-"((((x*y)/z)-w))"
-"((((x+y)*z)-w))"
-"((((x+y)/z)-w))"
-"((((x-y)*z)-w))"
-"((((x-y)/z)-w))"
-"((((x/y)*z)-w))"
-"((((x/y)/z)-w))"
-"(((3.123*y)*z))"
-"(((3.123*y)+z))"
-"(((3.123*y)-z))"
-"(((3.123*y)/z))"
-"(((3.123+y)*z))"
-"(((3.123+y)+z))"
-"(((3.123+y)-z))"
-"(((3.123+y)/z))"
-"(((3.123-y)*z))"
-"(((3.123-y)/z))"
-"(((3.123/y)*z))"
-"(((3.123/y)+z))"
-"(((3.123/y)-z))"
-"(((3.123/y)/z))"
-"(((x*5.123)*z))"
-"(((x*5.123)+z))"
-"(((x*5.123)-z))"
-"(((x*5.123)/z))"
-"(((x*y)*(z+w)))"
-"(((x*y)*(z-w)))"
-"(((x*y)*7.123))"
-"(((x*y)+(z*w)))"
-"(((x*y)+(z+w)))"
-"(((x*y)+(z-w)))"
-"(((x*y)+(z/w)))"
-"(((x*y)+7.123))"
-"(((x*y)-(z*w)))"
-"(((x*y)-(z+w)))"
-"(((x*y)-(z-w)))"
-"(((x*y)-(z/w)))"
-"(((x*y)-7.123))"
-"(((x*y)/(z+w)))"
-"(((x*y)/(z-w)))"
-"(((x*y)/7.123))"
-"(((x+5.123)*z))"
-"(((x+5.123)+z))"
-"(((x+5.123)-z))"
-"(((x+5.123)/z))"
-"(((x+y)*(z*w)))"
-"(((x+y)*(z-w)))"
-"(((x+y)*(z/w)))"
-"(((x+y)*7.123))"
-"(((x+y)+(z*w)))"
-"(((x+y)+(z-w)))"
-"(((x+y)+(z/w)))"
-"(((x+y)+7.123))"
-"(((x+y)-(z*w)))"
-"(((x+y)-(z-w)))"
-"(((x+y)-(z/w)))"
-"(((x+y)-7.123))"
-"(((x+y)/(z*w)))"
-"(((x+y)/(z-w)))"
-"(((x+y)/(z/w)))"
-"(((x+y)/7.123))"
-"(((x-5.123)*z))"
-"(((x-5.123)/z))"
-"(((x-y)*(z*w)))"
-"(((x-y)*(z+w)))"
-"(((x-y)*(z/w)))"
-"(((x-y)*7.123))"
-"(((x-y)+(z*w)))"
-"(((x-y)+(z+w)))"
-"(((x-y)+(z/w)))"
-"(((x-y)-(z*w)))"
-"(((x-y)-(z+w)))"
-"(((x-y)-(z/w)))"
-"(((x-y)/(z*w)))"
-"(((x-y)/(z+w)))"
-"(((x-y)/(z/w)))"
-"(((x-y)/7.123))"
-"(((x/5.123)*z))"
-"(((x/5.123)+z))"
-"(((x/5.123)-z))"
-"(((x/5.123)/z))"
-"(((x/y)*(z+w)))"
-"(((x/y)*(z-w)))"
-"(((x/y)*7.123))"
-"(((x/y)+(z+w)))"
-"(((x/y)+(z-w)))"
-"(((x/y)+(z/w)))"
-"(((x/y)+7.123))"
-"(((x/y)-(z*w)))"
-"(((x/y)-(z+w)))"
-"(((x/y)-(z-w)))"
-"(((x/y)-(z/w)))"
-"(((x/y)-7.123))"
-"(((x/y)/(z+w)))"
-"(((x/y)/(z-w)))"
-"(((x/y)/7.123))"
-"((3.123*(y*z)))"
-"((3.123*(y+z)))"
-"((3.123*(y-z)))"
-"((3.123*(y/z)))"
-"((3.123*y*z+w))"
-"((3.123*y*z-w))"
-"((3.123*y+z*w))"
-"((3.123*y+z+w))"
-"((3.123*y+z-w))"
-"((3.123*y+z/w))"
-"((3.123*y-z*w))"
-"((3.123*y-z+w))"
-"((3.123*y-z-w))"
-"((3.123*y-z/w))"
-"((3.123*y/z+w))"
-"((3.123*y/z-w))"
-"((3.123+(y*z)))"
-"((3.123+(y+z)))"
-"((3.123+(y-z)))"
-"((3.123+(y/z)))"
-"((3.123+y*z*w))"
-"((3.123+y*z-w))"
-"((3.123+y*z/w))"
-"((3.123+y+z*w))"
-"((3.123+y+z-w))"
-"((3.123+y+z/w))"
-"((3.123+y-z*w))"
-"((3.123+y-z-w))"
-"((3.123+y-z/w))"
-"((3.123+y/z*w))"
-"((3.123+y/z+w))"
-"((3.123+y/z-w))"
-"((3.123+y/z/w))"
-"((3.123-(y*z)))"
-"((3.123-(y+z)))"
-"((3.123-(y-z)))"
-"((3.123-(y/z)))"
-"((3.123-y*z*w))"
-"((3.123-y*z+w))"
-"((3.123-y*z-w))"
-"((3.123-y*z/w))"
-"((3.123-y+z*w))"
-"((3.123-y+z+w))"
-"((3.123-y+z/w))"
-"((3.123-y-z*w))"
-"((3.123-y-z+w))"
-"((3.123-y-z/w))"
-"((3.123-y/z*w))"
-"((3.123-y/z+w))"
-"((3.123-y/z-w))"
-"((3.123-y/z/w))"
-"((3.123/(y*z)))"
-"((3.123/(y+z)))"
-"((3.123/(y-z)))"
-"((3.123/(y/z)))"
-"((3.123/y*z+w))"
-"((3.123/y*z-w))"
-"((3.123/y+z*w))"
-"((3.123/y+z+w))"
-"((3.123/y+z-w))"
-"((3.123/y+z/w))"
-"((3.123/y-z*w))"
-"((3.123/y-z+w))"
-"((3.123/y-z-w))"
-"((3.123/y-z/w))"
-"((3.123/y/z+w))"
-"((3.123/y/z-w))"
-"((3.27-b)-0.73)"
-"((a+sin(a))-pi)"
-"((x*(5.123*z)))"
-"((x*(5.123+z)))"
-"((x*(5.123-z)))"
-"((x*(5.123/z)))"
-"((x*(y*7.123)))"
-"((x*(y+(z*w))))"
-"((x*(y+7.123)))"
-"((x*(y-(z*w))))"
-"((x*(y-7.123)))"
-"((x*(y/7.123)))"
-"((x*5.123*z+w))"
-"((x*5.123*z-w))"
-"((x*5.123+z*w))"
-"((x*5.123+z+w))"
-"((x*5.123+z-w))"
-"((x*5.123+z/w))"
-"((x*5.123-z*w))"
-"((x*5.123-z+w))"
-"((x*5.123-z-w))"
-"((x*5.123-z/w))"
-"((x*5.123/z+w))"
-"((x*5.123/z-w))"
-"((x*y*7.123+w))"
-"((x*y*7.123-w))"
-"((x*y*z+9.123))"
-"((x*y*z+x+y/z))"
-"((x*y*z-9.123))"
-"((x*y*z-x/y*z))"
-"((x*y+7.123*w))"
-"((x*y+7.123+w))"
-"((x*y+7.123-w))"
-"((x*y+7.123/w))"
-"((x*y+z*9.123))"
-"((x*y+z*x-y*z))"
-"((x*y+z*x/y*z))"
-"((x*y+z+9.123))"
-"((x*y+z-9.123))"
-"((x*y+z/9.123))"
-"((x*y-7.123*w))"
-"((x*y-7.123+w))"
-"((x*y-7.123-w))"
-"((x*y-7.123/w))"
-"((x*y-z*9.123))"
-"((x*y-z+9.123))"
-"((x*y-z-9.123))"
-"((x*y-z/9.123))"
-"((x*y-z/x+y*z))"
-"((x*y-z/x/y+z))"
-"((x*y/7.123+w))"
-"((x*y/7.123-w))"
-"((x*y/z+9.123))"
-"((x*y/z+x/y-z))"
-"((x*y/z-9.123))"
-"((x*y/z-x+y+z))"
-"((x+((y*z)*w)))"
-"((x+((y*z)/w)))"
-"((x+((y+z)*w)))"
-"((x+((y+z)/w)))"
-"((x+((y-z)*w)))"
-"((x+((y-z)/w)))"
-"((x+((y/z)*w)))"
-"((x+((y/z)+w)))"
-"((x+((y/z)/w)))"
-"((x+(5.123*z)))"
-"((x+(5.123+z)))"
-"((x+(5.123-z)))"
-"((x+(5.123/z)))"
-"((x+(y*(z/w))))"
-"((x+(y*7.123)))"
-"((x+(y+7.123)))"
-"((x+(y-7.123)))"
-"((x+(y/(z*w))))"
-"((x+(y/7.123)))"
-"((x+5.123*z*w))"
-"((x+5.123*z-w))"
-"((x+5.123*z/w))"
-"((x+5.123+z*w))"
-"((x+5.123+z-w))"
-"((x+5.123+z/w))"
-"((x+5.123-z*w))"
-"((x+5.123-z-w))"
-"((x+5.123-z/w))"
-"((x+5.123/z*w))"
-"((x+5.123/z+w))"
-"((x+5.123/z-w))"
-"((x+5.123/z/w))"
-"((x+y*7.123*w))"
-"((x+y*7.123-w))"
-"((x+y*7.123/w))"
-"((x+y*z*9.123))"
-"((x+y*z*x+y+z))"
-"((x+y*z-9.123))"
-"((x+y*z-x*y/z))"
-"((x+y*z/9.123))"
-"((x+y+7.123*w))"
-"((x+y+7.123-w))"
-"((x+y+7.123/w))"
-"((x+y+z*9.123))"
-"((x+y+z+x-y*z))"
-"((x+y+z-9.123))"
-"((x+y+z/9.123))"
-"((x+y+z/x/y+z))"
-"((x+y-7.123*w))"
-"((x+y-7.123-w))"
-"((x+y-7.123/w))"
-"((x+y-z*9.123))"
-"((x+y-z*x*y*z))"
-"((x+y-z-9.123))"
-"((x+y-z-x*y+z))"
-"((x+y-z/9.123))"
-"((x+y/7.123*w))"
-"((x+y/7.123+w))"
-"((x+y/7.123-w))"
-"((x+y/7.123/w))"
-"((x+y/z*9.123))"
-"((x+y/z+9.123))"
-"((x+y/z+x*y-z))"
-"((x+y/z-9.123))"
-"((x+y/z/9.123))"
-"((x+y/z/x-y/z))"
-"((x-((y*z)*w)))"
-"((x-((y*z)/w)))"
-"((x-((y+z)*w)))"
-"((x-((y+z)/w)))"
-"((x-((y-z)*w)))"
-"((x-((y-z)/w)))"
-"((x-((y/z)*w)))"
-"((x-((y/z)/w)))"
-"((x-(5.123*z)))"
-"((x-(5.123+z)))"
-"((x-(5.123-z)))"
-"((x-(5.123/z)))"
-"((x-(y*(z/w))))"
-"((x-(y*7.123)))"
-"((x-(y+7.123)))"
-"((x-(y-7.123)))"
-"((x-(y/(z*w))))"
-"((x-(y/7.123)))"
-"((x-5.123*z*w))"
-"((x-5.123*z+w))"
-"((x-5.123*z-w))"
-"((x-5.123*z/w))"
-"((x-5.123+z*w))"
-"((x-5.123+z+w))"
-"((x-5.123+z/w))"
-"((x-5.123-z*w))"
-"((x-5.123-z+w))"
-"((x-5.123-z/w))"
-"((x-5.123/z*w))"
-"((x-5.123/z+w))"
-"((x-5.123/z-w))"
-"((x-5.123/z/w))"
-"((x-y*7.123*w))"
-"((x-y*7.123+w))"
-"((x-y*7.123-w))"
-"((x-y*7.123/w))"
-"((x-y*z*9.123))"
-"((x-y*z+9.123))"
-"((x-y*z-9.123))"
-"((x-y*z-x+y-z))"
-"((x-y*z-x/y/z))"
-"((x-y*z/9.123))"
-"((x-y+7.123*w))"
-"((x-y+7.123+w))"
-"((x-y+7.123/w))"
-"((x-y+z*9.123))"
-"((x-y+z*x+y-z))"
-"((x-y+z+9.123))"
-"((x-y+z/9.123))"
-"((x-y-7.123*w))"
-"((x-y-7.123+w))"
-"((x-y-7.123/w))"
-"((x-y-z*9.123))"
-"((x-y-z+9.123))"
-"((x-y-z/9.123))"
-"((x-y-z/x+y/z))"
-"((x-y/7.123*w))"
-"((x-y/7.123+w))"
-"((x-y/7.123-w))"
-"((x-y/7.123/w))"
-"((x-y/z*9.123))"
-"((x-y/z+9.123))"
-"((x-y/z+x+y*z))"
-"((x-y/z+x/y-z))"
-"((x-y/z-9.123))"
-"((x-y/z/9.123))"
-"((x/(5.123*z)))"
-"((x/(5.123+z)))"
-"((x/(5.123-z)))"
-"((x/(5.123/z)))"
-"((x/(y*7.123)))"
-"((x/(y+(z*w))))"
-"((x/(y+7.123)))"
-"((x/(y-(z*w))))"
-"((x/(y-7.123)))"
-"((x/(y/7.123)))"
-"((x/5.123*z+w))"
-"((x/5.123*z-w))"
-"((x/5.123+z*w))"
-"((x/5.123+z+w))"
-"((x/5.123+z-w))"
-"((x/5.123+z/w))"
-"((x/5.123-z*w))"
-"((x/5.123-z+w))"
-"((x/5.123-z-w))"
-"((x/5.123-z/w))"
-"((x/5.123/z+w))"
-"((x/5.123/z-w))"
-"((x/y*7.123+w))"
-"((x/y*7.123-w))"
-"((x/y*z+9.123))"
-"((x/y*z+x-y-z))"
-"((x/y*z-9.123))"
-"((x/y*z-x*y*z))"
-"((x/y+7.123*w))"
-"((x/y+7.123+w))"
-"((x/y+7.123-w))"
-"((x/y+7.123/w))"
-"((x/y+z*9.123))"
-"((x/y+z*x*y/z))"
-"((x/y+z*x/y/z))"
-"((x/y+z+9.123))"
-"((x/y+z-9.123))"
-"((x/y+z/9.123))"
-"((x/y-7.123*w))"
-"((x/y-7.123+w))"
-"((x/y-7.123-w))"
-"((x/y-7.123/w))"
-"((x/y-z*9.123))"
-"((x/y-z+9.123))"
-"((x/y-z-9.123))"
-"((x/y-z/9.123))"
-"((x/y-z/x*y+z))"
-"((x/y-z/x-y+z))"
-"((x/y/7.123+w))"
-"((x/y/7.123-w))"
-"((x/y/z+9.123))"
-"((x/y/z+x*y-z))"
-"((x/y/z-9.123))"
-"((x/y/z-x-y/z))"
-"(0.1*a+1)*a+1.1"
-"(2.2*a+1.1)*3.3"
-"(b+a/b)*(a-b/a)"
-"(pi+sin((a/b)))"
-"1.1*a^2+2.2*b^3"
-"1.1*a^7+2.2*b^8"
-"2.2*y*z-2.2*y/z"
-"2.2*y+z+2.2*y-z"
-"2.2*y/z-2.2*y*z"
-"2.2+y-z-2.2+y+z"
-"2.2+y/z+2.2+y*z"
-"2.2+y/z-2.2+y+z"
-"2.2-y*z+2.2+y*z"
-"2.2-y/z*2.2-y*z"
-"2.2-y/z*2.2-y/z"
-"2.2/y*z*2.2/y/z"
-"2.2/y+z*2.2/y-z"
-"2.2/y+z-2.2/y-z"
-"2.2/y/z+2.2/y*z"
-"a^-2^-3-1/a^1/8"
-"tan(((a-b)+pi))"
-"x*3.3*z-x*3.3/z"
-"x*3.3+z+x*3.3-z"
-"x*3.3/z-x*3.3*z"
-"x*y*4.4-x*y/4.4"
-"x*y*z+w-x/y*z+w"
-"x*y*z-w-x/y*z-w"
-"x*y+4.4+x*y-4.4"
-"x*y+z*w*x*y-z*w"
-"x*y+z+w+x/y+z+w"
-"x*y+z-w-x/y+z-w"
-"x*y-z*w-x*y+z/w"
-"x*y-z+w*x/y-z+w"
-"x*y-z-w*x/y-z-w"
-"x*y-z/w*x/y+z/w"
-"x*y/4.4-x*y*4.4"
-"x*y/z+w*x/y/z+w"
-"x*y/z-w+x/y/z-w"
-"x+3.3-z-x+3.3+z"
-"x+3.3/z+x+3.3*z"
-"x+3.3/z-x+3.3+z"
-"x+y*z*w+x+y*z/w"
-"x+y*z/w*x+y*z*w"
-"x+y+z*w-x+y+z/w"
-"x+y+z-w*x+y+z-w"
-"x+y+z/w+x+y+z*w"
-"x+y-4.4-x+y+4.4"
-"x+y-z*w+x+y-z/w"
-"x+y-z-w-x+y-z-w"
-"x+y-z/w-x+y-z*w"
-"x+y/4.4+x+y*4.4"
-"x+y/4.4-x+y+4.4"
-"x+y/z*w-x+y/z/w"
-"x+y/z*w-x-y+z/w"
-"x+y/z+w+x+y/z/w"
-"x-3.3*z+x+3.3*z"
-"x-3.3/z*x-3.3*z"
-"x-3.3/z*x-3.3/z"
-"x-y*4.4+x+y*4.4"
-"x-y*z*w+x-y*z/w"
-"x-y*z*w-x-y/z/w"
-"x-y*z-w+x*y*z-w"
-"x-y+z*w*x-y+z/w"
-"x-y+z*w*x-y-z/w"
-"x-y+z+w-x-y+z+w"
-"x-y-z*w+x-y*z/w"
-"x-y-z*w+x-y-z/w"
-"x-y-z+w+x-y-z+w"
-"x-y/4.4*x-y*4.4"
-"x-y/4.4*x-y/4.4"
-"x-y/z*w*x+y*z-w"
-"x-y/z*w*x-y/z/w"
-"x-y/z-w*x*y/z-w"
-"x/3.3*z*x/3.3/z"
-"x/3.3+z*x/3.3-z"
-"x/3.3+z-x/3.3-z"
-"x/3.3/z+x/3.3*z"
-"x/y*4.4*x/y/4.4"
-"x/y*z-w-x+y/z-w"
-"x/y+4.4*x/y-4.4"
-"x/y+4.4-x/y-4.4"
-"x/y+z*w-x/y-z*w"
-"x/y-z/w+x/y-z*w"
-"x/y/4.4+x/y*4.4"
-"x/y/z-w+x*y+z*w"
-"(((1.06+a)*e)+e)"
-"(((3.55-b)+a)+b)"
-"((a+(a+2.13))*e)"
-"((sin(b)+pi)*pi)"
-"a-(e^(log(7+b)))"
-"(((2.85+a)*pi)/a)"
-"((3.123*5.123*z))"
-"((3.123*5.123+z))"
-"((3.123*5.123-z))"
-"((3.123*5.123/z))"
-"((3.123*y*7.123))"
-"((3.123*y+7.123))"
-"((3.123*y-7.123))"
-"((3.123*y/7.123))"
-"((3.123+5.123*z))"
-"((3.123+5.123+z))"
-"((3.123+5.123-z))"
-"((3.123+5.123/z))"
-"((3.123+y*7.123))"
-"((3.123+y+7.123))"
-"((3.123+y-7.123))"
-"((3.123+y/7.123))"
-"((3.123-5.123*z))"
-"((3.123-5.123+z))"
-"((3.123-5.123-z))"
-"((3.123-5.123/z))"
-"((3.123-y*7.123))"
-"((3.123-y+7.123))"
-"((3.123-y-7.123))"
-"((3.123-y/7.123))"
-"((3.123/5.123*z))"
-"((3.123/5.123+z))"
-"((3.123/5.123-z))"
-"((3.123/5.123/z))"
-"((3.123/y*7.123))"
-"((3.123/y+7.123))"
-"((3.123/y-7.123))"
-"((3.123/y/7.123))"
-"((x*5.123*7.123))"
-"((x*5.123+7.123))"
-"((x*5.123-7.123))"
-"((x*5.123/7.123))"
-"((x+5.123*7.123))"
-"((x+5.123+7.123))"
-"((x+5.123-7.123))"
-"((x+5.123/7.123))"
-"((x-5.123*7.123))"
-"((x-5.123/7.123))"
-"((x/5.123*7.123))"
-"((x/5.123+7.123))"
-"((x/5.123-7.123))"
-"((x/5.123/7.123))"
-"(1.99-sin((b-b)))"
-"1-((a*b)+(a/b))-3"
-"a/((a+b)*(a-b))/b"
-"tan(((b*2.56)*b))"
-"((((b*pi)+a)*b)-a)"
-"((pi-((a+b)*b))*a)"
-"(0.32+((pi+b)+pi))"
-"(cos(((e/a)+e))+a)"
-"(tan((b+(a-b)))*b)"
-"sin(2*a)+cos(pi/b)"
-"((((3.123*y)*z)-w))"
-"((((3.123*y)/z)-w))"
-"((((3.123+y)*z)-w))"
-"((((3.123+y)/z)-w))"
-"((((3.123-y)*z)-w))"
-"((((3.123-y)/z)-w))"
-"((((3.123/y)*z)-w))"
-"((((3.123/y)/z)-w))"
-"((((x*5.123)*z)-w))"
-"((((x*5.123)/z)-w))"
-"((((x*y)*7.123)-w))"
-"((((x*y)*z)-9.123))"
-"((((x*y)/7.123)-w))"
-"((((x*y)/z)-9.123))"
-"((((x+5.123)*z)-w))"
-"((((x+5.123)/z)-w))"
-"((((x+y)*7.123)-w))"
-"((((x+y)*z)-9.123))"
-"((((x+y)/7.123)-w))"
-"((((x+y)/z)-9.123))"
-"((((x-5.123)*z)-w))"
-"((((x-5.123)/z)-w))"
-"((((x-y)*7.123)-w))"
-"((((x-y)*z)-9.123))"
-"((((x-y)/7.123)-w))"
-"((((x-y)/z)-9.123))"
-"((((x/5.123)*z)-w))"
-"((((x/5.123)/z)-w))"
-"((((x/y)*7.123)-w))"
-"((((x/y)*z)-9.123))"
-"((((x/y)/7.123)-w))"
-"((((x/y)/z)-9.123))"
-"(((2.12-a)+2.76)+b)"
-"(((3.123*y)*(z+w)))"
-"(((3.123*y)*(z-w)))"
-"(((3.123*y)*7.123))"
-"(((3.123*y)+(z*w)))"
-"(((3.123*y)+(z+w)))"
-"(((3.123*y)+(z-w)))"
-"(((3.123*y)+(z/w)))"
-"(((3.123*y)+7.123))"
-"(((3.123*y)-(z*w)))"
-"(((3.123*y)-(z+w)))"
-"(((3.123*y)-(z-w)))"
-"(((3.123*y)-(z/w)))"
-"(((3.123*y)-7.123))"
-"(((3.123*y)/(z+w)))"
-"(((3.123*y)/(z-w)))"
-"(((3.123*y)/7.123))"
-"(((3.123+y)*(z*w)))"
-"(((3.123+y)*(z-w)))"
-"(((3.123+y)*(z/w)))"
-"(((3.123+y)*7.123))"
-"(((3.123+y)+(z*w)))"
-"(((3.123+y)+(z-w)))"
-"(((3.123+y)+(z/w)))"
-"(((3.123+y)+7.123))"
-"(((3.123+y)-(z*w)))"
-"(((3.123+y)-(z-w)))"
-"(((3.123+y)-(z/w)))"
-"(((3.123+y)-7.123))"
-"(((3.123+y)/(z*w)))"
-"(((3.123+y)/(z-w)))"
-"(((3.123+y)/(z/w)))"
-"(((3.123+y)/7.123))"
-"(((3.123-y)*(z*w)))"
-"(((3.123-y)*(z+w)))"
-"(((3.123-y)*(z/w)))"
-"(((3.123-y)*7.123))"
-"(((3.123-y)+(z*w)))"
-"(((3.123-y)+(z+w)))"
-"(((3.123-y)+(z/w)))"
-"(((3.123-y)-(z*w)))"
-"(((3.123-y)-(z+w)))"
-"(((3.123-y)-(z/w)))"
-"(((3.123-y)/(z*w)))"
-"(((3.123-y)/(z+w)))"
-"(((3.123-y)/(z/w)))"
-"(((3.123-y)/7.123))"
-"(((3.123/y)*(z+w)))"
-"(((3.123/y)*(z-w)))"
-"(((3.123/y)*7.123))"
-"(((3.123/y)+(z+w)))"
-"(((3.123/y)+(z-w)))"
-"(((3.123/y)+(z/w)))"
-"(((3.123/y)+7.123))"
-"(((3.123/y)-(z*w)))"
-"(((3.123/y)-(z+w)))"
-"(((3.123/y)-(z-w)))"
-"(((3.123/y)-(z/w)))"
-"(((3.123/y)-7.123))"
-"(((3.123/y)/(z+w)))"
-"(((3.123/y)/(z-w)))"
-"(((3.123/y)/7.123))"
-"(((3.88/a)-a)-2.08)"
-"(((x*5.123)*(z+w)))"
-"(((x*5.123)*(z-w)))"
-"(((x*5.123)*7.123))"
-"(((x*5.123)+(z*w)))"
-"(((x*5.123)+(z+w)))"
-"(((x*5.123)+(z-w)))"
-"(((x*5.123)+(z/w)))"
-"(((x*5.123)+7.123))"
-"(((x*5.123)-(z*w)))"
-"(((x*5.123)-(z+w)))"
-"(((x*5.123)-(z-w)))"
-"(((x*5.123)-(z/w)))"
-"(((x*5.123)-7.123))"
-"(((x*5.123)/(z+w)))"
-"(((x*5.123)/(z-w)))"
-"(((x*5.123)/7.123))"
-"(((x*y)*(7.123+w)))"
-"(((x*y)*(7.123-w)))"
-"(((x*y)*(z+9.123)))"
-"(((x*y)*(z-9.123)))"
-"(((x*y)+(7.123*w)))"
-"(((x*y)+(7.123+w)))"
-"(((x*y)+(7.123-w)))"
-"(((x*y)+(7.123/w)))"
-"(((x*y)+(z*9.123)))"
-"(((x*y)+(z+9.123)))"
-"(((x*y)+(z-9.123)))"
-"(((x*y)+(z/9.123)))"
-"(((x*y)-(7.123*w)))"
-"(((x*y)-(7.123+w)))"
-"(((x*y)-(7.123-w)))"
-"(((x*y)-(7.123/w)))"
-"(((x*y)-(z*9.123)))"
-"(((x*y)-(z+9.123)))"
-"(((x*y)-(z-9.123)))"
-"(((x*y)-(z/9.123)))"
-"(((x*y)/(7.123+w)))"
-"(((x*y)/(7.123-w)))"
-"(((x*y)/(z+9.123)))"
-"(((x*y)/(z-9.123)))"
-"(((x+5.123)*(z*w)))"
-"(((x+5.123)*(z-w)))"
-"(((x+5.123)*(z/w)))"
-"(((x+5.123)*7.123))"
-"(((x+5.123)+(z*w)))"
-"(((x+5.123)+(z-w)))"
-"(((x+5.123)+(z/w)))"
-"(((x+5.123)+7.123))"
-"(((x+5.123)-(z*w)))"
-"(((x+5.123)-(z-w)))"
-"(((x+5.123)-(z/w)))"
-"(((x+5.123)-7.123))"
-"(((x+5.123)/(z*w)))"
-"(((x+5.123)/(z-w)))"
-"(((x+5.123)/(z/w)))"
-"(((x+5.123)/7.123))"
-"(((x+y)*(7.123*w)))"
-"(((x+y)*(7.123-w)))"
-"(((x+y)*(7.123/w)))"
-"(((x+y)*(z*9.123)))"
-"(((x+y)*(z-9.123)))"
-"(((x+y)*(z/9.123)))"
-"(((x+y)+(7.123*w)))"
-"(((x+y)+(7.123-w)))"
-"(((x+y)+(7.123/w)))"
-"(((x+y)+(z*9.123)))"
-"(((x+y)+(z-9.123)))"
-"(((x+y)+(z/9.123)))"
-"(((x+y)-(7.123*w)))"
-"(((x+y)-(7.123-w)))"
-"(((x+y)-(7.123/w)))"
-"(((x+y)-(z*9.123)))"
-"(((x+y)-(z-9.123)))"
-"(((x+y)-(z/9.123)))"
-"(((x+y)/(7.123*w)))"
-"(((x+y)/(7.123-w)))"
-"(((x+y)/(7.123/w)))"
-"(((x+y)/(z*9.123)))"
-"(((x+y)/(z-9.123)))"
-"(((x+y)/(z/9.123)))"
-"(((x-5.123)*(z*w)))"
-"(((x-5.123)*(z+w)))"
-"(((x-5.123)*(z/w)))"
-"(((x-5.123)*7.123))"
-"(((x-5.123)+(z*w)))"
-"(((x-5.123)+(z+w)))"
-"(((x-5.123)+(z/w)))"
-"(((x-5.123)-(z*w)))"
-"(((x-5.123)-(z+w)))"
-"(((x-5.123)-(z/w)))"
-"(((x-5.123)/(z*w)))"
-"(((x-5.123)/(z+w)))"
-"(((x-5.123)/(z/w)))"
-"(((x-5.123)/7.123))"
-"(((x-y)*(7.123*w)))"
-"(((x-y)*(7.123+w)))"
-"(((x-y)*(7.123/w)))"
-"(((x-y)*(z*9.123)))"
-"(((x-y)*(z+9.123)))"
-"(((x-y)*(z/9.123)))"
-"(((x-y)+(7.123*w)))"
-"(((x-y)+(7.123+w)))"
-"(((x-y)+(7.123/w)))"
-"(((x-y)+(z*9.123)))"
-"(((x-y)+(z+9.123)))"
-"(((x-y)+(z/9.123)))"
-"(((x-y)-(7.123*w)))"
-"(((x-y)-(7.123+w)))"
-"(((x-y)-(7.123/w)))"
-"(((x-y)-(z*9.123)))"
-"(((x-y)-(z+9.123)))"
-"(((x-y)-(z/9.123)))"
-"(((x-y)/(7.123*w)))"
-"(((x-y)/(7.123+w)))"
-"(((x-y)/(7.123/w)))"
-"(((x-y)/(z*9.123)))"
-"(((x-y)/(z+9.123)))"
-"(((x-y)/(z/9.123)))"
-"(((x/5.123)*(z+w)))"
-"(((x/5.123)*(z-w)))"
-"(((x/5.123)*7.123))"
-"(((x/5.123)+(z+w)))"
-"(((x/5.123)+(z-w)))"
-"(((x/5.123)+(z/w)))"
-"(((x/5.123)+7.123))"
-"(((x/5.123)-(z*w)))"
-"(((x/5.123)-(z+w)))"
-"(((x/5.123)-(z-w)))"
-"(((x/5.123)-(z/w)))"
-"(((x/5.123)-7.123))"
-"(((x/5.123)/(z+w)))"
-"(((x/5.123)/(z-w)))"
-"(((x/5.123)/7.123))"
-"(((x/y)*(7.123+w)))"
-"(((x/y)*(7.123-w)))"
-"(((x/y)*(z+9.123)))"
-"(((x/y)*(z-9.123)))"
-"(((x/y)+(7.123+w)))"
-"(((x/y)+(7.123-w)))"
-"(((x/y)+(7.123/w)))"
-"(((x/y)+(z+9.123)))"
-"(((x/y)+(z-9.123)))"
-"(((x/y)+(z/9.123)))"
-"(((x/y)-(7.123*w)))"
-"(((x/y)-(7.123+w)))"
-"(((x/y)-(7.123-w)))"
-"(((x/y)-(7.123/w)))"
-"(((x/y)-(z*9.123)))"
-"(((x/y)-(z+9.123)))"
-"(((x/y)-(z-9.123)))"
-"(((x/y)-(z/9.123)))"
-"(((x/y)/(7.123+w)))"
-"(((x/y)/(7.123-w)))"
-"(((x/y)/(z+9.123)))"
-"(((x/y)/(z-9.123)))"
-"((3.123*(5.123*z)))"
-"((3.123*(5.123+z)))"
-"((3.123*(5.123-z)))"
-"((3.123*(5.123/z)))"
-"((3.123*(y*7.123)))"
-"((3.123*(y+(z*w))))"
-"((3.123*(y+7.123)))"
-"((3.123*(y-(z*w))))"
-"((3.123*(y-7.123)))"
-"((3.123*(y/7.123)))"
-"((3.123*y*7.123+w))"
-"((3.123*y*7.123-w))"
-"((3.123*y*z+9.123))"
-"((3.123*y*z-9.123))"
-"((3.123*y+7.123*w))"
-"((3.123*y+7.123+w))"
-"((3.123*y+7.123-w))"
-"((3.123*y+7.123/w))"
-"((3.123*y+z*9.123))"
-"((3.123*y+z+9.123))"
-"((3.123*y+z-9.123))"
-"((3.123*y+z/9.123))"
-"((3.123*y-7.123*w))"
-"((3.123*y-7.123+w))"
-"((3.123*y-7.123-w))"
-"((3.123*y-7.123/w))"
-"((3.123*y-z*9.123))"
-"((3.123*y-z+9.123))"
-"((3.123*y-z-9.123))"
-"((3.123*y-z/9.123))"
-"((3.123*y/7.123+w))"
-"((3.123*y/7.123-w))"
-"((3.123*y/z+9.123))"
-"((3.123*y/z-9.123))"
-"((3.123+((y*z)*w)))"
-"((3.123+((y*z)/w)))"
-"((3.123+((y+z)*w)))"
-"((3.123+((y+z)/w)))"
-"((3.123+((y-z)*w)))"
-"((3.123+((y-z)/w)))"
-"((3.123+((y/z)*w)))"
-"((3.123+((y/z)+w)))"
-"((3.123+((y/z)/w)))"
-"((3.123+(5.123*z)))"
-"((3.123+(5.123+z)))"
-"((3.123+(5.123-z)))"
-"((3.123+(5.123/z)))"
-"((3.123+(y*(z/w))))"
-"((3.123+(y*7.123)))"
-"((3.123+(y+7.123)))"
-"((3.123+(y-7.123)))"
-"((3.123+(y/(z*w))))"
-"((3.123+(y/7.123)))"
-"((3.123+y*7.123*w))"
-"((3.123+y*7.123-w))"
-"((3.123+y*7.123/w))"
-"((3.123+y*z*9.123))"
-"((3.123+y*z-9.123))"
-"((3.123+y*z/9.123))"
-"((3.123+y+7.123*w))"
-"((3.123+y+7.123-w))"
-"((3.123+y+7.123/w))"
-"((3.123+y+z*9.123))"
-"((3.123+y+z-9.123))"
-"((3.123+y+z/9.123))"
-"((3.123+y-7.123*w))"
-"((3.123+y-7.123-w))"
-"((3.123+y-7.123/w))"
-"((3.123+y-z*9.123))"
-"((3.123+y-z-9.123))"
-"((3.123+y-z/9.123))"
-"((3.123+y/7.123*w))"
-"((3.123+y/7.123+w))"
-"((3.123+y/7.123-w))"
-"((3.123+y/7.123/w))"
-"((3.123+y/z*9.123))"
-"((3.123+y/z+9.123))"
-"((3.123+y/z-9.123))"
-"((3.123+y/z/9.123))"
-"((3.123-((y*z)*w)))"
-"((3.123-((y*z)/w)))"
-"((3.123-((y+z)*w)))"
-"((3.123-((y+z)/w)))"
-"((3.123-((y-z)*w)))"
-"((3.123-((y-z)/w)))"
-"((3.123-((y/z)*w)))"
-"((3.123-((y/z)/w)))"
-"((3.123-(5.123*z)))"
-"((3.123-(5.123+z)))"
-"((3.123-(5.123-z)))"
-"((3.123-(5.123/z)))"
-"((3.123-(y*(z/w))))"
-"((3.123-(y*7.123)))"
-"((3.123-(y+7.123)))"
-"((3.123-(y-7.123)))"
-"((3.123-(y/(z*w))))"
-"((3.123-(y/7.123)))"
-"((3.123-y*7.123*w))"
-"((3.123-y*7.123+w))"
-"((3.123-y*7.123-w))"
-"((3.123-y*7.123/w))"
-"((3.123-y*z*9.123))"
-"((3.123-y*z+9.123))"
-"((3.123-y*z-9.123))"
-"((3.123-y*z/9.123))"
-"((3.123-y+7.123*w))"
-"((3.123-y+7.123+w))"
-"((3.123-y+7.123/w))"
-"((3.123-y+z*9.123))"
-"((3.123-y+z+9.123))"
-"((3.123-y+z/9.123))"
-"((3.123-y-7.123*w))"
-"((3.123-y-7.123+w))"
-"((3.123-y-7.123/w))"
-"((3.123-y-z*9.123))"
-"((3.123-y-z+9.123))"
-"((3.123-y-z/9.123))"
-"((3.123-y/7.123*w))"
-"((3.123-y/7.123+w))"
-"((3.123-y/7.123-w))"
-"((3.123-y/7.123/w))"
-"((3.123-y/z*9.123))"
-"((3.123-y/z+9.123))"
-"((3.123-y/z-9.123))"
-"((3.123-y/z/9.123))"
-"((3.123/(5.123*z)))"
-"((3.123/(5.123+z)))"
-"((3.123/(5.123-z)))"
-"((3.123/(5.123/z)))"
-"((3.123/(y*7.123)))"
-"((3.123/(y+(z*w))))"
-"((3.123/(y+7.123)))"
-"((3.123/(y-(z*w))))"
-"((3.123/(y-7.123)))"
-"((3.123/(y/7.123)))"
-"((3.123/y*7.123+w))"
-"((3.123/y*7.123-w))"
-"((3.123/y*z+9.123))"
-"((3.123/y*z-9.123))"
-"((3.123/y+7.123*w))"
-"((3.123/y+7.123+w))"
-"((3.123/y+7.123-w))"
-"((3.123/y+7.123/w))"
-"((3.123/y+z*9.123))"
-"((3.123/y+z+9.123))"
-"((3.123/y+z-9.123))"
-"((3.123/y+z/9.123))"
-"((3.123/y-7.123*w))"
-"((3.123/y-7.123+w))"
-"((3.123/y-7.123-w))"
-"((3.123/y-7.123/w))"
-"((3.123/y-z*9.123))"
-"((3.123/y-z+9.123))"
-"((3.123/y-z-9.123))"
-"((3.123/y-z/9.123))"
-"((3.123/y/7.123+w))"
-"((3.123/y/7.123-w))"
-"((3.123/y/z+9.123))"
-"((3.123/y/z-9.123))"
-"((b+sin((pi-a)))-a)"
-"((tan(tan(e))*e)*e)"
-"((x*(5.123+(z*w))))"
-"((x*(5.123-(z*w))))"
-"((x*(y+(7.123*w))))"
-"((x*(y+(z*9.123))))"
-"((x*(y-(7.123*w))))"
-"((x*(y-(z*9.123))))"
-"((x*3.123*z+9.123))"
-"((x*3.123*z-9.123))"
-"((x*3.123+z*9.123))"
-"((x*3.123+z+9.123))"
-"((x*3.123+z-9.123))"
-"((x*3.123+z/9.123))"
-"((x*3.123-z*9.123))"
-"((x*3.123-z+9.123))"
-"((x*3.123-z-9.123))"
-"((x*3.123-z/9.123))"
-"((x*3.123/z+9.123))"
-"((x*3.123/z-9.123))"
-"((x*5.123*7.123+w))"
-"((x*5.123*7.123-w))"
-"((x*5.123+7.123*w))"
-"((x*5.123+7.123+w))"
-"((x*5.123+7.123-w))"
-"((x*5.123+7.123/w))"
-"((x*5.123-7.123*w))"
-"((x*5.123-7.123+w))"
-"((x*5.123-7.123-w))"
-"((x*5.123-7.123/w))"
-"((x*5.123/7.123+w))"
-"((x*5.123/7.123-w))"
-"((x*y*z+w+x+y/z/w))"
-"((x*y*z-w*x-y*z/w))"
-"((x*y*z-w/x+y+z*w))"
-"((x*y+z*w*x/y-z+w))"
-"((x*y+z*w-x+y-z-w))"
-"((x*y+z+w*x/y/z-w))"
-"((x*y+z-w+x/y*z-w))"
-"((x*y+z/w/x+y*z-w))"
-"((x*y-z*w*x+y+z-w))"
-"((x*y-z*w/x*y+z+w))"
-"((x*y-z+w+x/y/z+w))"
-"((x*y-z-w*x-y*z/w))"
-"((x*y-z/w+x+y/z-w))"
-"((x*y/z+w*x-y+z/w))"
-"((x*y/z-w+x-y-z/w))"
-"((x*y/z-w/x-y-z*w))"
-"((x+((5.123*z)*w)))"
-"((x+((5.123*z)/w)))"
-"((x+((5.123+z)*w)))"
-"((x+((5.123+z)/w)))"
-"((x+((5.123-z)*w)))"
-"((x+((5.123-z)/w)))"
-"((x+((5.123/z)*w)))"
-"((x+((5.123/z)+w)))"
-"((x+((5.123/z)/w)))"
-"((x+((y*7.123)*w)))"
-"((x+((y*7.123)/w)))"
-"((x+((y*z)*9.123)))"
-"((x+((y*z)/9.123)))"
-"((x+((y+7.123)*w)))"
-"((x+((y+7.123)/w)))"
-"((x+((y+z)*9.123)))"
-"((x+((y+z)/9.123)))"
-"((x+((y-7.123)*w)))"
-"((x+((y-7.123)/w)))"
-"((x+((y-z)*9.123)))"
-"((x+((y-z)/9.123)))"
-"((x+((y/7.123)*w)))"
-"((x+((y/7.123)+w)))"
-"((x+((y/7.123)/w)))"
-"((x+((y/z)*9.123)))"
-"((x+((y/z)+9.123)))"
-"((x+((y/z)/9.123)))"
-"((x+(5.123*(z/w))))"
-"((x+(5.123/(z*w))))"
-"((x+(y*(7.123/w))))"
-"((x+(y*(z/9.123))))"
-"((x+(y/(7.123*w))))"
-"((x+(y/(z*9.123))))"
-"((x+3.123*z*9.123))"
-"((x+3.123*z-9.123))"
-"((x+3.123*z/9.123))"
-"((x+3.123+z*9.123))"
-"((x+3.123+z-9.123))"
-"((x+3.123+z/9.123))"
-"((x+3.123-z*9.123))"
-"((x+3.123-z-9.123))"
-"((x+3.123-z/9.123))"
-"((x+3.123/z*9.123))"
-"((x+3.123/z+9.123))"
-"((x+3.123/z-9.123))"
-"((x+3.123/z/9.123))"
-"((x+5.123*7.123*w))"
-"((x+5.123*7.123-w))"
-"((x+5.123*7.123/w))"
-"((x+5.123+7.123*w))"
-"((x+5.123+7.123-w))"
-"((x+5.123+7.123/w))"
-"((x+5.123-7.123*w))"
-"((x+5.123-7.123-w))"
-"((x+5.123-7.123/w))"
-"((x+5.123/7.123*w))"
-"((x+5.123/7.123-w))"
-"((x+5.123/7.123/w))"
-"((x+y*z*w+x-y/z*w))"
-"((x+y*z*w-x/y/z-w))"
-"((x+y*z-w*x-y/z/w))"
-"((x+y*z-w-x+y-z*w))"
-"((x+y*z/w+x*y/z-w))"
-"((x+y*z/w+x-y/z/w))"
-"((x+y*z/w-x+y+z/w))"
-"((x+y+z*w*x/y+z-w))"
-"((x+y+z*w-x/y*z-w))"
-"((x+y+z-w-x-y/z*w))"
-"((x+y+z/w+x*y*z-w))"
-"((x+y+z/w/x*y-z-w))"
-"((x+y-z*w+x/y+z+w))"
-"((x+y-z*w/x-y/z-w))"
-"((x+y-z-w+x+y/z/w))"
-"((x+y-z/w*x+y/z-w))"
-"((x+y-z/w-x*y+z-w))"
-"((x+y/z*w*x+y*z-w))"
-"((x+y/z*w*x+y+z*w))"
-"((x+y/z*w+x*y+z/w))"
-"((x+y/z+w*x*y+z*w))"
-"((x+y/z-w-x-y+z*w))"
-"((x+y/z-w/x-y*z*w))"
-"((x+y/z/w/x*y-z*w))"
-"((x+y/z/w/x+y-z/w))"
-"((x-((5.123*z)*w)))"
-"((x-((5.123*z)/w)))"
-"((x-((5.123+z)*w)))"
-"((x-((5.123+z)/w)))"
-"((x-((5.123-z)*w)))"
-"((x-((5.123-z)/w)))"
-"((x-((5.123/z)*w)))"
-"((x-((5.123/z)/w)))"
-"((x-((y*7.123)*w)))"
-"((x-((y*7.123)/w)))"
-"((x-((y*z)*9.123)))"
-"((x-((y*z)/9.123)))"
-"((x-((y+7.123)*w)))"
-"((x-((y+7.123)/w)))"
-"((x-((y+z)*9.123)))"
-"((x-((y+z)/9.123)))"
-"((x-((y-7.123)*w)))"
-"((x-((y-7.123)/w)))"
-"((x-((y-z)*9.123)))"
-"((x-((y-z)/9.123)))"
-"((x-((y/7.123)*w)))"
-"((x-((y/7.123)/w)))"
-"((x-((y/z)*9.123)))"
-"((x-((y/z)/9.123)))"
-"((x-(5.123*(z/w))))"
-"((x-(5.123/(z*w))))"
-"((x-(y*(7.123/w))))"
-"((x-(y*(z/9.123))))"
-"((x-(y/(7.123*w))))"
-"((x-(y/(z*9.123))))"
-"((x-3.123*z*9.123))"
-"((x-3.123*z+9.123))"
-"((x-3.123*z-9.123))"
-"((x-3.123*z/9.123))"
-"((x-3.123+z*9.123))"
-"((x-3.123+z+9.123))"
-"((x-3.123+z/9.123))"
-"((x-3.123-z*9.123))"
-"((x-3.123-z+9.123))"
-"((x-3.123-z/9.123))"
-"((x-3.123/z*9.123))"
-"((x-3.123/z+9.123))"
-"((x-3.123/z-9.123))"
-"((x-3.123/z/9.123))"
-"((x-5.123*7.123*w))"
-"((x-5.123*7.123+w))"
-"((x-5.123*7.123-w))"
-"((x-5.123*7.123/w))"
-"((x-5.123+7.123*w))"
-"((x-5.123+7.123+w))"
-"((x-5.123+7.123/w))"
-"((x-5.123-7.123*w))"
-"((x-5.123-7.123+w))"
-"((x-5.123-7.123/w))"
-"((x-5.123/7.123*w))"
-"((x-5.123/7.123+w))"
-"((x-5.123/7.123-w))"
-"((x-5.123/7.123/w))"
-"((x-y*z*w*x+y*z*w))"
-"((x-y*z*w*x/y-z*w))"
-"((x-y*z+w*x/y*z+w))"
-"((x-y*z-w*x+y-z/w))"
-"((x-y*z/w-x-y/z*w))"
-"((x-y*z/w-x/y+z*w))"
-"((x-y*z/w/x+y/z+w))"
-"((x-y+z*w*x/y+z/w))"
-"((x-y+z*w+x/y-z-w))"
-"((x-y+z+w-x*y*z+w))"
-"((x-y+z/w-x*y-z/w))"
-"((x-y+z/w-x+y*z*w))"
-"((x-y-z*w*x+y*z/w))"
-"((x-y-z*w+x/y-z*w))"
-"((x-y-z+w+x-y*z/w))"
-"((x-y-z/w/x+y/z*w))"
-"((x-y-z/w/x/y-z/w))"
-"((x-y/z*w+x*y-z*w))"
-"((x-y/z*w+x+y-z*w))"
-"((x-y/z*w/x-y*z-w))"
-"((x-y/z+w/x*y/z+w))"
-"((x-y/z-w*x-y+z/w))"
-"((x-y/z/w-x+y*z/w))"
-"((x-y/z/w/x*y+z*w))"
-"((x/(5.123+(z*w))))"
-"((x/(5.123-(z*w))))"
-"((x/(y+(7.123*w))))"
-"((x/(y+(z*9.123))))"
-"((x/(y-(7.123*w))))"
-"((x/(y-(z*9.123))))"
-"((x/3.123*z+9.123))"
-"((x/3.123*z-9.123))"
-"((x/3.123+z*9.123))"
-"((x/3.123+z+9.123))"
-"((x/3.123+z-9.123))"
-"((x/3.123+z/9.123))"
-"((x/3.123-z*9.123))"
-"((x/3.123-z+9.123))"
-"((x/3.123-z-9.123))"
-"((x/3.123-z/9.123))"
-"((x/3.123/z+9.123))"
-"((x/3.123/z-9.123))"
-"((x/5.123*7.123+w))"
-"((x/5.123*7.123-w))"
-"((x/5.123+7.123*w))"
-"((x/5.123+7.123+w))"
-"((x/5.123+7.123-w))"
-"((x/5.123+7.123/w))"
-"((x/5.123-7.123*w))"
-"((x/5.123-7.123+w))"
-"((x/5.123-7.123-w))"
-"((x/5.123-7.123/w))"
-"((x/5.123/7.123+w))"
-"((x/5.123/7.123-w))"
-"((x/y*z+w-x+y/z*w))"
-"((x/y*z-w+x+y+z/w))"
-"((x/y*z-w/x-y*z*w))"
-"((x/y+z*w+x-y/z+w))"
-"((x/y+z+w/x*y*z-w))"
-"((x/y+z-w-x+y*z/w))"
-"((x/y+z/w-x-y-z+w))"
-"((x/y-z*w-x*y-z+w))"
-"((x/y-z*w/x-y*z+w))"
-"((x/y-z+w-x*y/z-w))"
-"((x/y-z-w/x+y/z*w))"
-"((x/y-z/w*x-y+z+w))"
-"((x/y/z+w/x-y+z*w))"
-"((x/y/z-w+x-y-z/w))"
-"((x/y/z-w-x-y-z*w))"
-"(1.1*(2.2/3.3))-4.4"
-"(1.1+a^2)+(2.2+b^2)"
-"(a^2^3/4)-(a^2^3/4)"
-"2.2*y*z+w-2.2/y*z+w"
-"2.2*y*z-w-2.2/y*z-w"
-"2.2*y+z*w*2.2*y-z*w"
-"2.2*y+z+w+2.2/y+z+w"
-"2.2*y+z-w-2.2/y+z-w"
-"2.2*y-z*w-2.2*y+z/w"
-"2.2*y-z+w*2.2/y-z+w"
-"2.2*y-z-w*2.2/y-z-w"
-"2.2*y-z/w*2.2/y+z/w"
-"2.2*y/z+w*2.2/y/z+w"
-"2.2*y/z-w+2.2/y/z-w"
-"2.2+y*z*w+2.2+y*z/w"
-"2.2+y*z/w*2.2+y*z*w"
-"2.2+y+z*w-2.2+y+z/w"
-"2.2+y+z-w*2.2+y+z-w"
-"2.2+y+z/w+2.2+y+z*w"
-"2.2+y-z*w+2.2+y-z/w"
-"2.2+y-z-w-2.2+y-z-w"
-"2.2+y-z/w-2.2+y-z*w"
-"2.2+y/z*w-2.2+y/z/w"
-"2.2+y/z*w-2.2-y+z/w"
-"2.2+y/z+w+2.2+y/z/w"
-"2.2-y*z*w+2.2-y*z/w"
-"2.2-y*z*w-2.2-y/z/w"
-"2.2-y*z-w+2.2*y*z-w"
-"2.2-y+z*w*2.2-y+z/w"
-"2.2-y+z*w*2.2-y-z/w"
-"2.2-y+z+w-2.2-y+z+w"
-"2.2-y-z*w+2.2-y*z/w"
-"2.2-y-z*w+2.2-y-z/w"
-"2.2-y-z+w+2.2-y-z+w"
-"2.2-y/z*w*2.2+y*z-w"
-"2.2-y/z*w*2.2-y/z/w"
-"2.2-y/z-w*2.2*y/z-w"
-"2.2/y*z-w-2.2+y/z-w"
-"2.2/y+z*w-2.2/y-z*w"
-"2.2/y-z/w+2.2/y-z*w"
-"2.2/y/z-w+2.2*y+z*w"
-"3.3*a^2+2.2*a^1+1.1"
-"cos(((cos(b)/b)-b))"
-"sin(pi/2)+cos(pi/2)"
-"x*3.3*z+w-x/3.3*z+w"
-"x*3.3*z-w-x/3.3*z-w"
-"x*3.3+z*w*x*3.3-z*w"
-"x*3.3+z+w+x/3.3+z+w"
-"x*3.3+z-w-x/3.3+z-w"
-"x*3.3-z*w-x*3.3+z/w"
-"x*3.3-z+w*x/3.3-z+w"
-"x*3.3-z-w*x/3.3-z-w"
-"x*3.3-z/w*x/3.3+z/w"
-"x*3.3/z+w*x/3.3/z+w"
-"x*3.3/z-w+x/3.3/z-w"
-"x*y*4.4+w-x/y*4.4+w"
-"x*y*4.4-w-x/y*4.4-w"
-"x*y*z+5.5-x/y*z+5.5"
-"x*y*z-5.5-x/y*z-5.5"
-"x*y+4.4*w*x*y-4.4*w"
-"x*y+4.4+w+x/y+4.4+w"
-"x*y+4.4-w-x/y+4.4-w"
-"x*y+z*5.5*x*y-z*5.5"
-"x*y+z+5.5+x/y+z+5.5"
-"x*y+z-5.5-x/y+z-5.5"
-"x*y-4.4*w-x*y+4.4/w"
-"x*y-4.4+w*x/y-4.4+w"
-"x*y-4.4-w*x/y-4.4-w"
-"x*y-4.4/w*x/y+4.4/w"
-"x*y-z*5.5-x*y+z/5.5"
-"x*y-z+5.5*x/y-z+5.5"
-"x*y-z-5.5*x/y-z-5.5"
-"x*y-z/5.5*x/y+z/5.5"
-"x*y/4.4+w*x/y/4.4+w"
-"x*y/4.4-w+x/y/4.4-w"
-"x*y/z+5.5*x/y/z+5.5"
-"x*y/z-5.5+x/y/z-5.5"
-"x+3.3*z*w+x+3.3*z/w"
-"x+3.3*z/w*x+3.3*z*w"
-"x+3.3+z*w-x+3.3+z/w"
-"x+3.3+z-w*x+3.3+z-w"
-"x+3.3+z/w+x+3.3+z*w"
-"x+3.3-z*w+x+3.3-z/w"
-"x+3.3-z-w-x+3.3-z-w"
-"x+3.3-z/w-x+3.3-z*w"
-"x+3.3/z*w-x+3.3/z/w"
-"x+3.3/z*w-x-3.3+z/w"
-"x+3.3/z+w+x+3.3/z/w"
-"x+y*4.4*w+x+y*4.4/w"
-"x+y*4.4/w*x+y*4.4*w"
-"x+y*z*5.5+x+y*z/5.5"
-"x+y*z/5.5*x+y*z*5.5"
-"x+y+4.4*w-x+y+4.4/w"
-"x+y+4.4-w*x+y+4.4-w"
-"x+y+4.4/w+x+y+4.4*w"
-"x+y+z*5.5-x+y+z/5.5"
-"x+y+z-5.5*x+y+z-5.5"
-"x+y+z/5.5+x+y+z*5.5"
-"x+y-4.4*w+x+y-4.4/w"
-"x+y-4.4-w-x+y-4.4-w"
-"x+y-4.4/w-x+y-4.4*w"
-"x+y-z*5.5+x+y-z/5.5"
-"x+y-z-5.5-x+y-z-5.5"
-"x+y-z/5.5-x+y-z*5.5"
-"x+y/4.4*w-x+y/4.4/w"
-"x+y/4.4*w-x-y+4.4/w"
-"x+y/4.4+w+x+y/4.4/w"
-"x+y/z*5.5-x+y/z/5.5"
-"x+y/z*5.5-x-y+z/5.5"
-"x+y/z+5.5+x+y/z/5.5"
-"x-3.3*z*w+x-3.3*z/w"
-"x-3.3*z*w-x-3.3/z/w"
-"x-3.3*z-w+x*3.3*z-w"
-"x-3.3+z*w*x-3.3+z/w"
-"x-3.3+z*w*x-3.3-z/w"
-"x-3.3+z+w-x-3.3+z+w"
-"x-3.3-z*w+x-3.3*z/w"
-"x-3.3-z*w+x-3.3-z/w"
-"x-3.3-z+w+x-3.3-z+w"
-"x-3.3/z*w*x+3.3*z-w"
-"x-3.3/z*w*x-3.3/z/w"
-"x-3.3/z-w*x*3.3/z-w"
-"x-y*4.4*w+x-y*4.4/w"
-"x-y*4.4*w-x-y/4.4/w"
-"x-y*4.4-w+x*y*4.4-w"
-"x-y*z*5.5+x-y*z/5.5"
-"x-y*z*5.5-x-y/z/5.5"
-"x-y*z-5.5+x*y*z-5.5"
-"x-y+4.4*w*x-y+4.4/w"
-"x-y+4.4*w*x-y-4.4/w"
-"x-y+4.4+w-x-y+4.4+w"
-"x-y+z*5.5*x-y+z/5.5"
-"x-y+z*5.5*x-y-z/5.5"
-"x-y+z+5.5-x-y+z+5.5"
-"x-y-4.4*w+x-y*4.4/w"
-"x-y-4.4*w+x-y-4.4/w"
-"x-y-4.4+w+x-y-4.4+w"
-"x-y-z*5.5+x-y*z/5.5"
-"x-y-z*5.5+x-y-z/5.5"
-"x-y-z+5.5+x-y-z+5.5"
-"x-y/4.4*w*x+y*4.4-w"
-"x-y/4.4*w*x-y/4.4/w"
-"x-y/4.4-w*x*y/4.4-w"
-"x-y/z*5.5*x+y*z-5.5"
-"x-y/z*5.5*x-y/z/5.5"
-"x-y/z-5.5*x*y/z-5.5"
-"x/3.3*z-w-x+3.3/z-w"
-"x/3.3+z*w-x/3.3-z*w"
-"x/3.3-z/w+x/3.3-z*w"
-"x/3.3/z-w+x*3.3+z*w"
-"x/y*4.4-w-x+y/4.4-w"
-"x/y*z-5.5-x+y/z-5.5"
-"x/y+4.4*w-x/y-4.4*w"
-"x/y+z*5.5-x/y-z*5.5"
-"x/y-4.4/w+x/y-4.4*w"
-"x/y-z/5.5+x/y-z*5.5"
-"x/y/4.4-w+x*y+4.4*w"
-"x/y/z-5.5+x*y+z*5.5"
-"((((b/b)-b)+b)+0.94)"
-"(((b+(3.51+b))+b)-e)"
-"((b/((a/b)+e))+3.10)"
-"(-1+a^2^3)-(a^2^3-1)"
-"1-sin(2*a)+cos(pi/b)"
-"sin(2.2*a)+cos(pi/b)"
-"(((((b/e)+a)+a)-b)+b)"
-"((((b-pi)*a)+2.77)+a)"
-"((((pi/a)+e)+b)*1.94)"
-"(((x*y)*z)-(x/(y*z)))"
-"(((x*y)+z)*((x/y)*z))"
-"(((x*y)-z)/(x/(y+z)))"
-"(((x*y)/z)+(x/(y-z)))"
-"(((x+y)*z)-((x*y)/z))"
-"(((x+y)+z)/((x/y)+z))"
-"(((x+y)-z)*((x*y)*z))"
-"(((x+y)/z)+((x*y)-z))"
-"(((x-y)*z)-((x/y)/z))"
-"(((x-y)/z)+((x/y)-z))"
-"(((x/y)*z)-(x*(y*z)))"
-"(((x/y)+z)*(x/(y/z)))"
-"(((x/y)-z)/(x*(y+z)))"
-"(((x/y)/z)+(x*(y-z)))"
-"((x*(y*z))+(x+(y/z)))"
-"((x*(y+z))*(x-(y*z)))"
-"((x*(y-z))/(x+(y*z)))"
-"((x*(y/z))-(x+(y+z)))"
-"((x+(y*z))*((x+y)+z))"
-"((x+(y+z))+((x-y)*z))"
-"((x+(y-z))-((x*y)+z))"
-"((x+(y/z))/((x-y)/z))"
-"((x-(y*z))-((x+y)-z))"
-"((x-(y+z))*(x+(y-z)))"
-"((x-(y-z))/((x+y)/z))"
-"((x-(y/z))+((x+y)*z))"
-"((x/(y*z))+(x-(y-z)))"
-"((x/(y+z))*(x*(y/z)))"
-"((x/(y-z))/(x-(y+z)))"
-"((x/(y/z))-(x-(y/z)))"
-"(-1*a^2^3)-(a^2^3*-1)"
-"(a^2/sin(2*pi/b))-a/2"
-"(b+(((2.59+b)*b)+pi))"
-"(cos(((e+b)+0.71))-a)"
-"(tan(((b/3.21)-a))+e)"
-"1.1*a^2.01+2.2*b^3.01"
-"1.1-((a*b)+(a/b))-3.3"
-"sin(pi/6)+cos(2*pi/6)"
-"tan(((b+(a*1.99))*a))"
-"(0.1*a+1)*a+1.1-sin(a)"
-"1-sin(2.2*a)+cos(pi/b)"
-"tan((((pi+2.69)/a)/b))"
-"(((((e+a)/e)*b)+pi)*pi)"
-"((((3.123*y)*7.123)-w))"
-"((((3.123*y)*z)-9.123))"
-"((((3.123*y)/7.123)-w))"
-"((((3.123*y)/z)-9.123))"
-"((((3.123+y)*7.123)-w))"
-"((((3.123+y)*z)-9.123))"
-"((((3.123+y)/7.123)-w))"
-"((((3.123+y)/z)-9.123))"
-"((((3.123-y)*7.123)-w))"
-"((((3.123-y)*z)-9.123))"
-"((((3.123-y)/7.123)-w))"
-"((((3.123-y)/z)-9.123))"
-"((((3.123/y)*7.123)-w))"
-"((((3.123/y)*z)-9.123))"
-"((((3.123/y)/7.123)-w))"
-"((((3.123/y)/z)-9.123))"
-"((((x*3.123)*z)-9.123))"
-"((((x*3.123)/z)-9.123))"
-"((((x*5.123)*7.123)-w))"
-"((((x*5.123)/7.123)-w))"
-"((((x+3.123)*z)-9.123))"
-"((((x+3.123)/z)-9.123))"
-"((((x+5.123)*7.123)-w))"
-"((((x+5.123)/7.123)-w))"
-"((((x-3.123)*z)-9.123))"
-"((((x-3.123)/z)-9.123))"
-"((((x-5.123)*7.123)-w))"
-"((((x-5.123)/7.123)-w))"
-"((((x/3.123)*z)-9.123))"
-"((((x/3.123)/z)-9.123))"
-"((((x/5.123)*7.123)-w))"
-"((((x/5.123)/7.123)-w))"
-"(((3.123*y)*(7.123+w)))"
-"(((3.123*y)*(7.123-w)))"
-"(((3.123*y)*(z+9.123)))"
-"(((3.123*y)*(z-9.123)))"
-"(((3.123*y)+(7.123*w)))"
-"(((3.123*y)+(7.123+w)))"
-"(((3.123*y)+(7.123-w)))"
-"(((3.123*y)+(7.123/w)))"
-"(((3.123*y)+(z*9.123)))"
-"(((3.123*y)+(z+9.123)))"
-"(((3.123*y)+(z-9.123)))"
-"(((3.123*y)+(z/9.123)))"
-"(((3.123*y)-(7.123*w)))"
-"(((3.123*y)-(7.123+w)))"
-"(((3.123*y)-(7.123-w)))"
-"(((3.123*y)-(7.123/w)))"
-"(((3.123*y)-(z*9.123)))"
-"(((3.123*y)-(z+9.123)))"
-"(((3.123*y)-(z-9.123)))"
-"(((3.123*y)-(z/9.123)))"
-"(((3.123*y)/(7.123+w)))"
-"(((3.123*y)/(7.123-w)))"
-"(((3.123*y)/(z+9.123)))"
-"(((3.123*y)/(z-9.123)))"
-"(((3.123+y)*(7.123*w)))"
-"(((3.123+y)*(7.123-w)))"
-"(((3.123+y)*(7.123/w)))"
-"(((3.123+y)*(z*9.123)))"
-"(((3.123+y)*(z-9.123)))"
-"(((3.123+y)*(z/9.123)))"
-"(((3.123+y)+(7.123*w)))"
-"(((3.123+y)+(7.123-w)))"
-"(((3.123+y)+(7.123/w)))"
-"(((3.123+y)+(z*9.123)))"
-"(((3.123+y)+(z-9.123)))"
-"(((3.123+y)+(z/9.123)))"
-"(((3.123+y)-(7.123*w)))"
-"(((3.123+y)-(7.123-w)))"
-"(((3.123+y)-(7.123/w)))"
-"(((3.123+y)-(z*9.123)))"
-"(((3.123+y)-(z-9.123)))"
-"(((3.123+y)-(z/9.123)))"
-"(((3.123+y)/(7.123*w)))"
-"(((3.123+y)/(7.123-w)))"
-"(((3.123+y)/(7.123/w)))"
-"(((3.123+y)/(z*9.123)))"
-"(((3.123+y)/(z-9.123)))"
-"(((3.123+y)/(z/9.123)))"
-"(((3.123-y)*(7.123*w)))"
-"(((3.123-y)*(7.123+w)))"
-"(((3.123-y)*(7.123/w)))"
-"(((3.123-y)*(z*9.123)))"
-"(((3.123-y)*(z+9.123)))"
-"(((3.123-y)*(z/9.123)))"
-"(((3.123-y)+(7.123*w)))"
-"(((3.123-y)+(7.123+w)))"
-"(((3.123-y)+(7.123/w)))"
-"(((3.123-y)+(z*9.123)))"
-"(((3.123-y)+(z+9.123)))"
-"(((3.123-y)+(z/9.123)))"
-"(((3.123-y)-(7.123*w)))"
-"(((3.123-y)-(7.123+w)))"
-"(((3.123-y)-(7.123/w)))"
-"(((3.123-y)-(z*9.123)))"
-"(((3.123-y)-(z+9.123)))"
-"(((3.123-y)-(z/9.123)))"
-"(((3.123-y)/(7.123*w)))"
-"(((3.123-y)/(7.123+w)))"
-"(((3.123-y)/(7.123/w)))"
-"(((3.123-y)/(z*9.123)))"
-"(((3.123-y)/(z+9.123)))"
-"(((3.123-y)/(z/9.123)))"
-"(((3.123/y)*(7.123+w)))"
-"(((3.123/y)*(7.123-w)))"
-"(((3.123/y)*(z+9.123)))"
-"(((3.123/y)*(z-9.123)))"
-"(((3.123/y)+(7.123+w)))"
-"(((3.123/y)+(7.123-w)))"
-"(((3.123/y)+(7.123/w)))"
-"(((3.123/y)+(z+9.123)))"
-"(((3.123/y)+(z-9.123)))"
-"(((3.123/y)+(z/9.123)))"
-"(((3.123/y)-(7.123*w)))"
-"(((3.123/y)-(7.123+w)))"
-"(((3.123/y)-(7.123-w)))"
-"(((3.123/y)-(7.123/w)))"
-"(((3.123/y)-(z*9.123)))"
-"(((3.123/y)-(z+9.123)))"
-"(((3.123/y)-(z-9.123)))"
-"(((3.123/y)-(z/9.123)))"
-"(((3.123/y)/(7.123+w)))"
-"(((3.123/y)/(7.123-w)))"
-"(((3.123/y)/(z+9.123)))"
-"(((3.123/y)/(z-9.123)))"
-"(((x*3.123)*(z+9.123)))"
-"(((x*3.123)*(z-9.123)))"
-"(((x*3.123)+(z*9.123)))"
-"(((x*3.123)+(z+9.123)))"
-"(((x*3.123)+(z-9.123)))"
-"(((x*3.123)+(z/9.123)))"
-"(((x*3.123)-(z*9.123)))"
-"(((x*3.123)-(z+9.123)))"
-"(((x*3.123)-(z-9.123)))"
-"(((x*3.123)-(z/9.123)))"
-"(((x*3.123)/(z+9.123)))"
-"(((x*3.123)/(z-9.123)))"
-"(((x*5.123)*(7.123+w)))"
-"(((x*5.123)*(7.123-w)))"
-"(((x*5.123)+(7.123*w)))"
-"(((x*5.123)+(7.123+w)))"
-"(((x*5.123)+(7.123-w)))"
-"(((x*5.123)+(7.123/w)))"
-"(((x*5.123)-(7.123*w)))"
-"(((x*5.123)-(7.123+w)))"
-"(((x*5.123)-(7.123-w)))"
-"(((x*5.123)-(7.123/w)))"
-"(((x*5.123)/(7.123+w)))"
-"(((x*5.123)/(7.123-w)))"
-"(((x+3.123)*(z*9.123)))"
-"(((x+3.123)*(z-9.123)))"
-"(((x+3.123)*(z/9.123)))"
-"(((x+3.123)+(z*9.123)))"
-"(((x+3.123)+(z-9.123)))"
-"(((x+3.123)+(z/9.123)))"
-"(((x+3.123)-(z*9.123)))"
-"(((x+3.123)-(z-9.123)))"
-"(((x+3.123)-(z/9.123)))"
-"(((x+3.123)/(z*9.123)))"
-"(((x+3.123)/(z-9.123)))"
-"(((x+3.123)/(z/9.123)))"
-"(((x+5.123)*(7.123*w)))"
-"(((x+5.123)*(7.123-w)))"
-"(((x+5.123)*(7.123/w)))"
-"(((x+5.123)+(7.123*w)))"
-"(((x+5.123)+(7.123-w)))"
-"(((x+5.123)+(7.123/w)))"
-"(((x+5.123)-(7.123*w)))"
-"(((x+5.123)-(7.123-w)))"
-"(((x+5.123)-(7.123/w)))"
-"(((x+5.123)/(7.123*w)))"
-"(((x+5.123)/(7.123-w)))"
-"(((x+5.123)/(7.123/w)))"
-"(((x-3.123)*(z*9.123)))"
-"(((x-3.123)*(z+9.123)))"
-"(((x-3.123)*(z/9.123)))"
-"(((x-3.123)+(z*9.123)))"
-"(((x-3.123)+(z+9.123)))"
-"(((x-3.123)+(z/9.123)))"
-"(((x-3.123)-(z*9.123)))"
-"(((x-3.123)-(z+9.123)))"
-"(((x-3.123)-(z/9.123)))"
-"(((x-3.123)/(z*9.123)))"
-"(((x-3.123)/(z+9.123)))"
-"(((x-3.123)/(z/9.123)))"
-"(((x-5.123)*(7.123*w)))"
-"(((x-5.123)*(7.123+w)))"
-"(((x-5.123)*(7.123/w)))"
-"(((x-5.123)+(7.123*w)))"
-"(((x-5.123)+(7.123+w)))"
-"(((x-5.123)+(7.123/w)))"
-"(((x-5.123)-(7.123*w)))"
-"(((x-5.123)-(7.123+w)))"
-"(((x-5.123)-(7.123/w)))"
-"(((x-5.123)/(7.123*w)))"
-"(((x-5.123)/(7.123+w)))"
-"(((x-5.123)/(7.123/w)))"
-"(((x/3.123)*(z+9.123)))"
-"(((x/3.123)*(z-9.123)))"
-"(((x/3.123)+(z+9.123)))"
-"(((x/3.123)+(z-9.123)))"
-"(((x/3.123)+(z/9.123)))"
-"(((x/3.123)-(z*9.123)))"
-"(((x/3.123)-(z+9.123)))"
-"(((x/3.123)-(z-9.123)))"
-"(((x/3.123)-(z/9.123)))"
-"(((x/3.123)/(z+9.123)))"
-"(((x/3.123)/(z-9.123)))"
-"(((x/5.123)*(7.123+w)))"
-"(((x/5.123)*(7.123-w)))"
-"(((x/5.123)+(7.123+w)))"
-"(((x/5.123)+(7.123-w)))"
-"(((x/5.123)+(7.123/w)))"
-"(((x/5.123)-(7.123*w)))"
-"(((x/5.123)-(7.123+w)))"
-"(((x/5.123)-(7.123-w)))"
-"(((x/5.123)-(7.123/w)))"
-"(((x/5.123)/(7.123+w)))"
-"(((x/5.123)/(7.123-w)))"
-"((3.123*(y+(7.123*w))))"
-"((3.123*(y+(z*9.123))))"
-"((3.123*(y-(7.123*w))))"
-"((3.123*(y-(z*9.123))))"
-"((3.123*y*z+3.123+y/z))"
-"((3.123*y*z-3.123/y*z))"
-"((3.123*y+z*3.123-y*z))"
-"((3.123*y+z*3.123/y*z))"
-"((3.123*y-z/3.123+y*z))"
-"((3.123*y-z/3.123/y+z))"
-"((3.123*y/z+3.123/y-z))"
-"((3.123*y/z-3.123+y+z))"
-"((3.123+((y*7.123)*w)))"
-"((3.123+((y*7.123)/w)))"
-"((3.123+((y*z)*9.123)))"
-"((3.123+((y*z)/9.123)))"
-"((3.123+((y+7.123)*w)))"
-"((3.123+((y+7.123)/w)))"
-"((3.123+((y+z)*9.123)))"
-"((3.123+((y+z)/9.123)))"
-"((3.123+((y-7.123)*w)))"
-"((3.123+((y-7.123)/w)))"
-"((3.123+((y-z)*9.123)))"
-"((3.123+((y-z)/9.123)))"
-"((3.123+((y/7.123)*w)))"
-"((3.123+((y/7.123)+w)))"
-"((3.123+((y/7.123)/w)))"
-"((3.123+((y/z)*9.123)))"
-"((3.123+((y/z)+9.123)))"
-"((3.123+((y/z)/9.123)))"
-"((3.123+(y*(7.123/w))))"
-"((3.123+(y*(z/9.123))))"
-"((3.123+(y/(7.123*w))))"
-"((3.123+(y/(z*9.123))))"
-"((3.123+y*z*3.123+y+z))"
-"((3.123+y*z-3.123*y/z))"
-"((3.123+y+z+3.123-y*z))"
-"((3.123+y+z/3.123/y+z))"
-"((3.123+y-z*3.123*y*z))"
-"((3.123+y-z-3.123*y+z))"
-"((3.123+y/z+3.123*y-z))"
-"((3.123+y/z/3.123-y/z))"
-"((3.123-((y*7.123)*w)))"
-"((3.123-((y*7.123)/w)))"
-"((3.123-((y*z)*9.123)))"
-"((3.123-((y*z)/9.123)))"
-"((3.123-((y+7.123)*w)))"
-"((3.123-((y+7.123)/w)))"
-"((3.123-((y+z)*9.123)))"
-"((3.123-((y+z)/9.123)))"
-"((3.123-((y-7.123)*w)))"
-"((3.123-((y-7.123)/w)))"
-"((3.123-((y-z)*9.123)))"
-"((3.123-((y-z)/9.123)))"
-"((3.123-((y/7.123)*w)))"
-"((3.123-((y/7.123)/w)))"
-"((3.123-((y/z)*9.123)))"
-"((3.123-((y/z)/9.123)))"
-"((3.123-(y*(7.123/w))))"
-"((3.123-(y*(z/9.123))))"
-"((3.123-(y/(7.123*w))))"
-"((3.123-(y/(z*9.123))))"
-"((3.123-y*z-3.123+y-z))"
-"((3.123-y*z-3.123/y/z))"
-"((3.123-y+z*3.123+y-z))"
-"((3.123-y-z/3.123+y/z))"
-"((3.123-y/z+3.123+y*z))"
-"((3.123-y/z+3.123/y-z))"
-"((3.123/(y+(7.123*w))))"
-"((3.123/(y+(z*9.123))))"
-"((3.123/(y-(7.123*w))))"
-"((3.123/(y-(z*9.123))))"
-"((3.123/y*z+3.123-y-z))"
-"((3.123/y*z-3.123*y*z))"
-"((3.123/y+z*3.123*y/z))"
-"((3.123/y+z*3.123/y/z))"
-"((3.123/y-z/3.123*y+z))"
-"((3.123/y-z/3.123-y+z))"
-"((3.123/y/z+3.123*y-z))"
-"((3.123/y/z-3.123-y/z))"
-"((x*(3.123+(z*9.123))))"
-"((x*(3.123-(z*9.123))))"
-"((x*(5.123+(7.123*w))))"
-"((x*(5.123-(7.123*w))))"
-"((x*5.123*z+x+5.123/z))"
-"((x*5.123*z-x/5.123*z))"
-"((x*5.123+z*x-5.123*z))"
-"((x*5.123+z*x/5.123*z))"
-"((x*5.123-z/x+5.123*z))"
-"((x*5.123-z/x/5.123+z))"
-"((x*5.123/z+x/5.123-z))"
-"((x*5.123/z-x+5.123+z))"
-"((x*y*7.123+x+y/7.123))"
-"((x*y*7.123-x/y*7.123))"
-"((x*y+7.123*x-y*7.123))"
-"((x*y+7.123*x/y*7.123))"
-"((x*y-7.123/x+y*7.123))"
-"((x*y-7.123/x/y+7.123))"
-"((x*y/7.123+x/y-7.123))"
-"((x*y/7.123-x+y+7.123))"
-"((x+((3.123*z)*9.123)))"
-"((x+((3.123*z)/9.123)))"
-"((x+((3.123+z)*9.123)))"
-"((x+((3.123+z)/9.123)))"
-"((x+((3.123-z)*9.123)))"
-"((x+((3.123-z)/9.123)))"
-"((x+((3.123/z)*9.123)))"
-"((x+((3.123/z)+9.123)))"
-"((x+((3.123/z)/9.123)))"
-"((x+(3.123*(z/9.123))))"
-"((x+(3.123/(z*9.123))))"
-"((x+(5.123*(7.123/w))))"
-"((x+(5.123/(7.123*w))))"
-"((x+5.123*z*x+5.123+z))"
-"((x+5.123*z-x*5.123/z))"
-"((x+5.123+z+x-5.123*z))"
-"((x+5.123+z/x/5.123+z))"
-"((x+5.123-z*x*5.123*z))"
-"((x+5.123-z-x*5.123+z))"
-"((x+5.123/z+x*5.123-z))"
-"((x+5.123/z/x-5.123/z))"
-"((x+y*7.123*x+y+7.123))"
-"((x+y*7.123-x*y/7.123))"
-"((x+y+7.123+x-y*7.123))"
-"((x+y+7.123/x/y+7.123))"
-"((x+y-7.123*x*y*7.123))"
-"((x+y-7.123-x*y+7.123))"
-"((x+y/7.123+x*y-7.123))"
-"((x+y/7.123/x-y/7.123))"
-"((x-((3.123*z)*9.123)))"
-"((x-((3.123*z)/9.123)))"
-"((x-((3.123+z)*9.123)))"
-"((x-((3.123+z)/9.123)))"
-"((x-((3.123-z)*9.123)))"
-"((x-((3.123-z)/9.123)))"
-"((x-((3.123/z)*9.123)))"
-"((x-((3.123/z)/9.123)))"
-"((x-(3.123*(z/9.123))))"
-"((x-(3.123/(z*9.123))))"
-"((x-(5.123*(7.123/w))))"
-"((x-(5.123/(7.123*w))))"
-"((x-5.123*z-x+5.123-z))"
-"((x-5.123*z-x/5.123/z))"
-"((x-5.123+z*x+5.123-z))"
-"((x-5.123-z/x+5.123/z))"
-"((x-5.123/z+x+5.123*z))"
-"((x-5.123/z+x/5.123-z))"
-"((x-y*7.123-x+y-7.123))"
-"((x-y*7.123-x/y/7.123))"
-"((x-y+7.123*x+y-7.123))"
-"((x-y-7.123/x+y/7.123))"
-"((x-y/7.123+x+y*7.123))"
-"((x-y/7.123+x/y-7.123))"
-"((x/(3.123+(z*9.123))))"
-"((x/(3.123-(z*9.123))))"
-"((x/(5.123+(7.123*w))))"
-"((x/(5.123-(7.123*w))))"
-"((x/5.123*z+x-5.123-z))"
-"((x/5.123*z-x*5.123*z))"
-"((x/5.123+z*x*5.123/z))"
-"((x/5.123+z*x/5.123/z))"
-"((x/5.123-z/x*5.123+z))"
-"((x/5.123-z/x-5.123+z))"
-"((x/5.123/z+x*5.123-z))"
-"((x/5.123/z-x-5.123/z))"
-"((x/y*7.123+x-y-7.123))"
-"((x/y*7.123-x*y*7.123))"
-"((x/y+7.123*x*y/7.123))"
-"((x/y+7.123*x/y/7.123))"
-"((x/y-7.123/x*y+7.123))"
-"((x/y-7.123/x-y+7.123))"
-"((x/y/7.123+x*y-7.123))"
-"((x/y/7.123-x-y/7.123))"
-"(10+sqrt(a))<(sin(8)^2)"
-"(a^2.1/3.3)+(b^2.1/3.3)"
-"(a^2/sin(2*pi/b))-a/2.2"
-"1.1*a^2+2.2*b^3+3.3*c^4"
-"1.1*x^2+2.2*1.1/y^3-2.2"
-"1.1*x^2+2.2+1.1/y^3-2.2"
-"1.1*x^2+2.2-1.1/y^3-2.2"
-"tan(((b/cos((a-b)))+e))"
-"x*y*z-x*y/z*x-y/z*x-y/z"
-"x*y/z-x*y*z*x/y+z*x/y-z"
-"x+y/z+x+y*z+x+y-z-x+y+z"
-"x-y*z+x+y*z+x+y/z-x+y+z"
-"x-y/z*x-y*z-x*y+z+x*y-z"
-"x/y*z*x/y/z-x*y+z+x*y-z"
-"x/y/z+x/y*z+x/y+z-x/y-z"
-"(((((a+a)-1.83)*b)/a)+b)"
-"((((0.50-(b-a))-b)*a)+b)"
-"((((pi/b)*2.66)*0.31)/pi)"
-"((((sin(b)*1.61)/a)/a)*a)"
-"(((tan((3.80/b))+b)+a)+e)"
-"((1.1+a)/2.2)+(b-(3.3*c))"
-"((7.7*(2.2/3.3))-4.4)^2.1"
-"((b+(((1.56+pi)*b)-a))+b)"
-"((cos(cos(tan(pi)))+a)/a)"
-"(cos((((e+e)+3.21)/b))-a)"
-"((((((x))))))((((((x))))))"
-"(((((b-1.19)+a)+pi)+a)-pi)"
-"((sin(sin((b+b)))/1.06)-a)"
-"((tan(((3.70*pi)-a))*b)-b)"
-"[[[[[[x]]]]]][[[[[[x]]]]]]"
-"{{{{{{x}}}}}}{{{{{{x}}}}}}"
-"((2/3)-(3/2))*((3/2)-(2/3))"
-"((3.123*y*z+w+3.123+y/z/w))"
-"((3.123*y*z-w*3.123-y*z/w))"
-"((3.123*y*z-w/3.123+y+z*w))"
-"((3.123*y+z*w*3.123/y-z+w))"
-"((3.123*y+z*w-3.123+y-z-w))"
-"((3.123*y+z+w*3.123/y/z-w))"
-"((3.123*y+z-w+3.123/y*z-w))"
-"((3.123*y+z/w/3.123+y*z-w))"
-"((3.123*y-z*w*3.123+y+z-w))"
-"((3.123*y-z*w/3.123*y+z+w))"
-"((3.123*y-z+w+3.123/y/z+w))"
-"((3.123*y-z-w*3.123-y*z/w))"
-"((3.123*y-z/w+3.123+y/z-w))"
-"((3.123*y/z+w*3.123-y+z/w))"
-"((3.123*y/z-w+3.123-y-z/w))"
-"((3.123*y/z-w/3.123-y-z*w))"
-"((3.123+y*z*w+3.123-y/z*w))"
-"((3.123+y*z*w-3.123/y/z-w))"
-"((3.123+y*z-w*3.123-y/z/w))"
-"((3.123+y*z-w-3.123+y-z*w))"
-"((3.123+y*z/w+3.123*y/z-w))"
-"((3.123+y*z/w+3.123-y/z/w))"
-"((3.123+y*z/w-3.123+y+z/w))"
-"((3.123+y+z*w*3.123/y+z-w))"
-"((3.123+y+z*w-3.123/y*z-w))"
-"((3.123+y+z-w-3.123-y/z*w))"
-"((3.123+y+z/w+3.123*y*z-w))"
-"((3.123+y+z/w/3.123*y-z-w))"
-"((3.123+y-z*w+3.123/y+z+w))"
-"((3.123+y-z*w/3.123-y/z-w))"
-"((3.123+y-z-w+3.123+y/z/w))"
-"((3.123+y-z/w*3.123+y/z-w))"
-"((3.123+y-z/w-3.123*y+z-w))"
-"((3.123+y/z*w*3.123+y*z-w))"
-"((3.123+y/z*w*3.123+y+z*w))"
-"((3.123+y/z*w+3.123*y+z/w))"
-"((3.123+y/z+w*3.123*y+z*w))"
-"((3.123+y/z-w-3.123-y+z*w))"
-"((3.123+y/z-w/3.123-y*z*w))"
-"((3.123+y/z/w/3.123*y-z*w))"
-"((3.123+y/z/w/3.123+y-z/w))"
-"((3.123-y*z*w*3.123+y*z*w))"
-"((3.123-y*z*w*3.123/y-z*w))"
-"((3.123-y*z+w*3.123/y*z+w))"
-"((3.123-y*z-w*3.123+y-z/w))"
-"((3.123-y*z/w-3.123-y/z*w))"
-"((3.123-y*z/w-3.123/y+z*w))"
-"((3.123-y*z/w/3.123+y/z+w))"
-"((3.123-y+z*w*3.123/y+z/w))"
-"((3.123-y+z*w+3.123/y-z-w))"
-"((3.123-y+z+w-3.123*y*z+w))"
-"((3.123-y+z/w-3.123*y-z/w))"
-"((3.123-y+z/w-3.123+y*z*w))"
-"((3.123-y-z*w*3.123+y*z/w))"
-"((3.123-y-z*w+3.123/y-z*w))"
-"((3.123-y-z+w+3.123-y*z/w))"
-"((3.123-y-z/w/3.123+y/z*w))"
-"((3.123-y-z/w/3.123/y-z/w))"
-"((3.123-y/z*w+3.123*y-z*w))"
-"((3.123-y/z*w+3.123+y-z*w))"
-"((3.123-y/z*w/3.123-y*z-w))"
-"((3.123-y/z+w/3.123*y/z+w))"
-"((3.123-y/z-w*3.123-y+z/w))"
-"((3.123-y/z/w-3.123+y*z/w))"
-"((3.123-y/z/w/3.123*y+z*w))"
-"((3.123/y*z+w-3.123+y/z*w))"
-"((3.123/y*z-w+3.123+y+z/w))"
-"((3.123/y*z-w/3.123-y*z*w))"
-"((3.123/y+z*w+3.123-y/z+w))"
-"((3.123/y+z+w/3.123*y*z-w))"
-"((3.123/y+z-w-3.123+y*z/w))"
-"((3.123/y+z/w-3.123-y-z+w))"
-"((3.123/y-z*w-3.123*y-z+w))"
-"((3.123/y-z*w/3.123-y*z+w))"
-"((3.123/y-z+w-3.123*y/z-w))"
-"((3.123/y-z-w/3.123+y/z*w))"
-"((3.123/y-z/w*3.123-y+z+w))"
-"((3.123/y/z+w/3.123-y+z*w))"
-"((3.123/y/z-w+3.123-y-z/w))"
-"((3.123/y/z-w-3.123-y-z*w))"
-"((cos(((1.12+b)+pi))+pi)+b)"
-"((x*5.123*z+w+x+5.123/z/w))"
-"((x*5.123*z-w*x-5.123*z/w))"
-"((x*5.123*z-w/x+5.123+z*w))"
-"((x*5.123+z*w*x/5.123-z+w))"
-"((x*5.123+z*w-x+5.123-z-w))"
-"((x*5.123+z+w*x/5.123/z-w))"
-"((x*5.123+z-w+x/5.123*z-w))"
-"((x*5.123+z/w/x+5.123*z-w))"
-"((x*5.123-z*w*x+5.123+z-w))"
-"((x*5.123-z*w/x*5.123+z+w))"
-"((x*5.123-z+w+x/5.123/z+w))"
-"((x*5.123-z-w*x-5.123*z/w))"
-"((x*5.123-z/w+x+5.123/z-w))"
-"((x*5.123/z+w*x-5.123+z/w))"
-"((x*5.123/z-w+x-5.123-z/w))"
-"((x*5.123/z-w/x-5.123-z*w))"
-"((x*y*7.123+w+x+y/7.123/w))"
-"((x*y*7.123-w*x-y*7.123/w))"
-"((x*y*7.123-w/x+y+7.123*w))"
-"((x*y*z+9.123+x+y/z/9.123))"
-"((x*y*z+x+y/z+x+y+z+x-y*z))"
-"((x*y*z-9.123*x-y*z/9.123))"
-"((x*y*z-9.123/x+y+z*9.123))"
-"((x*y*z-x/y*z-x/y/z-x-y/z))"
-"((x*y+7.123*w*x/y-7.123+w))"
-"((x*y+7.123*w-x+y-7.123-w))"
-"((x*y+7.123+w*x/y/7.123-w))"
-"((x*y+7.123-w+x/y*7.123-w))"
-"((x*y+7.123/w/x+y*7.123-w))"
-"((x*y+z*9.123*x/y-z+9.123))"
-"((x*y+z*9.123-x+y-z-9.123))"
-"((x*y+z*x-y*z*x+y*z*x+y+z))"
-"((x*y+z*x/y*z*x/y+z*x*y/z))"
-"((x*y+z+9.123*x/y/z-9.123))"
-"((x*y+z-9.123+x/y*z-9.123))"
-"((x*y+z/9.123/x+y*z-9.123))"
-"((x*y-7.123*w*x+y+7.123-w))"
-"((x*y-7.123*w/x*y+7.123+w))"
-"((x*y-7.123+w+x/y/7.123+w))"
-"((x*y-7.123-w*x-y*7.123/w))"
-"((x*y-7.123/w+x+y/7.123-w))"
-"((x*y-z*9.123*x+y+z-9.123))"
-"((x*y-z*9.123/x*y+z+9.123))"
-"((x*y-z+9.123+x/y/z+9.123))"
-"((x*y-z-9.123*x-y*z/9.123))"
-"((x*y-z/9.123+x+y/z-9.123))"
-"((x*y-z/x+y*z/x+y/z/x-y/z))"
-"((x*y-z/x/y+z/x/y-z/x-y+z))"
-"((x*y/7.123+w*x-y+7.123/w))"
-"((x*y/7.123-w+x-y-7.123/w))"
-"((x*y/7.123-w/x-y-7.123*w))"
-"((x*y/z+9.123*x-y+z/9.123))"
-"((x*y/z+x/y-z+x/y*z+x-y-z))"
-"((x*y/z-9.123+x-y-z/9.123))"
-"((x*y/z-9.123/x-y-z*9.123))"
-"((x*y/z-x+y+z-x+y-z-x*y+z))"
-"((x+5.123*z*w+x-5.123/z*w))"
-"((x+5.123*z*w-x/5.123/z-w))"
-"((x+5.123*z-w*x-5.123/z/w))"
-"((x+5.123*z-w-x+5.123-z*w))"
-"((x+5.123*z/w+x*5.123/z-w))"
-"((x+5.123*z/w+x-5.123/z/w))"
-"((x+5.123*z/w-x+5.123+z/w))"
-"((x+5.123+z*w*x/5.123+z-w))"
-"((x+5.123+z*w-x/5.123*z-w))"
-"((x+5.123+z-w-x-5.123/z*w))"
-"((x+5.123+z/w+x*5.123*z-w))"
-"((x+5.123+z/w/x*5.123-z-w))"
-"((x+5.123-z*w+x/5.123+z+w))"
-"((x+5.123-z*w/x-5.123/z-w))"
-"((x+5.123-z-w+x+5.123/z/w))"
-"((x+5.123-z/w*x+5.123/z-w))"
-"((x+5.123-z/w-x*5.123+z-w))"
-"((x+5.123/z*w*x+5.123*z-w))"
-"((x+5.123/z*w*x+5.123+z*w))"
-"((x+5.123/z*w+x*5.123+z/w))"
-"((x+5.123/z+w*x*5.123+z*w))"
-"((x+5.123/z-w-x-5.123+z*w))"
-"((x+5.123/z-w/x-5.123*z*w))"
-"((x+5.123/z/w/x*5.123-z*w))"
-"((x+5.123/z/w/x+5.123-z/w))"
-"((x+y*7.123*w+x-y/7.123*w))"
-"((x+y*7.123*w-x/y/7.123-w))"
-"((x+y*7.123-w*x-y/7.123/w))"
-"((x+y*7.123-w-x+y-7.123*w))"
-"((x+y*7.123/w+x*y/7.123-w))"
-"((x+y*7.123/w+x-y/7.123/w))"
-"((x+y*7.123/w-x+y+7.123/w))"
-"((x+y*z*9.123+x-y/z*9.123))"
-"((x+y*z*9.123-x/y/z-9.123))"
-"((x+y*z*x+y+z*x-y/z+x/y-z))"
-"((x+y*z-9.123*x-y/z/9.123))"
-"((x+y*z-9.123-x+y-z*9.123))"
-"((x+y*z-x*y/z-x*y*z-x/y*z))"
-"((x+y*z/9.123+x*y/z-9.123))"
-"((x+y*z/9.123+x-y/z/9.123))"
-"((x+y*z/9.123-x+y+z/9.123))"
-"((x+y+7.123*w*x/y+7.123-w))"
-"((x+y+7.123*w-x/y*7.123-w))"
-"((x+y+7.123-w-x-y/7.123*w))"
-"((x+y+7.123/w+x*y*7.123-w))"
-"((x+y+7.123/w/x*y-7.123-w))"
-"((x+y+z*9.123*x/y+z-9.123))"
-"((x+y+z*9.123-x/y*z-9.123))"
-"((x+y+z+x-y*z+x*y+z*x/y*z))"
-"((x+y+z-9.123-x-y/z*9.123))"
-"((x+y+z/9.123+x*y*z-9.123))"
-"((x+y+z/9.123/x*y-z-9.123))"
-"((x+y+z/x/y+z/x/y-z/x*y+z))"
-"((x+y-7.123*w+x/y+7.123+w))"
-"((x+y-7.123*w/x-y/7.123-w))"
-"((x+y-7.123-w+x+y/7.123/w))"
-"((x+y-7.123/w*x+y/7.123-w))"
-"((x+y-7.123/w-x*y+7.123-w))"
-"((x+y-z*9.123+x/y+z+9.123))"
-"((x+y-z*9.123/x-y/z-9.123))"
-"((x+y-z*x*y*z*x/y+z*x/y/z))"
-"((x+y-z-9.123+x+y/z/9.123))"
-"((x+y-z-x*y+z-x*y-z/x/y+z))"
-"((x+y-z/9.123*x+y/z-9.123))"
-"((x+y-z/9.123-x*y+z-9.123))"
-"((x+y/7.123*w*x+y*7.123-w))"
-"((x+y/7.123*w*x+y+7.123*w))"
-"((x+y/7.123*w+x*y+7.123/w))"
-"((x+y/7.123+w*x*y+7.123*w))"
-"((x+y/7.123-w-x-y+7.123*w))"
-"((x+y/7.123-w/x-y*7.123*w))"
-"((x+y/7.123/w/x*y-7.123*w))"
-"((x+y/7.123/w/x+y-7.123/w))"
-"((x+y/z*9.123*x+y*z-9.123))"
-"((x+y/z*9.123*x+y+z*9.123))"
-"((x+y/z*9.123+x*y+z/9.123))"
-"((x+y/z+9.123*x*y+z*9.123))"
-"((x+y/z+x*y-z+x*y/z+x/y-z))"
-"((x+y/z-9.123-x-y+z*9.123))"
-"((x+y/z-9.123/x-y*z*9.123))"
-"((x+y/z/9.123/x*y-z*9.123))"
-"((x+y/z/9.123/x+y-z/9.123))"
-"((x+y/z/x-y/z/x-y*z-x/y/z))"
-"((x-5.123*z*w*x+5.123*z*w))"
-"((x-5.123*z*w*x/5.123-z*w))"
-"((x-5.123*z+w*x/5.123*z+w))"
-"((x-5.123*z-w*x+5.123-z/w))"
-"((x-5.123*z/w-x-5.123/z*w))"
-"((x-5.123*z/w-x/5.123+z*w))"
-"((x-5.123*z/w/x+5.123/z+w))"
-"((x-5.123+z*w*x/5.123+z/w))"
-"((x-5.123+z*w+x/5.123-z-w))"
-"((x-5.123+z+w-x*5.123*z+w))"
-"((x-5.123+z/w-x*5.123-z/w))"
-"((x-5.123+z/w-x+5.123*z*w))"
-"((x-5.123-z*w*x+5.123*z/w))"
-"((x-5.123-z*w+x/5.123-z*w))"
-"((x-5.123-z+w+x-5.123*z/w))"
-"((x-5.123-z/w/x+5.123/z*w))"
-"((x-5.123-z/w/x/5.123-z/w))"
-"((x-5.123/z*w+x*5.123-z*w))"
-"((x-5.123/z*w+x+5.123-z*w))"
-"((x-5.123/z*w/x-5.123*z-w))"
-"((x-5.123/z+w/x*5.123/z+w))"
-"((x-5.123/z-w*x-5.123+z/w))"
-"((x-5.123/z/w-x+5.123*z/w))"
-"((x-5.123/z/w/x*5.123+z*w))"
-"((x-y*7.123*w*x+y*7.123*w))"
-"((x-y*7.123*w*x/y-7.123*w))"
-"((x-y*7.123+w*x/y*7.123+w))"
-"((x-y*7.123-w*x+y-7.123/w))"
-"((x-y*7.123/w-x-y/7.123*w))"
-"((x-y*7.123/w-x/y+7.123*w))"
-"((x-y*7.123/w/x+y/7.123+w))"
-"((x-y*z*9.123*x+y*z*9.123))"
-"((x-y*z*9.123*x/y-z*9.123))"
-"((x-y*z+9.123*x/y*z+9.123))"
-"((x-y*z-9.123*x+y-z/9.123))"
-"((x-y*z-x+y-z-x+y+z/x/y+z))"
-"((x-y*z-x/y/z-x/y*z-x*y*z))"
-"((x-y*z/9.123-x-y/z*9.123))"
-"((x-y*z/9.123-x/y+z*9.123))"
-"((x-y*z/9.123/x+y/z+9.123))"
-"((x-y+7.123*w*x/y+7.123/w))"
-"((x-y+7.123*w+x/y-7.123-w))"
-"((x-y+7.123+w-x*y*7.123+w))"
-"((x-y+7.123/w-x*y-7.123/w))"
-"((x-y+7.123/w-x+y*7.123*w))"
-"((x-y+z*9.123*x/y+z/9.123))"
-"((x-y+z*9.123+x/y-z-9.123))"
-"((x-y+z*x+y-z*x+y/z+x*y-z))"
-"((x-y+z+9.123-x*y*z+9.123))"
-"((x-y+z/9.123-x*y-z/9.123))"
-"((x-y+z/9.123-x+y*z*9.123))"
-"((x-y-7.123*w*x+y*7.123/w))"
-"((x-y-7.123*w+x/y-7.123*w))"
-"((x-y-7.123+w+x-y*7.123/w))"
-"((x-y-7.123/w/x+y/7.123*w))"
-"((x-y-7.123/w/x/y-7.123/w))"
-"((x-y-z*9.123*x+y*z/9.123))"
-"((x-y-z*9.123+x/y-z*9.123))"
-"((x-y-z+9.123+x-y*z/9.123))"
-"((x-y-z/9.123/x+y/z*9.123))"
-"((x-y-z/9.123/x/y-z/9.123))"
-"((x-y-z/x+y/z/x+y*z-x*y/z))"
-"((x-y/7.123*w+x*y-7.123*w))"
-"((x-y/7.123*w+x+y-7.123*w))"
-"((x-y/7.123*w/x-y*7.123-w))"
-"((x-y/7.123+w/x*y/7.123+w))"
-"((x-y/7.123-w*x-y+7.123/w))"
-"((x-y/7.123/w-x+y*7.123/w))"
-"((x-y/7.123/w/x*y+7.123*w))"
-"((x-y/z*9.123+x*y-z*9.123))"
-"((x-y/z*9.123+x+y-z*9.123))"
-"((x-y/z*9.123/x-y*z-9.123))"
-"((x-y/z+9.123/x*y/z+9.123))"
-"((x-y/z+x+y*z+x+y-z*x*y*z))"
-"((x-y/z+x/y-z+x/y/z+x*y-z))"
-"((x-y/z-9.123*x-y+z/9.123))"
-"((x-y/z/9.123-x+y*z/9.123))"
-"((x-y/z/9.123/x*y+z*9.123))"
-"((x/5.123*z+w-x+5.123/z*w))"
-"((x/5.123*z-w+x+5.123+z/w))"
-"((x/5.123*z-w/x-5.123*z*w))"
-"((x/5.123+z*w+x-5.123/z+w))"
-"((x/5.123+z+w/x*5.123*z-w))"
-"((x/5.123+z-w-x+5.123*z/w))"
-"((x/5.123+z/w-x-5.123-z+w))"
-"((x/5.123-z*w-x*5.123-z+w))"
-"((x/5.123-z*w/x-5.123*z+w))"
-"((x/5.123-z+w-x*5.123/z-w))"
-"((x/5.123-z-w/x+5.123/z*w))"
-"((x/5.123-z/w*x-5.123+z+w))"
-"((x/5.123/z+w/x-5.123+z*w))"
-"((x/5.123/z-w+x-5.123-z/w))"
-"((x/5.123/z-w-x-5.123-z*w))"
-"((x/y*7.123+w-x+y/7.123*w))"
-"((x/y*7.123-w+x+y+7.123/w))"
-"((x/y*7.123-w/x-y*7.123*w))"
-"((x/y*z+9.123-x+y/z*9.123))"
-"((x/y*z+x-y-z+x-y/z+x+y*z))"
-"((x/y*z-9.123+x+y+z/9.123))"
-"((x/y*z-9.123/x-y*z*9.123))"
-"((x/y*z-x*y*z-x*y/z-x+y+z))"
-"((x/y+7.123*w+x-y/7.123+w))"
-"((x/y+7.123+w/x*y*7.123-w))"
-"((x/y+7.123-w-x+y*7.123/w))"
-"((x/y+7.123/w-x-y-7.123+w))"
-"((x/y+z*9.123+x-y/z+9.123))"
-"((x/y+z*x*y/z*x-y+z*x+y-z))"
-"((x/y+z*x/y/z*x*y+z*x-y*z))"
-"((x/y+z+9.123/x*y*z-9.123))"
-"((x/y+z-9.123-x+y*z/9.123))"
-"((x/y+z/9.123-x-y-z+9.123))"
-"((x/y-7.123*w-x*y-7.123+w))"
-"((x/y-7.123*w/x-y*7.123+w))"
-"((x/y-7.123+w-x*y/7.123-w))"
-"((x/y-7.123-w/x+y/7.123*w))"
-"((x/y-7.123/w*x-y+7.123+w))"
-"((x/y-z*9.123-x*y-z+9.123))"
-"((x/y-z*9.123/x-y*z+9.123))"
-"((x/y-z+9.123-x*y/z-9.123))"
-"((x/y-z-9.123/x+y/z*9.123))"
-"((x/y-z/9.123*x-y+z+9.123))"
-"((x/y-z/x*y+z/x*y-z/x+y*z))"
-"((x/y-z/x-y+z/x-y-z/x+y/z))"
-"((x/y/7.123+w/x-y+7.123*w))"
-"((x/y/7.123-w+x-y-7.123/w))"
-"((x/y/7.123-w-x-y-7.123*w))"
-"((x/y/z+9.123/x-y+z*9.123))"
-"((x/y/z+x*y-z+x*y*z+x+y/z))"
-"((x/y/z-9.123+x-y-z/9.123))"
-"((x/y/z-9.123-x-y-z*9.123))"
-"((x/y/z-x-y/z-x-y*z-x+y-z))"
-"(abs((x-y)/z)*exp((x-y)*z))"
-"(abs((x/y)+z)*exp((x/y)-z))"
-"(abs(x-(y/z))*exp(x-(y/z)))"
-"(abs(x/(y*z))*exp(x/(y/z)))"
-"(sin((x*y)+z)+cos((x*y)-z))"
-"(sin((x+y)/z)+cos((x+y)*z))"
-"(sin((x/y)/z)+cos((x/y)*z))"
-"(sin(x*(y+z))+cos(x*(y-z)))"
-"(sin(x-(y*z))+cos(x+(y*z)))"
-"4.4*a^3+3.3*a^2+2.2*a^1+1.1"
-"abs(sin(sqrt(a*a+b*b))*255)"
-"abs(sin(sqrt(a^2+b^2))*255)"
-"(((b*(((0.91/b)+b)+a))*b)/b)"
-"(1.123*cos(a)-3.1235)/3.1238"
-"(1.123*sin(a)+2.1234)/3.1237"
-"(1.123*tan(a)+2.1236)/3.1239"
-"sin((1+2/2*3)*4^5)+cos(6*pi)"
-"sqrt(1-sin(2*a)+cos(pi/b)/3)"
-"(((((pi-2.92)/a)/pi)+3.68)*b)"
-"((((x*y)*z)-w)/((x+y)+(z*w)))"
-"((((x*y)/z)-w)/((x-y)-(z*w)))"
-"((((x+y)*z)-w)-((x+y)-(z*w)))"
-"((((x+y)/z)-w)-((x-y)+(z*w)))"
-"((((x-y)*z)-w)*((x+y)-(z/w)))"
-"((((x-y)/z)-w)*((x-y)+(z/w)))"
-"((((x/y)*z)-w)+((x+y)+(z/w)))"
-"((((x/y)/z)-w)+((x-y)-(z/w)))"
-"(((3.123*y)*z)-(3.123/(y*z)))"
-"(((3.123*y)+z)*((3.123/y)*z))"
-"(((3.123*y)-z)/(3.123/(y+z)))"
-"(((3.123*y)/z)+(3.123/(y-z)))"
-"(((3.123+y)*z)-((3.123*y)/z))"
-"(((3.123+y)+z)/((3.123/y)+z))"
-"(((3.123+y)-z)*((3.123*y)*z))"
-"(((3.123+y)/z)+((3.123*y)-z))"
-"(((3.123-y)*z)-((3.123/y)/z))"
-"(((3.123-y)/z)+((3.123/y)-z))"
-"(((3.123/y)*z)-(3.123*(y*z)))"
-"(((3.123/y)+z)*(3.123/(y/z)))"
-"(((3.123/y)-z)/(3.123*(y+z)))"
-"(((3.123/y)/z)+(3.123*(y-z)))"
-"(((x*5.123)*z)-(x/(5.123*z)))"
-"(((x*5.123)+z)*((x/5.123)*z))"
-"(((x*5.123)-z)/(x/(5.123+z)))"
-"(((x*5.123)/z)+(x/(5.123-z)))"
-"(((x*y)*(z+w))+(x+((y/z)/w)))"
-"(((x*y)*(z-w))*(x-((y*z)/w)))"
-"(((x*y)*7.123)-(x/(y*7.123)))"
-"(((x*y)+(z*w))-((x+y)-(z-w)))"
-"(((x*y)+(z+w))*((x/y)/(z-w)))"
-"(((x*y)+(z-w))+((x/y)*(z-w)))"
-"(((x*y)+(z/w))/((x+y)*(z-w)))"
-"(((x*y)+7.123)*((x/y)*7.123))"
-"(((x*y)-(z*w))*((x+y)+(z-w)))"
-"(((x*y)-(z+w))+((x/y)/(z+w)))"
-"(((x*y)-(z-w))*(x-(y*(z/w))))"
-"(((x*y)-(z/w))+((x+y)/(z-w)))"
-"(((x*y)-7.123)/(x/(y+7.123)))"
-"(((x*y)/(z+w))*(x-((y+z)/w)))"
-"(((x*y)/(z-w))+(x-((y-z)/w)))"
-"(((x*y)/7.123)+(x/(y-7.123)))"
-"(((x+5.123)*z)-((x*5.123)/z))"
-"(((x+5.123)+z)/((x/5.123)+z))"
-"(((x+5.123)-z)*((x*5.123)*z))"
-"(((x+5.123)/z)+((x*5.123)-z))"
-"(((x+y)*(z*w))+(x-(y/(z*w))))"
-"(((x+y)*(z-w))*((x-y)/(z/w)))"
-"(((x+y)*(z/w))-(x+((y+z)/w)))"
-"(((x+y)*7.123)-((x*y)/7.123))"
-"(((x+y)+(z*w))*((x/y)+(z-w)))"
-"(((x+y)+(z-w))-((x-y)/(z*w)))"
-"(((x+y)+(z/w))/((x*y)-(z-w)))"
-"(((x+y)+7.123)/((x/y)+7.123))"
-"(((x+y)-(z*w))+((x/y)+(z+w)))"
-"(((x+y)-(z-w))+((x+y)/(z/w)))"
-"(((x+y)-(z/w))-((x*y)+(z-w)))"
-"(((x+y)-7.123)*((x*y)*7.123))"
-"(((x+y)/(z*w))*(x+((y+z)*w)))"
-"(((x+y)/(z-w))/((x-y)*(z*w)))"
-"(((x+y)/(z/w))/(x+((y-z)/w)))"
-"(((x+y)/7.123)+((x*y)-7.123))"
-"(((x-5.123)*z)-((x/5.123)/z))"
-"(((x-5.123)/z)+((x/5.123)-z))"
-"(((x-y)*(z*w))*(x+((y*z)*w)))"
-"(((x-y)*(z+w))*((x/y)*(z+w)))"
-"(((x-y)*(z/w))/(x+((y/z)+w)))"
-"(((x-y)*7.123)-((x/y)/7.123))"
-"(((x-y)+(z*w))+((x/y)-(z-w)))"
-"(((x-y)+(z+w))-((x*y)*(z+w)))"
-"(((x-y)+(z/w))-((x+y)*(z*w)))"
-"(((x-y)-(z*w))*((x+y)*(z/w)))"
-"(((x-y)-(z+w))+((x-y)*(z/w)))"
-"(((x-y)-(z/w))/((x+y)/(z*w)))"
-"(((x-y)/(z*w))+(x+((y-z)*w)))"
-"(((x-y)/(z+w))/((x*y)/(z+w)))"
-"(((x-y)/(z/w))-(x+((y*z)/w)))"
-"(((x-y)/7.123)+((x/y)-7.123))"
-"(((x/5.123)*z)-(x*(5.123*z)))"
-"(((x/5.123)+z)*(x/(5.123/z)))"
-"(((x/5.123)-z)/(x*(5.123+z)))"
-"(((x/5.123)/z)+(x*(5.123-z)))"
-"(((x/y)*(z+w))-(x+((y/z)*w)))"
-"(((x/y)*(z-w))/(x-((y*z)*w)))"
-"(((x/y)*7.123)-(x*(y*7.123)))"
-"(((x/y)+(z+w))/((x*y)*(z-w)))"
-"(((x/y)+(z-w))-(x+(y*(z/w))))"
-"(((x/y)+(z/w))-((x-y)-(z+w)))"
-"(((x/y)+7.123)*(x/(y/7.123)))"
-"(((x/y)-(z*w))/((x-y)*(z+w)))"
-"(((x/y)-(z+w))-((x*y)/(z-w)))"
-"(((x/y)-(z-w))/(x+(y/(z*w))))"
-"(((x/y)-(z/w))*((x-y)+(z+w)))"
-"(((x/y)-7.123)/(x*(y+7.123)))"
-"(((x/y)/(z+w))/(x-((y+z)*w)))"
-"(((x/y)/(z-w))-(x-((y-z)*w)))"
-"(((x/y)/7.123)+(x*(y-7.123)))"
-"((1.1*x^2+2.2)*(1.1/y^3-2.2))"
-"((1.1*x^2+2.2)+(1.1/y^3-2.2))"
-"((1.1*x^2+2.2)-(1.1/y^3-2.2))"
-"((3.123*(y*z))+(3.123+(y/z)))"
-"((3.123*(y+z))*(3.123-(y*z)))"
-"((3.123*(y-z))/(3.123+(y*z)))"
-"((3.123*(y/z))-(3.123+(y+z)))"
-"((3.123+(y*z))*((3.123+y)+z))"
-"((3.123+(y+z))+((3.123-y)*z))"
-"((3.123+(y-z))-((3.123*y)+z))"
-"((3.123+(y/z))/((3.123-y)/z))"
-"((3.123-(y*z))-((3.123+y)-z))"
-"((3.123-(y+z))*(3.123+(y-z)))"
-"((3.123-(y-z))/((3.123+y)/z))"
-"((3.123-(y/z))+((3.123+y)*z))"
-"((3.123/(y*z))+(3.123-(y-z)))"
-"((3.123/(y+z))*(3.123*(y/z)))"
-"((3.123/(y-z))/(3.123-(y+z)))"
-"((3.123/(y/z))-(3.123-(y/z)))"
-"((x*(5.123*z))+(x+(5.123/z)))"
-"((x*(5.123+z))*(x-(5.123*z)))"
-"((x*(5.123-z))/(x+(5.123*z)))"
-"((x*(5.123/z))-(x+(5.123+z)))"
-"((x*(y*7.123))+(x+(y/7.123)))"
-"((x*(y+(z*w)))*((x/y)-(z+w)))"
-"((x*(y+7.123))*(x-(y*7.123)))"
-"((x*(y-(z*w)))/((x*y)+(z+w)))"
-"((x*(y-7.123))/(x+(y*7.123)))"
-"((x*(y/7.123))-(x+(y+7.123)))"
-"((x+((y*z)*w))-(((x/y)/z)-w))"
-"((x+((y*z)/w))+(((x*y)/z)-w))"
-"((x+((y+z)*w))-(((x/y)*z)-w))"
-"((x+((y+z)/w))+(((x*y)*z)-w))"
-"((x+((y-z)*w))/(((x-y)/z)-w))"
-"((x+((y-z)/w))*(((x+y)/z)-w))"
-"((x+((y/z)*w))+((x*y)+(z/w)))"
-"((x+((y/z)+w))*((x*y)+(z*w)))"
-"((x+((y/z)/w))/((x*y)-(z*w)))"
-"((x+(5.123*z))*((x+5.123)+z))"
-"((x+(5.123+z))+((x-5.123)*z))"
-"((x+(5.123-z))-((x*5.123)+z))"
-"((x+(5.123/z))/((x-5.123)/z))"
-"((x+(y*(z/w)))+(x-((y/z)/w)))"
-"((x+(y*7.123))*((x+y)+7.123))"
-"((x+(y+7.123))+((x-y)*7.123))"
-"((x+(y-7.123))-((x*y)+7.123))"
-"((x+(y/(z*w)))*(((x+y)*z)-w))"
-"((x+(y/7.123))/((x-y)/7.123))"
-"((x-((y*z)*w))*(x/(y-(z*w))))"
-"((x-((y*z)/w))-(x/(y+(z*w))))"
-"((x-((y+z)*w))*((x/y)+(z/w)))"
-"((x-((y+z)/w))-((x*y)-(z/w)))"
-"((x-((y-z)*w))+((x/y)-(z*w)))"
-"((x-((y-z)/w))/((x/y)-(z/w)))"
-"((x-((y/z)*w))+(x*(y-(z*w))))"
-"((x-((y/z)/w))/(x*(y+(z*w))))"
-"((x-(5.123*z))-((x+5.123)-z))"
-"((x-(5.123+z))*(x+(5.123-z)))"
-"((x-(5.123-z))/((x+5.123)/z))"
-"((x-(5.123/z))+((x+5.123)*z))"
-"((x-(y*(z/w)))-(x-((y/z)*w)))"
-"((x-(y*7.123))-((x+y)-7.123))"
-"((x-(y+7.123))*(x+(y-7.123)))"
-"((x-(y-7.123))/((x+y)/7.123))"
-"((x-(y/(z*w)))/(((x-y)*z)-w))"
-"((x-(y/7.123))+((x+y)*7.123))"
-"((x/(5.123*z))+(x-(5.123-z)))"
-"((x/(5.123+z))*(x*(5.123/z)))"
-"((x/(5.123-z))/(x-(5.123+z)))"
-"((x/(5.123/z))-(x-(5.123/z)))"
-"((x/(y*7.123))+(x-(y-7.123)))"
-"((x/(y+(z*w)))+((x-y)/(z+w)))"
-"((x/(y+7.123))*(x*(y/7.123)))"
-"((x/(y-(z*w)))-((x*y)-(z+w)))"
-"((x/(y-7.123))/(x-(y+7.123)))"
-"((x/(y/7.123))-(x-(y/7.123)))"
-"(a/cos((sin((2.64+0.17))+b)))"
-"(((((1.98/b)/a)/1.61)*a)*2.12)"
-"((((((3.51+a)/b)+e)-1.31)+a)-a)"
-"((((((a-a)+3.73)+a)*a)/2.50)+e)"
-"((((((b*e)*b)/3.79)+a)/1.87)-a)"
-"((((((b/3.58)+e)-e)*2.90)/b)+a)"
-"(((((e+(a/2.87))+e)+2.73)-b)*b)"
-"(((((pi+1.95)-3.85)-a)*1.80)+b)"
-"((((tan((b/a))*e)+pi)+pi)*3.37)"
-"((b*tan(cos((b/((b*b)+b)))))+a)"
-"((b/tan((b*tan((b*pi)))))+0.42)"
-"(abs((2.2-y)/z)*exp((2.2-y)*z))"
-"(abs((2.2/y)+z)*exp((2.2/y)-z))"
-"(abs((x-3.3)/z)*exp((x-3.3)*z))"
-"(abs((x-y)/4.4)*exp((x-y)*4.4))"
-"(abs((x/3.3)+z)*exp((x/3.3)-z))"
-"(abs((x/y)+4.4)*exp((x/y)-4.4))"
-"(abs(2.2-(y/z))*exp(2.2-(y/z)))"
-"(abs(2.2/(y*z))*exp(2.2/(y/z)))"
-"(abs(x-(3.3/z))*exp(x-(3.3/z)))"
-"(abs(x-(y/4.4))*exp(x-(y/4.4)))"
-"(abs(x/(3.3*z))*exp(x/(3.3/z)))"
-"(abs(x/(y*4.4))*exp(x/(y/4.4)))"
-"(sin((2.2*y)+z)+cos((2.2*y)-z))"
-"(sin((2.2+y)/z)+cos((2.2+y)*z))"
-"(sin((2.2/y)/z)+cos((2.2/y)*z))"
-"(sin((x*3.3)+z)+cos((x*3.3)-z))"
-"(sin((x*y)+4.4)+cos((x*y)-4.4))"
-"(sin((x+3.3)/z)+cos((x+3.3)*z))"
-"(sin((x+y)/4.4)+cos((x+y)*4.4))"
-"(sin((x/3.3)/z)+cos((x/3.3)*z))"
-"(sin((x/y)/4.4)+cos((x/y)*4.4))"
-"(sin(2.2*(y+z))+cos(2.2*(y-z)))"
-"(sin(2.2-(y*z))+cos(2.2+(y*z)))"
-"(sin(x*(3.3+z))+cos(x*(3.3-z)))"
-"(sin(x*(y+4.4))+cos(x*(y-4.4)))"
-"(sin(x-(3.3*z))+cos(x+(3.3*z)))"
-"(sin(x-(y*4.4))+cos(x+(y*4.4)))"
-"1.1*a^2+2.2*b^3+3.3*c^4+3.3*a^5"
-"1.1234567*(2.1234567/3.1234567)"
-"2.2*y*z-2.2*y/z*2.2-y/z*2.2-y/z"
-"2.2*y/z-2.2*y*z*2.2/y+z*2.2/y-z"
-"2.2+y/z+2.2+y*z+2.2+y-z-2.2+y+z"
-"2.2-y*z+2.2+y*z+2.2+y/z-2.2+y+z"
-"2.2-y/z*2.2-y*z-2.2*y+z+2.2*y-z"
-"2.2/y*z*2.2/y/z-2.2*y+z+2.2*y-z"
-"2.2/y/z+2.2/y*z+2.2/y+z-2.2/y-z"
-"a^2.2^3.3-a^13.4894687605338489"
-"abs(sin(sqrt(a^2.1+b^2.1))*255)"
-"x*3.3*z-x*3.3/z*x-3.3/z*x-3.3/z"
-"x*3.3/z-x*3.3*z*x/3.3+z*x/3.3-z"
-"x*y*4.4-x*y/4.4*x-y/4.4*x-y/4.4"
-"x*y*z+w-x/y*z+w*x*y/z+w*x/y/z+w"
-"x*y+z-w-x/y+z-w*x*y-z-w*x/y-z-w"
-"x*y-z+w*x/y-z+w-x*y+z+w+x/y+z+w"
-"x*y-z/w*x/y+z/w-x/y-z/w+x/y-z*w"
-"x*y/4.4-x*y*4.4*x/y+4.4*x/y-4.4"
-"x*y/z-w+x/y/z-w+x*y*z-w-x/y*z-w"
-"x+3.3/z+x+3.3*z+x+3.3-z-x+3.3+z"
-"x+y*z*w+x+y*z/w+x+y/z*w-x+y/z/w"
-"x+y*z/w*x+y*z*w-x+y/z+w+x+y/z/w"
-"x+y+z/w+x+y+z*w+x+y-z/w-x+y-z*w"
-"x+y-z*w+x+y-z/w+x+y+z*w-x+y+z/w"
-"x+y-z-w-x+y-z-w*x+y+z-w*x+y+z-w"
-"x+y/4.4+x+y*4.4+x+y-4.4-x+y+4.4"
-"x+y/z*w-x-y+z/w*x-y+z*w*x-y-z/w"
-"x-3.3*z+x+3.3*z+x+3.3/z-x+3.3+z"
-"x-3.3/z*x-3.3*z-x*3.3+z+x*3.3-z"
-"x-y*4.4+x+y*4.4+x+y/4.4-x+y+4.4"
-"x-y+z*w*x-y+z/w-x-y-z*w+x-y-z/w"
-"x-y-z*w+x-y*z/w+x-y*z*w-x-y/z/w"
-"x-y-z+w+x-y-z+w+x-y+z+w-x-y+z+w"
-"x-y/4.4*x-y*4.4-x*y+4.4+x*y-4.4"
-"x-y/z*w*x+y*z-w-x-y*z-w+x*y*z-w"
-"x-y/z*w*x-y/z/w-x-y*z*w+x-y*z/w"
-"x/3.3*z*x/3.3/z-x*3.3+z+x*3.3-z"
-"x/3.3/z+x/3.3*z+x/3.3+z-x/3.3-z"
-"x/y*4.4*x/y/4.4-x*y+4.4+x*y-4.4"
-"x/y*z-w-x+y/z-w*x-y/z-w*x*y/z-w"
-"x/y+z*w-x/y-z*w*x*y+z*w*x*y-z*w"
-"x/y/4.4+x/y*4.4+x/y+4.4-x/y-4.4"
-"x/y/z-w+x*y+z*w+x*y-z*w-x*y+z/w"
-"(((e*(((b+2.82)+b)*pi))+a)+2.25)"
-"((e/(a*(tan((3.59-2.74))-b)))+b)"
-"1.1*a^2.01+2.2*b^3.01+3.3*c^4.01"
-"cos((pi/((((pi+pi)*b)+a)*0.95)))"
-"sqrt(1-sin(2.2*a)+cos(pi/b)/3.3)"
-"(((cos(((pi+1.46)+b))/b)+2.91)+b)"
-"(b-((((a+((b+3.21)+a))*b)*pi)*a))"
-"(sin((((((e+a)/a)-a)+a)*b))+1.23)"
-"cos((((b-(a*((e*2.28)*a)))-a)*a))"
-"sin((((((2.35/b)*b)*3.80)/b)-pi))"
-"(((((((b+a)+a)-a)+pi)/pi)/0.06)*a)"
-"(((((b-((pi-3.59)-e))-pi)+e)+a)/b)"
-"(((0.30/((pi*tan(b))/3.04))*b)*pi)"
-"(((e*(((a/0.64)/b)+2.61))*2.89)+b)"
-"(((((((b-0.28)+e)+b)+b)*b)/1.12)*e)"
-"((((((3.80/b)-pi)*0.61)-3.21)*b)-b)"
-"((a/(((((b*a)/3.17)-pi)/pi)+pi))+b)"
-"((x*y*z+w+x+y/z/w+x+y/z+w*x*y+z*w))"
-"((x*y*z-w*x-y*z/w*x-y-z*w+x/y-z*w))"
-"((x*y*z-w/x+y+z*w/x+y-z/w-x*y+z-w))"
-"((x*y+z*w*x/y-z+w*x*y-z+w+x/y/z+w))"
-"((x*y+z*w-x+y-z-w-x-y-z/w/x+y/z*w))"
-"((x*y+z+w*x/y/z-w*x*y/z-w+x-y-z/w))"
-"((x*y+z-w+x/y*z-w+x*y*z-w*x-y*z/w))"
-"((x*y+z/w/x+y*z-w/x+y+z-w-x-y/z*w))"
-"((x*y-z*w*x+y+z-w*x+y-z-w+x+y/z/w))"
-"((x*y-z*w/x*y+z+w/x/y-z+w-x*y/z-w))"
-"((x*y-z+w+x/y/z+w+x*y/z+w*x-y+z/w))"
-"((x*y-z-w*x-y*z/w*x+y*z/w+x-y/z/w))"
-"((x*y-z/w+x+y/z-w+x+y*z-w*x-y/z/w))"
-"((x*y/z+w*x-y+z/w*x+y/z*w+x*y+z/w))"
-"((x*y/z-w+x-y-z/w+x-y+z*w*x/y+z/w))"
-"((x*y/z-w/x-y-z*w/x-y+z/w-x+y*z*w))"
-"((x+y*z*w+x-y/z*w+x+y/z*w*x+y*z-w))"
-"((x+y*z*w-x/y/z-w-x*y/z-w/x-y-z*w))"
-"((x+y*z-w*x-y/z/w*x-y/z*w+x+y-z*w))"
-"((x+y*z-w-x+y-z*w-x*y-z*w/x*y+z+w))"
-"((x+y*z/w+x*y/z-w+x-y/z-w*x-y+z/w))"
-"((x+y*z/w+x-y/z/w+x-y*z*w*x/y-z*w))"
-"((x+y*z/w-x+y+z/w-x-y/z*w/x-y*z-w))"
-"((x+y+z*w*x/y+z-w*x*y+z-w+x/y*z-w))"
-"((x+y+z*w-x/y*z-w-x*y*z-w/x+y+z*w))"
-"((x+y+z-w-x-y/z*w-x+y/z/w/x+y-z/w))"
-"((x+y+z/w+x*y*z-w+x-y*z-w*x+y-z/w))"
-"((x+y+z/w/x*y-z-w/x/y+z-w-x+y*z/w))"
-"((x+y-z*w+x/y+z+w+x*y+z+w*x/y/z-w))"
-"((x+y-z*w/x-y/z-w/x+y/z-w-x-y+z*w))"
-"((x+y-z-w+x+y/z/w+x+y/z*w*x+y+z*w))"
-"((x+y-z/w*x+y/z-w*x/y*z-w+x+y+z/w))"
-"((x+y-z/w-x*y+z-w-x/y+z+w/x*y*z-w))"
-"((x+y/z*w*x+y*z-w*x-y/z*w+x*y-z*w))"
-"((x+y/z*w*x+y+z*w*x+y+z/w+x*y*z-w))"
-"((x+y/z*w+x*y+z/w+x*y-z*w*x+y+z-w))"
-"((x+y/z+w*x*y+z*w*x/y/z-w+x-y-z/w))"
-"((x+y/z-w-x-y+z*w-x+y+z/w/x*y-z-w))"
-"((x+y/z-w/x-y*z*w/x-y/z/w-x+y*z/w))"
-"((x+y/z/w/x*y-z*w/x*y+z*w-x+y-z-w))"
-"((x+y/z/w/x+y-z/w/x+y+z*w-x/y*z-w))"
-"((x-y*z*w*x+y*z*w*x+y*z/w+x*y/z-w))"
-"((x-y*z*w*x/y-z*w*x/y+z*w+x-y/z+w))"
-"((x-y*z+w*x/y*z+w*x*y*z+w+x+y/z/w))"
-"((x-y*z-w*x+y-z/w*x+y-z*w+x/y+z+w))"
-"((x-y*z/w-x-y/z*w-x-y/z/w/x*y+z*w))"
-"((x-y*z/w-x/y+z*w-x/y-z*w/x-y*z+w))"
-"((x-y*z/w/x+y/z+w/x+y*z*w-x/y/z-w))"
-"((x-y+z*w*x/y+z/w*x*y-z/w+x+y/z-w))"
-"((x-y+z*w+x/y-z-w+x*y-z-w*x-y*z/w))"
-"((x-y+z+w-x*y*z+w-x-y*z/w/x+y/z+w))"
-"((x-y+z/w-x*y-z/w-x*y+z/w/x+y*z-w))"
-"((x-y+z/w-x+y*z*w-x/y-z-w/x+y/z*w))"
-"((x-y-z*w*x+y*z/w*x+y*z*w+x-y/z*w))"
-"((x-y-z*w+x/y-z*w+x/y-z/w*x-y+z+w))"
-"((x-y-z+w+x-y*z/w+x-y*z*w*x+y*z*w))"
-"((x-y-z/w/x+y/z*w/x+y*z/w-x+y+z/w))"
-"((x-y-z/w/x/y-z/w/x/y+z/w-x-y-z+w))"
-"((x-y/z*w+x*y-z*w+x*y+z*w*x/y-z+w))"
-"((x-y/z*w+x+y-z*w+x+y-z/w*x+y/z-w))"
-"((x-y/z*w/x-y*z-w/x+y*z-w-x+y-z*w))"
-"((x-y/z+w/x*y/z+w/x/y*z+w-x+y/z*w))"
-"((x-y/z-w*x-y+z/w*x-y+z*w+x/y-z-w))"
-"((x-y/z/w-x+y*z/w-x+y-z*w/x-y/z-w))"
-"((x-y/z/w/x*y+z*w/x/y-z*w-x*y-z+w))"
-"((x/y*z+w-x+y/z*w-x+y/z/w/x*y-z*w))"
-"((x/y*z-w+x+y+z/w+x+y+z*w*x/y+z-w))"
-"((x/y*z-w/x-y*z*w/x-y*z/w-x/y+z*w))"
-"((x/y+z*w+x-y/z+w+x-y*z+w*x/y*z+w))"
-"((x/y+z+w/x*y*z-w/x/y/z-w-x-y-z*w))"
-"((x/y+z-w-x+y*z/w-x/y*z-w/x-y*z*w))"
-"((x/y+z/w-x-y-z+w-x+y/z-w/x-y*z*w))"
-"((x/y-z*w-x*y-z+w-x-y/z+w/x*y/z+w))"
-"((x/y-z*w/x-y*z+w/x-y+z+w-x*y*z+w))"
-"((x/y-z+w-x*y/z-w-x/y/z+w/x-y+z*w))"
-"((x/y-z-w/x+y/z*w/x-y*z/w-x-y/z*w))"
-"((x/y-z/w*x-y+z+w*x-y-z+w+x-y*z/w))"
-"((x/y/z+w/x-y+z*w/x-y+z/w-x*y-z/w))"
-"((x/y/z-w+x-y-z/w+x-y-z*w*x+y*z/w))"
-"((x/y/z-w-x-y-z*w-x-y-z/w/x/y-z/w))"
-"(0.1*a+1)*a+1.1-sin(a)-log(a)/a*3/4"
-"(1-2)+(2-3)+(3-4)+(4-5)+(5-6)+(6-7)"
-"(a-((((((pi-(a*pi))*b)/a)*b)+b)/a))"
-"5.5*a^4+4.4*a^3+3.3*a^2+2.2*a^1+1.1"
-"cos(((tan(tan(((b*b)*b)))+b)-0.28))"
-"(((((b/(((a+e)*a)-b))/1.89)-a)-b)+e)"
-"((0.09*((sin((1.11*pi))+1.15)-a))+b)"
-"(sin(sin(sin((3.62+((pi*e)+a)))))+a)"
-"tan(sin(((pi*tan(((a+0.06)-b)))*a)))"
-"((((3.123*y)*z)-w)/((3.123+y)+(z*w)))"
-"((((3.123*y)/z)-w)/((3.123-y)-(z*w)))"
-"((((3.123+y)*z)-w)-((3.123+y)-(z*w)))"
-"((((3.123+y)/z)-w)-((3.123-y)+(z*w)))"
-"((((3.123-y)*z)-w)*((3.123+y)-(z/w)))"
-"((((3.123-y)/z)-w)*((3.123-y)+(z/w)))"
-"((((3.123/y)*z)-w)+((3.123+y)+(z/w)))"
-"((((3.123/y)/z)-w)+((3.123-y)-(z/w)))"
-"((((x*5.123)*z)-w)/((x+5.123)+(z*w)))"
-"((((x*5.123)/z)-w)/((x-5.123)-(z*w)))"
-"((((x*y)*7.123)-w)/((x+y)+(7.123*w)))"
-"((((x*y)*z)-9.123)/((x+y)+(z*9.123)))"
-"((((x*y)/7.123)-w)/((x-y)-(7.123*w)))"
-"((((x*y)/z)-9.123)/((x-y)-(z*9.123)))"
-"((((x+5.123)*z)-w)-((x+5.123)-(z*w)))"
-"((((x+5.123)/z)-w)-((x-5.123)+(z*w)))"
-"((((x+y)*7.123)-w)-((x+y)-(7.123*w)))"
-"((((x+y)*z)-9.123)-((x+y)-(z*9.123)))"
-"((((x+y)/7.123)-w)-((x-y)+(7.123*w)))"
-"((((x+y)/z)-9.123)-((x-y)+(z*9.123)))"
-"((((x-5.123)*z)-w)*((x+5.123)-(z/w)))"
-"((((x-5.123)/z)-w)*((x-5.123)+(z/w)))"
-"((((x-y)*7.123)-w)*((x+y)-(7.123/w)))"
-"((((x-y)*z)-9.123)*((x+y)-(z/9.123)))"
-"((((x-y)/7.123)-w)*((x-y)+(7.123/w)))"
-"((((x-y)/z)-9.123)*((x-y)+(z/9.123)))"
-"((((x/5.123)*z)-w)+((x+5.123)+(z/w)))"
-"((((x/5.123)/z)-w)+((x-5.123)-(z/w)))"
-"((((x/y)*7.123)-w)+((x+y)+(7.123/w)))"
-"((((x/y)*z)-9.123)+((x+y)+(z/9.123)))"
-"((((x/y)/7.123)-w)+((x-y)-(7.123/w)))"
-"((((x/y)/z)-9.123)+((x-y)-(z/9.123)))"
-"(((3.123*y)*(z+w))+(3.123+((y/z)/w)))"
-"(((3.123*y)*(z-w))*(3.123-((y*z)/w)))"
-"(((3.123*y)+(z*w))-((3.123+y)-(z-w)))"
-"(((3.123*y)+(z+w))*((3.123/y)/(z-w)))"
-"(((3.123*y)+(z-w))+((3.123/y)*(z-w)))"
-"(((3.123*y)+(z/w))/((3.123+y)*(z-w)))"
-"(((3.123*y)-(z*w))*((3.123+y)+(z-w)))"
-"(((3.123*y)-(z+w))+((3.123/y)/(z+w)))"
-"(((3.123*y)-(z-w))*(3.123-(y*(z/w))))"
-"(((3.123*y)-(z/w))+((3.123+y)/(z-w)))"
-"(((3.123*y)/(z+w))*(3.123-((y+z)/w)))"
-"(((3.123*y)/(z-w))+(3.123-((y-z)/w)))"
-"(((3.123+y)*(z*w))+(3.123-(y/(z*w))))"
-"(((3.123+y)*(z-w))*((3.123-y)/(z/w)))"
-"(((3.123+y)*(z/w))-(3.123+((y+z)/w)))"
-"(((3.123+y)+(z*w))*((3.123/y)+(z-w)))"
-"(((3.123+y)+(z-w))-((3.123-y)/(z*w)))"
-"(((3.123+y)+(z/w))/((3.123*y)-(z-w)))"
-"(((3.123+y)-(z*w))+((3.123/y)+(z+w)))"
-"(((3.123+y)-(z-w))+((3.123+y)/(z/w)))"
-"(((3.123+y)-(z/w))-((3.123*y)+(z-w)))"
-"(((3.123+y)/(z*w))*(3.123+((y+z)*w)))"
-"(((3.123+y)/(z-w))/((3.123-y)*(z*w)))"
-"(((3.123+y)/(z/w))/(3.123+((y-z)/w)))"
-"(((3.123-y)*(z*w))*(3.123+((y*z)*w)))"
-"(((3.123-y)*(z+w))*((3.123/y)*(z+w)))"
-"(((3.123-y)*(z/w))/(3.123+((y/z)+w)))"
-"(((3.123-y)+(z*w))+((3.123/y)-(z-w)))"
-"(((3.123-y)+(z+w))-((3.123*y)*(z+w)))"
-"(((3.123-y)+(z/w))-((3.123+y)*(z*w)))"
-"(((3.123-y)-(z*w))*((3.123+y)*(z/w)))"
-"(((3.123-y)-(z+w))+((3.123-y)*(z/w)))"
-"(((3.123-y)-(z/w))/((3.123+y)/(z*w)))"
-"(((3.123-y)/(z*w))+(3.123+((y-z)*w)))"
-"(((3.123-y)/(z+w))/((3.123*y)/(z+w)))"
-"(((3.123-y)/(z/w))-(3.123+((y*z)/w)))"
-"(((3.123/y)*(z+w))-(3.123+((y/z)*w)))"
-"(((3.123/y)*(z-w))/(3.123-((y*z)*w)))"
-"(((3.123/y)+(z+w))/((3.123*y)*(z-w)))"
-"(((3.123/y)+(z-w))-(3.123+(y*(z/w))))"
-"(((3.123/y)+(z/w))-((3.123-y)-(z+w)))"
-"(((3.123/y)-(z*w))/((3.123-y)*(z+w)))"
-"(((3.123/y)-(z+w))-((3.123*y)/(z-w)))"
-"(((3.123/y)-(z-w))/(3.123+(y/(z*w))))"
-"(((3.123/y)-(z/w))*((3.123-y)+(z+w)))"
-"(((3.123/y)/(z+w))/(3.123-((y+z)*w)))"
-"(((3.123/y)/(z-w))-(3.123-((y-z)*w)))"
-"(((pi/(b+(((b*0.10)/pi)*b)))*e)+1.97)"
-"(((x*5.123)*(z+w))+(x+((5.123/z)/w)))"
-"(((x*5.123)*(z-w))*(x-((5.123*z)/w)))"
-"(((x*5.123)+(z*w))-((x+5.123)-(z-w)))"
-"(((x*5.123)+(z+w))*((x/5.123)/(z-w)))"
-"(((x*5.123)+(z-w))+((x/5.123)*(z-w)))"
-"(((x*5.123)+(z/w))/((x+5.123)*(z-w)))"
-"(((x*5.123)-(z*w))*((x+5.123)+(z-w)))"
-"(((x*5.123)-(z+w))+((x/5.123)/(z+w)))"
-"(((x*5.123)-(z-w))*(x-(5.123*(z/w))))"
-"(((x*5.123)-(z/w))+((x+5.123)/(z-w)))"
-"(((x*5.123)/(z+w))*(x-((5.123+z)/w)))"
-"(((x*5.123)/(z-w))+(x-((5.123-z)/w)))"
-"(((x*y)*(7.123+w))+(x+((y/7.123)/w)))"
-"(((x*y)*(7.123-w))*(x-((y*7.123)/w)))"
-"(((x*y)*(z+9.123))+(x+((y/z)/9.123)))"
-"(((x*y)*(z-9.123))*(x-((y*z)/9.123)))"
-"(((x*y)+(7.123*w))-((x+y)-(7.123-w)))"
-"(((x*y)+(7.123+w))*((x/y)/(7.123-w)))"
-"(((x*y)+(7.123-w))+((x/y)*(7.123-w)))"
-"(((x*y)+(7.123/w))/((x+y)*(7.123-w)))"
-"(((x*y)+(z*9.123))-((x+y)-(z-9.123)))"
-"(((x*y)+(z+9.123))*((x/y)/(z-9.123)))"
-"(((x*y)+(z-9.123))+((x/y)*(z-9.123)))"
-"(((x*y)+(z/9.123))/((x+y)*(z-9.123)))"
-"(((x*y)-(7.123*w))*((x+y)+(7.123-w)))"
-"(((x*y)-(7.123+w))+((x/y)/(7.123+w)))"
-"(((x*y)-(7.123-w))*(x-(y*(7.123/w))))"
-"(((x*y)-(7.123/w))+((x+y)/(7.123-w)))"
-"(((x*y)-(z*9.123))*((x+y)+(z-9.123)))"
-"(((x*y)-(z+9.123))+((x/y)/(z+9.123)))"
-"(((x*y)-(z-9.123))*(x-(y*(z/9.123))))"
-"(((x*y)-(z/9.123))+((x+y)/(z-9.123)))"
-"(((x*y)/(7.123+w))*(x-((y+7.123)/w)))"
-"(((x*y)/(7.123-w))+(x-((y-7.123)/w)))"
-"(((x*y)/(z+9.123))*(x-((y+z)/9.123)))"
-"(((x*y)/(z-9.123))+(x-((y-z)/9.123)))"
-"(((x+5.123)*(z*w))+(x-(5.123/(z*w))))"
-"(((x+5.123)*(z-w))*((x-5.123)/(z/w)))"
-"(((x+5.123)*(z/w))-(x+((5.123+z)/w)))"
-"(((x+5.123)+(z*w))*((x/5.123)+(z-w)))"
-"(((x+5.123)+(z-w))-((x-5.123)/(z*w)))"
-"(((x+5.123)+(z/w))/((x*5.123)-(z-w)))"
-"(((x+5.123)-(z*w))+((x/5.123)+(z+w)))"
-"(((x+5.123)-(z-w))+((x+5.123)/(z/w)))"
-"(((x+5.123)-(z/w))-((x*5.123)+(z-w)))"
-"(((x+5.123)/(z*w))*(x+((5.123+z)*w)))"
-"(((x+5.123)/(z-w))/((x-5.123)*(z*w)))"
-"(((x+5.123)/(z/w))/(x+((5.123-z)/w)))"
-"(((x+y)*(7.123*w))+(x-(y/(7.123*w))))"
-"(((x+y)*(7.123-w))*((x-y)/(7.123/w)))"
-"(((x+y)*(7.123/w))-(x+((y+7.123)/w)))"
-"(((x+y)*(z*9.123))+(x-(y/(z*9.123))))"
-"(((x+y)*(z-9.123))*((x-y)/(z/9.123)))"
-"(((x+y)*(z/9.123))-(x+((y+z)/9.123)))"
-"(((x+y)+(7.123*w))*((x/y)+(7.123-w)))"
-"(((x+y)+(7.123-w))-((x-y)/(7.123*w)))"
-"(((x+y)+(7.123/w))/((x*y)-(7.123-w)))"
-"(((x+y)+(z*9.123))*((x/y)+(z-9.123)))"
-"(((x+y)+(z-9.123))-((x-y)/(z*9.123)))"
-"(((x+y)+(z/9.123))/((x*y)-(z-9.123)))"
-"(((x+y)-(7.123*w))+((x/y)+(7.123+w)))"
-"(((x+y)-(7.123-w))+((x+y)/(7.123/w)))"
-"(((x+y)-(7.123/w))-((x*y)+(7.123-w)))"
-"(((x+y)-(z*9.123))+((x/y)+(z+9.123)))"
-"(((x+y)-(z-9.123))+((x+y)/(z/9.123)))"
-"(((x+y)-(z/9.123))-((x*y)+(z-9.123)))"
-"(((x+y)/(7.123*w))*(x+((y+7.123)*w)))"
-"(((x+y)/(7.123-w))/((x-y)*(7.123*w)))"
-"(((x+y)/(7.123/w))/(x+((y-7.123)/w)))"
-"(((x+y)/(z*9.123))*(x+((y+z)*9.123)))"
-"(((x+y)/(z-9.123))/((x-y)*(z*9.123)))"
-"(((x+y)/(z/9.123))/(x+((y-z)/9.123)))"
-"(((x-5.123)*(z*w))*(x+((5.123*z)*w)))"
-"(((x-5.123)*(z+w))*((x/5.123)*(z+w)))"
-"(((x-5.123)*(z/w))/(x+((5.123/z)+w)))"
-"(((x-5.123)+(z*w))+((x/5.123)-(z-w)))"
-"(((x-5.123)+(z+w))-((x*5.123)*(z+w)))"
-"(((x-5.123)+(z/w))-((x+5.123)*(z*w)))"
-"(((x-5.123)-(z*w))*((x+5.123)*(z/w)))"
-"(((x-5.123)-(z+w))+((x-5.123)*(z/w)))"
-"(((x-5.123)-(z/w))/((x+5.123)/(z*w)))"
-"(((x-5.123)/(z*w))+(x+((5.123-z)*w)))"
-"(((x-5.123)/(z+w))/((x*5.123)/(z+w)))"
-"(((x-5.123)/(z/w))-(x+((5.123*z)/w)))"
-"(((x-y)*(7.123*w))*(x+((y*7.123)*w)))"
-"(((x-y)*(7.123+w))*((x/y)*(7.123+w)))"
-"(((x-y)*(7.123/w))/(x+((y/7.123)+w)))"
-"(((x-y)*(z*9.123))*(x+((y*z)*9.123)))"
-"(((x-y)*(z+9.123))*((x/y)*(z+9.123)))"
-"(((x-y)*(z/9.123))/(x+((y/z)+9.123)))"
-"(((x-y)+(7.123*w))+((x/y)-(7.123-w)))"
-"(((x-y)+(7.123+w))-((x*y)*(7.123+w)))"
-"(((x-y)+(7.123/w))-((x+y)*(7.123*w)))"
-"(((x-y)+(z*9.123))+((x/y)-(z-9.123)))"
-"(((x-y)+(z+9.123))-((x*y)*(z+9.123)))"
-"(((x-y)+(z/9.123))-((x+y)*(z*9.123)))"
-"(((x-y)-(7.123*w))*((x+y)*(7.123/w)))"
-"(((x-y)-(7.123+w))+((x-y)*(7.123/w)))"
-"(((x-y)-(7.123/w))/((x+y)/(7.123*w)))"
-"(((x-y)-(z*9.123))*((x+y)*(z/9.123)))"
-"(((x-y)-(z+9.123))+((x-y)*(z/9.123)))"
-"(((x-y)-(z/9.123))/((x+y)/(z*9.123)))"
-"(((x-y)/(7.123*w))+(x+((y-7.123)*w)))"
-"(((x-y)/(7.123+w))/((x*y)/(7.123+w)))"
-"(((x-y)/(7.123/w))-(x+((y*7.123)/w)))"
-"(((x-y)/(z*9.123))+(x+((y-z)*9.123)))"
-"(((x-y)/(z+9.123))/((x*y)/(z+9.123)))"
-"(((x-y)/(z/9.123))-(x+((y*z)/9.123)))"
-"(((x/5.123)*(z+w))-(x+((5.123/z)*w)))"
-"(((x/5.123)*(z-w))/(x-((5.123*z)*w)))"
-"(((x/5.123)+(z+w))/((x*5.123)*(z-w)))"
-"(((x/5.123)+(z-w))-(x+(5.123*(z/w))))"
-"(((x/5.123)+(z/w))-((x-5.123)-(z+w)))"
-"(((x/5.123)-(z*w))/((x-5.123)*(z+w)))"
-"(((x/5.123)-(z+w))-((x*5.123)/(z-w)))"
-"(((x/5.123)-(z-w))/(x+(5.123/(z*w))))"
-"(((x/5.123)-(z/w))*((x-5.123)+(z+w)))"
-"(((x/5.123)/(z+w))/(x-((5.123+z)*w)))"
-"(((x/5.123)/(z-w))-(x-((5.123-z)*w)))"
-"(((x/y)*(7.123+w))-(x+((y/7.123)*w)))"
-"(((x/y)*(7.123-w))/(x-((y*7.123)*w)))"
-"(((x/y)*(z+9.123))-(x+((y/z)*9.123)))"
-"(((x/y)*(z-9.123))/(x-((y*z)*9.123)))"
-"(((x/y)+(7.123+w))/((x*y)*(7.123-w)))"
-"(((x/y)+(7.123-w))-(x+(y*(7.123/w))))"
-"(((x/y)+(7.123/w))-((x-y)-(7.123+w)))"
-"(((x/y)+(z+9.123))/((x*y)*(z-9.123)))"
-"(((x/y)+(z-9.123))-(x+(y*(z/9.123))))"
-"(((x/y)+(z/9.123))-((x-y)-(z+9.123)))"
-"(((x/y)-(7.123*w))/((x-y)*(7.123+w)))"
-"(((x/y)-(7.123+w))-((x*y)/(7.123-w)))"
-"(((x/y)-(7.123-w))/(x+(y/(7.123*w))))"
-"(((x/y)-(7.123/w))*((x-y)+(7.123+w)))"
-"(((x/y)-(z*9.123))/((x-y)*(z+9.123)))"
-"(((x/y)-(z+9.123))-((x*y)/(z-9.123)))"
-"(((x/y)-(z-9.123))/(x+(y/(z*9.123))))"
-"(((x/y)-(z/9.123))*((x-y)+(z+9.123)))"
-"(((x/y)/(7.123+w))/(x-((y+7.123)*w)))"
-"(((x/y)/(7.123-w))-(x-((y-7.123)*w)))"
-"(((x/y)/(z+9.123))/(x-((y+z)*9.123)))"
-"(((x/y)/(z-9.123))-(x-((y-z)*9.123)))"
-"((3.123*(y+(z*w)))*((3.123/y)-(z+w)))"
-"((3.123*(y-(z*w)))/((3.123*y)+(z+w)))"
-"((3.123+((y*z)*w))-(((3.123/y)/z)-w))"
-"((3.123+((y*z)/w))+(((3.123*y)/z)-w))"
-"((3.123+((y+z)*w))-(((3.123/y)*z)-w))"
-"((3.123+((y+z)/w))+(((3.123*y)*z)-w))"
-"((3.123+((y-z)*w))/(((3.123-y)/z)-w))"
-"((3.123+((y-z)/w))*(((3.123+y)/z)-w))"
-"((3.123+((y/z)*w))+((3.123*y)+(z/w)))"
-"((3.123+((y/z)+w))*((3.123*y)+(z*w)))"
-"((3.123+((y/z)/w))/((3.123*y)-(z*w)))"
-"((3.123+(y*(z/w)))+(3.123-((y/z)/w)))"
-"((3.123+(y/(z*w)))*(((3.123+y)*z)-w))"
-"((3.123-((y*z)*w))*(3.123/(y-(z*w))))"
-"((3.123-((y*z)/w))-(3.123/(y+(z*w))))"
-"((3.123-((y+z)*w))*((3.123/y)+(z/w)))"
-"((3.123-((y+z)/w))-((3.123*y)-(z/w)))"
-"((3.123-((y-z)*w))+((3.123/y)-(z*w)))"
-"((3.123-((y-z)/w))/((3.123/y)-(z/w)))"
-"((3.123-((y/z)*w))+(3.123*(y-(z*w))))"
-"((3.123-((y/z)/w))/(3.123*(y+(z*w))))"
-"((3.123-(y*(z/w)))-(3.123-((y/z)*w)))"
-"((3.123-(y/(z*w)))/(((3.123-y)*z)-w))"
-"((3.123/(y+(z*w)))+((3.123-y)/(z+w)))"
-"((3.123/(y-(z*w)))-((3.123*y)-(z+w)))"
-"((tan((tan(((0.69-b)/a))*b))+e)*3.51)"
-"((x*(5.123+(z*w)))*((x/5.123)-(z+w)))"
-"((x*(5.123-(z*w)))/((x*5.123)+(z+w)))"
-"((x*(y+(7.123*w)))*((x/y)-(7.123+w)))"
-"((x*(y+(z*9.123)))*((x/y)-(z+9.123)))"
-"((x*(y-(7.123*w)))/((x*y)+(7.123+w)))"
-"((x*(y-(z*9.123)))/((x*y)+(z+9.123)))"
-"((x+((5.123*z)*w))-(((x/5.123)/z)-w))"
-"((x+((5.123*z)/w))+(((x*5.123)/z)-w))"
-"((x+((5.123+z)*w))-(((x/5.123)*z)-w))"
-"((x+((5.123+z)/w))+(((x*5.123)*z)-w))"
-"((x+((5.123-z)*w))/(((x-5.123)/z)-w))"
-"((x+((5.123-z)/w))*(((x+5.123)/z)-w))"
-"((x+((5.123/z)*w))+((x*5.123)+(z/w)))"
-"((x+((5.123/z)+w))*((x*5.123)+(z*w)))"
-"((x+((5.123/z)/w))/((x*5.123)-(z*w)))"
-"((x+((y*7.123)*w))-(((x/y)/7.123)-w))"
-"((x+((y*7.123)/w))+(((x*y)/7.123)-w))"
-"((x+((y*z)*9.123))-(((x/y)/z)-9.123))"
-"((x+((y*z)/9.123))+(((x*y)/z)-9.123))"
-"((x+((y+7.123)*w))-(((x/y)*7.123)-w))"
-"((x+((y+7.123)/w))+(((x*y)*7.123)-w))"
-"((x+((y+z)*9.123))-(((x/y)*z)-9.123))"
-"((x+((y+z)/9.123))+(((x*y)*z)-9.123))"
-"((x+((y-7.123)*w))/(((x-y)/7.123)-w))"
-"((x+((y-7.123)/w))*(((x+y)/7.123)-w))"
-"((x+((y-z)*9.123))/(((x-y)/z)-9.123))"
-"((x+((y-z)/9.123))*(((x+y)/z)-9.123))"
-"((x+((y/7.123)*w))+((x*y)+(7.123/w)))"
-"((x+((y/7.123)+w))*((x*y)+(7.123*w)))"
-"((x+((y/7.123)/w))/((x*y)-(7.123*w)))"
-"((x+((y/z)*9.123))+((x*y)+(z/9.123)))"
-"((x+((y/z)+9.123))*((x*y)+(z*9.123)))"
-"((x+((y/z)/9.123))/((x*y)-(z*9.123)))"
-"((x+(5.123*(z/w)))+(x-((5.123/z)/w)))"
-"((x+(5.123/(z*w)))*(((x+5.123)*z)-w))"
-"((x+(y*(7.123/w)))+(x-((y/7.123)/w)))"
-"((x+(y*(z/9.123)))+(x-((y/z)/9.123)))"
-"((x+(y/(7.123*w)))*(((x+y)*7.123)-w))"
-"((x+(y/(z*9.123)))*(((x+y)*z)-9.123))"
-"((x-((5.123*z)*w))*(x/(5.123-(z*w))))"
-"((x-((5.123*z)/w))-(x/(5.123+(z*w))))"
-"((x-((5.123+z)*w))*((x/5.123)+(z/w)))"
-"((x-((5.123+z)/w))-((x*5.123)-(z/w)))"
-"((x-((5.123-z)*w))+((x/5.123)-(z*w)))"
-"((x-((5.123-z)/w))/((x/5.123)-(z/w)))"
-"((x-((5.123/z)*w))+(x*(5.123-(z*w))))"
-"((x-((5.123/z)/w))/(x*(5.123+(z*w))))"
-"((x-((y*7.123)*w))*(x/(y-(7.123*w))))"
-"((x-((y*7.123)/w))-(x/(y+(7.123*w))))"
-"((x-((y*z)*9.123))*(x/(y-(z*9.123))))"
-"((x-((y*z)/9.123))-(x/(y+(z*9.123))))"
-"((x-((y+7.123)*w))*((x/y)+(7.123/w)))"
-"((x-((y+7.123)/w))-((x*y)-(7.123/w)))"
-"((x-((y+z)*9.123))*((x/y)+(z/9.123)))"
-"((x-((y+z)/9.123))-((x*y)-(z/9.123)))"
-"((x-((y-7.123)*w))+((x/y)-(7.123*w)))"
-"((x-((y-7.123)/w))/((x/y)-(7.123/w)))"
-"((x-((y-z)*9.123))+((x/y)-(z*9.123)))"
-"((x-((y-z)/9.123))/((x/y)-(z/9.123)))"
-"((x-((y/7.123)*w))+(x*(y-(7.123*w))))"
-"((x-((y/7.123)/w))/(x*(y+(7.123*w))))"
-"((x-((y/z)*9.123))+(x*(y-(z*9.123))))"
-"((x-((y/z)/9.123))/(x*(y+(z*9.123))))"
-"((x-(5.123*(z/w)))-(x-((5.123/z)*w)))"
-"((x-(5.123/(z*w)))/(((x-5.123)*z)-w))"
-"((x-(y*(7.123/w)))-(x-((y/7.123)*w)))"
-"((x-(y*(z/9.123)))-(x-((y/z)*9.123)))"
-"((x-(y/(7.123*w)))/(((x-y)*7.123)-w))"
-"((x-(y/(z*9.123)))/(((x-y)*z)-9.123))"
-"((x/(5.123+(z*w)))+((x-5.123)/(z+w)))"
-"((x/(5.123-(z*w)))-((x*5.123)-(z+w)))"
-"((x/(y+(7.123*w)))+((x-y)/(7.123+w)))"
-"((x/(y+(z*9.123)))+((x-y)/(z+9.123)))"
-"((x/(y-(7.123*w)))-((x*y)-(7.123+w)))"
-"((x/(y-(z*9.123)))-((x*y)-(z+9.123)))"
-"(5.5+a)+(2*b-2/3*a)*(b/3+a/4)+(b+7.7)"
-"(a+(a+((tan((b+(b+(b*1.85))))/a)+b)))"
-"1/(a*sqrt(2*pi))*e^(-0.5*((b-a)/a)^2)"
-"(((a*((cos(cos(pi))/a)+2.48))+3.59)/b)"
-"((e-(((((1.59+a)-e)/b)*3.20)+1.99))+a)"
-"(pi/((((((((b-b)+b)-a)+b)-a)*e)/e)+e))"
-"(((((((0.93+b)+e)*0.61)+b)+e)+pi)-0.38)"
-"((7-2)+(2-3)*(3-4))/((4-5)*(5-6)+(6-9))"
-"((b*((((cos(sin(pi))/e)/b)+3.49)+b))*a)"
-"2.2*y*z+w-2.2/y*z+w*2.2*y/z+w*2.2/y/z+w"
-"2.2*y+z-w-2.2/y+z-w*2.2*y-z-w*2.2/y-z-w"
-"2.2*y-z+w*2.2/y-z+w-2.2*y+z+w+2.2/y+z+w"
-"2.2*y-z/w*2.2/y+z/w-2.2/y-z/w+2.2/y-z*w"
-"2.2*y/z-w+2.2/y/z-w+2.2*y*z-w-2.2/y*z-w"
-"2.2+y*z*w+2.2+y*z/w+2.2+y/z*w-2.2+y/z/w"
-"2.2+y*z/w*2.2+y*z*w-2.2+y/z+w+2.2+y/z/w"
-"2.2+y+z/w+2.2+y+z*w+2.2+y-z/w-2.2+y-z*w"
-"2.2+y-z*w+2.2+y-z/w+2.2+y+z*w-2.2+y+z/w"
-"2.2+y-z-w-2.2+y-z-w*2.2+y+z-w*2.2+y+z-w"
-"2.2+y/z*w-2.2-y+z/w*2.2-y+z*w*2.2-y-z/w"
-"2.2-y+z*w*2.2-y+z/w-2.2-y-z*w+2.2-y-z/w"
-"2.2-y-z*w+2.2-y*z/w+2.2-y*z*w-2.2-y/z/w"
-"2.2-y-z+w+2.2-y-z+w+2.2-y+z+w-2.2-y+z+w"
-"2.2-y/z*w*2.2+y*z-w-2.2-y*z-w+2.2*y*z-w"
-"2.2-y/z*w*2.2-y/z/w-2.2-y*z*w+2.2-y*z/w"
-"2.2/y*z-w-2.2+y/z-w*2.2-y/z-w*2.2*y/z-w"
-"2.2/y+z*w-2.2/y-z*w*2.2*y+z*w*2.2*y-z*w"
-"2.2/y/z-w+2.2*y+z*w+2.2*y-z*w-2.2*y+z/w"
-"x*3.3*z+w-x/3.3*z+w*x*3.3/z+w*x/3.3/z+w"
-"x*3.3+z-w-x/3.3+z-w*x*3.3-z-w*x/3.3-z-w"
-"x*3.3-z+w*x/3.3-z+w-x*3.3+z+w+x/3.3+z+w"
-"x*3.3-z/w*x/3.3+z/w-x/3.3-z/w+x/3.3-z*w"
-"x*3.3/z-w+x/3.3/z-w+x*3.3*z-w-x/3.3*z-w"
-"x*y*4.4+w-x/y*4.4+w*x*y/4.4+w*x/y/4.4+w"
-"x*y*z+5.5-x/y*z+5.5*x*y/z+5.5*x/y/z+5.5"
-"x*y+4.4-w-x/y+4.4-w*x*y-4.4-w*x/y-4.4-w"
-"x*y+z-5.5-x/y+z-5.5*x*y-z-5.5*x/y-z-5.5"
-"x*y-4.4+w*x/y-4.4+w-x*y+4.4+w+x/y+4.4+w"
-"x*y-4.4/w*x/y+4.4/w-x/y-4.4/w+x/y-4.4*w"
-"x*y-z+5.5*x/y-z+5.5-x*y+z+5.5+x/y+z+5.5"
-"x*y-z/5.5*x/y+z/5.5-x/y-z/5.5+x/y-z*5.5"
-"x*y/4.4-w+x/y/4.4-w+x*y*4.4-w-x/y*4.4-w"
-"x*y/z-5.5+x/y/z-5.5+x*y*z-5.5-x/y*z-5.5"
-"x+3.3*z*w+x+3.3*z/w+x+3.3/z*w-x+3.3/z/w"
-"x+3.3*z/w*x+3.3*z*w-x+3.3/z+w+x+3.3/z/w"
-"x+3.3+z/w+x+3.3+z*w+x+3.3-z/w-x+3.3-z*w"
-"x+3.3-z*w+x+3.3-z/w+x+3.3+z*w-x+3.3+z/w"
-"x+3.3-z-w-x+3.3-z-w*x+3.3+z-w*x+3.3+z-w"
-"x+3.3/z*w-x-3.3+z/w*x-3.3+z*w*x-3.3-z/w"
-"x+y*4.4*w+x+y*4.4/w+x+y/4.4*w-x+y/4.4/w"
-"x+y*4.4/w*x+y*4.4*w-x+y/4.4+w+x+y/4.4/w"
-"x+y*z*5.5+x+y*z/5.5+x+y/z*5.5-x+y/z/5.5"
-"x+y*z/5.5*x+y*z*5.5-x+y/z+5.5+x+y/z/5.5"
-"x+y+4.4/w+x+y+4.4*w+x+y-4.4/w-x+y-4.4*w"
-"x+y+z/5.5+x+y+z*5.5+x+y-z/5.5-x+y-z*5.5"
-"x+y-4.4*w+x+y-4.4/w+x+y+4.4*w-x+y+4.4/w"
-"x+y-4.4-w-x+y-4.4-w*x+y+4.4-w*x+y+4.4-w"
-"x+y-z*5.5+x+y-z/5.5+x+y+z*5.5-x+y+z/5.5"
-"x+y-z-5.5-x+y-z-5.5*x+y+z-5.5*x+y+z-5.5"
-"x+y/4.4*w-x-y+4.4/w*x-y+4.4*w*x-y-4.4/w"
-"x+y/z*5.5-x-y+z/5.5*x-y+z*5.5*x-y-z/5.5"
-"x-3.3+z*w*x-3.3+z/w-x-3.3-z*w+x-3.3-z/w"
-"x-3.3-z*w+x-3.3*z/w+x-3.3*z*w-x-3.3/z/w"
-"x-3.3-z+w+x-3.3-z+w+x-3.3+z+w-x-3.3+z+w"
-"x-3.3/z*w*x+3.3*z-w-x-3.3*z-w+x*3.3*z-w"
-"x-3.3/z*w*x-3.3/z/w-x-3.3*z*w+x-3.3*z/w"
-"x-y+4.4*w*x-y+4.4/w-x-y-4.4*w+x-y-4.4/w"
-"x-y+z*5.5*x-y+z/5.5-x-y-z*5.5+x-y-z/5.5"
-"x-y-4.4*w+x-y*4.4/w+x-y*4.4*w-x-y/4.4/w"
-"x-y-4.4+w+x-y-4.4+w+x-y+4.4+w-x-y+4.4+w"
-"x-y-z*5.5+x-y*z/5.5+x-y*z*5.5-x-y/z/5.5"
-"x-y-z+5.5+x-y-z+5.5+x-y+z+5.5-x-y+z+5.5"
-"x-y/4.4*w*x+y*4.4-w-x-y*4.4-w+x*y*4.4-w"
-"x-y/4.4*w*x-y/4.4/w-x-y*4.4*w+x-y*4.4/w"
-"x-y/z*5.5*x+y*z-5.5-x-y*z-5.5+x*y*z-5.5"
-"x-y/z*5.5*x-y/z/5.5-x-y*z*5.5+x-y*z/5.5"
-"x/3.3*z-w-x+3.3/z-w*x-3.3/z-w*x*3.3/z-w"
-"x/3.3+z*w-x/3.3-z*w*x*3.3+z*w*x*3.3-z*w"
-"x/3.3/z-w+x*3.3+z*w+x*3.3-z*w-x*3.3+z/w"
-"x/y*4.4-w-x+y/4.4-w*x-y/4.4-w*x*y/4.4-w"
-"x/y*z-5.5-x+y/z-5.5*x-y/z-5.5*x*y/z-5.5"
-"x/y+4.4*w-x/y-4.4*w*x*y+4.4*w*x*y-4.4*w"
-"x/y+z*5.5-x/y-z*5.5*x*y+z*5.5*x*y-z*5.5"
-"x/y/4.4-w+x*y+4.4*w+x*y-4.4*w-x*y+4.4/w"
-"x/y/z-5.5+x*y+z*5.5+x*y-z*5.5-x*y+z/5.5"
-"((((((2.34+1.80)/pi)+pi)-0.54)*0.15)-pi)"
-"((((a*((((b-1.50)+1.82)-a)/pi))/a)*a)+e)"
-"(cos(cos((((cos((b+3.96))-b)+pi)/a)))/e)"
-"((((((cos(1.78)/pi)+pi)*a)-b)*2.50)-3.77)"
-"(((cos(sin((cos((b/tan(b)))+a)))+a)+a)*e)"
-"((b/sin(cos(sin(((cos(pi)+b)+a)))))+2.83)"
-"(e+(((((((b+2.05)+a)-2.99)-e)*b)/pi)/pi))"
-"((((((((e+pi)-2.53)+a)+pi)+b)*1.84)+pi)+a)"
-"(((((((b*(1.69-e))+b)-0.17)+a)-a)+0.20)+e)"
-"((((((b/((b*2.74)+e))*e)*b)*1.85)-1.71)/a)"
-"(((cos(((((0.78+b)+a)+a)+pi))+e)*3.73)+pi)"
-"sin((((tan(sin(((pi/e)+pi)))-2.94)+e)+pi))"
-"sin((1.1+2.2/2.2*3.3)*4.4^5.5)+cos(6.6*pi)"
-"(((((sin(((0.62*pi)-e))/pi)+3.34)+pi)*b)+e)"
-"((((a+((((b-0.68)-pi)/a)+b))+1.47)*e)*1.38)"
-"((3.123*y*z+3.123+y/z+3.123+y+z+3.123-y*z))"
-"((3.123*y*z-3.123/y*z-3.123/y/z-3.123-y/z))"
-"((3.123*y+z*3.123-y*z*3.123+y*z*3.123+y+z))"
-"((3.123*y+z*3.123/y*z*3.123/y+z*3.123*y/z))"
-"((3.123*y-z/3.123+y*z/3.123+y/z/3.123-y/z))"
-"((3.123*y-z/3.123/y+z/3.123/y-z/3.123-y+z))"
-"((3.123*y/z+3.123/y-z+3.123/y*z+3.123-y-z))"
-"((3.123*y/z-3.123+y+z-3.123+y-z-3.123*y+z))"
-"((3.123+y*z*3.123+y+z*3.123-y/z+3.123/y-z))"
-"((3.123+y*z-3.123*y/z-3.123*y*z-3.123/y*z))"
-"((3.123+y+z+3.123-y*z+3.123*y+z*3.123/y*z))"
-"((3.123+y+z/3.123/y+z/3.123/y-z/3.123*y+z))"
-"((3.123+y-z*3.123*y*z*3.123/y+z*3.123/y/z))"
-"((3.123+y-z-3.123*y+z-3.123*y-z/3.123/y+z))"
-"((3.123+y/z+3.123*y-z+3.123*y/z+3.123/y-z))"
-"((3.123+y/z/3.123-y/z/3.123-y*z-3.123/y/z))"
-"((3.123-y*z-3.123+y-z-3.123+y+z/3.123/y+z))"
-"((3.123-y*z-3.123/y/z-3.123/y*z-3.123*y*z))"
-"((3.123-y+z*3.123+y-z*3.123+y/z+3.123*y-z))"
-"((3.123-y-z/3.123+y/z/3.123+y*z-3.123*y/z))"
-"((3.123-y/z+3.123+y*z+3.123+y-z*3.123*y*z))"
-"((3.123-y/z+3.123/y-z+3.123/y/z+3.123*y-z))"
-"((3.123/y*z+3.123-y-z+3.123-y/z+3.123+y*z))"
-"((3.123/y*z-3.123*y*z-3.123*y/z-3.123+y+z))"
-"((3.123/y+z*3.123*y/z*3.123-y+z*3.123+y-z))"
-"((3.123/y+z*3.123/y/z*3.123*y+z*3.123-y*z))"
-"((3.123/y-z/3.123*y+z/3.123*y-z/3.123+y*z))"
-"((3.123/y-z/3.123-y+z/3.123-y-z/3.123+y/z))"
-"((3.123/y/z+3.123*y-z+3.123*y*z+3.123+y/z))"
-"((3.123/y/z-3.123-y/z-3.123-y*z-3.123+y-z))"
-"((b+(b+tan(((a+(tan((a/a))+b))+1.81))))+pi)"
-"((x*5.123*z+x+5.123/z+x+5.123+z+x-5.123*z))"
-"((x*5.123*z-x/5.123*z-x/5.123/z-x-5.123/z))"
-"((x*5.123+z*x-5.123*z*x+5.123*z*x+5.123+z))"
-"((x*5.123+z*x/5.123*z*x/5.123+z*x*5.123/z))"
-"((x*5.123-z/x+5.123*z/x+5.123/z/x-5.123/z))"
-"((x*5.123-z/x/5.123+z/x/5.123-z/x-5.123+z))"
-"((x*5.123/z+x/5.123-z+x/5.123*z+x-5.123-z))"
-"((x*5.123/z-x+5.123+z-x+5.123-z-x*5.123+z))"
-"((x*y*7.123+x+y/7.123+x+y+7.123+x-y*7.123))"
-"((x*y*7.123-x/y*7.123-x/y/7.123-x-y/7.123))"
-"((x*y+7.123*x-y*7.123*x+y*7.123*x+y+7.123))"
-"((x*y+7.123*x/y*7.123*x/y+7.123*x*y/7.123))"
-"((x*y-7.123/x+y*7.123/x+y/7.123/x-y/7.123))"
-"((x*y-7.123/x/y+7.123/x/y-7.123/x-y+7.123))"
-"((x*y/7.123+x/y-7.123+x/y*7.123+x-y-7.123))"
-"((x*y/7.123-x+y+7.123-x+y-7.123-x*y+7.123))"
-"((x+5.123*z*x+5.123+z*x-5.123/z+x/5.123-z))"
-"((x+5.123*z-x*5.123/z-x*5.123*z-x/5.123*z))"
-"((x+5.123+z+x-5.123*z+x*5.123+z*x/5.123*z))"
-"((x+5.123+z/x/5.123+z/x/5.123-z/x*5.123+z))"
-"((x+5.123-z*x*5.123*z*x/5.123+z*x/5.123/z))"
-"((x+5.123-z-x*5.123+z-x*5.123-z/x/5.123+z))"
-"((x+5.123/z+x*5.123-z+x*5.123/z+x/5.123-z))"
-"((x+5.123/z/x-5.123/z/x-5.123*z-x/5.123/z))"
-"((x+y*7.123*x+y+7.123*x-y/7.123+x/y-7.123))"
-"((x+y*7.123-x*y/7.123-x*y*7.123-x/y*7.123))"
-"((x+y+7.123+x-y*7.123+x*y+7.123*x/y*7.123))"
-"((x+y+7.123/x/y+7.123/x/y-7.123/x*y+7.123))"
-"((x+y-7.123*x*y*7.123*x/y+7.123*x/y/7.123))"
-"((x+y-7.123-x*y+7.123-x*y-7.123/x/y+7.123))"
-"((x+y/7.123+x*y-7.123+x*y/7.123+x/y-7.123))"
-"((x+y/7.123/x-y/7.123/x-y*7.123-x/y/7.123))"
-"((x-5.123*z-x+5.123-z-x+5.123+z/x/5.123+z))"
-"((x-5.123*z-x/5.123/z-x/5.123*z-x*5.123*z))"
-"((x-5.123+z*x+5.123-z*x+5.123/z+x*5.123-z))"
-"((x-5.123-z/x+5.123/z/x+5.123*z-x*5.123/z))"
-"((x-5.123/z+x+5.123*z+x+5.123-z*x*5.123*z))"
-"((x-5.123/z+x/5.123-z+x/5.123/z+x*5.123-z))"
-"((x-y*7.123-x+y-7.123-x+y+7.123/x/y+7.123))"
-"((x-y*7.123-x/y/7.123-x/y*7.123-x*y*7.123))"
-"((x-y+7.123*x+y-7.123*x+y/7.123+x*y-7.123))"
-"((x-y-7.123/x+y/7.123/x+y*7.123-x*y/7.123))"
-"((x-y/7.123+x+y*7.123+x+y-7.123*x*y*7.123))"
-"((x-y/7.123+x/y-7.123+x/y/7.123+x*y-7.123))"
-"((x/5.123*z+x-5.123-z+x-5.123/z+x+5.123*z))"
-"((x/5.123*z-x*5.123*z-x*5.123/z-x+5.123+z))"
-"((x/5.123+z*x*5.123/z*x-5.123+z*x+5.123-z))"
-"((x/5.123+z*x/5.123/z*x*5.123+z*x-5.123*z))"
-"((x/5.123-z/x*5.123+z/x*5.123-z/x+5.123*z))"
-"((x/5.123-z/x-5.123+z/x-5.123-z/x+5.123/z))"
-"((x/5.123/z+x*5.123-z+x*5.123*z+x+5.123/z))"
-"((x/5.123/z-x-5.123/z-x-5.123*z-x+5.123-z))"
-"((x/y*7.123+x-y-7.123+x-y/7.123+x+y*7.123))"
-"((x/y*7.123-x*y*7.123-x*y/7.123-x+y+7.123))"
-"((x/y+7.123*x*y/7.123*x-y+7.123*x+y-7.123))"
-"((x/y+7.123*x/y/7.123*x*y+7.123*x-y*7.123))"
-"((x/y-7.123/x*y+7.123/x*y-7.123/x+y*7.123))"
-"((x/y-7.123/x-y+7.123/x-y-7.123/x+y/7.123))"
-"((x/y/7.123+x*y-7.123+x*y*7.123+x+y/7.123))"
-"((x/y/7.123-x-y/7.123-x-y*7.123-x+y-7.123))"
-"1.1*a^2.01+2.2*b^3.01+3.3*c^4.01+4.4*a^5.01"
-"6.6*a^5+5.5*a^4+4.4*a^3+3.3*a^2+2.2*a^1+1.1"
-"a+(cos(b-sin(2/a*pi))-sin(a-cos(2*b/pi)))-b"
-"(((((((((pi*e)*a)-a)+b)*2.76)+a)+a)/0.96)+b)"
-"(((((((0.36/2.21)+pi)*pi)-pi)*3.05)*3.32)/b)"
-"1.1234567*a^17+2.1234567*b^28+2.1234567*c^38"
-"cos((cos(tan((sin((cos(a)/3.44))+1.08)))+b))"
-"(((((((((b-a)*e)+b)+pi)*b)+pi)+2.31)/a)-0.23)"
-"(((((((((e+1.35)+pi)/pi)-a)+b)-b)+a)/e)+0.81)"
-"(((((((7*a+6)*a+5)*a+4)*a+3)*a+2)*a+1)*a+0.1)"
-"((((x*y)*z)-(x/(y*z)))-((x/(y/z))-(x-(y/z))))"
-"((((x*y)+z)*((x/y)*z))*((x/(y+z))*(x*(y/z))))"
-"((((x*y)-z)/(x/(y+z)))/((x/(y-z))/(x-(y+z))))"
-"((((x*y)/z)+(x/(y-z)))+((x/(y*z))+(x-(y-z))))"
-"((((x+y)*z)-((x*y)/z))-(((x*y)*z)-(x/(y*z))))"
-"((((x+y)+z)/((x/y)+z))/(((x/y)-z)/(x*(y+z))))"
-"((((x+y)-z)*((x*y)*z))*(((x/y)+z)*(x/(y/z))))"
-"((((x+y)/z)+((x*y)-z))+(((x*y)/z)+(x/(y-z))))"
-"((((x-y)*z)-((x/y)/z))-(((x/y)*z)-(x*(y*z))))"
-"((((x-y)/z)+((x/y)-z))+(((x/y)/z)+(x*(y-z))))"
-"((((x/y)*z)-(x*(y*z)))-((x*(y/z))-(x+(y+z))))"
-"((((x/y)+z)*(x/(y/z)))*((x*(y+z))*(x-(y*z))))"
-"((((x/y)-z)/(x*(y+z)))/((x*(y-z))/(x+(y*z))))"
-"((((x/y)/z)+(x*(y-z)))+((x*(y*z))+(x+(y/z))))"
-"(((x*(y*z))+(x+(y/z)))+((x+(y+z))+((x-y)*z)))"
-"(((x*(y+z))*(x-(y*z)))*((x+(y*z))*((x+y)+z)))"
-"(((x*(y-z))/(x+(y*z)))/((x+(y/z))/((x-y)/z)))"
-"(((x*(y/z))-(x+(y+z)))-((x+(y-z))-((x*y)+z)))"
-"(((x+(y*z))*((x+y)+z))*(((x-y)/z)+((x/y)-z)))"
-"(((x+(y+z))+((x-y)*z))+(((x*y)+z)*((x/y)*z)))"
-"(((x+(y-z))-((x*y)+z))-(((x*y)-z)/(x/(y+z))))"
-"(((x+(y/z))/((x-y)/z))/(((x-y)*z)-((x/y)/z)))"
-"(((x-(y*z))-((x+y)-z))-(((x+y)+z)/((x/y)+z)))"
-"(((x-(y+z))*(x+(y-z)))*(((x+y)/z)+((x*y)-z)))"
-"(((x-(y-z))/((x+y)/z))/(((x+y)*z)-((x*y)/z)))"
-"(((x-(y/z))+((x+y)*z))+(((x+y)-z)*((x*y)*z)))"
-"(((x/(y*z))+(x-(y-z)))+((x-(y/z))+((x+y)*z)))"
-"(((x/(y+z))*(x*(y/z)))*((x-(y+z))*(x+(y-z))))"
-"(((x/(y-z))/(x-(y+z)))/((x-(y-z))/((x+y)/z)))"
-"(((x/(y/z))-(x-(y/z)))-((x-(y*z))-((x+y)-z)))"
-"((b+((((((((b/a)+e)+b)+pi)+a)+2.71)+a)+b))*e)"
-"7*a^7+6*a^6+5*a^5+4*a^4+3*a^3+2*a^2+1*a^1+0.1"
-"((((((((((1.36*e)+b)+pi)*pi)/b)+a)-a)+a)+a)+a)"
-"((((((((0.68-1.49)/e)+a)+pi)*b)+0.75)+b)/2.78)"
-"((((tan(tan((e*(cos(3.57)+b))))-a)*a)+a)+0.45)"
-"(b/((((tan((cos(((b+b)/b))+e))-b)+2.15)*e)+b))"
-"(cos((((1.45*(((3.50+1.35)-a)+e))*b)/a))+2.02)"
-"(((((((((a+a)*1.53)+a)-a)+b)/b)*0.18)+0.61)+pi)"
-"((((((((a/b)*1.1)*2.2)*3.3)*4.4)*5.5)*6.6)*7.7)"
-"((((((((a/b)+1.1)+2.2)+3.3)+4.4)+5.5)+6.6)+7.7)"
-"((0.09*((((a-(((a-0.88)*b)+1.92))+pi)+a)-a))*b)"
-"((a/cos((cos(((tan(cos(e))+a)/3.36))/0.05)))*e)"
-"(1.1*(2.2*(3.3*(4.4*(5.5*(6.6*(7.7*(a+b))))))))"
-"(1.1+(2.2+(3.3+(4.4+(5.5+(6.6+(7.7+(a*b))))))))"
-"1.1*x^2+2.2*1.1/y^3-2.2-1.1*x^2+2.2+1.1/y^3-2.2"
-"1.1*x^2+2.2*1.1/y^3-2.2-1.1*x^2+2.2-1.1/y^3-2.2"
-"1.1*x^2+2.2+1.1/y^3-2.2*1.1*x^2+2.2*1.1/y^3-2.2"
-"1.1*x^2+2.2+1.1/y^3-2.2*1.1*x^2+2.2-1.1/y^3-2.2"
-"1.1*x^2+2.2-1.1/y^3-2.2+1.1*x^2+2.2*1.1/y^3-2.2"
-"1.1*x^2+2.2-1.1/y^3-2.2+1.1*x^2+2.2+1.1/y^3-2.2"
-"cos(((1.09+(pi+((cos(((b+e)+pi))+a)+e)))+1.35))"
-"x*y/z-x*y*z*x/y+z*x/y-z*x/y/z+x/y*z+x/y+z-x/y-z"
-"x+y/z+x+y*z+x+y-z-x+y+z+x-y/z*x-y*z-x*y+z+x*y-z"
-"x/y*z*x/y/z-x*y+z+x*y-z-x*y*z-x*y/z*x-y/z*x-y/z"
-"((((((((((b-e)/pi)*a)*b)/a)+a)+e)+b)/1.63)-3.35)"
-"(((((sin(((e*((a+a)/0.23))-b))+a)+b)+a)-3.93)+a)"
-"((((pi*(((pi+(((a-e)*b)+1.99))+a)/b))+pi)+pi)+a)"
-"(3.90-((b+((((((pi+b)+2.55)+b)+pi)+3.80)*a))-e))"
-"(pi+((((((((2.93*1.77)/a)-pi)*e)+e)+e)/a)+2.61))"
-"(pi-tan(((cos((((((a*b)*a)*b)*pi)+1.80))-b)/b)))"
-"(((((((((b-0.79)+2.44)+b)+2.13)/3.71)-b)+a)-a)+a)"
-"(tan(sin(sin((((((pi+pi)*a)+3.56)+b)+pi))))+1.50)"
-"((((tan((a+((((e+3.01)/e)*b)-0.93)))*pi)+pi)/a)-b)"
-"(e+(tan(((((((e+3.54)+2.95)+b)/1.72)+1.01)-e))+b))"
-"cos((((tan(tan(((b+((3.89-b)-a))/3.42)))+a)/a)+b))"
-"cos(tan(((((((a/cos(pi))*e)-e)-2.89)+2.65)-1.24)))"
-"((((((((((e+a)/1.07)*e)*e)/pi)+0.02)+a)/a)*b)+2.61)"
-"((3.123*y*z+w+3.123+y/z/w+3.123+y/z+w*3.123*y+z*w))"
-"((3.123*y*z-w*3.123-y*z/w*3.123-y-z*w+3.123/y-z*w))"
-"((3.123*y*z-w/3.123+y+z*w/3.123+y-z/w-3.123*y+z-w))"
-"((3.123*y+z*w*3.123/y-z+w*3.123*y-z+w+3.123/y/z+w))"
-"((3.123*y+z*w-3.123+y-z-w-3.123-y-z/w/3.123+y/z*w))"
-"((3.123*y+z+w*3.123/y/z-w*3.123*y/z-w+3.123-y-z/w))"
-"((3.123*y+z-w+3.123/y*z-w+3.123*y*z-w*3.123-y*z/w))"
-"((3.123*y+z/w/3.123+y*z-w/3.123+y+z-w-3.123-y/z*w))"
-"((3.123*y-z*w*3.123+y+z-w*3.123+y-z-w+3.123+y/z/w))"
-"((3.123*y-z*w/3.123*y+z+w/3.123/y-z+w-3.123*y/z-w))"
-"((3.123*y-z+w+3.123/y/z+w+3.123*y/z+w*3.123-y+z/w))"
-"((3.123*y-z-w*3.123-y*z/w*3.123+y*z/w+3.123-y/z/w))"
-"((3.123*y-z/w+3.123+y/z-w+3.123+y*z-w*3.123-y/z/w))"
-"((3.123*y/z+w*3.123-y+z/w*3.123+y/z*w+3.123*y+z/w))"
-"((3.123*y/z-w+3.123-y-z/w+3.123-y+z*w*3.123/y+z/w))"
-"((3.123*y/z-w/3.123-y-z*w/3.123-y+z/w-3.123+y*z*w))"
-"((3.123+y*z*w+3.123-y/z*w+3.123+y/z*w*3.123+y*z-w))"
-"((3.123+y*z*w-3.123/y/z-w-3.123*y/z-w/3.123-y-z*w))"
-"((3.123+y*z-w*3.123-y/z/w*3.123-y/z*w+3.123+y-z*w))"
-"((3.123+y*z-w-3.123+y-z*w-3.123*y-z*w/3.123*y+z+w))"
-"((3.123+y*z/w+3.123*y/z-w+3.123-y/z-w*3.123-y+z/w))"
-"((3.123+y*z/w+3.123-y/z/w+3.123-y*z*w*3.123/y-z*w))"
-"((3.123+y*z/w-3.123+y+z/w-3.123-y/z*w/3.123-y*z-w))"
-"((3.123+y+z*w*3.123/y+z-w*3.123*y+z-w+3.123/y*z-w))"
-"((3.123+y+z*w-3.123/y*z-w-3.123*y*z-w/3.123+y+z*w))"
-"((3.123+y+z-w-3.123-y/z*w-3.123+y/z/w/3.123+y-z/w))"
-"((3.123+y+z/w+3.123*y*z-w+3.123-y*z-w*3.123+y-z/w))"
-"((3.123+y+z/w/3.123*y-z-w/3.123/y+z-w-3.123+y*z/w))"
-"((3.123+y-z*w+3.123/y+z+w+3.123*y+z+w*3.123/y/z-w))"
-"((3.123+y-z*w/3.123-y/z-w/3.123+y/z-w-3.123-y+z*w))"
-"((3.123+y-z-w+3.123+y/z/w+3.123+y/z*w*3.123+y+z*w))"
-"((3.123+y-z/w*3.123+y/z-w*3.123/y*z-w+3.123+y+z/w))"
-"((3.123+y-z/w-3.123*y+z-w-3.123/y+z+w/3.123*y*z-w))"
-"((3.123+y/z*w*3.123+y*z-w*3.123-y/z*w+3.123*y-z*w))"
-"((3.123+y/z*w*3.123+y+z*w*3.123+y+z/w+3.123*y*z-w))"
-"((3.123+y/z*w+3.123*y+z/w+3.123*y-z*w*3.123+y+z-w))"
-"((3.123+y/z+w*3.123*y+z*w*3.123/y/z-w+3.123-y-z/w))"
-"((3.123+y/z-w-3.123-y+z*w-3.123+y+z/w/3.123*y-z-w))"
-"((3.123+y/z-w/3.123-y*z*w/3.123-y/z/w-3.123+y*z/w))"
-"((3.123+y/z/w/3.123*y-z*w/3.123*y+z*w-3.123+y-z-w))"
-"((3.123+y/z/w/3.123+y-z/w/3.123+y+z*w-3.123/y*z-w))"
-"((3.123-y*z*w*3.123+y*z*w*3.123+y*z/w+3.123*y/z-w))"
-"((3.123-y*z*w*3.123/y-z*w*3.123/y+z*w+3.123-y/z+w))"
-"((3.123-y*z+w*3.123/y*z+w*3.123*y*z+w+3.123+y/z/w))"
-"((3.123-y*z-w*3.123+y-z/w*3.123+y-z*w+3.123/y+z+w))"
-"((3.123-y*z/w-3.123-y/z*w-3.123-y/z/w/3.123*y+z*w))"
-"((3.123-y*z/w-3.123/y+z*w-3.123/y-z*w/3.123-y*z+w))"
-"((3.123-y*z/w/3.123+y/z+w/3.123+y*z*w-3.123/y/z-w))"
-"((3.123-y+z*w*3.123/y+z/w*3.123*y-z/w+3.123+y/z-w))"
-"((3.123-y+z*w+3.123/y-z-w+3.123*y-z-w*3.123-y*z/w))"
-"((3.123-y+z+w-3.123*y*z+w-3.123-y*z/w/3.123+y/z+w))"
-"((3.123-y+z/w-3.123*y-z/w-3.123*y+z/w/3.123+y*z-w))"
-"((3.123-y+z/w-3.123+y*z*w-3.123/y-z-w/3.123+y/z*w))"
-"((3.123-y-z*w*3.123+y*z/w*3.123+y*z*w+3.123-y/z*w))"
-"((3.123-y-z*w+3.123/y-z*w+3.123/y-z/w*3.123-y+z+w))"
-"((3.123-y-z+w+3.123-y*z/w+3.123-y*z*w*3.123+y*z*w))"
-"((3.123-y-z/w/3.123+y/z*w/3.123+y*z/w-3.123+y+z/w))"
-"((3.123-y-z/w/3.123/y-z/w/3.123/y+z/w-3.123-y-z+w))"
-"((3.123-y/z*w+3.123*y-z*w+3.123*y+z*w*3.123/y-z+w))"
-"((3.123-y/z*w+3.123+y-z*w+3.123+y-z/w*3.123+y/z-w))"
-"((3.123-y/z*w/3.123-y*z-w/3.123+y*z-w-3.123+y-z*w))"
-"((3.123-y/z+w/3.123*y/z+w/3.123/y*z+w-3.123+y/z*w))"
-"((3.123-y/z-w*3.123-y+z/w*3.123-y+z*w+3.123/y-z-w))"
-"((3.123-y/z/w-3.123+y*z/w-3.123+y-z*w/3.123-y/z-w))"
-"((3.123-y/z/w/3.123*y+z*w/3.123/y-z*w-3.123*y-z+w))"
-"((3.123/y*z+w-3.123+y/z*w-3.123+y/z/w/3.123*y-z*w))"
-"((3.123/y*z-w+3.123+y+z/w+3.123+y+z*w*3.123/y+z-w))"
-"((3.123/y*z-w/3.123-y*z*w/3.123-y*z/w-3.123/y+z*w))"
-"((3.123/y+z*w+3.123-y/z+w+3.123-y*z+w*3.123/y*z+w))"
-"((3.123/y+z+w/3.123*y*z-w/3.123/y/z-w-3.123-y-z*w))"
-"((3.123/y+z-w-3.123+y*z/w-3.123/y*z-w/3.123-y*z*w))"
-"((3.123/y+z/w-3.123-y-z+w-3.123+y/z-w/3.123-y*z*w))"
-"((3.123/y-z*w-3.123*y-z+w-3.123-y/z+w/3.123*y/z+w))"
-"((3.123/y-z*w/3.123-y*z+w/3.123-y+z+w-3.123*y*z+w))"
-"((3.123/y-z+w-3.123*y/z-w-3.123/y/z+w/3.123-y+z*w))"
-"((3.123/y-z-w/3.123+y/z*w/3.123-y*z/w-3.123-y/z*w))"
-"((3.123/y-z/w*3.123-y+z+w*3.123-y-z+w+3.123-y*z/w))"
-"((3.123/y/z+w/3.123-y+z*w/3.123-y+z/w-3.123*y-z/w))"
-"((3.123/y/z-w+3.123-y-z/w+3.123-y-z*w*3.123+y*z/w))"
-"((3.123/y/z-w-3.123-y-z*w-3.123-y-z/w/3.123/y-z/w))"
-"((pi+(0.76+(sin((tan(cos((e/0.36)))*1.15))*e)))*pi)"
-"((x*5.123*z+w+x+5.123/z/w+x+5.123/z+w*x*5.123+z*w))"
-"((x*5.123*z-w*x-5.123*z/w*x-5.123-z*w+x/5.123-z*w))"
-"((x*5.123*z-w/x+5.123+z*w/x+5.123-z/w-x*5.123+z-w))"
-"((x*5.123+z*w*x/5.123-z+w*x*5.123-z+w+x/5.123/z+w))"
-"((x*5.123+z*w-x+5.123-z-w-x-5.123-z/w/x+5.123/z*w))"
-"((x*5.123+z+w*x/5.123/z-w*x*5.123/z-w+x-5.123-z/w))"
-"((x*5.123+z-w+x/5.123*z-w+x*5.123*z-w*x-5.123*z/w))"
-"((x*5.123+z/w/x+5.123*z-w/x+5.123+z-w-x-5.123/z*w))"
-"((x*5.123-z*w*x+5.123+z-w*x+5.123-z-w+x+5.123/z/w))"
-"((x*5.123-z*w/x*5.123+z+w/x/5.123-z+w-x*5.123/z-w))"
-"((x*5.123-z+w+x/5.123/z+w+x*5.123/z+w*x-5.123+z/w))"
-"((x*5.123-z-w*x-5.123*z/w*x+5.123*z/w+x-5.123/z/w))"
-"((x*5.123-z/w+x+5.123/z-w+x+5.123*z-w*x-5.123/z/w))"
-"((x*5.123/z+w*x-5.123+z/w*x+5.123/z*w+x*5.123+z/w))"
-"((x*5.123/z-w+x-5.123-z/w+x-5.123+z*w*x/5.123+z/w))"
-"((x*5.123/z-w/x-5.123-z*w/x-5.123+z/w-x+5.123*z*w))"
-"((x*y*7.123+w+x+y/7.123/w+x+y/7.123+w*x*y+7.123*w))"
-"((x*y*7.123-w*x-y*7.123/w*x-y-7.123*w+x/y-7.123*w))"
-"((x*y*7.123-w/x+y+7.123*w/x+y-7.123/w-x*y+7.123-w))"
-"((x*y*z+9.123+x+y/z/9.123+x+y/z+9.123*x*y+z*9.123))"
-"((x*y*z+x+y/z+x+y+z+x-y*z+x+y-z-x*y+z-x*y-z/x/y+z))"
-"((x*y*z-9.123*x-y*z/9.123*x-y-z*9.123+x/y-z*9.123))"
-"((x*y*z-9.123/x+y+z*9.123/x+y-z/9.123-x*y+z-9.123))"
-"((x*y*z-x/y*z-x/y/z-x-y/z-x*y+z*x-y*z*x+y*z*x+y+z))"
-"((x*y+7.123*w*x/y-7.123+w*x*y-7.123+w+x/y/7.123+w))"
-"((x*y+7.123*w-x+y-7.123-w-x-y-7.123/w/x+y/7.123*w))"
-"((x*y+7.123+w*x/y/7.123-w*x*y/7.123-w+x-y-7.123/w))"
-"((x*y+7.123-w+x/y*7.123-w+x*y*7.123-w*x-y*7.123/w))"
-"((x*y+7.123/w/x+y*7.123-w/x+y+7.123-w-x-y/7.123*w))"
-"((x*y+z*9.123*x/y-z+9.123*x*y-z+9.123+x/y/z+9.123))"
-"((x*y+z*9.123-x+y-z-9.123-x-y-z/9.123/x+y/z*9.123))"
-"((x*y+z*x-y*z*x+y*z*x+y+z*x+y/z/x-y/z/x-y*z-x/y/z))"
-"((x*y+z*x/y*z*x/y+z*x*y/z*x/y-z/x-y+z/x-y-z/x+y/z))"
-"((x*y+z+9.123*x/y/z-9.123*x*y/z-9.123+x-y-z/9.123))"
-"((x*y+z-9.123+x/y*z-9.123+x*y*z-9.123*x-y*z/9.123))"
-"((x*y+z/9.123/x+y*z-9.123/x+y+z-9.123-x-y/z*9.123))"
-"((x*y-7.123*w*x+y+7.123-w*x+y-7.123-w+x+y/7.123/w))"
-"((x*y-7.123*w/x*y+7.123+w/x/y-7.123+w-x*y/7.123-w))"
-"((x*y-7.123+w+x/y/7.123+w+x*y/7.123+w*x-y+7.123/w))"
-"((x*y-7.123-w*x-y*7.123/w*x+y*7.123/w+x-y/7.123/w))"
-"((x*y-7.123/w+x+y/7.123-w+x+y*7.123-w*x-y/7.123/w))"
-"((x*y-z*9.123*x+y+z-9.123*x+y-z-9.123+x+y/z/9.123))"
-"((x*y-z*9.123/x*y+z+9.123/x/y-z+9.123-x*y/z-9.123))"
-"((x*y-z+9.123+x/y/z+9.123+x*y/z+9.123*x-y+z/9.123))"
-"((x*y-z-9.123*x-y*z/9.123*x+y*z/9.123+x-y/z/9.123))"
-"((x*y-z/9.123+x+y/z-9.123+x+y*z-9.123*x-y/z/9.123))"
-"((x*y-z/x+y*z/x+y/z/x-y/z/x+y+z+x-y*z+x*y+z*x/y*z))"
-"((x*y-z/x/y+z/x/y-z/x-y+z/x/y*z+x-y-z+x-y/z+x+y*z))"
-"((x*y/7.123+w*x-y+7.123/w*x+y/7.123*w+x*y+7.123/w))"
-"((x*y/7.123-w+x-y-7.123/w+x-y+7.123*w*x/y+7.123/w))"
-"((x*y/7.123-w/x-y-7.123*w/x-y+7.123/w-x+y*7.123*w))"
-"((x*y/z+9.123*x-y+z/9.123*x+y/z*9.123+x*y+z/9.123))"
-"((x*y/z+x/y-z+x/y*z+x-y-z+x/y/z-x-y/z-x-y*z-x+y-z))"
-"((x*y/z-9.123+x-y-z/9.123+x-y+z*9.123*x/y+z/9.123))"
-"((x*y/z-9.123/x-y-z*9.123/x-y+z/9.123-x+y*z*9.123))"
-"((x*y/z-x+y+z-x+y-z-x*y+z-x+y/z+x*y-z+x*y/z+x/y-z))"
-"((x+5.123*z*w+x-5.123/z*w+x+5.123/z*w*x+5.123*z-w))"
-"((x+5.123*z*w-x/5.123/z-w-x*5.123/z-w/x-5.123-z*w))"
-"((x+5.123*z-w*x-5.123/z/w*x-5.123/z*w+x+5.123-z*w))"
-"((x+5.123*z-w-x+5.123-z*w-x*5.123-z*w/x*5.123+z+w))"
-"((x+5.123*z/w+x*5.123/z-w+x-5.123/z-w*x-5.123+z/w))"
-"((x+5.123*z/w+x-5.123/z/w+x-5.123*z*w*x/5.123-z*w))"
-"((x+5.123*z/w-x+5.123+z/w-x-5.123/z*w/x-5.123*z-w))"
-"((x+5.123+z*w*x/5.123+z-w*x*5.123+z-w+x/5.123*z-w))"
-"((x+5.123+z*w-x/5.123*z-w-x*5.123*z-w/x+5.123+z*w))"
-"((x+5.123+z-w-x-5.123/z*w-x+5.123/z/w/x+5.123-z/w))"
-"((x+5.123+z/w+x*5.123*z-w+x-5.123*z-w*x+5.123-z/w))"
-"((x+5.123+z/w/x*5.123-z-w/x/5.123+z-w-x+5.123*z/w))"
-"((x+5.123-z*w+x/5.123+z+w+x*5.123+z+w*x/5.123/z-w))"
-"((x+5.123-z*w/x-5.123/z-w/x+5.123/z-w-x-5.123+z*w))"
-"((x+5.123-z-w+x+5.123/z/w+x+5.123/z*w*x+5.123+z*w))"
-"((x+5.123-z/w*x+5.123/z-w*x/5.123*z-w+x+5.123+z/w))"
-"((x+5.123-z/w-x*5.123+z-w-x/5.123+z+w/x*5.123*z-w))"
-"((x+5.123/z*w*x+5.123*z-w*x-5.123/z*w+x*5.123-z*w))"
-"((x+5.123/z*w*x+5.123+z*w*x+5.123+z/w+x*5.123*z-w))"
-"((x+5.123/z*w+x*5.123+z/w+x*5.123-z*w*x+5.123+z-w))"
-"((x+5.123/z+w*x*5.123+z*w*x/5.123/z-w+x-5.123-z/w))"
-"((x+5.123/z-w-x-5.123+z*w-x+5.123+z/w/x*5.123-z-w))"
-"((x+5.123/z-w/x-5.123*z*w/x-5.123/z/w-x+5.123*z/w))"
-"((x+5.123/z/w/x*5.123-z*w/x*5.123+z*w-x+5.123-z-w))"
-"((x+5.123/z/w/x+5.123-z/w/x+5.123+z*w-x/5.123*z-w))"
-"((x+y*7.123*w+x-y/7.123*w+x+y/7.123*w*x+y*7.123-w))"
-"((x+y*7.123*w-x/y/7.123-w-x*y/7.123-w/x-y-7.123*w))"
-"((x+y*7.123-w*x-y/7.123/w*x-y/7.123*w+x+y-7.123*w))"
-"((x+y*7.123-w-x+y-7.123*w-x*y-7.123*w/x*y+7.123+w))"
-"((x+y*7.123/w+x*y/7.123-w+x-y/7.123-w*x-y+7.123/w))"
-"((x+y*7.123/w+x-y/7.123/w+x-y*7.123*w*x/y-7.123*w))"
-"((x+y*7.123/w-x+y+7.123/w-x-y/7.123*w/x-y*7.123-w))"
-"((x+y*z*9.123+x-y/z*9.123+x+y/z*9.123*x+y*z-9.123))"
-"((x+y*z*9.123-x/y/z-9.123-x*y/z-9.123/x-y-z*9.123))"
-"((x+y*z*x+y+z*x-y/z+x/y-z*x-y*z-x/y/z-x/y*z-x*y*z))"
-"((x+y*z-9.123*x-y/z/9.123*x-y/z*9.123+x+y-z*9.123))"
-"((x+y*z-9.123-x+y-z*9.123-x*y-z*9.123/x*y+z+9.123))"
-"((x+y*z-x*y/z-x*y*z-x/y*z-x/y+z*x/y/z*x*y+z*x-y*z))"
-"((x+y*z/9.123+x*y/z-9.123+x-y/z-9.123*x-y+z/9.123))"
-"((x+y*z/9.123+x-y/z/9.123+x-y*z*9.123*x/y-z*9.123))"
-"((x+y*z/9.123-x+y+z/9.123-x-y/z*9.123/x-y*z-9.123))"
-"((x+y+7.123*w*x/y+7.123-w*x*y+7.123-w+x/y*7.123-w))"
-"((x+y+7.123*w-x/y*7.123-w-x*y*7.123-w/x+y+7.123*w))"
-"((x+y+7.123-w-x-y/7.123*w-x+y/7.123/w/x+y-7.123/w))"
-"((x+y+7.123/w+x*y*7.123-w+x-y*7.123-w*x+y-7.123/w))"
-"((x+y+7.123/w/x*y-7.123-w/x/y+7.123-w-x+y*7.123/w))"
-"((x+y+z*9.123*x/y+z-9.123*x*y+z-9.123+x/y*z-9.123))"
-"((x+y+z*9.123-x/y*z-9.123-x*y*z-9.123/x+y+z*9.123))"
-"((x+y+z+x-y*z+x*y+z*x/y*z+x*y-z/x/y+z/x/y-z/x-y+z))"
-"((x+y+z-9.123-x-y/z*9.123-x+y/z/9.123/x+y-z/9.123))"
-"((x+y+z/9.123+x*y*z-9.123+x-y*z-9.123*x+y-z/9.123))"
-"((x+y+z/9.123/x*y-z-9.123/x/y+z-9.123-x+y*z/9.123))"
-"((x+y+z/x/y+z/x/y-z/x*y+z/x/y/z+x*y-z+x*y*z+x+y/z))"
-"((x+y-7.123*w+x/y+7.123+w+x*y+7.123+w*x/y/7.123-w))"
-"((x+y-7.123*w/x-y/7.123-w/x+y/7.123-w-x-y+7.123*w))"
-"((x+y-7.123-w+x+y/7.123/w+x+y/7.123*w*x+y+7.123*w))"
-"((x+y-7.123/w*x+y/7.123-w*x/y*7.123-w+x+y+7.123/w))"
-"((x+y-7.123/w-x*y+7.123-w-x/y+7.123+w/x*y*7.123-w))"
-"((x+y-z*9.123+x/y+z+9.123+x*y+z+9.123*x/y/z-9.123))"
-"((x+y-z*9.123/x-y/z-9.123/x+y/z-9.123-x-y+z*9.123))"
-"((x+y-z*x*y*z*x/y+z*x/y/z*x/y-z/x*y+z/x*y-z/x+y*z))"
-"((x+y-z-9.123+x+y/z/9.123+x+y/z*9.123*x+y+z*9.123))"
-"((x+y-z-x*y+z-x*y-z/x/y+z-x*y/z+x/y-z+x/y*z+x-y-z))"
-"((x+y-z/9.123*x+y/z-9.123*x/y*z-9.123+x+y+z/9.123))"
-"((x+y-z/9.123-x*y+z-9.123-x/y+z+9.123/x*y*z-9.123))"
-"((x+y/7.123*w*x+y*7.123-w*x-y/7.123*w+x*y-7.123*w))"
-"((x+y/7.123*w*x+y+7.123*w*x+y+7.123/w+x*y*7.123-w))"
-"((x+y/7.123*w+x*y+7.123/w+x*y-7.123*w*x+y+7.123-w))"
-"((x+y/7.123+w*x*y+7.123*w*x/y/7.123-w+x-y-7.123/w))"
-"((x+y/7.123-w-x-y+7.123*w-x+y+7.123/w/x*y-7.123-w))"
-"((x+y/7.123-w/x-y*7.123*w/x-y/7.123/w-x+y*7.123/w))"
-"((x+y/7.123/w/x*y-7.123*w/x*y+7.123*w-x+y-7.123-w))"
-"((x+y/7.123/w/x+y-7.123/w/x+y+7.123*w-x/y*7.123-w))"
-"((x+y/z*9.123*x+y*z-9.123*x-y/z*9.123+x*y-z*9.123))"
-"((x+y/z*9.123*x+y+z*9.123*x+y+z/9.123+x*y*z-9.123))"
-"((x+y/z*9.123+x*y+z/9.123+x*y-z*9.123*x+y+z-9.123))"
-"((x+y/z+9.123*x*y+z*9.123*x/y/z-9.123+x-y-z/9.123))"
-"((x+y/z+x*y-z+x*y/z+x/y-z+x*y*z-x/y*z-x/y/z-x-y/z))"
-"((x+y/z-9.123-x-y+z*9.123-x+y+z/9.123/x*y-z-9.123))"
-"((x+y/z-9.123/x-y*z*9.123/x-y/z/9.123-x+y*z/9.123))"
-"((x+y/z/9.123/x*y-z*9.123/x*y+z*9.123-x+y-z-9.123))"
-"((x+y/z/9.123/x+y-z/9.123/x+y+z*9.123-x/y*z-9.123))"
-"((x+y/z/x-y/z/x-y*z-x/y/z/x*y+z*x/y*z*x/y+z*x*y/z))"
-"((x-5.123*z*w*x+5.123*z*w*x+5.123*z/w+x*5.123/z-w))"
-"((x-5.123*z*w*x/5.123-z*w*x/5.123+z*w+x-5.123/z+w))"
-"((x-5.123*z+w*x/5.123*z+w*x*5.123*z+w+x+5.123/z/w))"
-"((x-5.123*z-w*x+5.123-z/w*x+5.123-z*w+x/5.123+z+w))"
-"((x-5.123*z/w-x-5.123/z*w-x-5.123/z/w/x*5.123+z*w))"
-"((x-5.123*z/w-x/5.123+z*w-x/5.123-z*w/x-5.123*z+w))"
-"((x-5.123*z/w/x+5.123/z+w/x+5.123*z*w-x/5.123/z-w))"
-"((x-5.123+z*w*x/5.123+z/w*x*5.123-z/w+x+5.123/z-w))"
-"((x-5.123+z*w+x/5.123-z-w+x*5.123-z-w*x-5.123*z/w))"
-"((x-5.123+z+w-x*5.123*z+w-x-5.123*z/w/x+5.123/z+w))"
-"((x-5.123+z/w-x*5.123-z/w-x*5.123+z/w/x+5.123*z-w))"
-"((x-5.123+z/w-x+5.123*z*w-x/5.123-z-w/x+5.123/z*w))"
-"((x-5.123-z*w*x+5.123*z/w*x+5.123*z*w+x-5.123/z*w))"
-"((x-5.123-z*w+x/5.123-z*w+x/5.123-z/w*x-5.123+z+w))"
-"((x-5.123-z+w+x-5.123*z/w+x-5.123*z*w*x+5.123*z*w))"
-"((x-5.123-z/w/x+5.123/z*w/x+5.123*z/w-x+5.123+z/w))"
-"((x-5.123-z/w/x/5.123-z/w/x/5.123+z/w-x-5.123-z+w))"
-"((x-5.123/z*w+x*5.123-z*w+x*5.123+z*w*x/5.123-z+w))"
-"((x-5.123/z*w+x+5.123-z*w+x+5.123-z/w*x+5.123/z-w))"
-"((x-5.123/z*w/x-5.123*z-w/x+5.123*z-w-x+5.123-z*w))"
-"((x-5.123/z+w/x*5.123/z+w/x/5.123*z+w-x+5.123/z*w))"
-"((x-5.123/z-w*x-5.123+z/w*x-5.123+z*w+x/5.123-z-w))"
-"((x-5.123/z/w-x+5.123*z/w-x+5.123-z*w/x-5.123/z-w))"
-"((x-5.123/z/w/x*5.123+z*w/x/5.123-z*w-x*5.123-z+w))"
-"((x-y*7.123*w*x+y*7.123*w*x+y*7.123/w+x*y/7.123-w))"
-"((x-y*7.123*w*x/y-7.123*w*x/y+7.123*w+x-y/7.123+w))"
-"((x-y*7.123+w*x/y*7.123+w*x*y*7.123+w+x+y/7.123/w))"
-"((x-y*7.123-w*x+y-7.123/w*x+y-7.123*w+x/y+7.123+w))"
-"((x-y*7.123/w-x-y/7.123*w-x-y/7.123/w/x*y+7.123*w))"
-"((x-y*7.123/w-x/y+7.123*w-x/y-7.123*w/x-y*7.123+w))"
-"((x-y*7.123/w/x+y/7.123+w/x+y*7.123*w-x/y/7.123-w))"
-"((x-y*z*9.123*x+y*z*9.123*x+y*z/9.123+x*y/z-9.123))"
-"((x-y*z*9.123*x/y-z*9.123*x/y+z*9.123+x-y/z+9.123))"
-"((x-y*z+9.123*x/y*z+9.123*x*y*z+9.123+x+y/z/9.123))"
-"((x-y*z-9.123*x+y-z/9.123*x+y-z*9.123+x/y+z+9.123))"
-"((x-y*z-x+y-z-x+y+z/x/y+z-x-y/z+x/y-z+x/y/z+x*y-z))"
-"((x-y*z-x/y/z-x/y*z-x*y*z-x/y+z*x*y/z*x-y+z*x+y-z))"
-"((x-y*z/9.123-x-y/z*9.123-x-y/z/9.123/x*y+z*9.123))"
-"((x-y*z/9.123-x/y+z*9.123-x/y-z*9.123/x-y*z+9.123))"
-"((x-y*z/9.123/x+y/z+9.123/x+y*z*9.123-x/y/z-9.123))"
-"((x-y+7.123*w*x/y+7.123/w*x*y-7.123/w+x+y/7.123-w))"
-"((x-y+7.123*w+x/y-7.123-w+x*y-7.123-w*x-y*7.123/w))"
-"((x-y+7.123+w-x*y*7.123+w-x-y*7.123/w/x+y/7.123+w))"
-"((x-y+7.123/w-x*y-7.123/w-x*y+7.123/w/x+y*7.123-w))"
-"((x-y+7.123/w-x+y*7.123*w-x/y-7.123-w/x+y/7.123*w))"
-"((x-y+z*9.123*x/y+z/9.123*x*y-z/9.123+x+y/z-9.123))"
-"((x-y+z*9.123+x/y-z-9.123+x*y-z-9.123*x-y*z/9.123))"
-"((x-y+z*x+y-z*x+y/z+x*y-z*x+y*z-x*y/z-x*y*z-x/y*z))"
-"((x-y+z+9.123-x*y*z+9.123-x-y*z/9.123/x+y/z+9.123))"
-"((x-y+z/9.123-x*y-z/9.123-x*y+z/9.123/x+y*z-9.123))"
-"((x-y+z/9.123-x+y*z*9.123-x/y-z-9.123/x+y/z*9.123))"
-"((x-y-7.123*w*x+y*7.123/w*x+y*7.123*w+x-y/7.123*w))"
-"((x-y-7.123*w+x/y-7.123*w+x/y-7.123/w*x-y+7.123+w))"
-"((x-y-7.123+w+x-y*7.123/w+x-y*7.123*w*x+y*7.123*w))"
-"((x-y-7.123/w/x+y/7.123*w/x+y*7.123/w-x+y+7.123/w))"
-"((x-y-7.123/w/x/y-7.123/w/x/y+7.123/w-x-y-7.123+w))"
-"((x-y-z*9.123*x+y*z/9.123*x+y*z*9.123+x-y/z*9.123))"
-"((x-y-z*9.123+x/y-z*9.123+x/y-z/9.123*x-y+z+9.123))"
-"((x-y-z+9.123+x-y*z/9.123+x-y*z*9.123*x+y*z*9.123))"
-"((x-y-z/9.123/x+y/z*9.123/x+y*z/9.123-x+y+z/9.123))"
-"((x-y-z/9.123/x/y-z/9.123/x/y+z/9.123-x-y-z+9.123))"
-"((x-y-z/x+y/z/x+y*z-x*y/z/x+y-z*x*y*z*x/y+z*x/y/z))"
-"((x-y/7.123*w+x*y-7.123*w+x*y+7.123*w*x/y-7.123+w))"
-"((x-y/7.123*w+x+y-7.123*w+x+y-7.123/w*x+y/7.123-w))"
-"((x-y/7.123*w/x-y*7.123-w/x+y*7.123-w-x+y-7.123*w))"
-"((x-y/7.123+w/x*y/7.123+w/x/y*7.123+w-x+y/7.123*w))"
-"((x-y/7.123-w*x-y+7.123/w*x-y+7.123*w+x/y-7.123-w))"
-"((x-y/7.123/w-x+y*7.123/w-x+y-7.123*w/x-y/7.123-w))"
-"((x-y/7.123/w/x*y+7.123*w/x/y-7.123*w-x*y-7.123+w))"
-"((x-y/z*9.123+x*y-z*9.123+x*y+z*9.123*x/y-z+9.123))"
-"((x-y/z*9.123+x+y-z*9.123+x+y-z/9.123*x+y/z-9.123))"
-"((x-y/z*9.123/x-y*z-9.123/x+y*z-9.123-x+y-z*9.123))"
-"((x-y/z+9.123/x*y/z+9.123/x/y*z+9.123-x+y/z*9.123))"
-"((x-y/z+x+y*z+x+y-z*x*y*z+x+y+z/x/y+z/x/y-z/x*y+z))"
-"((x-y/z+x/y-z+x/y/z+x*y-z+x/y*z-x*y*z-x*y/z-x+y+z))"
-"((x-y/z-9.123*x-y+z/9.123*x-y+z*9.123+x/y-z-9.123))"
-"((x-y/z/9.123-x+y*z/9.123-x+y-z*9.123/x-y/z-9.123))"
-"((x-y/z/9.123/x*y+z*9.123/x/y-z*9.123-x*y-z+9.123))"
-"((x/5.123*z+w-x+5.123/z*w-x+5.123/z/w/x*5.123-z*w))"
-"((x/5.123*z-w+x+5.123+z/w+x+5.123+z*w*x/5.123+z-w))"
-"((x/5.123*z-w/x-5.123*z*w/x-5.123*z/w-x/5.123+z*w))"
-"((x/5.123+z*w+x-5.123/z+w+x-5.123*z+w*x/5.123*z+w))"
-"((x/5.123+z+w/x*5.123*z-w/x/5.123/z-w-x-5.123-z*w))"
-"((x/5.123+z-w-x+5.123*z/w-x/5.123*z-w/x-5.123*z*w))"
-"((x/5.123+z/w-x-5.123-z+w-x+5.123/z-w/x-5.123*z*w))"
-"((x/5.123-z*w-x*5.123-z+w-x-5.123/z+w/x*5.123/z+w))"
-"((x/5.123-z*w/x-5.123*z+w/x-5.123+z+w-x*5.123*z+w))"
-"((x/5.123-z+w-x*5.123/z-w-x/5.123/z+w/x-5.123+z*w))"
-"((x/5.123-z-w/x+5.123/z*w/x-5.123*z/w-x-5.123/z*w))"
-"((x/5.123-z/w*x-5.123+z+w*x-5.123-z+w+x-5.123*z/w))"
-"((x/5.123/z+w/x-5.123+z*w/x-5.123+z/w-x*5.123-z/w))"
-"((x/5.123/z-w+x-5.123-z/w+x-5.123-z*w*x+5.123*z/w))"
-"((x/5.123/z-w-x-5.123-z*w-x-5.123-z/w/x/5.123-z/w))"
-"((x/y*7.123+w-x+y/7.123*w-x+y/7.123/w/x*y-7.123*w))"
-"((x/y*7.123-w+x+y+7.123/w+x+y+7.123*w*x/y+7.123-w))"
-"((x/y*7.123-w/x-y*7.123*w/x-y*7.123/w-x/y+7.123*w))"
-"((x/y*z+9.123-x+y/z*9.123-x+y/z/9.123/x*y-z*9.123))"
-"((x/y*z+x-y-z+x-y/z+x+y*z+x-y*z-x+y-z-x+y+z/x/y+z))"
-"((x/y*z-9.123+x+y+z/9.123+x+y+z*9.123*x/y+z-9.123))"
-"((x/y*z-9.123/x-y*z*9.123/x-y*z/9.123-x/y+z*9.123))"
-"((x/y*z-x*y*z-x*y/z-x+y+z-x-y+z*x+y-z*x+y/z+x*y-z))"
-"((x/y+7.123*w+x-y/7.123+w+x-y*7.123+w*x/y*7.123+w))"
-"((x/y+7.123+w/x*y*7.123-w/x/y/7.123-w-x-y-7.123*w))"
-"((x/y+7.123-w-x+y*7.123/w-x/y*7.123-w/x-y*7.123*w))"
-"((x/y+7.123/w-x-y-7.123+w-x+y/7.123-w/x-y*7.123*w))"
-"((x/y+z*9.123+x-y/z+9.123+x-y*z+9.123*x/y*z+9.123))"
-"((x/y+z*x*y/z*x-y+z*x+y-z*x-y-z/x+y/z/x+y*z-x*y/z))"
-"((x/y+z*x/y/z*x*y+z*x-y*z*x*y-z/x+y*z/x+y/z/x-y/z))"
-"((x/y+z+9.123/x*y*z-9.123/x/y/z-9.123-x-y-z*9.123))"
-"((x/y+z-9.123-x+y*z/9.123-x/y*z-9.123/x-y*z*9.123))"
-"((x/y+z/9.123-x-y-z+9.123-x+y/z-9.123/x-y*z*9.123))"
-"((x/y-7.123*w-x*y-7.123+w-x-y/7.123+w/x*y/7.123+w))"
-"((x/y-7.123*w/x-y*7.123+w/x-y+7.123+w-x*y*7.123+w))"
-"((x/y-7.123+w-x*y/7.123-w-x/y/7.123+w/x-y+7.123*w))"
-"((x/y-7.123-w/x+y/7.123*w/x-y*7.123/w-x-y/7.123*w))"
-"((x/y-7.123/w*x-y+7.123+w*x-y-7.123+w+x-y*7.123/w))"
-"((x/y-z*9.123-x*y-z+9.123-x-y/z+9.123/x*y/z+9.123))"
-"((x/y-z*9.123/x-y*z+9.123/x-y+z+9.123-x*y*z+9.123))"
-"((x/y-z+9.123-x*y/z-9.123-x/y/z+9.123/x-y+z*9.123))"
-"((x/y-z-9.123/x+y/z*9.123/x-y*z/9.123-x-y/z*9.123))"
-"((x/y-z/9.123*x-y+z+9.123*x-y-z+9.123+x-y*z/9.123))"
-"((x/y-z/x*y+z/x*y-z/x+y*z/x*y*z+x+y/z+x+y+z+x-y*z))"
-"((x/y-z/x-y+z/x-y-z/x+y/z/x-y/z+x+y*z+x+y-z*x*y*z))"
-"((x/y/7.123+w/x-y+7.123*w/x-y+7.123/w-x*y-7.123/w))"
-"((x/y/7.123-w+x-y-7.123/w+x-y-7.123*w*x+y*7.123/w))"
-"((x/y/7.123-w-x-y-7.123*w-x-y-7.123/w/x/y-7.123/w))"
-"((x/y/z+9.123/x-y+z*9.123/x-y+z/9.123-x*y-z/9.123))"
-"((x/y/z+x*y-z+x*y*z+x+y/z+x*y/z-x+y+z-x+y-z-x*y+z))"
-"((x/y/z-9.123+x-y-z/9.123+x-y-z*9.123*x+y*z/9.123))"
-"((x/y/z-9.123-x-y-z*9.123-x-y-z/9.123/x/y-z/9.123))"
-"((x/y/z-x-y/z-x-y*z-x+y-z-x+y*z*x+y+z*x-y/z+x/y-z))"
-"7.7*a^6+6.6*a^5+5.5*a^4+4.4*a^3+3.3*a^2+2.2*a^1+1.1"
-"cos(((((a+(((a-((sin(e)+3.14)+a))*b)-pi))/b)-b)/e))"
-"(((3.79-((tan((((sin(a)+0.12)-a)*0.94))+b)+b))*b)+b)"
-"((0.96*(((((tan(sin((b*b)))*b)+e)*3.49)+0.03)/a))-b)"
-"((e*((((2.17-(1.53-(((b+a)+pi)/pi)))-e)+b)-b))-2.58)"
-"((((((a/(((((a*a)*e)+a)/3.36)/0.05))*e)-pi)-pi)+a)*a)"
-"(2.2*(3.3*(4.4*(5.5*(((((a-b)+9.9)+8.8)+7.7)+6.6)))))"
-"(2.2+(3.3+(4.4+(5.5+(((((a*b)*9.9)*8.8)*7.7)*6.6)))))"
-"(sin((((((((tan(pi)+0.98)/e)+e)-2.32)/1.46)*a)*e))-a)"
-"(((e+((((((((b/b)-0.99)+b)+b)+b)+a)+b)+2.24))/a)/3.99)"
-"(((((((2.27/(((e/(a/a))*b)+b))/b)+3.73)*a)*3.17)*b)*pi)"
-"((((x+y)-(x+y)*(x+z)-(x-w))/((x-y)-(x+y)-(x+z)-(x-w))))"
-"((((x+y)/(x+y)+(x+z)/(x-w))-((x-y)-(x+y)-(x+z)-(x-w))))"
-"((((x-y)*(x+y)/(x+z)*(x+w))+((x-y)-(x-y)-(x-z)-(x-w))))"
-"((((x-y)+(x+y)-(x+z)+(x+w))*((x-y)-(x-y)-(x-z)-(x-w))))"
-"((((x-y)/(x+y)+(x+z)/(x-w))-((x-y)-(x-y)-(x-z)-(x-w))))"
-"((((y+x)-(y+z)*(y+w)-(y-w))/((x-y)-(x+y)-(x+z)+(x-w))))"
-"((((y+x)/(y+z)+(y+w)/(y+y))-((x-y)-(x+y)-(x+z)+(x-w))))"
-"((((y-x)*(y+z)/(y+w)*(y+x))+((x-y)-(x-y)-(x-z)-(x+w))))"
-"((((y-x)+(y+z)-(y+w)+(y+z))*((x-y)-(x-y)-(x-z)-(x+w))))"
-"((((y-x)+(y+z)-(y+w)+(y-z))*((x-y)-(x-y)-(x-z)-(x+w))))"
-"((((y-x)/(y+z)+(y+w)/(y+y))-((x-y)-(x-y)-(x-z)+(x-w))))"
-"(2.88*((((((((((e*pi)+1.02)-b)*pi)-b)/b)-a)+b)-b)+0.31))"
-"(b-(a/((((sin((b-((a+(pi-2.29))+a)))*1.39)/b)-b)+3.83)))"
-"(cos((((sin(((cos(((e-b)+pi))*pi)/a))-b)+2.66)-0.06))/a)"
-"(tan((sin((a*(tan(((b+(e-(2.97+a)))-2.81))-b)))/pi))/pi)"
-"cos((((((((((2.29+3.99)+a)/1.50)/a)/pi)-b)+1.90)+pi)/a))"
-"tan((((tan((((b*((cos(2.39)/b)/pi))-b)*a))+pi)*1.98)+e))"
-"(((((((((((((a-a)+a)+b)+pi)+e)*b)+e)/b)-a)*b)+1.25)-a)+a)"
-"((((((((((e+3.06)/2.16)/a)+pi)*b)-3.32)+3.38)-a)+b)+2.89)"
-"((((((a-(b-(2.95+(((e+b)-a)+e))))*1.32)+0.87)-1.54)-b)-a)"
-"(((((a+sin(((((((a+b)+b)+a)+e)-b)*pi)))+1.97)/a)-a)+2.98)"
-"((abs((x-y)/z)*exp((x-y)*z))-(sin((x*y)+z)+cos((x*y)-z)))"
-"((abs(x/(y*z))*exp(x/(y/z)))-(sin(x*(y+z))+cos(x*(y-z))))"
-"tan(tan((((((e*sin((b/(e-cos((b+b))))))-b)-1.36)+a)+pi)))"
-"((((((((((((a+pi)+a)-2.96)/b)-a)+pi)-b)+pi)+0.21)/a)+e)-a)"
-"((((((((((((e+a)*pi)/a)/pi)*a)*0.81)+1.42)+pi)+b)+b)+b)/e)"
-"(((((((((((a/2.01)*a)-b)+b)/0.59)+3.04)+b)+b)-1.51)+pi)*a)"
-"(((((sin((e-(((sin(pi)+pi)+a)+e)))+b)-2.65)*3.08)*1.91)+a)"
-"(((tan(sin(((sin(sin(sin(cos((b+a)))))*a)/a)))/b)+3.74)/b)"
-"((cos((a/((sin(((0.58+(cos(b)/b))-a))+1.23)+a)))+2.78)+pi)"
-"((e+((((a+((((((e+e)-b)/a)-3.17)*2.75)*e))+e)/a)/1.52))/e)"
-"(pi/(pi-((((((((((e-pi)+pi)*a)+a)-0.45)+a)*pi)/e)-b)*pi)))"
-"cos((b/((a+(((cos(tan(tan((tan(e)-3.84))))*e)+e)+pi))/a)))"
-"((((((((123.456/654.321)*1.1)*2.2)*3.3)*4.4)*5.5)*6.6)*7.7)"
-"((((((((123.456/654.321)+1.1)+2.2)+3.3)+4.4)+5.5)+6.6)+7.7)"
-"((0.93*((((((((0.71+3.99)+e)*a)+0.91)/0.81)/pi)*pi)+b))/pi)"
-"(1.1*(2.2*(3.3*(4.4*(5.5*(6.6*(7.7*(123.456+654.321))))))))"
-"(1.1*2.2*3.3*4.4*5.5*6.6*7.7)/(1.1*2.2*3.3*4.4*5.5*6.6*7.7)"
-"7.7*a^7+6.6*a^6+5.6*a^5+4.4*a^4+3.3*a^3+2.2*a^2+1.1*a^1+0.1"
-"8.8*a^7+7.7*a^6+6.6*a^5+5.5*a^4+4.4*a^3+3.3*a^2+2.2*a^1+1.1"
-"(((((((((((3.05*e)-b)+3.99)+pi)+pi)/0.99)+a)*pi)-b)-1.16)-b)"
-"(((((((((((e-3.40)+a)+e)+b)-a)*3.40)*b)-0.67)+e)+3.61)*0.23)"
-"(((1.50*((b*((((((a+((a+b)/a))+b)+b)+a)+e)-b))*pi))+1.97)/a)"
-"((1.59*(((0.52+(((((0.36+1.11)-e)+1.53)+a)-0.30))+b)/e))+pi)"
-"cos(((a+((tan((b+(3.78-((b*(cos(a)*a))-pi))))+a)-1.50))+pi))"
-"tan(((sin(((sin(sin(((a-(sin(a)+2.20))/e)))/0.31)/b))-b)+a))"
-"((((((((((((b*b)*pi)*b)*pi)/a)+pi)+b)+2.17)+e)-3.87)/e)*0.92)"
-"((((((((((0.32/(pi+b))+b)/b)+2.28)-a)+b)+0.32)+e)*1.64)-2.00)"
-"(((((x*y)*z)-w)/((x+y)+(z*w)))/(((x+y)-(z/w))-((x*y)+(z-w))))"
-"(((((x*y)/z)-w)/((x-y)-(z*w)))/(((x-y)+(z/w))-((x+y)*(z*w))))"
-"(((((x+y)*z)-w)-((x+y)-(z*w)))-((x*(y-(z*w)))/((x*y)+(z+w))))"
-"(((((x+y)/z)-w)-((x-y)+(z*w)))-(((x+y)+(z/w))/((x*y)-(z-w))))"
-"(((((x-y)*z)-w)*((x+y)-(z/w)))*(((x+y)-(z*w))+((x/y)+(z+w))))"
-"(((((x-y)/z)-w)*((x-y)+(z/w)))*(((x-y)+(z*w))+((x/y)-(z-w))))"
-"(((((x/y)*z)-w)+((x+y)+(z/w)))+(((x+y)+(z*w))*((x/y)+(z-w))))"
-"(((((x/y)/z)-w)+((x-y)-(z/w)))+(((x-y)-(z*w))*((x+y)*(z/w))))"
-"((((3.123*y)*z)-(3.123/(y*z)))-((3.123/(y/z))-(3.123-(y/z))))"
-"((((3.123*y)+z)*((3.123/y)*z))*((3.123/(y+z))*(3.123*(y/z))))"
-"((((3.123*y)-z)/(3.123/(y+z)))/((3.123/(y-z))/(3.123-(y+z))))"
-"((((3.123*y)/z)+(3.123/(y-z)))+((3.123/(y*z))+(3.123-(y-z))))"
-"((((3.123+y)*z)-((3.123*y)/z))-(((3.123*y)*z)-(3.123/(y*z))))"
-"((((3.123+y)+z)/((3.123/y)+z))/(((3.123/y)-z)/(3.123*(y+z))))"
-"((((3.123+y)-z)*((3.123*y)*z))*(((3.123/y)+z)*(3.123/(y/z))))"
-"((((3.123+y)/z)+((3.123*y)-z))+(((3.123*y)/z)+(3.123/(y-z))))"
-"((((3.123-y)*z)-((3.123/y)/z))-(((3.123/y)*z)-(3.123*(y*z))))"
-"((((3.123-y)/z)+((3.123/y)-z))+(((3.123/y)/z)+(3.123*(y-z))))"
-"((((3.123/y)*z)-(3.123*(y*z)))-((3.123*(y/z))-(3.123+(y+z))))"
-"((((3.123/y)+z)*(3.123/(y/z)))*((3.123*(y+z))*(3.123-(y*z))))"
-"((((3.123/y)-z)/(3.123*(y+z)))/((3.123*(y-z))/(3.123+(y*z))))"
-"((((3.123/y)/z)+(3.123*(y-z)))+((3.123*(y*z))+(3.123+(y/z))))"
-"((((x*5.123)*z)-(x/(5.123*z)))-((x/(5.123/z))-(x-(5.123/z))))"
-"((((x*5.123)+z)*((x/5.123)*z))*((x/(5.123+z))*(x*(5.123/z))))"
-"((((x*5.123)-z)/(x/(5.123+z)))/((x/(5.123-z))/(x-(5.123+z))))"
-"((((x*5.123)/z)+(x/(5.123-z)))+((x/(5.123*z))+(x-(5.123-z))))"
-"((((x*y)*(z+w))+(x+((y/z)/w)))+((x+((y/z)+w))*((x*y)+(z*w))))"
-"((((x*y)*(z-w))*(x-((y*z)/w)))*((x-((y-z)*w))+((x/y)-(z*w))))"
-"((((x*y)*7.123)-(x/(y*7.123)))-((x/(y/7.123))-(x-(y/7.123))))"
-"((((x*y)+(z*w))-((x+y)-(z-w)))-(((x-y)-(z/w))/((x+y)/(z*w))))"
-"((((x*y)+(z+w))*((x/y)/(z-w)))*(((x*y)/(z-w))+(x-((y-z)/w))))"
-"((((x*y)+(z-w))+((x/y)*(z-w)))+(((x*y)*(z-w))*(x-((y*z)/w))))"
-"((((x*y)+(z/w))/((x+y)*(z-w)))/(((x+y)+(z-w))-((x-y)/(z*w))))"
-"((((x*y)+7.123)*((x/y)*7.123))*((x/(y+7.123))*(x*(y/7.123))))"
-"((((x*y)-(z*w))*((x+y)+(z-w)))*(((x+y)-(z-w))+((x+y)/(z/w))))"
-"((((x*y)-(z+w))+((x/y)/(z+w)))+(((x*y)/(z+w))*(x-((y+z)/w))))"
-"((((x*y)-(z-w))*(x-(y*(z/w))))*((x+(y*(z/w)))+(x-((y/z)/w))))"
-"((((x*y)-(z/w))+((x+y)/(z-w)))+(((x+y)*(z-w))*((x-y)/(z/w))))"
-"((((x*y)-7.123)/(x/(y+7.123)))/((x/(y-7.123))/(x-(y+7.123))))"
-"((((x*y)/(z+w))*(x-((y+z)/w)))*((x+((y/z)*w))+((x*y)+(z/w))))"
-"((((x*y)/(z-w))+(x-((y-z)/w)))+((x-((y+z)*w))*((x/y)+(z/w))))"
-"((((x*y)/7.123)+(x/(y-7.123)))+((x/(y*7.123))+(x-(y-7.123))))"
-"((((x+5.123)*z)-((x*5.123)/z))-(((x*5.123)*z)-(x/(5.123*z))))"
-"((((x+5.123)+z)/((x/5.123)+z))/(((x/5.123)-z)/(x*(5.123+z))))"
-"((((x+5.123)-z)*((x*5.123)*z))*(((x/5.123)+z)*(x/(5.123/z))))"
-"((((x+5.123)/z)+((x*5.123)-z))+(((x*5.123)/z)+(x/(5.123-z))))"
-"((((x+y)*(z*w))+(x-(y/(z*w))))+((x+(y/(z*w)))*(((x+y)*z)-w)))"
-"((((x+y)*(z-w))*((x-y)/(z/w)))*(((x-y)/(z*w))+(x+((y-z)*w))))"
-"((((x+y)*(z/w))-(x+((y+z)/w)))-((x-(y/(z*w)))/(((x-y)*z)-w)))"
-"((((x+y)*7.123)-((x*y)/7.123))-(((x*y)*7.123)-(x/(y*7.123))))"
-"((((x+y)+(z*w))*((x/y)+(z-w)))*(((x*y)+(z-w))+((x/y)*(z-w))))"
-"((((x+y)+(z-w))-((x-y)/(z*w)))-(((x+y)/(z/w))/(x+((y-z)/w))))"
-"((((x+y)+(z/w))/((x*y)-(z-w)))/(((x/y)+(z-w))-(x+(y*(z/w)))))"
-"((((x+y)+7.123)/((x/y)+7.123))/(((x/y)-7.123)/(x*(y+7.123))))"
-"((((x+y)-(z*w))+((x/y)+(z+w)))+(((x*y)+(z+w))*((x/y)/(z-w))))"
-"((((x+y)-(z-w))+((x+y)/(z/w)))+(((x+y)/(z*w))*(x+((y+z)*w))))"
-"((((x+y)-(z/w))-((x*y)+(z-w)))-(((x/y)+(z+w))/((x*y)*(z-w))))"
-"((((x+y)-7.123)*((x*y)*7.123))*(((x/y)+7.123)*(x/(y/7.123))))"
-"((((x+y)/(z*w))*(x+((y+z)*w)))*((x+((y+z)/w))+(((x*y)*z)-w)))"
-"((((x+y)/(z-w))/((x-y)*(z*w)))/(((x-y)/(z/w))-(x+((y*z)/w))))"
-"((((x+y)/(z/w))/(x+((y-z)/w)))/((x+((y+z)*w))-(((x/y)*z)-w)))"
-"((((x+y)/7.123)+((x*y)-7.123))+(((x*y)/7.123)+(x/(y-7.123))))"
-"((((x-5.123)*z)-((x/5.123)/z))-(((x/5.123)*z)-(x*(5.123*z))))"
-"((((x-5.123)/z)+((x/5.123)-z))+(((x/5.123)/z)+(x*(5.123-z))))"
-"((((x-y)*(z*w))*(x+((y*z)*w)))*((x+((y*z)/w))+(((x*y)/z)-w)))"
-"((((x-y)*(z+w))*((x/y)*(z+w)))*(((x*y)*(z+w))+(x+((y/z)/w))))"
-"((((x-y)*(z/w))/(x+((y/z)+w)))/((x+((y*z)*w))-(((x/y)/z)-w)))"
-"((((x-y)*7.123)-((x/y)/7.123))-(((x/y)*7.123)-(x*(y*7.123))))"
-"((((x-y)+(z*w))+((x/y)-(z-w)))+(((x*y)-(z-w))*(x-(y*(z/w)))))"
-"((((x-y)+(z+w))-((x*y)*(z+w)))-(((x-y)*(z/w))/(x+((y/z)+w))))"
-"((((x-y)+(z/w))-((x+y)*(z*w)))-(((x/y)-(z-w))/(x+(y/(z*w)))))"
-"((((x-y)-(z*w))*((x+y)*(z/w)))*(((x+y)*(z*w))+(x-(y/(z*w)))))"
-"((((x-y)-(z+w))+((x-y)*(z/w)))+(((x-y)*(z*w))*(x+((y*z)*w))))"
-"((((x-y)-(z/w))/((x+y)/(z*w)))/(((x+y)*(z/w))-(x+((y+z)/w))))"
-"((((x-y)/(z*w))+(x+((y-z)*w)))+((x+((y-z)/w))*(((x+y)/z)-w)))"
-"((((x-y)/(z+w))/((x*y)/(z+w)))/(((x/y)*(z+w))-(x+((y/z)*w))))"
-"((((x-y)/(z/w))-(x+((y*z)/w)))-((x+((y-z)*w))/(((x-y)/z)-w)))"
-"((((x-y)/7.123)+((x/y)-7.123))+(((x/y)/7.123)+(x*(y-7.123))))"
-"((((x/5.123)*z)-(x*(5.123*z)))-((x*(5.123/z))-(x+(5.123+z))))"
-"((((x/5.123)+z)*(x/(5.123/z)))*((x*(5.123+z))*(x-(5.123*z))))"
-"((((x/5.123)-z)/(x*(5.123+z)))/((x*(5.123-z))/(x+(5.123*z))))"
-"((((x/5.123)/z)+(x*(5.123-z)))+((x*(5.123*z))+(x+(5.123/z))))"
-"((((x/y)*(z+w))-(x+((y/z)*w)))-((x+((y/z)/w))/((x*y)-(z*w))))"
-"((((x/y)*(z-w))/(x-((y*z)*w)))/((x-((y*z)/w))-(x/(y+(z*w)))))"
-"((((x/y)*7.123)-(x*(y*7.123)))-((x*(y/7.123))-(x+(y+7.123))))"
-"((((x/y)+(z+w))/((x*y)*(z-w)))/(((x/y)/(z-w))-(x-((y-z)*w))))"
-"((((x/y)+(z-w))-(x+(y*(z/w))))-(((x/y)*(z-w))/(x-((y*z)*w))))"
-"((((x/y)+(z/w))-((x-y)-(z+w)))-(((x+y)/(z-w))/((x-y)*(z*w))))"
-"((((x/y)+7.123)*(x/(y/7.123)))*((x*(y+7.123))*(x-(y*7.123))))"
-"((((x/y)-(z*w))/((x-y)*(z+w)))/(((x-y)+(z+w))-((x*y)*(z+w))))"
-"((((x/y)-(z+w))-((x*y)/(z-w)))-(((x/y)/(z+w))/(x-((y+z)*w))))"
-"((((x/y)-(z-w))/(x+(y/(z*w))))/((x-(y*(z/w)))-(x-((y/z)*w))))"
-"((((x/y)-(z/w))*((x-y)+(z+w)))*(((x-y)-(z+w))+((x-y)*(z/w))))"
-"((((x/y)-7.123)/(x*(y+7.123)))/((x*(y-7.123))/(x+(y*7.123))))"
-"((((x/y)/(z+w))/(x-((y+z)*w)))/((x-((y+z)/w))-((x*y)-(z/w))))"
-"((((x/y)/(z-w))-(x-((y-z)*w)))-((x-((y-z)/w))/((x/y)-(z/w))))"
-"((((x/y)/7.123)+(x*(y-7.123)))+((x*(y*7.123))+(x+(y/7.123))))"
-"(((1.1*x^2+2.2)*(1.1/y^3-2.2))-((1.1*x^2+2.2)+(1.1/y^3-2.2)))"
-"(((1.1*x^2+2.2)*(1.1/y^3-2.2))-((1.1*x^2+2.2)-(1.1/y^3-2.2)))"
-"(((1.1*x^2+2.2)+(1.1/y^3-2.2))*((1.1*x^2+2.2)*(1.1/y^3-2.2)))"
-"(((1.1*x^2+2.2)+(1.1/y^3-2.2))*((1.1*x^2+2.2)-(1.1/y^3-2.2)))"
-"(((1.1*x^2+2.2)-(1.1/y^3-2.2))+((1.1*x^2+2.2)*(1.1/y^3-2.2)))"
-"(((1.1*x^2+2.2)-(1.1/y^3-2.2))+((1.1*x^2+2.2)+(1.1/y^3-2.2)))"
-"(((3.123*(y*z))+(3.123+(y/z)))+((3.123+(y+z))+((3.123-y)*z)))"
-"(((3.123*(y+z))*(3.123-(y*z)))*((3.123+(y*z))*((3.123+y)+z)))"
-"(((3.123*(y-z))/(3.123+(y*z)))/((3.123+(y/z))/((3.123-y)/z)))"
-"(((3.123*(y/z))-(3.123+(y+z)))-((3.123+(y-z))-((3.123*y)+z)))"
-"(((3.123+(y*z))*((3.123+y)+z))*(((3.123-y)/z)+((3.123/y)-z)))"
-"(((3.123+(y+z))+((3.123-y)*z))+(((3.123*y)+z)*((3.123/y)*z)))"
-"(((3.123+(y-z))-((3.123*y)+z))-(((3.123*y)-z)/(3.123/(y+z))))"
-"(((3.123+(y/z))/((3.123-y)/z))/(((3.123-y)*z)-((3.123/y)/z)))"
-"(((3.123-(y*z))-((3.123+y)-z))-(((3.123+y)+z)/((3.123/y)+z)))"
-"(((3.123-(y+z))*(3.123+(y-z)))*(((3.123+y)/z)+((3.123*y)-z)))"
-"(((3.123-(y-z))/((3.123+y)/z))/(((3.123+y)*z)-((3.123*y)/z)))"
-"(((3.123-(y/z))+((3.123+y)*z))+(((3.123+y)-z)*((3.123*y)*z)))"
-"(((3.123/(y*z))+(3.123-(y-z)))+((3.123-(y/z))+((3.123+y)*z)))"
-"(((3.123/(y+z))*(3.123*(y/z)))*((3.123-(y+z))*(3.123+(y-z))))"
-"(((3.123/(y-z))/(3.123-(y+z)))/((3.123-(y-z))/((3.123+y)/z)))"
-"(((3.123/(y/z))-(3.123-(y/z)))-((3.123-(y*z))-((3.123+y)-z)))"
-"(((x*(5.123*z))+(x+(5.123/z)))+((x+(5.123+z))+((x-5.123)*z)))"
-"(((x*(5.123+z))*(x-(5.123*z)))*((x+(5.123*z))*((x+5.123)+z)))"
-"(((x*(5.123-z))/(x+(5.123*z)))/((x+(5.123/z))/((x-5.123)/z)))"
-"(((x*(5.123/z))-(x+(5.123+z)))-((x+(5.123-z))-((x*5.123)+z)))"
-"(((x*(y*7.123))+(x+(y/7.123)))+((x+(y+7.123))+((x-y)*7.123)))"
-"(((x*(y+(z*w)))*((x/y)-(z+w)))*(((x*y)-(z+w))+((x/y)/(z+w))))"
-"(((x*(y+7.123))*(x-(y*7.123)))*((x+(y*7.123))*((x+y)+7.123)))"
-"(((x*(y-(z*w)))/((x*y)+(z+w)))/(((x/y)-(z+w))-((x*y)/(z-w))))"
-"(((x*(y-7.123))/(x+(y*7.123)))/((x+(y/7.123))/((x-y)/7.123)))"
-"(((x*(y/7.123))-(x+(y+7.123)))-((x+(y-7.123))-((x*y)+7.123)))"
-"(((x+((y*z)*w))-(((x/y)/z)-w))-((((x*y)/z)-w)/((x-y)-(z*w))))"
-"(((x+((y*z)/w))+(((x*y)/z)-w))+((((x-y)/z)-w)*((x-y)+(z/w))))"
-"(((x+((y+z)*w))-(((x/y)*z)-w))-((((x*y)*z)-w)/((x+y)+(z*w))))"
-"(((x+((y+z)/w))+(((x*y)*z)-w))+((((x-y)*z)-w)*((x+y)-(z/w))))"
-"(((x+((y-z)*w))/(((x-y)/z)-w))/((((x+y)/z)-w)-((x-y)+(z*w))))"
-"(((x+((y-z)/w))*(((x+y)/z)-w))*((((x/y)*z)-w)+((x+y)+(z/w))))"
-"(((x+((y/z)*w))+((x*y)+(z/w)))+(((x*y)-(z*w))*((x+y)+(z-w))))"
-"(((x+((y/z)+w))*((x*y)+(z*w)))*((((x/y)/z)-w)+((x-y)-(z/w))))"
-"(((x+((y/z)/w))/((x*y)-(z*w)))/(((x*y)+(z*w))-((x+y)-(z-w))))"
-"(((x+(5.123*z))*((x+5.123)+z))*(((x-5.123)/z)+((x/5.123)-z)))"
-"(((x+(5.123+z))+((x-5.123)*z))+(((x*5.123)+z)*((x/5.123)*z)))"
-"(((x+(5.123-z))-((x*5.123)+z))-(((x*5.123)-z)/(x/(5.123+z))))"
-"(((x+(5.123/z))/((x-5.123)/z))/(((x-5.123)*z)-((x/5.123)/z)))"
-"(((x+(y*(z/w)))+(x-((y/z)/w)))+((x-((y*z)*w))*(x/(y-(z*w)))))"
-"(((x+(y*7.123))*((x+y)+7.123))*(((x-y)/7.123)+((x/y)-7.123)))"
-"(((x+(y+7.123))+((x-y)*7.123))+(((x*y)+7.123)*((x/y)*7.123)))"
-"(((x+(y-7.123))-((x*y)+7.123))-(((x*y)-7.123)/(x/(y+7.123))))"
-"(((x+(y/(z*w)))*(((x+y)*z)-w))*((x-((y/z)*w))+(x*(y-(z*w)))))"
-"(((x+(y/7.123))/((x-y)/7.123))/(((x-y)*7.123)-((x/y)/7.123)))"
-"(((x-((y*z)*w))*(x/(y-(z*w))))*((x/(y+(z*w)))+((x-y)/(z+w))))"
-"(((x-((y*z)/w))-(x/(y+(z*w))))-(((x/y)-(z*w))/((x-y)*(z+w))))"
-"(((x-((y+z)*w))*((x/y)+(z/w)))*(((x*y)-(z/w))+((x+y)/(z-w))))"
-"(((x-((y+z)/w))-((x*y)-(z/w)))-(((x*y)+(z/w))/((x+y)*(z-w))))"
-"(((x-((y-z)*w))+((x/y)-(z*w)))+(((x/y)-(z/w))*((x-y)+(z+w))))"
-"(((x-((y-z)/w))/((x/y)-(z/w)))/(((x/y)+(z/w))-((x-y)-(z+w))))"
-"(((x-((y/z)*w))+(x*(y-(z*w))))+((x*(y+(z*w)))*((x/y)-(z+w))))"
-"(((x-((y/z)/w))/(x*(y+(z*w))))/((x/(y-(z*w)))-((x*y)-(z+w))))"
-"(((x-(5.123*z))-((x+5.123)-z))-(((x+5.123)+z)/((x/5.123)+z)))"
-"(((x-(5.123+z))*(x+(5.123-z)))*(((x+5.123)/z)+((x*5.123)-z)))"
-"(((x-(5.123-z))/((x+5.123)/z))/(((x+5.123)*z)-((x*5.123)/z)))"
-"(((x-(5.123/z))+((x+5.123)*z))+(((x+5.123)-z)*((x*5.123)*z)))"
-"(((x-(y*(z/w)))-(x-((y/z)*w)))-((x-((y/z)/w))/(x*(y+(z*w)))))"
-"(((x-(y*7.123))-((x+y)-7.123))-(((x+y)+7.123)/((x/y)+7.123)))"
-"(((x-(y+7.123))*(x+(y-7.123)))*(((x+y)/7.123)+((x*y)-7.123)))"
-"(((x-(y-7.123))/((x+y)/7.123))/(((x+y)*7.123)-((x*y)/7.123)))"
-"(((x-(y/(z*w)))/(((x-y)*z)-w))/((((x+y)*z)-w)-((x+y)-(z*w))))"
-"(((x-(y/7.123))+((x+y)*7.123))+(((x+y)-7.123)*((x*y)*7.123)))"
-"(((x/(5.123*z))+(x-(5.123-z)))+((x-(5.123/z))+((x+5.123)*z)))"
-"(((x/(5.123+z))*(x*(5.123/z)))*((x-(5.123+z))*(x+(5.123-z))))"
-"(((x/(5.123-z))/(x-(5.123+z)))/((x-(5.123-z))/((x+5.123)/z)))"
-"(((x/(5.123/z))-(x-(5.123/z)))-((x-(5.123*z))-((x+5.123)-z)))"
-"(((x/(y*7.123))+(x-(y-7.123)))+((x-(y/7.123))+((x+y)*7.123)))"
-"(((x/(y+(z*w)))+((x-y)/(z+w)))+(((x-y)*(z+w))*((x/y)*(z+w))))"
-"(((x/(y+7.123))*(x*(y/7.123)))*((x-(y+7.123))*(x+(y-7.123))))"
-"(((x/(y-(z*w)))-((x*y)-(z+w)))-(((x-y)/(z+w))/((x*y)/(z+w))))"
-"(((x/(y-7.123))/(x-(y+7.123)))/((x-(y-7.123))/((x+y)/7.123)))"
-"(((x/(y/7.123))-(x-(y/7.123)))-((x-(y*7.123))-((x+y)-7.123)))"
-"sin(tan(sin((3.49*(pi*((cos((b-(cos(a)-2.26)))+3.01)+pi))))))"
-"((((((((((((pi-a)+a)*b)-e)+3.72)+2.27)/b)+3.35)+a)*a)+1.60)*a)"
-"((((((((((pi/((((0.78+b)/b)+a)*a))/b)+a)/e)/a)/b)/pi)+b)-e)/b)"
-"((((b-(((b-((((((a*e)+3.89)+1.22)/b)*b)+a))*e)+a))-2.31)+b)-e)"
-"((((b+(((b+((((((b/a)+e)-2.64)+b)/b)+pi))-b)+2.29))-e)-b)+3.15)"
-"(((0.71*((2.59+((0.98*((((b+3.89)+a)-b)*a))+b))-a))/2.37)+3.17)"
-"((sin(((tan((sin((cos(((cos(b)+e)*0.15))+pi))*b))/pi)/e))+b)+b)"
-"(cos((((((b-(b/(cos(tan(cos((pi-b))))+pi)))*pi)-b)-b)+0.53))/b)"
-"2.2*y/z-2.2*y*z*2.2/y+z*2.2/y-z*2.2/y/z+2.2/y*z+2.2/y+z-2.2/y-z"
-"2.2+y/z+2.2+y*z+2.2+y-z-2.2+y+z+2.2-y/z*2.2-y*z-2.2*y+z+2.2*y-z"
-"2.2/y*z*2.2/y/z-2.2*y+z+2.2*y-z-2.2*y*z-2.2*y/z*2.2-y/z*2.2-y/z"
-"x*3.3/z-x*3.3*z*x/3.3+z*x/3.3-z*x/3.3/z+x/3.3*z+x/3.3+z-x/3.3-z"
-"x*y+z-w-x/y+z-w*x*y-z-w*x/y-z-w-x+y*z*w+x+y*z/w+x+y/z*w-x+y/z/w"
-"x*y/4.4-x*y*4.4*x/y+4.4*x/y-4.4*x/y/4.4+x/y*4.4+x/y+4.4-x/y-4.4"
-"x+3.3/z+x+3.3*z+x+3.3-z-x+3.3+z+x-3.3/z*x-3.3*z-x*3.3+z+x*3.3-z"
-"x+y+z/w+x+y+z*w+x+y-z/w-x+y-z*w+x+y*z/w*x+y*z*w-x+y/z+w+x+y/z/w"
-"x+y/4.4+x+y*4.4+x+y-4.4-x+y+4.4+x-y/4.4*x-y*4.4-x*y+4.4+x*y-4.4"
-"x+y/z*w-x-y+z/w*x-y+z*w*x-y-z/w-x-y-z*w+x-y*z/w+x-y*z*w-x-y/z/w"
-"x-y+z*w*x-y+z/w-x-y-z*w+x-y-z/w*x+y-z-w-x+y-z-w*x+y+z-w*x+y+z-w"
-"x-y-z+w+x-y-z+w+x-y+z+w-x-y+z+w+x*y-z+w*x/y-z+w-x*y+z+w+x/y+z+w"
-"x-y/z*w*x+y*z-w-x-y*z-w+x*y*z-w*x/y*z-w-x+y/z-w*x-y/z-w*x*y/z-w"
-"x-y/z*w*x-y/z/w-x-y*z*w+x-y*z/w*x*y*z+w-x/y*z+w*x*y/z+w*x/y/z+w"
-"x/3.3*z*x/3.3/z-x*3.3+z+x*3.3-z-x*3.3*z-x*3.3/z*x-3.3/z*x-3.3/z"
-"x/y*4.4*x/y/4.4-x*y+4.4+x*y-4.4-x*y*4.4-x*y/4.4*x-y/4.4*x-y/4.4"
-"x/y+z*w-x/y-z*w*x*y+z*w*x*y-z*w-x+y-z*w+x+y-z/w+x+y+z*w-x+y+z/w"
-"x/y/z-w+x*y+z*w+x*y-z*w-x*y+z/w+x*y-z/w*x/y+z/w-x/y-z/w+x/y-z*w"
-"((((((((((((((((+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)"
-"(((((((((((((((b/b)+a)+b)-a)/a)-e)+a)+a)+b)-0.02)/a)-a)-a)+e)+b)"
-"((((0.76-(((((((a+((pi-a)+b))*b)-e)+e)/e)+pi)*2.44))+3.19)+a)+b)"
-"(((e/((tan((tan(cos(tan(cos(cos(0.02)))))/a))+3.33)*b))/b)-3.49)"
-"(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+))))))))))))))))"
-"(cos(cos(sin((((sin(sin(((tan((0.64+b))/b)/b)))+pi)-pi)*e))))+a)"
-"((((((((((((a+(2.26-(b/pi)))*b)*b)/b)*pi)+a)/b)+e)+b)*a)/1.55)/a)"
-"(((0.03+((((((a+(((a+e)+b)+b))+e)+pi)-e)+2.79)/0.91))*1.22)/2.23)"
-"((abs((2.2-y)/z)*exp((2.2-y)*z))-(sin((2.2*y)+z)+cos((2.2*y)-z)))"
-"((abs((x-3.3)/z)*exp((x-3.3)*z))-(sin((x*3.3)+z)+cos((x*3.3)-z)))"
-"((abs((x-y)/4.4)*exp((x-y)*4.4))-(sin((x*y)+4.4)+cos((x*y)-4.4)))"
-"((abs(2.2/(y*z))*exp(2.2/(y/z)))-(sin(2.2*(y+z))+cos(2.2*(y-z))))"
-"((abs(x/(3.3*z))*exp(x/(3.3/z)))-(sin(x*(3.3+z))+cos(x*(3.3-z))))"
-"((abs(x/(y*4.4))*exp(x/(y/4.4)))-(sin(x*(y+4.4))+cos(x*(y-4.4))))"
-"((b+(a+((((((((((((a-e)-e)+a)+b)+b)/1.00)+e)+e)*pi)+b)+a)/a)))/b)"
-"(2.2*(3.3*(4.4*(5.5*(((((123.456-654.321)+9.9)+8.8)+7.7)+6.6)))))"
-"(2.2+(3.3+(4.4+(5.5+(((((123.456*654.321)*9.9)*8.8)*7.7)*6.6)))))"
-"tan(((tan((tan(((((e+((b+0.32)+e))*1.64)-2.00)+2.95))-b))+pi)+a))"
-"tan(tan((a-sin(((((((tan((b+a))-b)-a)-0.99)/1.20)/1.45)/2.44)))))"
-"(((((((((((((0.92+pi)+a)/b)-b)+3.58)+a)+b)/b)*3.17)/3.22)+b)+a)+e)"
-"((((((((((((b*pi)+1.80)-b)/b)*b)+pi)-3.49)*2.35)+0.19)+1.42)-b)-b)"
-"(((((pi-(((0.79*((((pi/a)/b)+3.48)-2.92))-b)/2.74))+e)/1.40)*a)*b)"
-"(((sin((((((a-(2.69/((sin(sin(b))+a)-a)))+b)*a)+b)+b))/b)+3.90)+b)"
-"((cos(((tan((cos(tan(sin(((cos(3.47)/a)-3.40))))-pi))+e)-e))+a)-e)"
-"(((((((((((a/b)*1.1)*2.2)*3.3)+4.4)+5.5)+6.6)*7.7)*8.8)+9.9)+10.10)"
-"(((((a-((((((((b+1.03)*e)*0.91)-pi)+a)*pi)*a)+a))-a)+3.80)/e)+0.00)"
-"(((((b-((b*(((((((e-a)-a)-pi)*e)*a)+1.60)+pi))+b))/3.81)*b)+pi)+pi)"
-"((x*y*z+w+x+y/z/w+x+y/z+w*x*y+z*w+x+y/z/w/x*y-z*w/x*y+z*w-x+y-z-w))"
-"((x*y*z-w*x-y*z/w*x-y-z*w+x/y-z*w*x-y*z/w-x/y+z*w-x/y-z*w/x-y*z+w))"
-"((x*y*z-w/x+y+z*w/x+y-z/w-x*y+z-w/x+y+z*w*x/y+z-w*x*y+z-w+x/y*z-w))"
-"((x*y+z*w*x/y-z+w*x*y-z+w+x/y/z+w*x/y-z+w-x*y/z-w-x/y/z+w/x-y+z*w))"
-"((x*y+z*w-x+y-z-w-x-y-z/w/x+y/z*w-x+y-z-w+x+y/z/w+x+y/z*w*x+y+z*w))"
-"((x*y+z+w*x/y/z-w*x*y/z-w+x-y-z/w*x/y/z-w-x-y-z*w-x-y-z/w/x/y-z/w))"
-"((x*y+z-w+x/y*z-w+x*y*z-w*x-y*z/w+x/y*z-w/x-y*z*w/x-y*z/w-x/y+z*w))"
-"((x*y+z/w/x+y*z-w/x+y+z-w-x-y/z*w/x+y*z-w*x-y/z/w*x-y/z*w+x+y-z*w))"
-"((x*y-z*w*x+y+z-w*x+y-z-w+x+y/z/w*x+y+z-w-x-y/z*w-x+y/z/w/x+y-z/w))"
-"((x*y-z*w/x*y+z+w/x/y-z+w-x*y/z-w/x*y+z+w*x/y/z-w*x*y/z-w+x-y-z/w))"
-"((x*y-z+w+x/y/z+w+x*y/z+w*x-y+z/w+x/y/z+w/x-y+z*w/x-y+z/w-x*y-z/w))"
-"((x*y-z-w*x-y*z/w*x+y*z/w+x-y/z/w*x-y*z/w-x-y/z*w-x-y/z/w/x*y+z*w))"
-"((x*y-z/w+x+y/z-w+x+y*z-w*x-y/z/w+x+y/z-w/x-y*z*w/x-y/z/w-x+y*z/w))"
-"((x*y/z+w*x-y+z/w*x+y/z*w+x*y+z/w*x-y+z/w-x*y-z/w-x*y+z/w/x+y*z-w))"
-"((x*y/z-w+x-y-z/w+x-y+z*w*x/y+z/w+x-y-z/w/x/y-z/w/x/y+z/w-x-y-z+w))"
-"((x*y/z-w/x-y-z*w/x-y+z/w-x+y*z*w/x-y-z*w*x+y*z/w*x+y*z*w+x-y/z*w))"
-"((x+y*z*w+x-y/z*w+x+y/z*w*x+y*z-w+x-y/z*w/x-y*z-w/x+y*z-w-x+y-z*w))"
-"((x+y*z*w-x/y/z-w-x*y/z-w/x-y-z*w-x/y/z-w+x-y-z/w+x-y-z*w*x+y*z/w))"
-"((x+y*z-w*x-y/z/w*x-y/z*w+x+y-z*w*x-y/z/w-x+y*z/w-x+y-z*w/x-y/z-w))"
-"((x+y*z-w-x+y-z*w-x*y-z*w/x*y+z+w-x+y-z*w+x/y+z+w+x*y+z+w*x/y/z-w))"
-"((x+y*z/w+x*y/z-w+x-y/z-w*x-y+z/w+x*y/z-w/x-y-z*w/x-y+z/w-x+y*z*w))"
-"((x+y*z/w+x-y/z/w+x-y*z*w*x/y-z*w+x-y/z/w/x*y+z*w/x/y-z*w-x*y-z+w))"
-"((x+y*z/w-x+y+z/w-x-y/z*w/x-y*z-w-x+y+z/w+x*y*z-w+x-y*z-w*x+y-z/w))"
-"((x+y+z*w*x/y+z-w*x*y+z-w+x/y*z-w*x/y+z-w-x+y*z/w-x/y*z-w/x-y*z*w))"
-"((x+y+z*w-x/y*z-w-x*y*z-w/x+y+z*w-x/y*z-w+x+y+z/w+x+y+z*w*x/y+z-w))"
-"((x+y+z-w-x-y/z*w-x+y/z/w/x+y-z/w-x-y/z*w+x+y-z*w+x+y-z/w*x+y/z-w))"
-"((x+y+z/w+x*y*z-w+x-y*z-w*x+y-z/w+x*y*z-w/x+y+z*w/x+y-z/w-x*y+z-w))"
-"((x+y+z/w/x*y-z-w/x/y+z-w-x+y*z/w/x*y-z-w*x-y*z/w*x+y*z/w+x-y/z/w))"
-"((x+y-z*w+x/y+z+w+x*y+z+w*x/y/z-w+x/y+z+w/x*y*z-w/x/y/z-w-x-y-z*w))"
-"((x+y-z*w/x-y/z-w/x+y/z-w-x-y+z*w/x-y/z-w*x-y+z/w*x-y+z*w+x/y-z-w))"
-"((x+y-z-w+x+y/z/w+x+y/z*w*x+y+z*w+x+y/z/w/x+y-z/w/x+y+z*w-x/y*z-w))"
-"((x+y-z/w*x+y/z-w*x/y*z-w+x+y+z/w*x+y/z-w-x-y+z*w-x+y+z/w/x*y-z-w))"
-"((x+y-z/w-x*y+z-w-x/y+z+w/x*y*z-w-x*y+z-w+x/y*z-w+x*y*z-w*x-y*z/w))"
-"((x+y/z*w*x+y*z-w*x-y/z*w+x*y-z*w*x+y*z-w-x+y-z*w-x*y-z*w/x*y+z+w))"
-"((x+y/z*w*x+y+z*w*x+y+z/w+x*y*z-w*x+y+z*w-x/y*z-w-x*y*z-w/x+y+z*w))"
-"((x+y/z*w+x*y+z/w+x*y-z*w*x+y+z-w+x*y+z/w/x+y*z-w/x+y+z-w-x-y/z*w))"
-"((x+y/z+w*x*y+z*w*x/y/z-w+x-y-z/w*x*y+z*w-x+y-z-w-x-y-z/w/x+y/z*w))"
-"((x+y/z-w-x-y+z*w-x+y+z/w/x*y-z-w-x-y+z*w+x/y-z-w+x*y-z-w*x-y*z/w))"
-"((x+y/z-w/x-y*z*w/x-y/z/w-x+y*z/w/x-y*z*w*x+y*z*w*x+y*z/w+x*y/z-w))"
-"((x+y/z/w/x*y-z*w/x*y+z*w-x+y-z-w/x*y-z*w*x+y+z-w*x+y-z-w+x+y/z/w))"
-"((x+y/z/w/x+y-z/w/x+y+z*w-x/y*z-w/x+y-z/w*x+y/z-w*x/y*z-w+x+y+z/w))"
-"((x-y*z*w*x+y*z*w*x+y*z/w+x*y/z-w*x+y*z*w-x/y/z-w-x*y/z-w/x-y-z*w))"
-"((x-y*z*w*x/y-z*w*x/y+z*w+x-y/z+w*x/y-z*w-x*y-z+w-x-y/z+w/x*y/z+w))"
-"((x-y*z+w*x/y*z+w*x*y*z+w+x+y/z/w*x/y*z+w-x+y/z*w-x+y/z/w/x*y-z*w))"
-"((x-y*z-w*x+y-z/w*x+y-z*w+x/y+z+w*x+y-z/w-x*y+z-w-x/y+z+w/x*y*z-w))"
-"((x-y*z/w-x-y/z*w-x-y/z/w/x*y+z*w-x-y/z*w+x*y-z*w+x*y+z*w*x/y-z+w))"
-"((x-y*z/w-x/y+z*w-x/y-z*w/x-y*z+w-x/y+z*w+x-y/z+w+x-y*z+w*x/y*z+w))"
-"((x-y*z/w/x+y/z+w/x+y*z*w-x/y/z-w/x+y/z+w*x*y+z*w*x/y/z-w+x-y-z/w))"
-"((x-y+z*w*x/y+z/w*x*y-z/w+x+y/z-w*x/y+z/w-x-y-z+w-x+y/z-w/x-y*z*w))"
-"((x-y+z*w+x/y-z-w+x*y-z-w*x-y*z/w+x/y-z-w/x+y/z*w/x-y*z/w-x-y/z*w))"
-"((x-y+z+w-x*y*z+w-x-y*z/w/x+y/z+w-x*y*z+w+x+y/z/w+x+y/z+w*x*y+z*w))"
-"((x-y+z/w-x*y-z/w-x*y+z/w/x+y*z-w-x*y-z/w+x+y/z-w+x+y*z-w*x-y/z/w))"
-"((x-y+z/w-x+y*z*w-x/y-z-w/x+y/z*w-x+y*z*w+x-y/z*w+x+y/z*w*x+y*z-w))"
-"((x-y-z*w*x+y*z/w*x+y*z*w+x-y/z*w*x+y*z/w-x+y+z/w-x-y/z*w/x-y*z-w))"
-"((x-y-z*w+x/y-z*w+x/y-z/w*x-y+z+w+x/y-z*w/x-y*z+w/x-y+z+w-x*y*z+w))"
-"((x-y-z+w+x-y*z/w+x-y*z*w*x+y*z*w+x-y*z/w/x+y/z+w/x+y*z*w-x/y/z-w))"
-"((x-y-z/w/x+y/z*w/x+y*z/w-x+y+z/w/x+y/z*w*x+y+z*w*x+y+z/w+x*y*z-w))"
-"((x-y-z/w/x/y-z/w/x/y+z/w-x-y-z+w/x/y-z/w*x-y+z+w*x-y-z+w+x-y*z/w))"
-"((x-y/z*w+x*y-z*w+x*y+z*w*x/y-z+w+x*y-z*w/x*y+z+w/x/y-z+w-x*y/z-w))"
-"((x-y/z*w+x+y-z*w+x+y-z/w*x+y/z-w+x+y-z*w/x-y/z-w/x+y/z-w-x-y+z*w))"
-"((x-y/z*w/x-y*z-w/x+y*z-w-x+y-z*w/x-y*z-w*x+y-z/w*x+y-z*w+x/y+z+w))"
-"((x-y/z+w/x*y/z+w/x/y*z+w-x+y/z*w/x*y/z+w*x-y+z/w*x+y/z*w+x*y+z/w))"
-"((x-y/z-w*x-y+z/w*x-y+z*w+x/y-z-w*x-y+z/w-x+y*z*w-x/y-z-w/x+y/z*w))"
-"((x-y/z/w-x+y*z/w-x+y-z*w/x-y/z-w-x+y*z/w+x*y/z-w+x-y/z-w*x-y+z/w))"
-"((x-y/z/w/x*y+z*w/x/y-z*w-x*y-z+w/x*y+z*w*x/y-z+w*x*y-z+w+x/y/z+w))"
-"((x/y*z+w-x+y/z*w-x+y/z/w/x*y-z*w-x+y/z*w+x*y+z/w+x*y-z*w*x+y+z-w))"
-"((x/y*z-w+x+y+z/w+x+y+z*w*x/y+z-w+x+y+z/w/x*y-z-w/x/y+z-w-x+y*z/w))"
-"((x/y*z-w/x-y*z*w/x-y*z/w-x/y+z*w/x-y*z*w*x/y-z*w*x/y+z*w+x-y/z+w))"
-"((x/y+z*w+x-y/z+w+x-y*z+w*x/y*z+w+x-y/z+w/x*y/z+w/x/y*z+w-x+y/z*w))"
-"((x/y+z+w/x*y*z-w/x/y/z-w-x-y-z*w/x*y*z-w*x-y*z/w*x-y-z*w+x/y-z*w))"
-"((x/y+z-w-x+y*z/w-x/y*z-w/x-y*z*w-x+y*z/w+x-y/z/w+x-y*z*w*x/y-z*w))"
-"((x/y+z/w-x-y-z+w-x+y/z-w/x-y*z*w-x-y-z+w+x-y*z/w+x-y*z*w*x+y*z*w))"
-"((x/y-z*w-x*y-z+w-x-y/z+w/x*y/z+w-x*y-z+w+x/y/z+w+x*y/z+w*x-y+z/w))"
-"((x/y-z*w/x-y*z+w/x-y+z+w-x*y*z+w/x-y*z+w*x/y*z+w*x*y*z+w+x+y/z/w))"
-"((x/y-z+w-x*y/z-w-x/y/z+w/x-y+z*w-x*y/z-w+x-y-z/w+x-y+z*w*x/y+z/w))"
-"((x/y-z-w/x+y/z*w/x-y*z/w-x-y/z*w/x+y/z*w*x+y*z-w*x-y/z*w+x*y-z*w))"
-"((x/y-z/w*x-y+z+w*x-y-z+w+x-y*z/w*x-y+z+w-x*y*z+w-x-y*z/w/x+y/z+w))"
-"((x/y/z+w/x-y+z*w/x-y+z/w-x*y-z/w/x-y+z*w*x/y+z/w*x*y-z/w+x+y/z-w))"
-"((x/y/z-w+x-y-z/w+x-y-z*w*x+y*z/w+x-y-z/w/x+y/z*w/x+y*z/w-x+y+z/w))"
-"((x/y/z-w-x-y-z*w-x-y-z/w/x/y-z/w-x-y-z*w+x/y-z*w+x/y-z/w*x-y+z+w))"
-"(1.1*(2.2*(3.3*(4.4+(5.5+(6.6+(7.7*(8.8*(9.9*(10.10*(a+b)))))))))))"
-"9.9*a^8+8.8*a^7+7.7*a^6+6.6*a^5+5.5*a^4+4.4*a^3+3.3*a^2+2.2*a^1+1.1"
-"cos(((cos(cos((e+cos(((sin(((((b+e)/b)*pi)-3.28))/e)-a)))))+e)*pi))"
-"(((((a+((((((((a/e)-0.51)+0.57)/a)+e)/b)*2.85)+a))/3.94)+a)*b)-0.23)"
-"((((3.58/(((((((((1.91*b)-e)-b)+a)*1.19)/a)+a)-2.06)+e))*e)*e)*0.72)"
-"((cos(tan((cos((((((tan((cos(a)/b))+0.95)/0.89)-b)*b)*b))+a)))*e)*e)"
-"(pi/((((((((((((((a+a)/e)/a)*0.56)+a)/b)-b)+1.71)+b)+a)+b)*b)/b)+b))"
-"cos(sin(tan(cos(tan((b*(b+(cos(tan((a*(((pi*b)/pi)+pi))))*pi))))))))"
-"((((((((3.26+(((((((3.74+a)/a)*e)*e)-pi)-e)*e))+pi)+b)+b)-a)/a)+e)+a)"
-"(((b/((((((1.94+(pi+((tan(cos(3.91))-b)+a)))/b)*a)+b)*3.43)-b))-b)+b)"
-"((pi+(((1.15/((cos((cos(((b/sin(a))+pi))*a))+pi)+3.05))+2.22)+pi))+b)"
-"((sin(((a-sin(cos(cos(((((pi*(pi-a))/3.15)+a)+2.54)))))+0.21))*a)*pi)"
-"(((a+((((((((pi+(((b+(b-a))+b)+a))*a)/pi)/b)+a)*b)+pi)/2.19))*3.22)+e)"
-"((pi*(b+((((((((((((b+b)/2.01)+a)*b)*3.74)/a)-a)+b)-pi)-b)+pi)+e)))-b)"
-"(pi-(3.49-(((e*(((((tan(sin(((a+a)/e)))+e)-3.39)/0.03)*e)-pi))+e)-e)))"
-"(tan((b+(((sin((((sin((((((e-b)+pi)*b)/b)+e))+a)*pi)-b))*a)+a)+a)))+e)"
-"(tan(tan((b/(((b/((a+((((b/((e+0.23)*e))*a)*b)+pi))*b))/3.44)-b))))+a)"
-"(((((((((1.16+(((((2.07*pi)*1.33)*a)+b)-a))/b)*b)+b)/b)-a)-0.23)+a)*pi)"
-"(((((e+(cos(sin(((((tan((sin(pi)+b))+pi)*a)+2.45)/e)))-e))+e)*e)+e)-pi)"
-"(((((pi+(b+((((a/(2.47*((e/(pi/1.01))*2.12)))/b)-b)/pi)))-pi)+pi)+a)*b)"
-"((cos((3.99/((pi/(cos((e+(1.94*(((2.07+0.79)+b)+e))))+a))+2.07)))/b)/a)"
-"((tan((((((((((tan(((b/(a/a))-e))+a)+a)+b)-0.02)/a)-a)-a)+e)+b))/pi)*b)"
-"((((((((a-((((((pi/0.73)+e)*a)+1.95)-pi)*pi))+a)-2.27)*b)+e)*3.87)+b)*b)"
-"(((((a+(((((((((3.57-a)+a)+3.66)-3.78)+e)/1.04)+pi)-b)-pi))*a)+pi)*a)-a)"
-"(((((b/((a*((((((((b+(pi+b))*a)+b)-b)-e)*b)/1.51)*pi))+a))*a)*pi)+pi)*b)"
-"((2.57*(cos(tan((((((tan(((tan(pi)*b)+b))/a)+a)+pi)-b)*0.35)))+b))-0.76)"
-"((((((((((((((a-3.00)+e)-pi)+a)-a)-1.99)/3.68)*e)+a)+b)+2.49)-0.21)*e)+b)"
-"((((((((b+tan((e*((((((a+a)+a)/a)/a)-b)+2.35))))-1.32)+b)+a)+e)/b)+pi)/a)"
-"(((((((tan(((cos(((2.34+3.44)/0.44))/b)+b))/1.35)+b)+e)*a)-a)/0.36)-2.06)"
-"((b+((tan(((((sin(((cos((2.64+b))/b)+pi))-b)+2.29)-e)-b))+3.15)+b))/3.43)"
-"(sin((((((tan((tan((cos((b*((1.03+pi)*pi)))-b))+b))-b)-b)/2.71)+b)/a))+a)"
-"((((((((((pi+(((pi+((e+b)-3.15))-e)+2.58))*pi)+a)/b)+e)/0.20)+pi)*b)+b)-b)"
-"((((((((1.94+(pi+((((((3.91-b)+a)/b)*a)+b)*3.43)))-b)-b)+b)/a)*1.21)+a)/b)"
-"(((b-sin(tan((sin(((((3.22-((0.02/e)*3.49))+pi)*b)/pi))-3.60))))+pi)-3.41)"
-"((((tan(((cos(((a+(((((3.66-3.78)+e)/1.04)+pi)-b))-pi))*a)+pi))*a)-a)+e)+b)"
-"1.1*a^9+9.9*a^8+8.8*a^7+7.7*a^6+6.6*a^5+5.5*a^4+4.4*a^3+3.3*a^2+2.2*a^1+1.1"
-"(((cos((a*(((cos((cos(tan((e+((3.11*b)+b))))+2.76))+b)-1.39)/b)))+pi)+a)*pi)"
-"((tan(((((cos((cos((((((cos((a/b))+a)/a)*a)+b)-3.91))*a))+b)/a)+e)-e))/e)+b)"
-"(1.78+((tan(cos((sin(sin(((((sin((1.07-1.16))*a)-b)-pi)*a)))*pi)))*1.92)-b))"
-"((((((((((((((((a-a)*e)/0.87)+a)-e)/b)/b)-2.98)*b)-e)+1.75)+e)+a)/0.84)/b)*e)"
-"((((((((((((((1.88-(((b-1.96)/pi)+e))/e)/b)-b)+a)+a)/pi)*a)/e)*b)-a)+b)/e)*b)"
-"((((((((e+(((b+(((((2.76+b)-1.39)/b)+pi)+a))*pi)+pi))-b)+e)+0.86)-b)*b)+b)/e)"
-"(((((3.123*y)*z)-w)/((3.123+y)+(z*w)))/(((3.123+y)-(z/w))-((3.123*y)+(z-w))))"
-"(((((3.123*y)/z)-w)/((3.123-y)-(z*w)))/(((3.123-y)+(z/w))-((3.123+y)*(z*w))))"
-"(((((3.123+y)*z)-w)-((3.123+y)-(z*w)))-((3.123*(y-(z*w)))/((3.123*y)+(z+w))))"
-"(((((3.123+y)/z)-w)-((3.123-y)+(z*w)))-(((3.123+y)+(z/w))/((3.123*y)-(z-w))))"
-"(((((3.123-y)*z)-w)*((3.123+y)-(z/w)))*(((3.123+y)-(z*w))+((3.123/y)+(z+w))))"
-"(((((3.123-y)/z)-w)*((3.123-y)+(z/w)))*(((3.123-y)+(z*w))+((3.123/y)-(z-w))))"
-"(((((3.123/y)*z)-w)+((3.123+y)+(z/w)))+(((3.123+y)+(z*w))*((3.123/y)+(z-w))))"
-"(((((3.123/y)/z)-w)+((3.123-y)-(z/w)))+(((3.123-y)-(z*w))*((3.123+y)*(z/w))))"
-"(((((x*5.123)*z)-w)/((x+5.123)+(z*w)))/(((x+5.123)-(z/w))-((x*5.123)+(z-w))))"
-"(((((x*5.123)/z)-w)/((x-5.123)-(z*w)))/(((x-5.123)+(z/w))-((x+5.123)*(z*w))))"
-"(((((x*y)*7.123)-w)/((x+y)+(7.123*w)))/(((x+y)-(7.123/w))-((x*y)+(7.123-w))))"
-"(((((x*y)*z)-9.123)/((x+y)+(z*9.123)))/(((x+y)-(z/9.123))-((x*y)+(z-9.123))))"
-"(((((x*y)/7.123)-w)/((x-y)-(7.123*w)))/(((x-y)+(7.123/w))-((x+y)*(7.123*w))))"
-"(((((x*y)/z)-9.123)/((x-y)-(z*9.123)))/(((x-y)+(z/9.123))-((x+y)*(z*9.123))))"
-"(((((x+5.123)*z)-w)-((x+5.123)-(z*w)))-((x*(5.123-(z*w)))/((x*5.123)+(z+w))))"
-"(((((x+5.123)/z)-w)-((x-5.123)+(z*w)))-(((x+5.123)+(z/w))/((x*5.123)-(z-w))))"
-"(((((x+y)*7.123)-w)-((x+y)-(7.123*w)))-((x*(y-(7.123*w)))/((x*y)+(7.123+w))))"
-"(((((x+y)*z)-9.123)-((x+y)-(z*9.123)))-((x*(y-(z*9.123)))/((x*y)+(z+9.123))))"
-"(((((x+y)/7.123)-w)-((x-y)+(7.123*w)))-(((x+y)+(7.123/w))/((x*y)-(7.123-w))))"
-"(((((x+y)/z)-9.123)-((x-y)+(z*9.123)))-(((x+y)+(z/9.123))/((x*y)-(z-9.123))))"
-"(((((x-5.123)*z)-w)*((x+5.123)-(z/w)))*(((x+5.123)-(z*w))+((x/5.123)+(z+w))))"
-"(((((x-5.123)/z)-w)*((x-5.123)+(z/w)))*(((x-5.123)+(z*w))+((x/5.123)-(z-w))))"
-"(((((x-y)*7.123)-w)*((x+y)-(7.123/w)))*(((x+y)-(7.123*w))+((x/y)+(7.123+w))))"
-"(((((x-y)*z)-9.123)*((x+y)-(z/9.123)))*(((x+y)-(z*9.123))+((x/y)+(z+9.123))))"
-"(((((x-y)/7.123)-w)*((x-y)+(7.123/w)))*(((x-y)+(7.123*w))+((x/y)-(7.123-w))))"
-"(((((x-y)/z)-9.123)*((x-y)+(z/9.123)))*(((x-y)+(z*9.123))+((x/y)-(z-9.123))))"
-"(((((x/5.123)*z)-w)+((x+5.123)+(z/w)))+(((x+5.123)+(z*w))*((x/5.123)+(z-w))))"
-"(((((x/5.123)/z)-w)+((x-5.123)-(z/w)))+(((x-5.123)-(z*w))*((x+5.123)*(z/w))))"
-"(((((x/y)*7.123)-w)+((x+y)+(7.123/w)))+(((x+y)+(7.123*w))*((x/y)+(7.123-w))))"
-"(((((x/y)*z)-9.123)+((x+y)+(z/9.123)))+(((x+y)+(z*9.123))*((x/y)+(z-9.123))))"
-"(((((x/y)/7.123)-w)+((x-y)-(7.123/w)))+(((x-y)-(7.123*w))*((x+y)*(7.123/w))))"
-"(((((x/y)/z)-9.123)+((x-y)-(z/9.123)))+(((x-y)-(z*9.123))*((x+y)*(z/9.123))))"
-"((((3.123*y)*(z+w))+(3.123+((y/z)/w)))+((3.123+((y/z)+w))*((3.123*y)+(z*w))))"
-"((((3.123*y)*(z-w))*(3.123-((y*z)/w)))*((3.123-((y-z)*w))+((3.123/y)-(z*w))))"
-"((((3.123*y)+(z*w))-((3.123+y)-(z-w)))-(((3.123-y)-(z/w))/((3.123+y)/(z*w))))"
-"((((3.123*y)+(z+w))*((3.123/y)/(z-w)))*(((3.123*y)/(z-w))+(3.123-((y-z)/w))))"
-"((((3.123*y)+(z-w))+((3.123/y)*(z-w)))+(((3.123*y)*(z-w))*(3.123-((y*z)/w))))"
-"((((3.123*y)+(z/w))/((3.123+y)*(z-w)))/(((3.123+y)+(z-w))-((3.123-y)/(z*w))))"
-"((((3.123*y)-(z*w))*((3.123+y)+(z-w)))*(((3.123+y)-(z-w))+((3.123+y)/(z/w))))"
-"((((3.123*y)-(z+w))+((3.123/y)/(z+w)))+(((3.123*y)/(z+w))*(3.123-((y+z)/w))))"
-"((((3.123*y)-(z-w))*(3.123-(y*(z/w))))*((3.123+(y*(z/w)))+(3.123-((y/z)/w))))"
-"((((3.123*y)-(z/w))+((3.123+y)/(z-w)))+(((3.123+y)*(z-w))*((3.123-y)/(z/w))))"
-"((((3.123*y)/(z+w))*(3.123-((y+z)/w)))*((3.123+((y/z)*w))+((3.123*y)+(z/w))))"
-"((((3.123*y)/(z-w))+(3.123-((y-z)/w)))+((3.123-((y+z)*w))*((3.123/y)+(z/w))))"
-"((((3.123+y)*(z*w))+(3.123-(y/(z*w))))+((3.123+(y/(z*w)))*(((3.123+y)*z)-w)))"
-"((((3.123+y)*(z-w))*((3.123-y)/(z/w)))*(((3.123-y)/(z*w))+(3.123+((y-z)*w))))"
-"((((3.123+y)*(z/w))-(3.123+((y+z)/w)))-((3.123-(y/(z*w)))/(((3.123-y)*z)-w)))"
-"((((3.123+y)+(z*w))*((3.123/y)+(z-w)))*(((3.123*y)+(z-w))+((3.123/y)*(z-w))))"
-"((((3.123+y)+(z-w))-((3.123-y)/(z*w)))-(((3.123+y)/(z/w))/(3.123+((y-z)/w))))"
-"((((3.123+y)+(z/w))/((3.123*y)-(z-w)))/(((3.123/y)+(z-w))-(3.123+(y*(z/w)))))"
-"((((3.123+y)-(z*w))+((3.123/y)+(z+w)))+(((3.123*y)+(z+w))*((3.123/y)/(z-w))))"
-"((((3.123+y)-(z-w))+((3.123+y)/(z/w)))+(((3.123+y)/(z*w))*(3.123+((y+z)*w))))"
-"((((3.123+y)-(z/w))-((3.123*y)+(z-w)))-(((3.123/y)+(z+w))/((3.123*y)*(z-w))))"
-"((((3.123+y)/(z*w))*(3.123+((y+z)*w)))*((3.123+((y+z)/w))+(((3.123*y)*z)-w)))"
-"((((3.123+y)/(z-w))/((3.123-y)*(z*w)))/(((3.123-y)/(z/w))-(3.123+((y*z)/w))))"
-"((((3.123+y)/(z/w))/(3.123+((y-z)/w)))/((3.123+((y+z)*w))-(((3.123/y)*z)-w)))"
-"((((3.123-y)*(z*w))*(3.123+((y*z)*w)))*((3.123+((y*z)/w))+(((3.123*y)/z)-w)))"
-"((((3.123-y)*(z+w))*((3.123/y)*(z+w)))*(((3.123*y)*(z+w))+(3.123+((y/z)/w))))"
-"((((3.123-y)*(z/w))/(3.123+((y/z)+w)))/((3.123+((y*z)*w))-(((3.123/y)/z)-w)))"
-"((((3.123-y)+(z*w))+((3.123/y)-(z-w)))+(((3.123*y)-(z-w))*(3.123-(y*(z/w)))))"
-"((((3.123-y)+(z+w))-((3.123*y)*(z+w)))-(((3.123-y)*(z/w))/(3.123+((y/z)+w))))"
-"((((3.123-y)+(z/w))-((3.123+y)*(z*w)))-(((3.123/y)-(z-w))/(3.123+(y/(z*w)))))"
-"((((3.123-y)-(z*w))*((3.123+y)*(z/w)))*(((3.123+y)*(z*w))+(3.123-(y/(z*w)))))"
-"((((3.123-y)-(z+w))+((3.123-y)*(z/w)))+(((3.123-y)*(z*w))*(3.123+((y*z)*w))))"
-"((((3.123-y)-(z/w))/((3.123+y)/(z*w)))/(((3.123+y)*(z/w))-(3.123+((y+z)/w))))"
-"((((3.123-y)/(z*w))+(3.123+((y-z)*w)))+((3.123+((y-z)/w))*(((3.123+y)/z)-w)))"
-"((((3.123-y)/(z+w))/((3.123*y)/(z+w)))/(((3.123/y)*(z+w))-(3.123+((y/z)*w))))"
-"((((3.123-y)/(z/w))-(3.123+((y*z)/w)))-((3.123+((y-z)*w))/(((3.123-y)/z)-w)))"
-"((((3.123/y)*(z+w))-(3.123+((y/z)*w)))-((3.123+((y/z)/w))/((3.123*y)-(z*w))))"
-"((((3.123/y)*(z-w))/(3.123-((y*z)*w)))/((3.123-((y*z)/w))-(3.123/(y+(z*w)))))"
-"((((3.123/y)+(z+w))/((3.123*y)*(z-w)))/(((3.123/y)/(z-w))-(3.123-((y-z)*w))))"
-"((((3.123/y)+(z-w))-(3.123+(y*(z/w))))-(((3.123/y)*(z-w))/(3.123-((y*z)*w))))"
-"((((3.123/y)+(z/w))-((3.123-y)-(z+w)))-(((3.123+y)/(z-w))/((3.123-y)*(z*w))))"
-"((((3.123/y)-(z*w))/((3.123-y)*(z+w)))/(((3.123-y)+(z+w))-((3.123*y)*(z+w))))"
-"((((3.123/y)-(z+w))-((3.123*y)/(z-w)))-(((3.123/y)/(z+w))/(3.123-((y+z)*w))))"
-"((((3.123/y)-(z-w))/(3.123+(y/(z*w))))/((3.123-(y*(z/w)))-(3.123-((y/z)*w))))"
-"((((3.123/y)-(z/w))*((3.123-y)+(z+w)))*(((3.123-y)-(z+w))+((3.123-y)*(z/w))))"
-"((((3.123/y)/(z+w))/(3.123-((y+z)*w)))/((3.123-((y+z)/w))-((3.123*y)-(z/w))))"
-"((((3.123/y)/(z-w))-(3.123-((y-z)*w)))-((3.123-((y-z)/w))/((3.123/y)-(z/w))))"
-"((((x*5.123)*(z+w))+(x+((5.123/z)/w)))+((x+((5.123/z)+w))*((x*5.123)+(z*w))))"
-"((((x*5.123)*(z-w))*(x-((5.123*z)/w)))*((x-((5.123-z)*w))+((x/5.123)-(z*w))))"
-"((((x*5.123)+(z*w))-((x+5.123)-(z-w)))-(((x-5.123)-(z/w))/((x+5.123)/(z*w))))"
-"((((x*5.123)+(z+w))*((x/5.123)/(z-w)))*(((x*5.123)/(z-w))+(x-((5.123-z)/w))))"
-"((((x*5.123)+(z-w))+((x/5.123)*(z-w)))+(((x*5.123)*(z-w))*(x-((5.123*z)/w))))"
-"((((x*5.123)+(z/w))/((x+5.123)*(z-w)))/(((x+5.123)+(z-w))-((x-5.123)/(z*w))))"
-"((((x*5.123)-(z*w))*((x+5.123)+(z-w)))*(((x+5.123)-(z-w))+((x+5.123)/(z/w))))"
-"((((x*5.123)-(z+w))+((x/5.123)/(z+w)))+(((x*5.123)/(z+w))*(x-((5.123+z)/w))))"
-"((((x*5.123)-(z-w))*(x-(5.123*(z/w))))*((x+(5.123*(z/w)))+(x-((5.123/z)/w))))"
-"((((x*5.123)-(z/w))+((x+5.123)/(z-w)))+(((x+5.123)*(z-w))*((x-5.123)/(z/w))))"
-"((((x*5.123)/(z+w))*(x-((5.123+z)/w)))*((x+((5.123/z)*w))+((x*5.123)+(z/w))))"
-"((((x*5.123)/(z-w))+(x-((5.123-z)/w)))+((x-((5.123+z)*w))*((x/5.123)+(z/w))))"
-"((((x*y)*(7.123+w))+(x+((y/7.123)/w)))+((x+((y/7.123)+w))*((x*y)+(7.123*w))))"
-"((((x*y)*(7.123-w))*(x-((y*7.123)/w)))*((x-((y-7.123)*w))+((x/y)-(7.123*w))))"
-"((((x*y)*(z+9.123))+(x+((y/z)/9.123)))+((x+((y/z)+9.123))*((x*y)+(z*9.123))))"
-"((((x*y)*(z-9.123))*(x-((y*z)/9.123)))*((x-((y-z)*9.123))+((x/y)-(z*9.123))))"
-"((((x*y)+(7.123*w))-((x+y)-(7.123-w)))-(((x-y)-(7.123/w))/((x+y)/(7.123*w))))"
-"((((x*y)+(7.123+w))*((x/y)/(7.123-w)))*(((x*y)/(7.123-w))+(x-((y-7.123)/w))))"
-"((((x*y)+(7.123-w))+((x/y)*(7.123-w)))+(((x*y)*(7.123-w))*(x-((y*7.123)/w))))"
-"((((x*y)+(7.123/w))/((x+y)*(7.123-w)))/(((x+y)+(7.123-w))-((x-y)/(7.123*w))))"
-"((((x*y)+(z*9.123))-((x+y)-(z-9.123)))-(((x-y)-(z/9.123))/((x+y)/(z*9.123))))"
-"((((x*y)+(z+9.123))*((x/y)/(z-9.123)))*(((x*y)/(z-9.123))+(x-((y-z)/9.123))))"
-"((((x*y)+(z-9.123))+((x/y)*(z-9.123)))+(((x*y)*(z-9.123))*(x-((y*z)/9.123))))"
-"((((x*y)+(z/9.123))/((x+y)*(z-9.123)))/(((x+y)+(z-9.123))-((x-y)/(z*9.123))))"
-"((((x*y)-(7.123*w))*((x+y)+(7.123-w)))*(((x+y)-(7.123-w))+((x+y)/(7.123/w))))"
-"((((x*y)-(7.123+w))+((x/y)/(7.123+w)))+(((x*y)/(7.123+w))*(x-((y+7.123)/w))))"
-"((((x*y)-(7.123-w))*(x-(y*(7.123/w))))*((x+(y*(7.123/w)))+(x-((y/7.123)/w))))"
-"((((x*y)-(7.123/w))+((x+y)/(7.123-w)))+(((x+y)*(7.123-w))*((x-y)/(7.123/w))))"
-"((((x*y)-(z*9.123))*((x+y)+(z-9.123)))*(((x+y)-(z-9.123))+((x+y)/(z/9.123))))"
-"((((x*y)-(z+9.123))+((x/y)/(z+9.123)))+(((x*y)/(z+9.123))*(x-((y+z)/9.123))))"
-"((((x*y)-(z-9.123))*(x-(y*(z/9.123))))*((x+(y*(z/9.123)))+(x-((y/z)/9.123))))"
-"((((x*y)-(z/9.123))+((x+y)/(z-9.123)))+(((x+y)*(z-9.123))*((x-y)/(z/9.123))))"
-"((((x*y)/(7.123+w))*(x-((y+7.123)/w)))*((x+((y/7.123)*w))+((x*y)+(7.123/w))))"
-"((((x*y)/(7.123-w))+(x-((y-7.123)/w)))+((x-((y+7.123)*w))*((x/y)+(7.123/w))))"
-"((((x*y)/(z+9.123))*(x-((y+z)/9.123)))*((x+((y/z)*9.123))+((x*y)+(z/9.123))))"
-"((((x*y)/(z-9.123))+(x-((y-z)/9.123)))+((x-((y+z)*9.123))*((x/y)+(z/9.123))))"
-"((((x+5.123)*(z*w))+(x-(5.123/(z*w))))+((x+(5.123/(z*w)))*(((x+5.123)*z)-w)))"
-"((((x+5.123)*(z-w))*((x-5.123)/(z/w)))*(((x-5.123)/(z*w))+(x+((5.123-z)*w))))"
-"((((x+5.123)*(z/w))-(x+((5.123+z)/w)))-((x-(5.123/(z*w)))/(((x-5.123)*z)-w)))"
-"((((x+5.123)+(z*w))*((x/5.123)+(z-w)))*(((x*5.123)+(z-w))+((x/5.123)*(z-w))))"
-"((((x+5.123)+(z-w))-((x-5.123)/(z*w)))-(((x+5.123)/(z/w))/(x+((5.123-z)/w))))"
-"((((x+5.123)+(z/w))/((x*5.123)-(z-w)))/(((x/5.123)+(z-w))-(x+(5.123*(z/w)))))"
-"((((x+5.123)-(z*w))+((x/5.123)+(z+w)))+(((x*5.123)+(z+w))*((x/5.123)/(z-w))))"
-"((((x+5.123)-(z-w))+((x+5.123)/(z/w)))+(((x+5.123)/(z*w))*(x+((5.123+z)*w))))"
-"((((x+5.123)-(z/w))-((x*5.123)+(z-w)))-(((x/5.123)+(z+w))/((x*5.123)*(z-w))))"
-"((((x+5.123)/(z*w))*(x+((5.123+z)*w)))*((x+((5.123+z)/w))+(((x*5.123)*z)-w)))"
-"((((x+5.123)/(z-w))/((x-5.123)*(z*w)))/(((x-5.123)/(z/w))-(x+((5.123*z)/w))))"
-"((((x+5.123)/(z/w))/(x+((5.123-z)/w)))/((x+((5.123+z)*w))-(((x/5.123)*z)-w)))"
-"((((x+y)*(7.123*w))+(x-(y/(7.123*w))))+((x+(y/(7.123*w)))*(((x+y)*7.123)-w)))"
-"((((x+y)*(7.123-w))*((x-y)/(7.123/w)))*(((x-y)/(7.123*w))+(x+((y-7.123)*w))))"
-"((((x+y)*(7.123/w))-(x+((y+7.123)/w)))-((x-(y/(7.123*w)))/(((x-y)*7.123)-w)))"
-"((((x+y)*(z*9.123))+(x-(y/(z*9.123))))+((x+(y/(z*9.123)))*(((x+y)*z)-9.123)))"
-"((((x+y)*(z-9.123))*((x-y)/(z/9.123)))*(((x-y)/(z*9.123))+(x+((y-z)*9.123))))"
-"((((x+y)*(z/9.123))-(x+((y+z)/9.123)))-((x-(y/(z*9.123)))/(((x-y)*z)-9.123)))"
-"((((x+y)+(7.123*w))*((x/y)+(7.123-w)))*(((x*y)+(7.123-w))+((x/y)*(7.123-w))))"
-"((((x+y)+(7.123-w))-((x-y)/(7.123*w)))-(((x+y)/(7.123/w))/(x+((y-7.123)/w))))"
-"((((x+y)+(7.123/w))/((x*y)-(7.123-w)))/(((x/y)+(7.123-w))-(x+(y*(7.123/w)))))"
-"((((x+y)+(z*9.123))*((x/y)+(z-9.123)))*(((x*y)+(z-9.123))+((x/y)*(z-9.123))))"
-"((((x+y)+(z-9.123))-((x-y)/(z*9.123)))-(((x+y)/(z/9.123))/(x+((y-z)/9.123))))"
-"((((x+y)+(z/9.123))/((x*y)-(z-9.123)))/(((x/y)+(z-9.123))-(x+(y*(z/9.123)))))"
-"((((x+y)-(7.123*w))+((x/y)+(7.123+w)))+(((x*y)+(7.123+w))*((x/y)/(7.123-w))))"
-"((((x+y)-(7.123-w))+((x+y)/(7.123/w)))+(((x+y)/(7.123*w))*(x+((y+7.123)*w))))"
-"((((x+y)-(7.123/w))-((x*y)+(7.123-w)))-(((x/y)+(7.123+w))/((x*y)*(7.123-w))))"
-"((((x+y)-(z*9.123))+((x/y)+(z+9.123)))+(((x*y)+(z+9.123))*((x/y)/(z-9.123))))"
-"((((x+y)-(z-9.123))+((x+y)/(z/9.123)))+(((x+y)/(z*9.123))*(x+((y+z)*9.123))))"
-"((((x+y)-(z/9.123))-((x*y)+(z-9.123)))-(((x/y)+(z+9.123))/((x*y)*(z-9.123))))"
-"((((x+y)/(7.123*w))*(x+((y+7.123)*w)))*((x+((y+7.123)/w))+(((x*y)*7.123)-w)))"
-"((((x+y)/(7.123-w))/((x-y)*(7.123*w)))/(((x-y)/(7.123/w))-(x+((y*7.123)/w))))"
-"((((x+y)/(7.123/w))/(x+((y-7.123)/w)))/((x+((y+7.123)*w))-(((x/y)*7.123)-w)))"
-"((((x+y)/(z*9.123))*(x+((y+z)*9.123)))*((x+((y+z)/9.123))+(((x*y)*z)-9.123)))"
-"((((x+y)/(z-9.123))/((x-y)*(z*9.123)))/(((x-y)/(z/9.123))-(x+((y*z)/9.123))))"
-"((((x+y)/(z/9.123))/(x+((y-z)/9.123)))/((x+((y+z)*9.123))-(((x/y)*z)-9.123)))"
-"((((x-5.123)*(z*w))*(x+((5.123*z)*w)))*((x+((5.123*z)/w))+(((x*5.123)/z)-w)))"
-"((((x-5.123)*(z+w))*((x/5.123)*(z+w)))*(((x*5.123)*(z+w))+(x+((5.123/z)/w))))"
-"((((x-5.123)*(z/w))/(x+((5.123/z)+w)))/((x+((5.123*z)*w))-(((x/5.123)/z)-w)))"
-"((((x-5.123)+(z*w))+((x/5.123)-(z-w)))+(((x*5.123)-(z-w))*(x-(5.123*(z/w)))))"
-"((((x-5.123)+(z+w))-((x*5.123)*(z+w)))-(((x-5.123)*(z/w))/(x+((5.123/z)+w))))"
-"((((x-5.123)+(z/w))-((x+5.123)*(z*w)))-(((x/5.123)-(z-w))/(x+(5.123/(z*w)))))"
-"((((x-5.123)-(z*w))*((x+5.123)*(z/w)))*(((x+5.123)*(z*w))+(x-(5.123/(z*w)))))"
-"((((x-5.123)-(z+w))+((x-5.123)*(z/w)))+(((x-5.123)*(z*w))*(x+((5.123*z)*w))))"
-"((((x-5.123)-(z/w))/((x+5.123)/(z*w)))/(((x+5.123)*(z/w))-(x+((5.123+z)/w))))"
-"((((x-5.123)/(z*w))+(x+((5.123-z)*w)))+((x+((5.123-z)/w))*(((x+5.123)/z)-w)))"
-"((((x-5.123)/(z+w))/((x*5.123)/(z+w)))/(((x/5.123)*(z+w))-(x+((5.123/z)*w))))"
-"((((x-5.123)/(z/w))-(x+((5.123*z)/w)))-((x+((5.123-z)*w))/(((x-5.123)/z)-w)))"
-"((((x-y)*(7.123*w))*(x+((y*7.123)*w)))*((x+((y*7.123)/w))+(((x*y)/7.123)-w)))"
-"((((x-y)*(7.123+w))*((x/y)*(7.123+w)))*(((x*y)*(7.123+w))+(x+((y/7.123)/w))))"
-"((((x-y)*(7.123/w))/(x+((y/7.123)+w)))/((x+((y*7.123)*w))-(((x/y)/7.123)-w)))"
-"((((x-y)*(z*9.123))*(x+((y*z)*9.123)))*((x+((y*z)/9.123))+(((x*y)/z)-9.123)))"
-"((((x-y)*(z+9.123))*((x/y)*(z+9.123)))*(((x*y)*(z+9.123))+(x+((y/z)/9.123))))"
-"((((x-y)*(z/9.123))/(x+((y/z)+9.123)))/((x+((y*z)*9.123))-(((x/y)/z)-9.123)))"
-"((((x-y)+(7.123*w))+((x/y)-(7.123-w)))+(((x*y)-(7.123-w))*(x-(y*(7.123/w)))))"
-"((((x-y)+(7.123+w))-((x*y)*(7.123+w)))-(((x-y)*(7.123/w))/(x+((y/7.123)+w))))"
-"((((x-y)+(7.123/w))-((x+y)*(7.123*w)))-(((x/y)-(7.123-w))/(x+(y/(7.123*w)))))"
-"((((x-y)+(z*9.123))+((x/y)-(z-9.123)))+(((x*y)-(z-9.123))*(x-(y*(z/9.123)))))"
-"((((x-y)+(z+9.123))-((x*y)*(z+9.123)))-(((x-y)*(z/9.123))/(x+((y/z)+9.123))))"
-"((((x-y)+(z/9.123))-((x+y)*(z*9.123)))-(((x/y)-(z-9.123))/(x+(y/(z*9.123)))))"
-"((((x-y)-(7.123*w))*((x+y)*(7.123/w)))*(((x+y)*(7.123*w))+(x-(y/(7.123*w)))))"
-"((((x-y)-(7.123+w))+((x-y)*(7.123/w)))+(((x-y)*(7.123*w))*(x+((y*7.123)*w))))"
-"((((x-y)-(7.123/w))/((x+y)/(7.123*w)))/(((x+y)*(7.123/w))-(x+((y+7.123)/w))))"
-"((((x-y)-(z*9.123))*((x+y)*(z/9.123)))*(((x+y)*(z*9.123))+(x-(y/(z*9.123)))))"
-"((((x-y)-(z+9.123))+((x-y)*(z/9.123)))+(((x-y)*(z*9.123))*(x+((y*z)*9.123))))"
-"((((x-y)-(z/9.123))/((x+y)/(z*9.123)))/(((x+y)*(z/9.123))-(x+((y+z)/9.123))))"
-"((((x-y)/(7.123*w))+(x+((y-7.123)*w)))+((x+((y-7.123)/w))*(((x+y)/7.123)-w)))"
-"((((x-y)/(7.123+w))/((x*y)/(7.123+w)))/(((x/y)*(7.123+w))-(x+((y/7.123)*w))))"
-"((((x-y)/(7.123/w))-(x+((y*7.123)/w)))-((x+((y-7.123)*w))/(((x-y)/7.123)-w)))"
-"((((x-y)/(z*9.123))+(x+((y-z)*9.123)))+((x+((y-z)/9.123))*(((x+y)/z)-9.123)))"
-"((((x-y)/(z+9.123))/((x*y)/(z+9.123)))/(((x/y)*(z+9.123))-(x+((y/z)*9.123))))"
-"((((x-y)/(z/9.123))-(x+((y*z)/9.123)))-((x+((y-z)*9.123))/(((x-y)/z)-9.123)))"
-"((((x/5.123)*(z+w))-(x+((5.123/z)*w)))-((x+((5.123/z)/w))/((x*5.123)-(z*w))))"
-"((((x/5.123)*(z-w))/(x-((5.123*z)*w)))/((x-((5.123*z)/w))-(x/(5.123+(z*w)))))"
-"((((x/5.123)+(z+w))/((x*5.123)*(z-w)))/(((x/5.123)/(z-w))-(x-((5.123-z)*w))))"
-"((((x/5.123)+(z-w))-(x+(5.123*(z/w))))-(((x/5.123)*(z-w))/(x-((5.123*z)*w))))"
-"((((x/5.123)+(z/w))-((x-5.123)-(z+w)))-(((x+5.123)/(z-w))/((x-5.123)*(z*w))))"
-"((((x/5.123)-(z*w))/((x-5.123)*(z+w)))/(((x-5.123)+(z+w))-((x*5.123)*(z+w))))"
-"((((x/5.123)-(z+w))-((x*5.123)/(z-w)))-(((x/5.123)/(z+w))/(x-((5.123+z)*w))))"
-"((((x/5.123)-(z-w))/(x+(5.123/(z*w))))/((x-(5.123*(z/w)))-(x-((5.123/z)*w))))"
-"((((x/5.123)-(z/w))*((x-5.123)+(z+w)))*(((x-5.123)-(z+w))+((x-5.123)*(z/w))))"
-"((((x/5.123)/(z+w))/(x-((5.123+z)*w)))/((x-((5.123+z)/w))-((x*5.123)-(z/w))))"
-"((((x/5.123)/(z-w))-(x-((5.123-z)*w)))-((x-((5.123-z)/w))/((x/5.123)-(z/w))))"
-"((((x/y)*(7.123+w))-(x+((y/7.123)*w)))-((x+((y/7.123)/w))/((x*y)-(7.123*w))))"
-"((((x/y)*(7.123-w))/(x-((y*7.123)*w)))/((x-((y*7.123)/w))-(x/(y+(7.123*w)))))"
-"((((x/y)*(z+9.123))-(x+((y/z)*9.123)))-((x+((y/z)/9.123))/((x*y)-(z*9.123))))"
-"((((x/y)*(z-9.123))/(x-((y*z)*9.123)))/((x-((y*z)/9.123))-(x/(y+(z*9.123)))))"
-"((((x/y)+(7.123+w))/((x*y)*(7.123-w)))/(((x/y)/(7.123-w))-(x-((y-7.123)*w))))"
-"((((x/y)+(7.123-w))-(x+(y*(7.123/w))))-(((x/y)*(7.123-w))/(x-((y*7.123)*w))))"
-"((((x/y)+(7.123/w))-((x-y)-(7.123+w)))-(((x+y)/(7.123-w))/((x-y)*(7.123*w))))"
-"((((x/y)+(z+9.123))/((x*y)*(z-9.123)))/(((x/y)/(z-9.123))-(x-((y-z)*9.123))))"
-"((((x/y)+(z-9.123))-(x+(y*(z/9.123))))-(((x/y)*(z-9.123))/(x-((y*z)*9.123))))"
-"((((x/y)+(z/9.123))-((x-y)-(z+9.123)))-(((x+y)/(z-9.123))/((x-y)*(z*9.123))))"
-"((((x/y)-(7.123*w))/((x-y)*(7.123+w)))/(((x-y)+(7.123+w))-((x*y)*(7.123+w))))"
-"((((x/y)-(7.123+w))-((x*y)/(7.123-w)))-(((x/y)/(7.123+w))/(x-((y+7.123)*w))))"
-"((((x/y)-(7.123-w))/(x+(y/(7.123*w))))/((x-(y*(7.123/w)))-(x-((y/7.123)*w))))"
-"((((x/y)-(7.123/w))*((x-y)+(7.123+w)))*(((x-y)-(7.123+w))+((x-y)*(7.123/w))))"
-"((((x/y)-(z*9.123))/((x-y)*(z+9.123)))/(((x-y)+(z+9.123))-((x*y)*(z+9.123))))"
-"((((x/y)-(z+9.123))-((x*y)/(z-9.123)))-(((x/y)/(z+9.123))/(x-((y+z)*9.123))))"
-"((((x/y)-(z-9.123))/(x+(y/(z*9.123))))/((x-(y*(z/9.123)))-(x-((y/z)*9.123))))"
-"((((x/y)-(z/9.123))*((x-y)+(z+9.123)))*(((x-y)-(z+9.123))+((x-y)*(z/9.123))))"
-"((((x/y)/(7.123+w))/(x-((y+7.123)*w)))/((x-((y+7.123)/w))-((x*y)-(7.123/w))))"
-"((((x/y)/(7.123-w))-(x-((y-7.123)*w)))-((x-((y-7.123)/w))/((x/y)-(7.123/w))))"
-"((((x/y)/(z+9.123))/(x-((y+z)*9.123)))/((x-((y+z)/9.123))-((x*y)-(z/9.123))))"
-"((((x/y)/(z-9.123))-(x-((y-z)*9.123)))-((x-((y-z)/9.123))/((x/y)-(z/9.123))))"
-"(((3.123*(y+(z*w)))*((3.123/y)-(z+w)))*(((3.123*y)-(z+w))+((3.123/y)/(z+w))))"
-"(((3.123*(y-(z*w)))/((3.123*y)+(z+w)))/(((3.123/y)-(z+w))-((3.123*y)/(z-w))))"
-"(((3.123+((y*z)*w))-(((3.123/y)/z)-w))-((((3.123*y)/z)-w)/((3.123-y)-(z*w))))"
-"(((3.123+((y*z)/w))+(((3.123*y)/z)-w))+((((3.123-y)/z)-w)*((3.123-y)+(z/w))))"
-"(((3.123+((y+z)*w))-(((3.123/y)*z)-w))-((((3.123*y)*z)-w)/((3.123+y)+(z*w))))"
-"(((3.123+((y+z)/w))+(((3.123*y)*z)-w))+((((3.123-y)*z)-w)*((3.123+y)-(z/w))))"
-"(((3.123+((y-z)*w))/(((3.123-y)/z)-w))/((((3.123+y)/z)-w)-((3.123-y)+(z*w))))"
-"(((3.123+((y-z)/w))*(((3.123+y)/z)-w))*((((3.123/y)*z)-w)+((3.123+y)+(z/w))))"
-"(((3.123+((y/z)*w))+((3.123*y)+(z/w)))+(((3.123*y)-(z*w))*((3.123+y)+(z-w))))"
-"(((3.123+((y/z)+w))*((3.123*y)+(z*w)))*((((3.123/y)/z)-w)+((3.123-y)-(z/w))))"
-"(((3.123+((y/z)/w))/((3.123*y)-(z*w)))/(((3.123*y)+(z*w))-((3.123+y)-(z-w))))"
-"(((3.123+(y*(z/w)))+(3.123-((y/z)/w)))+((3.123-((y*z)*w))*(3.123/(y-(z*w)))))"
-"(((3.123+(y/(z*w)))*(((3.123+y)*z)-w))*((3.123-((y/z)*w))+(3.123*(y-(z*w)))))"
-"(((3.123-((y*z)*w))*(3.123/(y-(z*w))))*((3.123/(y+(z*w)))+((3.123-y)/(z+w))))"
-"(((3.123-((y*z)/w))-(3.123/(y+(z*w))))-(((3.123/y)-(z*w))/((3.123-y)*(z+w))))"
-"(((3.123-((y+z)*w))*((3.123/y)+(z/w)))*(((3.123*y)-(z/w))+((3.123+y)/(z-w))))"
-"(((3.123-((y+z)/w))-((3.123*y)-(z/w)))-(((3.123*y)+(z/w))/((3.123+y)*(z-w))))"
-"(((3.123-((y-z)*w))+((3.123/y)-(z*w)))+(((3.123/y)-(z/w))*((3.123-y)+(z+w))))"
-"(((3.123-((y-z)/w))/((3.123/y)-(z/w)))/(((3.123/y)+(z/w))-((3.123-y)-(z+w))))"
-"(((3.123-((y/z)*w))+(3.123*(y-(z*w))))+((3.123*(y+(z*w)))*((3.123/y)-(z+w))))"
-"(((3.123-((y/z)/w))/(3.123*(y+(z*w))))/((3.123/(y-(z*w)))-((3.123*y)-(z+w))))"
-"(((3.123-(y*(z/w)))-(3.123-((y/z)*w)))-((3.123-((y/z)/w))/(3.123*(y+(z*w)))))"
-"(((3.123-(y/(z*w)))/(((3.123-y)*z)-w))/((((3.123+y)*z)-w)-((3.123+y)-(z*w))))"
-"(((3.123/(y+(z*w)))+((3.123-y)/(z+w)))+(((3.123-y)*(z+w))*((3.123/y)*(z+w))))"
-"(((3.123/(y-(z*w)))-((3.123*y)-(z+w)))-(((3.123-y)/(z+w))/((3.123*y)/(z+w))))"
-"(((x*(5.123+(z*w)))*((x/5.123)-(z+w)))*(((x*5.123)-(z+w))+((x/5.123)/(z+w))))"
-"(((x*(5.123-(z*w)))/((x*5.123)+(z+w)))/(((x/5.123)-(z+w))-((x*5.123)/(z-w))))"
-"(((x*(y+(7.123*w)))*((x/y)-(7.123+w)))*(((x*y)-(7.123+w))+((x/y)/(7.123+w))))"
-"(((x*(y+(z*9.123)))*((x/y)-(z+9.123)))*(((x*y)-(z+9.123))+((x/y)/(z+9.123))))"
-"(((x*(y-(7.123*w)))/((x*y)+(7.123+w)))/(((x/y)-(7.123+w))-((x*y)/(7.123-w))))"
-"(((x*(y-(z*9.123)))/((x*y)+(z+9.123)))/(((x/y)-(z+9.123))-((x*y)/(z-9.123))))"
-"(((x+((5.123*z)*w))-(((x/5.123)/z)-w))-((((x*5.123)/z)-w)/((x-5.123)-(z*w))))"
-"(((x+((5.123*z)/w))+(((x*5.123)/z)-w))+((((x-5.123)/z)-w)*((x-5.123)+(z/w))))"
-"(((x+((5.123+z)*w))-(((x/5.123)*z)-w))-((((x*5.123)*z)-w)/((x+5.123)+(z*w))))"
-"(((x+((5.123+z)/w))+(((x*5.123)*z)-w))+((((x-5.123)*z)-w)*((x+5.123)-(z/w))))"
-"(((x+((5.123-z)*w))/(((x-5.123)/z)-w))/((((x+5.123)/z)-w)-((x-5.123)+(z*w))))"
-"(((x+((5.123-z)/w))*(((x+5.123)/z)-w))*((((x/5.123)*z)-w)+((x+5.123)+(z/w))))"
-"(((x+((5.123/z)*w))+((x*5.123)+(z/w)))+(((x*5.123)-(z*w))*((x+5.123)+(z-w))))"
-"(((x+((5.123/z)+w))*((x*5.123)+(z*w)))*((((x/5.123)/z)-w)+((x-5.123)-(z/w))))"
-"(((x+((5.123/z)/w))/((x*5.123)-(z*w)))/(((x*5.123)+(z*w))-((x+5.123)-(z-w))))"
-"(((x+((y*7.123)*w))-(((x/y)/7.123)-w))-((((x*y)/7.123)-w)/((x-y)-(7.123*w))))"
-"(((x+((y*7.123)/w))+(((x*y)/7.123)-w))+((((x-y)/7.123)-w)*((x-y)+(7.123/w))))"
-"(((x+((y*z)*9.123))-(((x/y)/z)-9.123))-((((x*y)/z)-9.123)/((x-y)-(z*9.123))))"
-"(((x+((y*z)/9.123))+(((x*y)/z)-9.123))+((((x-y)/z)-9.123)*((x-y)+(z/9.123))))"
-"(((x+((y+7.123)*w))-(((x/y)*7.123)-w))-((((x*y)*7.123)-w)/((x+y)+(7.123*w))))"
-"(((x+((y+7.123)/w))+(((x*y)*7.123)-w))+((((x-y)*7.123)-w)*((x+y)-(7.123/w))))"
-"(((x+((y+z)*9.123))-(((x/y)*z)-9.123))-((((x*y)*z)-9.123)/((x+y)+(z*9.123))))"
-"(((x+((y+z)/9.123))+(((x*y)*z)-9.123))+((((x-y)*z)-9.123)*((x+y)-(z/9.123))))"
-"(((x+((y-7.123)*w))/(((x-y)/7.123)-w))/((((x+y)/7.123)-w)-((x-y)+(7.123*w))))"
-"(((x+((y-7.123)/w))*(((x+y)/7.123)-w))*((((x/y)*7.123)-w)+((x+y)+(7.123/w))))"
-"(((x+((y-z)*9.123))/(((x-y)/z)-9.123))/((((x+y)/z)-9.123)-((x-y)+(z*9.123))))"
-"(((x+((y-z)/9.123))*(((x+y)/z)-9.123))*((((x/y)*z)-9.123)+((x+y)+(z/9.123))))"
-"(((x+((y/7.123)*w))+((x*y)+(7.123/w)))+(((x*y)-(7.123*w))*((x+y)+(7.123-w))))"
-"(((x+((y/7.123)+w))*((x*y)+(7.123*w)))*((((x/y)/7.123)-w)+((x-y)-(7.123/w))))"
-"(((x+((y/7.123)/w))/((x*y)-(7.123*w)))/(((x*y)+(7.123*w))-((x+y)-(7.123-w))))"
-"(((x+((y/z)*9.123))+((x*y)+(z/9.123)))+(((x*y)-(z*9.123))*((x+y)+(z-9.123))))"
-"(((x+((y/z)+9.123))*((x*y)+(z*9.123)))*((((x/y)/z)-9.123)+((x-y)-(z/9.123))))"
-"(((x+((y/z)/9.123))/((x*y)-(z*9.123)))/(((x*y)+(z*9.123))-((x+y)-(z-9.123))))"
-"(((x+(5.123*(z/w)))+(x-((5.123/z)/w)))+((x-((5.123*z)*w))*(x/(5.123-(z*w)))))"
-"(((x+(5.123/(z*w)))*(((x+5.123)*z)-w))*((x-((5.123/z)*w))+(x*(5.123-(z*w)))))"
-"(((x+(y*(7.123/w)))+(x-((y/7.123)/w)))+((x-((y*7.123)*w))*(x/(y-(7.123*w)))))"
-"(((x+(y*(z/9.123)))+(x-((y/z)/9.123)))+((x-((y*z)*9.123))*(x/(y-(z*9.123)))))"
-"(((x+(y/(7.123*w)))*(((x+y)*7.123)-w))*((x-((y/7.123)*w))+(x*(y-(7.123*w)))))"
-"(((x+(y/(z*9.123)))*(((x+y)*z)-9.123))*((x-((y/z)*9.123))+(x*(y-(z*9.123)))))"
-"(((x-((5.123*z)*w))*(x/(5.123-(z*w))))*((x/(5.123+(z*w)))+((x-5.123)/(z+w))))"
-"(((x-((5.123*z)/w))-(x/(5.123+(z*w))))-(((x/5.123)-(z*w))/((x-5.123)*(z+w))))"
-"(((x-((5.123+z)*w))*((x/5.123)+(z/w)))*(((x*5.123)-(z/w))+((x+5.123)/(z-w))))"
-"(((x-((5.123+z)/w))-((x*5.123)-(z/w)))-(((x*5.123)+(z/w))/((x+5.123)*(z-w))))"
-"(((x-((5.123-z)*w))+((x/5.123)-(z*w)))+(((x/5.123)-(z/w))*((x-5.123)+(z+w))))"
-"(((x-((5.123-z)/w))/((x/5.123)-(z/w)))/(((x/5.123)+(z/w))-((x-5.123)-(z+w))))"
-"(((x-((5.123/z)*w))+(x*(5.123-(z*w))))+((x*(5.123+(z*w)))*((x/5.123)-(z+w))))"
-"(((x-((5.123/z)/w))/(x*(5.123+(z*w))))/((x/(5.123-(z*w)))-((x*5.123)-(z+w))))"
-"(((x-((y*7.123)*w))*(x/(y-(7.123*w))))*((x/(y+(7.123*w)))+((x-y)/(7.123+w))))"
-"(((x-((y*7.123)/w))-(x/(y+(7.123*w))))-(((x/y)-(7.123*w))/((x-y)*(7.123+w))))"
-"(((x-((y*z)*9.123))*(x/(y-(z*9.123))))*((x/(y+(z*9.123)))+((x-y)/(z+9.123))))"
-"(((x-((y*z)/9.123))-(x/(y+(z*9.123))))-(((x/y)-(z*9.123))/((x-y)*(z+9.123))))"
-"(((x-((y+7.123)*w))*((x/y)+(7.123/w)))*(((x*y)-(7.123/w))+((x+y)/(7.123-w))))"
-"(((x-((y+7.123)/w))-((x*y)-(7.123/w)))-(((x*y)+(7.123/w))/((x+y)*(7.123-w))))"
-"(((x-((y+z)*9.123))*((x/y)+(z/9.123)))*(((x*y)-(z/9.123))+((x+y)/(z-9.123))))"
-"(((x-((y+z)/9.123))-((x*y)-(z/9.123)))-(((x*y)+(z/9.123))/((x+y)*(z-9.123))))"
-"(((x-((y-7.123)*w))+((x/y)-(7.123*w)))+(((x/y)-(7.123/w))*((x-y)+(7.123+w))))"
-"(((x-((y-7.123)/w))/((x/y)-(7.123/w)))/(((x/y)+(7.123/w))-((x-y)-(7.123+w))))"
-"(((x-((y-z)*9.123))+((x/y)-(z*9.123)))+(((x/y)-(z/9.123))*((x-y)+(z+9.123))))"
-"(((x-((y-z)/9.123))/((x/y)-(z/9.123)))/(((x/y)+(z/9.123))-((x-y)-(z+9.123))))"
-"(((x-((y/7.123)*w))+(x*(y-(7.123*w))))+((x*(y+(7.123*w)))*((x/y)-(7.123+w))))"
-"(((x-((y/7.123)/w))/(x*(y+(7.123*w))))/((x/(y-(7.123*w)))-((x*y)-(7.123+w))))"
-"(((x-((y/z)*9.123))+(x*(y-(z*9.123))))+((x*(y+(z*9.123)))*((x/y)-(z+9.123))))"
-"(((x-((y/z)/9.123))/(x*(y+(z*9.123))))/((x/(y-(z*9.123)))-((x*y)-(z+9.123))))"
-"(((x-(5.123*(z/w)))-(x-((5.123/z)*w)))-((x-((5.123/z)/w))/(x*(5.123+(z*w)))))"
-"(((x-(5.123/(z*w)))/(((x-5.123)*z)-w))/((((x+5.123)*z)-w)-((x+5.123)-(z*w))))"
-"(((x-(y*(7.123/w)))-(x-((y/7.123)*w)))-((x-((y/7.123)/w))/(x*(y+(7.123*w)))))"
-"(((x-(y*(z/9.123)))-(x-((y/z)*9.123)))-((x-((y/z)/9.123))/(x*(y+(z*9.123)))))"
-"(((x-(y/(7.123*w)))/(((x-y)*7.123)-w))/((((x+y)*7.123)-w)-((x+y)-(7.123*w))))"
-"(((x-(y/(z*9.123)))/(((x-y)*z)-9.123))/((((x+y)*z)-9.123)-((x+y)-(z*9.123))))"
-"(((x/(5.123+(z*w)))+((x-5.123)/(z+w)))+(((x-5.123)*(z+w))*((x/5.123)*(z+w))))"
-"(((x/(5.123-(z*w)))-((x*5.123)-(z+w)))-(((x-5.123)/(z+w))/((x*5.123)/(z+w))))"
-"(((x/(y+(7.123*w)))+((x-y)/(7.123+w)))+(((x-y)*(7.123+w))*((x/y)*(7.123+w))))"
-"(((x/(y+(z*9.123)))+((x-y)/(z+9.123)))+(((x-y)*(z+9.123))*((x/y)*(z+9.123))))"
-"(((x/(y-(7.123*w)))-((x*y)-(7.123+w)))-(((x-y)/(7.123+w))/((x*y)/(7.123+w))))"
-"(((x/(y-(z*9.123)))-((x*y)-(z+9.123)))-(((x-y)/(z+9.123))/((x*y)/(z+9.123))))"
-"((0.96+(((0.96-((((((((((e+b)+a)/a)*a)-1.01)*b)-3.19)+pi)*b)+e))-a)+2.07))/a)"
-"((b+((((((((((((((2.44*pi)+b)-pi)-b)+a)+e)*a)*a)/2.41)-a)*pi)*a)*2.70)/b))*a)"
-"((pi/((((((((((((b+(((pi-pi)-pi)/b))/a)-e)*a)/e)*a)/e)+pi)-a)/1.82)+b)*a))*a)"
-"(b/((((((pi+(((((((((b+b)*3.92)*a)*a)/pi)/a)*0.27)-0.23)+a))+a)*e)+pi)-a)/e))"
-"cos(((e+((e+(tan((sin((((1.55-(((a+pi)/b)/pi))+pi)+e))-a))+3.94))+2.45))+pi))"
-"((a+(((((((((((a+(((((3.77/pi)+b)+a)+e)+b))+a)-a)+b)-e)+a)-a)-pi)*b)+b)*a))+a)"
-"tan(((a/((((a+(b+(cos(cos(tan((((3.14/3.54)*a)+0.34))))/e)))+b)-pi)+3.13))*e))"
-"(((((((((((123.456-654.321)*1.1)*2.2)*3.3)+4.4)+5.5)+6.6)*7.7)*8.8)+9.9)+10.10)"
-"((1.01*(((((((cos(tan(((sin(((a*b)/a))/pi)+b)))+pi)/b)/b)+a)-e)+b)*2.38))+0.88)"
-"((tan((((((pi+((b*((tan(((a*(e+1.09))-pi))+b)/e))*b))+1.55)+a)+0.01)+pi))/a)*a)"
-"(1.1*(2.2*(3.3*(4.4+(5.5+(6.6+(7.7*(8.8*(9.9*(10.10*(123.456+654.321)))))))))))"
-"2.2*y+z-w-2.2/y+z-w*2.2*y-z-w*2.2/y-z-w-2.2+y*z*w+2.2+y*z/w+2.2+y/z*w-2.2+y/z/w"
-"2.2+y+z/w+2.2+y+z*w+2.2+y-z/w-2.2+y-z*w+2.2+y*z/w*2.2+y*z*w-2.2+y/z+w+2.2+y/z/w"
-"2.2+y/z*w-2.2-y+z/w*2.2-y+z*w*2.2-y-z/w-2.2-y-z*w+2.2-y*z/w+2.2-y*z*w-2.2-y/z/w"
-"2.2-y+z*w*2.2-y+z/w-2.2-y-z*w+2.2-y-z/w*2.2+y-z-w-2.2+y-z-w*2.2+y+z-w*2.2+y+z-w"
-"2.2-y-z+w+2.2-y-z+w+2.2-y+z+w-2.2-y+z+w+2.2*y-z+w*2.2/y-z+w-2.2*y+z+w+2.2/y+z+w"
-"2.2-y/z*w*2.2+y*z-w-2.2-y*z-w+2.2*y*z-w*2.2/y*z-w-2.2+y/z-w*2.2-y/z-w*2.2*y/z-w"
-"2.2-y/z*w*2.2-y/z/w-2.2-y*z*w+2.2-y*z/w*2.2*y*z+w-2.2/y*z+w*2.2*y/z+w*2.2/y/z+w"
-"2.2/y+z*w-2.2/y-z*w*2.2*y+z*w*2.2*y-z*w-2.2+y-z*w+2.2+y-z/w+2.2+y+z*w-2.2+y+z/w"
-"2.2/y/z-w+2.2*y+z*w+2.2*y-z*w-2.2*y+z/w+2.2*y-z/w*2.2/y+z/w-2.2/y-z/w+2.2/y-z*w"
-"sin((((sin((tan((((((((2.98+((a*a)+3.96))/pi)+e)+pi)+e)*a)+a))+a))+3.35)+e)+b))"
-"sin((tan((((((tan(sin(((cos(((((a+2.04)-b)/e)/e))-pi)+e)))+a)+pi)+a)+b)+b))+a))"
-"x*3.3+z-w-x/3.3+z-w*x*3.3-z-w*x/3.3-z-w-x+3.3*z*w+x+3.3*z/w+x+3.3/z*w-x+3.3/z/w"
-"x*y+4.4-w-x/y+4.4-w*x*y-4.4-w*x/y-4.4-w-x+y*4.4*w+x+y*4.4/w+x+y/4.4*w-x+y/4.4/w"
-"x*y+z-5.5-x/y+z-5.5*x*y-z-5.5*x/y-z-5.5-x+y*z*5.5+x+y*z/5.5+x+y/z*5.5-x+y/z/5.5"
-"x+3.3+z/w+x+3.3+z*w+x+3.3-z/w-x+3.3-z*w+x+3.3*z/w*x+3.3*z*w-x+3.3/z+w+x+3.3/z/w"
-"x+3.3/z*w-x-3.3+z/w*x-3.3+z*w*x-3.3-z/w-x-3.3-z*w+x-3.3*z/w+x-3.3*z*w-x-3.3/z/w"
-"x+y+4.4/w+x+y+4.4*w+x+y-4.4/w-x+y-4.4*w+x+y*4.4/w*x+y*4.4*w-x+y/4.4+w+x+y/4.4/w"
-"x+y+z/5.5+x+y+z*5.5+x+y-z/5.5-x+y-z*5.5+x+y*z/5.5*x+y*z*5.5-x+y/z+5.5+x+y/z/5.5"
-"x+y/4.4*w-x-y+4.4/w*x-y+4.4*w*x-y-4.4/w-x-y-4.4*w+x-y*4.4/w+x-y*4.4*w-x-y/4.4/w"
-"x+y/z*5.5-x-y+z/5.5*x-y+z*5.5*x-y-z/5.5-x-y-z*5.5+x-y*z/5.5+x-y*z*5.5-x-y/z/5.5"
-"x-3.3+z*w*x-3.3+z/w-x-3.3-z*w+x-3.3-z/w*x+3.3-z-w-x+3.3-z-w*x+3.3+z-w*x+3.3+z-w"
-"x-3.3-z+w+x-3.3-z+w+x-3.3+z+w-x-3.3+z+w+x*3.3-z+w*x/3.3-z+w-x*3.3+z+w+x/3.3+z+w"
-"x-3.3/z*w*x+3.3*z-w-x-3.3*z-w+x*3.3*z-w*x/3.3*z-w-x+3.3/z-w*x-3.3/z-w*x*3.3/z-w"
-"x-3.3/z*w*x-3.3/z/w-x-3.3*z*w+x-3.3*z/w*x*3.3*z+w-x/3.3*z+w*x*3.3/z+w*x/3.3/z+w"
-"x-y+4.4*w*x-y+4.4/w-x-y-4.4*w+x-y-4.4/w*x+y-4.4-w-x+y-4.4-w*x+y+4.4-w*x+y+4.4-w"
-"x-y+z*5.5*x-y+z/5.5-x-y-z*5.5+x-y-z/5.5*x+y-z-5.5-x+y-z-5.5*x+y+z-5.5*x+y+z-5.5"
-"x-y-4.4+w+x-y-4.4+w+x-y+4.4+w-x-y+4.4+w+x*y-4.4+w*x/y-4.4+w-x*y+4.4+w+x/y+4.4+w"
-"x-y-z+5.5+x-y-z+5.5+x-y+z+5.5-x-y+z+5.5+x*y-z+5.5*x/y-z+5.5-x*y+z+5.5+x/y+z+5.5"
-"x-y/4.4*w*x+y*4.4-w-x-y*4.4-w+x*y*4.4-w*x/y*4.4-w-x+y/4.4-w*x-y/4.4-w*x*y/4.4-w"
-"x-y/4.4*w*x-y/4.4/w-x-y*4.4*w+x-y*4.4/w*x*y*4.4+w-x/y*4.4+w*x*y/4.4+w*x/y/4.4+w"
-"x-y/z*5.5*x+y*z-5.5-x-y*z-5.5+x*y*z-5.5*x/y*z-5.5-x+y/z-5.5*x-y/z-5.5*x*y/z-5.5"
-"x-y/z*5.5*x-y/z/5.5-x-y*z*5.5+x-y*z/5.5*x*y*z+5.5-x/y*z+5.5*x*y/z+5.5*x/y/z+5.5"
-"x/3.3+z*w-x/3.3-z*w*x*3.3+z*w*x*3.3-z*w-x+3.3-z*w+x+3.3-z/w+x+3.3+z*w-x+3.3+z/w"
-"x/3.3/z-w+x*3.3+z*w+x*3.3-z*w-x*3.3+z/w+x*3.3-z/w*x/3.3+z/w-x/3.3-z/w+x/3.3-z*w"
-"x/y+4.4*w-x/y-4.4*w*x*y+4.4*w*x*y-4.4*w-x+y-4.4*w+x+y-4.4/w+x+y+4.4*w-x+y+4.4/w"
-"x/y+z*5.5-x/y-z*5.5*x*y+z*5.5*x*y-z*5.5-x+y-z*5.5+x+y-z/5.5+x+y+z*5.5-x+y+z/5.5"
-"x/y/4.4-w+x*y+4.4*w+x*y-4.4*w-x*y+4.4/w+x*y-4.4/w*x/y+4.4/w-x/y-4.4/w+x/y-4.4*w"
-"x/y/z-5.5+x*y+z*5.5+x*y-z*5.5-x*y+z/5.5+x*y-z/5.5*x/y+z/5.5-x/y-z/5.5+x/y-z*5.5"
-"(((2.64+((3.73-((((((b-(((((b/a)-a)/3.37)-b)+a))-0.35)*e)/1.85)+e)+b))+e))*a)-b)"
-"(((a*((cos(((tan(cos((3.45+(sin(tan(((b-b)+b)))*e))))-b)+a))/1.47)+pi))/a)/0.09)"
-"cos((tan(((tan((((((((pi-tan((3.86-pi)))/b)-e)+0.90)/a)+a)/1.49))-pi)/2.24))*b))"
-"tan((((((((tan(cos((b+((((a/a)-0.94)/a)*b))))/pi)*1.89)/1.57)+0.57)-e)/0.15)/b))"
-"(((((((((((((0.38+((((a*a)-e)+b)-e))+3.29)+2.12)+b)/e)+b)/e)*a)*b)+b)+e)+2.06)/e)"
-"(((((((((((((((b+((a+pi)/0.14))-3.53)-a)*e)*b)+b)/b)+3.90)*b)+1.01)/e)+b)+e)*a)+b)"
-"(((((pi+(((((1.97+((((((b+3.90)+a)+a)+a)+a)+2.03))-pi)+0.00)+a)+a))+3.07)*a)+e)*a)"
-"((((tan(sin((((cos(((pi*(tan((e*(b/a)))/a))+b))+b)+3.90)+0.32)))+b)/1.30)-0.08)*a)"
-"(cos(((tan(sin(tan(((((sin(((tan((tan(e)+b))+b)/a))*a)/a)-a)+e))))-e)/1.63))*0.14)"
-"(((((((((((((((1.40+(a-pi))+b)*pi)*e)+pi)+a)+b)*2.51)/a)-3.58)/e)-3.62)-2.28)-e)/e)"
-"((3.123*y*z+3.123+y/z+3.123+y+z+3.123-y*z+3.123+y-z-3.123*y+z-3.123*y-z/3.123/y+z))"
-"((3.123*y*z-3.123/y*z-3.123/y/z-3.123-y/z-3.123*y+z*3.123-y*z*3.123+y*z*3.123+y+z))"
-"((3.123*y+z*3.123-y*z*3.123+y*z*3.123+y+z*3.123+y/z/3.123-y/z/3.123-y*z-3.123/y/z))"
-"((3.123*y+z*3.123/y*z*3.123/y+z*3.123*y/z*3.123/y-z/3.123-y+z/3.123-y-z/3.123+y/z))"
-"((3.123*y-z/3.123+y*z/3.123+y/z/3.123-y/z/3.123+y+z+3.123-y*z+3.123*y+z*3.123/y*z))"
-"((3.123*y-z/3.123/y+z/3.123/y-z/3.123-y+z/3.123/y*z+3.123-y-z+3.123-y/z+3.123+y*z))"
-"((3.123*y/z+3.123/y-z+3.123/y*z+3.123-y-z+3.123/y/z-3.123-y/z-3.123-y*z-3.123+y-z))"
-"((3.123*y/z-3.123+y+z-3.123+y-z-3.123*y+z-3.123+y/z+3.123*y-z+3.123*y/z+3.123/y-z))"
-"((3.123+y*z*3.123+y+z*3.123-y/z+3.123/y-z*3.123-y*z-3.123/y/z-3.123/y*z-3.123*y*z))"
-"((3.123+y*z-3.123*y/z-3.123*y*z-3.123/y*z-3.123/y+z*3.123/y/z*3.123*y+z*3.123-y*z))"
-"((3.123+y+z+3.123-y*z+3.123*y+z*3.123/y*z+3.123*y-z/3.123/y+z/3.123/y-z/3.123-y+z))"
-"((3.123+y+z/3.123/y+z/3.123/y-z/3.123*y+z/3.123/y/z+3.123*y-z+3.123*y*z+3.123+y/z))"
-"((3.123+y-z*3.123*y*z*3.123/y+z*3.123/y/z*3.123/y-z/3.123*y+z/3.123*y-z/3.123+y*z))"
-"((3.123+y-z-3.123*y+z-3.123*y-z/3.123/y+z-3.123*y/z+3.123/y-z+3.123/y*z+3.123-y-z))"
-"((3.123+y/z+3.123*y-z+3.123*y/z+3.123/y-z+3.123*y*z-3.123/y*z-3.123/y/z-3.123-y/z))"
-"((3.123+y/z/3.123-y/z/3.123-y*z-3.123/y/z/3.123*y+z*3.123/y*z*3.123/y+z*3.123*y/z))"
-"((3.123-y*z-3.123+y-z-3.123+y+z/3.123/y+z-3.123-y/z+3.123/y-z+3.123/y/z+3.123*y-z))"
-"((3.123-y*z-3.123/y/z-3.123/y*z-3.123*y*z-3.123/y+z*3.123*y/z*3.123-y+z*3.123+y-z))"
-"((3.123-y+z*3.123+y-z*3.123+y/z+3.123*y-z*3.123+y*z-3.123*y/z-3.123*y*z-3.123/y*z))"
-"((3.123-y-z/3.123+y/z/3.123+y*z-3.123*y/z/3.123+y-z*3.123*y*z*3.123/y+z*3.123/y/z))"
-"((3.123-y/z+3.123+y*z+3.123+y-z*3.123*y*z+3.123+y+z/3.123/y+z/3.123/y-z/3.123*y+z))"
-"((3.123-y/z+3.123/y-z+3.123/y/z+3.123*y-z+3.123/y*z-3.123*y*z-3.123*y/z-3.123+y+z))"
-"((3.123/y*z+3.123-y-z+3.123-y/z+3.123+y*z+3.123-y*z-3.123+y-z-3.123+y+z/3.123/y+z))"
-"((3.123/y*z-3.123*y*z-3.123*y/z-3.123+y+z-3.123-y+z*3.123+y-z*3.123+y/z+3.123*y-z))"
-"((3.123/y+z*3.123*y/z*3.123-y+z*3.123+y-z*3.123-y-z/3.123+y/z/3.123+y*z-3.123*y/z))"
-"((3.123/y+z*3.123/y/z*3.123*y+z*3.123-y*z*3.123*y-z/3.123+y*z/3.123+y/z/3.123-y/z))"
-"((3.123/y-z/3.123*y+z/3.123*y-z/3.123+y*z/3.123*y*z+3.123+y/z+3.123+y+z+3.123-y*z))"
-"((3.123/y-z/3.123-y+z/3.123-y-z/3.123+y/z/3.123-y/z+3.123+y*z+3.123+y-z*3.123*y*z))"
-"((3.123/y/z+3.123*y-z+3.123*y*z+3.123+y/z+3.123*y/z-3.123+y+z-3.123+y-z-3.123*y+z))"
-"((3.123/y/z-3.123-y/z-3.123-y*z-3.123+y-z-3.123+y*z*3.123+y+z*3.123-y/z+3.123/y-z))"
-"((x*5.123*z+x+5.123/z+x+5.123+z+x-5.123*z+x+5.123-z-x*5.123+z-x*5.123-z/x/5.123+z))"
-"((x*5.123*z-x/5.123*z-x/5.123/z-x-5.123/z-x*5.123+z*x-5.123*z*x+5.123*z*x+5.123+z))"
-"((x*5.123+z*x-5.123*z*x+5.123*z*x+5.123+z*x+5.123/z/x-5.123/z/x-5.123*z-x/5.123/z))"
-"((x*5.123+z*x/5.123*z*x/5.123+z*x*5.123/z*x/5.123-z/x-5.123+z/x-5.123-z/x+5.123/z))"
-"((x*5.123-z/x+5.123*z/x+5.123/z/x-5.123/z/x+5.123+z+x-5.123*z+x*5.123+z*x/5.123*z))"
-"((x*5.123-z/x/5.123+z/x/5.123-z/x-5.123+z/x/5.123*z+x-5.123-z+x-5.123/z+x+5.123*z))"
-"((x*5.123/z+x/5.123-z+x/5.123*z+x-5.123-z+x/5.123/z-x-5.123/z-x-5.123*z-x+5.123-z))"
-"((x*5.123/z-x+5.123+z-x+5.123-z-x*5.123+z-x+5.123/z+x*5.123-z+x*5.123/z+x/5.123-z))"
-"((x*y*7.123+x+y/7.123+x+y+7.123+x-y*7.123+x+y-7.123-x*y+7.123-x*y-7.123/x/y+7.123))"
-"((x*y*7.123-x/y*7.123-x/y/7.123-x-y/7.123-x*y+7.123*x-y*7.123*x+y*7.123*x+y+7.123))"
-"((x*y+7.123*x-y*7.123*x+y*7.123*x+y+7.123*x+y/7.123/x-y/7.123/x-y*7.123-x/y/7.123))"
-"((x*y+7.123*x/y*7.123*x/y+7.123*x*y/7.123*x/y-7.123/x-y+7.123/x-y-7.123/x+y/7.123))"
-"((x*y-7.123/x+y*7.123/x+y/7.123/x-y/7.123/x+y+7.123+x-y*7.123+x*y+7.123*x/y*7.123))"
-"((x*y-7.123/x/y+7.123/x/y-7.123/x-y+7.123/x/y*7.123+x-y-7.123+x-y/7.123+x+y*7.123))"
-"((x*y/7.123+x/y-7.123+x/y*7.123+x-y-7.123+x/y/7.123-x-y/7.123-x-y*7.123-x+y-7.123))"
-"((x*y/7.123-x+y+7.123-x+y-7.123-x*y+7.123-x+y/7.123+x*y-7.123+x*y/7.123+x/y-7.123))"
-"((x+5.123*z*x+5.123+z*x-5.123/z+x/5.123-z*x-5.123*z-x/5.123/z-x/5.123*z-x*5.123*z))"
-"((x+5.123*z-x*5.123/z-x*5.123*z-x/5.123*z-x/5.123+z*x/5.123/z*x*5.123+z*x-5.123*z))"
-"((x+5.123+z+x-5.123*z+x*5.123+z*x/5.123*z+x*5.123-z/x/5.123+z/x/5.123-z/x-5.123+z))"
-"((x+5.123+z/x/5.123+z/x/5.123-z/x*5.123+z/x/5.123/z+x*5.123-z+x*5.123*z+x+5.123/z))"
-"((x+5.123-z*x*5.123*z*x/5.123+z*x/5.123/z*x/5.123-z/x*5.123+z/x*5.123-z/x+5.123*z))"
-"((x+5.123-z-x*5.123+z-x*5.123-z/x/5.123+z-x*5.123/z+x/5.123-z+x/5.123*z+x-5.123-z))"
-"((x+5.123/z+x*5.123-z+x*5.123/z+x/5.123-z+x*5.123*z-x/5.123*z-x/5.123/z-x-5.123/z))"
-"((x+5.123/z/x-5.123/z/x-5.123*z-x/5.123/z/x*5.123+z*x/5.123*z*x/5.123+z*x*5.123/z))"
-"((x+y*7.123*x+y+7.123*x-y/7.123+x/y-7.123*x-y*7.123-x/y/7.123-x/y*7.123-x*y*7.123))"
-"((x+y*7.123-x*y/7.123-x*y*7.123-x/y*7.123-x/y+7.123*x/y/7.123*x*y+7.123*x-y*7.123))"
-"((x+y+7.123+x-y*7.123+x*y+7.123*x/y*7.123+x*y-7.123/x/y+7.123/x/y-7.123/x-y+7.123))"
-"((x+y+7.123/x/y+7.123/x/y-7.123/x*y+7.123/x/y/7.123+x*y-7.123+x*y*7.123+x+y/7.123))"
-"((x+y-7.123*x*y*7.123*x/y+7.123*x/y/7.123*x/y-7.123/x*y+7.123/x*y-7.123/x+y*7.123))"
-"((x+y-7.123-x*y+7.123-x*y-7.123/x/y+7.123-x*y/7.123+x/y-7.123+x/y*7.123+x-y-7.123))"
-"((x+y/7.123+x*y-7.123+x*y/7.123+x/y-7.123+x*y*7.123-x/y*7.123-x/y/7.123-x-y/7.123))"
-"((x+y/7.123/x-y/7.123/x-y*7.123-x/y/7.123/x*y+7.123*x/y*7.123*x/y+7.123*x*y/7.123))"
-"((x-5.123*z-x+5.123-z-x+5.123+z/x/5.123+z-x-5.123/z+x/5.123-z+x/5.123/z+x*5.123-z))"
-"((x-5.123*z-x/5.123/z-x/5.123*z-x*5.123*z-x/5.123+z*x*5.123/z*x-5.123+z*x+5.123-z))"
-"((x-5.123+z*x+5.123-z*x+5.123/z+x*5.123-z*x+5.123*z-x*5.123/z-x*5.123*z-x/5.123*z))"
-"((x-5.123-z/x+5.123/z/x+5.123*z-x*5.123/z/x+5.123-z*x*5.123*z*x/5.123+z*x/5.123/z))"
-"((x-5.123/z+x+5.123*z+x+5.123-z*x*5.123*z+x+5.123+z/x/5.123+z/x/5.123-z/x*5.123+z))"
-"((x-5.123/z+x/5.123-z+x/5.123/z+x*5.123-z+x/5.123*z-x*5.123*z-x*5.123/z-x+5.123+z))"
-"((x-y*7.123-x+y-7.123-x+y+7.123/x/y+7.123-x-y/7.123+x/y-7.123+x/y/7.123+x*y-7.123))"
-"((x-y*7.123-x/y/7.123-x/y*7.123-x*y*7.123-x/y+7.123*x*y/7.123*x-y+7.123*x+y-7.123))"
-"((x-y+7.123*x+y-7.123*x+y/7.123+x*y-7.123*x+y*7.123-x*y/7.123-x*y*7.123-x/y*7.123))"
-"((x-y-7.123/x+y/7.123/x+y*7.123-x*y/7.123/x+y-7.123*x*y*7.123*x/y+7.123*x/y/7.123))"
-"((x-y/7.123+x+y*7.123+x+y-7.123*x*y*7.123+x+y+7.123/x/y+7.123/x/y-7.123/x*y+7.123))"
-"((x-y/7.123+x/y-7.123+x/y/7.123+x*y-7.123+x/y*7.123-x*y*7.123-x*y/7.123-x+y+7.123))"
-"((x/5.123*z+x-5.123-z+x-5.123/z+x+5.123*z+x-5.123*z-x+5.123-z-x+5.123+z/x/5.123+z))"
-"((x/5.123*z-x*5.123*z-x*5.123/z-x+5.123+z-x-5.123+z*x+5.123-z*x+5.123/z+x*5.123-z))"
-"((x/5.123+z*x*5.123/z*x-5.123+z*x+5.123-z*x-5.123-z/x+5.123/z/x+5.123*z-x*5.123/z))"
-"((x/5.123+z*x/5.123/z*x*5.123+z*x-5.123*z*x*5.123-z/x+5.123*z/x+5.123/z/x-5.123/z))"
-"((x/5.123-z/x*5.123+z/x*5.123-z/x+5.123*z/x*5.123*z+x+5.123/z+x+5.123+z+x-5.123*z))"
-"((x/5.123-z/x-5.123+z/x-5.123-z/x+5.123/z/x-5.123/z+x+5.123*z+x+5.123-z*x*5.123*z))"
-"((x/5.123/z+x*5.123-z+x*5.123*z+x+5.123/z+x*5.123/z-x+5.123+z-x+5.123-z-x*5.123+z))"
-"((x/5.123/z-x-5.123/z-x-5.123*z-x+5.123-z-x+5.123*z*x+5.123+z*x-5.123/z+x/5.123-z))"
-"((x/y*7.123+x-y-7.123+x-y/7.123+x+y*7.123+x-y*7.123-x+y-7.123-x+y+7.123/x/y+7.123))"
-"((x/y*7.123-x*y*7.123-x*y/7.123-x+y+7.123-x-y+7.123*x+y-7.123*x+y/7.123+x*y-7.123))"
-"((x/y+7.123*x*y/7.123*x-y+7.123*x+y-7.123*x-y-7.123/x+y/7.123/x+y*7.123-x*y/7.123))"
-"((x/y+7.123*x/y/7.123*x*y+7.123*x-y*7.123*x*y-7.123/x+y*7.123/x+y/7.123/x-y/7.123))"
-"((x/y-7.123/x*y+7.123/x*y-7.123/x+y*7.123/x*y*7.123+x+y/7.123+x+y+7.123+x-y*7.123))"
-"((x/y-7.123/x-y+7.123/x-y-7.123/x+y/7.123/x-y/7.123+x+y*7.123+x+y-7.123*x*y*7.123))"
-"((x/y/7.123+x*y-7.123+x*y*7.123+x+y/7.123+x*y/7.123-x+y+7.123-x+y-7.123-x*y+7.123))"
-"((x/y/7.123-x-y/7.123-x-y*7.123-x+y-7.123-x+y*7.123*x+y+7.123*x-y/7.123+x/y-7.123))"
-"((((a+((((((((((2.61*(((a/a)/a)-a))+3.20)/a)+a)+b)+b)/a)+pi)+pi)-2.19))*a)*pi)+1.91)"
-"(e*((tan(((((b+sin(sin((((((((e*a)+b)+0.60)/3.37)+b)/a)-e))))+a)-b)/0.12))+a)+1.04))"
-"2.2*a^10+1.1*a^9+9.9*a^8+8.8*a^7+7.7*a^6+6.6*a^5+5.5*a^4+4.4*a^3+3.3*a^2+2.2*a^1+1.1"
-"(((((((((e/((((((e-(e+((b/b)/a)))+a)/b)/3.64)-a)+a))+b)/3.44)-a)/b)+2.48)*a)/0.59)+a)"
-"((((((pi/((e-(((((((((pi+b)+a)+2.26)/pi)*e)/3.17)+a)/a)-0.67))+a))+a)*3.32)-pi)/a)*e)"
-"(((cos(((sin((b*(pi+((b*((cos((((2.46+1.72)+3.77)+b))/1.02)+a))*a))))/a)+a))*a)-a)*b)"
-"((e-(((((((((((((2.79+((pi+e)/e))*b)*b)*e)-0.20)+a)-a)-0.04)*e)/1.40)+b)+b)+1.23))-b)"
-"(((((((((((((((pi+((b/a)*pi))+pi)/2.70)-pi)*a)+3.10)+a)+0.52)/b)/pi)-b)+b)+a)-3.38)+a)"
-"(((((((((b*(((pi/((((a+((b*a)/b))*2.40)*b)+a))-pi)/b))+e)+3.72)-a)+a)*pi)-pi)/a)/2.84)"
-"((((tan((((3.51+((((1.30-((b-((pi+b)/e))*e))-2.31)/1.96)-0.04))*3.50)+b))/e)/a)+pi)-e)"
-"(((tan((((cos(((((cos((a/(((b+b)+a)+b)))+pi)-e)/a)+e))/2.19)+2.51)*2.55))+1.93)-a)+pi)"
-"((cos((cos(sin(cos(((((cos(((((cos(pi)/3.34)*b)+3.95)+b))*pi)+1.04)*b)/a))))-a))-e)/e)"
-"(0.76-((((((((((((e*((((((a-b)/1.15)-b)*b)+e)/pi))-pi)+a)+e)*a)*a)+e)-e)-a)/e)*pi)+e))"
-"(sin(cos((a-(cos((((sin(((b*cos((((pi+(a/b))-0.82)*0.02)))-a))/0.12)/pi)*a))/b))))/pi)"
-"sin((b-sin(cos((a-(sin(((((cos((sin(sin((((a/e)*3.19)+0.46)))+a))+e)*a)*a)-a))*a))))))"
-"(((((((b*((b+(((((b-(((e*2.43)+b)*a))/b)+1.04)-e)-b))/e))+2.24)+a)+a)/3.02)/3.41)/0.96)"
-"((1.1+a+2.2+b+3.3)+c+4.4+a+5.5+b+6.6+c+7.7)/(1.1+a+2.2+b+3.3+c+4.4+a+5.5+(b+6.6+c+7.7))"
-"(1.1+a+2.2+b+3.3+c+4.4+(a+5.5+b+6.6)+c+7.7)*(1.1+(a+2.2+b+3.3)+c+4.4+a+5.5+b+6.6+c+7.7)"
-"(a/((((b+(((e*(((((pi*((((3.45*((pi+a)+pi))+b)+b)*a))+0.68)+e)+a)/a))+a)+b))+b)*a)-pi))"
-"((((b*((a/(((((((1.94+((((((b+a)+b)-b)-2.67)+b)+b))+pi)/3.93)+e)+pi)+a)/b))-a))+a)*a)-a)"
-"((2.81-(tan((((((sin((cos(tan(((((tan(e)/b)+e)/0.84)+b)))-b))-a)*e)/pi)/2.47)*a))/e))-a)"
-"((((((((((((((((((b-0.27)*a)*0.65)-b)+e)+e)-3.26)*b)*3.54)+b)*b)-a)-a)*0.09)+pi)+b)-a)/e)"
-"((((((((a/b)*(1.1/2.2))*(2.2/3.3))*(3.3/4.4))*(4.4/5.5))*(5.5/6.6))*(6.6/7.7))*(7.7/8.8))"
-"((((((((a/b)+(1.1/2.2))+(2.2/3.3))+(3.3/4.4))+(4.4/5.5))+(5.5/6.6))+(6.6/7.7))+(7.7/8.8))"
-"((((e-sin(((cos(tan((((((2.79+sin((((e/e)*b)*b)))*e)-0.20)+a)-a)))-0.04)*e)))/1.40)+b)+b)"
-"((((((((((pi-(((1.43*(((((((b-e)*pi)-b)*2.49)/a)+b)*e))+a)-e))-pi)+a)/e)/b)/b)+a)*a)-a)/b)"
-"(((((a/((((((a+(((((3.44/((0.99*b)*a))+b)/pi)-2.31)/b))*a)*b)+2.62)/pi)/a))+b)-a)+a)*1.70)"
-"(sin((b-((tan((tan(tan((cos(((cos(cos((((a-(a+b))/a)*b)))+b)/b))+e)))/1.00))/a)/0.33)))+a)"
-"tan(cos(sin(((((((tan(((cos((((pi+(sin(e)-a))*b)+pi))+a)+3.29))+a)+1.23)+3.89)/e)/e)-b))))"
-"((((((((((((((((((pi/0.04)-0.93)/3.48)+pi)+b)+b)+b)+b)/b)-2.93)/b)*b)+a)*3.05)+pi)+e)+a)/b)"
-"((((a+((((tan((cos(((sin(((e+((2.96*0.40)/3.81))*pi))-1.87)+e))+a))/pi)+a)+b)+pi))*e)+a)+a)"
-"(((a*(((b/(((((((pi*(((((e/2.80)*e)*0.33)+b)+a))-e)*3.35)+a)*a)+2.99)-0.38))+b)+pi))-a)+pi)"
-"((sin(cos((cos((((a+((sin(((cos(sin((tan((b/a))+pi)))/a)+b))-b)+0.70))+e)-e))*a)))-b)+1.55)"
-"(b+(((((((((pi+(((((((((b*3.17)+a)+a)+pi)+2.69)/a)/b)+b)*a))*3.97)-b)/b)/b)+e)-e)/3.02)+e))"
-"(b+(((2.46-(e/sin(tan((0.32+(((((((tan(cos(cos(pi)))-2.11)/b)+1.39)+a)-e)+e)/b))))))+e)*e))"
-"cos(((((((tan((e-((cos(tan(((sin((a+(1.81/b)))+b)+b)))/0.05)-a)))*pi)+e)*2.03)-a)+0.52)+a))"
-"cos(((tan(((tan(tan(tan((tan(((((sin((((b+3.63)/a)+a))/b)+b)+0.43)-a))+b))))+b)*pi))+e)+a))"
-"(((((((((((((((((((a/(b-a))+1.06)/b)+a)+pi)*a)*a)+2.39)+b)+b)*e)-b)+b)+0.28)+a)+a)/e)-a)+pi)"
-"(((a*((sin(cos(((((((((e+((((2.78/b)/b)*e)-e))/0.28)+b)+a)-pi)+b)/a)*3.21)))+a)+b))+0.55)-a)"
-"((((((sin(((((((((((0.44+((e-a)*pi))*b)+2.60)*a)+a)-pi)-0.14)+b)+e)-b))+a)+b)+a)+b)+pi)/0.52)"
-"(((((x*y)*z)-(x/(y*z)))-((x/(y/z))-(x-(y/z))))-(((x*(y+z))*(x-(y*z)))*((x+(y*z))*((x+y)+z))))"
-"(((((x*y)+z)*((x/y)*z))*((x/(y+z))*(x*(y/z))))*(((x/(y-z))/(x-(y+z)))/((x-(y-z))/((x+y)/z))))"
-"(((((x*y)-z)/(x/(y+z)))/((x/(y-z))/(x-(y+z))))/(((x/(y*z))+(x-(y-z)))+((x-(y/z))+((x+y)*z))))"
-"(((((x*y)/z)+(x/(y-z)))+((x/(y*z))+(x-(y-z))))+(((x/(y/z))-(x-(y/z)))-((x-(y*z))-((x+y)-z))))"
-"(((((x+y)*z)-((x*y)/z))-(((x*y)*z)-(x/(y*z))))-((((x/y)+z)*(x/(y/z)))*((x*(y+z))*(x-(y*z)))))"
-"(((((x+y)+z)/((x/y)+z))/(((x/y)-z)/(x*(y+z))))/((((x/y)/z)+(x*(y-z)))+((x*(y*z))+(x+(y/z)))))"
-"(((((x+y)-z)*((x*y)*z))*(((x/y)+z)*(x/(y/z))))*((((x/y)-z)/(x*(y+z)))/((x*(y-z))/(x+(y*z)))))"
-"(((((x+y)/z)+((x*y)-z))+(((x*y)/z)+(x/(y-z))))+((((x*y)*z)-(x/(y*z)))-((x/(y/z))-(x-(y/z)))))"
-"(((((x-y)*z)-((x/y)/z))-(((x/y)*z)-(x*(y*z))))-(((x/(y+z))*(x*(y/z)))*((x-(y+z))*(x+(y-z)))))"
-"(((((x-y)/z)+((x/y)-z))+(((x/y)/z)+(x*(y-z))))+((((x/y)*z)-(x*(y*z)))-((x*(y/z))-(x+(y+z)))))"
-"(((((x/y)*z)-(x*(y*z)))-((x*(y/z))-(x+(y+z))))-(((x-(y+z))*(x+(y-z)))*(((x+y)/z)+((x*y)-z))))"
-"(((((x/y)+z)*(x/(y/z)))*((x*(y+z))*(x-(y*z))))*(((x*(y-z))/(x+(y*z)))/((x+(y/z))/((x-y)/z))))"
-"(((((x/y)-z)/(x*(y+z)))/((x*(y-z))/(x+(y*z))))/(((x*(y*z))+(x+(y/z)))+((x+(y+z))+((x-y)*z))))"
-"(((((x/y)/z)+(x*(y-z)))+((x*(y*z))+(x+(y/z))))+(((x*(y/z))-(x+(y+z)))-((x+(y-z))-((x*y)+z))))"
-"((((x*(y*z))+(x+(y/z)))+((x+(y+z))+((x-y)*z)))+(((x+(y-z))-((x*y)+z))-(((x*y)-z)/(x/(y+z)))))"
-"((((x*(y+z))*(x-(y*z)))*((x+(y*z))*((x+y)+z)))*(((x+(y/z))/((x-y)/z))/(((x-y)*z)-((x/y)/z))))"
-"((((x*(y-z))/(x+(y*z)))/((x+(y/z))/((x-y)/z)))/(((x+(y+z))+((x-y)*z))+(((x*y)+z)*((x/y)*z))))"
-"((((x*(y/z))-(x+(y+z)))-((x+(y-z))-((x*y)+z)))-((((x+y)/z)+((x*y)-z))+(((x*y)/z)+(x/(y-z)))))"
-"((((x+(y*z))*((x+y)+z))*(((x-y)/z)+((x/y)-z)))*((((x-y)*z)-((x/y)/z))-(((x/y)*z)-(x*(y*z)))))"
-"((((x+(y+z))+((x-y)*z))+(((x*y)+z)*((x/y)*z)))+((((x*y)-z)/(x/(y+z)))/((x/(y-z))/(x-(y+z)))))"
-"((((x+(y-z))-((x*y)+z))-(((x*y)-z)/(x/(y+z))))-((((x*y)/z)+(x/(y-z)))+((x/(y*z))+(x-(y-z)))))"
-"((((x+(y/z))/((x-y)/z))/(((x-y)*z)-((x/y)/z)))/((((x*y)+z)*((x/y)*z))*((x/(y+z))*(x*(y/z)))))"
-"((((x-(y*z))-((x+y)-z))-(((x+y)+z)/((x/y)+z)))-((((x-y)/z)+((x/y)-z))+(((x/y)/z)+(x*(y-z)))))"
-"((((x-(y+z))*(x+(y-z)))*(((x+y)/z)+((x*y)-z)))*((((x+y)*z)-((x*y)/z))-(((x*y)*z)-(x/(y*z)))))"
-"((((x-(y-z))/((x+y)/z))/(((x+y)*z)-((x*y)/z)))/((((x+y)-z)*((x*y)*z))*(((x/y)+z)*(x/(y/z)))))"
-"((((x-(y/z))+((x+y)*z))+(((x+y)-z)*((x*y)*z)))+((((x+y)+z)/((x/y)+z))/(((x/y)-z)/(x*(y+z)))))"
-"((((x/(y*z))+(x-(y-z)))+((x-(y/z))+((x+y)*z)))+(((x-(y*z))-((x+y)-z))-(((x+y)+z)/((x/y)+z))))"
-"((((x/(y+z))*(x*(y/z)))*((x-(y+z))*(x+(y-z))))*(((x-(y-z))/((x+y)/z))/(((x+y)*z)-((x*y)/z))))"
-"((((x/(y-z))/(x-(y+z)))/((x-(y-z))/((x+y)/z)))/(((x-(y/z))+((x+y)*z))+(((x+y)-z)*((x*y)*z))))"
-"((((x/(y/z))-(x-(y/z)))-((x-(y*z))-((x+y)-z)))-(((x+(y*z))*((x+y)+z))*(((x-y)/z)+((x/y)-z))))"
-"((b*((a*((tan((cos(cos((b*(((((cos(((a-b)+a))+a)+b)*2.48)*a)+0.61))))*a))*0.87)*a))/a))*0.02)"
-"(a/tan((cos(cos(((sin(((tan((((b-((cos((a+((a*b)*e)))+3.06)/b))+a)+e))*0.82)+e))*e)/e)))-e)))"
-"3.3*a^11+2.2*a^10+1.1*a^9+9.9*a^8+8.8*a^7+7.7*a^6+6.6*a^5+5.5*a^4+4.4*a^3+3.3*a^2+2.2*a^1+1.1"
-"(pi/(((((((((e*(a/((((b+(((e*sin(tan(2.63)))+pi)+1.04))*a)+e)/b)))-b)/b)+b)*0.43)-a)+b)/a)-e))"
-"(((((((((((((((((((b+e)+b)+a)+1.48)+1.61)-a)-b)+3.19)+e)/e)+e)+b)+b)-a)+0.58)-e)-1.22)-3.12)+a)"
-"((((((((((((b+(((((((((a*a)+b)*a)-b)-e)-1.21)+b)*a)/e))+1.65)+a)+e)*a)/e)*1.16)+a)+e)*b)+e)+pi)"
-"(((b-((((((((((((((((((2.65*a)+a)/a)-b)*e)+a)/e)+b)-b)*2.96)/a)-pi)+b)+e)/a)+b)+3.14)-b))+e)*e)"
-"((3.47+(((((((pi-(cos(tan(((cos((0.03/(3.18+a)))-b)-3.88)))+3.77))*b)-pi)+b)+3.76)+3.54)*b))-a)"
-"1.1*x^2+2.2*1.1/y^3-2.2-1.1*x^2+2.2-1.1/y^3-2.2-1.1*x^2+2.2+1.1/y^3-2.2*1.1*x^2+2.2-1.1/y^3-2.2"
-"1.1*x^2+2.2+1.1/y^3-2.2*1.1*x^2+2.2*1.1/y^3-2.2+1.1*x^2+2.2-1.1/y^3-2.2+1.1*x^2+2.2+1.1/y^3-2.2"
-"1.1*x^2+2.2-1.1/y^3-2.2+1.1*x^2+2.2*1.1/y^3-2.2*1.1*x^2+2.2*1.1/y^3-2.2-1.1*x^2+2.2+1.1/y^3-2.2"
-"tan(((sin((((((((2.48/tan((sin(tan((((2.85/3.51)+b)*1.83)))*3.19)))/b)+a)+e)*b)+pi)+e))/pi)-a))"
-"(((((((((a*(((((((((((b-e)*e)*3.81)/b)*b)+b)+e)*1.80)+a)-b)+e))/b)*0.25)+b)+b)-2.61)*0.89)/a)*a)"
-"(((((a-((((2.43+((((b/(b+((((a/3.08)-b)+b)*a)))*e)+pi)+2.56))-a)+2.96)*0.40))/3.81)*pi)-1.87)+e)"
-"(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1+(1++1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)"
-"(((((((((cos(((pi-(tan(((sin((((a/a)+b)+e))/b)+1.98))/e))*a))+1.17)+a)/a)-3.84)/a)+2.53)/b)+b)+b)"
-"((((a-(((((((((b*(((((b/((b*b)+b))+a)-a)+3.86)-a))+2.80)-b)+0.73)*a)+a)-2.62)+3.75)+a))*a)+e)+pi)"
-"(a*(((((((((a*(((((((a-((((a+2.82)+a)+b)-e))*a)/b)/b)+b)*b)+a))+1.91)-b)*e)+b)+a)*0.77)+a)/2.57))"
-"((((((((((((1.46-((((((e*0.09)/e)+e)/3.22)/3.48)+pi))-b)/3.41)/2.54)+3.37)*b)+b)+b)/b)-3.57)+a)+b)"
-"(((((((((((((e+(((((((((b*b)/a)*a)+pi)/a)+a)*pi)+e)+pi))+a)+b)*pi)-a)+e)/pi)*0.56)+a)-pi)+pi)/b)*b)"
-"((((((((((((0.51+(((((e+((a/a)-3.02))-e)+3.93)-e)+1.04))/b)/1.41)/a)/b)+a)/pi)/a)-b)-1.72)*b)*0.81)"
-"((((a*((((((((((((e-((((1.35-(1.72+a))-b)*a)+b))+a)*2.34)/a)*pi)+b)+b)*e)-b)+e)+a)+pi))*e)-e)-0.95)"
-"(((b/(2.22+(a+(((((((((((((pi-((a+e)+b))+b)-3.79)/e)*b)-pi)*2.66)/pi)+a)*0.32)+b)/1.09)-b))))+a)-e)"
-"((3.123*y*z+w+3.123+y/z/w+3.123+y/z+w*3.123*y+z*w+3.123+y/z/w/3.123*y-z*w/3.123*y+z*w-3.123+y-z-w))"
-"((3.123*y*z-w*3.123-y*z/w*3.123-y-z*w+3.123/y-z*w*3.123-y*z/w-3.123/y+z*w-3.123/y-z*w/3.123-y*z+w))"
-"((3.123*y*z-w/3.123+y+z*w/3.123+y-z/w-3.123*y+z-w/3.123+y+z*w*3.123/y+z-w*3.123*y+z-w+3.123/y*z-w))"
-"((3.123*y+z*w*3.123/y-z+w*3.123*y-z+w+3.123/y/z+w*3.123/y-z+w-3.123*y/z-w-3.123/y/z+w/3.123-y+z*w))"
-"((3.123*y+z*w-3.123+y-z-w-3.123-y-z/w/3.123+y/z*w-3.123+y-z-w+3.123+y/z/w+3.123+y/z*w*3.123+y+z*w))"
-"((3.123*y+z+w*3.123/y/z-w*3.123*y/z-w+3.123-y-z/w*3.123/y/z-w-3.123-y-z*w-3.123-y-z/w/3.123/y-z/w))"
-"((3.123*y+z-w+3.123/y*z-w+3.123*y*z-w*3.123-y*z/w+3.123/y*z-w/3.123-y*z*w/3.123-y*z/w-3.123/y+z*w))"
-"((3.123*y+z/w/3.123+y*z-w/3.123+y+z-w-3.123-y/z*w/3.123+y*z-w*3.123-y/z/w*3.123-y/z*w+3.123+y-z*w))"
-"((3.123*y-z*w*3.123+y+z-w*3.123+y-z-w+3.123+y/z/w*3.123+y+z-w-3.123-y/z*w-3.123+y/z/w/3.123+y-z/w))"
-"((3.123*y-z*w/3.123*y+z+w/3.123/y-z+w-3.123*y/z-w/3.123*y+z+w*3.123/y/z-w*3.123*y/z-w+3.123-y-z/w))"
-"((3.123*y-z+w+3.123/y/z+w+3.123*y/z+w*3.123-y+z/w+3.123/y/z+w/3.123-y+z*w/3.123-y+z/w-3.123*y-z/w))"
-"((3.123*y-z-w*3.123-y*z/w*3.123+y*z/w+3.123-y/z/w*3.123-y*z/w-3.123-y/z*w-3.123-y/z/w/3.123*y+z*w))"
-"((3.123*y-z/w+3.123+y/z-w+3.123+y*z-w*3.123-y/z/w+3.123+y/z-w/3.123-y*z*w/3.123-y/z/w-3.123+y*z/w))"
-"((3.123*y/z+w*3.123-y+z/w*3.123+y/z*w+3.123*y+z/w*3.123-y+z/w-3.123*y-z/w-3.123*y+z/w/3.123+y*z-w))"
-"((3.123*y/z-w+3.123-y-z/w+3.123-y+z*w*3.123/y+z/w+3.123-y-z/w/3.123/y-z/w/3.123/y+z/w-3.123-y-z+w))"
-"((3.123*y/z-w/3.123-y-z*w/3.123-y+z/w-3.123+y*z*w/3.123-y-z*w*3.123+y*z/w*3.123+y*z*w+3.123-y/z*w))"
-"((3.123+y*z*w+3.123-y/z*w+3.123+y/z*w*3.123+y*z-w+3.123-y/z*w/3.123-y*z-w/3.123+y*z-w-3.123+y-z*w))"
-"((3.123+y*z*w-3.123/y/z-w-3.123*y/z-w/3.123-y-z*w-3.123/y/z-w+3.123-y-z/w+3.123-y-z*w*3.123+y*z/w))"
-"((3.123+y*z-w*3.123-y/z/w*3.123-y/z*w+3.123+y-z*w*3.123-y/z/w-3.123+y*z/w-3.123+y-z*w/3.123-y/z-w))"
-"((3.123+y*z-w-3.123+y-z*w-3.123*y-z*w/3.123*y+z+w-3.123+y-z*w+3.123/y+z+w+3.123*y+z+w*3.123/y/z-w))"
-"((3.123+y*z/w+3.123*y/z-w+3.123-y/z-w*3.123-y+z/w+3.123*y/z-w/3.123-y-z*w/3.123-y+z/w-3.123+y*z*w))"
-"((3.123+y*z/w+3.123-y/z/w+3.123-y*z*w*3.123/y-z*w+3.123-y/z/w/3.123*y+z*w/3.123/y-z*w-3.123*y-z+w))"
-"((3.123+y*z/w-3.123+y+z/w-3.123-y/z*w/3.123-y*z-w-3.123+y+z/w+3.123*y*z-w+3.123-y*z-w*3.123+y-z/w))"
-"((3.123+y+z*w*3.123/y+z-w*3.123*y+z-w+3.123/y*z-w*3.123/y+z-w-3.123+y*z/w-3.123/y*z-w/3.123-y*z*w))"
-"((3.123+y+z*w-3.123/y*z-w-3.123*y*z-w/3.123+y+z*w-3.123/y*z-w+3.123+y+z/w+3.123+y+z*w*3.123/y+z-w))"
-"((3.123+y+z-w-3.123-y/z*w-3.123+y/z/w/3.123+y-z/w-3.123-y/z*w+3.123+y-z*w+3.123+y-z/w*3.123+y/z-w))"
-"((3.123+y+z/w+3.123*y*z-w+3.123-y*z-w*3.123+y-z/w+3.123*y*z-w/3.123+y+z*w/3.123+y-z/w-3.123*y+z-w))"
-"((3.123+y+z/w/3.123*y-z-w/3.123/y+z-w-3.123+y*z/w/3.123*y-z-w*3.123-y*z/w*3.123+y*z/w+3.123-y/z/w))"
-"((3.123+y-z*w+3.123/y+z+w+3.123*y+z+w*3.123/y/z-w+3.123/y+z+w/3.123*y*z-w/3.123/y/z-w-3.123-y-z*w))"
-"((3.123+y-z*w/3.123-y/z-w/3.123+y/z-w-3.123-y+z*w/3.123-y/z-w*3.123-y+z/w*3.123-y+z*w+3.123/y-z-w))"
-"((3.123+y-z-w+3.123+y/z/w+3.123+y/z*w*3.123+y+z*w+3.123+y/z/w/3.123+y-z/w/3.123+y+z*w-3.123/y*z-w))"
-"((3.123+y-z/w*3.123+y/z-w*3.123/y*z-w+3.123+y+z/w*3.123+y/z-w-3.123-y+z*w-3.123+y+z/w/3.123*y-z-w))"
-"((3.123+y-z/w-3.123*y+z-w-3.123/y+z+w/3.123*y*z-w-3.123*y+z-w+3.123/y*z-w+3.123*y*z-w*3.123-y*z/w))"
-"((3.123+y/z*w*3.123+y*z-w*3.123-y/z*w+3.123*y-z*w*3.123+y*z-w-3.123+y-z*w-3.123*y-z*w/3.123*y+z+w))"
-"((3.123+y/z*w*3.123+y+z*w*3.123+y+z/w+3.123*y*z-w*3.123+y+z*w-3.123/y*z-w-3.123*y*z-w/3.123+y+z*w))"
-"((3.123+y/z*w+3.123*y+z/w+3.123*y-z*w*3.123+y+z-w+3.123*y+z/w/3.123+y*z-w/3.123+y+z-w-3.123-y/z*w))"
-"((3.123+y/z+w*3.123*y+z*w*3.123/y/z-w+3.123-y-z/w*3.123*y+z*w-3.123+y-z-w-3.123-y-z/w/3.123+y/z*w))"
-"((3.123+y/z-w-3.123-y+z*w-3.123+y+z/w/3.123*y-z-w-3.123-y+z*w+3.123/y-z-w+3.123*y-z-w*3.123-y*z/w))"
-"((3.123+y/z-w/3.123-y*z*w/3.123-y/z/w-3.123+y*z/w/3.123-y*z*w*3.123+y*z*w*3.123+y*z/w+3.123*y/z-w))"
-"((3.123+y/z/w/3.123*y-z*w/3.123*y+z*w-3.123+y-z-w/3.123*y-z*w*3.123+y+z-w*3.123+y-z-w+3.123+y/z/w))"
-"((3.123+y/z/w/3.123+y-z/w/3.123+y+z*w-3.123/y*z-w/3.123+y-z/w*3.123+y/z-w*3.123/y*z-w+3.123+y+z/w))"
-"((3.123-y*z*w*3.123+y*z*w*3.123+y*z/w+3.123*y/z-w*3.123+y*z*w-3.123/y/z-w-3.123*y/z-w/3.123-y-z*w))"
-"((3.123-y*z*w*3.123/y-z*w*3.123/y+z*w+3.123-y/z+w*3.123/y-z*w-3.123*y-z+w-3.123-y/z+w/3.123*y/z+w))"
-"((3.123-y*z+w*3.123/y*z+w*3.123*y*z+w+3.123+y/z/w*3.123/y*z+w-3.123+y/z*w-3.123+y/z/w/3.123*y-z*w))"
-"((3.123-y*z-w*3.123+y-z/w*3.123+y-z*w+3.123/y+z+w*3.123+y-z/w-3.123*y+z-w-3.123/y+z+w/3.123*y*z-w))"
-"((3.123-y*z/w-3.123-y/z*w-3.123-y/z/w/3.123*y+z*w-3.123-y/z*w+3.123*y-z*w+3.123*y+z*w*3.123/y-z+w))"
-"((3.123-y*z/w-3.123/y+z*w-3.123/y-z*w/3.123-y*z+w-3.123/y+z*w+3.123-y/z+w+3.123-y*z+w*3.123/y*z+w))"
-"((3.123-y*z/w/3.123+y/z+w/3.123+y*z*w-3.123/y/z-w/3.123+y/z+w*3.123*y+z*w*3.123/y/z-w+3.123-y-z/w))"
-"((3.123-y+z*w*3.123/y+z/w*3.123*y-z/w+3.123+y/z-w*3.123/y+z/w-3.123-y-z+w-3.123+y/z-w/3.123-y*z*w))"
-"((3.123-y+z*w+3.123/y-z-w+3.123*y-z-w*3.123-y*z/w+3.123/y-z-w/3.123+y/z*w/3.123-y*z/w-3.123-y/z*w))"
-"((3.123-y+z+w-3.123*y*z+w-3.123-y*z/w/3.123+y/z+w-3.123*y*z+w+3.123+y/z/w+3.123+y/z+w*3.123*y+z*w))"
-"((3.123-y+z/w-3.123*y-z/w-3.123*y+z/w/3.123+y*z-w-3.123*y-z/w+3.123+y/z-w+3.123+y*z-w*3.123-y/z/w))"
-"((3.123-y+z/w-3.123+y*z*w-3.123/y-z-w/3.123+y/z*w-3.123+y*z*w+3.123-y/z*w+3.123+y/z*w*3.123+y*z-w))"
-"((3.123-y-z*w*3.123+y*z/w*3.123+y*z*w+3.123-y/z*w*3.123+y*z/w-3.123+y+z/w-3.123-y/z*w/3.123-y*z-w))"
-"((3.123-y-z*w+3.123/y-z*w+3.123/y-z/w*3.123-y+z+w+3.123/y-z*w/3.123-y*z+w/3.123-y+z+w-3.123*y*z+w))"
-"((3.123-y-z+w+3.123-y*z/w+3.123-y*z*w*3.123+y*z*w+3.123-y*z/w/3.123+y/z+w/3.123+y*z*w-3.123/y/z-w))"
-"((3.123-y-z/w/3.123+y/z*w/3.123+y*z/w-3.123+y+z/w/3.123+y/z*w*3.123+y+z*w*3.123+y+z/w+3.123*y*z-w))"
-"((3.123-y-z/w/3.123/y-z/w/3.123/y+z/w-3.123-y-z+w/3.123/y-z/w*3.123-y+z+w*3.123-y-z+w+3.123-y*z/w))"
-"((3.123-y/z*w+3.123*y-z*w+3.123*y+z*w*3.123/y-z+w+3.123*y-z*w/3.123*y+z+w/3.123/y-z+w-3.123*y/z-w))"
-"((3.123-y/z*w+3.123+y-z*w+3.123+y-z/w*3.123+y/z-w+3.123+y-z*w/3.123-y/z-w/3.123+y/z-w-3.123-y+z*w))"
-"((3.123-y/z*w/3.123-y*z-w/3.123+y*z-w-3.123+y-z*w/3.123-y*z-w*3.123+y-z/w*3.123+y-z*w+3.123/y+z+w))"
-"((3.123-y/z+w/3.123*y/z+w/3.123/y*z+w-3.123+y/z*w/3.123*y/z+w*3.123-y+z/w*3.123+y/z*w+3.123*y+z/w))"
-"((3.123-y/z-w*3.123-y+z/w*3.123-y+z*w+3.123/y-z-w*3.123-y+z/w-3.123+y*z*w-3.123/y-z-w/3.123+y/z*w))"
-"((3.123-y/z/w-3.123+y*z/w-3.123+y-z*w/3.123-y/z-w-3.123+y*z/w+3.123*y/z-w+3.123-y/z-w*3.123-y+z/w))"
-"((3.123-y/z/w/3.123*y+z*w/3.123/y-z*w-3.123*y-z+w/3.123*y+z*w*3.123/y-z+w*3.123*y-z+w+3.123/y/z+w))"
-"((3.123/y*z+w-3.123+y/z*w-3.123+y/z/w/3.123*y-z*w-3.123+y/z*w+3.123*y+z/w+3.123*y-z*w*3.123+y+z-w))"
-"((3.123/y*z-w+3.123+y+z/w+3.123+y+z*w*3.123/y+z-w+3.123+y+z/w/3.123*y-z-w/3.123/y+z-w-3.123+y*z/w))"
-"((3.123/y*z-w/3.123-y*z*w/3.123-y*z/w-3.123/y+z*w/3.123-y*z*w*3.123/y-z*w*3.123/y+z*w+3.123-y/z+w))"
-"((3.123/y+z*w+3.123-y/z+w+3.123-y*z+w*3.123/y*z+w+3.123-y/z+w/3.123*y/z+w/3.123/y*z+w-3.123+y/z*w))"
-"((3.123/y+z+w/3.123*y*z-w/3.123/y/z-w-3.123-y-z*w/3.123*y*z-w*3.123-y*z/w*3.123-y-z*w+3.123/y-z*w))"
-"((3.123/y+z-w-3.123+y*z/w-3.123/y*z-w/3.123-y*z*w-3.123+y*z/w+3.123-y/z/w+3.123-y*z*w*3.123/y-z*w))"
-"((3.123/y+z/w-3.123-y-z+w-3.123+y/z-w/3.123-y*z*w-3.123-y-z+w+3.123-y*z/w+3.123-y*z*w*3.123+y*z*w))"
-"((3.123/y-z*w-3.123*y-z+w-3.123-y/z+w/3.123*y/z+w-3.123*y-z+w+3.123/y/z+w+3.123*y/z+w*3.123-y+z/w))"
-"((3.123/y-z*w/3.123-y*z+w/3.123-y+z+w-3.123*y*z+w/3.123-y*z+w*3.123/y*z+w*3.123*y*z+w+3.123+y/z/w))"
-"((3.123/y-z+w-3.123*y/z-w-3.123/y/z+w/3.123-y+z*w-3.123*y/z-w+3.123-y-z/w+3.123-y+z*w*3.123/y+z/w))"
-"((3.123/y-z-w/3.123+y/z*w/3.123-y*z/w-3.123-y/z*w/3.123+y/z*w*3.123+y*z-w*3.123-y/z*w+3.123*y-z*w))"
-"((3.123/y-z/w*3.123-y+z+w*3.123-y-z+w+3.123-y*z/w*3.123-y+z+w-3.123*y*z+w-3.123-y*z/w/3.123+y/z+w))"
-"((3.123/y/z+w/3.123-y+z*w/3.123-y+z/w-3.123*y-z/w/3.123-y+z*w*3.123/y+z/w*3.123*y-z/w+3.123+y/z-w))"
-"((3.123/y/z-w+3.123-y-z/w+3.123-y-z*w*3.123+y*z/w+3.123-y-z/w/3.123+y/z*w/3.123+y*z/w-3.123+y+z/w))"
-"((3.123/y/z-w-3.123-y-z*w-3.123-y-z/w/3.123/y-z/w-3.123-y-z*w+3.123/y-z*w+3.123/y-z/w*3.123-y+z+w))"
-"((x*5.123*z+w+x+5.123/z/w+x+5.123/z+w*x*5.123+z*w+x+5.123/z/w/x*5.123-z*w/x*5.123+z*w-x+5.123-z-w))"
-"((x*5.123*z-w*x-5.123*z/w*x-5.123-z*w+x/5.123-z*w*x-5.123*z/w-x/5.123+z*w-x/5.123-z*w/x-5.123*z+w))"
-"((x*5.123*z-w/x+5.123+z*w/x+5.123-z/w-x*5.123+z-w/x+5.123+z*w*x/5.123+z-w*x*5.123+z-w+x/5.123*z-w))"
-"((x*5.123+z*w*x/5.123-z+w*x*5.123-z+w+x/5.123/z+w*x/5.123-z+w-x*5.123/z-w-x/5.123/z+w/x-5.123+z*w))"
-"((x*5.123+z*w-x+5.123-z-w-x-5.123-z/w/x+5.123/z*w-x+5.123-z-w+x+5.123/z/w+x+5.123/z*w*x+5.123+z*w))"
-"((x*5.123+z+w*x/5.123/z-w*x*5.123/z-w+x-5.123-z/w*x/5.123/z-w-x-5.123-z*w-x-5.123-z/w/x/5.123-z/w))"
-"((x*5.123+z-w+x/5.123*z-w+x*5.123*z-w*x-5.123*z/w+x/5.123*z-w/x-5.123*z*w/x-5.123*z/w-x/5.123+z*w))"
-"((x*5.123+z/w/x+5.123*z-w/x+5.123+z-w-x-5.123/z*w/x+5.123*z-w*x-5.123/z/w*x-5.123/z*w+x+5.123-z*w))"
-"((x*5.123-z*w*x+5.123+z-w*x+5.123-z-w+x+5.123/z/w*x+5.123+z-w-x-5.123/z*w-x+5.123/z/w/x+5.123-z/w))"
-"((x*5.123-z*w/x*5.123+z+w/x/5.123-z+w-x*5.123/z-w/x*5.123+z+w*x/5.123/z-w*x*5.123/z-w+x-5.123-z/w))"
-"((x*5.123-z+w+x/5.123/z+w+x*5.123/z+w*x-5.123+z/w+x/5.123/z+w/x-5.123+z*w/x-5.123+z/w-x*5.123-z/w))"
-"((x*5.123-z-w*x-5.123*z/w*x+5.123*z/w+x-5.123/z/w*x-5.123*z/w-x-5.123/z*w-x-5.123/z/w/x*5.123+z*w))"
-"((x*5.123-z/w+x+5.123/z-w+x+5.123*z-w*x-5.123/z/w+x+5.123/z-w/x-5.123*z*w/x-5.123/z/w-x+5.123*z/w))"
-"((x*5.123/z+w*x-5.123+z/w*x+5.123/z*w+x*5.123+z/w*x-5.123+z/w-x*5.123-z/w-x*5.123+z/w/x+5.123*z-w))"
-"((x*5.123/z-w+x-5.123-z/w+x-5.123+z*w*x/5.123+z/w+x-5.123-z/w/x/5.123-z/w/x/5.123+z/w-x-5.123-z+w))"
-"((x*5.123/z-w/x-5.123-z*w/x-5.123+z/w-x+5.123*z*w/x-5.123-z*w*x+5.123*z/w*x+5.123*z*w+x-5.123/z*w))"
-"((x*y*7.123+w+x+y/7.123/w+x+y/7.123+w*x*y+7.123*w+x+y/7.123/w/x*y-7.123*w/x*y+7.123*w-x+y-7.123-w))"
-"((x*y*7.123-w*x-y*7.123/w*x-y-7.123*w+x/y-7.123*w*x-y*7.123/w-x/y+7.123*w-x/y-7.123*w/x-y*7.123+w))"
-"((x*y*7.123-w/x+y+7.123*w/x+y-7.123/w-x*y+7.123-w/x+y+7.123*w*x/y+7.123-w*x*y+7.123-w+x/y*7.123-w))"
-"((x*y*z+9.123+x+y/z/9.123+x+y/z+9.123*x*y+z*9.123+x+y/z/9.123/x*y-z*9.123/x*y+z*9.123-x+y-z-9.123))"
-"((x*y*z-9.123*x-y*z/9.123*x-y-z*9.123+x/y-z*9.123*x-y*z/9.123-x/y+z*9.123-x/y-z*9.123/x-y*z+9.123))"
-"((x*y*z-9.123/x+y+z*9.123/x+y-z/9.123-x*y+z-9.123/x+y+z*9.123*x/y+z-9.123*x*y+z-9.123+x/y*z-9.123))"
-"((x*y+7.123*w*x/y-7.123+w*x*y-7.123+w+x/y/7.123+w*x/y-7.123+w-x*y/7.123-w-x/y/7.123+w/x-y+7.123*w))"
-"((x*y+7.123*w-x+y-7.123-w-x-y-7.123/w/x+y/7.123*w-x+y-7.123-w+x+y/7.123/w+x+y/7.123*w*x+y+7.123*w))"
-"((x*y+7.123+w*x/y/7.123-w*x*y/7.123-w+x-y-7.123/w*x/y/7.123-w-x-y-7.123*w-x-y-7.123/w/x/y-7.123/w))"
-"((x*y+7.123-w+x/y*7.123-w+x*y*7.123-w*x-y*7.123/w+x/y*7.123-w/x-y*7.123*w/x-y*7.123/w-x/y+7.123*w))"
-"((x*y+7.123/w/x+y*7.123-w/x+y+7.123-w-x-y/7.123*w/x+y*7.123-w*x-y/7.123/w*x-y/7.123*w+x+y-7.123*w))"
-"((x*y+z*9.123*x/y-z+9.123*x*y-z+9.123+x/y/z+9.123*x/y-z+9.123-x*y/z-9.123-x/y/z+9.123/x-y+z*9.123))"
-"((x*y+z*9.123-x+y-z-9.123-x-y-z/9.123/x+y/z*9.123-x+y-z-9.123+x+y/z/9.123+x+y/z*9.123*x+y+z*9.123))"
-"((x*y+z+9.123*x/y/z-9.123*x*y/z-9.123+x-y-z/9.123*x/y/z-9.123-x-y-z*9.123-x-y-z/9.123/x/y-z/9.123))"
-"((x*y+z-9.123+x/y*z-9.123+x*y*z-9.123*x-y*z/9.123+x/y*z-9.123/x-y*z*9.123/x-y*z/9.123-x/y+z*9.123))"
-"((x*y+z/9.123/x+y*z-9.123/x+y+z-9.123-x-y/z*9.123/x+y*z-9.123*x-y/z/9.123*x-y/z*9.123+x+y-z*9.123))"
-"((x*y-7.123*w*x+y+7.123-w*x+y-7.123-w+x+y/7.123/w*x+y+7.123-w-x-y/7.123*w-x+y/7.123/w/x+y-7.123/w))"
-"((x*y-7.123*w/x*y+7.123+w/x/y-7.123+w-x*y/7.123-w/x*y+7.123+w*x/y/7.123-w*x*y/7.123-w+x-y-7.123/w))"
-"((x*y-7.123+w+x/y/7.123+w+x*y/7.123+w*x-y+7.123/w+x/y/7.123+w/x-y+7.123*w/x-y+7.123/w-x*y-7.123/w))"
-"((x*y-7.123-w*x-y*7.123/w*x+y*7.123/w+x-y/7.123/w*x-y*7.123/w-x-y/7.123*w-x-y/7.123/w/x*y+7.123*w))"
-"((x*y-7.123/w+x+y/7.123-w+x+y*7.123-w*x-y/7.123/w+x+y/7.123-w/x-y*7.123*w/x-y/7.123/w-x+y*7.123/w))"
-"((x*y-z*9.123*x+y+z-9.123*x+y-z-9.123+x+y/z/9.123*x+y+z-9.123-x-y/z*9.123-x+y/z/9.123/x+y-z/9.123))"
-"((x*y-z*9.123/x*y+z+9.123/x/y-z+9.123-x*y/z-9.123/x*y+z+9.123*x/y/z-9.123*x*y/z-9.123+x-y-z/9.123))"
-"((x*y-z+9.123+x/y/z+9.123+x*y/z+9.123*x-y+z/9.123+x/y/z+9.123/x-y+z*9.123/x-y+z/9.123-x*y-z/9.123))"
-"((x*y-z-9.123*x-y*z/9.123*x+y*z/9.123+x-y/z/9.123*x-y*z/9.123-x-y/z*9.123-x-y/z/9.123/x*y+z*9.123))"
-"((x*y-z/9.123+x+y/z-9.123+x+y*z-9.123*x-y/z/9.123+x+y/z-9.123/x-y*z*9.123/x-y/z/9.123-x+y*z/9.123))"
-"((x*y/7.123+w*x-y+7.123/w*x+y/7.123*w+x*y+7.123/w*x-y+7.123/w-x*y-7.123/w-x*y+7.123/w/x+y*7.123-w))"
-"((x*y/7.123-w+x-y-7.123/w+x-y+7.123*w*x/y+7.123/w+x-y-7.123/w/x/y-7.123/w/x/y+7.123/w-x-y-7.123+w))"
-"((x*y/7.123-w/x-y-7.123*w/x-y+7.123/w-x+y*7.123*w/x-y-7.123*w*x+y*7.123/w*x+y*7.123*w+x-y/7.123*w))"
-"((x*y/z+9.123*x-y+z/9.123*x+y/z*9.123+x*y+z/9.123*x-y+z/9.123-x*y-z/9.123-x*y+z/9.123/x+y*z-9.123))"
-"((x*y/z-9.123+x-y-z/9.123+x-y+z*9.123*x/y+z/9.123+x-y-z/9.123/x/y-z/9.123/x/y+z/9.123-x-y-z+9.123))"
-"((x*y/z-9.123/x-y-z*9.123/x-y+z/9.123-x+y*z*9.123/x-y-z*9.123*x+y*z/9.123*x+y*z*9.123+x-y/z*9.123))"
-"((x+5.123*z*w+x-5.123/z*w+x+5.123/z*w*x+5.123*z-w+x-5.123/z*w/x-5.123*z-w/x+5.123*z-w-x+5.123-z*w))"
-"((x+5.123*z*w-x/5.123/z-w-x*5.123/z-w/x-5.123-z*w-x/5.123/z-w+x-5.123-z/w+x-5.123-z*w*x+5.123*z/w))"
-"((x+5.123*z-w*x-5.123/z/w*x-5.123/z*w+x+5.123-z*w*x-5.123/z/w-x+5.123*z/w-x+5.123-z*w/x-5.123/z-w))"
-"((x+5.123*z-w-x+5.123-z*w-x*5.123-z*w/x*5.123+z+w-x+5.123-z*w+x/5.123+z+w+x*5.123+z+w*x/5.123/z-w))"
-"((x+5.123*z/w+x*5.123/z-w+x-5.123/z-w*x-5.123+z/w+x*5.123/z-w/x-5.123-z*w/x-5.123+z/w-x+5.123*z*w))"
-"((x+5.123*z/w+x-5.123/z/w+x-5.123*z*w*x/5.123-z*w+x-5.123/z/w/x*5.123+z*w/x/5.123-z*w-x*5.123-z+w))"
-"((x+5.123*z/w-x+5.123+z/w-x-5.123/z*w/x-5.123*z-w-x+5.123+z/w+x*5.123*z-w+x-5.123*z-w*x+5.123-z/w))"
-"((x+5.123+z*w*x/5.123+z-w*x*5.123+z-w+x/5.123*z-w*x/5.123+z-w-x+5.123*z/w-x/5.123*z-w/x-5.123*z*w))"
-"((x+5.123+z*w-x/5.123*z-w-x*5.123*z-w/x+5.123+z*w-x/5.123*z-w+x+5.123+z/w+x+5.123+z*w*x/5.123+z-w))"
-"((x+5.123+z-w-x-5.123/z*w-x+5.123/z/w/x+5.123-z/w-x-5.123/z*w+x+5.123-z*w+x+5.123-z/w*x+5.123/z-w))"
-"((x+5.123+z/w+x*5.123*z-w+x-5.123*z-w*x+5.123-z/w+x*5.123*z-w/x+5.123+z*w/x+5.123-z/w-x*5.123+z-w))"
-"((x+5.123+z/w/x*5.123-z-w/x/5.123+z-w-x+5.123*z/w/x*5.123-z-w*x-5.123*z/w*x+5.123*z/w+x-5.123/z/w))"
-"((x+5.123-z*w+x/5.123+z+w+x*5.123+z+w*x/5.123/z-w+x/5.123+z+w/x*5.123*z-w/x/5.123/z-w-x-5.123-z*w))"
-"((x+5.123-z*w/x-5.123/z-w/x+5.123/z-w-x-5.123+z*w/x-5.123/z-w*x-5.123+z/w*x-5.123+z*w+x/5.123-z-w))"
-"((x+5.123-z-w+x+5.123/z/w+x+5.123/z*w*x+5.123+z*w+x+5.123/z/w/x+5.123-z/w/x+5.123+z*w-x/5.123*z-w))"
-"((x+5.123-z/w*x+5.123/z-w*x/5.123*z-w+x+5.123+z/w*x+5.123/z-w-x-5.123+z*w-x+5.123+z/w/x*5.123-z-w))"
-"((x+5.123-z/w-x*5.123+z-w-x/5.123+z+w/x*5.123*z-w-x*5.123+z-w+x/5.123*z-w+x*5.123*z-w*x-5.123*z/w))"
-"((x+5.123/z*w*x+5.123*z-w*x-5.123/z*w+x*5.123-z*w*x+5.123*z-w-x+5.123-z*w-x*5.123-z*w/x*5.123+z+w))"
-"((x+5.123/z*w*x+5.123+z*w*x+5.123+z/w+x*5.123*z-w*x+5.123+z*w-x/5.123*z-w-x*5.123*z-w/x+5.123+z*w))"
-"((x+5.123/z*w+x*5.123+z/w+x*5.123-z*w*x+5.123+z-w+x*5.123+z/w/x+5.123*z-w/x+5.123+z-w-x-5.123/z*w))"
-"((x+5.123/z+w*x*5.123+z*w*x/5.123/z-w+x-5.123-z/w*x*5.123+z*w-x+5.123-z-w-x-5.123-z/w/x+5.123/z*w))"
-"((x+5.123/z-w-x-5.123+z*w-x+5.123+z/w/x*5.123-z-w-x-5.123+z*w+x/5.123-z-w+x*5.123-z-w*x-5.123*z/w))"
-"((x+5.123/z-w/x-5.123*z*w/x-5.123/z/w-x+5.123*z/w/x-5.123*z*w*x+5.123*z*w*x+5.123*z/w+x*5.123/z-w))"
-"((x+5.123/z/w/x*5.123-z*w/x*5.123+z*w-x+5.123-z-w/x*5.123-z*w*x+5.123+z-w*x+5.123-z-w+x+5.123/z/w))"
-"((x+5.123/z/w/x+5.123-z/w/x+5.123+z*w-x/5.123*z-w/x+5.123-z/w*x+5.123/z-w*x/5.123*z-w+x+5.123+z/w))"
-"((x+y*7.123*w+x-y/7.123*w+x+y/7.123*w*x+y*7.123-w+x-y/7.123*w/x-y*7.123-w/x+y*7.123-w-x+y-7.123*w))"
-"((x+y*7.123*w-x/y/7.123-w-x*y/7.123-w/x-y-7.123*w-x/y/7.123-w+x-y-7.123/w+x-y-7.123*w*x+y*7.123/w))"
-"((x+y*7.123-w*x-y/7.123/w*x-y/7.123*w+x+y-7.123*w*x-y/7.123/w-x+y*7.123/w-x+y-7.123*w/x-y/7.123-w))"
-"((x+y*7.123-w-x+y-7.123*w-x*y-7.123*w/x*y+7.123+w-x+y-7.123*w+x/y+7.123+w+x*y+7.123+w*x/y/7.123-w))"
-"((x+y*7.123/w+x*y/7.123-w+x-y/7.123-w*x-y+7.123/w+x*y/7.123-w/x-y-7.123*w/x-y+7.123/w-x+y*7.123*w))"
-"((x+y*7.123/w+x-y/7.123/w+x-y*7.123*w*x/y-7.123*w+x-y/7.123/w/x*y+7.123*w/x/y-7.123*w-x*y-7.123+w))"
-"((x+y*7.123/w-x+y+7.123/w-x-y/7.123*w/x-y*7.123-w-x+y+7.123/w+x*y*7.123-w+x-y*7.123-w*x+y-7.123/w))"
-"((x+y*z*9.123+x-y/z*9.123+x+y/z*9.123*x+y*z-9.123+x-y/z*9.123/x-y*z-9.123/x+y*z-9.123-x+y-z*9.123))"
-"((x+y*z*9.123-x/y/z-9.123-x*y/z-9.123/x-y-z*9.123-x/y/z-9.123+x-y-z/9.123+x-y-z*9.123*x+y*z/9.123))"
-"((x+y*z-9.123*x-y/z/9.123*x-y/z*9.123+x+y-z*9.123*x-y/z/9.123-x+y*z/9.123-x+y-z*9.123/x-y/z-9.123))"
-"((x+y*z-9.123-x+y-z*9.123-x*y-z*9.123/x*y+z+9.123-x+y-z*9.123+x/y+z+9.123+x*y+z+9.123*x/y/z-9.123))"
-"((x+y*z/9.123+x*y/z-9.123+x-y/z-9.123*x-y+z/9.123+x*y/z-9.123/x-y-z*9.123/x-y+z/9.123-x+y*z*9.123))"
-"((x+y*z/9.123+x-y/z/9.123+x-y*z*9.123*x/y-z*9.123+x-y/z/9.123/x*y+z*9.123/x/y-z*9.123-x*y-z+9.123))"
-"((x+y*z/9.123-x+y+z/9.123-x-y/z*9.123/x-y*z-9.123-x+y+z/9.123+x*y*z-9.123+x-y*z-9.123*x+y-z/9.123))"
-"((x+y+7.123*w*x/y+7.123-w*x*y+7.123-w+x/y*7.123-w*x/y+7.123-w-x+y*7.123/w-x/y*7.123-w/x-y*7.123*w))"
-"((x+y+7.123*w-x/y*7.123-w-x*y*7.123-w/x+y+7.123*w-x/y*7.123-w+x+y+7.123/w+x+y+7.123*w*x/y+7.123-w))"
-"((x+y+7.123-w-x-y/7.123*w-x+y/7.123/w/x+y-7.123/w-x-y/7.123*w+x+y-7.123*w+x+y-7.123/w*x+y/7.123-w))"
-"((x+y+7.123/w+x*y*7.123-w+x-y*7.123-w*x+y-7.123/w+x*y*7.123-w/x+y+7.123*w/x+y-7.123/w-x*y+7.123-w))"
-"((x+y+7.123/w/x*y-7.123-w/x/y+7.123-w-x+y*7.123/w/x*y-7.123-w*x-y*7.123/w*x+y*7.123/w+x-y/7.123/w))"
-"((x+y+z*9.123*x/y+z-9.123*x*y+z-9.123+x/y*z-9.123*x/y+z-9.123-x+y*z/9.123-x/y*z-9.123/x-y*z*9.123))"
-"((x+y+z*9.123-x/y*z-9.123-x*y*z-9.123/x+y+z*9.123-x/y*z-9.123+x+y+z/9.123+x+y+z*9.123*x/y+z-9.123))"
-"((x+y+z-9.123-x-y/z*9.123-x+y/z/9.123/x+y-z/9.123-x-y/z*9.123+x+y-z*9.123+x+y-z/9.123*x+y/z-9.123))"
-"((x+y+z/9.123+x*y*z-9.123+x-y*z-9.123*x+y-z/9.123+x*y*z-9.123/x+y+z*9.123/x+y-z/9.123-x*y+z-9.123))"
-"((x+y+z/9.123/x*y-z-9.123/x/y+z-9.123-x+y*z/9.123/x*y-z-9.123*x-y*z/9.123*x+y*z/9.123+x-y/z/9.123))"
-"((x+y-7.123*w+x/y+7.123+w+x*y+7.123+w*x/y/7.123-w+x/y+7.123+w/x*y*7.123-w/x/y/7.123-w-x-y-7.123*w))"
-"((x+y-7.123*w/x-y/7.123-w/x+y/7.123-w-x-y+7.123*w/x-y/7.123-w*x-y+7.123/w*x-y+7.123*w+x/y-7.123-w))"
-"((x+y-7.123-w+x+y/7.123/w+x+y/7.123*w*x+y+7.123*w+x+y/7.123/w/x+y-7.123/w/x+y+7.123*w-x/y*7.123-w))"
-"((x+y-7.123/w*x+y/7.123-w*x/y*7.123-w+x+y+7.123/w*x+y/7.123-w-x-y+7.123*w-x+y+7.123/w/x*y-7.123-w))"
-"((x+y-7.123/w-x*y+7.123-w-x/y+7.123+w/x*y*7.123-w-x*y+7.123-w+x/y*7.123-w+x*y*7.123-w*x-y*7.123/w))"
-"((x+y-z*9.123+x/y+z+9.123+x*y+z+9.123*x/y/z-9.123+x/y+z+9.123/x*y*z-9.123/x/y/z-9.123-x-y-z*9.123))"
-"((x+y-z*9.123/x-y/z-9.123/x+y/z-9.123-x-y+z*9.123/x-y/z-9.123*x-y+z/9.123*x-y+z*9.123+x/y-z-9.123))"
-"((x+y-z-9.123+x+y/z/9.123+x+y/z*9.123*x+y+z*9.123+x+y/z/9.123/x+y-z/9.123/x+y+z*9.123-x/y*z-9.123))"
-"((x+y-z/9.123*x+y/z-9.123*x/y*z-9.123+x+y+z/9.123*x+y/z-9.123-x-y+z*9.123-x+y+z/9.123/x*y-z-9.123))"
-"((x+y-z/9.123-x*y+z-9.123-x/y+z+9.123/x*y*z-9.123-x*y+z-9.123+x/y*z-9.123+x*y*z-9.123*x-y*z/9.123))"
-"((x+y/7.123*w*x+y*7.123-w*x-y/7.123*w+x*y-7.123*w*x+y*7.123-w-x+y-7.123*w-x*y-7.123*w/x*y+7.123+w))"
-"((x+y/7.123*w*x+y+7.123*w*x+y+7.123/w+x*y*7.123-w*x+y+7.123*w-x/y*7.123-w-x*y*7.123-w/x+y+7.123*w))"
-"((x+y/7.123*w+x*y+7.123/w+x*y-7.123*w*x+y+7.123-w+x*y+7.123/w/x+y*7.123-w/x+y+7.123-w-x-y/7.123*w))"
-"((x+y/7.123+w*x*y+7.123*w*x/y/7.123-w+x-y-7.123/w*x*y+7.123*w-x+y-7.123-w-x-y-7.123/w/x+y/7.123*w))"
-"((x+y/7.123-w-x-y+7.123*w-x+y+7.123/w/x*y-7.123-w-x-y+7.123*w+x/y-7.123-w+x*y-7.123-w*x-y*7.123/w))"
-"((x+y/7.123-w/x-y*7.123*w/x-y/7.123/w-x+y*7.123/w/x-y*7.123*w*x+y*7.123*w*x+y*7.123/w+x*y/7.123-w))"
-"((x+y/7.123/w/x*y-7.123*w/x*y+7.123*w-x+y-7.123-w/x*y-7.123*w*x+y+7.123-w*x+y-7.123-w+x+y/7.123/w))"
-"((x+y/7.123/w/x+y-7.123/w/x+y+7.123*w-x/y*7.123-w/x+y-7.123/w*x+y/7.123-w*x/y*7.123-w+x+y+7.123/w))"
-"((x+y/z*9.123*x+y*z-9.123*x-y/z*9.123+x*y-z*9.123*x+y*z-9.123-x+y-z*9.123-x*y-z*9.123/x*y+z+9.123))"
-"((x+y/z*9.123*x+y+z*9.123*x+y+z/9.123+x*y*z-9.123*x+y+z*9.123-x/y*z-9.123-x*y*z-9.123/x+y+z*9.123))"
-"((x+y/z*9.123+x*y+z/9.123+x*y-z*9.123*x+y+z-9.123+x*y+z/9.123/x+y*z-9.123/x+y+z-9.123-x-y/z*9.123))"
-"((x+y/z+9.123*x*y+z*9.123*x/y/z-9.123+x-y-z/9.123*x*y+z*9.123-x+y-z-9.123-x-y-z/9.123/x+y/z*9.123))"
-"((x+y/z-9.123-x-y+z*9.123-x+y+z/9.123/x*y-z-9.123-x-y+z*9.123+x/y-z-9.123+x*y-z-9.123*x-y*z/9.123))"
-"((x+y/z-9.123/x-y*z*9.123/x-y/z/9.123-x+y*z/9.123/x-y*z*9.123*x+y*z*9.123*x+y*z/9.123+x*y/z-9.123))"
-"((x+y/z/9.123/x*y-z*9.123/x*y+z*9.123-x+y-z-9.123/x*y-z*9.123*x+y+z-9.123*x+y-z-9.123+x+y/z/9.123))"
-"((x+y/z/9.123/x+y-z/9.123/x+y+z*9.123-x/y*z-9.123/x+y-z/9.123*x+y/z-9.123*x/y*z-9.123+x+y+z/9.123))"
-"((x-5.123*z*w*x+5.123*z*w*x+5.123*z/w+x*5.123/z-w*x+5.123*z*w-x/5.123/z-w-x*5.123/z-w/x-5.123-z*w))"
-"((x-5.123*z*w*x/5.123-z*w*x/5.123+z*w+x-5.123/z+w*x/5.123-z*w-x*5.123-z+w-x-5.123/z+w/x*5.123/z+w))"
-"((x-5.123*z+w*x/5.123*z+w*x*5.123*z+w+x+5.123/z/w*x/5.123*z+w-x+5.123/z*w-x+5.123/z/w/x*5.123-z*w))"
-"((x-5.123*z-w*x+5.123-z/w*x+5.123-z*w+x/5.123+z+w*x+5.123-z/w-x*5.123+z-w-x/5.123+z+w/x*5.123*z-w))"
-"((x-5.123*z/w-x-5.123/z*w-x-5.123/z/w/x*5.123+z*w-x-5.123/z*w+x*5.123-z*w+x*5.123+z*w*x/5.123-z+w))"
-"((x-5.123*z/w-x/5.123+z*w-x/5.123-z*w/x-5.123*z+w-x/5.123+z*w+x-5.123/z+w+x-5.123*z+w*x/5.123*z+w))"
-"((x-5.123*z/w/x+5.123/z+w/x+5.123*z*w-x/5.123/z-w/x+5.123/z+w*x*5.123+z*w*x/5.123/z-w+x-5.123-z/w))"
-"((x-5.123+z*w*x/5.123+z/w*x*5.123-z/w+x+5.123/z-w*x/5.123+z/w-x-5.123-z+w-x+5.123/z-w/x-5.123*z*w))"
-"((x-5.123+z*w+x/5.123-z-w+x*5.123-z-w*x-5.123*z/w+x/5.123-z-w/x+5.123/z*w/x-5.123*z/w-x-5.123/z*w))"
-"((x-5.123+z+w-x*5.123*z+w-x-5.123*z/w/x+5.123/z+w-x*5.123*z+w+x+5.123/z/w+x+5.123/z+w*x*5.123+z*w))"
-"((x-5.123+z/w-x*5.123-z/w-x*5.123+z/w/x+5.123*z-w-x*5.123-z/w+x+5.123/z-w+x+5.123*z-w*x-5.123/z/w))"
-"((x-5.123+z/w-x+5.123*z*w-x/5.123-z-w/x+5.123/z*w-x+5.123*z*w+x-5.123/z*w+x+5.123/z*w*x+5.123*z-w))"
-"((x-5.123-z*w*x+5.123*z/w*x+5.123*z*w+x-5.123/z*w*x+5.123*z/w-x+5.123+z/w-x-5.123/z*w/x-5.123*z-w))"
-"((x-5.123-z*w+x/5.123-z*w+x/5.123-z/w*x-5.123+z+w+x/5.123-z*w/x-5.123*z+w/x-5.123+z+w-x*5.123*z+w))"
-"((x-5.123-z+w+x-5.123*z/w+x-5.123*z*w*x+5.123*z*w+x-5.123*z/w/x+5.123/z+w/x+5.123*z*w-x/5.123/z-w))"
-"((x-5.123-z/w/x+5.123/z*w/x+5.123*z/w-x+5.123+z/w/x+5.123/z*w*x+5.123+z*w*x+5.123+z/w+x*5.123*z-w))"
-"((x-5.123-z/w/x/5.123-z/w/x/5.123+z/w-x-5.123-z+w/x/5.123-z/w*x-5.123+z+w*x-5.123-z+w+x-5.123*z/w))"
-"((x-5.123/z*w+x*5.123-z*w+x*5.123+z*w*x/5.123-z+w+x*5.123-z*w/x*5.123+z+w/x/5.123-z+w-x*5.123/z-w))"
-"((x-5.123/z*w+x+5.123-z*w+x+5.123-z/w*x+5.123/z-w+x+5.123-z*w/x-5.123/z-w/x+5.123/z-w-x-5.123+z*w))"
-"((x-5.123/z*w/x-5.123*z-w/x+5.123*z-w-x+5.123-z*w/x-5.123*z-w*x+5.123-z/w*x+5.123-z*w+x/5.123+z+w))"
-"((x-5.123/z+w/x*5.123/z+w/x/5.123*z+w-x+5.123/z*w/x*5.123/z+w*x-5.123+z/w*x+5.123/z*w+x*5.123+z/w))"
-"((x-5.123/z-w*x-5.123+z/w*x-5.123+z*w+x/5.123-z-w*x-5.123+z/w-x+5.123*z*w-x/5.123-z-w/x+5.123/z*w))"
-"((x-5.123/z/w-x+5.123*z/w-x+5.123-z*w/x-5.123/z-w-x+5.123*z/w+x*5.123/z-w+x-5.123/z-w*x-5.123+z/w))"
-"((x-5.123/z/w/x*5.123+z*w/x/5.123-z*w-x*5.123-z+w/x*5.123+z*w*x/5.123-z+w*x*5.123-z+w+x/5.123/z+w))"
-"((x-y*7.123*w*x+y*7.123*w*x+y*7.123/w+x*y/7.123-w*x+y*7.123*w-x/y/7.123-w-x*y/7.123-w/x-y-7.123*w))"
-"((x-y*7.123*w*x/y-7.123*w*x/y+7.123*w+x-y/7.123+w*x/y-7.123*w-x*y-7.123+w-x-y/7.123+w/x*y/7.123+w))"
-"((x-y*7.123+w*x/y*7.123+w*x*y*7.123+w+x+y/7.123/w*x/y*7.123+w-x+y/7.123*w-x+y/7.123/w/x*y-7.123*w))"
-"((x-y*7.123-w*x+y-7.123/w*x+y-7.123*w+x/y+7.123+w*x+y-7.123/w-x*y+7.123-w-x/y+7.123+w/x*y*7.123-w))"
-"((x-y*7.123/w-x-y/7.123*w-x-y/7.123/w/x*y+7.123*w-x-y/7.123*w+x*y-7.123*w+x*y+7.123*w*x/y-7.123+w))"
-"((x-y*7.123/w-x/y+7.123*w-x/y-7.123*w/x-y*7.123+w-x/y+7.123*w+x-y/7.123+w+x-y*7.123+w*x/y*7.123+w))"
-"((x-y*7.123/w/x+y/7.123+w/x+y*7.123*w-x/y/7.123-w/x+y/7.123+w*x*y+7.123*w*x/y/7.123-w+x-y-7.123/w))"
-"((x-y*z*9.123*x+y*z*9.123*x+y*z/9.123+x*y/z-9.123*x+y*z*9.123-x/y/z-9.123-x*y/z-9.123/x-y-z*9.123))"
-"((x-y*z*9.123*x/y-z*9.123*x/y+z*9.123+x-y/z+9.123*x/y-z*9.123-x*y-z+9.123-x-y/z+9.123/x*y/z+9.123))"
-"((x-y*z+9.123*x/y*z+9.123*x*y*z+9.123+x+y/z/9.123*x/y*z+9.123-x+y/z*9.123-x+y/z/9.123/x*y-z*9.123))"
-"((x-y*z-9.123*x+y-z/9.123*x+y-z*9.123+x/y+z+9.123*x+y-z/9.123-x*y+z-9.123-x/y+z+9.123/x*y*z-9.123))"
-"((x-y*z/9.123-x-y/z*9.123-x-y/z/9.123/x*y+z*9.123-x-y/z*9.123+x*y-z*9.123+x*y+z*9.123*x/y-z+9.123))"
-"((x-y*z/9.123-x/y+z*9.123-x/y-z*9.123/x-y*z+9.123-x/y+z*9.123+x-y/z+9.123+x-y*z+9.123*x/y*z+9.123))"
-"((x-y*z/9.123/x+y/z+9.123/x+y*z*9.123-x/y/z-9.123/x+y/z+9.123*x*y+z*9.123*x/y/z-9.123+x-y-z/9.123))"
-"((x-y+7.123*w*x/y+7.123/w*x*y-7.123/w+x+y/7.123-w*x/y+7.123/w-x-y-7.123+w-x+y/7.123-w/x-y*7.123*w))"
-"((x-y+7.123*w+x/y-7.123-w+x*y-7.123-w*x-y*7.123/w+x/y-7.123-w/x+y/7.123*w/x-y*7.123/w-x-y/7.123*w))"
-"((x-y+7.123+w-x*y*7.123+w-x-y*7.123/w/x+y/7.123+w-x*y*7.123+w+x+y/7.123/w+x+y/7.123+w*x*y+7.123*w))"
-"((x-y+7.123/w-x*y-7.123/w-x*y+7.123/w/x+y*7.123-w-x*y-7.123/w+x+y/7.123-w+x+y*7.123-w*x-y/7.123/w))"
-"((x-y+7.123/w-x+y*7.123*w-x/y-7.123-w/x+y/7.123*w-x+y*7.123*w+x-y/7.123*w+x+y/7.123*w*x+y*7.123-w))"
-"((x-y+z*9.123*x/y+z/9.123*x*y-z/9.123+x+y/z-9.123*x/y+z/9.123-x-y-z+9.123-x+y/z-9.123/x-y*z*9.123))"
-"((x-y+z*9.123+x/y-z-9.123+x*y-z-9.123*x-y*z/9.123+x/y-z-9.123/x+y/z*9.123/x-y*z/9.123-x-y/z*9.123))"
-"((x-y+z+9.123-x*y*z+9.123-x-y*z/9.123/x+y/z+9.123-x*y*z+9.123+x+y/z/9.123+x+y/z+9.123*x*y+z*9.123))"
-"((x-y+z/9.123-x*y-z/9.123-x*y+z/9.123/x+y*z-9.123-x*y-z/9.123+x+y/z-9.123+x+y*z-9.123*x-y/z/9.123))"
-"((x-y+z/9.123-x+y*z*9.123-x/y-z-9.123/x+y/z*9.123-x+y*z*9.123+x-y/z*9.123+x+y/z*9.123*x+y*z-9.123))"
-"((x-y-7.123*w*x+y*7.123/w*x+y*7.123*w+x-y/7.123*w*x+y*7.123/w-x+y+7.123/w-x-y/7.123*w/x-y*7.123-w))"
-"((x-y-7.123*w+x/y-7.123*w+x/y-7.123/w*x-y+7.123+w+x/y-7.123*w/x-y*7.123+w/x-y+7.123+w-x*y*7.123+w))"
-"((x-y-7.123+w+x-y*7.123/w+x-y*7.123*w*x+y*7.123*w+x-y*7.123/w/x+y/7.123+w/x+y*7.123*w-x/y/7.123-w))"
-"((x-y-7.123/w/x+y/7.123*w/x+y*7.123/w-x+y+7.123/w/x+y/7.123*w*x+y+7.123*w*x+y+7.123/w+x*y*7.123-w))"
-"((x-y-7.123/w/x/y-7.123/w/x/y+7.123/w-x-y-7.123+w/x/y-7.123/w*x-y+7.123+w*x-y-7.123+w+x-y*7.123/w))"
-"((x-y-z*9.123*x+y*z/9.123*x+y*z*9.123+x-y/z*9.123*x+y*z/9.123-x+y+z/9.123-x-y/z*9.123/x-y*z-9.123))"
-"((x-y-z*9.123+x/y-z*9.123+x/y-z/9.123*x-y+z+9.123+x/y-z*9.123/x-y*z+9.123/x-y+z+9.123-x*y*z+9.123))"
-"((x-y-z+9.123+x-y*z/9.123+x-y*z*9.123*x+y*z*9.123+x-y*z/9.123/x+y/z+9.123/x+y*z*9.123-x/y/z-9.123))"
-"((x-y-z/9.123/x+y/z*9.123/x+y*z/9.123-x+y+z/9.123/x+y/z*9.123*x+y+z*9.123*x+y+z/9.123+x*y*z-9.123))"
-"((x-y-z/9.123/x/y-z/9.123/x/y+z/9.123-x-y-z+9.123/x/y-z/9.123*x-y+z+9.123*x-y-z+9.123+x-y*z/9.123))"
-"((x-y/7.123*w+x*y-7.123*w+x*y+7.123*w*x/y-7.123+w+x*y-7.123*w/x*y+7.123+w/x/y-7.123+w-x*y/7.123-w))"
-"((x-y/7.123*w+x+y-7.123*w+x+y-7.123/w*x+y/7.123-w+x+y-7.123*w/x-y/7.123-w/x+y/7.123-w-x-y+7.123*w))"
-"((x-y/7.123*w/x-y*7.123-w/x+y*7.123-w-x+y-7.123*w/x-y*7.123-w*x+y-7.123/w*x+y-7.123*w+x/y+7.123+w))"
-"((x-y/7.123+w/x*y/7.123+w/x/y*7.123+w-x+y/7.123*w/x*y/7.123+w*x-y+7.123/w*x+y/7.123*w+x*y+7.123/w))"
-"((x-y/7.123-w*x-y+7.123/w*x-y+7.123*w+x/y-7.123-w*x-y+7.123/w-x+y*7.123*w-x/y-7.123-w/x+y/7.123*w))"
-"((x-y/7.123/w-x+y*7.123/w-x+y-7.123*w/x-y/7.123-w-x+y*7.123/w+x*y/7.123-w+x-y/7.123-w*x-y+7.123/w))"
-"((x-y/7.123/w/x*y+7.123*w/x/y-7.123*w-x*y-7.123+w/x*y+7.123*w*x/y-7.123+w*x*y-7.123+w+x/y/7.123+w))"
-"((x-y/z*9.123+x*y-z*9.123+x*y+z*9.123*x/y-z+9.123+x*y-z*9.123/x*y+z+9.123/x/y-z+9.123-x*y/z-9.123))"
-"((x-y/z*9.123+x+y-z*9.123+x+y-z/9.123*x+y/z-9.123+x+y-z*9.123/x-y/z-9.123/x+y/z-9.123-x-y+z*9.123))"
-"((x-y/z*9.123/x-y*z-9.123/x+y*z-9.123-x+y-z*9.123/x-y*z-9.123*x+y-z/9.123*x+y-z*9.123+x/y+z+9.123))"
-"((x-y/z+9.123/x*y/z+9.123/x/y*z+9.123-x+y/z*9.123/x*y/z+9.123*x-y+z/9.123*x+y/z*9.123+x*y+z/9.123))"
-"((x-y/z-9.123*x-y+z/9.123*x-y+z*9.123+x/y-z-9.123*x-y+z/9.123-x+y*z*9.123-x/y-z-9.123/x+y/z*9.123))"
-"((x-y/z/9.123-x+y*z/9.123-x+y-z*9.123/x-y/z-9.123-x+y*z/9.123+x*y/z-9.123+x-y/z-9.123*x-y+z/9.123))"
-"((x-y/z/9.123/x*y+z*9.123/x/y-z*9.123-x*y-z+9.123/x*y+z*9.123*x/y-z+9.123*x*y-z+9.123+x/y/z+9.123))"
-"((x/5.123*z+w-x+5.123/z*w-x+5.123/z/w/x*5.123-z*w-x+5.123/z*w+x*5.123+z/w+x*5.123-z*w*x+5.123+z-w))"
-"((x/5.123*z-w+x+5.123+z/w+x+5.123+z*w*x/5.123+z-w+x+5.123+z/w/x*5.123-z-w/x/5.123+z-w-x+5.123*z/w))"
-"((x/5.123*z-w/x-5.123*z*w/x-5.123*z/w-x/5.123+z*w/x-5.123*z*w*x/5.123-z*w*x/5.123+z*w+x-5.123/z+w))"
-"((x/5.123+z*w+x-5.123/z+w+x-5.123*z+w*x/5.123*z+w+x-5.123/z+w/x*5.123/z+w/x/5.123*z+w-x+5.123/z*w))"
-"((x/5.123+z+w/x*5.123*z-w/x/5.123/z-w-x-5.123-z*w/x*5.123*z-w*x-5.123*z/w*x-5.123-z*w+x/5.123-z*w))"
-"((x/5.123+z-w-x+5.123*z/w-x/5.123*z-w/x-5.123*z*w-x+5.123*z/w+x-5.123/z/w+x-5.123*z*w*x/5.123-z*w))"
-"((x/5.123+z/w-x-5.123-z+w-x+5.123/z-w/x-5.123*z*w-x-5.123-z+w+x-5.123*z/w+x-5.123*z*w*x+5.123*z*w))"
-"((x/5.123-z*w-x*5.123-z+w-x-5.123/z+w/x*5.123/z+w-x*5.123-z+w+x/5.123/z+w+x*5.123/z+w*x-5.123+z/w))"
-"((x/5.123-z*w/x-5.123*z+w/x-5.123+z+w-x*5.123*z+w/x-5.123*z+w*x/5.123*z+w*x*5.123*z+w+x+5.123/z/w))"
-"((x/5.123-z+w-x*5.123/z-w-x/5.123/z+w/x-5.123+z*w-x*5.123/z-w+x-5.123-z/w+x-5.123+z*w*x/5.123+z/w))"
-"((x/5.123-z-w/x+5.123/z*w/x-5.123*z/w-x-5.123/z*w/x+5.123/z*w*x+5.123*z-w*x-5.123/z*w+x*5.123-z*w))"
-"((x/5.123-z/w*x-5.123+z+w*x-5.123-z+w+x-5.123*z/w*x-5.123+z+w-x*5.123*z+w-x-5.123*z/w/x+5.123/z+w))"
-"((x/5.123/z+w/x-5.123+z*w/x-5.123+z/w-x*5.123-z/w/x-5.123+z*w*x/5.123+z/w*x*5.123-z/w+x+5.123/z-w))"
-"((x/5.123/z-w+x-5.123-z/w+x-5.123-z*w*x+5.123*z/w+x-5.123-z/w/x+5.123/z*w/x+5.123*z/w-x+5.123+z/w))"
-"((x/5.123/z-w-x-5.123-z*w-x-5.123-z/w/x/5.123-z/w-x-5.123-z*w+x/5.123-z*w+x/5.123-z/w*x-5.123+z+w))"
-"((x/y*7.123+w-x+y/7.123*w-x+y/7.123/w/x*y-7.123*w-x+y/7.123*w+x*y+7.123/w+x*y-7.123*w*x+y+7.123-w))"
-"((x/y*7.123-w+x+y+7.123/w+x+y+7.123*w*x/y+7.123-w+x+y+7.123/w/x*y-7.123-w/x/y+7.123-w-x+y*7.123/w))"
-"((x/y*7.123-w/x-y*7.123*w/x-y*7.123/w-x/y+7.123*w/x-y*7.123*w*x/y-7.123*w*x/y+7.123*w+x-y/7.123+w))"
-"((x/y*z+9.123-x+y/z*9.123-x+y/z/9.123/x*y-z*9.123-x+y/z*9.123+x*y+z/9.123+x*y-z*9.123*x+y+z-9.123))"
-"((x/y*z-9.123+x+y+z/9.123+x+y+z*9.123*x/y+z-9.123+x+y+z/9.123/x*y-z-9.123/x/y+z-9.123-x+y*z/9.123))"
-"((x/y*z-9.123/x-y*z*9.123/x-y*z/9.123-x/y+z*9.123/x-y*z*9.123*x/y-z*9.123*x/y+z*9.123+x-y/z+9.123))"
-"((x/y+7.123*w+x-y/7.123+w+x-y*7.123+w*x/y*7.123+w+x-y/7.123+w/x*y/7.123+w/x/y*7.123+w-x+y/7.123*w))"
-"((x/y+7.123+w/x*y*7.123-w/x/y/7.123-w-x-y-7.123*w/x*y*7.123-w*x-y*7.123/w*x-y-7.123*w+x/y-7.123*w))"
-"((x/y+7.123-w-x+y*7.123/w-x/y*7.123-w/x-y*7.123*w-x+y*7.123/w+x-y/7.123/w+x-y*7.123*w*x/y-7.123*w))"
-"((x/y+7.123/w-x-y-7.123+w-x+y/7.123-w/x-y*7.123*w-x-y-7.123+w+x-y*7.123/w+x-y*7.123*w*x+y*7.123*w))"
-"((x/y+z*9.123+x-y/z+9.123+x-y*z+9.123*x/y*z+9.123+x-y/z+9.123/x*y/z+9.123/x/y*z+9.123-x+y/z*9.123))"
-"((x/y+z+9.123/x*y*z-9.123/x/y/z-9.123-x-y-z*9.123/x*y*z-9.123*x-y*z/9.123*x-y-z*9.123+x/y-z*9.123))"
-"((x/y+z-9.123-x+y*z/9.123-x/y*z-9.123/x-y*z*9.123-x+y*z/9.123+x-y/z/9.123+x-y*z*9.123*x/y-z*9.123))"
-"((x/y+z/9.123-x-y-z+9.123-x+y/z-9.123/x-y*z*9.123-x-y-z+9.123+x-y*z/9.123+x-y*z*9.123*x+y*z*9.123))"
-"((x/y-7.123*w-x*y-7.123+w-x-y/7.123+w/x*y/7.123+w-x*y-7.123+w+x/y/7.123+w+x*y/7.123+w*x-y+7.123/w))"
-"((x/y-7.123*w/x-y*7.123+w/x-y+7.123+w-x*y*7.123+w/x-y*7.123+w*x/y*7.123+w*x*y*7.123+w+x+y/7.123/w))"
-"((x/y-7.123+w-x*y/7.123-w-x/y/7.123+w/x-y+7.123*w-x*y/7.123-w+x-y-7.123/w+x-y+7.123*w*x/y+7.123/w))"
-"((x/y-7.123-w/x+y/7.123*w/x-y*7.123/w-x-y/7.123*w/x+y/7.123*w*x+y*7.123-w*x-y/7.123*w+x*y-7.123*w))"
-"((x/y-7.123/w*x-y+7.123+w*x-y-7.123+w+x-y*7.123/w*x-y+7.123+w-x*y*7.123+w-x-y*7.123/w/x+y/7.123+w))"
-"((x/y-z*9.123-x*y-z+9.123-x-y/z+9.123/x*y/z+9.123-x*y-z+9.123+x/y/z+9.123+x*y/z+9.123*x-y+z/9.123))"
-"((x/y-z*9.123/x-y*z+9.123/x-y+z+9.123-x*y*z+9.123/x-y*z+9.123*x/y*z+9.123*x*y*z+9.123+x+y/z/9.123))"
-"((x/y-z+9.123-x*y/z-9.123-x/y/z+9.123/x-y+z*9.123-x*y/z-9.123+x-y-z/9.123+x-y+z*9.123*x/y+z/9.123))"
-"((x/y-z-9.123/x+y/z*9.123/x-y*z/9.123-x-y/z*9.123/x+y/z*9.123*x+y*z-9.123*x-y/z*9.123+x*y-z*9.123))"
-"((x/y-z/9.123*x-y+z+9.123*x-y-z+9.123+x-y*z/9.123*x-y+z+9.123-x*y*z+9.123-x-y*z/9.123/x+y/z+9.123))"
-"((x/y/7.123+w/x-y+7.123*w/x-y+7.123/w-x*y-7.123/w/x-y+7.123*w*x/y+7.123/w*x*y-7.123/w+x+y/7.123-w))"
-"((x/y/7.123-w+x-y-7.123/w+x-y-7.123*w*x+y*7.123/w+x-y-7.123/w/x+y/7.123*w/x+y*7.123/w-x+y+7.123/w))"
-"((x/y/7.123-w-x-y-7.123*w-x-y-7.123/w/x/y-7.123/w-x-y-7.123*w+x/y-7.123*w+x/y-7.123/w*x-y+7.123+w))"
-"((x/y/z+9.123/x-y+z*9.123/x-y+z/9.123-x*y-z/9.123/x-y+z*9.123*x/y+z/9.123*x*y-z/9.123+x+y/z-9.123))"
-"((x/y/z-9.123+x-y-z/9.123+x-y-z*9.123*x+y*z/9.123+x-y-z/9.123/x+y/z*9.123/x+y*z/9.123-x+y+z/9.123))"
-"((x/y/z-9.123-x-y-z*9.123-x-y-z/9.123/x/y-z/9.123-x-y-z*9.123+x/y-z*9.123+x/y-z/9.123*x-y+z+9.123))"
-"(cos((sin((((a-tan(tan(sin(sin(((((b+(((tan(a)*1.07)+a)+a))+3.45)-e)+0.89))))))/2.85)+a))*2.61))+a)"
-"sin(((b+(((tan(((((((sin(((((tan(((b-e)-1.21))+b)*a)/e)+1.65))+a)+e)*a)/e)*1.16)+a))+e)*b)+e))+pi))"
-"tan((((cos((cos((tan(((sin((a+((a/sin(((sin(tan(a))/e)/pi)))-1.43)))-3.32)+b))+e))-2.62))/a)+a)-a))"
-"tan((1.38*((e-(1.51/((((cos(cos(((tan((((sin((1.62+a))-b)+a)-2.24))/b)+pi)))-pi)-b)/1.91)*a)))+b)))"
-"((((((((((((b+((b+((((((e+e)+b)+2.84)+0.70)+e)+pi))/a))*0.75)+b)+b)/b)+b)/3.41)/b)*2.56)-2.04)/a)/a)"
-"(((sin(((2.59/(a*(((((cos(tan((b*((((a/((2.22*e)+pi))*pi)-pi)-a))))/e)+b)+b)/2.00)-b)))/b))+e)+a)/e)"
-"((b-sin(tan((sin((((sin(cos((e/sin((((sin((((1.39+b)/b)+0.70))/a)-0.41)+b)))))*a)/2.93)/b))+a))))/e)"
-"(cos(((a+(tan((a+(cos((2.41+(tan(((tan(tan((sin((cos(pi)-b))+0.69)))+b)/0.45))-e)))+b)))*b))+b))+pi)"
-"tan((((((cos(tan(((2.87+((pi+(((cos((pi-(tan(a)+a)))-2.70)+b)-e))*b))+3.16)))-b)-a)+0.55)*1.69)+pi))"
-"tan((pi-sin((((sin(((2.56*(b/(((sin((sin(((b+((b/0.83)/b))*a))+1.82))+a)+1.53)*a)))*pi))-b)+b)/a))))"
-"((((((((123.456/654.321)*(1.1/2.2))*(2.2/3.3))*(3.3/4.4))*(4.4/5.5))*(5.5/6.6))*(6.6/7.7))*(7.7/8.8))"
-"((((((((123.456/654.321)+(1.1/2.2))+(2.2/3.3))+(3.3/4.4))+(4.4/5.5))+(5.5/6.6))+(6.6/7.7))+(7.7/8.8))"
-"((sin((((cos(((sin(((b-(tan(((cos(sin((3.88+(((a+a)/b)+1.88))))+b)*a))/b))+b))*a)*b))+b)+a)+a))-b)+a)"
-"(b+1.1)*(b+2.2)*(b+3.3)*(b+4.4)*(b+5.5)*(b+6.6)*(b+7.7)*(b+8.8)*(b+9.9)*(b+10.10)*(b+11.11)*(b+12.12)"
-"((((((((((e-(((3.32/((((((a*b)+pi)-a)/3.19)/a)-a))-1.54)-b))+0.34)/0.74)-b)*a)*b)*e)*3.64)/1.81)/3.78)"
-"(((((tan(((b+(pi*((sin(sin((((sin((((pi*a)*b)*e))/e)/1.06)/pi)))-b)*b)))-pi))+pi)+3.20)-0.48)+b)-0.68)"
-"(pi*((cos((tan(((3.49-(cos((cos((1.86-((a+(3.83*(2.93/(pi-b))))-3.19)))*b))+pi))-2.85))+pi))/2.86)*b))"
-"4.4*a^12+3.3*a^11+2.2*a^10+1.1*a^9+9.9*a^8+8.8*a^7+7.7*a^6+6.6*a^5+5.5*a^4+4.4*a^3+3.3*a^2+2.2*a^1+1.1"
-"sin(sin(tan(((((tan((e/(cos((cos((tan(cos(cos((cos((b/tan(a)))*3.88))))*0.38))+a))+b)))*a)+a)+b)*b))))"
-"((((((((((((((((a-((((a*1.18)+2.29)-2.64)+b))-1.19)+pi)+b)+b)+b)-0.48)-e)+a)+a)+3.61)+a)+b)+1.22)+e)-a)"
-"((((b/(((sin((cos((((((tan(sin((a*sin(((a/b)/e)))))/2.27)-pi)-pi)+pi)/3.19))/a))/b)+pi)*b))+0.81)/b)+e)"
-"((2.2/3.3)*((3.3/4.4)*((4.4/5.5)*((5.5/6.6)*(((((a*b)+(9.9/10.10))+(8.8/9.9))+(7.7/8.8))+(6.6/8.8))))))"
-"((2.2/3.3)+((3.3/4.4)+((4.4/5.5)+((5.5/6.6)+(((((a*b)*(9.9/10.10))*(8.8/9.9))*(7.7/8.8))*(6.6/8.8))))))"
-"(sin((((((tan(((((tan((b+(sin(((((cos(cos(e))-a)+b)-pi)+a))+b)))/a)+a)/b)/1.94))+a)+a)-e)*pi)*3.69))+a)"
-"(((((((b-((b-((((((((b+((3.28+((0.73*e)+a))*a))*pi)+1.18)*b)/a)+1.01)-b)*b))*b))+b)-a)/a)*2.41)+3.33)+a)"
-"((((((1.93+((((((((((e*(((3.50+(((a-a)+b)-0.83))-b)+b))+a)-0.74)+pi)+e)+b)+a)-b)/pi)/b))+b)-pi)+b)*a)*b)"
-"(((2.30*((1.22/((0.12-((1.04/((((((2.62*((((a+((e+pi)-pi))/a)+pi)+a))-b)-pi)+e)/b)+b))*b))+b))*a))/a)*b)"
-"((0.51+((((((((((b+(((((((((a*b)*e)+e)+3.99)/a)-b)+a)-0.48)+b))/a)*3.21)*3.00)-e)+b)+2.53)/a)+a)*b))/pi)"
-"((((((((((((((2.39+((((((b*((b+e)+a))/pi)-3.10)-pi)+a)/b))+a)*a)-1.53)-b)+e)+a)*a)-pi)+pi)*a)*3.60)/b)+a)"
-"(((((((a*(((((e-((sin((cos((a-(tan(((b+1.18)-b))-e)))/e))*b)+a))/a)/a)+pi)+2.14))+2.04)+pi)+pi)+pi)*e)+a)"
-"(((e+(((a*(((((((((((((pi-2.35)+2.74)/1.05)-3.03)/pi)+2.58)/2.51)+pi)/a)*a)-3.76)-1.27)+pi))+a)-e))+a)*a)"
-"(pi+((pi*(((((((((((pi+((a-(((0.30+a)/1.89)*0.35))+0.12))-a)*3.06)*b)+2.71)+b)/0.40)/2.64)+b)/pi)+a))/b))"
-"cos(sin((a+((((((((((((sin((((tan((cos(((b/b)+a))*a))/b)+a)/e))/a)/b)/pi)+b)-e)/b)-b)+a)+b)-pi)+a)-pi))))"
-"(((((2.86+(tan((((3.68+((((b+((a*(pi+tan(((b*3.08)+a))))/b))+a)+pi)/0.08))-a)+b))-b))-a)*1.83)+2.17)*0.30)"
-"((((((((b+(((((((a/((pi+((((a*(2.74/a))*1.76)*b)-b))*pi))-pi)-pi)-0.14)-b)*pi)+a))+a)-a)*b)/a)/2.77)+b)+pi)"
-"((((x+y)-(x+y)*(x+z)-(x-w))/((x-y)-(x+y)-(x+z)-(x-w))+((x-y)*(x+y)/(x+z)*(x+w))+((x-y)-(x-y)-(x-z)-(x-w))))"
-"((((x+y)-(x+y)*(x+z)-(x-w))/((x-y)-(x+y)-(x+z)-(x-w))+((y-x)+(y+z)-(y+w)+(y-z))*((x-y)-(x-y)-(x-z)-(x+w))))"
-"((((x+y)/(x+y)+(x+z)/(x-w))-((x-y)-(x+y)-(x+z)-(x-w))+((x-y)+(x+y)-(x+z)+(x+w))*((x-y)-(x-y)-(x-z)-(x-w))))"
-"((((x+y)/(x+y)+(x+z)/(x-w))-((x-y)-(x+y)-(x+z)-(x-w))+((y-x)*(y+z)/(y+w)*(y-x))+((x-y)-(x-y)-(x-z)-(x+w))))"
-"((((x-y)*(x+y)/(x+z)*(x+w))+((x-y)-(x-y)-(x-z)-(x-w))+((x+y)/(x+y)+(x+z)/(x-w))-((x-y)-(x+y)-(x+z)-(x-w))))"
-"((((x-y)*(x+y)/(x+z)*(x+w))+((x-y)-(x-y)-(x-z)-(x-w))+((x-y)/(x+y)+(x+z)/(x-w))-((x-y)-(x-y)-(x-z)-(x-w))))"
-"((((x-y)*(x+y)/(x+z)*(x+w))+((x-y)-(x-y)-(x-z)-(x-w))+((y+x)-(y+z)*(y+w)-(y+w))/((x-y)-(x+y)-(x+z)+(x-w))))"
-"((((x-y)+(x+y)-(x+z)+(x+w))*((x-y)-(x-y)-(x-z)-(x-w))+((x+y)-(x+y)*(x+z)-(x-w))/((x-y)-(x+y)-(x+z)-(x-w))))"
-"((((x-y)+(x+y)-(x+z)+(x+w))*((x-y)-(x-y)-(x-z)-(x-w))+((y+x)/(y+z)+(y+w)/(y+y))-((x-y)-(x+y)-(x+z)+(x-w))))"
-"((((x-y)/(x+y)+(x+z)/(x-w))-((x-y)-(x-y)-(x-z)-(x-w))+((y-x)*(y+z)/(y+w)*(y-x))+((x-y)-(x-y)-(x-z)-(x+w))))"
-"((((y+x)-(y+z)*(y+w)-(y-w))/((x-y)-(x+y)-(x+z)+(x-w))+((x-y)+(x+y)-(x+z)+(x+w))*((x-y)-(x-y)-(x-z)-(x-w))))"
-"((((y+x)-(y+z)*(y+w)-(y-w))/((x-y)-(x+y)-(x+z)+(x-w))+((y-x)*(y+z)/(y+w)*(y+x))+((x-y)-(x-y)-(x-z)-(x+w))))"
-"((((y+x)/(y+z)+(y+w)/(y+y))-((x-y)-(x+y)-(x+z)+(x-w))+((x-y)*(x+y)/(x+z)*(x+w))+((x-y)-(x-y)-(x-z)-(x-w))))"
-"((((y+x)/(y+z)+(y+w)/(y+y))-((x-y)-(x+y)-(x+z)+(x-w))+((y-x)+(y+z)-(y+w)+(y-z))*((x-y)-(x-y)-(x-z)-(x+w))))"
-"((((y-x)*(y+z)/(y+w)*(y+x))+((x-y)-(x-y)-(x-z)-(x+w))+((x+y)-(x+y)*(x+z)-(x-w))/((x-y)-(x+y)-(x+z)-(x-w))))"
-"((((y-x)*(y+z)/(y+w)*(y+x))+((x-y)-(x-y)-(x-z)-(x+w))+((y+x)/(y+z)+(y+w)/(y+y))-((x-y)-(x+y)-(x+z)+(x-w))))"
-"((((y-x)*(y+z)/(y+w)*(y+x))+((x-y)-(x-y)-(x-z)-(x+w))+((y-x)/(y+z)+(y+w)/(y+y))-((x-y)-(x-y)-(x-z)+(x-w))))"
-"((((y-x)+(y+z)-(y+w)+(y+z))*((x-y)-(x-y)-(x-z)-(x+w))+((y+x)-(y+z)*(y+w)-(y-w))/((x-y)-(x+y)-(x+z)+(x-w))))"
-"((((y-x)+(y+z)-(y+w)+(y-z))*((x-y)-(x-y)-(x-z)-(x+w))+((x+y)/(x+y)+(x+z)/(x-w))-((x-y)-(x+y)-(x+z)-(x-w))))"
-"((((y-x)/(y+z)+(y+w)/(y+y))-((x-y)-(x-y)-(x-z)+(x-w))+((x-y)*(x+y)/(x+z)*(x+w))+((x-y)-(x-y)-(x-z)-(x-w))))"
-"((((((((((((((((((b+((b-3.60)+1.66))/a)+a)+a)+pi)*pi)*b)*3.58)*b)+2.20)-pi)*2.79)*e)+1.40)+0.74)+a)-1.75)*a)"
-"((((a+(((((pi+(((((((((((((((a+e)+e)+a)/a)+a)-a)*a)+pi)+e)+b)*a)+a)+2.64)+e)+0.87))+b)/b)-a)-2.91))+e)-b)*a)"
-"(((0.86+(0.66/(b-((((((b/(a-(((((3.49*(((((pi-b)/3.08)*1.74)-e)-2.55))*e)-b)+a)-b)))-a)+a)-e)*b)*b))))*e)+a)"
-"(((1.37/(((((2.46-(((((((((((((b/e)+a)*2.17)*1.58)-pi)+b)*pi)/a)*1.31)/a)/b)*e)/e))-e)/e)+a)-a))*1.91)/1.72)"
-"((b+((((((((((((((((e/(((b+((((e-pi)/a)+a)+a))*a)-a))-pi)/e)+3.11)/b)+b)*e)+b)/e)*e)+a)*pi)-a)*pi)-a)/e))-e)"
-"(e/(cos(tan(((tan(((tan(((((cos(((((((((e-a)+pi)*b)-pi)*2.29)-3.77)+e)+b))-b)-a)*pi)+b))-pi)+a))-b)/b)))/b))"
-"((((((((((a+((((((((3.91-(b+((a*a)+e)))+3.60)/0.51)/b)+e)+a)+pi)-0.99))/a)+a)-3.33)+pi)*a)-b)+2.60)-2.73)*pi)"
-"((((a*((((0.79-((((((1.06+(e*((((1.87*(((a-a)*a)+pi))+a)*2.77)+b)))/e)+2.15)*0.69)+e)*a))-b)/a)/a))*pi)-e)/a)"
-"(((2.81-(((((e*(((b/((a+(((((((((b/e)-3.84)*e)+e)+pi)/a)-b)*a)*a))*2.36))+1.29)+b))*3.47)/a)-3.40)-pi))+e)-e)"
-"(((cos((sin(sin((a-(e+tan((((((((((((a/(pi/a))+a)/0.19)-a)+b)*pi)-a)+pi)*2.49)+a)/pi))))))+0.10))+3.27)+b)+b)"
-"(((sin(((sin(((((((((tan((cos((((cos(e)-e)*0.16)*b))+0.31))*pi)/0.73)*e)+pi)/e)/a)/a)+1.76))+e)+e))-b)+b)/pi)"
-"(((((((sin((((a+(((((a+(((cos((a+1.63))-2.15)*2.52)*1.95))*a)+a)-b)/0.45))*b)*3.41))/pi)+b)*e)+a)+pi)/3.54)+e)"
-"((((sin((cos(cos(((2.12/(((((((((((sin((pi+a))*a)-a)/b)-b)/a)+a)*e)+a)+b)/3.84)+b))*3.63)))*e))+2.48)-b)*a)+a)"
-"(1.1+(b+1)*(b+2))*(2.2+(b+3)*(b+4))*(3.3+(b+5)*(b+6))*(4.4+(b+7)*(b+8))*(5.5+(b+9)*(b+10))*(6.6+(b+11)*(b+12))"
-"cos(sin(((sin((((2.61*sin(((cos((sin((0.51+((((tan(((1.45+b)*b))/a)+a)-b)+pi)))/e))/3.24)-b)))-a)+pi))+a)-a)))"
-"(((((((((((((((((((((((b/b)/b)*e)+b)-pi)-2.26)-a)+pi)*a)/0.92)/a)+pi)/b)+a)-pi)+a)+2.56)-pi)*b)-a)+2.11)/pi)+e)"
-"(((sin((((((((a+((0.97/(((((cos(((b*((a/3.77)/1.77))*2.44))*b)-2.05)-a)+pi)+a))+b))+a)+a)*a)*a)+b)+e))+e)/a)/e)"
-"(tan(((((((((1.71/(cos((pi/(cos(((((((0.79+2.44)+b)+2.13)/3.71)-b)+a))-a)))+a))/3.62)+b)+0.38)/pi)+b)/a)+e))+b)"
-"(2.41-(((((((a*((((((1.25-((((((((((a+a)*a)+e)+b)+a)*2.06)-a)*b)/b)*a))+a)+1.26)+a)*b)-e))/b)-b)+a)-e)+a)/3.71))"
-"(cos((((((cos(((e+(((b+tan((tan(((((sin(((pi-e)-3.12))-1.07)/a)*b)+e))+b)))/e)-a))+a))/a)/3.47)-1.66)+b)+pi))*b)"
-"(((((((a-(((e+(((((((((e/(b-a))/3.39)+e)+pi)+0.84)+a)*3.08)-pi)+2.53))*1.11)*2.11))-b)*0.47)+a)+1.74)*0.76)*2.82)"
-"(((cos(((((a+((pi*(e+tan((cos((((((b+(tan(((1.60*a)-0.34))-0.76))-a)+pi)+3.27)+a))/pi))))-a))+b)*b)-e))+e)/e)+pi)"
-"(cos(((sin(tan(((((((tan(cos(tan(cos(((tan(cos((sin(e)*pi)))+1.02)-b)))))*pi)-b)/b)-a)+b)-b)))+0.31)+0.11))-3.13)"
-"cos((((((tan((b+sin(((cos((sin((2.63+((b+(sin((b+(2.88*0.47)))/3.31))*3.77)))/a))*b)-pi))))-e)-a)-3.39)-2.28)+e))"
-"((((((((((((pi+((((0.14*(((a+((((b*pi)+a)-2.73)*b))/3.27)/b))+b)-a)/b))+pi)*pi)+e)-a)/0.06)*pi)-a)*a)+2.13)+b)*pi)"
-"((((((((((((pi-(((((b+(a+((((0.48-0.29)+pi)+a)+e)))-pi)/b)*pi)*pi))-0.77)+0.95)*b)-a)-a)*pi)/b)+pi)-0.09)+2.33)+a)"
-"((((((((((tan(((((sin((pi+sin(sin(((1.34-a)/b)))))*3.87)+1.81)/2.91)+a))-b)+3.62)-e)+b)+3.03)/a)+0.68)+a)+1.51)*e)"
-"((0.42+(((((((((e+(((a*((((((((a+e)/2.67)+pi)+a)/pi)-0.87)*b)+pi))*2.94)-3.07))/b)-pi)+1.54)-b)*a)/2.31)-a)-b))/a)"
-"(b-((2.51*((((a-((((((((b-((((((((b*b)-a)/a)*a)+0.26)-pi)-pi)+1.19))+pi)-2.53)+b)/b)+b)+a)*a))*0.50)/0.47)*b))-e))"
-"(tan((a/(a/sin(((sin((((((((sin(((((((2.41+e)*2.58)-0.25)+a)-a)/b))-1.48)+b)+b)+a)+1.52)/1.22)+a))+a)-b)))))/3.06)"
-"(((((((((((((((((((((((((b/e)*a)/1.88)/a)*a)-b)*3.26)+a)+b)-b)+1.92)/pi)+b)+e)/a)*e)*a)/e)-1.89)*b)/a)+b)/a)/pi)/b)"
-"((((e-(2.57*((((((((((((((((((0.19*b)/pi)-b)-b)+a)+1.35)+a)/1.60)+b)+pi)/a)+pi)*2.97)/a)-a)*2.81)+a)/b)))/pi)-a)/e)"
-"(((b+(a-((((tan((b*((((((a+(cos((cos(tan(((a+a)*3.33)))-b))/2.52))*e)/b)+3.07)+0.86)+b)))*3.95)/0.39)*b)+a)))+a)*b)"
-"((2.2/3.3)*((3.3/4.4)*((4.4/5.5)*((5.5/6.6)*(((((123.456*654.321)+(9.9/10.10))+(8.8/9.9))+(7.7/8.8))+(6.6/8.8))))))"
-"((2.2/3.3)+((3.3/4.4)+((4.4/5.5)+((5.5/6.6)+(((((123.456*654.321)*(9.9/10.10))*(8.8/9.9))*(7.7/8.8))*(6.6/8.8))))))"
-"cos(cos(cos(cos((tan((((((tan(tan(tan(cos((((tan(tan(((sin((a+e))+b)+a)))-a)*a)/pi)))))*b)+pi)*pi)+a)*0.78))+b)))))"
-"((((((((((((((((a-(a+(((((e*(0.81*(pi/a)))+1.29)*3.02)+b)+b)))-a)-a)/1.11)+2.33)/3.58)*b)+b)*a)+a)+e)-b)+b)+e)-b)/a)"
-"((((a/(((((tan((b*(a/(a/cos(((pi*(cos((((tan((pi*(sin(b)+e)))+1.22)*b)-b))*a))*a))))))-pi)-a)+e)+b)-a))-3.84)+a)-pi)"
-"((0.74+cos((tan(((((((0.68+(((((((((cos((((a+a)+b)-b))-b)-e)+2.16)+b)-a)-b)-a)+b)+b))*b)*pi)+a)-2.73)*b))/3.27)))/b)"
-"((((((((((((((0.32+(b*((pi-(pi-((((((b-a)-3.84)+a)-pi)*b)-1.61)))+pi)))/b)+3.76)-b)+a)+a)*a)+b)/b)-b)+a)+a)-pi)+0.73)"
-"(((((1.0-y)/(x+y)+(x+z)/(x-w))-((x-y)-(x-y)-(1.0-z)-(x-w))+((y-x)*(y+z)/(y+w)*(1.0-x))+((x-y)-(x-y)-(x-z)-(1.0+w)))))"
-"(((((9.1-y)*(x+y)/(x+z)*(x+w))+((x-y)-(x-y)-(9.1-z)-(x-w))+((y+x)-(y+z)*(y+w)-(9.1+w))/((x-y)-(x+y)-(x+z)+(9.1-w)))))"
-"(((((y+x)-(y+4.6)*(y+w)-(y-w))/((x-4.6)-(x+y)-(x+z)+(x-w))+((y-x)*(y+4.6)/(y+w)*(4.6+x))+((x-y)-(x-y)-(x-z)-(x+w)))))"
-"(((((y+x)-(y+8.2)*(y+w)-(y-w))/((x-8.2)-(x+y)-(x+z)+(x-w))+((x-y)+(x+8.2)-(x+z)+(8.2+w))*((x-y)-(x-y)-(x-z)-(x-w)))))"
-"(((((y+x)/(y+2.8)+(y+w)/(y+y))-((x-2.8)-(x+y)-(x+z)+(x-w))+((y-x)+(y+2.8)-(y+w)+(2.8-z))*((x-y)-(x-y)-(x-z)-(x+w)))))"
-"(((((y+x)/(y+6.4)+(y+w)/(y+y))-((x-6.4)-(x+y)-(x+z)+(x-w))+((x-y)*(x+6.4)/(x+z)*(6.4+w))+((x-y)-(x-y)-(x-z)-(x-w)))))"
-"(((((y-x)*(y+1.9)/(y+w)*(y+x))+((x-1.9)-(x-y)-(x-z)-(x+w))+((y+x)/(y+1.9)+(y+w)/(1.9+y))-((x-y)-(x+y)-(x+z)+(x-w)))))"
-"(((((y-x)*(y+5.5)/(y+w)*(y+x))+((x-5.5)-(x-y)-(x-z)-(x+w))+((y-x)/(y+5.5)+(y+w)/(5.5+y))-((x-y)-(x-y)-(x-z)+(x-w)))))"
-"(((((y-x)*(y+9.1)/(y+w)*(y+x))+((x-9.1)-(x-y)-(x-z)-(x+w))+((x+y)-(x+9.1)*(x+z)-(9.1-w))/((x-y)-(x+y)-(x+z)-(x-w)))))"
-"(((((y-x)+(y+3.7)-(y+w)+(y+z))*((x-3.7)-(x-y)-(x-z)-(x+w))+((y+x)-(y+3.7)*(y+w)-(3.7-w))/((x-y)-(x+y)-(x+z)+(x-w)))))"
-"(((((y-x)+(y+7.3)-(y+w)+(y-z))*((x-7.3)-(x-y)-(x-z)-(x+w))+((x+y)/(x+7.3)+(x+z)/(7.3-w))-((x-y)-(x+y)-(x+z)-(x-w)))))"
-"(((((y-x)/(y+1.0)+(y+w)/(y+y))-((x-1.0)-(x-y)-(x-z)+(x-w))+((x-y)*(x+1.0)/(x+z)*(1.0+w))+((x-y)-(x-y)-(x-z)-(x-w)))))"
-"((a/((e*(((((((((((b+((((((((((a+b)/b)/pi)+b)/pi)+b)+a)+pi)+0.23)/e))*b)+3.10)+1.04)+a)-pi)/b)+a)+e)/2.22)/a))/a))/b)"
-"(tan(cos(((cos((((((cos((sin(((((((sin((((b*b)+a)-0.94))+2.12)-b)*b)+a)+e)+2.82))+pi))+a)-a)+e)/a)*e))/e)-2.96)))-pi)"
-"tan(tan((3.81+(((2.10+(e+((((pi+cos((((b+(tan((0.12+sin((cos(3.50)+a))))-pi))*b)+1.38)))*e)+0.22)/b)))+1.08)+3.64))))"
-"((((((((((((((((((((((a*(pi-3.90))-3.78)+b)+b)/pi)/3.62)*1.05)*2.74)*b)*a)+2.82)+e)/b)*a)+a)-b)+1.02)+e)+pi)-a)+b)+pi)"
-"(((((((((((((e+((a+(((((((((a*1.26)+a)/0.76)+e)-e)+a)+3.67)+a)*0.32))+a))-a)/pi)+b)-pi)-0.48)/a)+e)/b)+a)-b)-3.25)+pi)"
-"((((((sin((a-(a+(sin(cos(cos((e*((((((sin((sin(cos((1.43-a)))-0.78))+a)/b)*a)-pi)-e)*e)))))*e))))/2.42)*a)+b)-b)+b)/b)"
-"(((((a+(((((((e+(((((((((((((1.13+b)*0.53)+e)-a)/b)+b)-a)-e)-0.68)-b)/b)/3.07)+e))-a)+b)*pi)/pi)/a)*a))*b)-a)+e)+3.82)"
-"((e+((tan((cos(((((sin(((sin((((tan((((tan((a+e))*2.86)+pi)*b))*b)*2.17)/e))-b)+a))-b)*a)+b)-2.15))-pi))+pi)*2.19))*b)"
-"((sin(tan((tan((cos(cos(sin((cos((b-(e*tan(sin((a/((b/cos(((2.76*((sin(e)/a)+b))*b)))*a)))))))*a))))/a))*0.92)))-e)+e)"
-"((((((((((((((((((((((((pi-b)/0.07)/0.29)-pi)+a)*a)+a)-a)-2.46)-e)*a)+a)+a)/1.80)*b)+a)/0.65)+pi)/0.99)+a)+pi)+a)+b)*b)"
-"(((((cos((cos(((sin(((((cos((((b+sin(tan(((pi+b)-1.93))))+pi)/a))+b)+2.79)/3.93)/1.91))+a)+b))-3.26))+a)+1.08)-b)+b)/a)"
-"((((((((((b+(((b/(b/(((((((((a-b)+0.53)*1.03)/3.46)+e)+a)+2.48)-3.09)+pi)))+2.09)-a))/pi)*b)/pi)*a)-a)/1.49)+1.64)/b)-b)"
-"((((a*(sin((0.79-((((((1.06+(e*((((1.87*(sin(((3.27*pi)-b))/a))-1.91)/a)/b)))/a)*1.70)+b)-0.77)-0.54)))+pi))*e)+e)*2.07)"
-"(1.16-((((((((((tan(((((cos(tan(tan((((((3.03*e)+e)/2.59)/0.76)+3.85))))+b)-b)/a)+e))+e)*pi)+2.29)/b)/a)+a)*a)+e)-a)+e))"
-"(sin((((a*tan((((b/((sin(((cos(tan((pi+sin(((((3.94/(((pi+2.51)/pi)+b))+1.74)+b)-b)))))/e)+pi))+b)+b))/b)+e)))*b)+b))+a)"
-"cos((cos(((((cos(((cos((tan(((((((cos(((sin(pi)-3.90)-3.78))+b)+b)/pi)/3.62)*1.05)*2.74))*b))*a)+2.82))+e)/b)*a)+a))-b))"
-"(((((((((((((e+(((pi+(2.85+((((((((2.52+pi)*pi)*2.79)*e)+pi)/b)*a)-2.97)))-b)*b))+b)*a)+b)/a)/0.82)+e)-e)+b)*a)-pi)+b)+e)"
-"(((((((((1.27*((((((((((((a+(((a*2.13)*pi)-a))*pi)/b)/b)*1.70)+a)+0.00)+3.33)/b)-b)*2.44)*pi))-b)+3.87)/a)+b)*a)/e)+b)*e)"
-"(((1.1*x^2+2.2)*(1.1/y^3-2.2))-((1.1*x^2+2.2)-(1.1/y^3-2.2))-((1.1*x^2+2.2)+(1.1/y^3-2.2))*((1.1*x^2+2.2)-(1.1/y^3-2.2)))"
-"(((1.1*x^2+2.2)+(1.1/y^3-2.2))*((1.1*x^2+2.2)*(1.1/y^3-2.2))+((1.1*x^2+2.2)-(1.1/y^3-2.2))+((1.1*x^2+2.2)+(1.1/y^3-2.2)))"
-"(((1.1*x^2+2.2)-(1.1/y^3-2.2))+((1.1*x^2+2.2)*(1.1/y^3-2.2))*((1.1*x^2+2.2)*(1.1/y^3-2.2))-((1.1*x^2+2.2)+(1.1/y^3-2.2)))"
-"(((sin(((sin((a/((cos(tan((((tan((tan((((sin((tan(tan(pi))/pi))/b)*b)-pi))+b))+pi)-3.77)+b)))*e)-pi)))-a)+a))+b)+b)+0.05)"
-"(sin((sin(cos((tan((((cos(sin(cos((((((tan(((cos((sin(tan(b))+a))+a)*2.08))+a)+a)+e)/b)/e))))/pi)+pi)+pi))/e)))/e))/2.67)"
-"(((0.27/(((((((((((((((b*(((((((e+3.03)/pi)+b)+b)+a)+1.12)*a))+a)+a)*e)+b)-e)+e)+e)/a)*pi)-1.60)+e)+0.13)*pi)*e))/2.30)*b)"
-"((b+((((((a*((((a/((((((pi+((((((((2.79+a)-e)+a)+pi)/a)+b)+b)*pi))*b)+pi)-b)*0.99)+a))/a)+a)+3.72))-a)+b)+pi)*a)-1.77))-a)"
-"(a/((((sin((sin(cos((0.68-(((((((a/((a+(cos(cos((((((a/a)+e)+b)*e)-b)))-a))+a))+a)/pi)-a)*b)+3.04)-a))))/b))+b)+pi)*e)+a))"
-"(((e-((((((((((e*((((((((((0.23+a)+3.81)+pi)+pi)*a)-b)*1.79)*1.50)/1.59)*a))+2.39)-pi)+e)/b)+b)/1.94)+a)*2.44)*e))/1.85)*b)"
-"(0.68-((((((pi/cos(tan((tan(tan(tan(cos(cos((((sin(((pi*((e*e)+a))*e))/3.66)+a)*a))))))*0.03))))/pi)+1.29)*2.87)+1.88)+pi))"
-"((((b+((((((((((((((((((((((((b+e)-e)+b)+b)-pi)+e)-e)*a)*e)*pi)+pi)/1.85)-e)/0.35)-b)/a)+a)-b)+b)*e)/b)/pi)/e)*a))+b)*b)+pi)"
-"(((1.20-(((((tan((((a/sin((3.44*(tan(((((tan((b/(cos(pi)+e)))+b)+a)/2.57)+0.07))+3.43))))-1.59)/a))*a)-b)+e)*e)*b))/0.77)-b)"
-"(a*(((((((a*sin((((((((b/(((a+tan((b+tan(((((e/3.48)+e)-pi)/b)))))+a)-pi))+1.34)*a)+a)+0.36)+a)+b)))-pi)-0.40)-pi)-e)+a)*a))"
-"tan(((1.98/((b/cos((e+(((sin(cos((((((cos(tan((b+((((pi*3.71)+a)+pi)-1.17))))/b)/e)+a)+3.08)-e)))+a)+3.15)*b))))*0.70))/pi))"
-"((((((((((((((((((((((((pi/a)/b)+pi)*a)+0.68)+a)-0.14)-2.38)/1.45)/b)*1.52)+b)+b)*3.56)+3.40)-a)-0.29)+b)*b)-e)+a)/b)+pi)-pi)"
-"((((((x*y)*z)-w)/((x+y)+(z*w)))/(((x+y)-(z/w))-((x*y)+(z-w))))/((((x+y)+(z*w))*((x/y)+(z-w)))*(((x*y)+(z-w))+((x/y)*(z-w)))))"
-"((((((x*y)/z)-w)/((x-y)-(z*w)))/(((x-y)+(z/w))-((x+y)*(z*w))))/((((x-y)-(z*w))*((x+y)*(z/w)))*(((x+y)*(z*w))+(x-(y/(z*w))))))"
-"((((((x+y)*z)-w)-((x+y)-(z*w)))-((x*(y-(z*w)))/((x*y)+(z+w))))-((((x+y)-(z*w))+((x/y)+(z+w)))+(((x*y)+(z+w))*((x/y)/(z-w)))))"
-"((((((x+y)/z)-w)-((x-y)+(z*w)))-(((x+y)+(z/w))/((x*y)-(z-w))))-((((x-y)+(z*w))+((x/y)-(z-w)))+(((x*y)-(z-w))*(x-(y*(z/w))))))"
-"((((((x-y)*z)-w)*((x+y)-(z/w)))*(((x+y)-(z*w))+((x/y)+(z+w))))*((((x+y)-(z/w))-((x*y)+(z-w)))-(((x/y)+(z+w))/((x*y)*(z-w)))))"
-"((((((x-y)/z)-w)*((x-y)+(z/w)))*(((x-y)+(z*w))+((x/y)-(z-w))))*((((x-y)+(z/w))-((x+y)*(z*w)))-(((x/y)-(z-w))/(x+(y/(z*w))))))"
-"((((((x/y)*z)-w)+((x+y)+(z/w)))+(((x+y)+(z*w))*((x/y)+(z-w))))+((((x+y)+(z/w))/((x*y)-(z-w)))/(((x/y)+(z-w))-(x+(y*(z/w))))))"
-"((((((x/y)/z)-w)+((x-y)-(z/w)))+(((x-y)-(z*w))*((x+y)*(z/w))))+((((x-y)-(z/w))/((x+y)/(z*w)))/(((x+y)*(z/w))-(x+((y+z)/w)))))"
-"(((((3.123*y)*z)-(3.123/(y*z)))-((3.123/(y/z))-(3.123-(y/z))))-(((3.123*(y+z))*(3.123-(y*z)))*((3.123+(y*z))*((3.123+y)+z))))"
-"(((((3.123*y)+z)*((3.123/y)*z))*((3.123/(y+z))*(3.123*(y/z))))*(((3.123/(y-z))/(3.123-(y+z)))/((3.123-(y-z))/((3.123+y)/z))))"
-"(((((3.123*y)-z)/(3.123/(y+z)))/((3.123/(y-z))/(3.123-(y+z))))/(((3.123/(y*z))+(3.123-(y-z)))+((3.123-(y/z))+((3.123+y)*z))))"
-"(((((3.123*y)/z)+(3.123/(y-z)))+((3.123/(y*z))+(3.123-(y-z))))+(((3.123/(y/z))-(3.123-(y/z)))-((3.123-(y*z))-((3.123+y)-z))))"
-"(((((3.123+y)*z)-((3.123*y)/z))-(((3.123*y)*z)-(3.123/(y*z))))-((((3.123/y)+z)*(3.123/(y/z)))*((3.123*(y+z))*(3.123-(y*z)))))"
-"(((((3.123+y)+z)/((3.123/y)+z))/(((3.123/y)-z)/(3.123*(y+z))))/((((3.123/y)/z)+(3.123*(y-z)))+((3.123*(y*z))+(3.123+(y/z)))))"
-"(((((3.123+y)-z)*((3.123*y)*z))*(((3.123/y)+z)*(3.123/(y/z))))*((((3.123/y)-z)/(3.123*(y+z)))/((3.123*(y-z))/(3.123+(y*z)))))"
-"(((((3.123+y)/z)+((3.123*y)-z))+(((3.123*y)/z)+(3.123/(y-z))))+((((3.123*y)*z)-(3.123/(y*z)))-((3.123/(y/z))-(3.123-(y/z)))))"
-"(((((3.123-y)*z)-((3.123/y)/z))-(((3.123/y)*z)-(3.123*(y*z))))-(((3.123/(y+z))*(3.123*(y/z)))*((3.123-(y+z))*(3.123+(y-z)))))"
-"(((((3.123-y)/z)+((3.123/y)-z))+(((3.123/y)/z)+(3.123*(y-z))))+((((3.123/y)*z)-(3.123*(y*z)))-((3.123*(y/z))-(3.123+(y+z)))))"
-"(((((3.123/y)*z)-(3.123*(y*z)))-((3.123*(y/z))-(3.123+(y+z))))-(((3.123-(y+z))*(3.123+(y-z)))*(((3.123+y)/z)+((3.123*y)-z))))"
-"(((((3.123/y)+z)*(3.123/(y/z)))*((3.123*(y+z))*(3.123-(y*z))))*(((3.123*(y-z))/(3.123+(y*z)))/((3.123+(y/z))/((3.123-y)/z))))"
-"(((((3.123/y)-z)/(3.123*(y+z)))/((3.123*(y-z))/(3.123+(y*z))))/(((3.123*(y*z))+(3.123+(y/z)))+((3.123+(y+z))+((3.123-y)*z))))"
-"(((((3.123/y)/z)+(3.123*(y-z)))+((3.123*(y*z))+(3.123+(y/z))))+(((3.123*(y/z))-(3.123+(y+z)))-((3.123+(y-z))-((3.123*y)+z))))"
-"(((((x*5.123)*z)-(x/(5.123*z)))-((x/(5.123/z))-(x-(5.123/z))))-(((x*(5.123+z))*(x-(5.123*z)))*((x+(5.123*z))*((x+5.123)+z))))"
-"(((((x*5.123)+z)*((x/5.123)*z))*((x/(5.123+z))*(x*(5.123/z))))*(((x/(5.123-z))/(x-(5.123+z)))/((x-(5.123-z))/((x+5.123)/z))))"
-"(((((x*5.123)-z)/(x/(5.123+z)))/((x/(5.123-z))/(x-(5.123+z))))/(((x/(5.123*z))+(x-(5.123-z)))+((x-(5.123/z))+((x+5.123)*z))))"
-"(((((x*5.123)/z)+(x/(5.123-z)))+((x/(5.123*z))+(x-(5.123-z))))+(((x/(5.123/z))-(x-(5.123/z)))-((x-(5.123*z))-((x+5.123)-z))))"
-"(((((x*y)*(z+w))+(x+((y/z)/w)))+((x+((y/z)+w))*((x*y)+(z*w))))+(((x+((y/z)/w))/((x*y)-(z*w)))/(((x*y)+(z*w))-((x+y)-(z-w)))))"
-"(((((x*y)*(z-w))*(x-((y*z)/w)))*((x-((y-z)*w))+((x/y)-(z*w))))*(((x-((y*z)/w))-(x/(y+(z*w))))-(((x/y)-(z*w))/((x-y)*(z+w)))))"
-"(((((x*y)*7.123)-(x/(y*7.123)))-((x/(y/7.123))-(x-(y/7.123))))-(((x*(y+7.123))*(x-(y*7.123)))*((x+(y*7.123))*((x+y)+7.123))))"
-"(((((x*y)+(z*w))-((x+y)-(z-w)))-(((x-y)-(z/w))/((x+y)/(z*w))))-((((x+y)-(z-w))+((x+y)/(z/w)))+(((x+y)/(z*w))*(x+((y+z)*w)))))"
-"(((((x*y)+(z+w))*((x/y)/(z-w)))*(((x*y)/(z-w))+(x-((y-z)/w))))*((((x/y)/(z-w))-(x-((y-z)*w)))-((x-((y-z)/w))/((x/y)-(z/w)))))"
-"(((((x*y)+(z-w))+((x/y)*(z-w)))+(((x*y)*(z-w))*(x-((y*z)/w))))+((((x/y)*(z-w))/(x-((y*z)*w)))/((x-((y*z)/w))-(x/(y+(z*w))))))"
-"(((((x*y)+(z/w))/((x+y)*(z-w)))/(((x+y)+(z-w))-((x-y)/(z*w))))/((((x+y)*(z-w))*((x-y)/(z/w)))*(((x-y)/(z*w))+(x+((y-z)*w)))))"
-"(((((x*y)+7.123)*((x/y)*7.123))*((x/(y+7.123))*(x*(y/7.123))))*(((x/(y-7.123))/(x-(y+7.123)))/((x-(y-7.123))/((x+y)/7.123))))"
-"(((((x*y)-(z*w))*((x+y)+(z-w)))*(((x+y)-(z-w))+((x+y)/(z/w))))*((((x+y)+(z-w))-((x-y)/(z*w)))-(((x+y)/(z/w))/(x+((y-z)/w)))))"
-"(((((x*y)-(z+w))+((x/y)/(z+w)))+(((x*y)/(z+w))*(x-((y+z)/w))))+((((x/y)/(z+w))/(x-((y+z)*w)))/((x-((y+z)/w))-((x*y)-(z/w)))))"
-"(((((x*y)-(z-w))*(x-(y*(z/w))))*((x+(y*(z/w)))+(x-((y/z)/w))))*(((x-(y*(z/w)))-(x-((y/z)*w)))-((x-((y/z)/w))/(x*(y+(z*w))))))"
-"(((((x*y)-(z/w))+((x+y)/(z-w)))+(((x+y)*(z-w))*((x-y)/(z/w))))+((((x+y)/(z-w))/((x-y)*(z*w)))/(((x-y)/(z/w))-(x+((y*z)/w)))))"
-"(((((x*y)-7.123)/(x/(y+7.123)))/((x/(y-7.123))/(x-(y+7.123))))/(((x/(y*7.123))+(x-(y-7.123)))+((x-(y/7.123))+((x+y)*7.123))))"
-"(((((x*y)/(z+w))*(x-((y+z)/w)))*((x+((y/z)*w))+((x*y)+(z/w))))*(((x-((y+z)/w))-((x*y)-(z/w)))-(((x*y)+(z/w))/((x+y)*(z-w)))))"
-"(((((x*y)/(z-w))+(x-((y-z)/w)))+((x-((y+z)*w))*((x/y)+(z/w))))+(((x-((y-z)/w))/((x/y)-(z/w)))/(((x/y)+(z/w))-((x-y)-(z+w)))))"
-"(((((x*y)/7.123)+(x/(y-7.123)))+((x/(y*7.123))+(x-(y-7.123))))+(((x/(y/7.123))-(x-(y/7.123)))-((x-(y*7.123))-((x+y)-7.123))))"
-"(((((x+5.123)*z)-((x*5.123)/z))-(((x*5.123)*z)-(x/(5.123*z))))-((((x/5.123)+z)*(x/(5.123/z)))*((x*(5.123+z))*(x-(5.123*z)))))"
-"(((((x+5.123)+z)/((x/5.123)+z))/(((x/5.123)-z)/(x*(5.123+z))))/((((x/5.123)/z)+(x*(5.123-z)))+((x*(5.123*z))+(x+(5.123/z)))))"
-"(((((x+5.123)-z)*((x*5.123)*z))*(((x/5.123)+z)*(x/(5.123/z))))*((((x/5.123)-z)/(x*(5.123+z)))/((x*(5.123-z))/(x+(5.123*z)))))"
-"(((((x+5.123)/z)+((x*5.123)-z))+(((x*5.123)/z)+(x/(5.123-z))))+((((x*5.123)*z)-(x/(5.123*z)))-((x/(5.123/z))-(x-(5.123/z)))))"
-"(((((x+y)*(z*w))+(x-(y/(z*w))))+((x+(y/(z*w)))*(((x+y)*z)-w)))+(((x-(y/(z*w)))/(((x-y)*z)-w))/((((x+y)*z)-w)-((x+y)-(z*w)))))"
-"(((((x+y)*(z-w))*((x-y)/(z/w)))*(((x-y)/(z*w))+(x+((y-z)*w))))*((((x-y)/(z/w))-(x+((y*z)/w)))-((x+((y-z)*w))/(((x-y)/z)-w))))"
-"(((((x+y)*(z/w))-(x+((y+z)/w)))-((x-(y/(z*w)))/(((x-y)*z)-w)))-(((x+((y+z)/w))+(((x*y)*z)-w))+((((x-y)*z)-w)*((x+y)-(z/w)))))"
-"(((((x+y)*7.123)-((x*y)/7.123))-(((x*y)*7.123)-(x/(y*7.123))))-((((x/y)+7.123)*(x/(y/7.123)))*((x*(y+7.123))*(x-(y*7.123)))))"
-"(((((x+y)+(z*w))*((x/y)+(z-w)))*(((x*y)+(z-w))+((x/y)*(z-w))))*((((x/y)+(z-w))-(x+(y*(z/w))))-(((x/y)*(z-w))/(x-((y*z)*w)))))"
-"(((((x+y)+(z-w))-((x-y)/(z*w)))-(((x+y)/(z/w))/(x+((y-z)/w))))-((((x-y)/(z*w))+(x+((y-z)*w)))+((x+((y-z)/w))*(((x+y)/z)-w))))"
-"(((((x+y)+(z/w))/((x*y)-(z-w)))/(((x/y)+(z-w))-(x+(y*(z/w)))))/((((x*y)-(z-w))*(x-(y*(z/w))))*((x+(y*(z/w)))+(x-((y/z)/w)))))"
-"(((((x+y)+7.123)/((x/y)+7.123))/(((x/y)-7.123)/(x*(y+7.123))))/((((x/y)/7.123)+(x*(y-7.123)))+((x*(y*7.123))+(x+(y/7.123)))))"
-"(((((x+y)-(z*w))+((x/y)+(z+w)))+(((x*y)+(z+w))*((x/y)/(z-w))))+((((x/y)+(z+w))/((x*y)*(z-w)))/(((x/y)/(z-w))-(x-((y-z)*w)))))"
-"(((((x+y)-(z-w))+((x+y)/(z/w)))+(((x+y)/(z*w))*(x+((y+z)*w))))+((((x+y)/(z/w))/(x+((y-z)/w)))/((x+((y+z)*w))-(((x/y)*z)-w))))"
-"(((((x+y)-(z/w))-((x*y)+(z-w)))-(((x/y)+(z+w))/((x*y)*(z-w))))-((((x*y)+(z-w))+((x/y)*(z-w)))+(((x*y)*(z-w))*(x-((y*z)/w)))))"
-"(((((x+y)-7.123)*((x*y)*7.123))*(((x/y)+7.123)*(x/(y/7.123))))*((((x/y)-7.123)/(x*(y+7.123)))/((x*(y-7.123))/(x+(y*7.123)))))"
-"(((((x+y)/(z*w))*(x+((y+z)*w)))*((x+((y+z)/w))+(((x*y)*z)-w)))*(((x+((y+z)*w))-(((x/y)*z)-w))-((((x*y)*z)-w)/((x+y)+(z*w)))))"
-"(((((x+y)/(z-w))/((x-y)*(z*w)))/(((x-y)/(z/w))-(x+((y*z)/w))))/((((x-y)*(z*w))*(x+((y*z)*w)))*((x+((y*z)/w))+(((x*y)/z)-w))))"
-"(((((x+y)/(z/w))/(x+((y-z)/w)))/((x+((y+z)*w))-(((x/y)*z)-w)))/(((x+((y-z)/w))*(((x+y)/z)-w))*((((x/y)*z)-w)+((x+y)+(z/w)))))"
-"(((((x+y)/7.123)+((x*y)-7.123))+(((x*y)/7.123)+(x/(y-7.123))))+((((x*y)*7.123)-(x/(y*7.123)))-((x/(y/7.123))-(x-(y/7.123)))))"
-"(((((x-5.123)*z)-((x/5.123)/z))-(((x/5.123)*z)-(x*(5.123*z))))-(((x/(5.123+z))*(x*(5.123/z)))*((x-(5.123+z))*(x+(5.123-z)))))"
-"(((((x-5.123)/z)+((x/5.123)-z))+(((x/5.123)/z)+(x*(5.123-z))))+((((x/5.123)*z)-(x*(5.123*z)))-((x*(5.123/z))-(x+(5.123+z)))))"
-"(((((x-y)*(z*w))*(x+((y*z)*w)))*((x+((y*z)/w))+(((x*y)/z)-w)))*(((x+((y*z)*w))-(((x/y)/z)-w))-((((x*y)/z)-w)/((x-y)-(z*w)))))"
-"(((((x-y)*(z+w))*((x/y)*(z+w)))*(((x*y)*(z+w))+(x+((y/z)/w))))*((((x/y)*(z+w))-(x+((y/z)*w)))-((x+((y/z)/w))/((x*y)-(z*w)))))"
-"(((((x-y)*(z/w))/(x+((y/z)+w)))/((x+((y*z)*w))-(((x/y)/z)-w)))/(((x+((y/z)+w))*((x*y)+(z*w)))*((((x/y)/z)-w)+((x-y)-(z/w)))))"
-"(((((x-y)*7.123)-((x/y)/7.123))-(((x/y)*7.123)-(x*(y*7.123))))-(((x/(y+7.123))*(x*(y/7.123)))*((x-(y+7.123))*(x+(y-7.123)))))"
-"(((((x-y)+(z*w))+((x/y)-(z-w)))+(((x*y)-(z-w))*(x-(y*(z/w)))))+((((x/y)-(z-w))/(x+(y/(z*w))))/((x-(y*(z/w)))-(x-((y/z)*w)))))"
-"(((((x-y)+(z+w))-((x*y)*(z+w)))-(((x-y)*(z/w))/(x+((y/z)+w))))-((((x*y)*(z+w))+(x+((y/z)/w)))+((x+((y/z)+w))*((x*y)+(z*w)))))"
-"(((((x-y)+(z/w))-((x+y)*(z*w)))-(((x/y)-(z-w))/(x+(y/(z*w)))))-((((x+y)*(z*w))+(x-(y/(z*w))))+((x+(y/(z*w)))*(((x+y)*z)-w))))"
-"(((((x-y)-(z*w))*((x+y)*(z/w)))*(((x+y)*(z*w))+(x-(y/(z*w)))))*((((x+y)*(z/w))-(x+((y+z)/w)))-((x-(y/(z*w)))/(((x-y)*z)-w))))"
-"(((((x-y)-(z+w))+((x-y)*(z/w)))+(((x-y)*(z*w))*(x+((y*z)*w))))+((((x-y)*(z/w))/(x+((y/z)+w)))/((x+((y*z)*w))-(((x/y)/z)-w))))"
-"(((((x-y)-(z/w))/((x+y)/(z*w)))/(((x+y)*(z/w))-(x+((y+z)/w))))/((((x+y)/(z*w))*(x+((y+z)*w)))*((x+((y+z)/w))+(((x*y)*z)-w))))"
-"(((((x-y)/(z*w))+(x+((y-z)*w)))+((x+((y-z)/w))*(((x+y)/z)-w)))+(((x+((y-z)*w))/(((x-y)/z)-w))/((((x+y)/z)-w)-((x-y)+(z*w)))))"
-"(((((x-y)/(z+w))/((x*y)/(z+w)))/(((x/y)*(z+w))-(x+((y/z)*w))))/((((x*y)/(z+w))*(x-((y+z)/w)))*((x+((y/z)*w))+((x*y)+(z/w)))))"
-"(((((x-y)/(z/w))-(x+((y*z)/w)))-((x+((y-z)*w))/(((x-y)/z)-w)))-(((x+((y*z)/w))+(((x*y)/z)-w))+((((x-y)/z)-w)*((x-y)+(z/w)))))"
-"(((((x-y)/7.123)+((x/y)-7.123))+(((x/y)/7.123)+(x*(y-7.123))))+((((x/y)*7.123)-(x*(y*7.123)))-((x*(y/7.123))-(x+(y+7.123)))))"
-"(((((x/5.123)*z)-(x*(5.123*z)))-((x*(5.123/z))-(x+(5.123+z))))-(((x-(5.123+z))*(x+(5.123-z)))*(((x+5.123)/z)+((x*5.123)-z))))"
-"(((((x/5.123)+z)*(x/(5.123/z)))*((x*(5.123+z))*(x-(5.123*z))))*(((x*(5.123-z))/(x+(5.123*z)))/((x+(5.123/z))/((x-5.123)/z))))"
-"(((((x/5.123)-z)/(x*(5.123+z)))/((x*(5.123-z))/(x+(5.123*z))))/(((x*(5.123*z))+(x+(5.123/z)))+((x+(5.123+z))+((x-5.123)*z))))"
-"(((((x/5.123)/z)+(x*(5.123-z)))+((x*(5.123*z))+(x+(5.123/z))))+(((x*(5.123/z))-(x+(5.123+z)))-((x+(5.123-z))-((x*5.123)+z))))"
-"(((((x/y)*(z+w))-(x+((y/z)*w)))-((x+((y/z)/w))/((x*y)-(z*w))))-(((x+((y/z)*w))+((x*y)+(z/w)))+(((x*y)-(z*w))*((x+y)+(z-w)))))"
-"(((((x/y)*(z-w))/(x-((y*z)*w)))/((x-((y*z)/w))-(x/(y+(z*w)))))/(((x-((y*z)*w))*(x/(y-(z*w))))*((x/(y+(z*w)))+((x-y)/(z+w)))))"
-"(((((x/y)*7.123)-(x*(y*7.123)))-((x*(y/7.123))-(x+(y+7.123))))-(((x-(y+7.123))*(x+(y-7.123)))*(((x+y)/7.123)+((x*y)-7.123))))"
-"(((((x/y)+(z+w))/((x*y)*(z-w)))/(((x/y)/(z-w))-(x-((y-z)*w))))/((((x*y)*(z-w))*(x-((y*z)/w)))*((x-((y-z)*w))+((x/y)-(z*w)))))"
-"(((((x/y)+(z-w))-(x+(y*(z/w))))-(((x/y)*(z-w))/(x-((y*z)*w))))-(((x+(y*(z/w)))+(x-((y/z)/w)))+((x-((y*z)*w))*(x/(y-(z*w))))))"
-"(((((x/y)+(z/w))-((x-y)-(z+w)))-(((x+y)/(z-w))/((x-y)*(z*w))))-((((x-y)-(z+w))+((x-y)*(z/w)))+(((x-y)*(z*w))*(x+((y*z)*w)))))"
-"(((((x/y)+7.123)*(x/(y/7.123)))*((x*(y+7.123))*(x-(y*7.123))))*(((x*(y-7.123))/(x+(y*7.123)))/((x+(y/7.123))/((x-y)/7.123))))"
-"(((((x/y)-(z*w))/((x-y)*(z+w)))/(((x-y)+(z+w))-((x*y)*(z+w))))/((((x-y)*(z+w))*((x/y)*(z+w)))*(((x*y)*(z+w))+(x+((y/z)/w)))))"
-"(((((x/y)-(z+w))-((x*y)/(z-w)))-(((x/y)/(z+w))/(x-((y+z)*w))))-((((x*y)/(z-w))+(x-((y-z)/w)))+((x-((y+z)*w))*((x/y)+(z/w)))))"
-"(((((x/y)-(z-w))/(x+(y/(z*w))))/((x-(y*(z/w)))-(x-((y/z)*w))))/(((x+(y/(z*w)))*(((x+y)*z)-w))*((x-((y/z)*w))+(x*(y-(z*w))))))"
-"(((((x/y)-(z/w))*((x-y)+(z+w)))*(((x-y)-(z+w))+((x-y)*(z/w))))*((((x-y)+(z+w))-((x*y)*(z+w)))-(((x-y)*(z/w))/(x+((y/z)+w)))))"
-"(((((x/y)-7.123)/(x*(y+7.123)))/((x*(y-7.123))/(x+(y*7.123))))/(((x*(y*7.123))+(x+(y/7.123)))+((x+(y+7.123))+((x-y)*7.123))))"
-"(((((x/y)/(z+w))/(x-((y+z)*w)))/((x-((y+z)/w))-((x*y)-(z/w))))/(((x-((y+z)*w))*((x/y)+(z/w)))*(((x*y)-(z/w))+((x+y)/(z-w)))))"
-"(((((x/y)/(z-w))-(x-((y-z)*w)))-((x-((y-z)/w))/((x/y)-(z/w))))-(((x-((y-z)*w))+((x/y)-(z*w)))+(((x/y)-(z/w))*((x-y)+(z+w)))))"
-"(((((x/y)/7.123)+(x*(y-7.123)))+((x*(y*7.123))+(x+(y/7.123))))+(((x*(y/7.123))-(x+(y+7.123)))-((x+(y-7.123))-((x*y)+7.123))))"
-"((((3.123*(y*z))+(3.123+(y/z)))+((3.123+(y+z))+((3.123-y)*z)))+(((3.123+(y-z))-((3.123*y)+z))-(((3.123*y)-z)/(3.123/(y+z)))))"
-"((((3.123*(y+z))*(3.123-(y*z)))*((3.123+(y*z))*((3.123+y)+z)))*(((3.123+(y/z))/((3.123-y)/z))/(((3.123-y)*z)-((3.123/y)/z))))"
-"((((3.123*(y-z))/(3.123+(y*z)))/((3.123+(y/z))/((3.123-y)/z)))/(((3.123+(y+z))+((3.123-y)*z))+(((3.123*y)+z)*((3.123/y)*z))))"
-"((((3.123*(y/z))-(3.123+(y+z)))-((3.123+(y-z))-((3.123*y)+z)))-((((3.123+y)/z)+((3.123*y)-z))+(((3.123*y)/z)+(3.123/(y-z)))))"
-"((((3.123+(y*z))*((3.123+y)+z))*(((3.123-y)/z)+((3.123/y)-z)))*((((3.123-y)*z)-((3.123/y)/z))-(((3.123/y)*z)-(3.123*(y*z)))))"
-"((((3.123+(y+z))+((3.123-y)*z))+(((3.123*y)+z)*((3.123/y)*z)))+((((3.123*y)-z)/(3.123/(y+z)))/((3.123/(y-z))/(3.123-(y+z)))))"
-"((((3.123+(y-z))-((3.123*y)+z))-(((3.123*y)-z)/(3.123/(y+z))))-((((3.123*y)/z)+(3.123/(y-z)))+((3.123/(y*z))+(3.123-(y-z)))))"
-"((((3.123+(y/z))/((3.123-y)/z))/(((3.123-y)*z)-((3.123/y)/z)))/((((3.123*y)+z)*((3.123/y)*z))*((3.123/(y+z))*(3.123*(y/z)))))"
-"((((3.123-(y*z))-((3.123+y)-z))-(((3.123+y)+z)/((3.123/y)+z)))-((((3.123-y)/z)+((3.123/y)-z))+(((3.123/y)/z)+(3.123*(y-z)))))"
-"((((3.123-(y+z))*(3.123+(y-z)))*(((3.123+y)/z)+((3.123*y)-z)))*((((3.123+y)*z)-((3.123*y)/z))-(((3.123*y)*z)-(3.123/(y*z)))))"
-"((((3.123-(y-z))/((3.123+y)/z))/(((3.123+y)*z)-((3.123*y)/z)))/((((3.123+y)-z)*((3.123*y)*z))*(((3.123/y)+z)*(3.123/(y/z)))))"
-"((((3.123-(y/z))+((3.123+y)*z))+(((3.123+y)-z)*((3.123*y)*z)))+((((3.123+y)+z)/((3.123/y)+z))/(((3.123/y)-z)/(3.123*(y+z)))))"
-"((((3.123/(y*z))+(3.123-(y-z)))+((3.123-(y/z))+((3.123+y)*z)))+(((3.123-(y*z))-((3.123+y)-z))-(((3.123+y)+z)/((3.123/y)+z))))"
-"((((3.123/(y+z))*(3.123*(y/z)))*((3.123-(y+z))*(3.123+(y-z))))*(((3.123-(y-z))/((3.123+y)/z))/(((3.123+y)*z)-((3.123*y)/z))))"
-"((((3.123/(y-z))/(3.123-(y+z)))/((3.123-(y-z))/((3.123+y)/z)))/(((3.123-(y/z))+((3.123+y)*z))+(((3.123+y)-z)*((3.123*y)*z))))"
-"((((3.123/(y/z))-(3.123-(y/z)))-((3.123-(y*z))-((3.123+y)-z)))-(((3.123+(y*z))*((3.123+y)+z))*(((3.123-y)/z)+((3.123/y)-z))))"
-"((((x*(5.123*z))+(x+(5.123/z)))+((x+(5.123+z))+((x-5.123)*z)))+(((x+(5.123-z))-((x*5.123)+z))-(((x*5.123)-z)/(x/(5.123+z)))))"
-"((((x*(5.123+z))*(x-(5.123*z)))*((x+(5.123*z))*((x+5.123)+z)))*(((x+(5.123/z))/((x-5.123)/z))/(((x-5.123)*z)-((x/5.123)/z))))"
-"((((x*(5.123-z))/(x+(5.123*z)))/((x+(5.123/z))/((x-5.123)/z)))/(((x+(5.123+z))+((x-5.123)*z))+(((x*5.123)+z)*((x/5.123)*z))))"
-"((((x*(5.123/z))-(x+(5.123+z)))-((x+(5.123-z))-((x*5.123)+z)))-((((x+5.123)/z)+((x*5.123)-z))+(((x*5.123)/z)+(x/(5.123-z)))))"
-"((((x*(y*7.123))+(x+(y/7.123)))+((x+(y+7.123))+((x-y)*7.123)))+(((x+(y-7.123))-((x*y)+7.123))-(((x*y)-7.123)/(x/(y+7.123)))))"
-"((((x*(y+(z*w)))*((x/y)-(z+w)))*(((x*y)-(z+w))+((x/y)/(z+w))))*((((x/y)-(z+w))-((x*y)/(z-w)))-(((x/y)/(z+w))/(x-((y+z)*w)))))"
-"((((x*(y+7.123))*(x-(y*7.123)))*((x+(y*7.123))*((x+y)+7.123)))*(((x+(y/7.123))/((x-y)/7.123))/(((x-y)*7.123)-((x/y)/7.123))))"
-"((((x*(y-(z*w)))/((x*y)+(z+w)))/(((x/y)-(z+w))-((x*y)/(z-w))))/((((x*y)+(z+w))*((x/y)/(z-w)))*(((x*y)/(z-w))+(x-((y-z)/w)))))"
-"((((x*(y-7.123))/(x+(y*7.123)))/((x+(y/7.123))/((x-y)/7.123)))/(((x+(y+7.123))+((x-y)*7.123))+(((x*y)+7.123)*((x/y)*7.123))))"
-"((((x*(y/7.123))-(x+(y+7.123)))-((x+(y-7.123))-((x*y)+7.123)))-((((x+y)/7.123)+((x*y)-7.123))+(((x*y)/7.123)+(x/(y-7.123)))))"
-"((((x+((y*z)*w))-(((x/y)/z)-w))-((((x*y)/z)-w)/((x-y)-(z*w))))-(((((x/y)/z)-w)+((x-y)-(z/w)))+(((x-y)-(z*w))*((x+y)*(z/w)))))"
-"((((x+((y*z)/w))+(((x*y)/z)-w))+((((x-y)/z)-w)*((x-y)+(z/w))))+(((((x*y)/z)-w)/((x-y)-(z*w)))/(((x-y)+(z/w))-((x+y)*(z*w)))))"
-"((((x+((y+z)*w))-(((x/y)*z)-w))-((((x*y)*z)-w)/((x+y)+(z*w))))-(((((x/y)*z)-w)+((x+y)+(z/w)))+(((x+y)+(z*w))*((x/y)+(z-w)))))"
-"((((x+((y+z)/w))+(((x*y)*z)-w))+((((x-y)*z)-w)*((x+y)-(z/w))))+(((((x*y)*z)-w)/((x+y)+(z*w)))/(((x+y)-(z/w))-((x*y)+(z-w)))))"
-"((((x+((y-z)*w))/(((x-y)/z)-w))/((((x+y)/z)-w)-((x-y)+(z*w))))/(((((x-y)/z)-w)*((x-y)+(z/w)))*(((x-y)+(z*w))+((x/y)-(z-w)))))"
-"((((x+((y-z)/w))*(((x+y)/z)-w))*((((x/y)*z)-w)+((x+y)+(z/w))))*(((((x+y)/z)-w)-((x-y)+(z*w)))-(((x+y)+(z/w))/((x*y)-(z-w)))))"
-"((((x+((y/z)*w))+((x*y)+(z/w)))+(((x*y)-(z*w))*((x+y)+(z-w))))+((((x*y)+(z/w))/((x+y)*(z-w)))/(((x+y)+(z-w))-((x-y)/(z*w)))))"
-"((((x+((y/z)+w))*((x*y)+(z*w)))*((((x/y)/z)-w)+((x-y)-(z/w))))*((((x*y)+(z*w))-((x+y)-(z-w)))-(((x-y)-(z/w))/((x+y)/(z*w)))))"
-"((((x+((y/z)/w))/((x*y)-(z*w)))/(((x*y)+(z*w))-((x+y)-(z-w))))/((((x*y)-(z*w))*((x+y)+(z-w)))*(((x+y)-(z-w))+((x+y)/(z/w)))))"
-"((((x+(5.123*z))*((x+5.123)+z))*(((x-5.123)/z)+((x/5.123)-z)))*((((x-5.123)*z)-((x/5.123)/z))-(((x/5.123)*z)-(x*(5.123*z)))))"
-"((((x+(5.123+z))+((x-5.123)*z))+(((x*5.123)+z)*((x/5.123)*z)))+((((x*5.123)-z)/(x/(5.123+z)))/((x/(5.123-z))/(x-(5.123+z)))))"
-"((((x+(5.123-z))-((x*5.123)+z))-(((x*5.123)-z)/(x/(5.123+z))))-((((x*5.123)/z)+(x/(5.123-z)))+((x/(5.123*z))+(x-(5.123-z)))))"
-"((((x+(5.123/z))/((x-5.123)/z))/(((x-5.123)*z)-((x/5.123)/z)))/((((x*5.123)+z)*((x/5.123)*z))*((x/(5.123+z))*(x*(5.123/z)))))"
-"((((x+(y*(z/w)))+(x-((y/z)/w)))+((x-((y*z)*w))*(x/(y-(z*w)))))+(((x-((y/z)/w))/(x*(y+(z*w))))/((x/(y-(z*w)))-((x*y)-(z+w)))))"
-"((((x+(y*7.123))*((x+y)+7.123))*(((x-y)/7.123)+((x/y)-7.123)))*((((x-y)*7.123)-((x/y)/7.123))-(((x/y)*7.123)-(x*(y*7.123)))))"
-"((((x+(y+7.123))+((x-y)*7.123))+(((x*y)+7.123)*((x/y)*7.123)))+((((x*y)-7.123)/(x/(y+7.123)))/((x/(y-7.123))/(x-(y+7.123)))))"
-"((((x+(y-7.123))-((x*y)+7.123))-(((x*y)-7.123)/(x/(y+7.123))))-((((x*y)/7.123)+(x/(y-7.123)))+((x/(y*7.123))+(x-(y-7.123)))))"
-"((((x+(y/(z*w)))*(((x+y)*z)-w))*((x-((y/z)*w))+(x*(y-(z*w)))))*(((((x+y)*z)-w)-((x+y)-(z*w)))-((x*(y-(z*w)))/((x*y)+(z+w)))))"
-"((((x+(y/7.123))/((x-y)/7.123))/(((x-y)*7.123)-((x/y)/7.123)))/((((x*y)+7.123)*((x/y)*7.123))*((x/(y+7.123))*(x*(y/7.123)))))"
-"((((x-((y*z)*w))*(x/(y-(z*w))))*((x/(y+(z*w)))+((x-y)/(z+w))))*(((x/(y-(z*w)))-((x*y)-(z+w)))-(((x-y)/(z+w))/((x*y)/(z+w)))))"
-"((((x-((y*z)/w))-(x/(y+(z*w))))-(((x/y)-(z*w))/((x-y)*(z+w))))-(((x/(y+(z*w)))+((x-y)/(z+w)))+(((x-y)*(z+w))*((x/y)*(z+w)))))"
-"((((x-((y+z)*w))*((x/y)+(z/w)))*(((x*y)-(z/w))+((x+y)/(z-w))))*((((x/y)+(z/w))-((x-y)-(z+w)))-(((x+y)/(z-w))/((x-y)*(z*w)))))"
-"((((x-((y+z)/w))-((x*y)-(z/w)))-(((x*y)+(z/w))/((x+y)*(z-w))))-((((x*y)-(z/w))+((x+y)/(z-w)))+(((x+y)*(z-w))*((x-y)/(z/w)))))"
-"((((x-((y-z)*w))+((x/y)-(z*w)))+(((x/y)-(z/w))*((x-y)+(z+w))))+((((x/y)-(z*w))/((x-y)*(z+w)))/(((x-y)+(z+w))-((x*y)*(z+w)))))"
-"((((x-((y-z)/w))/((x/y)-(z/w)))/(((x/y)+(z/w))-((x-y)-(z+w))))/((((x/y)-(z/w))*((x-y)+(z+w)))*(((x-y)-(z+w))+((x-y)*(z/w)))))"
-"((((x-((y/z)*w))+(x*(y-(z*w))))+((x*(y+(z*w)))*((x/y)-(z+w))))+(((x*(y-(z*w)))/((x*y)+(z+w)))/(((x/y)-(z+w))-((x*y)/(z-w)))))"
-"((((x-((y/z)/w))/(x*(y+(z*w))))/((x/(y-(z*w)))-((x*y)-(z+w))))/(((x*(y+(z*w)))*((x/y)-(z+w)))*(((x*y)-(z+w))+((x/y)/(z+w)))))"
-"((((x-(5.123*z))-((x+5.123)-z))-(((x+5.123)+z)/((x/5.123)+z)))-((((x-5.123)/z)+((x/5.123)-z))+(((x/5.123)/z)+(x*(5.123-z)))))"
-"((((x-(5.123+z))*(x+(5.123-z)))*(((x+5.123)/z)+((x*5.123)-z)))*((((x+5.123)*z)-((x*5.123)/z))-(((x*5.123)*z)-(x/(5.123*z)))))"
-"((((x-(5.123-z))/((x+5.123)/z))/(((x+5.123)*z)-((x*5.123)/z)))/((((x+5.123)-z)*((x*5.123)*z))*(((x/5.123)+z)*(x/(5.123/z)))))"
-"((((x-(5.123/z))+((x+5.123)*z))+(((x+5.123)-z)*((x*5.123)*z)))+((((x+5.123)+z)/((x/5.123)+z))/(((x/5.123)-z)/(x*(5.123+z)))))"
-"((((x-(y*(z/w)))-(x-((y/z)*w)))-((x-((y/z)/w))/(x*(y+(z*w)))))-(((x-((y/z)*w))+(x*(y-(z*w))))+((x*(y+(z*w)))*((x/y)-(z+w)))))"
-"((((x-(y*7.123))-((x+y)-7.123))-(((x+y)+7.123)/((x/y)+7.123)))-((((x-y)/7.123)+((x/y)-7.123))+(((x/y)/7.123)+(x*(y-7.123)))))"
-"((((x-(y+7.123))*(x+(y-7.123)))*(((x+y)/7.123)+((x*y)-7.123)))*((((x+y)*7.123)-((x*y)/7.123))-(((x*y)*7.123)-(x/(y*7.123)))))"
-"((((x-(y-7.123))/((x+y)/7.123))/(((x+y)*7.123)-((x*y)/7.123)))/((((x+y)-7.123)*((x*y)*7.123))*(((x/y)+7.123)*(x/(y/7.123)))))"
-"((((x-(y/(z*w)))/(((x-y)*z)-w))/((((x+y)*z)-w)-((x+y)-(z*w))))/(((((x-y)*z)-w)*((x+y)-(z/w)))*(((x+y)-(z*w))+((x/y)+(z+w)))))"
-"((((x-(y/7.123))+((x+y)*7.123))+(((x+y)-7.123)*((x*y)*7.123)))+((((x+y)+7.123)/((x/y)+7.123))/(((x/y)-7.123)/(x*(y+7.123)))))"
-"((((x/(5.123*z))+(x-(5.123-z)))+((x-(5.123/z))+((x+5.123)*z)))+(((x-(5.123*z))-((x+5.123)-z))-(((x+5.123)+z)/((x/5.123)+z))))"
-"((((x/(5.123+z))*(x*(5.123/z)))*((x-(5.123+z))*(x+(5.123-z))))*(((x-(5.123-z))/((x+5.123)/z))/(((x+5.123)*z)-((x*5.123)/z))))"
-"((((x/(5.123-z))/(x-(5.123+z)))/((x-(5.123-z))/((x+5.123)/z)))/(((x-(5.123/z))+((x+5.123)*z))+(((x+5.123)-z)*((x*5.123)*z))))"
-"((((x/(5.123/z))-(x-(5.123/z)))-((x-(5.123*z))-((x+5.123)-z)))-(((x+(5.123*z))*((x+5.123)+z))*(((x-5.123)/z)+((x/5.123)-z))))"
-"((((x/(y*7.123))+(x-(y-7.123)))+((x-(y/7.123))+((x+y)*7.123)))+(((x-(y*7.123))-((x+y)-7.123))-(((x+y)+7.123)/((x/y)+7.123))))"
-"((((x/(y+(z*w)))+((x-y)/(z+w)))+(((x-y)*(z+w))*((x/y)*(z+w))))+((((x-y)/(z+w))/((x*y)/(z+w)))/(((x/y)*(z+w))-(x+((y/z)*w)))))"
-"((((x/(y+7.123))*(x*(y/7.123)))*((x-(y+7.123))*(x+(y-7.123))))*(((x-(y-7.123))/((x+y)/7.123))/(((x+y)*7.123)-((x*y)/7.123))))"
-"((((x/(y-(z*w)))-((x*y)-(z+w)))-(((x-y)/(z+w))/((x*y)/(z+w))))-((((x*y)-(z+w))+((x/y)/(z+w)))+(((x*y)/(z+w))*(x-((y+z)/w)))))"
-"((((x/(y-7.123))/(x-(y+7.123)))/((x-(y-7.123))/((x+y)/7.123)))/(((x-(y/7.123))+((x+y)*7.123))+(((x+y)-7.123)*((x*y)*7.123))))"
-"((((x/(y/7.123))-(x-(y/7.123)))-((x-(y*7.123))-((x+y)-7.123)))-(((x+(y*7.123))*((x+y)+7.123))*(((x-y)/7.123)+((x/y)-7.123))))"
-"((0.43*((((((((((((((((((((sin((a+a))-pi)/0.93)-pi)/2.65)+2.40)+pi)/b)+3.69)-b)+a)*a)*e)*2.99)+b)-0.38)+b)+a)-a)*a)-1.03))-b)"
-"((sin((b/((((cos(sin(((cos(tan(((((sin(cos((tan(((((a*e)+e)-1.16)*2.81))-a)))+a)+a)+b)+b)))-0.65)+0.86)))-a)+b)+b)*a)))*a)*e)"
-"((((a+(((((((((((((((((((2.46/a)+b)-a)*a)/3.46)+1.50)*2.67)*b)*0.61)*a)/a)*1.43)+a)*b)*e)*0.03)+1.91)+e)*0.57))-a)+3.13)-0.89)"
-"((a+(((((b+(a*((((((a/((((((((((((a-1.63)/3.60)-pi)+e)-pi)-a)+pi)-2.13)-a)+e)/a)*pi))-pi)+b)/3.14)+pi)-a)))*b)-a)+b)+0.22))+b)"
-"((cos(tan((((sin((b+cos((((((((((b+(((cos(tan((cos(sin((1.07*a)))-a)))+e)+e)/a))+e)/pi)+b)-b)+a)+a)*a)-b))))*b)+e)/e)))*pi)/e)"
-"(((((((((((((2.69/(((((((e*(((3.79/a)/pi)+b))+e)+0.54)/2.70)+1.45)-pi)+pi))+2.74)+pi)/b)/pi)+b)-b)+0.15)*pi)+2.75)/a)+3.11)/pi)"
-"(((((1.99-((((((((((b+((((((a-(((((2.33-pi)/b)+2.46)+b)-b))/pi)-b)*pi)/b)*pi))+0.42)/a)+e)/a)*pi)/a)+0.06)-b)*a))/pi)-pi)+e)-b)"
-"((2.72/((((e+(((((((((((((((((((((((2.18*pi)*a)*b)*a)-b)-a)-e)/b)+a)+pi)-e)-pi)+a)+b)/e)-b)+b)*e)+a)/e)-a)-b)-a))+b)/b)+pi))-a)"
-"((e+(((((((((pi+((((((((3.51+((((1.30-(0.35+2.88))/pi)+b)/e))*e)-2.31)/1.96)-0.04)*3.50)+b)/e))/a)+pi)-e)+a)*b)+a)-b)/e))*3.82)"
-"(cos(tan(cos((((((cos(sin(cos((a+cos((((((((((tan(((a+3.21)/a))/b)*e)+b)-b)*pi)*e)/0.12)+b)-a))))))/b)-0.27)-a)*pi)*a))))-3.85)"
-"(e*tan(sin((((b*((b/((((tan((e/((sin(tan(sin((((tan((b+sin(cos(a))))*a)/3.09)+b))))/1.03)*e)))-b)*pi)+b)*3.80))/a))+b)*3.81))))"
-"x+y+z/w+x+y+z*w+x+y-z/w-x+y-z*w+x+y*z/w*x+y*z*w-x+y/z+w+x+y/z/w+x+y/z*w-x-y+z/w*x-y+z*w*x-y-z/w-x-y-z*w+x-y*z/w+x-y*z*w-x-y/z/w"
-"x-y-z+w+x-y-z+w+x-y+z+w-x-y+z+w+x*y-z+w*x/y-z+w-x*y+z+w+x/y+z+w+x*y+z-w-x/y+z-w*x*y-z-w*x/y-z-w-x+y*z*w+x+y*z/w+x+y/z*w-x+y/z/w"
-"x-y/z*w*x+y*z-w-x-y*z-w+x*y*z-w*x/y*z-w-x+y/z-w*x-y/z-w*x*y/z-w-x/y/z-w+x*y+z*w+x*y-z*w-x*y+z/w+x*y-z/w*x/y+z/w-x/y-z/w+x/y-z*w"
-"x/y+z*w-x/y-z*w*x*y+z*w*x*y-z*w-x+y-z*w+x+y-z/w+x+y+z*w-x+y+z/w*x-y+z*w*x-y+z/w-x-y-z*w+x-y-z/w*x+y-z-w-x+y-z-w*x+y+z-w*x+y+z-w"
-"(((((((((((((((((((((((((b+e)+pi)-e)-b)*1.94)*b)+3.48)+b)+a)*pi)*a)/2.09)-a)-2.93)-b)-pi)-a)-3.49)/1.72)+pi)*0.76)-e)/pi)+a)+pi)"
-"(((((b+((((((((((((((2.12+(((((((pi+1.34)*a)+a)+0.36)+a)+b)-pi))-0.40)-pi)-e)+a)*a)*e)+1.74)+a)*pi)/b)+b)/a)+a))/e)*1.23)-pi)+a)"
-"((((sin((tan((tan(tan(tan((((((((tan((b+(((sin((b/((1.60*a)+b)))/e)*1.56)*a)))+1.64)/a)*b)-3.35)*pi)/a)/a))))+a))+b))+a)+b)/a)-b)"
-"((b+(((((((a-((((((((((((((1.13+((b*b)-b))-a)-e)*b)-1.52)*b)+pi)+e)*3.56)/1.80)+0.13)-1.36)/2.64)-b))/b)+0.95)+pi)/a)+1.29)/e))+a)"
-"cos((a-(sin((((pi-tan((tan((sin((((cos((((((((sin(cos((((b/b)*b)-b)))+b)-a)+b)-a)*e)/e)+e))+2.59)-pi)+pi))-e))+a)))/1.07)*e))*e)))"
-"((((((((((((((((((((((((((b/0.86)/b)+b)-b)+3.31)/3.15)+e)+b)*a)+b)/pi)-pi)/pi)*a)+b)/pi)/2.17)/2.58)+pi)+a)+3.44)-b)-a)/e)+b)+3.71)"
-"(((((((((((((((((((((((((a+(2.03/pi))*b)+b)*3.69)*a)-b)+a)+a)+a)/e)-a)-0.23)+a)+b)/a)+1.45)*0.86)*0.94)+e)+0.22)/3.49)+b)/pi)+b)/b)"
-"(((((((3.80/((((((a+(((((1.59/(((b*((((a-a)*pi)+a)*pi))/1.13)+0.65))*a)+2.86)*e)+b))+e)-a)*pi)/a)+0.85))+2.45)+a)+b)+3.26)/b)/3.78)"
-"((3.74*((b*(tan(sin((2.75-(((((((sin((((((tan((cos(((e*e)-pi))/pi))*2.93)-a)-e)+a)-a))*a)/0.96)/2.54)+e)*b)-e)/b))))+3.57))-pi))*a)"
-"((sin(((tan((((((tan(cos((pi*((tan(((3.80/((((((a+0.40)+a)-2.93)+1.03)/pi)/a))/a))-a)*pi))))+a)*pi)/1.13)+0.65)*a))+2.86)*e))+b)+e)"
-"cos((((((1.25/(a+(sin((((tan((((0.97+((((sin((cos(((pi*b)-a))+pi))/b)-a)+pi)*0.60))*1.41)/3.44))*a)+b)+pi))/2.85)))+2.45)+a)+a)+a))"
-"tan(sin(cos((tan(((tan((a+(((sin(((tan(((((((((b+(sin(a)-pi))+0.73)/a)*3.23)+a)+b)-e)*pi))+a)+pi))+b)+2.20)/1.13)))+b)*0.53))+e))))"
-"(cos(sin(((tan(((b/((((sin((tan(sin(cos((sin(cos((((tan((((b-pi)/2.60)+b))+b)+b)+0.04)))+e))))+b))+a)/3.36)-a)+a))*b))*0.10)*b)))+a)"
-"tan((cos(((b+cos(((((sin(((pi-cos(sin((tan((cos((((e*((cos(((cos(pi)+pi)/b))+e)+e))-e)-b))+a))*b))))-e))+0.08)*a)-0.05)+a)))/a))-a))"
-"((((((((((((((((((((((a+((((pi-b)+pi)-pi)+b))+a)+b)+0.98)+2.37)/a)-b)+a)*e)-1.17)*1.43)+1.80)/b)+a)+a)+b)+0.94)*pi)+e)+e)+1.64)-2.45)"
-"((((((((3.09+(((3.33+(((((((((((((((((e*a)/b)*a)-pi)-e)+a)+a)+b)-a)/pi)-1.40)*2.07)+a)*a)/b)+0.72)+a))*b)-b))+a)/a)+e)/a)*0.56)/a)-b)"
-"(((((a*(((((((((((((pi-(((((((((b+a)-2.28)*a)*e)/e)-pi)+b)+1.65)+a))/1.22)/b)+a)/b)+b)*e)*a)/3.43)+a)+2.97)+b)+1.24))/pi)/2.21)*b)/a)"
-"((e+cos((((((a/tan((cos(tan(((pi*((2.39+(e/tan(((((a+(((cos(sin((a+b)))+pi)-e)*b))+e)+a)*e))))/2.78))*b)))/pi)))+pi)+e)/e)+0.80)))/b)"
-"cos(((pi+((a-tan(((b/(((2.38-((sin((a*(b+tan((e+((sin(cos((((tan(((b+e)/b))/a)+pi)+2.90)))*b)+1.85))))))-e)+b))+e)+a))/e)))/pi))+pi))"
-"sin(sin((((((a+(3.45-((((((cos((tan((((sin(tan(((((0.75+a)/e)+e)+b)))+a)*b)+0.89))-b))+a)+a)-pi)/1.44)+e)+1.82)))+e)-1.77)-a)*3.33)))"
-"(((((((((((((((a+((b/(((e/((((((((b+pi)/3.15)*pi)/a)+e)+2.71)+a)/b))*b)/b))+pi))+0.18)/a)+a)+a)+b)*b)-3.96)-0.14)+b)*3.50)-b)+a)/e)*b)"
-"(((0.44+(((tan((((b+(cos(((((sin(((((tan((cos((1.59*1.71))+b))+b)-0.34)+b)-2.95))*e)-a)*3.89)-1.07))+pi))*a)+2.54))*b)*0.50)*b))*b)/a)"
-"((tan(((tan(tan((cos(sin((tan(((((tan(sin((((((0.91+(cos((2.72+1.16))*b))+pi)+a)+2.90)*b)))/a)+b)/b)*e))*2.08)))-e)))*3.02)+pi))/a)-a)"
-"(e-tan((((((((((((((((sin((a-(((2.21+(cos((((a/pi)-e)-pi))-3.45))+b)+b)))/e)/b)/1.89)/pi)+b)*pi)/a)-e)+0.27)/b)+2.31)+2.81)+e)+b)*a)))"
-"(sin(((cos((((((cos(((((0.54/sin((((tan((((((((a+a)-b)+b)+pi)+b)-pi)/b))+b)*b)+3.07)))-1.27)-0.49)-2.23))/a)+b)+a)+b)*b))/1.63)-a))/b)"
-"((((((((((((((((a-(((((((b-(((pi-((3.41-b)-pi))/b)*pi))/1.06)/a)-a)*1.15)*a)/pi))+b)+b)*pi)-a)-3.92)+b)+b)/b)*a)+3.07)+a)-b)-pi)/pi)*b)"
-"(((a+(((((a+((((((((((((((((((1.84-(3.61/b))-a)-b)+0.84)-a)+a)*a)-b)/e)-2.63)*a)*pi)*0.70)+a)/a)/a)+e)+a))-pi)-2.55)-a)-0.55))+0.05)/b)"
-"(pi*((((((((((((((((((((((((((1.96+1.54)+1.47)+a)*a)-b)+1.70)+3.28)+b)+b)-b)/b)/b)-0.26)-pi)+pi)/e)+a)/3.48)+pi)-b)-pi)-b)+a)+a)/e)*b))"
-"((((((((((0.75+(((3.86+((a/(((((e*((((a-((e/b)+b))/pi)+a)/3.71))*1.10)+0.38)-e)+a))-2.56))+0.78)*a))-b)-a)+b)+1.98)/b)+2.69)+b)+e)-1.90)"
-"(pi+(a+(tan((sin((((sin((cos(((a+((((((tan(sin(((sin(((a-cos(tan(a)))-e))/b)/b)))/a)+a)-a)/e)-pi)/e))-b))+a))*1.23)*3.86)+pi))+b))+pi)))"
-"((sin((0.45-(cos((((cos(((((cos((((tan(((0.27*((cos(((b+(b/a))*b))+e)-a))+a))-a)+1.36)/2.15))*a)*0.62)+pi)+b))/e)*b)/2.76))+3.55)))/a)+a)"
-"(1.95/(((b-(sin((((((cos((e/((0.35+(tan((sin((b-sin(((sin(((tan(3.04)/pi)+a))-pi)/pi))))*0.10))+a))/0.97)))+a)+pi)-e)+b)/e))+a))+pi)+pi))"
-"sin((tan((a*(((((((b/((sin((b-((cos((sin((((sin((((((b/pi)+b)/b)+b)+a))+pi)/pi)+a))/b))/pi)+1.24)))+0.12)*b))+a)+0.27)+pi)*a)+b)+b)))/a))"
-"(((((((((1.57/((((((((((((((pi/((3.22*((b+b)*a))*b))+pi)+pi)*3.95)+b)-b)/b)+e)+a)+a)+b)-3.33)/b)+a))*b)/pi)+e)+1.46)/0.09)*2.78)/pi)/3.85)"
-"((((b-(((((1.88+(((e-(2.19*(((((((pi*(((((((a+pi)/b)/pi)/b)/a)+3.33)/a))-b)/a)*pi)+a)/e)*pi)))-a)+b))*0.55)+b)-1.99)*3.57))+0.28)+e)-1.31)"
-"(((a+(((pi+sin(((cos((((((((2.27/(sin(cos((((tan(((tan(((b/b)+3.73))*a)*3.17))*b)*pi)*b)))+e))-pi)-2.06)/b)-e)/a)+e))/b)+a)))/b)+a))*e)*a)"
-"((((((((((((((((((((a*(((((b/(((((b-3.86)-pi)+pi)+pi)-3.94))/b)+pi)+2.51)/pi))+b)+1.74)+b)-b)/e)+pi)+b)+b)/b)+e)*b)+b)+a)+a)+a)/b)+b)+b)-a)"
-"((((((e+(((((((e-(((((b+((((((((e+(2.83+((b*a)*a)))+b)+a)-pi)+3.91)-e)-e)*b))+b)*a)-b)/0.83))+pi)-a)-0.27)+pi)/1.95)+1.93))*e)+b)+b)+a)-pi)"
-"(sin(((((((a*((cos((((((((((a+(cos((((a+sin(((e+0.21)-b)))/0.25)/0.96))*e))-e)/a)+e)+b)/b)*b)/pi)-b))+0.93)/3.90))+0.67)+a)*a)*e)/e))+1.67)"
-"((((((((((((((((((((((((((((a/a)-b)+b)-b)/3.07)-b)*0.79)/b)*b)/2.94)+0.76)-0.04)*0.60)/a)+a)+b)/1.05)-a)+b)/a)/e)-2.16)+b)+e)*a)*e)+e)*0.87)"
-"(((((((((1.43-((((((((((((((b-((((b+b)-b)/pi)/b))+pi)-pi)+pi)*b)+1.34)-a)/b)*3.87)+1.81)/2.91)+a)-b)+3.62))-e)+b)+3.03)/a)+0.68)+a)+1.51)*e)"
-"(((((b+((((((((((((((((((((((a/pi)/a)/a)/0.82)*e)-e)*1.67)*pi)+pi)-a)-b)+e)-a)+pi)+2.45)-b)+2.72)+3.72)+a)*b)/3.78)+b))+0.94)-0.47)/1.03)*b)"
-"(((((tan(((((tan((sin((((((pi*((b-(sin(((((pi*e)*0.86)-pi)+3.04))/a))+a))+e)+3.81)*e)+b))+a))+pi)+a)-3.18)*2.67))/b)-1.90)+2.89)+1.25)+3.93)"
-"((((((((((b+(((((((((((((((((0.75*pi)+2.45)/pi)+b)-e)+3.63)*pi)/2.47)-b)-2.80)-a)-b)*e)+pi)/b)+b)-2.78))+e)/2.20)-a)*pi)/pi)-b)+1.99)-pi)-pi)"
-"((((pi*((((((((3.85/(((((((((((((((((b+a)/pi)+pi)-a)+a)/b)+a)-0.68)/b)/3.05)/a)+a)+3.72)*a)-e)*a)+e))-e)+a)/1.96)-e)*a)-b)-b))+0.81)-e)/2.79)"
-"(a+cos((((pi-(cos((((((cos((((2.07/((((tan(tan((sin((sin(tan(((b*2.18)-pi)))+a))*pi)))+pi)-b)/a)+a))+a)/e))+2.96)/a)+1.92)*a)-a))-e))+b)/b)))"
-"cos(((cos(((cos(tan(sin(sin((((((((((sin(cos((2.38+(((((pi-a)*2.96)-a)/e)+b))))/2.60)+3.41)+pi)+b)/a)/a)-1.86)*3.57)+e)))))/pi)-2.41))+b)/a))"
-"cos(((tan(((tan((b+(b+(((sin(((a+cos(cos((tan(tan((2.70+(0.15*(((2.37-cos(cos(b)))/b)/a)))))/a))))-1.15))+b)+1.96)+pi))))*1.40)+a))*1.62)+b))"
-"sin(((pi-((tan((cos((((((cos((sin(((tan((((((pi+(((3.17*(a*3.32))+pi)*b))/b)+a)+a)*3.87))+a)-2.05))*e))-b)-b)+b)+b)/0.96))+b))+pi)+1.89))+b))"
-"((b+((((((((((((a+(b-((((e-(pi*(((((((((b-b)+pi)-pi)-b)*1.77)*2.53)*3.35)+a)+a)))*e)+pi)+b)))-b)+b)-a)+pi)+pi)/a)+a)*1.31)/1.16)*a)-pi))*3.69)"
-"(((((((((((((((((((((((((((((((3.05*2.33)-e)+a)-a)*1.81)-2.57)+a)*b)/2.89)/e)/a)*pi)+pi)+b)-a)*pi)-b)/a)/b)/b)/e)+b)/b)+b)-b)+e)*b)/b)/b)-a)-b)"
-"((((1.59/((((((3.51-((((((((((((((((((1.99-a)-a)+a)*b)+a)/e)+2.74)/pi)*e)*3.74)+e)+e)/3.87)*3.78)+e)/b)/b)*b))-0.12)*a)-2.37)+pi)*a))+a)+e)+pi)"
-"cos((sin(sin(((sin((((((((((sin((((e+sin(((pi*tan((((((tan(2.85)+e)+0.96)/a)-b)*a)))+b)))+a)*a))+b)/1.65)/e)+b)+e)-b)+1.55)*pi)/a))+a)+a)))-b))"
-"tan((((1.95-((pi/tan((((3.37+(a-((((sin((sin(sin(((tan(tan((((a/(((1.01+1.22)*b)/b))-a)+a)))+1.55)+b)))*2.05))-b)+b)+b)-a)))/e)+a)))+b))+e)-a))"
-"(((((((b+(((((((b+(((((((a-(((((e+(((((a/b)*b)+b)+b)+b))+3.15)-a)*b)/e))+b)/e)*pi)-a)+b)/a))*2.28)+b)-e)+1.90)+e)+a))-a)-2.81)+a)-0.75)+e)-3.43)"
-"((((b-((((((((e+((((((((((((((2.28*(((0.51/((pi*a)*e))+a)-b))+pi)+b)+pi)*b)*b)*1.49)/b)*e)/b)-e)*a)/b)/b))*b)/e)-0.66)+e)+b)*e)+e))+pi)-a)*1.78)"
-"(0.70/((a+tan((((sin(((cos(((pi*(((((b+(((sin(((((((a+pi)+3.07)+b)+3.52)-0.55)*a))-b)-1.65)+a))-1.92)+b)/2.80)+a))+0.20))+a)+a))/pi)+b)/a)))/a))"
-"(b/(cos(((((((a-((tan(((((b+sin(cos((cos((tan(tan(((cos((0.30-(((b+a)+pi)+a)))+pi)+a)))*a))+1.02))))/a)/1.09)/b))-a)/b))+b)-0.98)*e)/a)/a))-pi))"
-"((((((((((((((((((2.05*((((((b+((((pi*b)+b)*a)-3.89))+a)+0.31)*pi)-2.86)+a))*0.74)/e)/1.93)+a)-e)+b)/3.44)*b)*0.50)*2.06)/b)+e)-e)*a)+2.28)/a)/e)"
-"(((((((a+(((((b+((b+(((b+((b+((((((((((a-b)+b)+1.54)+3.69)*0.85)+0.54)+a)*a)-b)-1.01))+a))/pi)-b))*a))*a)/a)+0.23)-3.29))/2.04)*e)+1.04)/a)+b)-a)"
-"(b*(((b+(((((((((((((((((((((((((((pi+a)/e)+e)+b)/pi)-pi)/a)+0.85)/b)*3.94)/pi)-a)*pi)-a)-a)+pi)*pi)+b)*a)+a)+b)+pi)-a)-2.49)+a)-0.28)/a))-b)+b))"
-"((((((((((((((((((((e+(((e/(a+(((((b+b)*e)+b)*pi)*3.48)))-b)-3.41))-a)/2.12)*e)+e)-b)+a)*3.00)-a)/a)-pi)-1.11)-a)-a)+2.44)+0.04)-3.79)-a)+2.01)-a)"
-"(((((((((((((((((1.17-(pi-(b-((((((((((1.38+b)+a)+b)+e)-a)+0.89)+a)*2.38)*pi)+a))))-b)-a)+b)-b)/a)+pi)/4.00)-a)/2.66)/b)*b)+pi)+2.29)+2.05)*pi)*a)"
-"(((((2.17-(pi*((((((((((((((((((((a/(((((b+b)-e)*b)*a)-b))/a)+b)+a)+a)/1.88)-3.41)-e)*1.51)*a)/e)-a)+b)/1.83)/a)-pi)*a)/1.31)+b)+b)))*e)/e)*a)*pi)"
-"(((b-((((((2.17+((((((((((((((((((b/(((a+0.63)/b)+pi))-pi)/a)*0.11)-e)+a)/a)+3.51)+pi)*e)+e)+pi)-3.04)/1.94)-a)*a)/a)-a))-e)/e)/b)*a)/0.27))+e)/b)"
-"((1.34+((((a-((((((((a-(((((((1.68+(((((((((e+e)+e)+0.82)+a)+e)+e)+b)+b)/a))*a)/a)-a)+e)-e)/1.63))*0.14)*a)+a)*a)/3.72)-0.13)*b))-pi)-3.00)-a))-b)"
-"(pi-sin(((cos(tan(((2.73+cos(tan(((((((((((((((sin(sin((((b+b)+a)-b)))-a)+pi)+b)*3.31)+3.68)/b)-3.28)+a)-b)*a)-1.77)+a)/e)*2.39))))+b)))+a)*1.51)))"
-"tan((3.80*cos(((((((2.52-(sin((a+((sin((tan((((b-(1.24*((cos((((((b-0.38)*a)+a)+0.73)-a))-b)+a)))+a)*pi))+1.20))+b)/a)))-b))*pi)+0.37)+a)-pi)*b))))"
-"tan(tan(((((tan((((((((tan(cos(cos((((e-((((((cos((((b+(e*a))-a)/pi))+b)/b)/b)+0.47)-b)*b))-b)-pi))))/1.94)+a)/a)-pi)*3.99)+0.31)+e))*a)+a)+b)+b)))"
-"(a+(((((e/((((((2.42+((((e*(1.24+((((((2.78/((((3.53+(a-((b/b)*b)))*b)*a)*3.14))+a)*b)+b)-1.75)+pi)))*b)+e)-pi))+0.87)*e)+pi)+a)*b))*1.21)+a)-a)+b))"
-"((((((((((((((((((((((((2.14+((((a+((3.62-pi)+2.46))*2.18)+b)-a))+e)+0.96)+a)+pi)*2.09)*a)*e)+a)/2.72)/a)+a)/e)+b)*a)+a)/a)+a)*b)+0.28)+b)/pi)*a)+pi)"
-"(((((((((((pi+((e+(a*((((a-(((((((((((pi/pi)/0.75)-pi)-1.56)+b)/1.40)/a)/a)*a)*a)*pi))-3.24)+a)*b)))+3.43))-0.66)/a)+1.42)*0.01)-0.06)/a)-b)-a)*e)+a)"
-"((((((((((b+(((((((e+(((3.30+(b*(((1.54*((3.80*(pi+a))+1.89))/0.32)/a)))+3.98)-b))-b)/b)-b)-1.91)-3.06)+1.71))/e)+b)/1.90)+0.75)-a)-a)+0.82)+0.26)*b)"
-"(((a*((((a+(b+(((b+((tan((((b*(b+sin(((((a/(((b+tan((tan((((cos(a)*1.25)*a)+pi))-pi)))-b)/b))+b)*b)+e))))+a)-a))+b)*a))*e)*2.97)))*b)*b)/pi))/pi)-pi)"
-"((tan((tan(tan((((((((((((tan(((pi-(a-(tan(tan((e+(tan(((3.13+1.42)+a))+b))))+a)))+0.03))+b)+pi)+a)*pi)-pi)-1.61)*e)-a)*pi)*pi)*1.59)))/pi))-3.30)+b)"
-"((3.18-(tan(((cos((pi-((b-(2.13-((((((((cos(((pi+((sin(((tan(3.97)+0.11)/0.68))-b)/a))+a))*b)+1.61)*e)+0.01)/b)*b)-1.36)/a)))+1.11)))-b)-b))*a))-1.54)"
-"(3.71/((((tan(sin((sin((cos((((a+((((((((cos((((cos(sin(cos(b)))+b)-2.53)+3.33))*pi)-pi)+1.78)+2.02)*pi)-b)-2.86)+b))+a)*e))/e))+b)))+3.13)*a)*e)/pi))"
-"(b+((sin((a+sin((((tan(((tan((((cos((tan((a*(2.30/((((cos(cos((((a+b)+0.08)-a)))/2.02)-b)-2.19)/b))))/a))-b)*e)/pi))*b)+0.53))/a)+1.98)+pi))))+pi)+a))"
-"(cos(((tan(sin(((tan(tan((cos(cos(((b+(tan(cos(((sin(((((sin(cos((((0.05/3.18)/0.05)-b)))+e)+a)/pi)-3.10))-pi)+a)))/b))+a)))*a)))-1.53)-b)))+e)+a))*a)"
-"(((2.41-(cos(((((a*((((((1.25-((((((tan(((((b+tan((b/((((a*2.06)-a)*b)/b))))*a)+a)+1.26))+a)*b)-e)/b)-b)+a))-e)+a)/3.71)*3.27)*pi))-e)*e)/b))/b))/e)+b)"
-"(((tan(cos(((((tan((((pi*(b+cos(tan((((((((((((((((e-2.36)+b)-b)+0.93)+3.52)+a)*a)+pi)/3.61)/a)+e)+a)-pi)/1.95)+b)))))+a)/a))+a)/b)-b)+a)))/2.99)+b)-e)"
-"(pi*(((((((((((((((b+(3.48-((((((((2.17*((((b*e)-1.20)-pi)/b))*b)/0.59)-e)+1.70)+pi)/b)+pi)))*e)-b)/e)/pi)*0.61)+pi)/2.92)*pi)-b)*a)-2.53)+b)+1.09)+e))"
-"((cos(sin(((b-(cos(((b*(1.36*tan(((((cos((a*tan((pi/(e+(a/((((b+((cos((((b+e)*3.56)+b))+pi)-2.92))/a)/pi)+3.68)))))))*b)/e)+b)+b))))-b))*a))*a)))*pi)+e)"
-"((a+(tan(((3.44/(((b-(tan(((((((((2.31/((tan((pi/(cos((cos(((((((3.76*b)*pi)*b)/a)+e)*pi))-b))+a)))/e)*b))/a)/b)+a)-a)*b)+a)/a))/b))+e)*b))/a))+b))*3.78)"
-"((b/(tan((b+(tan((((b-tan(((((((cos((((cos(sin(((((sin(tan(((a/b)+3.58)))/a)+b)+2.69)+0.06)))+a)+a)+b))-pi)*3.68)+pi)+a)+b)+3.89)))/e)/e))/2.72)))*b))*b)"
-"tan(sin((((tan((((sin(cos((((tan((a+tan((((3.88+(3.63/(tan(sin((((a+(((a+b)/b)-a))/1.71)/1.69)))*0.71)))-pi)*b))))+3.90)/pi)-b)))*b)+b)+b))+1.09)+b)-a)))"
-"((a-cos((((a+tan((tan((cos(((((((((((1.47+((((((tan(tan((e-a)))/1.27)*b)*a)-0.10)*1.54)-pi))+0.35)*1.97)+pi)+b)/e)*b)+0.09)-pi)/b))-1.73))+a)))+b)/a)))+e)"
-"((((cos(tan(((a*cos((0.20+cos((2.66+tan((cos(((e*cos((1.36+((cos((((tan((0.66/(((1.42*0.01)-0.06)/a)))-b)-a)*e))+a)/b))))+e))-b)))))))/pi)))+e)+b)*b)+1.01)"
-"(b-(((((sin((sin(((0.89+tan((cos((((pi*(((e+((b/(a/((sin(cos(cos((tan(((1.81+pi)*a))/1.04))))*e)+2.05)))+a))+e)*b))+e)/a))-b)))+b))*0.48))+b)/a)*a)*pi)-a))"
-"(((tan(((tan(tan(((3.48+(sin(((((((tan((e+(((a+(((a-((cos((1.93*b))/3.31)*1.39))+b)-0.84))-b)-0.58)))+pi)+3.05)*e)+3.85)/b)+e))+b))*pi)))+0.26)*a))+e)+a)-e)"
-"((sin(cos((cos(((((((((a*((((sin(cos((((((sin((((sin(e)/1.51)+a)+1.34))*pi)+a)*3.00)-1.64)*e)))/a)*2.85)+b)*a))+b)*b)+2.44)+b)*0.18)/b)-b))/3.69)))-1.10)*b)"
-"(cos((e*cos((b-cos((sin((pi/tan(tan(((((((((((b+(((3.52+((cos(((((b*3.66)-a)/2.90)+a))*b)+0.35))*1.02)/1.43))*b)/b)*1.64)-pi)-a)+a)+a)-a)+b)))))-a))))))*pi)"
-"(e+cos(sin((cos(((((((sin((tan((cos((((sin(cos(tan(cos(cos(((1.88-((((((1.96/pi)+e)/e)/b)-b)+a))+a))))))/pi)*a)/e))*b))-a))+b)/e)*b)+2.12)*3.30)*pi))*pi))))"
-"((((((3.123*y)*z)-w)/((3.123+y)+(z*w)))/(((3.123+y)-(z/w))-((3.123*y)+(z-w))))/((((3.123+y)+(z*w))*((3.123/y)+(z-w)))*(((3.123*y)+(z-w))+((3.123/y)*(z-w)))))"
-"((((((3.123*y)/z)-w)/((3.123-y)-(z*w)))/(((3.123-y)+(z/w))-((3.123+y)*(z*w))))/((((3.123-y)-(z*w))*((3.123+y)*(z/w)))*(((3.123+y)*(z*w))+(3.123-(y/(z*w))))))"
-"((((((3.123+y)*z)-w)-((3.123+y)-(z*w)))-((3.123*(y-(z*w)))/((3.123*y)+(z+w))))-((((3.123+y)-(z*w))+((3.123/y)+(z+w)))+(((3.123*y)+(z+w))*((3.123/y)/(z-w)))))"
-"((((((3.123+y)/z)-w)-((3.123-y)+(z*w)))-(((3.123+y)+(z/w))/((3.123*y)-(z-w))))-((((3.123-y)+(z*w))+((3.123/y)-(z-w)))+(((3.123*y)-(z-w))*(3.123-(y*(z/w))))))"
-"((((((3.123-y)*z)-w)*((3.123+y)-(z/w)))*(((3.123+y)-(z*w))+((3.123/y)+(z+w))))*((((3.123+y)-(z/w))-((3.123*y)+(z-w)))-(((3.123/y)+(z+w))/((3.123*y)*(z-w)))))"
-"((((((3.123-y)/z)-w)*((3.123-y)+(z/w)))*(((3.123-y)+(z*w))+((3.123/y)-(z-w))))*((((3.123-y)+(z/w))-((3.123+y)*(z*w)))-(((3.123/y)-(z-w))/(3.123+(y/(z*w))))))"
-"((((((3.123/y)*z)-w)+((3.123+y)+(z/w)))+(((3.123+y)+(z*w))*((3.123/y)+(z-w))))+((((3.123+y)+(z/w))/((3.123*y)-(z-w)))/(((3.123/y)+(z-w))-(3.123+(y*(z/w))))))"
-"((((((3.123/y)/z)-w)+((3.123-y)-(z/w)))+(((3.123-y)-(z*w))*((3.123+y)*(z/w))))+((((3.123-y)-(z/w))/((3.123+y)/(z*w)))/(((3.123+y)*(z/w))-(3.123+((y+z)/w)))))"
-"((((((x*5.123)*z)-w)/((x+5.123)+(z*w)))/(((x+5.123)-(z/w))-((x*5.123)+(z-w))))/((((x+5.123)+(z*w))*((x/5.123)+(z-w)))*(((x*5.123)+(z-w))+((x/5.123)*(z-w)))))"
-"((((((x*5.123)/z)-w)/((x-5.123)-(z*w)))/(((x-5.123)+(z/w))-((x+5.123)*(z*w))))/((((x-5.123)-(z*w))*((x+5.123)*(z/w)))*(((x+5.123)*(z*w))+(x-(5.123/(z*w))))))"
-"((((((x*y)*7.123)-w)/((x+y)+(7.123*w)))/(((x+y)-(7.123/w))-((x*y)+(7.123-w))))/((((x+y)+(7.123*w))*((x/y)+(7.123-w)))*(((x*y)+(7.123-w))+((x/y)*(7.123-w)))))"
-"((((((x*y)*z)-9.123)/((x+y)+(z*9.123)))/(((x+y)-(z/9.123))-((x*y)+(z-9.123))))/((((x+y)+(z*9.123))*((x/y)+(z-9.123)))*(((x*y)+(z-9.123))+((x/y)*(z-9.123)))))"
-"((((((x*y)/7.123)-w)/((x-y)-(7.123*w)))/(((x-y)+(7.123/w))-((x+y)*(7.123*w))))/((((x-y)-(7.123*w))*((x+y)*(7.123/w)))*(((x+y)*(7.123*w))+(x-(y/(7.123*w))))))"
-"((((((x*y)/z)-9.123)/((x-y)-(z*9.123)))/(((x-y)+(z/9.123))-((x+y)*(z*9.123))))/((((x-y)-(z*9.123))*((x+y)*(z/9.123)))*(((x+y)*(z*9.123))+(x-(y/(z*9.123))))))"
-"((((((x+5.123)*z)-w)-((x+5.123)-(z*w)))-((x*(5.123-(z*w)))/((x*5.123)+(z+w))))-((((x+5.123)-(z*w))+((x/5.123)+(z+w)))+(((x*5.123)+(z+w))*((x/5.123)/(z-w)))))"
-"((((((x+5.123)/z)-w)-((x-5.123)+(z*w)))-(((x+5.123)+(z/w))/((x*5.123)-(z-w))))-((((x-5.123)+(z*w))+((x/5.123)-(z-w)))+(((x*5.123)-(z-w))*(x-(5.123*(z/w))))))"
-"((((((x+y)*7.123)-w)-((x+y)-(7.123*w)))-((x*(y-(7.123*w)))/((x*y)+(7.123+w))))-((((x+y)-(7.123*w))+((x/y)+(7.123+w)))+(((x*y)+(7.123+w))*((x/y)/(7.123-w)))))"
-"((((((x+y)*z)-9.123)-((x+y)-(z*9.123)))-((x*(y-(z*9.123)))/((x*y)+(z+9.123))))-((((x+y)-(z*9.123))+((x/y)+(z+9.123)))+(((x*y)+(z+9.123))*((x/y)/(z-9.123)))))"
-"((((((x+y)/7.123)-w)-((x-y)+(7.123*w)))-(((x+y)+(7.123/w))/((x*y)-(7.123-w))))-((((x-y)+(7.123*w))+((x/y)-(7.123-w)))+(((x*y)-(7.123-w))*(x-(y*(7.123/w))))))"
-"((((((x+y)/z)-9.123)-((x-y)+(z*9.123)))-(((x+y)+(z/9.123))/((x*y)-(z-9.123))))-((((x-y)+(z*9.123))+((x/y)-(z-9.123)))+(((x*y)-(z-9.123))*(x-(y*(z/9.123))))))"
-"((((((x-5.123)*z)-w)*((x+5.123)-(z/w)))*(((x+5.123)-(z*w))+((x/5.123)+(z+w))))*((((x+5.123)-(z/w))-((x*5.123)+(z-w)))-(((x/5.123)+(z+w))/((x*5.123)*(z-w)))))"
-"((((((x-5.123)/z)-w)*((x-5.123)+(z/w)))*(((x-5.123)+(z*w))+((x/5.123)-(z-w))))*((((x-5.123)+(z/w))-((x+5.123)*(z*w)))-(((x/5.123)-(z-w))/(x+(5.123/(z*w))))))"
-"((((((x-y)*7.123)-w)*((x+y)-(7.123/w)))*(((x+y)-(7.123*w))+((x/y)+(7.123+w))))*((((x+y)-(7.123/w))-((x*y)+(7.123-w)))-(((x/y)+(7.123+w))/((x*y)*(7.123-w)))))"
-"((((((x-y)*z)-9.123)*((x+y)-(z/9.123)))*(((x+y)-(z*9.123))+((x/y)+(z+9.123))))*((((x+y)-(z/9.123))-((x*y)+(z-9.123)))-(((x/y)+(z+9.123))/((x*y)*(z-9.123)))))"
-"((((((x-y)/7.123)-w)*((x-y)+(7.123/w)))*(((x-y)+(7.123*w))+((x/y)-(7.123-w))))*((((x-y)+(7.123/w))-((x+y)*(7.123*w)))-(((x/y)-(7.123-w))/(x+(y/(7.123*w))))))"
-"((((((x-y)/z)-9.123)*((x-y)+(z/9.123)))*(((x-y)+(z*9.123))+((x/y)-(z-9.123))))*((((x-y)+(z/9.123))-((x+y)*(z*9.123)))-(((x/y)-(z-9.123))/(x+(y/(z*9.123))))))"
-"((((((x/5.123)*z)-w)+((x+5.123)+(z/w)))+(((x+5.123)+(z*w))*((x/5.123)+(z-w))))+((((x+5.123)+(z/w))/((x*5.123)-(z-w)))/(((x/5.123)+(z-w))-(x+(5.123*(z/w))))))"
-"((((((x/5.123)/z)-w)+((x-5.123)-(z/w)))+(((x-5.123)-(z*w))*((x+5.123)*(z/w))))+((((x-5.123)-(z/w))/((x+5.123)/(z*w)))/(((x+5.123)*(z/w))-(x+((5.123+z)/w)))))"
-"((((((x/y)*7.123)-w)+((x+y)+(7.123/w)))+(((x+y)+(7.123*w))*((x/y)+(7.123-w))))+((((x+y)+(7.123/w))/((x*y)-(7.123-w)))/(((x/y)+(7.123-w))-(x+(y*(7.123/w))))))"
-"((((((x/y)*z)-9.123)+((x+y)+(z/9.123)))+(((x+y)+(z*9.123))*((x/y)+(z-9.123))))+((((x+y)+(z/9.123))/((x*y)-(z-9.123)))/(((x/y)+(z-9.123))-(x+(y*(z/9.123))))))"
-"((((((x/y)/7.123)-w)+((x-y)-(7.123/w)))+(((x-y)-(7.123*w))*((x+y)*(7.123/w))))+((((x-y)-(7.123/w))/((x+y)/(7.123*w)))/(((x+y)*(7.123/w))-(x+((y+7.123)/w)))))"
-"((((((x/y)/z)-9.123)+((x-y)-(z/9.123)))+(((x-y)-(z*9.123))*((x+y)*(z/9.123))))+((((x-y)-(z/9.123))/((x+y)/(z*9.123)))/(((x+y)*(z/9.123))-(x+((y+z)/9.123)))))"
-"(((((3.123*y)*(z+w))+(3.123+((y/z)/w)))+((3.123+((y/z)+w))*((3.123*y)+(z*w))))+(((3.123+((y/z)/w))/((3.123*y)-(z*w)))/(((3.123*y)+(z*w))-((3.123+y)-(z-w)))))"
-"(((((3.123*y)*(z-w))*(3.123-((y*z)/w)))*((3.123-((y-z)*w))+((3.123/y)-(z*w))))*(((3.123-((y*z)/w))-(3.123/(y+(z*w))))-(((3.123/y)-(z*w))/((3.123-y)*(z+w)))))"
-"(((((3.123*y)+(z*w))-((3.123+y)-(z-w)))-(((3.123-y)-(z/w))/((3.123+y)/(z*w))))-((((3.123+y)-(z-w))+((3.123+y)/(z/w)))+(((3.123+y)/(z*w))*(3.123+((y+z)*w)))))"
-"(((((3.123*y)+(z+w))*((3.123/y)/(z-w)))*(((3.123*y)/(z-w))+(3.123-((y-z)/w))))*((((3.123/y)/(z-w))-(3.123-((y-z)*w)))-((3.123-((y-z)/w))/((3.123/y)-(z/w)))))"
-"(((((3.123*y)+(z-w))+((3.123/y)*(z-w)))+(((3.123*y)*(z-w))*(3.123-((y*z)/w))))+((((3.123/y)*(z-w))/(3.123-((y*z)*w)))/((3.123-((y*z)/w))-(3.123/(y+(z*w))))))"
-"(((((3.123*y)+(z/w))/((3.123+y)*(z-w)))/(((3.123+y)+(z-w))-((3.123-y)/(z*w))))/((((3.123+y)*(z-w))*((3.123-y)/(z/w)))*(((3.123-y)/(z*w))+(3.123+((y-z)*w)))))"
-"(((((3.123*y)-(z*w))*((3.123+y)+(z-w)))*(((3.123+y)-(z-w))+((3.123+y)/(z/w))))*((((3.123+y)+(z-w))-((3.123-y)/(z*w)))-(((3.123+y)/(z/w))/(3.123+((y-z)/w)))))"
-"(((((3.123*y)-(z+w))+((3.123/y)/(z+w)))+(((3.123*y)/(z+w))*(3.123-((y+z)/w))))+((((3.123/y)/(z+w))/(3.123-((y+z)*w)))/((3.123-((y+z)/w))-((3.123*y)-(z/w)))))"
-"(((((3.123*y)-(z-w))*(3.123-(y*(z/w))))*((3.123+(y*(z/w)))+(3.123-((y/z)/w))))*(((3.123-(y*(z/w)))-(3.123-((y/z)*w)))-((3.123-((y/z)/w))/(3.123*(y+(z*w))))))"
-"(((((3.123*y)-(z/w))+((3.123+y)/(z-w)))+(((3.123+y)*(z-w))*((3.123-y)/(z/w))))+((((3.123+y)/(z-w))/((3.123-y)*(z*w)))/(((3.123-y)/(z/w))-(3.123+((y*z)/w)))))"
-"(((((3.123*y)/(z+w))*(3.123-((y+z)/w)))*((3.123+((y/z)*w))+((3.123*y)+(z/w))))*(((3.123-((y+z)/w))-((3.123*y)-(z/w)))-(((3.123*y)+(z/w))/((3.123+y)*(z-w)))))"
-"(((((3.123*y)/(z-w))+(3.123-((y-z)/w)))+((3.123-((y+z)*w))*((3.123/y)+(z/w))))+(((3.123-((y-z)/w))/((3.123/y)-(z/w)))/(((3.123/y)+(z/w))-((3.123-y)-(z+w)))))"
-"(((((3.123+y)*(z*w))+(3.123-(y/(z*w))))+((3.123+(y/(z*w)))*(((3.123+y)*z)-w)))+(((3.123-(y/(z*w)))/(((3.123-y)*z)-w))/((((3.123+y)*z)-w)-((3.123+y)-(z*w)))))"
-"(((((3.123+y)*(z-w))*((3.123-y)/(z/w)))*(((3.123-y)/(z*w))+(3.123+((y-z)*w))))*((((3.123-y)/(z/w))-(3.123+((y*z)/w)))-((3.123+((y-z)*w))/(((3.123-y)/z)-w))))"
-"(((((3.123+y)*(z/w))-(3.123+((y+z)/w)))-((3.123-(y/(z*w)))/(((3.123-y)*z)-w)))-(((3.123+((y+z)/w))+(((3.123*y)*z)-w))+((((3.123-y)*z)-w)*((3.123+y)-(z/w)))))"
-"(((((3.123+y)+(z*w))*((3.123/y)+(z-w)))*(((3.123*y)+(z-w))+((3.123/y)*(z-w))))*((((3.123/y)+(z-w))-(3.123+(y*(z/w))))-(((3.123/y)*(z-w))/(3.123-((y*z)*w)))))"
-"(((((3.123+y)+(z-w))-((3.123-y)/(z*w)))-(((3.123+y)/(z/w))/(3.123+((y-z)/w))))-((((3.123-y)/(z*w))+(3.123+((y-z)*w)))+((3.123+((y-z)/w))*(((3.123+y)/z)-w))))"
-"(((((3.123+y)+(z/w))/((3.123*y)-(z-w)))/(((3.123/y)+(z-w))-(3.123+(y*(z/w)))))/((((3.123*y)-(z-w))*(3.123-(y*(z/w))))*((3.123+(y*(z/w)))+(3.123-((y/z)/w)))))"
-"(((((3.123+y)-(z*w))+((3.123/y)+(z+w)))+(((3.123*y)+(z+w))*((3.123/y)/(z-w))))+((((3.123/y)+(z+w))/((3.123*y)*(z-w)))/(((3.123/y)/(z-w))-(3.123-((y-z)*w)))))"
-"(((((3.123+y)-(z-w))+((3.123+y)/(z/w)))+(((3.123+y)/(z*w))*(3.123+((y+z)*w))))+((((3.123+y)/(z/w))/(3.123+((y-z)/w)))/((3.123+((y+z)*w))-(((3.123/y)*z)-w))))"
-"(((((3.123+y)-(z/w))-((3.123*y)+(z-w)))-(((3.123/y)+(z+w))/((3.123*y)*(z-w))))-((((3.123*y)+(z-w))+((3.123/y)*(z-w)))+(((3.123*y)*(z-w))*(3.123-((y*z)/w)))))"
-"(((((3.123+y)/(z*w))*(3.123+((y+z)*w)))*((3.123+((y+z)/w))+(((3.123*y)*z)-w)))*(((3.123+((y+z)*w))-(((3.123/y)*z)-w))-((((3.123*y)*z)-w)/((3.123+y)+(z*w)))))"
-"(((((3.123+y)/(z-w))/((3.123-y)*(z*w)))/(((3.123-y)/(z/w))-(3.123+((y*z)/w))))/((((3.123-y)*(z*w))*(3.123+((y*z)*w)))*((3.123+((y*z)/w))+(((3.123*y)/z)-w))))"
-"(((((3.123+y)/(z/w))/(3.123+((y-z)/w)))/((3.123+((y+z)*w))-(((3.123/y)*z)-w)))/(((3.123+((y-z)/w))*(((3.123+y)/z)-w))*((((3.123/y)*z)-w)+((3.123+y)+(z/w)))))"
-"(((((3.123-y)*(z*w))*(3.123+((y*z)*w)))*((3.123+((y*z)/w))+(((3.123*y)/z)-w)))*(((3.123+((y*z)*w))-(((3.123/y)/z)-w))-((((3.123*y)/z)-w)/((3.123-y)-(z*w)))))"
-"(((((3.123-y)*(z+w))*((3.123/y)*(z+w)))*(((3.123*y)*(z+w))+(3.123+((y/z)/w))))*((((3.123/y)*(z+w))-(3.123+((y/z)*w)))-((3.123+((y/z)/w))/((3.123*y)-(z*w)))))"
-"(((((3.123-y)*(z/w))/(3.123+((y/z)+w)))/((3.123+((y*z)*w))-(((3.123/y)/z)-w)))/(((3.123+((y/z)+w))*((3.123*y)+(z*w)))*((((3.123/y)/z)-w)+((3.123-y)-(z/w)))))"
-"(((((3.123-y)+(z*w))+((3.123/y)-(z-w)))+(((3.123*y)-(z-w))*(3.123-(y*(z/w)))))+((((3.123/y)-(z-w))/(3.123+(y/(z*w))))/((3.123-(y*(z/w)))-(3.123-((y/z)*w)))))"
-"(((((3.123-y)+(z+w))-((3.123*y)*(z+w)))-(((3.123-y)*(z/w))/(3.123+((y/z)+w))))-((((3.123*y)*(z+w))+(3.123+((y/z)/w)))+((3.123+((y/z)+w))*((3.123*y)+(z*w)))))"
-"(((((3.123-y)+(z/w))-((3.123+y)*(z*w)))-(((3.123/y)-(z-w))/(3.123+(y/(z*w)))))-((((3.123+y)*(z*w))+(3.123-(y/(z*w))))+((3.123+(y/(z*w)))*(((3.123+y)*z)-w))))"
-"(((((3.123-y)-(z*w))*((3.123+y)*(z/w)))*(((3.123+y)*(z*w))+(3.123-(y/(z*w)))))*((((3.123+y)*(z/w))-(3.123+((y+z)/w)))-((3.123-(y/(z*w)))/(((3.123-y)*z)-w))))"
-"(((((3.123-y)-(z+w))+((3.123-y)*(z/w)))+(((3.123-y)*(z*w))*(3.123+((y*z)*w))))+((((3.123-y)*(z/w))/(3.123+((y/z)+w)))/((3.123+((y*z)*w))-(((3.123/y)/z)-w))))"
-"(((((3.123-y)-(z/w))/((3.123+y)/(z*w)))/(((3.123+y)*(z/w))-(3.123+((y+z)/w))))/((((3.123+y)/(z*w))*(3.123+((y+z)*w)))*((3.123+((y+z)/w))+(((3.123*y)*z)-w))))"
-"(((((3.123-y)/(z*w))+(3.123+((y-z)*w)))+((3.123+((y-z)/w))*(((3.123+y)/z)-w)))+(((3.123+((y-z)*w))/(((3.123-y)/z)-w))/((((3.123+y)/z)-w)-((3.123-y)+(z*w)))))"
-"(((((3.123-y)/(z+w))/((3.123*y)/(z+w)))/(((3.123/y)*(z+w))-(3.123+((y/z)*w))))/((((3.123*y)/(z+w))*(3.123-((y+z)/w)))*((3.123+((y/z)*w))+((3.123*y)+(z/w)))))"
-"(((((3.123-y)/(z/w))-(3.123+((y*z)/w)))-((3.123+((y-z)*w))/(((3.123-y)/z)-w)))-(((3.123+((y*z)/w))+(((3.123*y)/z)-w))+((((3.123-y)/z)-w)*((3.123-y)+(z/w)))))"
-"(((((3.123/y)*(z+w))-(3.123+((y/z)*w)))-((3.123+((y/z)/w))/((3.123*y)-(z*w))))-(((3.123+((y/z)*w))+((3.123*y)+(z/w)))+(((3.123*y)-(z*w))*((3.123+y)+(z-w)))))"
-"(((((3.123/y)*(z-w))/(3.123-((y*z)*w)))/((3.123-((y*z)/w))-(3.123/(y+(z*w)))))/(((3.123-((y*z)*w))*(3.123/(y-(z*w))))*((3.123/(y+(z*w)))+((3.123-y)/(z+w)))))"
-"(((((3.123/y)+(z+w))/((3.123*y)*(z-w)))/(((3.123/y)/(z-w))-(3.123-((y-z)*w))))/((((3.123*y)*(z-w))*(3.123-((y*z)/w)))*((3.123-((y-z)*w))+((3.123/y)-(z*w)))))"
-"(((((3.123/y)+(z-w))-(3.123+(y*(z/w))))-(((3.123/y)*(z-w))/(3.123-((y*z)*w))))-(((3.123+(y*(z/w)))+(3.123-((y/z)/w)))+((3.123-((y*z)*w))*(3.123/(y-(z*w))))))"
-"(((((3.123/y)+(z/w))-((3.123-y)-(z+w)))-(((3.123+y)/(z-w))/((3.123-y)*(z*w))))-((((3.123-y)-(z+w))+((3.123-y)*(z/w)))+(((3.123-y)*(z*w))*(3.123+((y*z)*w)))))"
-"(((((3.123/y)-(z*w))/((3.123-y)*(z+w)))/(((3.123-y)+(z+w))-((3.123*y)*(z+w))))/((((3.123-y)*(z+w))*((3.123/y)*(z+w)))*(((3.123*y)*(z+w))+(3.123+((y/z)/w)))))"
-"(((((3.123/y)-(z+w))-((3.123*y)/(z-w)))-(((3.123/y)/(z+w))/(3.123-((y+z)*w))))-((((3.123*y)/(z-w))+(3.123-((y-z)/w)))+((3.123-((y+z)*w))*((3.123/y)+(z/w)))))"
-"(((((3.123/y)-(z-w))/(3.123+(y/(z*w))))/((3.123-(y*(z/w)))-(3.123-((y/z)*w))))/(((3.123+(y/(z*w)))*(((3.123+y)*z)-w))*((3.123-((y/z)*w))+(3.123*(y-(z*w))))))"
-"(((((3.123/y)-(z/w))*((3.123-y)+(z+w)))*(((3.123-y)-(z+w))+((3.123-y)*(z/w))))*((((3.123-y)+(z+w))-((3.123*y)*(z+w)))-(((3.123-y)*(z/w))/(3.123+((y/z)+w)))))"
-"(((((3.123/y)/(z+w))/(3.123-((y+z)*w)))/((3.123-((y+z)/w))-((3.123*y)-(z/w))))/(((3.123-((y+z)*w))*((3.123/y)+(z/w)))*(((3.123*y)-(z/w))+((3.123+y)/(z-w)))))"
-"(((((3.123/y)/(z-w))-(3.123-((y-z)*w)))-((3.123-((y-z)/w))/((3.123/y)-(z/w))))-(((3.123-((y-z)*w))+((3.123/y)-(z*w)))+(((3.123/y)-(z/w))*((3.123-y)+(z+w)))))"
-"(((((x*5.123)*(z+w))+(x+((5.123/z)/w)))+((x+((5.123/z)+w))*((x*5.123)+(z*w))))+(((x+((5.123/z)/w))/((x*5.123)-(z*w)))/(((x*5.123)+(z*w))-((x+5.123)-(z-w)))))"
-"(((((x*5.123)*(z-w))*(x-((5.123*z)/w)))*((x-((5.123-z)*w))+((x/5.123)-(z*w))))*(((x-((5.123*z)/w))-(x/(5.123+(z*w))))-(((x/5.123)-(z*w))/((x-5.123)*(z+w)))))"
-"(((((x*5.123)+(z*w))-((x+5.123)-(z-w)))-(((x-5.123)-(z/w))/((x+5.123)/(z*w))))-((((x+5.123)-(z-w))+((x+5.123)/(z/w)))+(((x+5.123)/(z*w))*(x+((5.123+z)*w)))))"
-"(((((x*5.123)+(z+w))*((x/5.123)/(z-w)))*(((x*5.123)/(z-w))+(x-((5.123-z)/w))))*((((x/5.123)/(z-w))-(x-((5.123-z)*w)))-((x-((5.123-z)/w))/((x/5.123)-(z/w)))))"
-"(((((x*5.123)+(z-w))+((x/5.123)*(z-w)))+(((x*5.123)*(z-w))*(x-((5.123*z)/w))))+((((x/5.123)*(z-w))/(x-((5.123*z)*w)))/((x-((5.123*z)/w))-(x/(5.123+(z*w))))))"
-"(((((x*5.123)+(z/w))/((x+5.123)*(z-w)))/(((x+5.123)+(z-w))-((x-5.123)/(z*w))))/((((x+5.123)*(z-w))*((x-5.123)/(z/w)))*(((x-5.123)/(z*w))+(x+((5.123-z)*w)))))"
-"(((((x*5.123)-(z*w))*((x+5.123)+(z-w)))*(((x+5.123)-(z-w))+((x+5.123)/(z/w))))*((((x+5.123)+(z-w))-((x-5.123)/(z*w)))-(((x+5.123)/(z/w))/(x+((5.123-z)/w)))))"
-"(((((x*5.123)-(z+w))+((x/5.123)/(z+w)))+(((x*5.123)/(z+w))*(x-((5.123+z)/w))))+((((x/5.123)/(z+w))/(x-((5.123+z)*w)))/((x-((5.123+z)/w))-((x*5.123)-(z/w)))))"
-"(((((x*5.123)-(z-w))*(x-(5.123*(z/w))))*((x+(5.123*(z/w)))+(x-((5.123/z)/w))))*(((x-(5.123*(z/w)))-(x-((5.123/z)*w)))-((x-((5.123/z)/w))/(x*(5.123+(z*w))))))"
-"(((((x*5.123)-(z/w))+((x+5.123)/(z-w)))+(((x+5.123)*(z-w))*((x-5.123)/(z/w))))+((((x+5.123)/(z-w))/((x-5.123)*(z*w)))/(((x-5.123)/(z/w))-(x+((5.123*z)/w)))))"
-"(((((x*5.123)/(z+w))*(x-((5.123+z)/w)))*((x+((5.123/z)*w))+((x*5.123)+(z/w))))*(((x-((5.123+z)/w))-((x*5.123)-(z/w)))-(((x*5.123)+(z/w))/((x+5.123)*(z-w)))))"
-"(((((x*5.123)/(z-w))+(x-((5.123-z)/w)))+((x-((5.123+z)*w))*((x/5.123)+(z/w))))+(((x-((5.123-z)/w))/((x/5.123)-(z/w)))/(((x/5.123)+(z/w))-((x-5.123)-(z+w)))))"
-"(((((x*y)*(7.123+w))+(x+((y/7.123)/w)))+((x+((y/7.123)+w))*((x*y)+(7.123*w))))+(((x+((y/7.123)/w))/((x*y)-(7.123*w)))/(((x*y)+(7.123*w))-((x+y)-(7.123-w)))))"
-"(((((x*y)*(7.123-w))*(x-((y*7.123)/w)))*((x-((y-7.123)*w))+((x/y)-(7.123*w))))*(((x-((y*7.123)/w))-(x/(y+(7.123*w))))-(((x/y)-(7.123*w))/((x-y)*(7.123+w)))))"
-"(((((x*y)*(z+9.123))+(x+((y/z)/9.123)))+((x+((y/z)+9.123))*((x*y)+(z*9.123))))+(((x+((y/z)/9.123))/((x*y)-(z*9.123)))/(((x*y)+(z*9.123))-((x+y)-(z-9.123)))))"
-"(((((x*y)*(z-9.123))*(x-((y*z)/9.123)))*((x-((y-z)*9.123))+((x/y)-(z*9.123))))*(((x-((y*z)/9.123))-(x/(y+(z*9.123))))-(((x/y)-(z*9.123))/((x-y)*(z+9.123)))))"
-"(((((x*y)+(7.123*w))-((x+y)-(7.123-w)))-(((x-y)-(7.123/w))/((x+y)/(7.123*w))))-((((x+y)-(7.123-w))+((x+y)/(7.123/w)))+(((x+y)/(7.123*w))*(x+((y+7.123)*w)))))"
-"(((((x*y)+(7.123+w))*((x/y)/(7.123-w)))*(((x*y)/(7.123-w))+(x-((y-7.123)/w))))*((((x/y)/(7.123-w))-(x-((y-7.123)*w)))-((x-((y-7.123)/w))/((x/y)-(7.123/w)))))"
-"(((((x*y)+(7.123-w))+((x/y)*(7.123-w)))+(((x*y)*(7.123-w))*(x-((y*7.123)/w))))+((((x/y)*(7.123-w))/(x-((y*7.123)*w)))/((x-((y*7.123)/w))-(x/(y+(7.123*w))))))"
-"(((((x*y)+(7.123/w))/((x+y)*(7.123-w)))/(((x+y)+(7.123-w))-((x-y)/(7.123*w))))/((((x+y)*(7.123-w))*((x-y)/(7.123/w)))*(((x-y)/(7.123*w))+(x+((y-7.123)*w)))))"
-"(((((x*y)+(z*9.123))-((x+y)-(z-9.123)))-(((x-y)-(z/9.123))/((x+y)/(z*9.123))))-((((x+y)-(z-9.123))+((x+y)/(z/9.123)))+(((x+y)/(z*9.123))*(x+((y+z)*9.123)))))"
-"(((((x*y)+(z+9.123))*((x/y)/(z-9.123)))*(((x*y)/(z-9.123))+(x-((y-z)/9.123))))*((((x/y)/(z-9.123))-(x-((y-z)*9.123)))-((x-((y-z)/9.123))/((x/y)-(z/9.123)))))"
-"(((((x*y)+(z-9.123))+((x/y)*(z-9.123)))+(((x*y)*(z-9.123))*(x-((y*z)/9.123))))+((((x/y)*(z-9.123))/(x-((y*z)*9.123)))/((x-((y*z)/9.123))-(x/(y+(z*9.123))))))"
-"(((((x*y)+(z/9.123))/((x+y)*(z-9.123)))/(((x+y)+(z-9.123))-((x-y)/(z*9.123))))/((((x+y)*(z-9.123))*((x-y)/(z/9.123)))*(((x-y)/(z*9.123))+(x+((y-z)*9.123)))))"
-"(((((x*y)-(7.123*w))*((x+y)+(7.123-w)))*(((x+y)-(7.123-w))+((x+y)/(7.123/w))))*((((x+y)+(7.123-w))-((x-y)/(7.123*w)))-(((x+y)/(7.123/w))/(x+((y-7.123)/w)))))"
-"(((((x*y)-(7.123+w))+((x/y)/(7.123+w)))+(((x*y)/(7.123+w))*(x-((y+7.123)/w))))+((((x/y)/(7.123+w))/(x-((y+7.123)*w)))/((x-((y+7.123)/w))-((x*y)-(7.123/w)))))"
-"(((((x*y)-(7.123-w))*(x-(y*(7.123/w))))*((x+(y*(7.123/w)))+(x-((y/7.123)/w))))*(((x-(y*(7.123/w)))-(x-((y/7.123)*w)))-((x-((y/7.123)/w))/(x*(y+(7.123*w))))))"
-"(((((x*y)-(7.123/w))+((x+y)/(7.123-w)))+(((x+y)*(7.123-w))*((x-y)/(7.123/w))))+((((x+y)/(7.123-w))/((x-y)*(7.123*w)))/(((x-y)/(7.123/w))-(x+((y*7.123)/w)))))"
-"(((((x*y)-(z*9.123))*((x+y)+(z-9.123)))*(((x+y)-(z-9.123))+((x+y)/(z/9.123))))*((((x+y)+(z-9.123))-((x-y)/(z*9.123)))-(((x+y)/(z/9.123))/(x+((y-z)/9.123)))))"
-"(((((x*y)-(z+9.123))+((x/y)/(z+9.123)))+(((x*y)/(z+9.123))*(x-((y+z)/9.123))))+((((x/y)/(z+9.123))/(x-((y+z)*9.123)))/((x-((y+z)/9.123))-((x*y)-(z/9.123)))))"
-"(((((x*y)-(z-9.123))*(x-(y*(z/9.123))))*((x+(y*(z/9.123)))+(x-((y/z)/9.123))))*(((x-(y*(z/9.123)))-(x-((y/z)*9.123)))-((x-((y/z)/9.123))/(x*(y+(z*9.123))))))"
-"(((((x*y)-(z/9.123))+((x+y)/(z-9.123)))+(((x+y)*(z-9.123))*((x-y)/(z/9.123))))+((((x+y)/(z-9.123))/((x-y)*(z*9.123)))/(((x-y)/(z/9.123))-(x+((y*z)/9.123)))))"
-"(((((x*y)/(7.123+w))*(x-((y+7.123)/w)))*((x+((y/7.123)*w))+((x*y)+(7.123/w))))*(((x-((y+7.123)/w))-((x*y)-(7.123/w)))-(((x*y)+(7.123/w))/((x+y)*(7.123-w)))))"
-"(((((x*y)/(7.123-w))+(x-((y-7.123)/w)))+((x-((y+7.123)*w))*((x/y)+(7.123/w))))+(((x-((y-7.123)/w))/((x/y)-(7.123/w)))/(((x/y)+(7.123/w))-((x-y)-(7.123+w)))))"
-"(((((x*y)/(z+9.123))*(x-((y+z)/9.123)))*((x+((y/z)*9.123))+((x*y)+(z/9.123))))*(((x-((y+z)/9.123))-((x*y)-(z/9.123)))-(((x*y)+(z/9.123))/((x+y)*(z-9.123)))))"
-"(((((x*y)/(z-9.123))+(x-((y-z)/9.123)))+((x-((y+z)*9.123))*((x/y)+(z/9.123))))+(((x-((y-z)/9.123))/((x/y)-(z/9.123)))/(((x/y)+(z/9.123))-((x-y)-(z+9.123)))))"
-"(((((x+5.123)*(z*w))+(x-(5.123/(z*w))))+((x+(5.123/(z*w)))*(((x+5.123)*z)-w)))+(((x-(5.123/(z*w)))/(((x-5.123)*z)-w))/((((x+5.123)*z)-w)-((x+5.123)-(z*w)))))"
-"(((((x+5.123)*(z-w))*((x-5.123)/(z/w)))*(((x-5.123)/(z*w))+(x+((5.123-z)*w))))*((((x-5.123)/(z/w))-(x+((5.123*z)/w)))-((x+((5.123-z)*w))/(((x-5.123)/z)-w))))"
-"(((((x+5.123)*(z/w))-(x+((5.123+z)/w)))-((x-(5.123/(z*w)))/(((x-5.123)*z)-w)))-(((x+((5.123+z)/w))+(((x*5.123)*z)-w))+((((x-5.123)*z)-w)*((x+5.123)-(z/w)))))"
-"(((((x+5.123)+(z*w))*((x/5.123)+(z-w)))*(((x*5.123)+(z-w))+((x/5.123)*(z-w))))*((((x/5.123)+(z-w))-(x+(5.123*(z/w))))-(((x/5.123)*(z-w))/(x-((5.123*z)*w)))))"
-"(((((x+5.123)+(z-w))-((x-5.123)/(z*w)))-(((x+5.123)/(z/w))/(x+((5.123-z)/w))))-((((x-5.123)/(z*w))+(x+((5.123-z)*w)))+((x+((5.123-z)/w))*(((x+5.123)/z)-w))))"
-"(((((x+5.123)+(z/w))/((x*5.123)-(z-w)))/(((x/5.123)+(z-w))-(x+(5.123*(z/w)))))/((((x*5.123)-(z-w))*(x-(5.123*(z/w))))*((x+(5.123*(z/w)))+(x-((5.123/z)/w)))))"
-"(((((x+5.123)-(z*w))+((x/5.123)+(z+w)))+(((x*5.123)+(z+w))*((x/5.123)/(z-w))))+((((x/5.123)+(z+w))/((x*5.123)*(z-w)))/(((x/5.123)/(z-w))-(x-((5.123-z)*w)))))"
-"(((((x+5.123)-(z-w))+((x+5.123)/(z/w)))+(((x+5.123)/(z*w))*(x+((5.123+z)*w))))+((((x+5.123)/(z/w))/(x+((5.123-z)/w)))/((x+((5.123+z)*w))-(((x/5.123)*z)-w))))"
-"(((((x+5.123)-(z/w))-((x*5.123)+(z-w)))-(((x/5.123)+(z+w))/((x*5.123)*(z-w))))-((((x*5.123)+(z-w))+((x/5.123)*(z-w)))+(((x*5.123)*(z-w))*(x-((5.123*z)/w)))))"
-"(((((x+5.123)/(z*w))*(x+((5.123+z)*w)))*((x+((5.123+z)/w))+(((x*5.123)*z)-w)))*(((x+((5.123+z)*w))-(((x/5.123)*z)-w))-((((x*5.123)*z)-w)/((x+5.123)+(z*w)))))"
-"(((((x+5.123)/(z-w))/((x-5.123)*(z*w)))/(((x-5.123)/(z/w))-(x+((5.123*z)/w))))/((((x-5.123)*(z*w))*(x+((5.123*z)*w)))*((x+((5.123*z)/w))+(((x*5.123)/z)-w))))"
-"(((((x+5.123)/(z/w))/(x+((5.123-z)/w)))/((x+((5.123+z)*w))-(((x/5.123)*z)-w)))/(((x+((5.123-z)/w))*(((x+5.123)/z)-w))*((((x/5.123)*z)-w)+((x+5.123)+(z/w)))))"
-"(((((x+y)*(7.123*w))+(x-(y/(7.123*w))))+((x+(y/(7.123*w)))*(((x+y)*7.123)-w)))+(((x-(y/(7.123*w)))/(((x-y)*7.123)-w))/((((x+y)*7.123)-w)-((x+y)-(7.123*w)))))"
-"(((((x+y)*(7.123-w))*((x-y)/(7.123/w)))*(((x-y)/(7.123*w))+(x+((y-7.123)*w))))*((((x-y)/(7.123/w))-(x+((y*7.123)/w)))-((x+((y-7.123)*w))/(((x-y)/7.123)-w))))"
-"(((((x+y)*(7.123/w))-(x+((y+7.123)/w)))-((x-(y/(7.123*w)))/(((x-y)*7.123)-w)))-(((x+((y+7.123)/w))+(((x*y)*7.123)-w))+((((x-y)*7.123)-w)*((x+y)-(7.123/w)))))"
-"(((((x+y)*(z*9.123))+(x-(y/(z*9.123))))+((x+(y/(z*9.123)))*(((x+y)*z)-9.123)))+(((x-(y/(z*9.123)))/(((x-y)*z)-9.123))/((((x+y)*z)-9.123)-((x+y)-(z*9.123)))))"
-"(((((x+y)*(z-9.123))*((x-y)/(z/9.123)))*(((x-y)/(z*9.123))+(x+((y-z)*9.123))))*((((x-y)/(z/9.123))-(x+((y*z)/9.123)))-((x+((y-z)*9.123))/(((x-y)/z)-9.123))))"
-"(((((x+y)*(z/9.123))-(x+((y+z)/9.123)))-((x-(y/(z*9.123)))/(((x-y)*z)-9.123)))-(((x+((y+z)/9.123))+(((x*y)*z)-9.123))+((((x-y)*z)-9.123)*((x+y)-(z/9.123)))))"
-"(((((x+y)+(7.123*w))*((x/y)+(7.123-w)))*(((x*y)+(7.123-w))+((x/y)*(7.123-w))))*((((x/y)+(7.123-w))-(x+(y*(7.123/w))))-(((x/y)*(7.123-w))/(x-((y*7.123)*w)))))"
-"(((((x+y)+(7.123-w))-((x-y)/(7.123*w)))-(((x+y)/(7.123/w))/(x+((y-7.123)/w))))-((((x-y)/(7.123*w))+(x+((y-7.123)*w)))+((x+((y-7.123)/w))*(((x+y)/7.123)-w))))"
-"(((((x+y)+(7.123/w))/((x*y)-(7.123-w)))/(((x/y)+(7.123-w))-(x+(y*(7.123/w)))))/((((x*y)-(7.123-w))*(x-(y*(7.123/w))))*((x+(y*(7.123/w)))+(x-((y/7.123)/w)))))"
-"(((((x+y)+(z*9.123))*((x/y)+(z-9.123)))*(((x*y)+(z-9.123))+((x/y)*(z-9.123))))*((((x/y)+(z-9.123))-(x+(y*(z/9.123))))-(((x/y)*(z-9.123))/(x-((y*z)*9.123)))))"
-"(((((x+y)+(z-9.123))-((x-y)/(z*9.123)))-(((x+y)/(z/9.123))/(x+((y-z)/9.123))))-((((x-y)/(z*9.123))+(x+((y-z)*9.123)))+((x+((y-z)/9.123))*(((x+y)/z)-9.123))))"
-"(((((x+y)+(z/9.123))/((x*y)-(z-9.123)))/(((x/y)+(z-9.123))-(x+(y*(z/9.123)))))/((((x*y)-(z-9.123))*(x-(y*(z/9.123))))*((x+(y*(z/9.123)))+(x-((y/z)/9.123)))))"
-"(((((x+y)-(7.123*w))+((x/y)+(7.123+w)))+(((x*y)+(7.123+w))*((x/y)/(7.123-w))))+((((x/y)+(7.123+w))/((x*y)*(7.123-w)))/(((x/y)/(7.123-w))-(x-((y-7.123)*w)))))"
-"(((((x+y)-(7.123-w))+((x+y)/(7.123/w)))+(((x+y)/(7.123*w))*(x+((y+7.123)*w))))+((((x+y)/(7.123/w))/(x+((y-7.123)/w)))/((x+((y+7.123)*w))-(((x/y)*7.123)-w))))"
-"(((((x+y)-(7.123/w))-((x*y)+(7.123-w)))-(((x/y)+(7.123+w))/((x*y)*(7.123-w))))-((((x*y)+(7.123-w))+((x/y)*(7.123-w)))+(((x*y)*(7.123-w))*(x-((y*7.123)/w)))))"
-"(((((x+y)-(z*9.123))+((x/y)+(z+9.123)))+(((x*y)+(z+9.123))*((x/y)/(z-9.123))))+((((x/y)+(z+9.123))/((x*y)*(z-9.123)))/(((x/y)/(z-9.123))-(x-((y-z)*9.123)))))"
-"(((((x+y)-(z-9.123))+((x+y)/(z/9.123)))+(((x+y)/(z*9.123))*(x+((y+z)*9.123))))+((((x+y)/(z/9.123))/(x+((y-z)/9.123)))/((x+((y+z)*9.123))-(((x/y)*z)-9.123))))"
-"(((((x+y)-(z/9.123))-((x*y)+(z-9.123)))-(((x/y)+(z+9.123))/((x*y)*(z-9.123))))-((((x*y)+(z-9.123))+((x/y)*(z-9.123)))+(((x*y)*(z-9.123))*(x-((y*z)/9.123)))))"
-"(((((x+y)/(7.123*w))*(x+((y+7.123)*w)))*((x+((y+7.123)/w))+(((x*y)*7.123)-w)))*(((x+((y+7.123)*w))-(((x/y)*7.123)-w))-((((x*y)*7.123)-w)/((x+y)+(7.123*w)))))"
-"(((((x+y)/(7.123-w))/((x-y)*(7.123*w)))/(((x-y)/(7.123/w))-(x+((y*7.123)/w))))/((((x-y)*(7.123*w))*(x+((y*7.123)*w)))*((x+((y*7.123)/w))+(((x*y)/7.123)-w))))"
-"(((((x+y)/(7.123/w))/(x+((y-7.123)/w)))/((x+((y+7.123)*w))-(((x/y)*7.123)-w)))/(((x+((y-7.123)/w))*(((x+y)/7.123)-w))*((((x/y)*7.123)-w)+((x+y)+(7.123/w)))))"
-"(((((x+y)/(z*9.123))*(x+((y+z)*9.123)))*((x+((y+z)/9.123))+(((x*y)*z)-9.123)))*(((x+((y+z)*9.123))-(((x/y)*z)-9.123))-((((x*y)*z)-9.123)/((x+y)+(z*9.123)))))"
-"(((((x+y)/(z-9.123))/((x-y)*(z*9.123)))/(((x-y)/(z/9.123))-(x+((y*z)/9.123))))/((((x-y)*(z*9.123))*(x+((y*z)*9.123)))*((x+((y*z)/9.123))+(((x*y)/z)-9.123))))"
-"(((((x+y)/(z/9.123))/(x+((y-z)/9.123)))/((x+((y+z)*9.123))-(((x/y)*z)-9.123)))/(((x+((y-z)/9.123))*(((x+y)/z)-9.123))*((((x/y)*z)-9.123)+((x+y)+(z/9.123)))))"
-"(((((x-5.123)*(z*w))*(x+((5.123*z)*w)))*((x+((5.123*z)/w))+(((x*5.123)/z)-w)))*(((x+((5.123*z)*w))-(((x/5.123)/z)-w))-((((x*5.123)/z)-w)/((x-5.123)-(z*w)))))"
-"(((((x-5.123)*(z+w))*((x/5.123)*(z+w)))*(((x*5.123)*(z+w))+(x+((5.123/z)/w))))*((((x/5.123)*(z+w))-(x+((5.123/z)*w)))-((x+((5.123/z)/w))/((x*5.123)-(z*w)))))"
-"(((((x-5.123)*(z/w))/(x+((5.123/z)+w)))/((x+((5.123*z)*w))-(((x/5.123)/z)-w)))/(((x+((5.123/z)+w))*((x*5.123)+(z*w)))*((((x/5.123)/z)-w)+((x-5.123)-(z/w)))))"
-"(((((x-5.123)+(z*w))+((x/5.123)-(z-w)))+(((x*5.123)-(z-w))*(x-(5.123*(z/w)))))+((((x/5.123)-(z-w))/(x+(5.123/(z*w))))/((x-(5.123*(z/w)))-(x-((5.123/z)*w)))))"
-"(((((x-5.123)+(z+w))-((x*5.123)*(z+w)))-(((x-5.123)*(z/w))/(x+((5.123/z)+w))))-((((x*5.123)*(z+w))+(x+((5.123/z)/w)))+((x+((5.123/z)+w))*((x*5.123)+(z*w)))))"
-"(((((x-5.123)+(z/w))-((x+5.123)*(z*w)))-(((x/5.123)-(z-w))/(x+(5.123/(z*w)))))-((((x+5.123)*(z*w))+(x-(5.123/(z*w))))+((x+(5.123/(z*w)))*(((x+5.123)*z)-w))))"
-"(((((x-5.123)-(z*w))*((x+5.123)*(z/w)))*(((x+5.123)*(z*w))+(x-(5.123/(z*w)))))*((((x+5.123)*(z/w))-(x+((5.123+z)/w)))-((x-(5.123/(z*w)))/(((x-5.123)*z)-w))))"
-"(((((x-5.123)-(z+w))+((x-5.123)*(z/w)))+(((x-5.123)*(z*w))*(x+((5.123*z)*w))))+((((x-5.123)*(z/w))/(x+((5.123/z)+w)))/((x+((5.123*z)*w))-(((x/5.123)/z)-w))))"
-"(((((x-5.123)-(z/w))/((x+5.123)/(z*w)))/(((x+5.123)*(z/w))-(x+((5.123+z)/w))))/((((x+5.123)/(z*w))*(x+((5.123+z)*w)))*((x+((5.123+z)/w))+(((x*5.123)*z)-w))))"
-"(((((x-5.123)/(z*w))+(x+((5.123-z)*w)))+((x+((5.123-z)/w))*(((x+5.123)/z)-w)))+(((x+((5.123-z)*w))/(((x-5.123)/z)-w))/((((x+5.123)/z)-w)-((x-5.123)+(z*w)))))"
-"(((((x-5.123)/(z+w))/((x*5.123)/(z+w)))/(((x/5.123)*(z+w))-(x+((5.123/z)*w))))/((((x*5.123)/(z+w))*(x-((5.123+z)/w)))*((x+((5.123/z)*w))+((x*5.123)+(z/w)))))"
-"(((((x-5.123)/(z/w))-(x+((5.123*z)/w)))-((x+((5.123-z)*w))/(((x-5.123)/z)-w)))-(((x+((5.123*z)/w))+(((x*5.123)/z)-w))+((((x-5.123)/z)-w)*((x-5.123)+(z/w)))))"
-"(((((x-y)*(7.123*w))*(x+((y*7.123)*w)))*((x+((y*7.123)/w))+(((x*y)/7.123)-w)))*(((x+((y*7.123)*w))-(((x/y)/7.123)-w))-((((x*y)/7.123)-w)/((x-y)-(7.123*w)))))"
-"(((((x-y)*(7.123+w))*((x/y)*(7.123+w)))*(((x*y)*(7.123+w))+(x+((y/7.123)/w))))*((((x/y)*(7.123+w))-(x+((y/7.123)*w)))-((x+((y/7.123)/w))/((x*y)-(7.123*w)))))"
-"(((((x-y)*(7.123/w))/(x+((y/7.123)+w)))/((x+((y*7.123)*w))-(((x/y)/7.123)-w)))/(((x+((y/7.123)+w))*((x*y)+(7.123*w)))*((((x/y)/7.123)-w)+((x-y)-(7.123/w)))))"
-"(((((x-y)*(z*9.123))*(x+((y*z)*9.123)))*((x+((y*z)/9.123))+(((x*y)/z)-9.123)))*(((x+((y*z)*9.123))-(((x/y)/z)-9.123))-((((x*y)/z)-9.123)/((x-y)-(z*9.123)))))"
-"(((((x-y)*(z+9.123))*((x/y)*(z+9.123)))*(((x*y)*(z+9.123))+(x+((y/z)/9.123))))*((((x/y)*(z+9.123))-(x+((y/z)*9.123)))-((x+((y/z)/9.123))/((x*y)-(z*9.123)))))"
-"(((((x-y)*(z/9.123))/(x+((y/z)+9.123)))/((x+((y*z)*9.123))-(((x/y)/z)-9.123)))/(((x+((y/z)+9.123))*((x*y)+(z*9.123)))*((((x/y)/z)-9.123)+((x-y)-(z/9.123)))))"
-"(((((x-y)+(7.123*w))+((x/y)-(7.123-w)))+(((x*y)-(7.123-w))*(x-(y*(7.123/w)))))+((((x/y)-(7.123-w))/(x+(y/(7.123*w))))/((x-(y*(7.123/w)))-(x-((y/7.123)*w)))))"
-"(((((x-y)+(7.123+w))-((x*y)*(7.123+w)))-(((x-y)*(7.123/w))/(x+((y/7.123)+w))))-((((x*y)*(7.123+w))+(x+((y/7.123)/w)))+((x+((y/7.123)+w))*((x*y)+(7.123*w)))))"
-"(((((x-y)+(7.123/w))-((x+y)*(7.123*w)))-(((x/y)-(7.123-w))/(x+(y/(7.123*w)))))-((((x+y)*(7.123*w))+(x-(y/(7.123*w))))+((x+(y/(7.123*w)))*(((x+y)*7.123)-w))))"
-"(((((x-y)+(z*9.123))+((x/y)-(z-9.123)))+(((x*y)-(z-9.123))*(x-(y*(z/9.123)))))+((((x/y)-(z-9.123))/(x+(y/(z*9.123))))/((x-(y*(z/9.123)))-(x-((y/z)*9.123)))))"
-"(((((x-y)+(z+9.123))-((x*y)*(z+9.123)))-(((x-y)*(z/9.123))/(x+((y/z)+9.123))))-((((x*y)*(z+9.123))+(x+((y/z)/9.123)))+((x+((y/z)+9.123))*((x*y)+(z*9.123)))))"
-"(((((x-y)+(z/9.123))-((x+y)*(z*9.123)))-(((x/y)-(z-9.123))/(x+(y/(z*9.123)))))-((((x+y)*(z*9.123))+(x-(y/(z*9.123))))+((x+(y/(z*9.123)))*(((x+y)*z)-9.123))))"
-"(((((x-y)-(7.123*w))*((x+y)*(7.123/w)))*(((x+y)*(7.123*w))+(x-(y/(7.123*w)))))*((((x+y)*(7.123/w))-(x+((y+7.123)/w)))-((x-(y/(7.123*w)))/(((x-y)*7.123)-w))))"
-"(((((x-y)-(7.123+w))+((x-y)*(7.123/w)))+(((x-y)*(7.123*w))*(x+((y*7.123)*w))))+((((x-y)*(7.123/w))/(x+((y/7.123)+w)))/((x+((y*7.123)*w))-(((x/y)/7.123)-w))))"
-"(((((x-y)-(7.123/w))/((x+y)/(7.123*w)))/(((x+y)*(7.123/w))-(x+((y+7.123)/w))))/((((x+y)/(7.123*w))*(x+((y+7.123)*w)))*((x+((y+7.123)/w))+(((x*y)*7.123)-w))))"
-"(((((x-y)-(z*9.123))*((x+y)*(z/9.123)))*(((x+y)*(z*9.123))+(x-(y/(z*9.123)))))*((((x+y)*(z/9.123))-(x+((y+z)/9.123)))-((x-(y/(z*9.123)))/(((x-y)*z)-9.123))))"
-"(((((x-y)-(z+9.123))+((x-y)*(z/9.123)))+(((x-y)*(z*9.123))*(x+((y*z)*9.123))))+((((x-y)*(z/9.123))/(x+((y/z)+9.123)))/((x+((y*z)*9.123))-(((x/y)/z)-9.123))))"
-"(((((x-y)-(z/9.123))/((x+y)/(z*9.123)))/(((x+y)*(z/9.123))-(x+((y+z)/9.123))))/((((x+y)/(z*9.123))*(x+((y+z)*9.123)))*((x+((y+z)/9.123))+(((x*y)*z)-9.123))))"
-"(((((x-y)/(7.123*w))+(x+((y-7.123)*w)))+((x+((y-7.123)/w))*(((x+y)/7.123)-w)))+(((x+((y-7.123)*w))/(((x-y)/7.123)-w))/((((x+y)/7.123)-w)-((x-y)+(7.123*w)))))"
-"(((((x-y)/(7.123+w))/((x*y)/(7.123+w)))/(((x/y)*(7.123+w))-(x+((y/7.123)*w))))/((((x*y)/(7.123+w))*(x-((y+7.123)/w)))*((x+((y/7.123)*w))+((x*y)+(7.123/w)))))"
-"(((((x-y)/(7.123/w))-(x+((y*7.123)/w)))-((x+((y-7.123)*w))/(((x-y)/7.123)-w)))-(((x+((y*7.123)/w))+(((x*y)/7.123)-w))+((((x-y)/7.123)-w)*((x-y)+(7.123/w)))))"
-"(((((x-y)/(z*9.123))+(x+((y-z)*9.123)))+((x+((y-z)/9.123))*(((x+y)/z)-9.123)))+(((x+((y-z)*9.123))/(((x-y)/z)-9.123))/((((x+y)/z)-9.123)-((x-y)+(z*9.123)))))"
-"(((((x-y)/(z+9.123))/((x*y)/(z+9.123)))/(((x/y)*(z+9.123))-(x+((y/z)*9.123))))/((((x*y)/(z+9.123))*(x-((y+z)/9.123)))*((x+((y/z)*9.123))+((x*y)+(z/9.123)))))"
-"(((((x-y)/(z/9.123))-(x+((y*z)/9.123)))-((x+((y-z)*9.123))/(((x-y)/z)-9.123)))-(((x+((y*z)/9.123))+(((x*y)/z)-9.123))+((((x-y)/z)-9.123)*((x-y)+(z/9.123)))))"
-"(((((x/5.123)*(z+w))-(x+((5.123/z)*w)))-((x+((5.123/z)/w))/((x*5.123)-(z*w))))-(((x+((5.123/z)*w))+((x*5.123)+(z/w)))+(((x*5.123)-(z*w))*((x+5.123)+(z-w)))))"
-"(((((x/5.123)*(z-w))/(x-((5.123*z)*w)))/((x-((5.123*z)/w))-(x/(5.123+(z*w)))))/(((x-((5.123*z)*w))*(x/(5.123-(z*w))))*((x/(5.123+(z*w)))+((x-5.123)/(z+w)))))"
-"(((((x/5.123)+(z+w))/((x*5.123)*(z-w)))/(((x/5.123)/(z-w))-(x-((5.123-z)*w))))/((((x*5.123)*(z-w))*(x-((5.123*z)/w)))*((x-((5.123-z)*w))+((x/5.123)-(z*w)))))"
-"(((((x/5.123)+(z-w))-(x+(5.123*(z/w))))-(((x/5.123)*(z-w))/(x-((5.123*z)*w))))-(((x+(5.123*(z/w)))+(x-((5.123/z)/w)))+((x-((5.123*z)*w))*(x/(5.123-(z*w))))))"
-"(((((x/5.123)+(z/w))-((x-5.123)-(z+w)))-(((x+5.123)/(z-w))/((x-5.123)*(z*w))))-((((x-5.123)-(z+w))+((x-5.123)*(z/w)))+(((x-5.123)*(z*w))*(x+((5.123*z)*w)))))"
-"(((((x/5.123)-(z*w))/((x-5.123)*(z+w)))/(((x-5.123)+(z+w))-((x*5.123)*(z+w))))/((((x-5.123)*(z+w))*((x/5.123)*(z+w)))*(((x*5.123)*(z+w))+(x+((5.123/z)/w)))))"
-"(((((x/5.123)-(z+w))-((x*5.123)/(z-w)))-(((x/5.123)/(z+w))/(x-((5.123+z)*w))))-((((x*5.123)/(z-w))+(x-((5.123-z)/w)))+((x-((5.123+z)*w))*((x/5.123)+(z/w)))))"
-"(((((x/5.123)-(z-w))/(x+(5.123/(z*w))))/((x-(5.123*(z/w)))-(x-((5.123/z)*w))))/(((x+(5.123/(z*w)))*(((x+5.123)*z)-w))*((x-((5.123/z)*w))+(x*(5.123-(z*w))))))"
-"(((((x/5.123)-(z/w))*((x-5.123)+(z+w)))*(((x-5.123)-(z+w))+((x-5.123)*(z/w))))*((((x-5.123)+(z+w))-((x*5.123)*(z+w)))-(((x-5.123)*(z/w))/(x+((5.123/z)+w)))))"
-"(((((x/5.123)/(z+w))/(x-((5.123+z)*w)))/((x-((5.123+z)/w))-((x*5.123)-(z/w))))/(((x-((5.123+z)*w))*((x/5.123)+(z/w)))*(((x*5.123)-(z/w))+((x+5.123)/(z-w)))))"
-"(((((x/5.123)/(z-w))-(x-((5.123-z)*w)))-((x-((5.123-z)/w))/((x/5.123)-(z/w))))-(((x-((5.123-z)*w))+((x/5.123)-(z*w)))+(((x/5.123)-(z/w))*((x-5.123)+(z+w)))))"
-"(((((x/y)*(7.123+w))-(x+((y/7.123)*w)))-((x+((y/7.123)/w))/((x*y)-(7.123*w))))-(((x+((y/7.123)*w))+((x*y)+(7.123/w)))+(((x*y)-(7.123*w))*((x+y)+(7.123-w)))))"
-"(((((x/y)*(7.123-w))/(x-((y*7.123)*w)))/((x-((y*7.123)/w))-(x/(y+(7.123*w)))))/(((x-((y*7.123)*w))*(x/(y-(7.123*w))))*((x/(y+(7.123*w)))+((x-y)/(7.123+w)))))"
-"(((((x/y)*(z+9.123))-(x+((y/z)*9.123)))-((x+((y/z)/9.123))/((x*y)-(z*9.123))))-(((x+((y/z)*9.123))+((x*y)+(z/9.123)))+(((x*y)-(z*9.123))*((x+y)+(z-9.123)))))"
-"(((((x/y)*(z-9.123))/(x-((y*z)*9.123)))/((x-((y*z)/9.123))-(x/(y+(z*9.123)))))/(((x-((y*z)*9.123))*(x/(y-(z*9.123))))*((x/(y+(z*9.123)))+((x-y)/(z+9.123)))))"
-"(((((x/y)+(7.123+w))/((x*y)*(7.123-w)))/(((x/y)/(7.123-w))-(x-((y-7.123)*w))))/((((x*y)*(7.123-w))*(x-((y*7.123)/w)))*((x-((y-7.123)*w))+((x/y)-(7.123*w)))))"
-"(((((x/y)+(7.123-w))-(x+(y*(7.123/w))))-(((x/y)*(7.123-w))/(x-((y*7.123)*w))))-(((x+(y*(7.123/w)))+(x-((y/7.123)/w)))+((x-((y*7.123)*w))*(x/(y-(7.123*w))))))"
-"(((((x/y)+(7.123/w))-((x-y)-(7.123+w)))-(((x+y)/(7.123-w))/((x-y)*(7.123*w))))-((((x-y)-(7.123+w))+((x-y)*(7.123/w)))+(((x-y)*(7.123*w))*(x+((y*7.123)*w)))))"
-"(((((x/y)+(z+9.123))/((x*y)*(z-9.123)))/(((x/y)/(z-9.123))-(x-((y-z)*9.123))))/((((x*y)*(z-9.123))*(x-((y*z)/9.123)))*((x-((y-z)*9.123))+((x/y)-(z*9.123)))))"
-"(((((x/y)+(z-9.123))-(x+(y*(z/9.123))))-(((x/y)*(z-9.123))/(x-((y*z)*9.123))))-(((x+(y*(z/9.123)))+(x-((y/z)/9.123)))+((x-((y*z)*9.123))*(x/(y-(z*9.123))))))"
-"(((((x/y)+(z/9.123))-((x-y)-(z+9.123)))-(((x+y)/(z-9.123))/((x-y)*(z*9.123))))-((((x-y)-(z+9.123))+((x-y)*(z/9.123)))+(((x-y)*(z*9.123))*(x+((y*z)*9.123)))))"
-"(((((x/y)-(7.123*w))/((x-y)*(7.123+w)))/(((x-y)+(7.123+w))-((x*y)*(7.123+w))))/((((x-y)*(7.123+w))*((x/y)*(7.123+w)))*(((x*y)*(7.123+w))+(x+((y/7.123)/w)))))"
-"(((((x/y)-(7.123+w))-((x*y)/(7.123-w)))-(((x/y)/(7.123+w))/(x-((y+7.123)*w))))-((((x*y)/(7.123-w))+(x-((y-7.123)/w)))+((x-((y+7.123)*w))*((x/y)+(7.123/w)))))"
-"(((((x/y)-(7.123-w))/(x+(y/(7.123*w))))/((x-(y*(7.123/w)))-(x-((y/7.123)*w))))/(((x+(y/(7.123*w)))*(((x+y)*7.123)-w))*((x-((y/7.123)*w))+(x*(y-(7.123*w))))))"
-"(((((x/y)-(7.123/w))*((x-y)+(7.123+w)))*(((x-y)-(7.123+w))+((x-y)*(7.123/w))))*((((x-y)+(7.123+w))-((x*y)*(7.123+w)))-(((x-y)*(7.123/w))/(x+((y/7.123)+w)))))"
-"(((((x/y)-(z*9.123))/((x-y)*(z+9.123)))/(((x-y)+(z+9.123))-((x*y)*(z+9.123))))/((((x-y)*(z+9.123))*((x/y)*(z+9.123)))*(((x*y)*(z+9.123))+(x+((y/z)/9.123)))))"
-"(((((x/y)-(z+9.123))-((x*y)/(z-9.123)))-(((x/y)/(z+9.123))/(x-((y+z)*9.123))))-((((x*y)/(z-9.123))+(x-((y-z)/9.123)))+((x-((y+z)*9.123))*((x/y)+(z/9.123)))))"
-"(((((x/y)-(z-9.123))/(x+(y/(z*9.123))))/((x-(y*(z/9.123)))-(x-((y/z)*9.123))))/(((x+(y/(z*9.123)))*(((x+y)*z)-9.123))*((x-((y/z)*9.123))+(x*(y-(z*9.123))))))"
-"(((((x/y)-(z/9.123))*((x-y)+(z+9.123)))*(((x-y)-(z+9.123))+((x-y)*(z/9.123))))*((((x-y)+(z+9.123))-((x*y)*(z+9.123)))-(((x-y)*(z/9.123))/(x+((y/z)+9.123)))))"
-"(((((x/y)/(7.123+w))/(x-((y+7.123)*w)))/((x-((y+7.123)/w))-((x*y)-(7.123/w))))/(((x-((y+7.123)*w))*((x/y)+(7.123/w)))*(((x*y)-(7.123/w))+((x+y)/(7.123-w)))))"
-"(((((x/y)/(7.123-w))-(x-((y-7.123)*w)))-((x-((y-7.123)/w))/((x/y)-(7.123/w))))-(((x-((y-7.123)*w))+((x/y)-(7.123*w)))+(((x/y)-(7.123/w))*((x-y)+(7.123+w)))))"
-"(((((x/y)/(z+9.123))/(x-((y+z)*9.123)))/((x-((y+z)/9.123))-((x*y)-(z/9.123))))/(((x-((y+z)*9.123))*((x/y)+(z/9.123)))*(((x*y)-(z/9.123))+((x+y)/(z-9.123)))))"
-"(((((x/y)/(z-9.123))-(x-((y-z)*9.123)))-((x-((y-z)/9.123))/((x/y)-(z/9.123))))-(((x-((y-z)*9.123))+((x/y)-(z*9.123)))+(((x/y)-(z/9.123))*((x-y)+(z+9.123)))))"
-"((((3.123*(y+(z*w)))*((3.123/y)-(z+w)))*(((3.123*y)-(z+w))+((3.123/y)/(z+w))))*((((3.123/y)-(z+w))-((3.123*y)/(z-w)))-(((3.123/y)/(z+w))/(3.123-((y+z)*w)))))"
-"((((3.123*(y-(z*w)))/((3.123*y)+(z+w)))/(((3.123/y)-(z+w))-((3.123*y)/(z-w))))/((((3.123*y)+(z+w))*((3.123/y)/(z-w)))*(((3.123*y)/(z-w))+(3.123-((y-z)/w)))))"
-"((((3.123+((y*z)*w))-(((3.123/y)/z)-w))-((((3.123*y)/z)-w)/((3.123-y)-(z*w))))-(((((3.123/y)/z)-w)+((3.123-y)-(z/w)))+(((3.123-y)-(z*w))*((3.123+y)*(z/w)))))"
-"((((3.123+((y*z)/w))+(((3.123*y)/z)-w))+((((3.123-y)/z)-w)*((3.123-y)+(z/w))))+(((((3.123*y)/z)-w)/((3.123-y)-(z*w)))/(((3.123-y)+(z/w))-((3.123+y)*(z*w)))))"
-"((((3.123+((y+z)*w))-(((3.123/y)*z)-w))-((((3.123*y)*z)-w)/((3.123+y)+(z*w))))-(((((3.123/y)*z)-w)+((3.123+y)+(z/w)))+(((3.123+y)+(z*w))*((3.123/y)+(z-w)))))"
-"((((3.123+((y+z)/w))+(((3.123*y)*z)-w))+((((3.123-y)*z)-w)*((3.123+y)-(z/w))))+(((((3.123*y)*z)-w)/((3.123+y)+(z*w)))/(((3.123+y)-(z/w))-((3.123*y)+(z-w)))))"
-"((((3.123+((y-z)*w))/(((3.123-y)/z)-w))/((((3.123+y)/z)-w)-((3.123-y)+(z*w))))/(((((3.123-y)/z)-w)*((3.123-y)+(z/w)))*(((3.123-y)+(z*w))+((3.123/y)-(z-w)))))"
-"((((3.123+((y-z)/w))*(((3.123+y)/z)-w))*((((3.123/y)*z)-w)+((3.123+y)+(z/w))))*(((((3.123+y)/z)-w)-((3.123-y)+(z*w)))-(((3.123+y)+(z/w))/((3.123*y)-(z-w)))))"
-"((((3.123+((y/z)*w))+((3.123*y)+(z/w)))+(((3.123*y)-(z*w))*((3.123+y)+(z-w))))+((((3.123*y)+(z/w))/((3.123+y)*(z-w)))/(((3.123+y)+(z-w))-((3.123-y)/(z*w)))))"
-"((((3.123+((y/z)+w))*((3.123*y)+(z*w)))*((((3.123/y)/z)-w)+((3.123-y)-(z/w))))*((((3.123*y)+(z*w))-((3.123+y)-(z-w)))-(((3.123-y)-(z/w))/((3.123+y)/(z*w)))))"
-"((((3.123+((y/z)/w))/((3.123*y)-(z*w)))/(((3.123*y)+(z*w))-((3.123+y)-(z-w))))/((((3.123*y)-(z*w))*((3.123+y)+(z-w)))*(((3.123+y)-(z-w))+((3.123+y)/(z/w)))))"
-"((((3.123+(y*(z/w)))+(3.123-((y/z)/w)))+((3.123-((y*z)*w))*(3.123/(y-(z*w)))))+(((3.123-((y/z)/w))/(3.123*(y+(z*w))))/((3.123/(y-(z*w)))-((3.123*y)-(z+w)))))"
-"((((3.123+(y/(z*w)))*(((3.123+y)*z)-w))*((3.123-((y/z)*w))+(3.123*(y-(z*w)))))*(((((3.123+y)*z)-w)-((3.123+y)-(z*w)))-((3.123*(y-(z*w)))/((3.123*y)+(z+w)))))"
-"((((3.123-((y*z)*w))*(3.123/(y-(z*w))))*((3.123/(y+(z*w)))+((3.123-y)/(z+w))))*(((3.123/(y-(z*w)))-((3.123*y)-(z+w)))-(((3.123-y)/(z+w))/((3.123*y)/(z+w)))))"
-"((((3.123-((y*z)/w))-(3.123/(y+(z*w))))-(((3.123/y)-(z*w))/((3.123-y)*(z+w))))-(((3.123/(y+(z*w)))+((3.123-y)/(z+w)))+(((3.123-y)*(z+w))*((3.123/y)*(z+w)))))"
-"((((3.123-((y+z)*w))*((3.123/y)+(z/w)))*(((3.123*y)-(z/w))+((3.123+y)/(z-w))))*((((3.123/y)+(z/w))-((3.123-y)-(z+w)))-(((3.123+y)/(z-w))/((3.123-y)*(z*w)))))"
-"((((3.123-((y+z)/w))-((3.123*y)-(z/w)))-(((3.123*y)+(z/w))/((3.123+y)*(z-w))))-((((3.123*y)-(z/w))+((3.123+y)/(z-w)))+(((3.123+y)*(z-w))*((3.123-y)/(z/w)))))"
-"((((3.123-((y-z)*w))+((3.123/y)-(z*w)))+(((3.123/y)-(z/w))*((3.123-y)+(z+w))))+((((3.123/y)-(z*w))/((3.123-y)*(z+w)))/(((3.123-y)+(z+w))-((3.123*y)*(z+w)))))"
-"((((3.123-((y-z)/w))/((3.123/y)-(z/w)))/(((3.123/y)+(z/w))-((3.123-y)-(z+w))))/((((3.123/y)-(z/w))*((3.123-y)+(z+w)))*(((3.123-y)-(z+w))+((3.123-y)*(z/w)))))"
-"((((3.123-((y/z)*w))+(3.123*(y-(z*w))))+((3.123*(y+(z*w)))*((3.123/y)-(z+w))))+(((3.123*(y-(z*w)))/((3.123*y)+(z+w)))/(((3.123/y)-(z+w))-((3.123*y)/(z-w)))))"
-"((((3.123-((y/z)/w))/(3.123*(y+(z*w))))/((3.123/(y-(z*w)))-((3.123*y)-(z+w))))/(((3.123*(y+(z*w)))*((3.123/y)-(z+w)))*(((3.123*y)-(z+w))+((3.123/y)/(z+w)))))"
-"((((3.123-(y*(z/w)))-(3.123-((y/z)*w)))-((3.123-((y/z)/w))/(3.123*(y+(z*w)))))-(((3.123-((y/z)*w))+(3.123*(y-(z*w))))+((3.123*(y+(z*w)))*((3.123/y)-(z+w)))))"
-"((((3.123-(y/(z*w)))/(((3.123-y)*z)-w))/((((3.123+y)*z)-w)-((3.123+y)-(z*w))))/(((((3.123-y)*z)-w)*((3.123+y)-(z/w)))*(((3.123+y)-(z*w))+((3.123/y)+(z+w)))))"
-"((((3.123/(y+(z*w)))+((3.123-y)/(z+w)))+(((3.123-y)*(z+w))*((3.123/y)*(z+w))))+((((3.123-y)/(z+w))/((3.123*y)/(z+w)))/(((3.123/y)*(z+w))-(3.123+((y/z)*w)))))"
-"((((3.123/(y-(z*w)))-((3.123*y)-(z+w)))-(((3.123-y)/(z+w))/((3.123*y)/(z+w))))-((((3.123*y)-(z+w))+((3.123/y)/(z+w)))+(((3.123*y)/(z+w))*(3.123-((y+z)/w)))))"
-"((((x*(5.123+(z*w)))*((x/5.123)-(z+w)))*(((x*5.123)-(z+w))+((x/5.123)/(z+w))))*((((x/5.123)-(z+w))-((x*5.123)/(z-w)))-(((x/5.123)/(z+w))/(x-((5.123+z)*w)))))"
-"((((x*(5.123-(z*w)))/((x*5.123)+(z+w)))/(((x/5.123)-(z+w))-((x*5.123)/(z-w))))/((((x*5.123)+(z+w))*((x/5.123)/(z-w)))*(((x*5.123)/(z-w))+(x-((5.123-z)/w)))))"
-"((((x*(y+(7.123*w)))*((x/y)-(7.123+w)))*(((x*y)-(7.123+w))+((x/y)/(7.123+w))))*((((x/y)-(7.123+w))-((x*y)/(7.123-w)))-(((x/y)/(7.123+w))/(x-((y+7.123)*w)))))"
-"((((x*(y+(z*9.123)))*((x/y)-(z+9.123)))*(((x*y)-(z+9.123))+((x/y)/(z+9.123))))*((((x/y)-(z+9.123))-((x*y)/(z-9.123)))-(((x/y)/(z+9.123))/(x-((y+z)*9.123)))))"
-"((((x*(y-(7.123*w)))/((x*y)+(7.123+w)))/(((x/y)-(7.123+w))-((x*y)/(7.123-w))))/((((x*y)+(7.123+w))*((x/y)/(7.123-w)))*(((x*y)/(7.123-w))+(x-((y-7.123)/w)))))"
-"((((x*(y-(z*9.123)))/((x*y)+(z+9.123)))/(((x/y)-(z+9.123))-((x*y)/(z-9.123))))/((((x*y)+(z+9.123))*((x/y)/(z-9.123)))*(((x*y)/(z-9.123))+(x-((y-z)/9.123)))))"
-"((((x+((5.123*z)*w))-(((x/5.123)/z)-w))-((((x*5.123)/z)-w)/((x-5.123)-(z*w))))-(((((x/5.123)/z)-w)+((x-5.123)-(z/w)))+(((x-5.123)-(z*w))*((x+5.123)*(z/w)))))"
-"((((x+((5.123*z)/w))+(((x*5.123)/z)-w))+((((x-5.123)/z)-w)*((x-5.123)+(z/w))))+(((((x*5.123)/z)-w)/((x-5.123)-(z*w)))/(((x-5.123)+(z/w))-((x+5.123)*(z*w)))))"
-"((((x+((5.123+z)*w))-(((x/5.123)*z)-w))-((((x*5.123)*z)-w)/((x+5.123)+(z*w))))-(((((x/5.123)*z)-w)+((x+5.123)+(z/w)))+(((x+5.123)+(z*w))*((x/5.123)+(z-w)))))"
-"((((x+((5.123+z)/w))+(((x*5.123)*z)-w))+((((x-5.123)*z)-w)*((x+5.123)-(z/w))))+(((((x*5.123)*z)-w)/((x+5.123)+(z*w)))/(((x+5.123)-(z/w))-((x*5.123)+(z-w)))))"
-"((((x+((5.123-z)*w))/(((x-5.123)/z)-w))/((((x+5.123)/z)-w)-((x-5.123)+(z*w))))/(((((x-5.123)/z)-w)*((x-5.123)+(z/w)))*(((x-5.123)+(z*w))+((x/5.123)-(z-w)))))"
-"((((x+((5.123-z)/w))*(((x+5.123)/z)-w))*((((x/5.123)*z)-w)+((x+5.123)+(z/w))))*(((((x+5.123)/z)-w)-((x-5.123)+(z*w)))-(((x+5.123)+(z/w))/((x*5.123)-(z-w)))))"
-"((((x+((5.123/z)*w))+((x*5.123)+(z/w)))+(((x*5.123)-(z*w))*((x+5.123)+(z-w))))+((((x*5.123)+(z/w))/((x+5.123)*(z-w)))/(((x+5.123)+(z-w))-((x-5.123)/(z*w)))))"
-"((((x+((5.123/z)+w))*((x*5.123)+(z*w)))*((((x/5.123)/z)-w)+((x-5.123)-(z/w))))*((((x*5.123)+(z*w))-((x+5.123)-(z-w)))-(((x-5.123)-(z/w))/((x+5.123)/(z*w)))))"
-"((((x+((5.123/z)/w))/((x*5.123)-(z*w)))/(((x*5.123)+(z*w))-((x+5.123)-(z-w))))/((((x*5.123)-(z*w))*((x+5.123)+(z-w)))*(((x+5.123)-(z-w))+((x+5.123)/(z/w)))))"
-"((((x+((y*7.123)*w))-(((x/y)/7.123)-w))-((((x*y)/7.123)-w)/((x-y)-(7.123*w))))-(((((x/y)/7.123)-w)+((x-y)-(7.123/w)))+(((x-y)-(7.123*w))*((x+y)*(7.123/w)))))"
-"((((x+((y*7.123)/w))+(((x*y)/7.123)-w))+((((x-y)/7.123)-w)*((x-y)+(7.123/w))))+(((((x*y)/7.123)-w)/((x-y)-(7.123*w)))/(((x-y)+(7.123/w))-((x+y)*(7.123*w)))))"
-"((((x+((y*z)*9.123))-(((x/y)/z)-9.123))-((((x*y)/z)-9.123)/((x-y)-(z*9.123))))-(((((x/y)/z)-9.123)+((x-y)-(z/9.123)))+(((x-y)-(z*9.123))*((x+y)*(z/9.123)))))"
-"((((x+((y*z)/9.123))+(((x*y)/z)-9.123))+((((x-y)/z)-9.123)*((x-y)+(z/9.123))))+(((((x*y)/z)-9.123)/((x-y)-(z*9.123)))/(((x-y)+(z/9.123))-((x+y)*(z*9.123)))))"
-"((((x+((y+7.123)*w))-(((x/y)*7.123)-w))-((((x*y)*7.123)-w)/((x+y)+(7.123*w))))-(((((x/y)*7.123)-w)+((x+y)+(7.123/w)))+(((x+y)+(7.123*w))*((x/y)+(7.123-w)))))"
-"((((x+((y+7.123)/w))+(((x*y)*7.123)-w))+((((x-y)*7.123)-w)*((x+y)-(7.123/w))))+(((((x*y)*7.123)-w)/((x+y)+(7.123*w)))/(((x+y)-(7.123/w))-((x*y)+(7.123-w)))))"
-"((((x+((y+z)*9.123))-(((x/y)*z)-9.123))-((((x*y)*z)-9.123)/((x+y)+(z*9.123))))-(((((x/y)*z)-9.123)+((x+y)+(z/9.123)))+(((x+y)+(z*9.123))*((x/y)+(z-9.123)))))"
-"((((x+((y+z)/9.123))+(((x*y)*z)-9.123))+((((x-y)*z)-9.123)*((x+y)-(z/9.123))))+(((((x*y)*z)-9.123)/((x+y)+(z*9.123)))/(((x+y)-(z/9.123))-((x*y)+(z-9.123)))))"
-"((((x+((y-7.123)*w))/(((x-y)/7.123)-w))/((((x+y)/7.123)-w)-((x-y)+(7.123*w))))/(((((x-y)/7.123)-w)*((x-y)+(7.123/w)))*(((x-y)+(7.123*w))+((x/y)-(7.123-w)))))"
-"((((x+((y-7.123)/w))*(((x+y)/7.123)-w))*((((x/y)*7.123)-w)+((x+y)+(7.123/w))))*(((((x+y)/7.123)-w)-((x-y)+(7.123*w)))-(((x+y)+(7.123/w))/((x*y)-(7.123-w)))))"
-"((((x+((y-z)*9.123))/(((x-y)/z)-9.123))/((((x+y)/z)-9.123)-((x-y)+(z*9.123))))/(((((x-y)/z)-9.123)*((x-y)+(z/9.123)))*(((x-y)+(z*9.123))+((x/y)-(z-9.123)))))"
-"((((x+((y-z)/9.123))*(((x+y)/z)-9.123))*((((x/y)*z)-9.123)+((x+y)+(z/9.123))))*(((((x+y)/z)-9.123)-((x-y)+(z*9.123)))-(((x+y)+(z/9.123))/((x*y)-(z-9.123)))))"
-"((((x+((y/7.123)*w))+((x*y)+(7.123/w)))+(((x*y)-(7.123*w))*((x+y)+(7.123-w))))+((((x*y)+(7.123/w))/((x+y)*(7.123-w)))/(((x+y)+(7.123-w))-((x-y)/(7.123*w)))))"
-"((((x+((y/7.123)+w))*((x*y)+(7.123*w)))*((((x/y)/7.123)-w)+((x-y)-(7.123/w))))*((((x*y)+(7.123*w))-((x+y)-(7.123-w)))-(((x-y)-(7.123/w))/((x+y)/(7.123*w)))))"
-"((((x+((y/7.123)/w))/((x*y)-(7.123*w)))/(((x*y)+(7.123*w))-((x+y)-(7.123-w))))/((((x*y)-(7.123*w))*((x+y)+(7.123-w)))*(((x+y)-(7.123-w))+((x+y)/(7.123/w)))))"
-"((((x+((y/z)*9.123))+((x*y)+(z/9.123)))+(((x*y)-(z*9.123))*((x+y)+(z-9.123))))+((((x*y)+(z/9.123))/((x+y)*(z-9.123)))/(((x+y)+(z-9.123))-((x-y)/(z*9.123)))))"
-"((((x+((y/z)+9.123))*((x*y)+(z*9.123)))*((((x/y)/z)-9.123)+((x-y)-(z/9.123))))*((((x*y)+(z*9.123))-((x+y)-(z-9.123)))-(((x-y)-(z/9.123))/((x+y)/(z*9.123)))))"
-"((((x+((y/z)/9.123))/((x*y)-(z*9.123)))/(((x*y)+(z*9.123))-((x+y)-(z-9.123))))/((((x*y)-(z*9.123))*((x+y)+(z-9.123)))*(((x+y)-(z-9.123))+((x+y)/(z/9.123)))))"
-"((((x+(5.123*(z/w)))+(x-((5.123/z)/w)))+((x-((5.123*z)*w))*(x/(5.123-(z*w)))))+(((x-((5.123/z)/w))/(x*(5.123+(z*w))))/((x/(5.123-(z*w)))-((x*5.123)-(z+w)))))"
-"((((x+(5.123/(z*w)))*(((x+5.123)*z)-w))*((x-((5.123/z)*w))+(x*(5.123-(z*w)))))*(((((x+5.123)*z)-w)-((x+5.123)-(z*w)))-((x*(5.123-(z*w)))/((x*5.123)+(z+w)))))"
-"((((x+(y*(7.123/w)))+(x-((y/7.123)/w)))+((x-((y*7.123)*w))*(x/(y-(7.123*w)))))+(((x-((y/7.123)/w))/(x*(y+(7.123*w))))/((x/(y-(7.123*w)))-((x*y)-(7.123+w)))))"
-"((((x+(y*(z/9.123)))+(x-((y/z)/9.123)))+((x-((y*z)*9.123))*(x/(y-(z*9.123)))))+(((x-((y/z)/9.123))/(x*(y+(z*9.123))))/((x/(y-(z*9.123)))-((x*y)-(z+9.123)))))"
-"((((x+(y/(7.123*w)))*(((x+y)*7.123)-w))*((x-((y/7.123)*w))+(x*(y-(7.123*w)))))*(((((x+y)*7.123)-w)-((x+y)-(7.123*w)))-((x*(y-(7.123*w)))/((x*y)+(7.123+w)))))"
-"((((x+(y/(z*9.123)))*(((x+y)*z)-9.123))*((x-((y/z)*9.123))+(x*(y-(z*9.123)))))*(((((x+y)*z)-9.123)-((x+y)-(z*9.123)))-((x*(y-(z*9.123)))/((x*y)+(z+9.123)))))"
-"((((x-((5.123*z)*w))*(x/(5.123-(z*w))))*((x/(5.123+(z*w)))+((x-5.123)/(z+w))))*(((x/(5.123-(z*w)))-((x*5.123)-(z+w)))-(((x-5.123)/(z+w))/((x*5.123)/(z+w)))))"
-"((((x-((5.123*z)/w))-(x/(5.123+(z*w))))-(((x/5.123)-(z*w))/((x-5.123)*(z+w))))-(((x/(5.123+(z*w)))+((x-5.123)/(z+w)))+(((x-5.123)*(z+w))*((x/5.123)*(z+w)))))"
-"((((x-((5.123+z)*w))*((x/5.123)+(z/w)))*(((x*5.123)-(z/w))+((x+5.123)/(z-w))))*((((x/5.123)+(z/w))-((x-5.123)-(z+w)))-(((x+5.123)/(z-w))/((x-5.123)*(z*w)))))"
-"((((x-((5.123+z)/w))-((x*5.123)-(z/w)))-(((x*5.123)+(z/w))/((x+5.123)*(z-w))))-((((x*5.123)-(z/w))+((x+5.123)/(z-w)))+(((x+5.123)*(z-w))*((x-5.123)/(z/w)))))"
-"((((x-((5.123-z)*w))+((x/5.123)-(z*w)))+(((x/5.123)-(z/w))*((x-5.123)+(z+w))))+((((x/5.123)-(z*w))/((x-5.123)*(z+w)))/(((x-5.123)+(z+w))-((x*5.123)*(z+w)))))"
-"((((x-((5.123-z)/w))/((x/5.123)-(z/w)))/(((x/5.123)+(z/w))-((x-5.123)-(z+w))))/((((x/5.123)-(z/w))*((x-5.123)+(z+w)))*(((x-5.123)-(z+w))+((x-5.123)*(z/w)))))"
-"((((x-((5.123/z)*w))+(x*(5.123-(z*w))))+((x*(5.123+(z*w)))*((x/5.123)-(z+w))))+(((x*(5.123-(z*w)))/((x*5.123)+(z+w)))/(((x/5.123)-(z+w))-((x*5.123)/(z-w)))))"
-"((((x-((5.123/z)/w))/(x*(5.123+(z*w))))/((x/(5.123-(z*w)))-((x*5.123)-(z+w))))/(((x*(5.123+(z*w)))*((x/5.123)-(z+w)))*(((x*5.123)-(z+w))+((x/5.123)/(z+w)))))"
-"((((x-((y*7.123)*w))*(x/(y-(7.123*w))))*((x/(y+(7.123*w)))+((x-y)/(7.123+w))))*(((x/(y-(7.123*w)))-((x*y)-(7.123+w)))-(((x-y)/(7.123+w))/((x*y)/(7.123+w)))))"
-"((((x-((y*7.123)/w))-(x/(y+(7.123*w))))-(((x/y)-(7.123*w))/((x-y)*(7.123+w))))-(((x/(y+(7.123*w)))+((x-y)/(7.123+w)))+(((x-y)*(7.123+w))*((x/y)*(7.123+w)))))"
-"((((x-((y*z)*9.123))*(x/(y-(z*9.123))))*((x/(y+(z*9.123)))+((x-y)/(z+9.123))))*(((x/(y-(z*9.123)))-((x*y)-(z+9.123)))-(((x-y)/(z+9.123))/((x*y)/(z+9.123)))))"
-"((((x-((y*z)/9.123))-(x/(y+(z*9.123))))-(((x/y)-(z*9.123))/((x-y)*(z+9.123))))-(((x/(y+(z*9.123)))+((x-y)/(z+9.123)))+(((x-y)*(z+9.123))*((x/y)*(z+9.123)))))"
-"((((x-((y+7.123)*w))*((x/y)+(7.123/w)))*(((x*y)-(7.123/w))+((x+y)/(7.123-w))))*((((x/y)+(7.123/w))-((x-y)-(7.123+w)))-(((x+y)/(7.123-w))/((x-y)*(7.123*w)))))"
-"((((x-((y+7.123)/w))-((x*y)-(7.123/w)))-(((x*y)+(7.123/w))/((x+y)*(7.123-w))))-((((x*y)-(7.123/w))+((x+y)/(7.123-w)))+(((x+y)*(7.123-w))*((x-y)/(7.123/w)))))"
-"((((x-((y+z)*9.123))*((x/y)+(z/9.123)))*(((x*y)-(z/9.123))+((x+y)/(z-9.123))))*((((x/y)+(z/9.123))-((x-y)-(z+9.123)))-(((x+y)/(z-9.123))/((x-y)*(z*9.123)))))"
-"((((x-((y+z)/9.123))-((x*y)-(z/9.123)))-(((x*y)+(z/9.123))/((x+y)*(z-9.123))))-((((x*y)-(z/9.123))+((x+y)/(z-9.123)))+(((x+y)*(z-9.123))*((x-y)/(z/9.123)))))"
-"((((x-((y-7.123)*w))+((x/y)-(7.123*w)))+(((x/y)-(7.123/w))*((x-y)+(7.123+w))))+((((x/y)-(7.123*w))/((x-y)*(7.123+w)))/(((x-y)+(7.123+w))-((x*y)*(7.123+w)))))"
-"((((x-((y-7.123)/w))/((x/y)-(7.123/w)))/(((x/y)+(7.123/w))-((x-y)-(7.123+w))))/((((x/y)-(7.123/w))*((x-y)+(7.123+w)))*(((x-y)-(7.123+w))+((x-y)*(7.123/w)))))"
-"((((x-((y-z)*9.123))+((x/y)-(z*9.123)))+(((x/y)-(z/9.123))*((x-y)+(z+9.123))))+((((x/y)-(z*9.123))/((x-y)*(z+9.123)))/(((x-y)+(z+9.123))-((x*y)*(z+9.123)))))"
-"((((x-((y-z)/9.123))/((x/y)-(z/9.123)))/(((x/y)+(z/9.123))-((x-y)-(z+9.123))))/((((x/y)-(z/9.123))*((x-y)+(z+9.123)))*(((x-y)-(z+9.123))+((x-y)*(z/9.123)))))"
-"((((x-((y/7.123)*w))+(x*(y-(7.123*w))))+((x*(y+(7.123*w)))*((x/y)-(7.123+w))))+(((x*(y-(7.123*w)))/((x*y)+(7.123+w)))/(((x/y)-(7.123+w))-((x*y)/(7.123-w)))))"
-"((((x-((y/7.123)/w))/(x*(y+(7.123*w))))/((x/(y-(7.123*w)))-((x*y)-(7.123+w))))/(((x*(y+(7.123*w)))*((x/y)-(7.123+w)))*(((x*y)-(7.123+w))+((x/y)/(7.123+w)))))"
-"((((x-((y/z)*9.123))+(x*(y-(z*9.123))))+((x*(y+(z*9.123)))*((x/y)-(z+9.123))))+(((x*(y-(z*9.123)))/((x*y)+(z+9.123)))/(((x/y)-(z+9.123))-((x*y)/(z-9.123)))))"
-"((((x-((y/z)/9.123))/(x*(y+(z*9.123))))/((x/(y-(z*9.123)))-((x*y)-(z+9.123))))/(((x*(y+(z*9.123)))*((x/y)-(z+9.123)))*(((x*y)-(z+9.123))+((x/y)/(z+9.123)))))"
-"((((x-(5.123*(z/w)))-(x-((5.123/z)*w)))-((x-((5.123/z)/w))/(x*(5.123+(z*w)))))-(((x-((5.123/z)*w))+(x*(5.123-(z*w))))+((x*(5.123+(z*w)))*((x/5.123)-(z+w)))))"
-"((((x-(5.123/(z*w)))/(((x-5.123)*z)-w))/((((x+5.123)*z)-w)-((x+5.123)-(z*w))))/(((((x-5.123)*z)-w)*((x+5.123)-(z/w)))*(((x+5.123)-(z*w))+((x/5.123)+(z+w)))))"
-"((((x-(y*(7.123/w)))-(x-((y/7.123)*w)))-((x-((y/7.123)/w))/(x*(y+(7.123*w)))))-(((x-((y/7.123)*w))+(x*(y-(7.123*w))))+((x*(y+(7.123*w)))*((x/y)-(7.123+w)))))"
-"((((x-(y*(z/9.123)))-(x-((y/z)*9.123)))-((x-((y/z)/9.123))/(x*(y+(z*9.123)))))-(((x-((y/z)*9.123))+(x*(y-(z*9.123))))+((x*(y+(z*9.123)))*((x/y)-(z+9.123)))))"
-"((((x-(y/(7.123*w)))/(((x-y)*7.123)-w))/((((x+y)*7.123)-w)-((x+y)-(7.123*w))))/(((((x-y)*7.123)-w)*((x+y)-(7.123/w)))*(((x+y)-(7.123*w))+((x/y)+(7.123+w)))))"
-"((((x-(y/(z*9.123)))/(((x-y)*z)-9.123))/((((x+y)*z)-9.123)-((x+y)-(z*9.123))))/(((((x-y)*z)-9.123)*((x+y)-(z/9.123)))*(((x+y)-(z*9.123))+((x/y)+(z+9.123)))))"
-"((((x/(5.123+(z*w)))+((x-5.123)/(z+w)))+(((x-5.123)*(z+w))*((x/5.123)*(z+w))))+((((x-5.123)/(z+w))/((x*5.123)/(z+w)))/(((x/5.123)*(z+w))-(x+((5.123/z)*w)))))"
-"((((x/(5.123-(z*w)))-((x*5.123)-(z+w)))-(((x-5.123)/(z+w))/((x*5.123)/(z+w))))-((((x*5.123)-(z+w))+((x/5.123)/(z+w)))+(((x*5.123)/(z+w))*(x-((5.123+z)/w)))))"
-"((((x/(y+(7.123*w)))+((x-y)/(7.123+w)))+(((x-y)*(7.123+w))*((x/y)*(7.123+w))))+((((x-y)/(7.123+w))/((x*y)/(7.123+w)))/(((x/y)*(7.123+w))-(x+((y/7.123)*w)))))"
-"((((x/(y+(z*9.123)))+((x-y)/(z+9.123)))+(((x-y)*(z+9.123))*((x/y)*(z+9.123))))+((((x-y)/(z+9.123))/((x*y)/(z+9.123)))/(((x/y)*(z+9.123))-(x+((y/z)*9.123)))))"
-"((((x/(y-(7.123*w)))-((x*y)-(7.123+w)))-(((x-y)/(7.123+w))/((x*y)/(7.123+w))))-((((x*y)-(7.123+w))+((x/y)/(7.123+w)))+(((x*y)/(7.123+w))*(x-((y+7.123)/w)))))"
-"((((x/(y-(z*9.123)))-((x*y)-(z+9.123)))-(((x-y)/(z+9.123))/((x*y)/(z+9.123))))-((((x*y)-(z+9.123))+((x/y)/(z+9.123)))+(((x*y)/(z+9.123))*(x-((y+z)/9.123)))))"
-"(((tan((tan(((((cos(((((cos(cos((cos(cos((((((sin(cos((0.90-(((cos((b-e))/b)-b)/e))))*3.88)+e)+1.87)/a)+b)))+b)))+pi)+pi)/a)+b))+e)+pi)+pi)/a))+pi))+b)+a)+a)"
-"(tan((tan((((a+cos((((pi+cos(tan((cos((pi+((b+(cos(cos((((((a*sin(sin(cos((((e/1.91)/1.01)+a)))))-e)/2.90)/a)+e)))+b))-pi)))+pi))))*b)+a)))+pi)/b))-3.28))/a)"
-"(tan(tan(((b+((b/(e+(sin((sin((b/((((a-((3.84-(e*(pi/(((((cos((cos(((cos(e)+b)/3.18))+pi))*0.41)-b)+e)/b)*0.45))))-e))*b)/1.93)+3.79)))-pi))+a)))/b))/b)))+b)"
-"(sin(sin((((((((((cos((cos(cos((((cos((((((((b/((b/(tan(((3.10+1.04)+a))-pi))/b))+a)+e)/2.22)/a)/a)/b))/e)/a)+pi)))+e))/a)/b)/b)-pi)-a)+1.75)*e)+3.51)*b)))/e)"
-"(tan(((cos((((sin(cos((sin((((cos(tan((pi/tan((sin(cos((((((2.87+(e+(((1.14/pi)+a)*b)))+a)+b)/e)+a)))-0.34)))))+a)+a)+b))/b)))+b)+b)+1.12))+0.70)/3.73))/0.37)"
-"(e+tan(((((sin((sin((sin(((2.77+((sin(((cos(((cos(((((((3.51+(cos(((0.96*a)/pi))+a))+3.79)-a)*e)*a)-a))/b)+b))+b)+b))+1.84)-pi))+e))-pi))/a))/a)*2.85)*pi)-e)))"
-"2.2+y+z/w+2.2+y+z*w+2.2+y-z/w-2.2+y-z*w+2.2+y*z/w*2.2+y*z*w-2.2+y/z+w+2.2+y/z/w+2.2+y/z*w-2.2-y+z/w*2.2-y+z*w*2.2-y-z/w-2.2-y-z*w+2.2-y*z/w+2.2-y*z*w-2.2-y/z/w"
-"2.2-y-z+w+2.2-y-z+w+2.2-y+z+w-2.2-y+z+w+2.2*y-z+w*2.2/y-z+w-2.2*y+z+w+2.2/y+z+w+2.2*y+z-w-2.2/y+z-w*2.2*y-z-w*2.2/y-z-w-2.2+y*z*w+2.2+y*z/w+2.2+y/z*w-2.2+y/z/w"
-"2.2-y/z*w*2.2+y*z-w-2.2-y*z-w+2.2*y*z-w*2.2/y*z-w-2.2+y/z-w*2.2-y/z-w*2.2*y/z-w-2.2/y/z-w+2.2*y+z*w+2.2*y-z*w-2.2*y+z/w+2.2*y-z/w*2.2/y+z/w-2.2/y-z/w+2.2/y-z*w"
-"2.2/y+z*w-2.2/y-z*w*2.2*y+z*w*2.2*y-z*w-2.2+y-z*w+2.2+y-z/w+2.2+y+z*w-2.2+y+z/w*2.2-y+z*w*2.2-y+z/w-2.2-y-z*w+2.2-y-z/w*2.2+y-z-w-2.2+y-z-w*2.2+y+z-w*2.2+y+z-w"
-"sin((((((a+sin(tan(cos((((tan(((((((sin(((sin(sin(((cos(((tan(tan(0.79))/e)+a))+3.81)+pi)))+a)*3.33))/1.89)/pi)*a)+a)/3.08)-a))/e)+0.34)*b)))))*a)+b)+3.70)+a))"
-"x+3.3+z/w+x+3.3+z*w+x+3.3-z/w-x+3.3-z*w+x+3.3*z/w*x+3.3*z*w-x+3.3/z+w+x+3.3/z/w+x+3.3/z*w-x-3.3+z/w*x-3.3+z*w*x-3.3-z/w-x-3.3-z*w+x-3.3*z/w+x-3.3*z*w-x-3.3/z/w"
-"x+y+4.4/w+x+y+4.4*w+x+y-4.4/w-x+y-4.4*w+x+y*4.4/w*x+y*4.4*w-x+y/4.4+w+x+y/4.4/w+x+y/4.4*w-x-y+4.4/w*x-y+4.4*w*x-y-4.4/w-x-y-4.4*w+x-y*4.4/w+x-y*4.4*w-x-y/4.4/w"
-"x+y+z/5.5+x+y+z*5.5+x+y-z/5.5-x+y-z*5.5+x+y*z/5.5*x+y*z*5.5-x+y/z+5.5+x+y/z/5.5+x+y/z*5.5-x-y+z/5.5*x-y+z*5.5*x-y-z/5.5-x-y-z*5.5+x-y*z/5.5+x-y*z*5.5-x-y/z/5.5"
-"x-3.3-z+w+x-3.3-z+w+x-3.3+z+w-x-3.3+z+w+x*3.3-z+w*x/3.3-z+w-x*3.3+z+w+x/3.3+z+w+x*3.3+z-w-x/3.3+z-w*x*3.3-z-w*x/3.3-z-w-x+3.3*z*w+x+3.3*z/w+x+3.3/z*w-x+3.3/z/w"
-"x-3.3/z*w*x+3.3*z-w-x-3.3*z-w+x*3.3*z-w*x/3.3*z-w-x+3.3/z-w*x-3.3/z-w*x*3.3/z-w-x/3.3/z-w+x*3.3+z*w+x*3.3-z*w-x*3.3+z/w+x*3.3-z/w*x/3.3+z/w-x/3.3-z/w+x/3.3-z*w"
-"x-y-4.4+w+x-y-4.4+w+x-y+4.4+w-x-y+4.4+w+x*y-4.4+w*x/y-4.4+w-x*y+4.4+w+x/y+4.4+w+x*y+4.4-w-x/y+4.4-w*x*y-4.4-w*x/y-4.4-w-x+y*4.4*w+x+y*4.4/w+x+y/4.4*w-x+y/4.4/w"
-"x-y-z+5.5+x-y-z+5.5+x-y+z+5.5-x-y+z+5.5+x*y-z+5.5*x/y-z+5.5-x*y+z+5.5+x/y+z+5.5+x*y+z-5.5-x/y+z-5.5*x*y-z-5.5*x/y-z-5.5-x+y*z*5.5+x+y*z/5.5+x+y/z*5.5-x+y/z/5.5"
-"x-y/4.4*w*x+y*4.4-w-x-y*4.4-w+x*y*4.4-w*x/y*4.4-w-x+y/4.4-w*x-y/4.4-w*x*y/4.4-w-x/y/4.4-w+x*y+4.4*w+x*y-4.4*w-x*y+4.4/w+x*y-4.4/w*x/y+4.4/w-x/y-4.4/w+x/y-4.4*w"
-"x-y/z*5.5*x+y*z-5.5-x-y*z-5.5+x*y*z-5.5*x/y*z-5.5-x+y/z-5.5*x-y/z-5.5*x*y/z-5.5-x/y/z-5.5+x*y+z*5.5+x*y-z*5.5-x*y+z/5.5+x*y-z/5.5*x/y+z/5.5-x/y-z/5.5+x/y-z*5.5"
-"x/3.3+z*w-x/3.3-z*w*x*3.3+z*w*x*3.3-z*w-x+3.3-z*w+x+3.3-z/w+x+3.3+z*w-x+3.3+z/w*x-3.3+z*w*x-3.3+z/w-x-3.3-z*w+x-3.3-z/w*x+3.3-z-w-x+3.3-z-w*x+3.3+z-w*x+3.3+z-w"
-"x/y+4.4*w-x/y-4.4*w*x*y+4.4*w*x*y-4.4*w-x+y-4.4*w+x+y-4.4/w+x+y+4.4*w-x+y+4.4/w*x-y+4.4*w*x-y+4.4/w-x-y-4.4*w+x-y-4.4/w*x+y-4.4-w-x+y-4.4-w*x+y+4.4-w*x+y+4.4-w"
-"x/y+z*5.5-x/y-z*5.5*x*y+z*5.5*x*y-z*5.5-x+y-z*5.5+x+y-z/5.5+x+y+z*5.5-x+y+z/5.5*x-y+z*5.5*x-y+z/5.5-x-y-z*5.5+x-y-z/5.5*x+y-z-5.5-x+y-z-5.5*x+y+z-5.5*x+y+z-5.5"
-"(sin(((sin((cos(((b-(((sin(tan(tan(((sin((tan(cos((e+(((tan((((tan(((3.51/b)+2.91))*1.47)/a)/a))+b)*e)/pi))))*2.44))+b)+pi))))-b)+a)*3.23))/0.97))+b))+e)*a))+e)"
-"sin(cos((((cos((((((((((sin((tan((cos(((((b-(((sin((cos((e*cos((a-pi))))+a))+e)+b)-1.65))+b)*1.55)/2.57))+b))+b))+pi)/b)/b)+a)+pi)-b)/b)-1.70)/0.40))+e)+pi)-e)))"
-"sin((((((((sin(((tan(tan(((((((((((((sin((((pi-(((a/b)/2.49)+e))+a)-e))/1.49)+e)+0.42)*pi)+3.68)-a)+b)+2.60)*a)/0.80)-a)+a)))+b)/0.59))*1.22)/a)+a)+e)*0.46)+a)/b))"
-"((((3.65-(cos(sin(((b+((((((((cos((((((pi/((tan((sin(((((1.15+(((b+a)+b)/b))+a)+a)+pi))-2.20))/1.83)+b))+a)+b)*pi)+e))*b)*b)+a)-3.53)+e)-a)-b)+a))*a)))+b))+e)*b)+b)"
-"tan(((tan((a+((((sin((cos(cos((((pi*(tan(cos((tan((cos(tan(sin(cos(((tan(cos(sin((((a/1.32)-a)-e))))+b)+e)))))*pi))/b)))+pi))-a)+b)))/2.99))-b)-e)*a)+e)))+3.95)+b))"
-"tan((b/tan((e+((((((b-(((e+((tan((sin(((cos((cos(((sin((cos((((a*a)*0.25)/e))+1.46))+b)*1.76))-3.16))-2.32)+0.23))*e))*a)/b))+e)+b))*3.77)/1.73)-pi)*3.02)-2.26)))))"
-"((((((tan(((pi+(((b+((((a+(sin(((pi-(sin(((((((sin(((tan(((e*((e+a)*3.95))+b))-a)*pi))-e)-pi)+pi)+pi)+b)*a))+b))-b))-e))*b)/1.51)*pi))+a)*a))*pi))+pi)*b)/a)/b)-b)*e)"
-"((((cos(tan(((a+(cos(((a+tan(sin((tan((cos((cos((sin((tan((a*tan(cos((tan(tan(tan((sin((1.72/a))*b))))+b)))))-3.86))+pi))/b))*a))*a))))-1.18))+2.23))+a)))*e)+b)-e)/e)"
-"(tan(tan((((cos((((((((sin((((((sin((cos(((b/sin(cos((((sin(((1.92/a)-b))+a)*pi)*b))))/b))-1.44))+0.28)-b)+e)+2.00)-pi))+b)+2.55)+b)+pi)+3.80)*a)-e))+b)-a)*3.22)))/b)"
-"tan(sin(sin(cos(((cos((((((tan((((e*((b+(cos((a-cos(sin(((pi-((tan((((((a+b)*a)*2.70)+0.72)/3.46))/e)+b))+b)))))+1.36))+a))/pi)-b))-b)+2.41)-e)*3.80)/e))/0.20)+b)))))"
-"(2.10+sin((sin(tan((cos((cos((((sin((pi-((cos(cos(cos(cos((((((((2.83*(tan(((a+e)+e))+b))*a)*b)-3.86)+2.02)-2.50)-2.13)))))+1.31)/2.33)))*a)/a)+b))+1.81))/2.56)))+a)))"
-"(sin((cos((((((((a+(e*sin((((tan(cos(cos(((a+(0.53+cos(((((tan(((3.12*(cos(cos(pi))-b))+e))+a)+b)/b)*b))))*3.87))))+b)+4.00)+0.40))))/pi)+e)-0.44)+pi)-a)+pi))+pi))+pi)"
-"sin(((((tan((((tan(sin(((tan(((((((((tan((cos((sin(((pi+(((e+(1.98-(2.62+a)))-b)+b))/b))*b))/a))-pi)/pi)+b)*a)*1.59)-0.23)/pi)/b))*b)/a)))+b)+a)*a))*e)*0.11)*b)+2.50))"
-"(b*((sin(tan((((sin((tan(cos(sin((tan((((cos((a-(sin((cos(tan(cos(sin(tan((tan((((((tan(b)/e)+b)-e)/b)-pi))+a))))))/e))/b)))*e)+b)*0.02))+a))))+a))/a)+a)+b)))/1.76)+a))"
-"cos((((b+((((((3.00-(a*(sin(((b-cos((cos((tan((((e-(0.34-((((1.52/((e+(a/tan((((b/a)*a)/e))))-e))/a)+a)+e)))-a)*b))*2.32))*3.61)))/0.01))+b)))*a)/3.11)/b)/pi)-b))/b)/e))"
-"((cos(((b*cos((((cos((cos((cos((((((((((((tan(((0.30*(((((0.70-pi)+e)+b)*e)-b))*pi))+a)/a)/a)+1.31)/b)+2.74)-pi)+a)-pi)/a)-3.93))*e))+0.33))/a)-pi)-1.15)))/1.12))-b)+1.37)"
-"(((cos(((((tan(sin(cos(((sin(((a-(((((cos(sin(cos(cos(((cos(((((2.48+((b*b)+e))+0.72)-b)/e))+b)*3.38)))))/a)/e)+0.61)+b)-b))/2.54))/pi)*0.89))))*3.32)+a)+pi)*a))-a)+pi)+pi)"
-"tan((cos(((tan((sin((tan((((((((sin(((cos(tan(cos((tan((3.17*(sin(((((e*((b*a)-a))*0.42)-a)+a))-pi)))/pi))))+3.86)*2.26))+b)+b)/e)+a)*2.61)+pi)+e))+a))-1.27))-b)+2.97))/b))"
-"(b*(sin((b/((cos((cos((((((sin(((cos(tan(sin((tan((((sin((3.78+(((((sin((tan(((pi-pi)+b))*b))-a)+pi)+pi)-e)+b)))-b)-a)-pi))/b))))+a)*b))+e)-e)/b)+3.43)/pi))+a))+a)-pi)))-b))"
-"(((pi+(tan((((cos((pi+(((sin((((((cos((cos((cos(((sin(sin(sin(cos((tan((tan((1.06+0.35))+3.92))*b)))))/a)+b))+e))/e))*a)-1.37)+0.33)/a)/e))*b)*a)+a)))-0.23)+pi)*b))+b))+a)+e)"
-"((cos(cos((cos((tan(((e+sin((sin(tan((0.32+((cos(((((((sin(((((tan(cos((((cos(((a-b)+pi))+1.56)+pi)*b)))-a)+b)/a)+2.26))*b)+b)-pi)/b)*pi)/b))/a)-e))))/b)))-a))+a))+pi)))-b)/a)"
-"(tan(sin(((((((((((cos(cos(((((0.23+((((((((((2.27-(cos((((e-b)*a)+e))*0.41))+b)+pi)*3.47)-a)+3.78)-a)+pi)/b)+pi))/b)/e)+pi)))-1.84)-a)+pi)/0.86)-0.35)*a)-b)+b)-e)-3.10)))*pi)"
-"(tan(((b+((3.41/(a+(sin(((sin((sin(cos((((((((((((((((sin((tan((sin(sin(pi))/b))/b))/b)*e)+b)-pi)-2.26)-a)+pi)*a)/0.92)/a)+pi)/b)+a)-pi)+a)))+2.56))-pi)*b))-a)))+2.11))/pi))+e)"
-"cos((sin((((((((((((pi-sin((((cos((((tan((pi*(tan((((cos((b+(((tan((pi/a))-a)+0.61)/b)))+pi)-b)-b))+b)))-e)/a)-1.31))+b)+e)/e)))-b)-a)+e)+2.73)*3.13)*b)-b)+b)-pi)*2.98))/3.63))"
-"(((a*((1.22-(b+((((cos((sin(tan((((tan(tan(((a/sin(cos(((((2.68+(((((tan(tan(b))+3.93)-pi)+e)/pi)/pi))+b)/e)-a))))+a)))+3.04)*0.85)+a)))*b))/1.70)-b)-0.20)-2.46)))-pi))+b)*0.41)"
-"((((((((b-cos(((cos(cos((((tan(((((((0.97/(0.56/(cos((cos(((((((((b*(pi-b))/e)+a)-e)/b)+a)-e)-2.93))+a))*b)))/b)/a)+a)/b)/3.64))-a)+a)+b)))/3.44)-a)))/b)+2.48)*a)/0.59)+a)/a)+pi)"
-"((((tan(sin((1.27*(cos(((((sin((((a+sin((((e*cos((tan((2.10-((((((cos(sin((((sin(a)+a)/b)+1.96)))/pi)*0.16)*a)+a)+b)+e)))*pi)))/a)+pi)))+a)/a))+e)+0.69)-e)/b))/e))))+pi)*b)+b)*b)"
-"(cos(((((((sin((cos((e*sin((((((cos((((cos(sin((((sin(cos(sin((tan((e/((b+3.61)*1.43)))*e))))*2.74)-0.86)+1.45)))+pi)+e)-a))-e)+b)-a)-e)*a))))-a))/b)/b)*0.49)+pi)/1.47)*b))*1.83)"
-"((((2.80/(((cos(((tan((cos(cos(((((((cos(((((b+tan(sin((((tan((a+(((((a+e)-b)+e)*b)-a)))+b)-2.38)+a))))+e)/pi)+a))*b)+e)*a)*1.97)+e)/e)))+0.63))/e)+1.23))/1.39)+a)+a))+0.88)+a)+a)"
-"((((a+(sin((a+(pi*(((cos(sin(sin((((cos(((((sin(cos(((3.79+(((sin((((b*((((b+a)+a)+e)+pi))+a)+b))*1.40)+3.98)/3.45))/0.68)))+a)/e)-b)-b))/a)-a)/e))))/pi)-b)+b))))*a))+a)/pi)+1.29)"
-"(((e+tan((e+(((((sin((((((sin(sin(tan((sin(((cos((tan(sin(tan((e/((b+(((0.59+3.04)+b)+b))-1.51)))))+pi))*a)-pi))/2.14))))+3.03)-a)+e)+3.51)*a))/3.55)/b)+0.59)+a)-a))))+1.99)/2.62)"
-"((0.20+((((((((2.84-(((sin(((cos(((cos(((((a+tan(((((((1.83-sin(((((a+b)-pi)-b)+pi)))/3.16)+a)/a)+a)/e)))/0.84)-a)+3.56))-b)+b))*b)+b))/0.49)+b)-b))/pi)+2.42)-a)+2.80)+a)-b)*b))*b)"
-"((2.63*((tan((cos((((((((((tan(((((((pi-(pi-(1.85+((b+((tan(((sin((3.09+(a*b)))+b)*a))/a)+a))*pi))))-b)/3.67)+e)*3.23)-2.21))-b)+b)-b)+b)+3.55)-e)/1.57)-1.99)*b))*0.01))+pi)/a))+b)"
-"sin((((b+sin(tan((cos((tan((((tan(((((cos((2.57-(3.77+(b/(a-(((a*(b*cos((sin((((b*sin((0.74-(b-(pi+b)))))*a)+b))-0.95))))-b)-a))))))*a)+e)-1.85)+pi))/b)*b)-e))+b))/pi))))+a)+1.26))"
-"(((((tan(cos(((cos(((((((sin(sin((sin((((((sin((((tan((((a/sin((1.09/pi)))+a)/b))-b)+0.94)*0.24))/pi)+b)-a)+0.94)*b))/0.82)))*a)+1.26)+a)*2.96)-b)/pi))+b)+a)))*pi)*a)*0.68)+a)-0.25)"
-"((((cos((b*(sin(tan((((((e+(3.01+(((((((sin((((((b+tan((sin(((cos(tan((b/pi)))/pi)/e))/a)))+b)+b)-0.40)/pi))*a)+b)+a)*1.18)/1.51)/a)/b)))+1.02)-b)+a)+a)))-a)))*pi)-2.01)+0.35)+3.46)"
-"sin((((b*(1.97+((tan(((tan(((cos(cos(((((e+(1.92/(b-(((a-(b-sin(tan(cos(((e/sin(((sin(cos(cos(((a/b)/3.17))))+a)/a)))+e))))))-a)+a))))*b)*3.19)*b)))*b)-b))/a)-a))+a)-a)))*pi)+0.95))"
-"(((((sin(((cos(cos((((cos((((2.51/tan((a+sin((((b+((2.80/((3.84+sin(sin((((sin((a/e))+a)*pi)-pi))))-b))/0.90))+2.50)/1.02)))))*b)-pi))*3.56)*pi)+b)))*b)+pi))+e)+3.96)+1.29)-pi)+3.05)"
-"((cos(((tan((((((3.95+(((3.49+((tan(((tan((((((0.95+((((b/(e+tan(sin(cos((((b+0.48)*0.95)+2.21))))))+b)+a)/pi))*a)+pi)-a)*0.86))/b)+a))/b)-a))-1.30)+e))+a)/3.34)+a)-a))+a)/a))-pi)/e)"
-"((pi/(b/((((1.40/((((sin((((((2.13-((((((e*(cos(((((cos((((a/((a*a)+pi))*b)+a))+e)+e)+2.33)-e))+e))+b)-3.99)+1.63)/b)*b))-1.42)/a)/1.09)+2.38))-0.97)/a)-2.93)-1.50))*2.88)/b)/b)))+b)"
-"tan(((((3.17-(3.66+((b-(((sin(sin((((b/cos((a/((0.58*(e*(((sin((b+sin(sin(sin(cos(tan(((sin((e-0.53))+3.14)/b))))))))+3.99)+0.63)+b)))*a))))-1.72)/b)))+e)-a)*0.87))+b)))-3.79)+a)*b))"
-"(pi+tan((((((cos((((3.06*cos((((a+((((tan((3.99-((((sin((b-(((sin(((b/((1.61*(b+a))+3.74))*pi))+a)+1.64)+0.56)))*b)-1.49)+2.41)+e)))*a)-b)/b)/a))/a)/b)))+a)*pi))/pi)-a)+a)+pi)-0.49)))"
-"((((sin(tan((((cos((((a/(((b+cos((sin((a-tan((e/(((((cos(sin(((sin((a+tan((sin((e/(pi*a)))+pi))))/a)+2.25)))/b)*1.71)/b)+b)*0.01)))))+e)))/a)-e))+pi)*a))*b)-0.64)-1.26)))-e)*0.84)+a)*b)"
-"((b+(1.73*(a+(tan((((((cos((((sin((tan(tan(((3.19*sin((tan((((a-((tan((sin(sin((a+((cos(pi)+a)+a))))-a))+a)*1.83))-b)/pi))/2.37)))/a)))/pi))+e)/2.14)*b))/b)*3.91)+2.43)/pi)-a))/a))))*b)"
-"cos(sin((1.01/sin(((((sin((cos(((tan((cos((tan(tan(((a-(tan(cos((tan((((((a+(((sin((1.62-0.90))+pi)+b)+b))-b)/a)-1.22)+a))*1.82)))-e))/pi)))/e))+3.31))+b)*a))+a))*a)+pi)+3.26)/3.57)))))"
-"(((((1.79*sin(((tan(sin((((((b+(tan(((cos(((((b/sin((cos(((tan((cos(((tan(e)+1.15)/a))/a))*2.93)+1.84))+a)))/0.44)+3.75)-2.12))+1.75)+b))/1.82))+a)-pi)*pi)+2.23)))+a)*b)))/b)/a)+1.06)+a)"
-"(((pi-((((sin(((((cos((sin((sin((cos(((((((((a+((b/(((e/(((cos((sin(((b+a)/2.85))/b))-b)*a)/a))*a)/e))+a))*b)*a)+e)*b)-b)+a)*e))/1.56))+1.28))+b))/1.79)+0.57)*a)+pi))-3.98)+a)*e)*b))-e)+a)"
-"((((cos(sin(sin(((cos((tan(cos(tan(cos(cos(cos((cos(((tan(((b-((2.78+((((((b*((((cos(((((b/e)-b)+b)*e))+a)/e)-a)-b))-a)+b)/b)+pi)-a))/b))+pi))+e)+pi))*a)))))))-2.47))/pi)+pi))))-e)+a)-a)+b)"
-"(((b+tan(((tan((cos(((cos(cos((((((((cos(sin((tan((a+(((((((((b*cos(((0.90*b)*3.43)))/a)-a)+pi)*b)-3.40)+b)+a)+0.35)))/a)))-0.75)+b)/b)-1.67)+pi)/b)+1.74)))*1.74)+pi))+pi))*1.90)/e)))/e)-a)"
-"(((((cos((((a*((a-((((((sin(((tan((((((cos((sin(((tan(((1.02*((tan(cos(e))*3.41)*b))+3.95))*2.52)-0.11))+b))+pi)/e)-0.07)/a)+a))/a)*b))*b)/a)/a)/a)+2.39)+a))+b))*a)+b))*0.54)+1.05)/a)+b)+pi)"
-"((cos((sin(((((pi*((b+(sin((b/(pi+((a-(pi+sin(sin(sin(sin(((cos((sin(((sin(((sin((b-(cos(sin(((3.25*2.01)/a)))*pi)))+a)-b))-pi)+a))+a))-a)+a)))))))*1.43))))/e))*3.89))+a)+e)-a))+a))+b)+0.97)"
-"sin(((e+(tan(((((tan(cos((b-((b-(sin(((tan((tan((pi/((a/(cos((a+cos((((sin(sin(((((((a+1.20)/b)*2.62)+0.84)*3.15)/e)))+3.69)+a)+b))))*a))+a)))-b))+a)-2.95))*a))*b))))+a)/b)+b)+a))/b))+3.45))"
-"(2.74+((((((sin((((((cos((((((((tan(sin((tan(cos((tan((((sin((1.67+sin((cos(tan(tan(e)))/1.44))))+b)-2.91)+b))-a)))+a)))-e)+0.82)+a)+a)/b)*b)-b))-a)-e)+b)+0.32)+pi))+a)/e)/1.08)/pi)/2.99)+b))"
-"(cos((((((a/sin((tan(((sin((((sin((cos(((((e+((tan(cos(((cos(cos(((cos((((((a+(a*b))+pi)-b)/3.53)+b))+2.27)+a)))-b)/b)))+a)*2.54))+a)/a)+e))/0.68))+0.05)+b)-a))/e)+b))-a)))-b)*a)+b)+a))+2.46)"
-"cos((sin(((e-cos(((tan((((((a*(((((((((cos(((((b/(((((cos((tan((e*((tan(e)+b)*b)))*a))*e)+pi)-e)/a)*a))-1.40)*b)*2.92))/0.17)+a)+0.24)/a)*b)+e)+b)*1.73)/b))+a)/b)+2.19)-a))+a)+b)))+1.01))+a))"
-"(((0.57-(((((a*((sin(cos((a+cos((((((sin(((sin(((((b/(b+((((((((((3.81-e)/0.34)+e)*0.45)+e)/a)-pi)*a)-e)+2.79)))+1.17)*e)/e))-b)-b))+e)/e)+a)+b)+a)))))/2.86)+0.55))+e)/0.22)+b)-e))/2.11)*2.18)"
-"cos((((b+((e*(sin(((b*tan((pi+((((((((((((((((sin((((((a+(((((sin((b-0.10))/a)*a)+e)/a)-0.04))*e)*a)*b)+pi))+a)+a)-pi)/1.03)+pi)+3.89)/e)+e)+a)+e)*e)*a)/pi)-2.85)+pi)+b))))/b))*e))*b))/b)-pi))"
-"tan((((((((tan(cos((b/sin((((((cos(((sin(tan(cos(sin(tan((e/((cos(cos(tan(cos((e+tan((e+sin((tan(((pi/b)*e))-b)))))))))+pi)+1.13)))))))/a)*b))/a)/a)/0.04)+a)/b)))))+b)+e)+2.20)+a)/0.30)*b)-pi))"
-"(((tan((2.10+(1.40/(e+(a/(((((((tan((tan((((tan((((sin(((tan((2.57/(((cos(((((1.78+a)+a)+b)/0.73))+b)+a)-b)))+a)+1.24))-0.68)*pi)/e))+0.01)-b)*a))/e))+3.27)+b)+3.39)*b)+2.35)+b)+b))))))/a)+pi)/a)"
-"((tan((0.70*(0.09*(0.08*(((tan((tan(((((cos(tan(((a-sin(cos((((((sin((((a-cos(cos((sin(tan(cos(((3.22-pi)/a))))-a))))-a)/b))/a)*pi)/a)*2.82)*a))))+pi)))*e)-b)*a)+2.63))+0.67))+b)+b)+e)))))*pi)-b)"
-"cos((((tan(((a/(b-sin((e/((((tan(((((sin(cos((((a*((sin(tan((tan((((((2.14-(((((a*tan(e))-pi)-pi)*3.70)-b))-a)*2.91)*a)/a))+a)))+a)+3.54))+3.88)/a)))-pi)-b)-b)+a))-b)/a)-pi)+pi)))))*a))-b)*e)/e))"
-"((((((0.51+(((((e+(sin(tan(((1.66/(((((a/(a-((((cos(((cos(((((((cos(sin(1.02))+pi)-1.76)+e)-b)+b)/e))+a)*b))*a)/3.14)*a)-b)))-3.60)+1.66)/a)+a))+a)))+pi))*pi)*b)*3.58)*b))+2.20)-pi)*2.79)*e)+1.40)"
-"((((3.40+(tan(cos((((tan((cos((sin(sin((b/sin((a-((((0.03+(tan(tan((a+(((((((tan(((((e*pi)/pi)/b)*e))-b)-2.62)-pi)*pi)+3.67)*b)*0.63))))+a))+a)+0.05)+a))))))*a))/pi))+b)*e)+a)))-2.26))+b)-1.34)+a)"
-"((tan(cos(((3.82+(sin((cos(((1.49/(sin((((((tan(((sin(((((tan((tan(sin(((((((cos(a)+1.23)+b)/pi)-pi)+a)+b)))*b))+b)*pi)+a)/1.02))-1.75)/e))+pi)*e)/b)/pi)-a))-3.28))+b))+3.45))+0.78))/a)))/2.19)+e)"
-"(a*((a/((a+cos((((((((((pi/(a-(((((b-(a*sin((b-tan(((pi+((((((pi/cos(cos((tan(tan((tan(tan(3.30))*2.76)))-b))))*2.98)/b)-b)+pi)+e))+pi))))))+a)+3.08)+e)-b)))-a)*0.18)/a)-pi)+pi)+b)*b)+a)))-e))-b))"
-"cos(cos((((((sin(((((3.94+((sin(((tan(tan(((sin((((tan((((sin(((cos(((((1.89/(3.75+a))*b)/pi)/a))+a)/e))+e)+0.44)-b))+b)-e)*b))*b)/1.32)))*3.89)+3.65))+pi)+b))*b)*3.89)*3.18))+1.43)-e)-a)*pi)+b)))"
-"sin(((e+(((sin((b+cos((((((pi/(sin((b/cos((sin((1.19/(2.01*(e*((0.92-(1.01-(tan((((((((((((3.39+a)-b)/a)/2.82)-e)-pi)+2.47)+a)+pi)-a)*b))-pi)))/a)))))*a))))+3.01))*a)*pi)+b)+b))))-e)+pi)-e))/3.27))"
-"((tan(((tan((cos((tan((((1.17-(cos(cos(sin(sin(((a+(((sin(sin(((((((0.28+(((((((((a/b)+b)*0.82)*3.26)+pi)-e)+a)-pi)+pi))-b)*a)*a)/a)+b)))+1.49)+a)-3.54))*a)))))*a))+b)-b))/a))-e))-b)-e))+3.37)+3.99)"
-"((((tan(((1.17*cos(((2.48+(((((((b+((b/((sin((cos(((1.40-sin(cos(cos((sin(tan(tan((((sin(((3.54-b)+a))+b)-0.79)*3.78))))-3.22)))))+b))-1.54))-e)-0.34))*a))+a)+a)/b)+pi)+e)-a))/3.66)))*e))/b)+b)-b)/a)"
-"(((cos(cos((((b*(((pi-tan((0.14-((cos(sin((sin((cos(((0.95/((tan((e+(((cos((cos(((2.51*tan(((a-cos(cos(b)))-0.49)))*a))+a))*b)+b)*b)))-a)/a))*a))+0.26))-pi)))-pi)+1.19))))+pi)-2.53))+b)/b)))+b)+a)*a)"
-"tan((cos((((tan(((e*(a-(((b/(((((cos((sin(cos((b+((2.54-((0.21*(cos(((cos(cos(sin(cos((((cos((a+b))*a)/b)-b)))))+b)/pi))-pi))+0.56))/a))))-a))/pi)+b)-2.31)/pi)-pi))+a)*pi)))+0.64))+2.78)-b)+a))+2.36))"
-"(cos(((b/((0.85*((tan(((((((tan(((((((((2.36/sin(sin((cos(((cos((a*((sin((((b+(b/(b/(1.37-pi))))*a)+a))/a)/0.45)))+pi)/pi))/b))))-b)+e)/2.54)+a)*b)/0.79)/b))+b)*b)+e)/e)+b)+b))+b)+e))+pi))+2.27))*1.70)"
-"(sin(((b-(sin(((b+cos((((cos(tan((((sin(sin(sin((((cos(((b*((tan(((((b/((((a*((pi*((b*b)/b))+b))-e)+b)+a))+e)+1.51)-b))-pi)+a))*a))+2.54)-2.36)-0.90))))*e)+b)/b)))/b)*3.23)+3.84)))+b))+2.12))+3.99))+a)"
-"sin(cos(((0.50-((((((b/tan((((((((e*(cos((sin((e+(cos((a-((e*((cos(((((((b-tan(((((pi*e)+e)-2.87)*b)))+a)*b)+e)*e)-1.39))*e)*a))+b)))*3.16)))*1.01))*a))+0.95)+b)/a)/e)*pi)*b)))/2.81)-b)+b)-e)+a))/pi)))"
-"(2.71/((sin((cos((tan(((a+(b-(((((b+(e-(sin(tan((sin((b-cos((2.58+(cos((((((2.57/(tan(((((1.54*(b+a))+b)-a)+b))/2.58))/2.19)/1.05)+pi)+0.23))+b)))))+b)))/b)))-a)+pi)-e)-a)))+2.34))*b))+pi))*2.87)+2.07))"
-"(a*(a/cos(sin((((a+sin((sin((((b/cos(cos(((2.08+(((sin(((((((((cos((((tan(((((pi+(((tan(e)-b)+pi)/pi))-a)*e)/e))-2.17)-2.66)-0.97))/a)/pi)+pi)*a)+b)+a)-a)/a))*b)/b)+a))/2.19))))-b)+1.49))+b)))+a)/b)))))"
-"(sin(((sin((1.99-cos(sin((pi*(1.22/((0.12-((1.04/cos(tan(((2.62*((((a+(cos(((cos((pi/(((cos(((sin((sin(cos((e/b)))+b))*b)+b))*a)/a)*b)))/pi)/e))*0.23))+b)*3.78)*a))+2.48))))+2.93))-a)))))))+a)+b))+2.74)"
-"(((((sin((tan((tan((pi+sin(((((tan(tan(((2.69-(cos(tan(sin((((((sin((((((((((((((pi*e)/a)+a)*pi)+a)+a)+a)/e)+e)*e)/0.98)/pi)/2.21))-b)+b)/a)/b)-b))))/pi))+pi)))-e)-b)+0.48)-pi))))*b))-a))+pi)+b)+b)-b)+a)"
-"(sin((cos(((tan((1.16+((((cos(cos((cos(sin(tan(tan(((tan(((((tan((((((((((sin(sin(((2.05/0.46)-0.96)))+a)-0.96)-b)+0.65)+pi)+b)/b)/b)+e))*e)+1.68)-e)/a))/b)-0.64)))))+b)))-a)-a)*a)-a)))-e)-3.82))/a))+pi)"
-"sin(tan(((((((sin(((pi*((sin(sin((cos((sin((((tan(((((((((((0.43-cos(cos(((e+((e+((((a+b)*1.12)/e)+b))+b))+1.07))))*b)+pi)/b)+a)*e)/b)/b)-pi)/3.44))+a)*b)+2.37))+b))+e)))*a)/b))+a))-pi)+b)-pi)+e)*a)*a)))"
-"((((sin(cos(((cos(tan((b/((tan(tan(((a*(sin(((((b+(sin(tan((sin((((cos(tan((sin((sin(sin(tan((2.02*e))))*2.47))-b)))/b)*a)+b))+1.71)))+a))+pi)+pi)/b))+2.53))*b)))+pi)+1.05))))+a)+1.76)))+3.09)-e)+e)-2.51)"
-"(((sin(((((tan((cos((((tan(((cos(((2.51+cos((b+(cos((e/sin((b/((((sin((((((cos(((((cos((pi-3.64))+b)*e)/b)/e))*b)+e)*a)/b)+pi))*a)*b)+a)*pi)))))-a))))+a))*b)+pi))/b)*pi)+pi))/b))-a)+a)*a)+2.89))-pi)/e)/e)"
-"(((tan(((sin(((sin((((((b-((((3.62*((b-((tan(tan((((sin(((((sin((b+sin((tan((((b*sin(a))/2.89)+a))/1.29))))*b)*e)/a)/a))*a)+3.61)/1.83)))/a)+a))+b))+e)+b)+b))*a)-pi)+a)-b))-3.94)+3.21))+a)*b))+3.73)+b)-b)"
-"((b/((((((0.13/((cos((b/(((((sin(tan(cos((tan((a+((((sin(cos((((b+sin((tan(((((b/((pi/tan(cos(a)))/b))*e)+e)-b))+e)))*1.79)+e)))*b)+pi)*b)/a)))-b))))/b)+b)-pi)*pi)*a)))/1.19)*a))-3.43)*1.97)/pi)/e)*b))-a)"
-"(((sin((cos((sin(((cos((((cos((((((tan(((a-(cos(cos((sin((((e+((a+(sin((tan((((((e-(((e+b)+b)/b))+a)+a)-e)+a))+a))+b))+b))/2.15)/a))+a)))-b))+pi))*b)-0.61)+1.39)+b)+a))+a)+a)*b))/a)*a))*3.46))-e))/b)-b)+a)"
-"(sin((((0.91-cos((tan((((((a-(pi-(tan(sin(((sin((sin(((((((a/(0.70+(3.86-(tan(((b-(2.22*(tan(sin(sin(a)))/0.43)))+a))+e))))+1.76)/1.57)*0.68)+2.12)+e))/a))+b)/b)))+0.73)))+e)/e)+b)*b))*1.22)))*2.01)+b))+a)"
-"sin(((sin((b+cos((((b/tan(sin(sin(((2.61-(tan(cos(cos((a*((((e/((b-((b+((((a*cos((cos(sin((pi/sin(((sin(((((b*b)+b)*a)-2.28))/a)*pi)))))+b)))/a)+b)+a))+0.66))-a))+b)-a)+a)))))-a))+e)))))/3.16)/pi))))/a)*b))"
-"cos((((b+((pi/(cos((0.96/(cos((((((((((pi-(((((tan(((a*((((tan(((((((tan(((b-pi)/pi))+1.97)+a)*b)-b)*a)+pi))-0.29)*a)+3.18)+2.57))/0.28))+pi)/e)+2.22)+a)*b))/b)-b)*pi)*pi)/e)/b)-e)/a))*a)))-0.59))*b))*pi)+b))"
-"(cos((cos(((((tan(tan(((((cos(((sin(cos(((((tan(tan(sin(tan((sin((((sin((((cos((((b+(e+cos(1.14)))+a)*a))+b)+a)*1.93))/3.01)/a)+b))+3.90)))))/pi)-a)-pi)-b)))/e)/pi))+a)/b)+a)+0.96)))+2.84)-pi)-a)-0.52))-a))-b)"
-"((((((((((((((((tan((cos(cos((tan((b+sin(tan(((((cos(((((tan((cos(((((1.29/b)*3.26)+b)/a))/a))-a)+3.76)*pi)*3.00))+b)*0.32)*pi)/pi)))))-a)))+0.33))/pi)/a)/e)+b)+pi)+b)+1.74)-a)-0.86)*b)/b)*b)+pi)/a)+3.45)+3.37)"
-"(sin((cos((((((3.76+((((((cos(((((a+((((cos((((((tan(((((e*((((b+((tan(((e+a)-a))*pi)*1.08))*3.94)/b)-1.33))+pi)*pi)/a))*2.90)+b)/e)-2.68)+b))*a)*b)*b)+a))+b)+pi)+b))+a)+pi)-a)/a)+e)+a))*b)+b)-1.29)-e))*a))+pi)"
-"(((3.47-(((e/(cos((((cos(((b/((a/(a*sin(sin((sin((sin(((((((tan(sin(((tan((tan(((cos(cos(cos(sin(b))))-a)-a))+3.05))*a)+a)))/e)+b)-2.98)/b)*0.94)+b))/b))-e)))))-e))/b))/b)+2.93)*0.04))*pi))+1.10)/1.30))*b)-1.19)"
-"((pi*sin((pi+(sin(((cos((sin(((cos((((((((sin(((((((cos(sin(sin(tan((cos((b/((b+(b*((cos(((a+b)/a))/a)*1.35)))-a)))/b)))))/b)/b)-b)-b)+a)-1.27))/b)/3.78)-b)/0.32)/b)/a)+b))-b)-0.24))-b))*0.32)+2.23))*3.64))))/b)"
-"(((b+(tan(((cos((((((((((e*(((tan((cos(((sin(((((((cos((tan((((tan((((cos(pi)-pi)+2.65)+3.87))+3.01)/2.57)*a))/a))+a)+b)*1.52)/a)/e)-b))-e)*a))+e))/b)-e)-b))/0.08)*1.98)/pi)+2.88)*b)+b)*b)-a))*a)/0.58))*b))+e)+b)"
-"(((sin((((((((tan(cos(tan((a+(cos((((b*(1.00-((((((((0.71+tan((a+(2.72-tan(sin((((b+(sin(((b+b)*a))+3.87))-2.62)*pi)))))))-0.93)-a)-b)+2.18)/e)*2.12)/pi)))/b)+a))+b)))))+3.28)*pi)+a)+pi)*e)/0.23)/0.13))+e)+pi)*a)"
-"((b+((1.43*((e*cos(sin((e+(a+((((3.19/sin(cos(sin((pi-(((((cos((tan(sin(tan((cos(((1.51+cos((((tan((a+cos(sin(tan(((e+a)/e))))))-b)*2.29)/b)))*b))/a))))+pi))+a)+3.60)*pi)*a)*e))))))+1.06)*a)/e))))))+a))-2.52))*b)"
-"((sin((3.73+(((tan(sin((1.00/tan((tan((((((((((((cos(((pi+(((((((((cos((cos(((pi+(b-0.01))/pi))-a))/3.09)+b)+b)-0.30)+b)-a)+3.48)/3.91)-b))*pi))/a)+b)*pi)+0.18)+a)+e)/b)/a)/1.55)-1.96)+b))+a)))))+b)+a)+a)))/b)*a)"
-"(2.54*((((tan((sin((((cos((b/((3.95-cos((tan((cos(((3.58*(1.71+((tan(((cos((tan((((2.28*cos((b*(sin(sin((((1.04+e)+e)*a)))+b))))*b)+b))*pi))+0.27)-a))-1.42)+2.36)))/b))-b))-b)))/a)))-a)*b)-b))+3.68))-a)*b)-e)/a))"
-"(a/((cos((((1.77-((b-((((((1.57/(((((((cos(sin((((pi/((3.22*sin((sin(((sin((sin(((((b*cos((b+a)))+a)*b)*b))-b))+b)*a))+e)))+b))+0.61)+pi)))*b)+a)-e)+1.77)/pi)+pi)+e))/0.97)+a)*0.86)+pi)/pi))+a))*pi)+b))+e)+0.55))"
-"sin((sin(sin((tan((1.75/((cos((((((tan(sin(((((((sin((sin((((((cos((((pi+(((tan(((b+tan(b))-0.19))*0.13)+a)+2.51))*a)/1.20))/pi)-pi)*b)*1.43)/a))+b))+a)-b)-pi)+a)/b)*2.63)))/e)/b)+3.47)+e)-a))-pi)*b)))*a)))+3.38))"
-"tan(((b-(sin(((pi+(e/(((3.02+((cos(sin((((tan((cos(sin(cos(((cos((a+((sin((((((tan(sin((0.38+(cos(sin(2.21))+1.11))))/0.14)+a)/pi)-b)*pi))+b)*pi)))+pi)/e))))+1.62))+pi)+a)*3.74)))*pi)*b))/a)/b)))+b))*1.87))-0.30))"
-"(2.18-((((b/((cos((b/cos((sin((b*((1.53*((b-(2.44+sin(((2.96*(((((pi*(((pi+cos(((((pi*(e*((((tan((b+((1.28+a)-b)))+2.84)*b)+pi)+0.12)))*a)-a)*a)))+e)*b))-pi)-b)*e)+1.62))/0.32))))+b))+1.48)))+a))))+a)-b))-b)+a)/b))"
-"((tan(((cos((sin(tan(((2.56/cos((((((tan((((((2.31+(sin(cos((((((pi+(b+cos(((a/(2.47*((e/tan((((2.11*cos((a+b)))/a)*e)))*pi)))-1.91))))+e)*b)+e)+b)))*a))+a)*3.78)-a)-pi))+pi)+pi)+a)+e)/0.71)))+a)))*b))*a)*a))/pi)*e)"
-"(e+cos((((((sin(((((((((3.02/(tan((2.42+((tan((((((((tan((sin((0.88-(b/((tan((tan(cos(((a/cos((e+b)))*b)))/pi))/b)+a))))*3.44))+b)/3.88)-pi)*a)+b)/pi)-1.28))/b)+a)))*a))*a)/pi)/1.57)+e)/pi)+pi)+pi))+a)/b)/a)+a)+1.50)))"
-"((((b-tan((sin(((sin(tan(tan((pi+((((sin(((((pi+tan(sin((tan(((b+((sin((cos(((a/((tan((cos(((sin(((a-b)/a))/a)-b))+0.47))-2.02)+e))+2.25))*e))/2.40)/pi))/b))-b))))-b)/a)-pi))/pi)/3.74)+pi)+a)))))*b)/b))+1.72)))+b)+b)+b)"
-"(cos(((0.68+(b*sin((tan(tan((2.36*((a/(sin((tan((((b*((((tan(((sin((((cos(((tan((((e*(pi+((a+(a/((((1.33*sin(a))+e)+b)+a)))*pi)))-e)*2.25))+b)+3.59))+b)*a)/a))-pi)+b))*b)*a)/a)-a))/2.34)*e))-pi))-a))-e))))+a))))-e))+pi)"
-"(((((cos((sin((((cos((cos(sin((e-(e*(((cos(((((((1.67*(cos(((a*(((tan(((((a*(sin((cos((a-(((0.51+a)/a)*a)))+2.73))+pi))+a)/e)+a))/e)/a)-a))*b))*2.94))+a)/b)-e)+b)+e))/a)+0.98)*pi)))))/b))-pi)-b)*1.03))/e))-a)+a)+a)+a)+b)"
-"((cos((pi-((3.01/(a-((((((((a+(b+tan((a-sin(tan(cos((cos(tan((cos(sin(((((((((((((sin(((3.31/(pi/(3.01*0.89)))+2.78))*e)*b)+e)+3.60)/b)+e)*b)+a)+a)+2.01)*b)*b)))/0.63)))+e))))))))-b)/1.46)/pi)+2.68)+a)+b)-b)))/b)))+a)*a)"
-"cos(tan(((pi-cos(((((tan((((a*tan((e+tan((sin((((0.73*((tan(sin((((((((b+(((((tan(((((sin(((tan(((a+b)+b))*e)-a))+a)/e)/e)+e))*b)/b)-pi)*e)/a))*2.03)+b)+e)/a)-e)-b)))/b)*e))*pi)/2.03))*e)))))*b)*b))+b)-0.19)/b)+b)))-a)))"
-"sin(tan(((a+tan((pi+tan(tan(cos((((tan(((tan(((2.99-(cos((a+((((((cos(((((cos(((sin(tan((a+(b+(a+(sin(cos((pi-(a+2.91))))/b))))))/b)+a))+e)/a)+0.73)*a))+pi)+3.40)+2.95)*pi)/b)-pi)))*a))/a))+a)+b))+pi)+2.81)/a)))))))-e)))"
-"cos(((sin((2.38+(cos((b+(tan(tan(cos((sin(sin(cos((3.28*(((cos((3.60*sin(((sin(((((((tan(((((((tan((cos(((a-a)/1.03))-pi))/pi)+0.67)*b)-e)*e)-0.71))/b)/b)-e)+e)/b)-a))*a)+1.36))))+e)*a)/1.81)))))+pi))))-e)))+b)))-b)*0.47))"
-"((e*((((2.17-(1.53-((((((((((((((2.86+((((b-(pi+(e+((((((((b/(cos(sin((((((((((b-b)+a)*e)-a)+b)/a)+a)*a)/e)))+a))*pi)/a)/pi)*a)*0.81)+1.42)+pi))))+b)+b)+b))/e)+e)-3.58)/pi)-b)/a)+1.91)*b)-e)-b)+a)*1.19)/a)))+a)-2.06)+e))*e)"
-"(((cos(((((sin(tan((((((tan(cos(((cos((cos(((tan(sin((tan((((((cos(((sin((((((tan((pi/a))+0.25)/b)/2.16)*a)+a))/a)/2.54))+b)+b)/a)+3.61)*a))*e)))+a)+3.97))*b))/b)+2.46)))/a)+b)-a)*a)/3.46)))+1.50)*2.67)*b)*0.61))*a)/a)*1.43)"
-"((sin((pi/((((((((sin(((a-cos((sin((tan(((sin(((cos(((((((cos(sin((((cos(sin(((tan(sin((tan((a/e))*b)))-e)+1.93)))+pi)/b)-a)))/b)-pi)/b)-a)-a)-pi))+b)-a))+e)+a))+1.36))*b)))+3.28))-2.14)+b)-2.89)/a)+e)/a)-0.96)-a)))/2.12)+a)"
-"(((cos(((cos((a/(((cos((((e+(cos(((3.92-(sin(((tan((sin(((((((b/(cos(((a*sin((((pi+((((cos(sin(b))-3.44)+a)-2.29)-a))/e)/b)))+a))+1.02))+3.38)-e)/a)+b)/pi))*a))-e)-pi))+b))+a))+e))-3.24)*a))/e)-a)+1.16)))*a)-2.32))/1.66)+a)+e)"
-"(cos(((sin(sin(((tan(sin(((((e-(((2.03-(cos((tan(((tan((tan((((cos((cos(sin((cos(((sin(((sin(((b-a)/0.05))-b)-b))-3.06)*a))/a)))+a))+2.42)-a)/2.88))/2.21))-b)*b))*3.23))+0.91))*0.68)+e))+a)*3.57)-pi)))+0.78)+a)))/1.55)/pi))*a)"
-"((((((b*(e-((((((((((((a+(((((cos((((((((((e-((tan(sin(((sin(((((((1.63-a)*0.64)-b)*1.09)*e)+b))+3.06)+e)))*b)+b))+pi)/e)/pi)+a)+pi)+b)-b)+pi))/e)+a)+b)-e)/a))/0.23)/a)/pi)/b)+pi)+b)+0.20)+b)+1.52)-a)*pi)))/b)+1.62)/b)-a)-0.12)"
-"(cos(sin(sin(sin(((((e+((cos(cos((((((cos(((cos(cos(((b+tan(cos(((((((tan(cos((b-sin(((pi+sin((((((a/(tan((b-pi))/a))*b)+1.88)-1.57)+2.70)))+e)))))/b)+a)*e)/a)*1.09)-b))))+e)))-b)+e))*b)+a)+b)+pi)+b)))-e)+0.64))+e)/b)-pi)))))-b)"
-"((((b-(cos(((cos(((cos(cos(sin(((a+(sin((b-tan((sin((((((0.09+cos((((b+((sin((((sin((2.69/cos(cos(sin((e*(((tan(tan(b))/pi)+b)/pi)))))))-b)*pi)*1.34))/b)/3.38))-e)*b)))+b)/b)+a)+pi))-a))))*b))*pi))))+a)*b))*e)+2.16))+a))+b)+e)*e)"
-"(((((pi/(a/((2.53+(1.11-(((a+(pi*((tan((((((pi+(tan((((((((b-(a+tan(sin(((pi-(a-((((b+tan(((((a-e)-e)*b)*a)))*2.79)*a)+3.38)))*2.67)))))+e)+1.96)+1.73)+a)*a)*a))/pi))+0.76)+e)+2.11)+b))*a)*0.27)))*b)*2.31)))*e)))/a)+2.82)+0.10)*b)"
-"tan(((((((b+cos(((b*cos(((cos(((tan(((sin((a+(((((((((e/sin((tan((2.93*(cos(((tan(tan(((b+sin((pi*((1.11/a)+e))))-3.08)))-b)-3.45))+a)))+2.37)))-b)+1.26)+b)/b)*a)-a)/2.02)+e)))/e)+pi))*b)/pi))/a)*e)))+0.77)))+pi)*pi)+pi)+b)+2.45))"
-"((((((b+((cos((((sin((((sin((e*(a+(pi-((((((sin(sin((tan(cos((e+(2.41-tan((1.26/(((sin((((sin(((pi/pi)/a))+pi)+a)+a))/a)+pi)+3.72)))))))-e)))/1.89)/3.01)-a)+2.67)+a)-a)))))+b)+b)*a))*b)+2.33)/pi))-3.93)-0.90))*3.86)+a)/a)*1.05)*pi)"
-"(((((b-(cos((((pi+tan((sin(tan(sin(((a*(((e*((cos(tan(cos(((((((cos(sin(((((tan(((((a+((0.04-(3.76+b))-1.97))*b)+e)-b))+b)-3.97)+b)+pi)))-1.69)+0.20)-b)+3.36)*a)/b))))*b)+a))+b)+pi))/b))))*2.41)))/0.49)+e))+0.81))+a)/a)*3.64)/2.12)"
-"(((((cos((pi-(cos((1.61*(sin(sin(((a/(((((((((a/tan(((b+((sin(((a+(((1.04+(sin(tan(((cos(cos(((b-b)-pi)))+0.51)-b)))/pi))*1.36)+0.85))-a))-1.64)+a))/b)))-1.78)+pi)/1.05)*b)+a)*pi)-e)-3.76))+e)))+2.82)))/0.94)))/e)*1.11)+b)/a)*2.19)"
-"(((a+((2.44/(((a+((((tan((((tan(((1.54+(sin((b-(sin(sin(cos(((tan(((sin(sin((b+sin((1.88+(((tan((b+(((tan(b)+0.06)*b)/0.27)))+pi)+e)+pi))))))+1.93)+a))-1.31)*b))))+a)))*a))+b))-3.30)*3.23)+b))-a)*2.75)*b)+a))-a)+0.56))+b))+1.64)-b)"
-"((sin((sin((tan(cos((cos(((((((((e*(a+(0.62*(tan((sin((((((((a+tan(((((((((((e-(sin(tan((b/a)))-a))*b)+pi)-a)/3.19)/a)-a)-1.54)-b)+0.34)))/0.74)-b)*a)*b)*e)*3.64))/1.81))/3.78))))/e)*a)-a)-2.38)-e)+a)+e))/pi)))-e))/3.92))+0.77)*pi)"
-"(a+((((1.14+cos(((cos(((sin((((((tan(((b+(((a+(tan((((cos(((2.61*((((((((((((a+tan((((((a-a)+b)+b)*pi)/a)))*e)+b)/b)-3.55)-a)+b)/b)+a)*e)+b)*pi))+a))+b)*b)/b))-b))*b)*b))-3.30))+a)+2.07)-b)+a)-2.06))-pi)/b))*3.28)+b)))*3.08)/a)+e))"
-"((((b-cos((((sin((((a+cos((((((b/((((((e+tan(cos(sin((((a-((cos((a+(((((((2.77*tan(((((sin(pi)/b)/0.94)*b)-b)))+a)*pi)+b)*b)/b)-0.81)))*a)+1.28))*3.77)-a)))))*b)+a)+pi)+a)*b))-3.56)-a)-a)+pi)))-2.72)*b))/a)+pi)+2.40)))*e)+0.27)+2.82)"
-"sin((0.89+((1.81+(b*((((tan(sin(sin((cos(((a+(((((sin(cos(sin(((((e*(cos((sin((cos(((((a+(((((tan(((sin(b)+pi)/3.94))/pi)+b)-a)+b)*b))*1.28)-b)-a))*a))-pi))/a))-b)+a)+3.75))))+3.92)+3.90)*a)-2.27)*pi))+b))-a))))+e)*a)+b)+2.74)))+a)))"
-"(((a+(sin(((cos(((e+(((tan(((cos(((((tan((sin((((sin((sin((tan(tan(cos((e-(tan(((((((((((b+(pi-0.95))*e)+b)+a)+a)/a)+0.64)+b)-a)-b))-e)))))/0.62))-pi))+a)+a)/3.50))*a))-a)+a)+pi)*e))+0.83)*2.71))-pi)+b)/e))+b))/1.80)+b))/a))-pi)+0.99)"
-"(((pi*(((cos(tan(((((pi+((b-(((((1.88+(sin(cos(((2.19*tan(((tan((pi*tan(cos((((((b+sin(tan(((((cos(((((b+1.02)+b)/a)*a))/b)/b)*a)+3.93))))+e)-a)+a)*1.92)))))-b)-b)))*a)))-2.08))*a)-2.89)+e)+a))*a))+2.87)/e)+a)))*a)*pi)+e))*0.97)+1.03)"
-"tan((pi+sin(((tan((tan((((((tan((a*(1.83*(((((((cos(((b*(((0.91/((((((((sin(((((sin(cos((a/cos(1.59))))+a)-e)/b)*3.20))+1.99)+a)/pi)+2.66)-b)*a)*2.43)-b))/a)+b))+3.44))-a)+b)-3.30)+b)+b)/a)+a))))*1.53)+a)-a)+b)/b))*0.18))+0.61)+pi))))"
-"(b+((sin((((b+tan((((sin(((((cos(sin((((cos(cos(((cos(((tan(((((((((((((a+cos((((tan(b)+e)/2.04)/3.86)))+b)+a)+pi)*b)+b)*a)*b)*a)*0.74)+1.01)/a))-1.74)+b))+1.23)+1.63)))*b)/e)-3.09)))+b)/b)*pi)*2.11))+b)/1.09)-a)))-pi)+2.52))/a)*1.47))"
-"tan((2.46-(((cos((a-((tan((((((a+((cos(((((b*(((((((b*sin(cos((((((tan(((sin((sin((((a+tan((3.79*a)))/3.35)-1.95))+b))+a)+2.08))*b)*e)-pi)+a)/a))))+3.57)/a)*e)+1.76)/3.18)+b))/2.75)+e)+pi))+3.54)+b))+1.11)-a)/b)+b))-pi)+e)))/b)-pi)+b)))"
-"((tan(((pi+tan(cos((2.46/(((sin((a/cos((((((((sin((pi+tan(cos((2.09*(pi/((sin((sin(((tan(((((b/(cos(tan(cos((((1.57/b)*b)/a))))/2.68))-3.31)+a)/b))+pi)+b))*e))/1.95)*0.23)))))))/3.61)*e)*b)*b)+b)/e)+b))))*b)+b)/0.60)))))*3.68))*pi)-2.18)"
-"(cos(((b-cos(((((b+(((tan(((sin(((2.54*(tan(cos(((((cos((cos((((cos((tan(((((((((((a+cos((((pi+b)/b)*pi)))+a)-1.01)*pi)*pi)-e)*b)+b)-2.56)*b))+pi))+b)-pi)+1.17))+a))*pi)+b)-a)-0.36)))+pi))+a))*pi)+e))+b)/e)+a))+0.56)*a)*1.79)))-3.07))+a)"
-"tan(sin(((((((((pi*(((((((cos(tan((sin((((cos(cos(((((((tan((((sin((((cos((3.82*((cos(a)-b)/b)))/b)/3.17)-1.23))/e)/a)+pi))+b)+3.36)+b)/e)+a)+e)))+1.00)-b)*e))/1.26)))-2.13)+a)+b)+3.94)-a)-2.46)+3.10))/1.02)*pi)-1.45)/a)+2.55)*a)-1.28)))"
-"((((((tan((3.22-sin((((b+(((2.20/((cos((((1.32/(((((1.11*cos(((((((tan((0.21*(((0.46+sin(((((((a*b)-0.24)*a)+a)/a)*b)))+3.17)/1.26)))*a)+1.87)*e)/pi)/b)-pi)))-pi)+a)/a)+b))/b)*pi))/e)+2.10))-pi)*0.82))/b)-b))))+1.21)-a)+2.76)*b)-pi)*3.03)"
-"(((((0.79+((b*cos(tan(((pi/(cos(((pi+sin((b/(((3.91/(((b*(((a+((tan((2.64/sin((sin((((((tan((((((b+((((e-e)-pi)*0.39)+b))*b)*e)/a)-a))+b)+0.32)/pi)*0.43)/0.51))-a))))*1.70)-b))/b)+e))+0.22)+3.93))/a)+b))))+a))+b))-a))))-3.56))+b)+a)/a)*b)"
-"cos(sin(((((b+sin((cos((((((((((a+((((cos(((sin(cos(cos((cos(((((tan((b*((((tan((sin((a*(((1.45/a)+a)*e)))/pi))+2.08)+b)-3.91)*a)))+a)+3.56)/pi)-e))+0.59))))-0.68)+0.39))*a)*1.69)*1.23)+a))-a)+pi)/2.64)+pi)+1.60)+b)+b)*a))/b)))*b)/b)-e)))"
-"tan((((cos(tan(((tan((((1.92+(pi/(pi-sin((cos(((((tan((((sin((((sin((0.40+cos((tan((tan((((sin(((((((e+2.58)+3.88)+b)-b)+a)+e))*0.10)+a)+b))*e))*a))))+a)+pi)/0.78))+a)/pi)*3.29))*a)/b)/2.71)*3.53))+1.87)))))/2.72)/e))/a)+0.49)))+pi)+a)-b))"
-"cos(cos((a+(((b-((b*((((((cos(cos(((((sin(tan(cos(cos(((((0.24*sin((tan(tan(tan(sin((((tan(sin(((((a+(cos(((cos(a)+a)-a))/a))/a)+a)+pi)))+pi)-a)*0.73)))))/2.23)))/b)-b)+2.76)))))-2.45)+e)+1.39)/b)))-3.73)-b)+pi)-b)-a)+2.24))+b))+0.82)+b))))"
-"(((((((a+(((((tan(sin((((tan((((cos(((((((sin((b-((((((sin(cos(((sin((a*sin(((cos((((b+b)/pi)+2.97))-b)+e))))+e)/b)))+e)+e)-3.39)+2.10)*e)*b)))+b)/b)+3.57)*e)+pi)-3.21))*3.03)+e)+a))/e)*b)+pi)))*pi)/b)/b)+a)+0.55))-b)/1.95)+2.86)-e)/3.47)*b)"
-"(((((tan((((((tan((tan((sin(cos((sin((((tan((((tan(sin(((cos(((((((sin((((b+cos((e/(sin((a*((3.58/a)-2.92)))/a))))+3.92)*e))+0.45)+b)-b)+a)-b)+1.12))+pi)*b)))-3.21)+b)/a))-b)+b)+1.54))+3.69)))*0.85))+0.54))+a)*a)-b)-1.01)+a))/pi)-b)*a)*a)/a)"
-"tan(sin((1.38/tan(((a/(1.33/sin(((((tan(((((((((e*(((((((3.01-(((tan(cos((cos((tan(tan((((((((cos((a/pi))/pi)-b)+b)-3.72)+a)+e)/b)))/0.60))*a)))-1.28)+1.26)+2.75))-a)/0.27)*pi)/a)-0.13)/3.64))/b)-a)*a)/0.23)+b)-pi)*a))+e)-pi)+b)/b))))+a)))))"
-"(((((a+cos((pi+(((((((((((sin(cos(((((a-((tan(sin(((a+cos((((tan(cos((((((b/(((a+tan(sin((((2.31+a)-a)+a))))+pi)*pi))*a)-b)*b)/pi)))*b)/pi)-a)))*0.04)))+2.43)*b))-a)*pi)/b)))+a)/e)+3.55)/3.98)/3.19)+e)/a)+1.25)-3.32)+a)+0.57))))/e)+1.05)+e)/b)"
-"(tan((((a+(sin(((((a+((cos((((2.76+(((sin((((((sin((((((cos(cos(cos(((((a/((sin(((((2.83/(((pi/pi)+a)-pi))*0.44)+0.41)+pi))/a)/b))-e)+b)/a))))+pi)+2.28)+b)*a)+b))-pi)*pi)+0.29)/a)*b))+1.87)*pi)/a))/1.59)/pi))+pi)*0.72))*a)*b)+a))+b))-a)+e))-e)"
-"cos(tan(tan(tan((((e-(sin((tan((((sin((3.77+((b*((((0.52/((((cos((((((((sin(cos(cos((((a*((((a/((tan((e*0.95))+b)/e))+b)/3.79)/b))+e)/e))))+a)/e)+e)+1.29)*a)*2.28)/1.25))/pi)/0.59)+b)+b))+b)-3.22)*a))*a)))-pi)+b)+0.72))*2.37))+b))/a)*3.87)))))"
-"((a-((cos(cos((a-(((((sin((((a+tan((((e/((((((2.42+((((e*(1.24+((tan(((2.78/(tan((3.53+(a-sin((((((tan((tan(e)+2.11))*b)+a)+a)+pi)*0.78)))))*2.24))-pi))*pi)/pi)))-a)/b)*b))+b)+a)-0.07)/a)+b))+e)*a)))+e)/e))+b)+2.78)*b)+b)+b))))/pi)-0.32))-2.28)"
-"(sin(((((b+(((((sin(((0.70*tan(((((((cos((((2.90-((cos(((((sin(cos(tan(((((((((cos((((((pi+b)+b)+0.59)+1.86)*b))/pi)/b)+0.86)+e)+b)+3.99)/b)+a))))*b)-1.17)*b)/2.26))+e)/pi))*3.26)+pi))+a)+a)/a)+a)+3.89)+a)))-b))*a)/e)+3.63)+pi)-a))/a)-e)-pi))/b)"
-"((0.97-((2.02/(e/((3.84+(sin((sin((((((a*tan(sin(tan((((((b*(a+(((3.30-cos((1.16*sin(cos((cos((((sin((((cos(((cos((tan((cos(b)/e))/e))+a)+b))+e)*3.65)/e))-b)-b)*pi))-b))))))/3.10)/e)))+2.68)-0.68)*1.86)+a)))))/pi)-a)+pi)+a))+b))/pi))*b)))+e))*0.05)"
-"((a+(a+(((e*(0.81*((cos((((sin(cos((((((((tan((((((sin((cos((tan(sin(tan(((tan(tan(((((sin((((((b*3.14)+pi)-pi)-a)+pi))/b)-a)-a)+e)))*a)+a))))+a))*3.98))+b)/pi)+3.03)+3.90)+2.97))/0.03)+1.83)-3.34)*b)+b)-1.39)+a)))*a)+1.54)-pi))/3.98)*pi)))+a)-b)))+a)"
-"(b-cos(sin(tan(cos(((sin(((((sin(((((3.70+(2.48+sin((b/(sin(((3.46*sin(sin(((cos((cos(sin(((tan(((((0.74*((sin((0.10-((cos(cos((tan(a)/a)))+2.68)-b)))*b)*b))+pi)-2.83)-b))+a)+pi)))*0.89))/pi)+b))))+3.72))*a)))))+e)+e)/pi))*1.03)*2.24)+b)/a))/pi)+1.53))))))"
-"((((((((x*y)*7.123)-w)/((x+y)+(7.123*w)))/(((x+y)-(7.123/w))-((x*y)+(7.123-w))))/((((x+y)+(7.123*w))*((x/y)+(7.123-w)))*(((x*y)+(7.123-w))+((x/y)*(7.123-w)))))/((((x/(y+(7.321*w)))+((x-y)/(7.321+w)))+(((x-y)*(7.321+w))*((x/y)*(7.321+w))))+((((x-y)/(7.321+w))/((x*y)/(7.321+w)))/(((x/y)*(7.321+w))-(x+((y/7.321)*w)))))))"
-"((((((((x*y)/7.123)-w)/((x-y)-(7.123*w)))/(((x-y)+(7.123/w))-((x+y)*(7.123*w))))/((((x-y)-(7.123*w))*((x+y)*(7.123/w)))*(((x+y)*(7.123*w))+(x-(y/(7.123*w))))))/(((((x+y)-(7.321*w))+((x/y)+(7.321+w)))+(((x*y)+(7.321+w))*((x/y)/(7.321-w))))+((((x/y)+(7.321+w))/((x*y)*(7.321-w)))/(((x/y)/(7.321-w))-(x-((y-7.321)*w)))))))"
-"((((((((x+y)*7.123)-w)-((x+y)-(7.123*w)))-((x*(y-(7.123*w)))/((x*y)+(7.123+w))))-((((x+y)-(7.123*w))+((x/y)+(7.123+w)))+(((x*y)+(7.123+w))*((x/y)/(7.123-w)))))-(((((x/y)-(7.321/w))*((x-y)+(7.321+w)))*(((x-y)-(7.321+w))+((x-y)*(7.321/w))))*((((x-y)+(7.321+w))-((x*y)*(7.321+w)))-(((x-y)*(7.321/w))/(x+((y/7.321)+w)))))))"
-"((((((((x+y)/7.123)-w)-((x-y)+(7.123*w)))-(((x+y)+(7.123/w))/((x*y)-(7.123-w))))-((((x-y)+(7.123*w))+((x/y)-(7.123-w)))+(((x*y)-(7.123-w))*(x-(y*(7.123/w))))))-((((x*(y+(7.321*w)))*((x/y)-(7.321+w)))*(((x*y)-(7.321+w))+((x/y)/(7.321+w))))*((((x/y)-(7.321+w))-((x*y)/(7.321-w)))-(((x/y)/(7.321+w))/(x-((y+7.321)*w)))))))"
-"((((((((x-y)*7.123)-w)*((x+y)-(7.123/w)))*(((x+y)-(7.123*w))+((x/y)+(7.123+w))))*((((x+y)-(7.123/w))-((x*y)+(7.123-w)))-(((x/y)+(7.123+w))/((x*y)*(7.123-w)))))*(((((x/y)-(7.321*w))/((x-y)*(7.321+w)))/(((x-y)+(7.321+w))-((x*y)*(7.321+w))))/((((x-y)*(7.321+w))*((x/y)*(7.321+w)))*(((x*y)*(7.321+w))+(x+((y/7.321)/w)))))))"
-"((((((((x-y)/7.123)-w)*((x-y)+(7.123/w)))*(((x-y)+(7.123*w))+((x/y)-(7.123-w))))*((((x-y)+(7.123/w))-((x+y)*(7.123*w)))-(((x/y)-(7.123-w))/(x+(y/(7.123*w))))))*((((x*(y-(7.321*w)))/((x*y)+(7.321+w)))/(((x/y)-(7.321+w))-((x*y)/(7.321-w))))/((((x*y)+(7.321+w))*((x/y)/(7.321-w)))*(((x*y)/(7.321-w))+(x-((y-7.321)/w)))))))"
-"((((((((x/y)*7.123)-w)+((x+y)+(7.123/w)))+(((x+y)+(7.123*w))*((x/y)+(7.123-w))))+((((x+y)+(7.123/w))/((x*y)-(7.123-w)))/(((x/y)+(7.123-w))-(x+(y*(7.123/w))))))+((((x/(y-(7.321*w)))-((x*y)-(7.321+w)))-(((x-y)/(7.321+w))/((x*y)/(7.321+w))))-((((x*y)-(7.321+w))+((x/y)/(7.321+w)))+(((x*y)/(7.321+w))*(x-((y+7.321)/w)))))))"
-"((((((((x/y)/7.123)-w)+((x-y)-(7.123/w)))+(((x-y)-(7.123*w))*((x+y)*(7.123/w))))+((((x-y)-(7.123/w))/((x+y)/(7.123*w)))/(((x+y)*(7.123/w))-(x+((y+7.123)/w)))))+(((((x+y)-(7.321/w))-((x*y)+(7.321-w)))-(((x/y)+(7.321+w))/((x*y)*(7.321-w))))-((((x*y)+(7.321-w))+((x/y)*(7.321-w)))+(((x*y)*(7.321-w))*(x-((y*7.321)/w)))))))"
-"(((((((x*y)*(7.123+w))+(x+((y/7.123)/w)))+((x+((y/7.123)+w))*((x*y)+(7.123*w))))+(((x+((y/7.123)/w))/((x*y)-(7.123*w)))/(((x*y)+(7.123*w))-((x+y)-(7.123-w)))))+((((x+((y+7.321)*w))-(((x/y)*7.321)-w))-((((x*y)*7.321)-w)/((x+y)+(7.321*w))))-(((((x/y)*7.321)-w)+((x+y)+(7.321/w)))+(((x+y)+(7.321*w))*((x/y)+(7.321-w)))))))"
-"(((((((x*y)*(7.123-w))*(x-((y*7.123)/w)))*((x-((y-7.123)*w))+((x/y)-(7.123*w))))*(((x-((y*7.123)/w))-(x/(y+(7.123*w))))-(((x/y)-(7.123*w))/((x-y)*(7.123+w)))))*((((x+((y/7.321)/w))/((x*y)-(7.321*w)))/(((x*y)+(7.321*w))-((x+y)-(7.321-w))))/((((x*y)-(7.321*w))*((x+y)+(7.321-w)))*(((x+y)-(7.321-w))+((x+y)/(7.321/w)))))))"
-"(((((((x*y)+(7.123*w))-((x+y)-(7.123-w)))-(((x-y)-(7.123/w))/((x+y)/(7.123*w))))-((((x+y)-(7.123-w))+((x+y)/(7.123/w)))+(((x+y)/(7.123*w))*(x+((y+7.123)*w)))))-(((((x+y)+(7.321*w))*((x/y)+(7.321-w)))*(((x*y)+(7.321-w))+((x/y)*(7.321-w))))*((((x/y)+(7.321-w))-(x+(y*(7.321/w))))-(((x/y)*(7.321-w))/(x-((y*7.321)*w)))))))"
-"(((((((x*y)+(7.123+w))*((x/y)/(7.123-w)))*(((x*y)/(7.123-w))+(x-((y-7.123)/w))))*((((x/y)/(7.123-w))-(x-((y-7.123)*w)))-((x-((y-7.123)/w))/((x/y)-(7.123/w)))))*(((((x-y)*(7.321/w))/(x+((y/7.321)+w)))/((x+((y*7.321)*w))-(((x/y)/7.321)-w)))/(((x+((y/7.321)+w))*((x*y)+(7.321*w)))*((((x/y)/7.321)-w)+((x-y)-(7.321/w)))))))"
-"(((((((x*y)+(7.123-w))+((x/y)*(7.123-w)))+(((x*y)*(7.123-w))*(x-((y*7.123)/w))))+((((x/y)*(7.123-w))/(x-((y*7.123)*w)))/((x-((y*7.123)/w))-(x/(y+(7.123*w))))))+(((((x/y)*(7.321+w))-(x+((y/7.321)*w)))-((x+((y/7.321)/w))/((x*y)-(7.321*w))))-(((x+((y/7.321)*w))+((x*y)+(7.321/w)))+(((x*y)-(7.321*w))*((x+y)+(7.321-w)))))))"
-"(((((((x*y)+(7.123/w))/((x+y)*(7.123-w)))/(((x+y)+(7.123-w))-((x-y)/(7.123*w))))/((((x+y)*(7.123-w))*((x-y)/(7.123/w)))*(((x-y)/(7.123*w))+(x+((y-7.123)*w)))))/(((((x-y)+(7.321*w))+((x/y)-(7.321-w)))+(((x*y)-(7.321-w))*(x-(y*(7.321/w)))))+((((x/y)-(7.321-w))/(x+(y/(7.321*w))))/((x-(y*(7.321/w)))-(x-((y/7.321)*w)))))))"
-"(((((((x*y)-(7.123*w))*((x+y)+(7.123-w)))*(((x+y)-(7.123-w))+((x+y)/(7.123/w))))*((((x+y)+(7.123-w))-((x-y)/(7.123*w)))-(((x+y)/(7.123/w))/(x+((y-7.123)/w)))))*(((((x+y)+(7.321/w))/((x*y)-(7.321-w)))/(((x/y)+(7.321-w))-(x+(y*(7.321/w)))))/((((x*y)-(7.321-w))*(x-(y*(7.321/w))))*((x+(y*(7.321/w)))+(x-((y/7.321)/w)))))))"
-"(((((((x*y)-(7.123+w))+((x/y)/(7.123+w)))+(((x*y)/(7.123+w))*(x-((y+7.123)/w))))+((((x/y)/(7.123+w))/(x-((y+7.123)*w)))/((x-((y+7.123)/w))-((x*y)-(7.123/w)))))+(((((x-y)/(7.321/w))-(x+((y*7.321)/w)))-((x+((y-7.321)*w))/(((x-y)/7.321)-w)))-(((x+((y*7.321)/w))+(((x*y)/7.321)-w))+((((x-y)/7.321)-w)*((x-y)+(7.321/w)))))))"
-"(((((((x*y)-(7.123-w))*(x-(y*(7.123/w))))*((x+(y*(7.123/w)))+(x-((y/7.123)/w))))*(((x-(y*(7.123/w)))-(x-((y/7.123)*w)))-((x-((y/7.123)/w))/(x*(y+(7.123*w))))))*(((((x/y)/(7.321+w))/(x-((y+7.321)*w)))/((x-((y+7.321)/w))-((x*y)-(7.321/w))))/(((x-((y+7.321)*w))*((x/y)+(7.321/w)))*(((x*y)-(7.321/w))+((x+y)/(7.321-w)))))))"
-"(((((((x*y)-(7.123/w))+((x+y)/(7.123-w)))+(((x+y)*(7.123-w))*((x-y)/(7.123/w))))+((((x+y)/(7.123-w))/((x-y)*(7.123*w)))/(((x-y)/(7.123/w))-(x+((y*7.123)/w)))))+(((((x-y)+(7.321/w))-((x+y)*(7.321*w)))-(((x/y)-(7.321-w))/(x+(y/(7.321*w)))))-((((x+y)*(7.321*w))+(x-(y/(7.321*w))))+((x+(y/(7.321*w)))*(((x+y)*7.321)-w))))))"
-"(((((((x*y)/(7.123+w))*(x-((y+7.123)/w)))*((x+((y/7.123)*w))+((x*y)+(7.123/w))))*(((x-((y+7.123)/w))-((x*y)-(7.123/w)))-(((x*y)+(7.123/w))/((x+y)*(7.123-w)))))*((((x+((y-7.321)*w))/(((x-y)/7.321)-w))/((((x+y)/7.321)-w)-((x-y)+(7.321*w))))/(((((x-y)/7.321)-w)*((x-y)+(7.321/w)))*(((x-y)+(7.321*w))+((x/y)-(7.321-w)))))))"
-"(((((((x*y)/(7.123-w))+(x-((y-7.123)/w)))+((x-((y+7.123)*w))*((x/y)+(7.123/w))))+(((x-((y-7.123)/w))/((x/y)-(7.123/w)))/(((x/y)+(7.123/w))-((x-y)-(7.123+w)))))+((((x+((y*7.321)*w))-(((x/y)/7.321)-w))-((((x*y)/7.321)-w)/((x-y)-(7.321*w))))-(((((x/y)/7.321)-w)+((x-y)-(7.321/w)))+(((x-y)-(7.321*w))*((x+y)*(7.321/w)))))))"
-"(((((((x+y)*(7.123*w))+(x-(y/(7.123*w))))+((x+(y/(7.123*w)))*(((x+y)*7.123)-w)))+(((x-(y/(7.123*w)))/(((x-y)*7.123)-w))/((((x+y)*7.123)-w)-((x+y)-(7.123*w)))))+(((((x/y)/(7.321-w))-(x-((y-7.321)*w)))-((x-((y-7.321)/w))/((x/y)-(7.321/w))))-(((x-((y-7.321)*w))+((x/y)-(7.321*w)))+(((x/y)-(7.321/w))*((x-y)+(7.321+w)))))))"
-"(((((((x+y)*(7.123-w))*((x-y)/(7.123/w)))*(((x-y)/(7.123*w))+(x+((y-7.123)*w))))*((((x-y)/(7.123/w))-(x+((y*7.123)/w)))-((x+((y-7.123)*w))/(((x-y)/7.123)-w))))*(((((x/y)-(7.321-w))/(x+(y/(7.321*w))))/((x-(y*(7.321/w)))-(x-((y/7.321)*w))))/(((x+(y/(7.321*w)))*(((x+y)*7.321)-w))*((x-((y/7.321)*w))+(x*(y-(7.321*w))))))))"
-"(((((((x+y)*(7.123/w))-(x+((y+7.123)/w)))-((x-(y/(7.123*w)))/(((x-y)*7.123)-w)))-(((x+((y+7.123)/w))+(((x*y)*7.123)-w))+((((x-y)*7.123)-w)*((x+y)-(7.123/w)))))-(((((x*y)*(7.321-w))*(x-((y*7.321)/w)))*((x-((y-7.321)*w))+((x/y)-(7.321*w))))*(((x-((y*7.321)/w))-(x/(y+(7.321*w))))-(((x/y)-(7.321*w))/((x-y)*(7.321+w)))))))"
-"(((((((x+y)+(7.123*w))*((x/y)+(7.123-w)))*(((x*y)+(7.123-w))+((x/y)*(7.123-w))))*((((x/y)+(7.123-w))-(x+(y*(7.123/w))))-(((x/y)*(7.123-w))/(x-((y*7.123)*w)))))*(((((x-y)/(7.321+w))/((x*y)/(7.321+w)))/(((x/y)*(7.321+w))-(x+((y/7.321)*w))))/((((x*y)/(7.321+w))*(x-((y+7.321)/w)))*((x+((y/7.321)*w))+((x*y)+(7.321/w)))))))"
-"(((((((x+y)+(7.123-w))-((x-y)/(7.123*w)))-(((x+y)/(7.123/w))/(x+((y-7.123)/w))))-((((x-y)/(7.123*w))+(x+((y-7.123)*w)))+((x+((y-7.123)/w))*(((x+y)/7.123)-w))))-(((((x*y)-(7.321-w))*(x-(y*(7.321/w))))*((x+(y*(7.321/w)))+(x-((y/7.321)/w))))*(((x-(y*(7.321/w)))-(x-((y/7.321)*w)))-((x-((y/7.321)/w))/(x*(y+(7.321*w))))))))"
-"(((((((x+y)+(7.123/w))/((x*y)-(7.123-w)))/(((x/y)+(7.123-w))-(x+(y*(7.123/w)))))/((((x*y)-(7.123-w))*(x-(y*(7.123/w))))*((x+(y*(7.123/w)))+(x-((y/7.123)/w)))))/(((((x*y)-(7.321+w))+((x/y)/(7.321+w)))+(((x*y)/(7.321+w))*(x-((y+7.321)/w))))+((((x/y)/(7.321+w))/(x-((y+7.321)*w)))/((x-((y+7.321)/w))-((x*y)-(7.321/w)))))))"
-"(((((((x+y)-(7.123*w))+((x/y)+(7.123+w)))+(((x*y)+(7.123+w))*((x/y)/(7.123-w))))+((((x/y)+(7.123+w))/((x*y)*(7.123-w)))/(((x/y)/(7.123-w))-(x-((y-7.123)*w)))))+(((((x-y)+(7.321+w))-((x*y)*(7.321+w)))-(((x-y)*(7.321/w))/(x+((y/7.321)+w))))-((((x*y)*(7.321+w))+(x+((y/7.321)/w)))+((x+((y/7.321)+w))*((x*y)+(7.321*w)))))))"
-"(((((((x+y)-(7.123-w))+((x+y)/(7.123/w)))+(((x+y)/(7.123*w))*(x+((y+7.123)*w))))+((((x+y)/(7.123/w))/(x+((y-7.123)/w)))/((x+((y+7.123)*w))-(((x/y)*7.123)-w))))+(((((x/y)+(7.321-w))-(x+(y*(7.321/w))))-(((x/y)*(7.321-w))/(x-((y*7.321)*w))))-(((x+(y*(7.321/w)))+(x-((y/7.321)/w)))+((x-((y*7.321)*w))*(x/(y-(7.321*w))))))))"
-"(((((((x+y)-(7.123/w))-((x*y)+(7.123-w)))-(((x/y)+(7.123+w))/((x*y)*(7.123-w))))-((((x*y)+(7.123-w))+((x/y)*(7.123-w)))+(((x*y)*(7.123-w))*(x-((y*7.123)/w)))))-(((((x-y)*(7.321+w))*((x/y)*(7.321+w)))*(((x*y)*(7.321+w))+(x+((y/7.321)/w))))*((((x/y)*(7.321+w))-(x+((y/7.321)*w)))-((x+((y/7.321)/w))/((x*y)-(7.321*w)))))))"
-"(((((((x+y)/(7.123*w))*(x+((y+7.123)*w)))*((x+((y+7.123)/w))+(((x*y)*7.123)-w)))*(((x+((y+7.123)*w))-(((x/y)*7.123)-w))-((((x*y)*7.123)-w)/((x+y)+(7.123*w)))))*(((((x/y)*(7.321-w))/(x-((y*7.321)*w)))/((x-((y*7.321)/w))-(x/(y+(7.321*w)))))/(((x-((y*7.321)*w))*(x/(y-(7.321*w))))*((x/(y+(7.321*w)))+((x-y)/(7.321+w)))))))"
-"(((((((x+y)/(7.123-w))/((x-y)*(7.123*w)))/(((x-y)/(7.123/w))-(x+((y*7.123)/w))))/((((x-y)*(7.123*w))*(x+((y*7.123)*w)))*((x+((y*7.123)/w))+(((x*y)/7.123)-w))))/(((((x+y)*(7.321*w))+(x-(y/(7.321*w))))+((x+(y/(7.321*w)))*(((x+y)*7.321)-w)))+(((x-(y/(7.321*w)))/(((x-y)*7.321)-w))/((((x+y)*7.321)-w)-((x+y)-(7.321*w)))))))"
-"(((((((x+y)/(7.123/w))/(x+((y-7.123)/w)))/((x+((y+7.123)*w))-(((x/y)*7.123)-w)))/(((x+((y-7.123)/w))*(((x+y)/7.123)-w))*((((x/y)*7.123)-w)+((x+y)+(7.123/w)))))/((((x+(y*(7.321/w)))+(x-((y/7.321)/w)))+((x-((y*7.321)*w))*(x/(y-(7.321*w)))))+(((x-((y/7.321)/w))/(x*(y+(7.321*w))))/((x/(y-(7.321*w)))-((x*y)-(7.321+w)))))))"
-"(((((((x-y)*(7.123*w))*(x+((y*7.123)*w)))*((x+((y*7.123)/w))+(((x*y)/7.123)-w)))*(((x+((y*7.123)*w))-(((x/y)/7.123)-w))-((((x*y)/7.123)-w)/((x-y)-(7.123*w)))))*((((x-(y/(7.321*w)))/(((x-y)*7.321)-w))/((((x+y)*7.321)-w)-((x+y)-(7.321*w))))/(((((x-y)*7.321)-w)*((x+y)-(7.321/w)))*(((x+y)-(7.321*w))+((x/y)+(7.321+w)))))))"
-"(((((((x-y)*(7.123+w))*((x/y)*(7.123+w)))*(((x*y)*(7.123+w))+(x+((y/7.123)/w))))*((((x/y)*(7.123+w))-(x+((y/7.123)*w)))-((x+((y/7.123)/w))/((x*y)-(7.123*w)))))*(((((x+y)/(7.321/w))/(x+((y-7.321)/w)))/((x+((y+7.321)*w))-(((x/y)*7.321)-w)))/(((x+((y-7.321)/w))*(((x+y)/7.321)-w))*((((x/y)*7.321)-w)+((x+y)+(7.321/w)))))))"
-"(((((((x-y)*(7.123/w))/(x+((y/7.123)+w)))/((x+((y*7.123)*w))-(((x/y)/7.123)-w)))/(((x+((y/7.123)+w))*((x*y)+(7.123*w)))*((((x/y)/7.123)-w)+((x-y)-(7.123/w)))))/((((x+((y+7.321)/w))+(((x*y)*7.321)-w))+((((x-y)*7.321)-w)*((x+y)-(7.321/w))))+(((((x*y)*7.321)-w)/((x+y)+(7.321*w)))/(((x+y)-(7.321/w))-((x*y)+(7.321-w)))))))"
-"(((((((x-y)+(7.123*w))+((x/y)-(7.123-w)))+(((x*y)-(7.123-w))*(x-(y*(7.123/w)))))+((((x/y)-(7.123-w))/(x+(y/(7.123*w))))/((x-(y*(7.123/w)))-(x-((y/7.123)*w)))))+(((((x/y)-(7.321+w))-((x*y)/(7.321-w)))-(((x/y)/(7.321+w))/(x-((y+7.321)*w))))-((((x*y)/(7.321-w))+(x-((y-7.321)/w)))+((x-((y+7.321)*w))*((x/y)+(7.321/w)))))))"
-"(((((((x-y)+(7.123+w))-((x*y)*(7.123+w)))-(((x-y)*(7.123/w))/(x+((y/7.123)+w))))-((((x*y)*(7.123+w))+(x+((y/7.123)/w)))+((x+((y/7.123)+w))*((x*y)+(7.123*w)))))-(((((x+y)/(7.321*w))*(x+((y+7.321)*w)))*((x+((y+7.321)/w))+(((x*y)*7.321)-w)))*(((x+((y+7.321)*w))-(((x/y)*7.321)-w))-((((x*y)*7.321)-w)/((x+y)+(7.321*w)))))))"
-"(((((((x-y)+(7.123/w))-((x+y)*(7.123*w)))-(((x/y)-(7.123-w))/(x+(y/(7.123*w)))))-((((x+y)*(7.123*w))+(x-(y/(7.123*w))))+((x+(y/(7.123*w)))*(((x+y)*7.123)-w))))-(((((x*y)+(7.321+w))*((x/y)/(7.321-w)))*(((x*y)/(7.321-w))+(x-((y-7.321)/w))))*((((x/y)/(7.321-w))-(x-((y-7.321)*w)))-((x-((y-7.321)/w))/((x/y)-(7.321/w)))))))"
-"(((((((x-y)-(7.123*w))*((x+y)*(7.123/w)))*(((x+y)*(7.123*w))+(x-(y/(7.123*w)))))*((((x+y)*(7.123/w))-(x+((y+7.123)/w)))-((x-(y/(7.123*w)))/(((x-y)*7.123)-w))))*(((((x/y)+(7.321+w))/((x*y)*(7.321-w)))/(((x/y)/(7.321-w))-(x-((y-7.321)*w))))/((((x*y)*(7.321-w))*(x-((y*7.321)/w)))*((x-((y-7.321)*w))+((x/y)-(7.321*w)))))))"
-"(((((((x-y)-(7.123+w))+((x-y)*(7.123/w)))+(((x-y)*(7.123*w))*(x+((y*7.123)*w))))+((((x-y)*(7.123/w))/(x+((y/7.123)+w)))/((x+((y*7.123)*w))-(((x/y)/7.123)-w))))+(((((x+y)*(7.321/w))-(x+((y+7.321)/w)))-((x-(y/(7.321*w)))/(((x-y)*7.321)-w)))-(((x+((y+7.321)/w))+(((x*y)*7.321)-w))+((((x-y)*7.321)-w)*((x+y)-(7.321/w)))))))"
-"(((((((x-y)-(7.123/w))/((x+y)/(7.123*w)))/(((x+y)*(7.123/w))-(x+((y+7.123)/w))))/((((x+y)/(7.123*w))*(x+((y+7.123)*w)))*((x+((y+7.123)/w))+(((x*y)*7.123)-w))))/(((((x*y)+(7.321-w))+((x/y)*(7.321-w)))+(((x*y)*(7.321-w))*(x-((y*7.321)/w))))+((((x/y)*(7.321-w))/(x-((y*7.321)*w)))/((x-((y*7.321)/w))-(x/(y+(7.321*w))))))))"
-"(((((((x-y)/(7.123*w))+(x+((y-7.123)*w)))+((x+((y-7.123)/w))*(((x+y)/7.123)-w)))+(((x+((y-7.123)*w))/(((x-y)/7.123)-w))/((((x+y)/7.123)-w)-((x-y)+(7.123*w)))))+((((x-(y*(7.321/w)))-(x-((y/7.321)*w)))-((x-((y/7.321)/w))/(x*(y+(7.321*w)))))-(((x-((y/7.321)*w))+(x*(y-(7.321*w))))+((x*(y+(7.321*w)))*((x/y)-(7.321+w)))))))"
-"(((((((x-y)/(7.123+w))/((x*y)/(7.123+w)))/(((x/y)*(7.123+w))-(x+((y/7.123)*w))))/((((x*y)/(7.123+w))*(x-((y+7.123)/w)))*((x+((y/7.123)*w))+((x*y)+(7.123/w)))))/(((((x-y)/(7.321*w))+(x+((y-7.321)*w)))+((x+((y-7.321)/w))*(((x+y)/7.321)-w)))+(((x+((y-7.321)*w))/(((x-y)/7.321)-w))/((((x+y)/7.321)-w)-((x-y)+(7.321*w)))))))"
-"(((((((x-y)/(7.123/w))-(x+((y*7.123)/w)))-((x+((y-7.123)*w))/(((x-y)/7.123)-w)))-(((x+((y*7.123)/w))+(((x*y)/7.123)-w))+((((x-y)/7.123)-w)*((x-y)+(7.123/w)))))-((((x+(y/(7.321*w)))*(((x+y)*7.321)-w))*((x-((y/7.321)*w))+(x*(y-(7.321*w)))))*(((((x+y)*7.321)-w)-((x+y)-(7.321*w)))-((x*(y-(7.321*w)))/((x*y)+(7.321+w)))))))"
-"(((((((x/y)*(7.123+w))-(x+((y/7.123)*w)))-((x+((y/7.123)/w))/((x*y)-(7.123*w))))-(((x+((y/7.123)*w))+((x*y)+(7.123/w)))+(((x*y)-(7.123*w))*((x+y)+(7.123-w)))))-((((x+((y-7.321)/w))*(((x+y)/7.321)-w))*((((x/y)*7.321)-w)+((x+y)+(7.321/w))))*(((((x+y)/7.321)-w)-((x-y)+(7.321*w)))-(((x+y)+(7.321/w))/((x*y)-(7.321-w)))))))"
-"(((((((x/y)*(7.123-w))/(x-((y*7.123)*w)))/((x-((y*7.123)/w))-(x/(y+(7.123*w)))))/(((x-((y*7.123)*w))*(x/(y-(7.123*w))))*((x/(y+(7.123*w)))+((x-y)/(7.123+w)))))/((((x+((y/7.321)*w))+((x*y)+(7.321/w)))+(((x*y)-(7.321*w))*((x+y)+(7.321-w))))+((((x*y)+(7.321/w))/((x+y)*(7.321-w)))/(((x+y)+(7.321-w))-((x-y)/(7.321*w)))))))"
-"(((((((x/y)+(7.123+w))/((x*y)*(7.123-w)))/(((x/y)/(7.123-w))-(x-((y-7.123)*w))))/((((x*y)*(7.123-w))*(x-((y*7.123)/w)))*((x-((y-7.123)*w))+((x/y)-(7.123*w)))))/(((((x*y)*(7.321+w))+(x+((y/7.321)/w)))+((x+((y/7.321)+w))*((x*y)+(7.321*w))))+(((x+((y/7.321)/w))/((x*y)-(7.321*w)))/(((x*y)+(7.321*w))-((x+y)-(7.321-w)))))))"
-"(((((((x/y)+(7.123-w))-(x+(y*(7.123/w))))-(((x/y)*(7.123-w))/(x-((y*7.123)*w))))-(((x+(y*(7.123/w)))+(x-((y/7.123)/w)))+((x-((y*7.123)*w))*(x/(y-(7.123*w))))))-(((((x*y)/(7.321+w))*(x-((y+7.321)/w)))*((x+((y/7.321)*w))+((x*y)+(7.321/w))))*(((x-((y+7.321)/w))-((x*y)-(7.321/w)))-(((x*y)+(7.321/w))/((x+y)*(7.321-w)))))))"
-"(((((((x/y)+(7.123/w))-((x-y)-(7.123+w)))-(((x+y)/(7.123-w))/((x-y)*(7.123*w))))-((((x-y)-(7.123+w))+((x-y)*(7.123/w)))+(((x-y)*(7.123*w))*(x+((y*7.123)*w)))))-(((((x-y)-(7.321*w))*((x+y)*(7.321/w)))*(((x+y)*(7.321*w))+(x-(y/(7.321*w)))))*((((x+y)*(7.321/w))-(x+((y+7.321)/w)))-((x-(y/(7.321*w)))/(((x-y)*7.321)-w))))))"
-"(((((((x/y)-(7.123*w))/((x-y)*(7.123+w)))/(((x-y)+(7.123+w))-((x*y)*(7.123+w))))/((((x-y)*(7.123+w))*((x/y)*(7.123+w)))*(((x*y)*(7.123+w))+(x+((y/7.123)/w)))))/(((((x+y)-(7.321-w))+((x+y)/(7.321/w)))+(((x+y)/(7.321*w))*(x+((y+7.321)*w))))+((((x+y)/(7.321/w))/(x+((y-7.321)/w)))/((x+((y+7.321)*w))-(((x/y)*7.321)-w))))))"
-"(((((((x/y)-(7.123+w))-((x*y)/(7.123-w)))-(((x/y)/(7.123+w))/(x-((y+7.123)*w))))-((((x*y)/(7.123-w))+(x-((y-7.123)/w)))+((x-((y+7.123)*w))*((x/y)+(7.123/w)))))-(((((x-y)*(7.321*w))*(x+((y*7.321)*w)))*((x+((y*7.321)/w))+(((x*y)/7.321)-w)))*(((x+((y*7.321)*w))-(((x/y)/7.321)-w))-((((x*y)/7.321)-w)/((x-y)-(7.321*w)))))))"
-"(((((((x/y)-(7.123-w))/(x+(y/(7.123*w))))/((x-(y*(7.123/w)))-(x-((y/7.123)*w))))/(((x+(y/(7.123*w)))*(((x+y)*7.123)-w))*((x-((y/7.123)*w))+(x*(y-(7.123*w))))))/(((((x*y)/(7.321-w))+(x-((y-7.321)/w)))+((x-((y+7.321)*w))*((x/y)+(7.321/w))))+(((x-((y-7.321)/w))/((x/y)-(7.321/w)))/(((x/y)+(7.321/w))-((x-y)-(7.321+w)))))))"
-"(((((((x/y)-(7.123/w))*((x-y)+(7.123+w)))*(((x-y)-(7.123+w))+((x-y)*(7.123/w))))*((((x-y)+(7.123+w))-((x*y)*(7.123+w)))-(((x-y)*(7.123/w))/(x+((y/7.123)+w)))))*(((((x-y)-(7.321/w))/((x+y)/(7.321*w)))/(((x+y)*(7.321/w))-(x+((y+7.321)/w))))/((((x+y)/(7.321*w))*(x+((y+7.321)*w)))*((x+((y+7.321)/w))+(((x*y)*7.321)-w))))))"
-"(((((((x/y)/(7.123+w))/(x-((y+7.123)*w)))/((x-((y+7.123)/w))-((x*y)-(7.123/w))))/(((x-((y+7.123)*w))*((x/y)+(7.123/w)))*(((x*y)-(7.123/w))+((x+y)/(7.123-w)))))/((((x+((y*7.321)/w))+(((x*y)/7.321)-w))+((((x-y)/7.321)-w)*((x-y)+(7.321/w))))+(((((x*y)/7.321)-w)/((x-y)-(7.321*w)))/(((x-y)+(7.321/w))-((x+y)*(7.321*w)))))))"
-"(((((((x/y)/(7.123-w))-(x-((y-7.123)*w)))-((x-((y-7.123)/w))/((x/y)-(7.123/w))))-(((x-((y-7.123)*w))+((x/y)-(7.123*w)))+(((x/y)-(7.123/w))*((x-y)+(7.123+w)))))-((((x+((y/7.321)+w))*((x*y)+(7.321*w)))*((((x/y)/7.321)-w)+((x-y)-(7.321/w))))*((((x*y)+(7.321*w))-((x+y)-(7.321-w)))-(((x-y)-(7.321/w))/((x+y)/(7.321*w)))))))"
-"((((((x*(y+(7.123*w)))*((x/y)-(7.123+w)))*(((x*y)-(7.123+w))+((x/y)/(7.123+w))))*((((x/y)-(7.123+w))-((x*y)/(7.123-w)))-(((x/y)/(7.123+w))/(x-((y+7.123)*w)))))*(((((x+y)/(7.321-w))/((x-y)*(7.321*w)))/(((x-y)/(7.321/w))-(x+((y*7.321)/w))))/((((x-y)*(7.321*w))*(x+((y*7.321)*w)))*((x+((y*7.321)/w))+(((x*y)/7.321)-w))))))"
-"((((((x*(y-(7.123*w)))/((x*y)+(7.123+w)))/(((x/y)-(7.123+w))-((x*y)/(7.123-w))))/((((x*y)+(7.123+w))*((x/y)/(7.123-w)))*(((x*y)/(7.123-w))+(x-((y-7.123)/w)))))/(((((x-y)-(7.321+w))+((x-y)*(7.321/w)))+(((x-y)*(7.321*w))*(x+((y*7.321)*w))))+((((x-y)*(7.321/w))/(x+((y/7.321)+w)))/((x+((y*7.321)*w))-(((x/y)/7.321)-w))))))"
-"((((((x+((y*7.123)*w))-(((x/y)/7.123)-w))-((((x*y)/7.123)-w)/((x-y)-(7.123*w))))-(((((x/y)/7.123)-w)+((x-y)-(7.123/w)))+(((x-y)-(7.123*w))*((x+y)*(7.123/w)))))-((((((x-y)*7.321)-w)*((x+y)-(7.321/w)))*(((x+y)-(7.321*w))+((x/y)+(7.321+w))))*((((x+y)-(7.321/w))-((x*y)+(7.321-w)))-(((x/y)+(7.321+w))/((x*y)*(7.321-w)))))))"
-"((((((x+((y*7.123)/w))+(((x*y)/7.123)-w))+((((x-y)/7.123)-w)*((x-y)+(7.123/w))))+(((((x*y)/7.123)-w)/((x-y)-(7.123*w)))/(((x-y)+(7.123/w))-((x+y)*(7.123*w)))))+((((((x+y)*7.321)-w)-((x+y)-(7.321*w)))-((x*(y-(7.321*w)))/((x*y)+(7.321+w))))-((((x+y)-(7.321*w))+((x/y)+(7.321+w)))+(((x*y)+(7.321+w))*((x/y)/(7.321-w)))))))"
-"((((((x+((y+7.123)*w))-(((x/y)*7.123)-w))-((((x*y)*7.123)-w)/((x+y)+(7.123*w))))-(((((x/y)*7.123)-w)+((x+y)+(7.123/w)))+(((x+y)+(7.123*w))*((x/y)+(7.123-w)))))-((((x-((y*7.321)*w))*(x/(y-(7.321*w))))*((x/(y+(7.321*w)))+((x-y)/(7.321+w))))*(((x/(y-(7.321*w)))-((x*y)-(7.321+w)))-(((x-y)/(7.321+w))/((x*y)/(7.321+w)))))))"
-"((((((x+((y+7.123)/w))+(((x*y)*7.123)-w))+((((x-y)*7.123)-w)*((x+y)-(7.123/w))))+(((((x*y)*7.123)-w)/((x+y)+(7.123*w)))/(((x+y)-(7.123/w))-((x*y)+(7.123-w)))))+((((x-((y*7.321)/w))-(x/(y+(7.321*w))))-(((x/y)-(7.321*w))/((x-y)*(7.321+w))))-(((x/(y+(7.321*w)))+((x-y)/(7.321+w)))+(((x-y)*(7.321+w))*((x/y)*(7.321+w)))))))"
-"((((((x+((y-7.123)*w))/(((x-y)/7.123)-w))/((((x+y)/7.123)-w)-((x-y)+(7.123*w))))/(((((x-y)/7.123)-w)*((x-y)+(7.123/w)))*(((x-y)+(7.123*w))+((x/y)-(7.123-w)))))/((((x-((y/7.321)*w))+(x*(y-(7.321*w))))+((x*(y+(7.321*w)))*((x/y)-(7.321+w))))+(((x*(y-(7.321*w)))/((x*y)+(7.321+w)))/(((x/y)-(7.321+w))-((x*y)/(7.321-w)))))))"
-"((((((x+((y-7.123)/w))*(((x+y)/7.123)-w))*((((x/y)*7.123)-w)+((x+y)+(7.123/w))))*(((((x+y)/7.123)-w)-((x-y)+(7.123*w)))-(((x+y)+(7.123/w))/((x*y)-(7.123-w)))))*((((x-((y/7.321)/w))/(x*(y+(7.321*w))))/((x/(y-(7.321*w)))-((x*y)-(7.321+w))))/(((x*(y+(7.321*w)))*((x/y)-(7.321+w)))*(((x*y)-(7.321+w))+((x/y)/(7.321+w)))))))"
-"((((((x+((y/7.123)*w))+((x*y)+(7.123/w)))+(((x*y)-(7.123*w))*((x+y)+(7.123-w))))+((((x*y)+(7.123/w))/((x+y)*(7.123-w)))/(((x+y)+(7.123-w))-((x-y)/(7.123*w)))))+((((((x+y)/7.321)-w)-((x-y)+(7.321*w)))-(((x+y)+(7.321/w))/((x*y)-(7.321-w))))-((((x-y)+(7.321*w))+((x/y)-(7.321-w)))+(((x*y)-(7.321-w))*(x-(y*(7.321/w))))))))"
-"((((((x+((y/7.123)+w))*((x*y)+(7.123*w)))*((((x/y)/7.123)-w)+((x-y)-(7.123/w))))*((((x*y)+(7.123*w))-((x+y)-(7.123-w)))-(((x-y)-(7.123/w))/((x+y)/(7.123*w)))))*((((((x*y)*7.321)-w)/((x+y)+(7.321*w)))/(((x+y)-(7.321/w))-((x*y)+(7.321-w))))/((((x+y)+(7.321*w))*((x/y)+(7.321-w)))*(((x*y)+(7.321-w))+((x/y)*(7.321-w)))))))"
-"((((((x+((y/7.123)/w))/((x*y)-(7.123*w)))/(((x*y)+(7.123*w))-((x+y)-(7.123-w))))/((((x*y)-(7.123*w))*((x+y)+(7.123-w)))*(((x+y)-(7.123-w))+((x+y)/(7.123/w)))))/((((((x/y)*7.321)-w)+((x+y)+(7.321/w)))+(((x+y)+(7.321*w))*((x/y)+(7.321-w))))+((((x+y)+(7.321/w))/((x*y)-(7.321-w)))/(((x/y)+(7.321-w))-(x+(y*(7.321/w))))))))"
-"((((((x+(y*(7.123/w)))+(x-((y/7.123)/w)))+((x-((y*7.123)*w))*(x/(y-(7.123*w)))))+(((x-((y/7.123)/w))/(x*(y+(7.123*w))))/((x/(y-(7.123*w)))-((x*y)-(7.123+w)))))+((((x-((y+7.321)/w))-((x*y)-(7.321/w)))-(((x*y)+(7.321/w))/((x+y)*(7.321-w))))-((((x*y)-(7.321/w))+((x+y)/(7.321-w)))+(((x+y)*(7.321-w))*((x-y)/(7.321/w)))))))"
-"((((((x+(y/(7.123*w)))*(((x+y)*7.123)-w))*((x-((y/7.123)*w))+(x*(y-(7.123*w)))))*(((((x+y)*7.123)-w)-((x+y)-(7.123*w)))-((x*(y-(7.123*w)))/((x*y)+(7.123+w)))))*((((x-((y-7.321)/w))/((x/y)-(7.321/w)))/(((x/y)+(7.321/w))-((x-y)-(7.321+w))))/((((x/y)-(7.321/w))*((x-y)+(7.321+w)))*(((x-y)-(7.321+w))+((x-y)*(7.321/w)))))))"
-"((((((x-((y*7.123)*w))*(x/(y-(7.123*w))))*((x/(y+(7.123*w)))+((x-y)/(7.123+w))))*(((x/(y-(7.123*w)))-((x*y)-(7.123+w)))-(((x-y)/(7.123+w))/((x*y)/(7.123+w)))))*(((((x*y)+(7.321/w))/((x+y)*(7.321-w)))/(((x+y)+(7.321-w))-((x-y)/(7.321*w))))/((((x+y)*(7.321-w))*((x-y)/(7.321/w)))*(((x-y)/(7.321*w))+(x+((y-7.321)*w)))))))"
-"((((((x-((y*7.123)/w))-(x/(y+(7.123*w))))-(((x/y)-(7.123*w))/((x-y)*(7.123+w))))-(((x/(y+(7.123*w)))+((x-y)/(7.123+w)))+(((x-y)*(7.123+w))*((x/y)*(7.123+w)))))-(((((x*y)-(7.321*w))*((x+y)+(7.321-w)))*(((x+y)-(7.321-w))+((x+y)/(7.321/w))))*((((x+y)+(7.321-w))-((x-y)/(7.321*w)))-(((x+y)/(7.321/w))/(x+((y-7.321)/w)))))))"
-"((((((x-((y+7.123)*w))*((x/y)+(7.123/w)))*(((x*y)-(7.123/w))+((x+y)/(7.123-w))))*((((x/y)+(7.123/w))-((x-y)-(7.123+w)))-(((x+y)/(7.123-w))/((x-y)*(7.123*w)))))*((((((x*y)/7.321)-w)/((x-y)-(7.321*w)))/(((x-y)+(7.321/w))-((x+y)*(7.321*w))))/((((x-y)-(7.321*w))*((x+y)*(7.321/w)))*(((x+y)*(7.321*w))+(x-(y/(7.321*w))))))))"
-"((((((x-((y+7.123)/w))-((x*y)-(7.123/w)))-(((x*y)+(7.123/w))/((x+y)*(7.123-w))))-((((x*y)-(7.123/w))+((x+y)/(7.123-w)))+(((x+y)*(7.123-w))*((x-y)/(7.123/w)))))-((((((x-y)/7.321)-w)*((x-y)+(7.321/w)))*(((x-y)+(7.321*w))+((x/y)-(7.321-w))))*((((x-y)+(7.321/w))-((x+y)*(7.321*w)))-(((x/y)-(7.321-w))/(x+(y/(7.321*w))))))))"
-"((((((x-((y-7.123)*w))+((x/y)-(7.123*w)))+(((x/y)-(7.123/w))*((x-y)+(7.123+w))))+((((x/y)-(7.123*w))/((x-y)*(7.123+w)))/(((x-y)+(7.123+w))-((x*y)*(7.123+w)))))+(((((x*y)+(7.321*w))-((x+y)-(7.321-w)))-(((x-y)-(7.321/w))/((x+y)/(7.321*w))))-((((x+y)-(7.321-w))+((x+y)/(7.321/w)))+(((x+y)/(7.321*w))*(x+((y+7.321)*w)))))))"
-"((((((x-((y-7.123)/w))/((x/y)-(7.123/w)))/(((x/y)+(7.123/w))-((x-y)-(7.123+w))))/((((x/y)-(7.123/w))*((x-y)+(7.123+w)))*(((x-y)-(7.123+w))+((x-y)*(7.123/w)))))/((((((x/y)/7.321)-w)+((x-y)-(7.321/w)))+(((x-y)-(7.321*w))*((x+y)*(7.321/w))))+((((x-y)-(7.321/w))/((x+y)/(7.321*w)))/(((x+y)*(7.321/w))-(x+((y+7.321)/w)))))))"
-"((((((x-((y/7.123)*w))+(x*(y-(7.123*w))))+((x*(y+(7.123*w)))*((x/y)-(7.123+w))))+(((x*(y-(7.123*w)))/((x*y)+(7.123+w)))/(((x/y)-(7.123+w))-((x*y)/(7.123-w)))))+(((((x/y)+(7.321/w))-((x-y)-(7.321+w)))-(((x+y)/(7.321-w))/((x-y)*(7.321*w))))-((((x-y)-(7.321+w))+((x-y)*(7.321/w)))+(((x-y)*(7.321*w))*(x+((y*7.321)*w)))))))"
-"((((((x-((y/7.123)/w))/(x*(y+(7.123*w))))/((x/(y-(7.123*w)))-((x*y)-(7.123+w))))/(((x*(y+(7.123*w)))*((x/y)-(7.123+w)))*(((x*y)-(7.123+w))+((x/y)/(7.123+w)))))/(((((x*y)-(7.321/w))+((x+y)/(7.321-w)))+(((x+y)*(7.321-w))*((x-y)/(7.321/w))))+((((x+y)/(7.321-w))/((x-y)*(7.321*w)))/(((x-y)/(7.321/w))-(x+((y*7.321)/w)))))))"
-"((((((x-(y*(7.123/w)))-(x-((y/7.123)*w)))-((x-((y/7.123)/w))/(x*(y+(7.123*w)))))-(((x-((y/7.123)*w))+(x*(y-(7.123*w))))+((x*(y+(7.123*w)))*((x/y)-(7.123+w)))))-((((x-((y+7.321)*w))*((x/y)+(7.321/w)))*(((x*y)-(7.321/w))+((x+y)/(7.321-w))))*((((x/y)+(7.321/w))-((x-y)-(7.321+w)))-(((x+y)/(7.321-w))/((x-y)*(7.321*w)))))))"
-"((((((x-(y/(7.123*w)))/(((x-y)*7.123)-w))/((((x+y)*7.123)-w)-((x+y)-(7.123*w))))/(((((x-y)*7.123)-w)*((x+y)-(7.123/w)))*(((x+y)-(7.123*w))+((x/y)+(7.123+w)))))/((((x-((y-7.321)*w))+((x/y)-(7.321*w)))+(((x/y)-(7.321/w))*((x-y)+(7.321+w))))+((((x/y)-(7.321*w))/((x-y)*(7.321+w)))/(((x-y)+(7.321+w))-((x*y)*(7.321+w)))))))"
-"((((((x/(y+(7.123*w)))+((x-y)/(7.123+w)))+(((x-y)*(7.123+w))*((x/y)*(7.123+w))))+((((x-y)/(7.123+w))/((x*y)/(7.123+w)))/(((x/y)*(7.123+w))-(x+((y/7.123)*w)))))+(((((x+y)+(7.321-w))-((x-y)/(7.321*w)))-(((x+y)/(7.321/w))/(x+((y-7.321)/w))))-((((x-y)/(7.321*w))+(x+((y-7.321)*w)))+((x+((y-7.321)/w))*(((x+y)/7.321)-w))))))"
-"((((((x/(y-(7.123*w)))-((x*y)-(7.123+w)))-(((x-y)/(7.123+w))/((x*y)/(7.123+w))))-((((x*y)-(7.123+w))+((x/y)/(7.123+w)))+(((x*y)/(7.123+w))*(x-((y+7.123)/w)))))-(((((x+y)*(7.321-w))*((x-y)/(7.321/w)))*(((x-y)/(7.321*w))+(x+((y-7.321)*w))))*((((x-y)/(7.321/w))-(x+((y*7.321)/w)))-((x+((y-7.321)*w))/(((x-y)/7.321)-w))))))"
-"(0)for(var i;i){(())}()"
-"0and for(var i;i<<0){()}"
-"0and(0)for(var i:=0;i){()}"
-"cos(0)for(var i;i){()}"
-"floor(0)for(var i;i){}()"
-"for(){{}}"
-"for(vAr i:=0;i)"
-"for(var i:=0;i)"
-"for(var i:=0;i){()}"
-"for(var i:=0;i){()}()"
-"for(var i:=0;i){{(){}}}()"
-"for(var i:=0;i){}"
-"for(var i:=0;i,0){()}"
-"for(var i;(i)){()}"
-"for(var i;i!0){()}"
-"for(var i;i)"
-"for(var i;i){(())(())}"
-"for(var i;i){(())(())}()"
-"for(var i;i){(())}()"
-"for(var i;i){()}"
-"for(var i;i){()}()"
-"for(var i;i){}"
-"frac(0)for(var i;i){()}"
-"root(0,0)for(var i;i){()}"
-"var V:=1;var s0appe0:=false;repeat s0appe0 false for(){(){}}(())"
-"var r:=0;for(r)"
-"var r:=0;for(r){((()))}"
-"var r:=0;for(r){(())(())}()"
-"var r:=0;for(r){(())()}()"
-"var r:=0;for(r){(())}"
-"var r:=0;for(r){()()}()"
-"var r:=0;for(r){()}"
-"var r:=0;for(r){()}()"
-"var r:=0;for(var i:=0;i){()}"
-"var r:=0;r for(())"
-"var r:=0;r for()"
-"var r:=for(Var i:=0;i){()}"
-"var r:=for(var i:=0;i)"
-"var r:=for(var i:=0;i){()}"
-"var r:=for(var i:=0;i){}"
-"var r:=for(var i;(0)z i)"
-"var r:=for(var i;I){(())(())}"
-"var r:=for(var i;i)"
-"var r:=for(var i;i){(())(())}"
-"var r:=for(var i;i){(())(())}()"
-"var r:=for(var i;i){(())}"
-"var r:=for(var i;i){(())}()"
-"var r:=for(var i;i){(())}(){{{}}}()"
-"var r:=for(var i;i){()()}"
-"var r:=for(var i;i){()}"
-"var r:=for(var i;i){()}()"
-"var r:=for(var i;i){}()"
-"var r:=for(var i;i+0){()}"
-"var r;for(r){(())(())}()"
-"var r;for(r){()}"
-"var r;for(r){}()"
-"var r;for(var i:=0;i)"
-"0 ? 1 : 2"
-"[(0)] ? [(1)] : [(2)]"
-"(0 ? 1 : 2) == 2"
-"'01234'              == '01234567890123456789'[:r1-r0]"
-"'0123456'            == '01234567890123456789'[:  r1]"
-"'0123456789'[0:] == '01234567890123456789'[0:9]"
-"'0123456789'[:]  == '01234567890123456789'[0:9]"
-"'0123456789'     == '01234567890123456789'[0:9]"
-"'0123456789'[:]  == '01234567890123456789'[10:]"
-"'01234567890123456789'[0:9] == '0123456789'"
-"'01234567890123456789'[0:9] == '0123456789'[0:]"
-"'01234567890123456789'[0:9] == '0123456789'[:9]"
-"'01234567890123456789'[0:9] != '123456789'"
-"'01234567890123456789'[0:9] != '123456789'[0:]"
-"'01234567890123456789'[0:9] != '123456789'[:8]"
-"'01234567890123456789'[10:] == '0123456789'[:]"
-"'01234567890123456789'[10:] != '123456789'[:]"
-"'01234567890123456789'[1+1:r1]  == '23456'"
-"'01234567890123456789'[2*6:10+6] == '23456'"
-"'01234567890123456789'[2: r1]   == '23456'"
-"'01234567890123456789'[:9]  == '0123456789'[:9]"
-"'01234567890123456789'[:9]  != '123456789'[:8]"
-"'01234567890123456789'[r0:  ]   == '234567890123456789'"
-"'01234567890123456789'[r0+2:r1] == '456'"
-"'01234567890123456789'[r0:3*2]  == '23456'"
-"'01234567890123456789'[r0: 6]   == '23456'"
-"'01234567890123456789'[r0:r1+2] == '2345678'"
-"'01234567890123456789'[r0:r1]   == '23456'"
-"'01234567890123456789'[:  r1]   == '0123456'"
-"'01234567890123456789'[:r1-r0]  == '01234'"
-"'01234567890123456789'[r1-r0:]  == '4567890123456789'"
-"'0123456789'[3:3] == '3'[:]"
-"'0123456789'[3:3] == '3'[0:0]"
-"'0123456789'[:9] == '01234567890123456789'[0:9]"
-"'0123456789'[:9] == '01234567890123456789'[:9]"
-"0 * (abs  (x) + acos (y) + asin (x) + atan (y))"
-"0 * (ceil (x) + cos  (y) + cosh (x) + exp  (y))"
-"0 * (deg2grad(x) + grad2deg(y) + rad2deg(x) + deg2rad(y))"
-"0 * (erf  (x) + erfc (y) + sgn  (y) + frac (y))"
-"0 * (floor(x) + log  (y) + log10(x) + round(y))"
-"0 == (for (var i := 0; i < 10; i += 1) { ~{break[i]; continue; i += i} })"
-"0 == (for (var i := 0; i < 10; i += 1) { ~{continue; break[7]; i += i} })"
-"0 * (log1p(x) + expm1(y) + acosh(x) + asinh(y))"
-"0 * (sec  (x) + csc  (y) + tanh (x) + cot  (y))"
-"0 * (sin  (x) + sinh (y) + sqrt (x) + tan  (y))"
-"(1 + 1 < 3 + 3 ? 7 : 9) == 7"
-"(1 + 1 > 3 + 3 ? 7 : 9) == 9"
-"(1 + 1 < 3 ? 7 : 9) == 7"
-"(1 + 1 > 3 ? 7 : 9) == 9"
-"(1 < 2 ? 3 : 4) == 3"
-"(1 > 2 ? 3 : 4) == 4"
-"'123456789'[0:]  != '01234567890123456789'[0:9]"
-"'123456789'[:]   != '01234567890123456789'[0:9]"
-"'123456789'      != '01234567890123456789'[0:9]"
-"'123456789'[:]   != '01234567890123456789'[10:]"
-"'123456789'[:8]  != '01234567890123456789'[0:9]"
-"'123456789'[:8]  != '01234567890123456789'[:9]"
-"(1 > 2 ? 3 : 4 + 5) == 9"
-"(1 < 2 ? 3 + 5 : 4) == 8"
-"'123' in 'aaa123'"
-"12 == (if (1 > 2) { var x:= 2; } else { var x[3] := {7,2,3}; sum(x); })"
-"12 == (if (1 < 2) { var x[3] := {7,2,3}; sum(x); } else { var x:= 2; })"
-" 1 ? 3 : 4"
-"(1 ? 3 : 4) == 3"
-"1 == (for (var i := 0; i < 10; i += 1) { ~{break[i += 1]; continue; i += i} })"
-"'1XYZ2' ilike '*xyz*'"
-"21 == (for (var i := 0; i < 10; i += 1) { if (i > 2) { break [i * 7]; i += 1; i += 2; i += 3; }; })"
-"21 == (for (var i := 0; i < 10; i += 1) { if (i > 2) { break [i * 7]; return [i * 8]; i += 1; i += 2; i += 3; }; })"
-"(2 < 3 + 3 ? 7 : 9) == 7"
-"(2 > 3 + 3 ? 7 : 9) == 9"
-"'23456'              == '01234567890123456789'[1+1:r1]"
-"'23456' == '01234567890123456789'[2*6:10+6]"
-"'23456'              == '01234567890123456789'[2: r1]"
-"'23456'              == '01234567890123456789'[r0:3*2]"
-"'23456'              == '01234567890123456789'[r0: 6]"
-"'23456'              == '01234567890123456789'[r0:r1]"
-"'2345678'            == '01234567890123456789'[r0:r1+2]"
-"'234567890123456789' == '01234567890123456789'[r0:  ]"
-"2 == for (var i := 0; i < 10; i += 1) { if (i > 2) { continue; i += 1; i += 2; i += 3; } else i; }"
-"2 == for (var i := 0; i < 10; i += 1) { if (i > 2) { continue; return [i * 8]; i += 1; i += 2; i += 3; } else i; }"
-"'456'                == '01234567890123456789'[r0+2:r1]"
-"'4567890123456789'   == '01234567890123456789'[r1-r0:]"
-"7 == (for (var i := 0; i < 10; i += 1) { ~{break[7]; continue; i += i} })"
-"'a123b' like '*123*'"
-"'aaa' + '123' == 'aaa123'"
-"'aaa123' == 'aaa' + '123'"
-"'aaa' == 'aaa'"
-"'aaa' <= 'bbb'"
-"'aaa'  < 'bbb'"
-"'aaa' in 'aaa123'"
-"'bbb' >= 'aaa'"
-"'bbb' >  'aaa'"
-"[*] { case 1 < 2 : 1 / 2; case (1 < 3) : 2 / 2; case 1 < 4 : 3 / 2; case (1 < 5) : 4 / 2; }"
-"[*]{ case x < y : x + y; case y < x : y - x; }"
-"equal((2.2*pi^2.2^3.3),2.2*(pi^13.4894687605338489))"
-"equal((2*pi^2^3),2*(pi^8))"
-"equal((pi^2.2^3.3*2),2*(pi^13.4894687605338489))"
-"equal((pi^2.2^3.3/2.2),(pi^13.4894687605338489)/2.2)"
-"equal((pi^2.2^3.3),(pi^13.4894687605338489))"
-"equal((pi^-2^-3),1/(pi^(1/8)))"
-"equal((pi^-2^3),1/(pi^8))"
-"equal((pi^2^3*2),2*(pi^8))"
-"equal((pi^2^3/2),(pi^8)/2)"
-"equal((pi^2^-3),(pi^(1/8)))"
-"equal((pi^2^3),(pi^8))"
-"equal(pi^2^3-pi^8,0)"
-"equal(\t \n(\n \r1.1\t\t - \n\n 2.2\n\n/\r3.3\t),(1.1-2.2/3.3))"
-"for(var i := 0; (i < 10) and (i != y); i+=2) { x += i; }; x;"
-"for(var i := 0; (i < 10) and (i != y);) { x += i; i+=2; }; x;"
-"for(var i := 0; (i < 10);) { i += 1; }; x;"
-"for(var i := 0; (i < y); i += 1) { if (i <= (y / 2)) continue; else x += i; }; x;"
-"for(var i := 0; (i < y); i += 1) { if (i <= (y / 2)) x += i; else break; }; x;"
-"if (1 < 2) { 1+2; 3;} == 3"
-"if (1 < 2) { 1+2; 3;} else {1+2; 4;} == 3"
-"if (1 > 2) { 1+2; 3;} else {1+2; 4;} == 4"
-"if (1 < 2) { 1+2; 3;} else 4; == 3"
-"if (1 > 2) { 1+2; 3;} else 4; == 4"
-"if (1 < 2) { 1+2; 3;} else if (1 < 2) {1+2; 4;} == 3"
-"if (1 > 2) { 1+2; 3;} else if (1 < 2) {1+2; 4;} == 4"
-"if (1 > 2) { 1+2; 3;} else if (1 > 2) {1+2; 4;} == null"
-"if (1 < 2) { 1+2; 3;} else if (1 < 2) 4; == 3"
-"if (1 > 2) { 1+2; 3;} else if (1 < 2) 4; == 4"
-"if (1 > 2) { 1+2; 3;} else if (1 > 2) 4; == null"
-"if (1 > 2) { 1+2; 3;} == null"
-"if (1 < 2) 3; == 3"
-"if (1 < 2) 3; else {1+2; 4;} == 3"
-"if (1 > 2) 3; else {1+2; 4;} == 4"
-"if (1 < 2) 3; else 4; == 3"
-"if (1 > 2) 3; else 4; == 4"
-"if (1 < 2) 3; else if (1 < 2) {1+2; 4;} == 3"
-"if (1 > 2) 3; else if (1 < 2) {1+2; 4;} == 4"
-"if (1 > 2) 3; else if (1 > 2) {1+2; 4;} == null"
-"if (1 < 2) 3; else if (1 < 2) 4; == 3"
-"if (1 > 2) 3; else if (1 < 2) 4; == 4"
-"if (1 > 2) 3; else if (1 > 2) 4; == null"
-"if (1 > 2) 3; == null"
-"inrange('aaa','bbb','ccc')"
-"(min(0,1) ? 1 + 3 : 1 + 4) == 5"
-"(min(1,2) ? 1 + 3 : 1 + 4) == 4"
-"repeat 1.1 + 2.2 until (1 < 2)"
-"repeat 1.1234; 1 < 2; 1.1 + 2.2 until (1 < 2)"
-"switch { case 1 > 1 : 1; case 2 > 2 : 2; case 3 = 3 : 3; case 4 > 4 : 4; default : 5; }"
-"switch { case (1 >  2) : 0; case (1 <= 2) : 1; default: 1.12345; }"
-"switch { case (1 <= 2) : 1; default: 1.12345; }"
-"switch { case (1 <= 2) : switch { case (1 <= 2) : 1; default: 1.12345; }; default: 1.12345; }"
-"switch { case ([x >  y]) : [0]; case ([x <= y]) : [y - x]; default: 1.12345; }"
-"switch { case (x >  y) : 0; case (x <= y) : (y - x); default: 1.12345; }"
-"switch { case {(x <= y)} : switch { case ({x <= y}) : x; default: 1.12345; }; default: 1.12345; }"
-"switch { case {x <= y} : switch { case {x <= y} : x; default: 1.12345; }; default: 1.12345; }"
-"switch { case (x <= y) : switch { case (x <= y) : (y - x); default: 1.12345; }; default: 1.12345; }"
-"switch { case {x <= y} : x; default: 1.12345; }"
-"switch { case [(x <= y)] : {y - x}; default: 1.12345; }"
-"switch { case (x <= y) : (y - x); default: 1.12345; }"
-"var s := 'abc';  ~{1 + 2; 'abc' + s; s} == s"
-"var s := 'abc';  ~{1 + 2; var x := 'ab'; x + 'c'} == s"
-"var s := 'abc';  ~{'ab' + 'c'} == s"
-"var s := 'abc';  ~{'abc'     } == s"
-"var s := 'abc';  s == ~{'ab' + 'c'}"
-"var s := 'abc';  s == ~{'abc'     }"
-"var s := 'abc';  ~{s         } == s"
-"var s := 'abc';  s == ~{s         }"
-"var v0[3] := {1,2, 3}; var v1[3] := {1,1,1}; v0 -= v1; (v0[0] == 0) and (v0[1] == 1) and (v0[2] == 2)"
-"var v0[3] := {1,2, 3}; var v1[3] := {1,1,1}; v0 += v1; (v0[0] == 2) and (v0[1] == 3) and (v0[2] == 4)"
-"var v0[3] := {1,2, 3}; var v1[3] := {2,2,2}; v0 *= v1; (v0[0] == 2) and (v0[1] == 4) and (v0[2] == 6)"
-"var v0[3] := [1]; var v1[3] := [1]; v0 -= v1; (v0[0] == v0[1]) and (v0[0] == v0[2]) and (v0[0] == 0)"
-"var v0[3] := [1]; var v1[3] := [1]; v0 += v1; (v0[0] == v0[1]) and (v0[0] == v0[2]) and (v0[0] == 2)"
-"var v0[3] := [1]; var v1[3] := [2]; v0 *= v1; (v0[0] == v0[1]) and (v0[0] == v0[2]) and (v0[0] == 2)"
-"var v0[3] := {3,9,15}; var v1[3] := {3,3,3}; v0 /= v1; (v0[0] == 1) and (v0[1] == 3) and (v0[2] == 5)"
-"var v0[3] := [3]; var v1[3] := [3]; v0 /= v1; (v0[0] == v0[1]) and (v0[0] == v0[2]) and (v0[0] == 1)"
-"var v[2] := {1,2}; swap(v[0],v[1]); (v[0] == 2) and (v[1] == 1)"
-"var v[2] := {1,2}; swap(v[2 * zero],v[(2 * one) / (1 + 1)]); (v[2 * zero] == 2) and (v[(2 * one) / (1 + 1)] == 1)"
-"var v[2] := {1,2}; swap(v[zero],v[one]); (v[zero] == 2) and (v[one] == 1)"
-"var v[2] := {1,2}; v[0] <=> v[1]  ; (v[0] == 2) and (v[1] == 1)"
-"var v[2] := {1,2}; ~(v[2 * zero] <=> v[(2 * one) / (1 + 1)]  , (v[2 * zero] == 2) and (v[(2 * one) / (1 + 1)] == 1))"
-"var v[2] := {1,2}; v[2 * zero] <=> v[(2*one)/(1+1)]  ; (v[2 * zero] == 2) and (v[(2 * one) / (1 + 1)] == 1)"
-"var v[2] := {1,2}; v[zero] <=> v[one]  ; (v[zero] == 2) and (v[one] == 1)"
-"var v[3] := {1,2, 3}; v -= 1; (v[0] == 0) and (v[1] == 1) and (v[2] == 2)"
-"var v[3] := {1,2, 3}; v += 1; (v[0] == 2) and (v[1] == 3) and (v[2] == 4)"
-"var v[3] := {1,2, 3}; v *= 2; (v[0] == 2) and (v[1] == 4) and (v[2] == 6)"
-"var v[3] := [1]; v -= 1; (v[0] == v[1]) and (v[0] == v[2]) and (v[0] == 0)"
-"var v[3] := [1]; v += 1; (v[0] == v[1]) and (v[0] == v[2]) and (v[0] == 2)"
-"var v[3] := [1]; v *= 2; (v[0] == v[1]) and (v[0] == v[2]) and (v[0] == 2)"
-"var v[3] := {3,9,15}; v /= 3; (v[0] == 1) and (v[1] == 3) and (v[2] == 5)"
-"var v[3] := [3]; v /= 3; (v[0] == v[1]) and (v[0] == v[2]) and (v[0] == 1)"
-"var x; 1"
-"var x[10] := [-1]; var y[10] := [-1]; for (var i := 0; i < 10; i += 1) { x[i] := i; y[i] := 2 * x[i]; }; (sum(x) == 45) and (sum(y) == (2 * sum(x)));"
-"var x[10^6]:=[2];var y[10^6]:=[3]; var s:=0;equal(for(var i:=0; i<10;i+=1){s+= sum(5 *(2x-y/3)) + i;},150000045.0)"
-"var x[10^6] := null; var y[10^7] := null; 0 * (min(x) + min(y)) + x[] + y[] == 10^7 + 10^6"
-"(~{~{ var x[1] := [1] }} + ~{ var x[1] := [1] } + ~{ var x[1] := [2] } + ~{{ var x[1] := [2] }}) == 6"
-"(~{~{ var x[1] := [1] }} + ~{ var x[1] := [1] } + ~{ var x[1] := [2] } + ~{{ var x    := [2] }}) == 6"
-"(~{~{ var x[1] := [1] }} + ~{ var x[1] := [1] } + ~{ var x    := [2] } + ~{{ var x[1] := [2] }}) == 6"
-"(~{ var x[1] := [1] } + ~{ var x[1] := [2] } + ~{~{ var x[1] := [1] } + ~{ var x[1] := [2] }}) == 6"
-"(~{ var x[1] := [1] } + ~{ var x[1] := [2] } + ~{~{ var x[1] := [1] } + ~{ var x    := [2] }}) == 6"
-"(~{~{~{var x[1] := [1]}}} + ~{~{var x[1] := [2]}} + ~{var x[1] := [3]}) == 6"
-"(~{ var x[1] := [1] } + ~{ var x[1] := [2] } + ~{~{ var x    := [1] } + ~{ var x[1] := [2] }}) == 6"
-"(~{~{ var x[1] := [1] }} + ~{ var x    := [1] } + ~{ var x[1] := [2] } + ~{{ var x[1] := [2] }}) == 6"
-"(~{ var x[1] := [1] } + ~{ var x    := [2] } + ~{~{ var x[1] := [1] } + ~{ var x[1] := [2] }}) == 6"
-"var x:=1;  2-(3+abs(x)) == -2"
-"var x:=1;  2/(3*abs(x)) == (2/3)"
-"var x:=1;  2+(3-abs(x)) == 4"
-"var x:=1;  2+(3+abs(x)) == 6"
-"~{var x := '123'; x[]} + ~{~{var x := '1234'; x[]}} == 7"
-"~{var x := '123'; x[]} + ~{var x := '1234'; x[]}    == 7"
-"~{var x := '123'; x[]} + ~{~{var x := 4}}           == 7"
-"~{var x := '123'; x[]} + ~{var x := 4}              == 7"
-"var x:=1;  2+(abs(x)-3) == 0"
-"var x:=1;  2-(abs(x)+3) == -2"
-"var x:=1;  2*(abs(x)/3) == (2/3)"
-"var x:=1;  2+(abs(x)+3) == 6"
-"var x:=1;  (3+abs(x))-2 ==  2"
-"var x:=1;  (3*abs(x))/2 == (3/2)"
-"var x:=1;  (3-abs(x))+2 == 4"
-"var x:=1;  (3+abs(x))+2 == 6"
-"var x:=1;  (abs(x)-3)+2 == 0"
-"var x:=1;  (abs(x)/3)/2 == (1/6)"
-"var x:=1;  (abs(x)+3)-2 ==  2"
-"var x:=1;  (abs(x)/3)*2 == (2/3)"
-"var x:=1;  (abs(x)*3)/2 == (3/2)"
-"var x:=1;  (abs(x)+3)+2 == 6"
-"(~{~{ var x    := [1] }} + ~{ var x[1] := [1] } + ~{ var x[1] := [2] } + ~{{ var x[1] := [2] }}) == 6"
-"(~{ var x    := [1] } + ~{ var x[1] := [2] } + ~{~{ var x[1] := [1] } + ~{ var x[1] := [2] }}) == 6"
-"~{ var x := 1 } + ~{ var x := 2 } == 3"
-"(~{ var x := 1 } + ~{ var x := 2 } + ~{~{ var x := 1 } + ~{ var x := 2 }}) == 6"
-"(~{ var x := 1 } + ~{ var x := 2 }) == (~{ var x := 2 } + ~{ var x := 1 })"
-"(~{ var x := 1 } + ~{ var x[6] := {6,5,4,3,2,1} }) == 7"
-"var x := 1; var y := 2; 1"
-"var x := 1; var y := 2; swap(x,y); (x == 2) and (y == 1)"
-"var x := 1; var y := 2; ~(swap(x,y),(x == 2) and (y == 1))"
-"var x := 1; var y := 2; var v[2] := {3,4}; swap(x,v[0]); swap(v[1],y); (x == 3) and (y == 4)"
-"var x := 1; var y := 2; var v[2] := {3,4}; swap(x,v[2 * zero]); swap(v[(2 * one) / (1 + 1)],y); (x == 3) and (y == 4)"
-"var x := 1; var y := 2; var v[2] := {3,4}; swap(x,v[zero]); swap(v[one],y); (x == 3) and (y == 4)"
-"var x := 1; var y := 2; var v[2] := {3,4}; x <=> v[0]; v[1] <=> y; (x == 3) and (y == 4)"
-"var x := 1; var y := 2; var v[2] := {3,4}; x <=> v[zero / 3]; v[(2 * one)/(1 + 1)] <=> y; (x == 3) and (y == 4)"
-"var x := 1; var y := 2; var v[2] := {3,4}; x <=> v[zero]; v[one] <=> y; (x == 3) and (y == 4)"
-"var x := 1; var y := 2; x"
-"var x := 1; var y := 2; x <=> y     ; (x    == 2) and (y    == 1)"
-"var x := 1; x"
-"var x := 2; (~{ for (var i := 0; i < 10; i += 1) { for (var j := 0; j <= i; j += 1) { var y := 3; if ((i + j + y + x) < 6) { y += x; continue; } else break[i + j]; } } } + ~{ for (var i := 0; i < 10; i += 1) { for (var j := 0; j <= i; j += 1) { var y := 3; if ((i + j + y + x) < 6) { y += x; continue; } else break[i + j]; } } }) == 18"
-"var x := 2; var v0[3] := {1,2,3}; ( ~{ for (var i := 0; i < 10; i += 1) { for (var j := 0; j <= i; j += 1) { var y := 3; var v2[3] := {1,2,3}; if ( (i + j + y + x + abs(v0[i % v0[]] - v2[j % v2[]])) < 6) { var v3[3] := {1,2,3}; y += x / v3[j % v3[]]; continue; } else break[i + j]; } } } + ~{ for (var i := 0; i < 10; i += 1) { for (var j := 0; j <= i; j += 1)  { var y := 3; var v2[3] := {1,2,3}; if ((i + j + y + x + abs(v0[i % v0[]] - v2[j % v2[]])) < 6) { var v3[3] := {1,2,3}; y += x / v3[j % v3[]]; continue; } else break[i + j]; } } } ) == 18"
-"var x:= 2; var y := 3; (-abs(x + 0)+abs(y - 0))  ==  1"
-"var x:= 2; var y := 3; (-abs(x + 0)--abs(y - 0)) ==  1"
-"var x:= 2; var y := 3; (-abs(x + 0)/-abs(y - 0)) ==  (2/3)"
-"var x:= 2; var y := 3; (abs(x + 0)--abs(y - 0))  ==  5"
-"var x:= 2; var y := 3; (-abs(x + 0)-abs(y - 0))  == -5"
-"var x:= 2; var y := 3; (-abs(x + 0)+-abs(y - 0)) == -5"
-"var x:= 2; var y := 3; (-abs(x + 0)*-abs(y - 0)) ==  6"
-"var x:= 2; var y := 3; (-abs(x)+abs(y))  ==  1"
-"var x:= 2; var y := 3; (-abs(x)--abs(y)) ==  1"
-"var x:= 2; var y := 3; (-abs(x)/-abs(y)) ==  (2/3)"
-"var x:= 2; var y := 3; (abs(x)--abs(y))  ==  5"
-"var x:= 2; var y := 3; (-abs(x)-abs(y))  == -5"
-"var x:= 2; var y := 3; (-abs(x)+-abs(y)) == -5"
-"var x:= 2; var y := 3; (-abs(x)*-abs(y)) ==  6"
-"var x[3] := {0.1,0.2,0.3}; sum(trunc(x)) == 0"
-"var x[3] := [0]; var y[1] := {1};       x <= y"
-"var x[3] := [0]; var y[1] := {1};       x <  Y"
-"var x[3] := [0]; var y[1] := {1};       x < (y += 1)"
-"var x[3] := [0]; var y[1] := {5};       (x += 1) < y"
-"var x[3] := [0]; var y[1] := {5};       (x += 1) < (y += 1)"
-"var x[3] := [0]; var y[2] := {1,2};     x <= y"
-"var x[3] := [0]; var y[2] := {1,2};     X <  y"
-"var x[3] := [0]; var y[2] := {1,2};     x < (y += 1)"
-"var x[3] := [0]; var y[2] := {5,6};     (x += 1) < y"
-"var x[3] := [0]; var y[2] := {5,6};     (x += 1) < (y += 1)"
-"var x[3] := [0]; var y[3] := {1,2,3};   x <= y"
-"var x[3] := [0]; var y[3] := {1,2,3};   x <  Y"
-"var x[3] := [0]; var y[3] := {1,2,3};   x < (y += 1)"
-"var x[3] := [0]; var y[3] := {5,6,7};   (x += 1) < y"
-"var x[3] := [0]; var y[3] := {5,6,7};   (x += 1) < (y += 1)"
-"var x[3] := [0]; var y[4] := {1,2,3,4}; x <= y"
-"var x[3] := [0]; var y[4] := {1,2,3,4}; X <  y"
-"var x[3] := [0]; var y[4] := {1,2,3,4}; x < (y += 1)"
-"var x[3] := [0]; var y[4] := {5,6,7,8}; (x += 1) < y"
-"var x[3] := [0]; var y[4] := {5,6,7,8}; (x += 1) < (y += 1)"
-"var x[3] := {1,1,1};  var y := 1; x == y"
-"var x[3] := {1,1,1};  var y := 1; y == x"
-"var x[3] := {1,1,1};  var y := 2; x == y - 1"
-"var x[3] := {1,1,1};  var y := 2; y - 1 == x"
-"var x[3] := {-1,-2,-3};    sum(abs(x)  ) == 6"
-"var x[3] := {1,2,3};  var y := 3; equal(true,(x -= 1) < y + 1)"
-"var x[3] := {1,2,3};  var y := 3; x <= y + 1"
-"var x[3] := {1,2,3};  var y := 3; x < y + 1"
-"var x[3] := {1,2,3};  var y := 3; y >= x"
-"var x[3] := {1,2,3};  var y := 5; equal(true,(x -= 1) <= y)"
-"var x[3] := {1,2,3};  var y := 5; equal(true,(x += 1) < y)"
-"var x[3] := {1,2,3};  var y := 5; x <= y"
-"var x[3] := {1,2,3};  var y := 5; x < y"
-"var x[3] := {1,2,3};  var y := 5; y + 1 > x"
-"var x[3] := {1,2,3};  var y := 5; y + 1 > (x += 1)"
-"var x[3] := {1,2,3};  var y := 5; y > x"
-"var x[3] := {1,2,3};  var y := 5; y > (x += 1)"
-"var x[3] := {1,2,3}; (x[0] == 1) and (x[1] == 2) and (x[2] == 3)"
-"var x[3] := {1,2};   (x[0] == 1) and (x[1] == 2) and (x[2] == 0)"
-"(~{ var x[3] := [1] } + ~{ var x[6] := {6,5,4,3,2,1}}) == 7"
-"var x[3] := [1]; var y[1] := {1};       var z[3] := [1]; z := 2(x * y)/3; z == 2(x * y)/3"
-"var x[3] := [1]; var y[1] := {1};       var z[3] := [1]; z := 2(x * y); z == (x * y)2"
-"var x[3] := [1]; var y[1] := {1};       var z[3] := [1]; z := (x * y); z == (x * y)"
-"var x[3] := [1]; var y[1] := [1];       x == y"
-"var x[3] := [1]; var y[1] := [2];       x != y"
-"var x[3] := [1]; var y[2] := {1,2};     var z[3] := [1]; z := 2(x / y)/3; z == 2(x / y)/3"
-"var x[3] := [1]; var y[2] := {1,2};     var z[3] := [1]; z := 2(x / y); z == (x / y)2"
-"var x[3] := [1]; var y[2] := {1,2};     var z[3] := [1]; z := (x / y); z == (x / y)"
-"var x[3] := [1]; var y[2] := [1];       x == y"
-"var x[3] := [1]; var y[2] := [2];       x != y"
-"var x[3] := [1]; var y[3] := {1,2,3};   var z[3] := [1]; z := 2(x - y)/3; z == 2(x - y)/3"
-"var x[3] := [1]; var y[3] := {1,2,3};   var z[3] := [1]; z := 2(x - y); z == (x - y)2"
-"var x[3] := [1]; var y[3] := {1,2,3};   var z[3] := [1]; z := (x - y); z == (x - y)"
-"var x[3] := [1]; var y[3] := [1];       x == y"
-"var x[3] := [1]; var y[3] := [2];       x != y"
-"var x[3] := [1]; var y[4] := {1,2,3,4}; var z[3] := [1]; z := 2(x + y)/3; z == 2(x + y)/3"
-"var x[3] := [1]; var y[4] := {1,2,3,4}; var z[3] := [1]; z := 2(x + y); z == (x + y)2"
-"var x[3] := [1]; var y[4] := {1,2,3,4}; var z[3] := [1]; z := (x + y); z == (x + y)"
-"var x[3] := [1]; var y[4] := [1];       x == y"
-"var x[3] := [1]; var y[4] := [2];       x != y"
-"var x[3] := [1];     (x[0] == 1) and (x[1] == 1) and (x[2] == 1)"
-"var x[3] := {2,2,2};  var y := 0; y + 1 == (x -= 1)"
-"var x[3] := {2,2,2};  var y := 1; (x -= 1) == y"
-"var x[3] := {2,2,2};  var y := 1; y == (x -= 1)"
-"var x[3] := [5]; var y[1] := {1};       x >= y"
-"var x[3] := [5]; var y[1] := {1};       x >  y"
-"var x[3] := [5]; var y[2] := {1,2};     x >= y"
-"var x[3] := [5]; var y[2] := {1,2};     x >  y"
-"var x[3] := [5]; var y[3] := {1,2,3};   x >= y"
-"var x[3] := [5]; var y[3] := {1,2,3};   x >  y"
-"var x[3] := [5]; var y[4] := {1,2,3,4}; x >= y"
-"var x[3] := [5]; var y[4] := {1,2,3,4}; x >  y"
-"var x[3] := [8]; var y[1] := {1};       (x += 1) <=> (y += 1); (x[0] == 2) and (x[1] == 9) and (x[2] == 9)"
-"var x[3] := [8]; var y[1] := {1};       (x += 1) <=> y; (x[0] == 1) and (x[1] == 9) and (x[2] == 9)"
-"var x[3] := [8]; var y[2] := {1,2};     (x += 1) <=> (y += 1); (x[0] == 2) and (x[1] == 3) and (x[2] == 9)"
-"var x[3] := [8]; var y[2] := {1,2};     (x += 1) <=> y; (x[0] == 1) and (x[1] == 2) and (x[2] == 9)"
-"var x[3] := [8]; var y[3] := {1,2,3};   (x += 1) <=> (y += 1); (x[0] == 2) and (x[1] == 3) and (x[2] == 4)"
-"var x[3] := [8]; var y[3] := {1,2,3};   (x += 1) <=> y; (x[0] == 1) and (x[1] == 2) and (x[2] == 3)"
-"var x[3] := [8]; var y[4] := {1,2,3,4}; (x += 1) <=> (y += 1); (x[0] == 2) and (x[1] == 3) and (x[2] == 4)"
-"var x[3] := [8]; var y[4] := {1,2,3,4}; (x += 1) <=> y; (x[0] == 1) and (x[1] == 2) and (x[2] == 3)"
-"var x[3] := [9]; var y[1] := {1};       x <=> (y += 1); (x[0] == 2) and (x[1] == 9) and (x[2] == 9)"
-"var x[3] := [9]; var y[1] := {1};       x <=> y; (x[0] == 1) and (x[1] == 9) and (x[2] == 9)"
-"var x[3] := [9]; var y[2] := {1,2};     x <=> (y += 1); (x[0] == 2) and (x[1] == 3) and (x[2] == 9)"
-"var x[3] := [9]; var y[2] := {1,2};     x <=> y; (x[0] == 1) and (x[1] == 2) and (x[2] == 9)"
-"var x[3] := [9]; var y[3] := {1,2,3};   x <=> (y += 1); (x[0] == 2) and (x[1] == 3) and (x[2] == 4)"
-"var x[3] := [9]; var y[3] := {1,2,3};   x <=> y; (x[0] == 1) and (x[1] == 2) and (x[2] == 3)"
-"var x[3] := [9]; var y[4] := {1,2,3,4}; x <=> (y += 1); (x[0] == 2) and (x[1] == 3) and (x[2] == 4)"
-"var x[3] := [9]; var y[4] := {1,2,3,4}; x <=> y; (x[0] == 1) and (x[1] == 2) and (x[2] == 3)"
-"~{~{var x := 3}} + ~{var x := '1234'; x[]}          == 7"
-"~{var x := 3} + ~{var x := '1234'; x[]}             == 7"
-"var x[3] := {};  var y[1] := {1};       x := (y+=1); (x[0] == y[0]) and (x[1] ==    0) and (x[2] ==    0)"
-"var x[3] := {};  var y[1] := {1};       x := y; (x[0] == y[0]) and (x[1] ==    0) and (x[2] ==    0)"
-"var x[3] := {};  var y[2] := {1,2};     x := (y+=1); (x[0] == y[0]) and (x[1] == y[1]) and (x[2] ==    0)"
-"var x[3] := {};  var y[2] := {1,2};     x := y; (x[0] == y[0]) and (x[1] == y[1]) and (x[2] ==    0)"
-"var x[3] := {};  var y[3] := {1,2,3};   x := (y+=1); (x[0] == y[0]) and (x[1] == y[1]) and (x[2] == y[2])"
-"var x[3] := {};  var y[3] := {1,2,3};   x := y; (x[0] == y[0]) and (x[1] == y[1]) and (x[2] == y[2])"
-"var x[3] := {};  var y[4] := {1,2,3,4}; x := (y+=1); (x[0] == y[0]) and (x[1] == y[1]) and (x[2] == y[2])"
-"var x[3] := {};  var y[4] := {1,2,3,4}; x := y; (x[0] == y[0]) and (x[1] == y[1]) and (x[2] == y[2])"
-"var x := 3; var y := 6; -x * -y == 18"
-"var x:=3; var y:=6; -(-(-x))*-(-(-y))         ==  18"
-"var x:=3; var y:=6; -(-x)*-(-(-y))            == -18"
-"var x:=3; var y:=6; -(-x)*-(-y)               ==  18"
-"var x := 3; var y := 6;  x + -y == -3"
-"var x := 3; var y := 6; -x - -y ==  3"
-"var x := 3; var y := 6;  x - -y ==  9"
-"var x := 3; var y := 6; -x + -y == -9"
-"var x:=3; var y:=6; -(-(-(x+y)))*-(-(-(y+x))) ==  81"
-"var x:=3; var y:=6; -(-(-(x+y)))*-(-(y+x))    == -81"
-"var x:=3; var y:=6; -(-(x+y))*-(-(y+x))       ==  81"
-"var x[3] := {};      (x[0] == 0) and (x[1] == 0) and (x[2] == 0)"
-"var x[6] := {1,2,3,4,5,6}; equal(sqrt(sum([x - avg(x)]^2) / x[]),1.7078251277)"
-"(~{ var x[6] := {6,5,4,3,2,1} } + ~{ var x := 1 }) == 7"
-"var x := 6; var y := 3; -x / -y ==  2"
-"var x:=6; var y:=4;  3 / -x == -0.5"
-"var x:=6; var y:=4; -3 / -x ==  0.5"
-"var x:=6; var y:=4;  3 * -x ==  -18"
-"var x:=6; var y:=4; -3 * -x ==   18"
-"var x:=6; var y:=4;  3 + -x ==   -3"
-"var x:=6; var y:=4; -3 - -x ==    3"
-"var x:=6; var y:=4;  3 - -x ==    9"
-"var x:=6; var y:=4; -3 + -x ==   -9"
-"var x:=6; var y:=4; x * -3  == -18"
-"var x:=6; var y:=4; x / -3  ==  -2"
-"var x:=6; var y:=4; -x - -3 ==  -3"
-"var x:=6; var y:=4; x + -3  ==   3"
-"var x:=6; var y:=4; -x + -3 ==  -9"
-"var x:=6; var y:=4; x - -3  ==   9"
-"var x := 'abc'; var y := '123'; x != y"
-"var x := 'abc'; var y := '123' + x; y == '123abc'"
-"var x := 'abc'; var y := x + '123'; y == 'abc123'"
-"var x := 'abc'; x == 'abc'"
-"~{var x := 'xxx'; var y := 'yyy';~{((x + '2') != x ? x : y) == x  }}"
-"~{var x := 'xxx'; var y := 'yyy';~{(x == (x + '1') ? x : y) == y  }}"
-"~{var x := 'xxx'; var y := 'yyy';~{'xxx1' == (x < y ? x + '1' : y)}}"
-"~{var x := 'xxx'; var y := 'yyy';~{x == (x != (x + '2') ? x : y)  }}"
-"~{var x := 'xxx'; var y := 'yyy';~{(x < y ? x + '1' : y) == 'xxx1'}}"
-"~{var x := 'xxx'; var y := 'yyy';~{(x > y ? x : y + '2') == 'yyy2'}}"
-"~{var x := 'xxx'; var y := 'yyy';~{(x < y ? x : y) == x           }}"
-"~{var x := 'xxx'; var y := 'yyy';~{(x > y ? x : y) == y           }}"
-"~{var x := 'xxx'; var y := 'yyy';~{y == (x == (x + '1') ? x : y)  }}"
-"~{var x := 'xxx'; var y := 'yyy';~{'yyy2' == (x > y ? x : y + '2')}}"
-"'abcd'      like 'abcd*'"
-"'abcd'      like 'abc*'"
-"'abcd'      like 'ab*'"
-"'abcd'      like 'a*'"
-"'abcd'      like 'abcd?'"
-"'abcd'      like 'abc?'"
-"'abcd'      like 'abc??'"
-"'abcd'      like 'ab???'"
-"'abcd'      like 'a????'"
-"'abcd'      like '?????'"
-"'a'         like 'a*'"
-"'ab'        like 'a*'"
-"'abcd'      like 'abcd*'"
-"''          like ''"
-"'abcd'      like 'abcd'"
-"'abcd'      like 'abc*'"
-"'abcd'      like '*bcd'"
-"'abcd'      like 'abc?'"
-"'abcd'      like '?bcd'"
-"'abcd'      like 'ab?d'"
-"'abcd'      like 'ab*d'"
-"'abcd'      like 'a?cd'"
-"'abcd'      like 'a*cd'"
-"'abcd'      like 'a??d'"
-"'abcd'      like 'a*?d'"
-"'abcd'      like '*bc*'"
-"'abcd'      like '?bc?'"
-"'abcd'      like '????'"
-"'abcd'      like 'a???'"
-"'abcd'      like 'ab??'"
-"'abcd'      like 'abc?'"
-"'abcd'      like '???d'"
-"'abcd'      like '??cd'"
-"'abcd'      like '?bcd'"
-"'abcd'      like '?b?d'"
-"'abcd'      like 'a?c?'"
-"'abcd'      like 'a??d'"
-"'abcd'      like '?bc?'"
-"'abcd'      like 'ab**'"
-"'abcd'      like 'ab*?'"
-"'abcd'      like 'a***'"
-"'abcd'      like '**cd'"
-"'abcd'      like '*?cd'"
-"'abcd'      like '***d'"
-"'abcd'      like '?*?d'"
-"'abcd'      like '?*?d'"
-"'abcd'      like '*bc*'"
-"'abcd'      like '*bc?'"
-"'abcd'      like '*b??'"
-"'abcd'      like '?bc*'"
-"'abcd'      like '??c*'"
-"'abcd'      like '*b?*'"
-"'abcd'      like '*b*d'"
-"'abcd'      like 'a*c*'"
-"'abcd'      like '?*cd'"
-"'abcd'      like 'ab?*'"
-"'abcd'      like 'ab*?'"
-"'abcd'      like 'a?*d'"
-"'ab'        like 'a*'"
-"'ab'        like 'a?'"
-"'a'         like 'a*'"
-"'a'         like 'a?'"
-"'xalabcd'   like '*abcd*'"
-"'xablabcd'  like '*abcd*'"
-"'xabclabcd' like '*abcd*'"
-"'aaaaa'     like '*aa?'"
-"'abcd'      like 'xyzw'"
-"'abcd'      like 'xyz'"
-"'abc'       like 'xyzw'"
-"'abcd'      like 'ab?'"
-"'abcd'      like 'a?'"
-"'abcd'      ilike 'abcd*'"
-"'abcd'      ilike 'abc*'"
-"'abcd'      ilike 'ab*'"
-"'abcd'      ilike 'a*'"
-"'abcd'      ilike 'abcd?'"
-"'abcd'      ilike 'abc?'"
-"'abcd'      ilike 'abc??'"
-"'abcd'      ilike 'ab???'"
-"'abcd'      ilike 'a????'"
-"'abcd'      ilike '?????'"
-"'a'         ilike 'a*'"
-"'ab'        ilike 'a*'"
-"'abcd'      ilike 'abcd*'"
-"''          ilike ''"
-"'abcd'      ilike 'abcd'"
-"'abcd'      ilike 'abc*'"
-"'abcd'      ilike '*bcd'"
-"'abcd'      ilike 'abc?'"
-"'abcd'      ilike '?bcd'"
-"'abcd'      ilike 'ab?d'"
-"'abcd'      ilike 'ab*d'"
-"'abcd'      ilike 'a?cd'"
-"'abcd'      ilike 'a*cd'"
-"'abcd'      ilike 'a??d'"
-"'abcd'      ilike 'a*?d'"
-"'abcd'      ilike '*bc*'"
-"'abcd'      ilike '?bc?'"
-"'abcd'      ilike '????'"
-"'abcd'      ilike 'a???'"
-"'abcd'      ilike 'ab??'"
-"'abcd'      ilike 'abc?'"
-"'abcd'      ilike '???d'"
-"'abcd'      ilike '??cd'"
-"'abcd'      ilike '?bcd'"
-"'abcd'      ilike '?b?d'"
-"'abcd'      ilike 'a?c?'"
-"'abcd'      ilike 'a??d'"
-"'abcd'      ilike '?bc?'"
-"'abcd'      ilike 'ab**'"
-"'abcd'      ilike 'ab*?'"
-"'abcd'      ilike 'a***'"
-"'abcd'      ilike '**cd'"
-"'abcd'      ilike '*?cd'"
-"'abcd'      ilike '***d'"
-"'abcd'      ilike '?*?d'"
-"'abcd'      ilike '?*?d'"
-"'abcd'      ilike '*bc*'"
-"'abcd'      ilike '*bc?'"
-"'abcd'      ilike '*b??'"
-"'abcd'      ilike '?bc*'"
-"'abcd'      ilike '??c*'"
-"'abcd'      ilike '*b?*'"
-"'abcd'      ilike '*b*d'"
-"'abcd'      ilike 'a*c*'"
-"'abcd'      ilike '?*cd'"
-"'abcd'      ilike 'ab?*'"
-"'abcd'      ilike 'ab*?'"
-"'abcd'      ilike 'a?*d'"
-"'ab'        ilike 'a*'"
-"'ab'        ilike 'a?'"
-"'a'         ilike 'a*'"
-"'a'         ilike 'a?'"
-"'xalabcd'   ilike '*abcd*'"
-"'xablabcd'  ilike '*abcd*'"
-"'xabclabcd' ilike '*abcd*'"
-"'aaaaa'     ilike '*aa?'"
-"'abcd'      ilike 'xyzw'"
-"'abcd'      ilike 'xyz'"
-"'abc'       ilike 'xyzw'"
-"'abcd'      ilike 'ab?'"
-"'abcd'      ilike 'a?'"
-"~{var s := ~{var n := 1; var m := 2; if (n < m) 'n < m';  else 'n >= m'; }; (s == 'n < m')}"
-"~{var s := ~{var n := 1; var m := 2; if (n > m) 'n <= m'; else 'n > m'; }; (s == 'n > m')}"
-"~{var s := ~{var n := 1; var m := 2; if (n < m) 'n < m';  else 'n >' + '= m'; }; (s == 'n < m')}"
-"~{var s := ~{var n := 1; var m := 2; if (n < m) 'n ' + '< m'; else 'n >= m'; }; (s == 'n < m')}"
-"~{var s := ~{var n := 1; var m := 2; if (n > m) 'n <= m'; else 'n ' + '> m'; }; (s == 'n > m')}"
-"~{var s := ~{var n := 1; var m := 2; if (n > m) 'n <' + '= m'; else 'n > m'; }; (s == 'n > m')}"
-"~{var s := ~{var n := 1; var m := 2; var r0 := 'n < m'; var r1 := 'n >= m'; if (n < m) r0; else r1; }; (s == 'n < m')}"
-"~{var s := ~{var n := 1; var m := 2; var r0 := 'n < m'; var r1 := 'n >= m'; if (n < m) r0 + ''; else r1 + ''; }; (s == 'n < m')}"
-"~{var s := ~{var n := 1; var m := 2; var r0 := 'n < m'; var r1 := 'n >= m'; if (n < m) '' + r0; else '' + r1; }; (s == 'n < m')}"
\ No newline at end of file
diff --git a/projects/exprtk/project.yaml b/projects/exprtk/project.yaml
deleted file mode 100644
index ac0747e..0000000
--- a/projects/exprtk/project.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-homepage: "https://www.partow.net/programming/exprtk/index.html"
-language: c++
-primary_contact: "exprtk.dev@gmail.com"
-auto_ccs:
-    - "exprtk.dev@gmail.com"
-fuzzing_engines:
-    - libfuzzer
-    - afl
-    - honggfuzz
-sanitizers:
-    - address
-    - undefined
-    - memory
-main_repo: 'https://github.com/ArashPartow/exprtk.git'
diff --git a/projects/fast-dds/Dockerfile b/projects/fast-dds/Dockerfile
deleted file mode 100644
index df5782e..0000000
--- a/projects/fast-dds/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt install -y autoconf automake
-RUN git clone --depth 1 https://github.com/leethomason/tinyxml2
-RUN git clone --depth 1 https://github.com/chriskohlhoff/asio/
-RUN git clone --depth 1 https://github.com/eProsima/Fast-CDR.git
-RUN git clone --depth 1 https://github.com/eProsima/foonathan_memory_vendor.git
-RUN git clone --depth 1 https://github.com/eProsima/Fast-DDS.git
-COPY patch.diff $SRC
-COPY build.sh $SRC
-WORKDIR $SRC/Fast-DDS
diff --git a/projects/fast-dds/build.sh b/projects/fast-dds/build.sh
deleted file mode 100755
index 6831dff..0000000
--- a/projects/fast-dds/build.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-(
-cd ../tinyxml2
-make -j$(nproc) all
-cp libtinyxml2.a /usr/local/lib/
-cp *.h /usr/local/include/
-)
-
-(
-cd ../asio/asio
-sh autogen.sh
-./configure
-make -j$(nproc) install
-)
-
-(
-cd ..
-mkdir Fast-CDR/build && cd Fast-CDR/build
-cmake .. -DBUILD_SHARED_LIBS=OFF
-cmake --build . --target install
-)
-
-(
-cd ..
-cd foonathan_memory_vendor
-mkdir build && cd build
-cmake .. -DBUILD_SHARED_LIBS=OFF
-cmake --build . --target install
-)
-
-# build project
-git apply ../patch.diff
-mkdir build && cd build
-cmake .. -DBUILD_SHARED_LIBS=OFF
-make -j $(nproc)
-cp src/cpp/fuzz* $OUT/
diff --git a/projects/fast-dds/patch.diff b/projects/fast-dds/patch.diff
deleted file mode 100644
index e4f0ba2..0000000
--- a/projects/fast-dds/patch.diff
+++ /dev/null
@@ -1,74 +0,0 @@
-diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
-index b7fb777..615e955 100644
---- a/src/cpp/CMakeLists.txt
-+++ b/src/cpp/CMakeLists.txt
-@@ -484,6 +484,11 @@ elseif(NOT EPROSIMA_INSTALLER)
-     endif()
- endif()
- 
-+if(DEFINED ENV{LIB_FUZZING_ENGINE})
-+  add_executable(fuzz_processCDRMsg rtps/messages/fuzz_processCDRMsg.cpp)
-+  target_link_libraries(fuzz_processCDRMsg ${PROJECT_NAME} $ENV{LIB_FUZZING_ENGINE})
-+endif()
-+
- ###############################################################################
- # Packaging
- ###############################################################################
-diff --git a/src/cpp/rtps/messages/MessageReceiver.cpp b/src/cpp/rtps/messages/MessageReceiver.cpp
-index 962ca9b..0e82082 100644
---- a/src/cpp/rtps/messages/MessageReceiver.cpp
-+++ b/src/cpp/rtps/messages/MessageReceiver.cpp
-@@ -324,7 +324,11 @@ void MessageReceiver::processCDRMsg(
- 
-     reset();
- 
-+#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
-+    GuidPrefix_t participantGuidPrefix;
-+#else
-     GuidPrefix_t participantGuidPrefix = participant_->getGuid().guidPrefix;
-+#endif
-     dest_guid_prefix_ = participantGuidPrefix;
- 
-     msg->pos = 0; //Start reading at 0
-@@ -513,7 +517,9 @@ void MessageReceiver::processCDRMsg(
-         submessage->pos = next_msg_pos;
-     }
- 
-+#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
-     participant_->assert_remote_participant_liveliness(source_guid_prefix_);
-+#endif
- }
- 
- bool MessageReceiver::checkRTPSHeader(
-diff --git a/src/cpp/rtps/messages/fuzz_processCDRMsg.cpp b/src/cpp/rtps/messages/fuzz_processCDRMsg.cpp
-new file mode 100644
-index 0000000..6a71817
---- /dev/null
-+++ b/src/cpp/rtps/messages/fuzz_processCDRMsg.cpp
-@@ -0,0 +1,26 @@
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <stdint.h>
-+#include <stdarg.h>
-+#include <string.h>
-+
-+#include <fastrtps/rtps/messages/MessageReceiver.h>
-+#include <fastdds/rtps/attributes/RTPSParticipantAttributes.h>
-+
-+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-+    const eprosima::fastrtps::rtps::Locator_t remoteLocator;
-+    eprosima::fastrtps::rtps::MessageReceiver* rcv = new eprosima::fastrtps::rtps::MessageReceiver(NULL, 4096);
-+
-+    eprosima::fastrtps::rtps::CDRMessage_t msg(0);
-+    msg.wraps = true;
-+    msg.buffer = const_cast<eprosima::fastrtps::rtps::octet*>(data);
-+    msg.length = size;
-+    msg.max_size = size;
-+    msg.reserved_size = size;
-+
-+    // TODO: Should we unlock in case UnregisterReceiver is called from callback ?
-+    rcv->processCDRMsg(remoteLocator, &msg);
-+    delete rcv;
-+    return 0;
-+}
-+
diff --git a/projects/fast-dds/project.yaml b/projects/fast-dds/project.yaml
deleted file mode 100644
index 970e0b1..0000000
--- a/projects/fast-dds/project.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-homepage: "https://www.eprosima.com/"
-language: c++
-primary_contact: "miguelcompany@eprosima.com"
-auto_ccs:
-- "p.antoine@catenacyber.fr"
-sanitizers:
-- address
-- undefined
-main_repo: 'https://github.com/eProsima/Fast-DDS.git'
diff --git a/projects/fasthttp/Dockerfile b/projects/fasthttp/Dockerfile
deleted file mode 100644
index 3684706..0000000
--- a/projects/fasthttp/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/valyala/fasthttp
-
-COPY build.sh $SRC/
-WORKDIR $SRC/fasthttp
diff --git a/projects/fasthttp/build.sh b/projects/fasthttp/build.sh
deleted file mode 100755
index 59aec49..0000000
--- a/projects/fasthttp/build.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-
-
-ls fuzzit/ | while read target
-do
-    compile_go_fuzzer github.com/valyala/fasthttp/fuzzit/$target Fuzz fuzz_$target gofuzz
-done
diff --git a/projects/fasthttp/project.yaml b/projects/fasthttp/project.yaml
deleted file mode 100644
index 19b9113..0000000
--- a/projects/fasthttp/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/valyala/fasthttp"
-primary_contact: "erik@dubbelboer.com"
-auto_ccs :
-  - "adam@adalogics.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/valyala/fasthttp'
diff --git a/projects/fastjson/Dockerfile b/projects/fastjson/Dockerfile
deleted file mode 100644
index 9c19614..0000000
--- a/projects/fastjson/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/valyala/fastjson
-
-COPY build.sh $SRC/
-WORKDIR $SRC/fastjson
diff --git a/projects/fastjson/build.sh b/projects/fastjson/build.sh
deleted file mode 100755
index 673688a..0000000
--- a/projects/fastjson/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-compile_go_fuzzer github.com/valyala/fastjson Fuzz fuzz
diff --git a/projects/fastjson/project.yaml b/projects/fastjson/project.yaml
deleted file mode 100644
index 7c2895a..0000000
--- a/projects/fastjson/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/valyala/fastjson"
-primary_contact: "valyala@gmail.com"
-auto_ccs :
-- "adam@adalogics.com"
-language: go
-fuzzing_engines:
-- libfuzzer
-sanitizers:
-- address
-main_repo: 'https://github.com/valyala/fastjson'
diff --git a/projects/fastjson2/Dockerfile b/projects/fastjson2/Dockerfile
deleted file mode 100644
index e8c9f4e..0000000
--- a/projects/fastjson2/Dockerfile
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y maven
-
-RUN git clone --depth 1 https://github.com/google/fuzzing && \
-    cat fuzzing/dictionaries/json.dict > $SRC/JsonFuzzer.dict
-
-RUN git clone --depth 1 https://github.com/dvyukov/go-fuzz-corpus && \
-    zip -q $SRC/JsonFuzzer_seed_corpus.zip go-fuzz-corpus/json/corpus/*
-
-RUN git clone --depth 1 https://github.com/alibaba/fastjson
-
-COPY build.sh $SRC/
-COPY JsonFuzzer.java $SRC/
-WORKDIR $SRC/fastjson
diff --git a/projects/fastjson2/JsonFuzzer.java b/projects/fastjson2/JsonFuzzer.java
deleted file mode 100644
index 9ac5cab..0000000
--- a/projects/fastjson2/JsonFuzzer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONException;
-import com.code_intelligence.jazzer.api.FuzzedDataProvider;
-
-public class JsonFuzzer {
-  public static void fuzzerTestOneInput(FuzzedDataProvider data) {
-    try {
-      JSON.parse(data.consumeRemainingAsString());
-    } catch (JSONException ignored) {
-    }
-  }
-}
diff --git a/projects/fastjson2/build.sh b/projects/fastjson2/build.sh
deleted file mode 100644
index 121c324..0000000
--- a/projects/fastjson2/build.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Copy seed corpus and dictionary.
-mv $SRC/{*.zip,*.dict} $OUT
-
-mvn package -Dmaven.test.skip=true -Djdk.version=15
-CURRENT_VERSION=$(mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate \
- -Dexpression=project.version -q -DforceStdout)
-cp "target/fastjson-$CURRENT_VERSION.jar" $OUT/fastjson.jar
-
-PROJECT_JARS="fastjson.jar"
-
-# The classpath at build-time includes the project jars in $OUT as well as the
-# Jazzer API.
-BUILD_CLASSPATH=$(echo $PROJECT_JARS | xargs printf -- "$OUT/%s:"):$JAZZER_API_PATH
-
-# All .jar and .class files lie in the same directory as the fuzzer at runtime.
-RUNTIME_CLASSPATH=$(echo $PROJECT_JARS | xargs printf -- "\$this_dir/%s:"):\$this_dir
-
-for fuzzer in $(find $SRC -name '*Fuzzer.java'); do
-  fuzzer_basename=$(basename -s .java $fuzzer)
-  javac -cp $BUILD_CLASSPATH $fuzzer
-  cp $SRC/$fuzzer_basename.class $OUT/
-
-  # Create an execution wrapper that executes Jazzer with the correct arguments.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_LIBRARY_PATH=\"$JVM_LD_LIBRARY_PATH\":\$this_dir \
-\$this_dir/jazzer_driver --agent_path=\$this_dir/jazzer_agent_deploy.jar \
---cp=$RUNTIME_CLASSPATH \
---target_class=$fuzzer_basename \
---jvm_args=\"-Xmx2048m\" \
-\$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/fastjson2/project.yaml b/projects/fastjson2/project.yaml
deleted file mode 100644
index 3fcba92..0000000
--- a/projects/fastjson2/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/alibaba/fastjson"
-language: jvm
-primary_contact: "shaojin.wensj@alibaba-inc.com"
-auto_ccs:
-  - "meumertzheim@code-intelligence.com"
-fuzzing_engines:
-  - libfuzzer
-main_repo: "https://github.com/alibaba/fastjson"
-sanitizers:
-  - address
diff --git a/projects/ffmpeg/Dockerfile b/projects/ffmpeg/Dockerfile
index bb0bb58..5226dd7 100644
--- a/projects/ffmpeg/Dockerfile
+++ b/projects/ffmpeg/Dockerfile
@@ -15,13 +15,14 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mmoroz@chromium.org
 ADD bionic.list /etc/apt/sources.list.d/bionic.list
 ADD nasm_apt.pin /etc/apt/preferences
 RUN apt-get update && apt-get install -y make autoconf automake libtool build-essential \
     libass-dev libfreetype6-dev libsdl1.2-dev \
     libvdpau-dev libxcb1-dev libxcb-shm0-dev \
     pkg-config texinfo libbz2-dev zlib1g-dev yasm cmake mercurial wget \
-    xutils-dev libpciaccess-dev nasm rsync
+    xutils-dev libpciaccess-dev nasm
 
 RUN git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
 
@@ -29,12 +30,12 @@
 RUN git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git
 RUN git clone --depth 1 git://anongit.freedesktop.org/xorg/lib/libXext
 RUN git clone --depth 1 git://anongit.freedesktop.org/git/xorg/lib/libXfixes
-RUN git clone --depth 1 https://github.com/intel/libva
+RUN git clone --depth 1 https://github.com/01org/libva
 RUN git clone --depth 1 -b libvdpau-1.2 git://people.freedesktop.org/~aplattner/libvdpau
 RUN git clone --depth 1 https://chromium.googlesource.com/webm/libvpx
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/ogg.git
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/opus.git
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/theora.git
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/vorbis.git
+RUN git clone --depth 1 git://git.xiph.org/ogg.git
+RUN git clone --depth 1 git://git.xiph.org/opus.git
+RUN git clone --depth 1 git://git.xiph.org/theora.git
+RUN git clone --depth 1 git://git.xiph.org/vorbis.git
 
 COPY build.sh group_seed_corpus.py $SRC/
diff --git a/projects/ffmpeg/build.sh b/projects/ffmpeg/build.sh
index 90da59c..50a4354 100755
--- a/projects/ffmpeg/build.sh
+++ b/projects/ffmpeg/build.sh
@@ -139,7 +139,6 @@
     --enable-nonfree \
     --disable-muxers \
     --disable-protocols \
-    --disable-demuxer=rtp,rtsp,sdp \
     --disable-devices \
     --disable-shared
 make clean
@@ -150,8 +149,8 @@
 # TODO: implement a better way to maintain a minimized seed corpora
 # for all targets. As of 2017-05-04 now the combined size of corpora
 # is too big for ClusterFuzz (over 10Gb compressed data).
-export TEST_SAMPLES_PATH=$SRC/ffmpeg/fate-suite/
-make fate-rsync SAMPLES=$TEST_SAMPLES_PATH
+# export TEST_SAMPLES_PATH=$SRC/ffmpeg/fate-suite/
+# make fate-rsync SAMPLES=$TEST_SAMPLES_PATH
 
 # Build the fuzzers.
 cd $SRC/ffmpeg
@@ -186,56 +185,6 @@
 make tools/target_dem_fuzzer
 mv tools/target_dem_fuzzer $OUT/${fuzzer_name}
 
-# We do not need raw reference files for the muxer
-rm `find fate-suite -name '*.s16'`
-rm `find fate-suite -name '*.dec'`
-rm `find fate-suite -name '*.pcm'`
-
-zip -r $OUT/${fuzzer_name}_seed_corpus.zip fate-suite
-
-# Build fuzzer for demuxer fed at IO level
-fuzzer_name=ffmpeg_IO_DEMUXER_fuzzer
-make tools/target_io_dem_fuzzer
-mv tools/target_io_dem_fuzzer $OUT/${fuzzer_name}
-
-#Build fuzzers for individual demuxers
-PKG_CONFIG_PATH="$FFMPEG_DEPS_PATH/lib/pkgconfig" ./configure \
-    --cc=$CC --cxx=$CXX --ld="$CXX $CXXFLAGS -std=c++11" \
-    --extra-cflags="-I$FFMPEG_DEPS_PATH/include" \
-    --extra-ldflags="-L$FFMPEG_DEPS_PATH/lib" \
-    --prefix="$FFMPEG_DEPS_PATH" \
-    --pkg-config-flags="--static" \
-    --enable-ossfuzz \
-    --libfuzzer=$LIB_FUZZING_ENGINE \
-    --optflags=-O1 \
-    --enable-gpl \
-    --disable-muxers \
-    --disable-protocols \
-    --disable-devices \
-    --disable-shared \
-    --disable-encoders \
-    --disable-filters \
-    --disable-muxers  \
-    --disable-parsers  \
-    --disable-decoders  \
-    --disable-hwaccels  \
-    --disable-bsfs  \
-    --disable-vaapi  \
-    --disable-vdpau    \
-    --disable-crystalhd  \
-    --disable-v4l2_m2m  \
-    --disable-cuda_llvm  \
-    --enable-demuxers \
-    --disable-demuxer=rtp,rtsp,sdp \
-
-CONDITIONALS=`grep 'DEMUXER 1$' config.h | sed 's/#define CONFIG_\(.*\)_DEMUXER 1/\1/'`
-for c in $CONDITIONALS ; do
-  fuzzer_name=ffmpeg_dem_${c}_fuzzer
-  symbol=`echo $c | sed "s/.*/\L\0/"`
-  make tools/target_dem_${symbol}_fuzzer
-  mv tools/target_dem_${symbol}_fuzzer $OUT/${fuzzer_name}
-done
-
 # Find relevant corpus in test samples and archive them for every fuzzer.
 #cd $SRC
 #python group_seed_corpus.py $TEST_SAMPLES_PATH $OUT/
diff --git a/projects/ffmpeg/project.yaml b/projects/ffmpeg/project.yaml
index a33dda2..d194285 100644
--- a/projects/ffmpeg/project.yaml
+++ b/projects/ffmpeg/project.yaml
@@ -1,12 +1,10 @@
-homepage: "https://www.ffmpeg.org"
-language: c++
+homepage: "https://www.ffmpeg.org/"
 primary_contact: "ffmpeg-security@ffmpeg.org"
 auto_ccs:
  - "michaelni@gmx.at"
  - "michael@niedermayer.cc"
  - "jrummell@google.com"
  - "tfoucu@google.com"
- - "twsmith@mozilla.com"
+ - "cdiehl@mozilla.com"
  - "kempfjb@gmail.com"
 selective_unpack: true
-main_repo: 'https://git.ffmpeg.org/ffmpeg.git'
diff --git a/projects/file/Dockerfile b/projects/file/Dockerfile
index b6f6408..57c5479 100644
--- a/projects/file/Dockerfile
+++ b/projects/file/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mike.aizatsky@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool shtool
 RUN git clone --depth 1 https://github.com/file/file.git
 WORKDIR file
diff --git a/projects/file/project.yaml b/projects/file/project.yaml
index d051847..5cf7dc0 100644
--- a/projects/file/project.yaml
+++ b/projects/file/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.darwinsys.com/file/"
-language: c++
 primary_contact: "zoulasc@gmail.com"
 sanitizers:
   - address
@@ -8,4 +7,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/file/file.git'
diff --git a/projects/fio/Dockerfile b/projects/fio/Dockerfile
deleted file mode 100644
index 91c8dbf..0000000
--- a/projects/fio/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make
-RUN git clone --depth 1 https://github.com/axboe/fio.git fio
-WORKDIR $SRC/fio
-COPY build.sh $SRC/
diff --git a/projects/fio/build.sh b/projects/fio/build.sh
deleted file mode 100755
index 0495cf4..0000000
--- a/projects/fio/build.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-export LDFLAGS="$CXXFLAGS"
-./configure
-make -j$(nproc)
-cp t/fuzz/fuzz_parseini $OUT/
-
-# builds corpus
-zip -r $OUT/fuzz_parseini_seed_corpus.zip examples
diff --git a/projects/fio/project.yaml b/projects/fio/project.yaml
deleted file mode 100644
index b87c366..0000000
--- a/projects/fio/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "http://git.kernel.dk/fio.git"
-language: c++
-primary_contact: "axboe@kernel.dk"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
-  - "sitsofe@gmail.com"
-sanitizers:
-  - address
-  - undefined
-main_repo: 'https://github.com/axboe/fio.git'
diff --git a/projects/firefox/Dockerfile b/projects/firefox/Dockerfile
index 1d19ca8..abc077c 100644
--- a/projects/firefox/Dockerfile
+++ b/projects/firefox/Dockerfile
@@ -15,22 +15,15 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER pdknsk@gmail.com
+RUN apt-get update && apt-get install -y --no-install-recommends \
+  python \
+  gawk \
+  software-properties-common
 RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test
 RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends \
-  gawk \
-  libstdc++6 \
-  m4 \
-  python \
-  software-properties-common
-
-# This wrapper of cargo seems to interfere with our build system.
-RUN rm -f /usr/local/bin/cargo
-
+  libstdc++6
 RUN git clone --depth 1 https://github.com/mozilla/gecko-dev mozilla-central
 RUN git clone --depth 1 https://github.com/mozillasecurity/fuzzdata
 WORKDIR mozilla-central
-# Install OS dependencies.
-# Will be re-run in build.sh to install missing dependencies.
-ENV SHELL /bin/bash
-RUN ./mach --no-interactive bootstrap --application-choice browser
 COPY build.sh target.c *.options mozconfig.* $SRC/
diff --git a/projects/firefox/build.sh b/projects/firefox/build.sh
index 8788e19..b001a42 100755
--- a/projects/firefox/build.sh
+++ b/projects/firefox/build.sh
@@ -24,7 +24,6 @@
   ContentParentIPC
   CompositorManagerParentIPC
   ContentSecurityPolicyParser
-  FeaturePolicyParser
   # Image
   ImageGIF
   ImageICO
@@ -42,26 +41,13 @@
 export MOZ_OBJDIR=$WORK/obj-fuzz
 export MOZCONFIG=$SRC/mozconfig.$SANITIZER
 
-# Without this, a host tool used during Rust part of the build will fail
-export ASAN_OPTIONS="detect_leaks=0"
-
-# Install remaining dependencies.
+# Install dependencies. Note that bootstrap installs cargo, which must be added
+# to PATH via source. In a successive run (for a different sanitizer), the
+# cargo installation carries over, but bootstrap fails if cargo is not in PATH.
 export SHELL=/bin/bash
-
-# Firefox might not be buildable on the latest Rust Nightly, so we should try
-# to use the same version that we use in our CI.
-RUST_NIGHTLY_VERSION=$(sed -n 's/^.*--channel.*\(nightly-[0-9-]*\).*$/\1/p' \
-  $SRC/mozilla-central/taskcluster/ci/toolchain/rust.yml
-)
-
-rustup toolchain install ${RUST_NIGHTLY_VERSION}
-rustup default ${RUST_NIGHTLY_VERSION}-x86_64-unknown-linux-gnu
-
-./mach --no-interactive bootstrap --application-choice browser
-
-# Skip patches for now
-rm tools/fuzzing/libfuzzer/patches/*.patch
-touch tools/fuzzing/libfuzzer/patches/dummy.patch
+[[ -f "$HOME/.cargo/env" ]] && source $HOME/.cargo/env
+./mach bootstrap --no-interactive --application-choice browser
+source $HOME/.cargo/env
 
 # Update internal libFuzzer.
 (cd tools/fuzzing/libfuzzer && ./clone_libfuzzer.sh HEAD)
diff --git a/projects/firefox/mozconfig.address b/projects/firefox/mozconfig.address
index 0bc2c36..c9eb33d 100644
--- a/projects/firefox/mozconfig.address
+++ b/projects/firefox/mozconfig.address
@@ -1,7 +1,4 @@
 . $SRC/mozconfig.coverage
 
 ac_add_options --enable-address-sanitizer
-
-# Don't use standard CFLAGS/CXXFLAGS provided by oss-fuzz
-export CFLAGS=""
-export CXXFLAGS=""
+mk_add_options CFLAGS= CXXFLAGS=
diff --git a/projects/firefox/mozconfig.coverage b/projects/firefox/mozconfig.coverage
index a99a377..8178d90 100644
--- a/projects/firefox/mozconfig.coverage
+++ b/projects/firefox/mozconfig.coverage
@@ -1,4 +1,3 @@
-mk_add_options AUTOCLOBBER=1
 ac_add_options --disable-debug
 ac_add_options --disable-elf-hack
 ac_add_options --disable-jemalloc
diff --git a/projects/firefox/project.yaml b/projects/firefox/project.yaml
index 350f84c..ad96d6b 100644
--- a/projects/firefox/project.yaml
+++ b/projects/firefox/project.yaml
@@ -1,13 +1,14 @@
 homepage: "https://www.mozilla.org/firefox/"
-language: c++
 primary_contact: "choller@mozilla.com"
 auto_ccs:
   - twsmith@mozilla.com
+  - cdiehl@mozilla.com
   - sledru@mozilla.com
 fuzzing_engines:
   - libfuzzer
 sanitizers:
   - address
+  - undefined
 run_tests: False
 # libraries from $OUT/firefox/dependentlibs.list
 coverage_extra_args: >
diff --git a/projects/firestore/Dockerfile b/projects/firestore/Dockerfile
index bb024aa..b2f1376 100644
--- a/projects/firestore/Dockerfile
+++ b/projects/firestore/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER varconst@google.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool wget golang python python-protobuf python-six
 RUN git clone --depth 1 https://github.com/firebase/firebase-ios-sdk.git
 COPY build.sh $SRC/
diff --git a/projects/firestore/build.sh b/projects/firestore/build.sh
index 7ada1b9..ec9a429 100755
--- a/projects/firestore/build.sh
+++ b/projects/firestore/build.sh
@@ -15,7 +15,17 @@
 #
 ################################################################################
 
+# The cmake version that is available on Ubuntu 16.04 is 3.5.1. While Firestore
+# itself requires cmake 3.5, it depends on leveldb which requires cmake 3.9
+# (https://github.com/google/leveldb/blob/master/CMakeLists.txt#L5).
+# There is an open issue (https://github.com/google/leveldb/issues/607) to
+# lower the required cmake version of leveldb. Therefore, we need to download
+# a newer version of cmake until leveldb lowers the required version or a newer
+# cmake version becomes available in the OSS Fuzz environment.
 cd $WORK
+wget https://cmake.org/files/v3.12/cmake-3.12.0-Linux-x86_64.tar.gz
+tar -xzf cmake-3.12.0-Linux-x86_64.tar.gz
+rm cmake-3.12.0-Linux-x86_64.tar.gz
 
 # Disable UBSan vptr since Firestore depends on other libraries that are built
 # with -fno-rtti.
@@ -26,7 +36,7 @@
 # fuzzing library defined in ${LIB_FUZZING_ENGINE}.
 cd $SRC/firebase-ios-sdk
 mkdir build && cd build
-cmake -DFUZZING=ON ..
+$WORK/cmake-3.12.0-Linux-x86_64/bin/cmake -DFUZZING=ON ..
 make -j$(nproc)
 
 # Copy fuzzing targets, dictionaries, and zipped corpora to $OUT.
diff --git a/projects/firestore/project.yaml b/projects/firestore/project.yaml
index 5f3f901..d246ddb 100644
--- a/projects/firestore/project.yaml
+++ b/projects/firestore/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://firebase.google.com/docs/firestore/"
-language: c++
 primary_contact: "varconst@google.com"
 auto_ccs:
   - "varconst@google.com"
@@ -7,4 +6,3 @@
 sanitizers:
   - address
   - undefined
-main_repo: 'https://github.com/firebase/firebase-ios-sdk.git'
diff --git a/projects/flac/Dockerfile b/projects/flac/Dockerfile
index 5af9225..2111fb7 100644
--- a/projects/flac/Dockerfile
+++ b/projects/flac/Dockerfile
@@ -15,11 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool libtool-bin pkg-config gettext sudo default-jdk
+RUN apt-get update && apt-get install -y make autoconf automake libtool libtool-bin pkg-config gettext sudo
 RUN git clone --depth 1 https://github.com/xiph/flac.git
 RUN git clone --depth 1 https://github.com/xiph/ogg.git
-RUN git clone --depth 1 https://github.com/google/ExoPlayer.git
 RUN git clone --depth 1 https://github.com/guidovranken/fuzzing-headers.git
 RUN git clone --depth 1 https://github.com/guidovranken/flac-fuzzers.git
-COPY fuzzer_exo.cpp $SRC/flac-fuzzers
 COPY build.sh $SRC/
diff --git a/projects/flac/build.sh b/projects/flac/build.sh
index c94ba22..f4ef563 100755
--- a/projects/flac/build.sh
+++ b/projects/flac/build.sh
@@ -53,8 +53,6 @@
 
 # Build fuzzers
 cd $SRC/flac-fuzzers/
-$CXX $CXXFLAGS -I $SRC/flac/include/ -I $SRC/ExoPlayer/extensions/flac/src/main/jni/ -I /usr/lib/jvm/java-8-openjdk-amd64/include/ -I /usr/lib/jvm/java-8-openjdk-amd64/include/linux/ fuzzer_exo.cpp \
-    $SRC/flac/src/libFLAC++/.libs/libFLAC++.a $SRC/flac/src/libFLAC/.libs/libFLAC.a $SRC/libogg-install/lib/libogg.a $LIB_FUZZING_ENGINE -o $OUT/fuzzer_exo
 $CXX $CXXFLAGS -I $SRC/flac/include/ fuzzer_decoder.cpp $SRC/flac/src/libFLAC++/.libs/libFLAC++.a $SRC/flac/src/libFLAC/.libs/libFLAC.a $SRC/libogg-install/lib/libogg.a $LIB_FUZZING_ENGINE -o $OUT/fuzzer_decoder
 $CXX $CXXFLAGS -I $SRC/flac/include/ fuzzer_encoder.cpp $SRC/flac/src/libFLAC++/.libs/libFLAC++.a $SRC/flac/src/libFLAC/.libs/libFLAC.a $SRC/libogg-install/lib/libogg.a $LIB_FUZZING_ENGINE -o $OUT/fuzzer_encoder
 cp fuzzer_encoder.dict $OUT/
diff --git a/projects/flac/fuzzer_exo.cpp b/projects/flac/fuzzer_exo.cpp
deleted file mode 100644
index 9c0eac6..0000000
--- a/projects/flac/fuzzer_exo.cpp
+++ /dev/null
@@ -1,477 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <assert.h>
-#include <string>
-
-#include "include/flac_parser.h"
-
-#include <jni.h>
-
-// #include <android/log.h>
-
-#include <cassert>
-#include <cstdlib>
-#include <cstring>
-
-#define LOG_TAG "FLACParser"
-
-#define LITERAL_TO_STRING_INTERNAL(x) #x
-#define LITERAL_TO_STRING(x) LITERAL_TO_STRING_INTERNAL(x)
-
-#define CHECK(x) if (!(x)) return 0;
-
-const int endian = 1;
-#define isBigEndian() (*(reinterpret_cast<const char *>(&endian)) == 0)
-
-// The FLAC parser calls our C++ static callbacks using C calling conventions,
-// inside FLAC__stream_decoder_process_until_end_of_metadata
-// and FLAC__stream_decoder_process_single.
-// We immediately then call our corresponding C++ instance methods
-// with the same parameter list, but discard redundant information.
-
-FLAC__StreamDecoderReadStatus FLACParser::read_callback(
-    const FLAC__StreamDecoder * /* decoder */, FLAC__byte buffer[],
-    size_t *bytes, void *client_data) {
-  return reinterpret_cast<FLACParser *>(client_data)
-      ->readCallback(buffer, bytes);
-}
-
-FLAC__StreamDecoderSeekStatus FLACParser::seek_callback(
-    const FLAC__StreamDecoder * /* decoder */,
-    FLAC__uint64 absolute_byte_offset, void *client_data) {
-  return reinterpret_cast<FLACParser *>(client_data)
-      ->seekCallback(absolute_byte_offset);
-}
-
-FLAC__StreamDecoderTellStatus FLACParser::tell_callback(
-    const FLAC__StreamDecoder * /* decoder */,
-    FLAC__uint64 *absolute_byte_offset, void *client_data) {
-  return reinterpret_cast<FLACParser *>(client_data)
-      ->tellCallback(absolute_byte_offset);
-}
-
-FLAC__StreamDecoderLengthStatus FLACParser::length_callback(
-    const FLAC__StreamDecoder * /* decoder */, FLAC__uint64 *stream_length,
-    void *client_data) {
-  return reinterpret_cast<FLACParser *>(client_data)
-      ->lengthCallback(stream_length);
-}
-
-FLAC__bool FLACParser::eof_callback(const FLAC__StreamDecoder * /* decoder */,
-                                    void *client_data) {
-  return reinterpret_cast<FLACParser *>(client_data)->eofCallback();
-}
-
-FLAC__StreamDecoderWriteStatus FLACParser::write_callback(
-    const FLAC__StreamDecoder * /* decoder */, const FLAC__Frame *frame,
-    const FLAC__int32 *const buffer[], void *client_data) {
-  return reinterpret_cast<FLACParser *>(client_data)
-      ->writeCallback(frame, buffer);
-}
-
-void FLACParser::metadata_callback(const FLAC__StreamDecoder * /* decoder */,
-                                   const FLAC__StreamMetadata *metadata,
-                                   void *client_data) {
-  reinterpret_cast<FLACParser *>(client_data)->metadataCallback(metadata);
-}
-
-void FLACParser::error_callback(const FLAC__StreamDecoder * /* decoder */,
-                                FLAC__StreamDecoderErrorStatus status,
-                                void *client_data) {
-  reinterpret_cast<FLACParser *>(client_data)->errorCallback(status);
-}
-
-// These are the corresponding callbacks with C++ calling conventions
-
-FLAC__StreamDecoderReadStatus FLACParser::readCallback(FLAC__byte buffer[],
-                                                       size_t *bytes) {
-  size_t requested = *bytes;
-  ssize_t actual = mDataSource->readAt(mCurrentPos, buffer, requested);
-  if (0 > actual) {
-    *bytes = 0;
-    return FLAC__STREAM_DECODER_READ_STATUS_ABORT;
-  } else if (0 == actual) {
-    *bytes = 0;
-    mEOF = true;
-    return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
-  } else {
-    assert(actual <= requested);
-    *bytes = actual;
-    mCurrentPos += actual;
-    return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
-  }
-}
-
-FLAC__StreamDecoderSeekStatus FLACParser::seekCallback(
-    FLAC__uint64 absolute_byte_offset) {
-  mCurrentPos = absolute_byte_offset;
-  mEOF = false;
-  return FLAC__STREAM_DECODER_SEEK_STATUS_OK;
-}
-
-FLAC__StreamDecoderTellStatus FLACParser::tellCallback(
-    FLAC__uint64 *absolute_byte_offset) {
-  *absolute_byte_offset = mCurrentPos;
-  return FLAC__STREAM_DECODER_TELL_STATUS_OK;
-}
-
-FLAC__StreamDecoderLengthStatus FLACParser::lengthCallback(
-    FLAC__uint64 *stream_length) {
-  return FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED;
-}
-
-FLAC__bool FLACParser::eofCallback() { return mEOF; }
-
-FLAC__StreamDecoderWriteStatus FLACParser::writeCallback(
-    const FLAC__Frame *frame, const FLAC__int32 *const buffer[]) {
-  if (mWriteRequested) {
-    mWriteRequested = false;
-    // FLAC parser doesn't free or realloc buffer until next frame or finish
-    mWriteHeader = frame->header;
-    mWriteBuffer = buffer;
-    mWriteCompleted = true;
-    return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
-  } else {
-    return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT;
-  }
-}
-
-void FLACParser::metadataCallback(const FLAC__StreamMetadata *metadata) {
-  switch (metadata->type) {
-    case FLAC__METADATA_TYPE_STREAMINFO:
-      if (!mStreamInfoValid) {
-        mStreamInfo = metadata->data.stream_info;
-        mStreamInfoValid = true;
-      } else {
-        break;
-      }
-      break;
-    case FLAC__METADATA_TYPE_SEEKTABLE:
-      mSeekTable = &metadata->data.seek_table;
-      break;
-    case FLAC__METADATA_TYPE_VORBIS_COMMENT:
-      if (!mVorbisCommentsValid) {
-        FLAC__StreamMetadata_VorbisComment vorbisComment =
-            metadata->data.vorbis_comment;
-        for (FLAC__uint32 i = 0; i < vorbisComment.num_comments; ++i) {
-          FLAC__StreamMetadata_VorbisComment_Entry vorbisCommentEntry =
-              vorbisComment.comments[i];
-          if (vorbisCommentEntry.entry != NULL) {
-            std::string comment(
-                reinterpret_cast<char *>(vorbisCommentEntry.entry),
-                vorbisCommentEntry.length);
-            mVorbisComments.push_back(comment);
-          }
-        }
-        mVorbisCommentsValid = true;
-      } else {
-        break;
-      }
-      break;
-    case FLAC__METADATA_TYPE_PICTURE: {
-      const FLAC__StreamMetadata_Picture *parsedPicture =
-          &metadata->data.picture;
-      FlacPicture picture;
-      picture.mimeType.assign(std::string(parsedPicture->mime_type));
-      picture.description.assign(
-          std::string((char *)parsedPicture->description));
-      picture.data.assign(parsedPicture->data,
-                          parsedPicture->data + parsedPicture->data_length);
-      picture.width = parsedPicture->width;
-      picture.height = parsedPicture->height;
-      picture.depth = parsedPicture->depth;
-      picture.colors = parsedPicture->colors;
-      picture.type = parsedPicture->type;
-      mPictures.push_back(picture);
-      mPicturesValid = true;
-      break;
-    }
-    default:
-      break;
-  }
-}
-
-void FLACParser::errorCallback(FLAC__StreamDecoderErrorStatus status) {
-  mErrorStatus = status;
-}
-
-// Copy samples from FLAC native 32-bit non-interleaved to
-// correct bit-depth (non-zero padded), interleaved.
-// These are candidates for optimization if needed.
-static void copyToByteArrayBigEndian(int8_t *dst, const int *const *src,
-                                     unsigned bytesPerSample, unsigned nSamples,
-                                     unsigned nChannels) {
-  for (unsigned i = 0; i < nSamples; ++i) {
-    for (unsigned c = 0; c < nChannels; ++c) {
-      // point to the first byte of the source address
-      // and then skip the first few bytes (most significant bytes)
-      // depending on the bit depth
-      const int8_t *byteSrc =
-          reinterpret_cast<const int8_t *>(&src[c][i]) + 4 - bytesPerSample;
-      memcpy(dst, byteSrc, bytesPerSample);
-      dst = dst + bytesPerSample;
-    }
-  }
-}
-
-static void copyToByteArrayLittleEndian(int8_t *dst, const int *const *src,
-                                        unsigned bytesPerSample,
-                                        unsigned nSamples, unsigned nChannels) {
-  for (unsigned i = 0; i < nSamples; ++i) {
-    for (unsigned c = 0; c < nChannels; ++c) {
-      // with little endian, the most significant bytes will be at the end
-      // copy the bytes in little endian will remove the most significant byte
-      // so we are good here.
-      memcpy(dst, &(src[c][i]), bytesPerSample);
-      dst = dst + bytesPerSample;
-    }
-  }
-}
-
-static void copyTrespass(int8_t * /* dst */, const int *const * /* src */,
-                         unsigned /* bytesPerSample */, unsigned /* nSamples */,
-                         unsigned /* nChannels */) {
-  ;
-}
-
-// FLACParser
-
-FLACParser::FLACParser(DataSource *source)
-    : mDataSource(source),
-      mCopy(copyTrespass),
-      mDecoder(NULL),
-      mCurrentPos(0LL),
-      mEOF(false),
-      mStreamInfoValid(false),
-      mSeekTable(NULL),
-      firstFrameOffset(0LL),
-      mVorbisCommentsValid(false),
-      mPicturesValid(false),
-      mWriteRequested(false),
-      mWriteCompleted(false),
-      mWriteBuffer(NULL),
-      mErrorStatus((FLAC__StreamDecoderErrorStatus)-1) {
-  memset(&mStreamInfo, 0, sizeof(mStreamInfo));
-  memset(&mWriteHeader, 0, sizeof(mWriteHeader));
-}
-
-FLACParser::~FLACParser() {
-  if (mDecoder != NULL) {
-    FLAC__stream_decoder_delete(mDecoder);
-    mDecoder = NULL;
-  }
-}
-
-bool FLACParser::init() {
-  // setup libFLAC parser
-  mDecoder = FLAC__stream_decoder_new();
-  if (mDecoder == NULL) {
-    // The new should succeed, since probably all it does is a malloc
-    // that always succeeds in Android.  But to avoid dependence on the
-    // libFLAC internals, we check and log here.
-    return false;
-  }
-  FLAC__stream_decoder_set_md5_checking(mDecoder, false);
-  FLAC__stream_decoder_set_metadata_ignore_all(mDecoder);
-  FLAC__stream_decoder_set_metadata_respond(mDecoder,
-                                            FLAC__METADATA_TYPE_STREAMINFO);
-  FLAC__stream_decoder_set_metadata_respond(mDecoder,
-                                            FLAC__METADATA_TYPE_SEEKTABLE);
-  FLAC__stream_decoder_set_metadata_respond(mDecoder,
-                                            FLAC__METADATA_TYPE_VORBIS_COMMENT);
-  FLAC__stream_decoder_set_metadata_respond(mDecoder,
-                                            FLAC__METADATA_TYPE_PICTURE);
-  FLAC__StreamDecoderInitStatus initStatus;
-  initStatus = FLAC__stream_decoder_init_stream(
-      mDecoder, read_callback, seek_callback, tell_callback, length_callback,
-      eof_callback, write_callback, metadata_callback, error_callback,
-      reinterpret_cast<void *>(this));
-  if (initStatus != FLAC__STREAM_DECODER_INIT_STATUS_OK) {
-    // A failure here probably indicates a programming error and so is
-    // unlikely to happen. But we check and log here similarly to above.
-    return false;
-  }
-  return true;
-}
-
-bool FLACParser::decodeMetadata() {
-  // parse all metadata
-  if (!FLAC__stream_decoder_process_until_end_of_metadata(mDecoder)) {
-    return false;
-  }
-  // store first frame offset
-  FLAC__stream_decoder_get_decode_position(mDecoder, &firstFrameOffset);
-
-  if (mStreamInfoValid) {
-    // check channel count
-    if (getChannels() == 0 || getChannels() > 8) {
-      return false;
-    }
-    // check bit depth
-    switch (getBitsPerSample()) {
-      case 8:
-      case 16:
-      case 24:
-      case 32:
-        break;
-      default:
-        return false;
-    }
-    // configure the appropriate copy function based on device endianness.
-    if (isBigEndian()) {
-      mCopy = copyToByteArrayBigEndian;
-    } else {
-      mCopy = copyToByteArrayLittleEndian;
-    }
-  } else {
-    return false;
-  }
-  return true;
-}
-
-size_t FLACParser::readBuffer(void *output, size_t output_size) {
-  mWriteRequested = true;
-  mWriteCompleted = false;
-
-  if (!FLAC__stream_decoder_process_single(mDecoder)) {
-    return -1;
-  }
-  if (!mWriteCompleted) {
-    if (FLAC__stream_decoder_get_state(mDecoder) !=
-        FLAC__STREAM_DECODER_END_OF_STREAM) {
-    }
-    return -1;
-  }
-
-  // verify that block header keeps the promises made by STREAMINFO
-  unsigned blocksize = mWriteHeader.blocksize;
-  if (blocksize == 0 || blocksize > getMaxBlockSize()) {
-    return -1;
-  }
-  if (mWriteHeader.sample_rate != getSampleRate() ||
-      mWriteHeader.channels != getChannels() ||
-      mWriteHeader.bits_per_sample != getBitsPerSample()) {
-    return -1;
-  }
-
-  unsigned bytesPerSample = getBitsPerSample() >> 3;
-  size_t bufferSize = blocksize * getChannels() * bytesPerSample;
-  if (bufferSize > output_size) {
-    return -1;
-  }
-
-  // copy PCM from FLAC write buffer to our media buffer, with interleaving.
-  (*mCopy)(reinterpret_cast<int8_t *>(output), mWriteBuffer, bytesPerSample,
-           blocksize, getChannels());
-
-  // fill in buffer metadata
-  CHECK(mWriteHeader.number_type == FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER);
-
-  return bufferSize;
-}
-
-bool FLACParser::getSeekPositions(int64_t timeUs,
-                                  std::array<int64_t, 4> &result) {
-  if (!mSeekTable) {
-    return false;
-  }
-
-  unsigned sampleRate = getSampleRate();
-  int64_t totalSamples = getTotalSamples();
-  int64_t targetSampleNumber = (timeUs * sampleRate) / 1000000LL;
-  if (targetSampleNumber >= totalSamples) {
-    targetSampleNumber = totalSamples - 1;
-  }
-
-  FLAC__StreamMetadata_SeekPoint* points = mSeekTable->points;
-  unsigned length = mSeekTable->num_points;
-
-  for (unsigned i = length; i != 0; i--) {
-    int64_t sampleNumber = points[i - 1].sample_number;
-    if (sampleNumber == -1) {  // placeholder
-      continue;
-    }
-    if (sampleNumber <= targetSampleNumber) {
-      result[0] = (sampleNumber * 1000000LL) / sampleRate;
-      result[1] = firstFrameOffset + points[i - 1].stream_offset;
-      if (sampleNumber == targetSampleNumber || i >= length ||
-          points[i].sample_number == -1) {  // placeholder
-        // exact seek, or no following non-placeholder seek point
-        result[2] = result[0];
-        result[3] = result[1];
-      } else {
-        result[2] = (points[i].sample_number * 1000000LL) / sampleRate;
-        result[3] = firstFrameOffset + points[i].stream_offset;
-      }
-      return true;
-    }
-  }
-  result[0] = 0;
-  result[1] = firstFrameOffset;
-  result[2] = 0;
-  result[3] = firstFrameOffset;
-  return true;
-}
-
-namespace {
-
-  class FuzzDataSource : public DataSource {
-    const uint8_t *data_;
-    size_t size_;
-
-   public:
-    FuzzDataSource(const uint8_t *data, size_t size) {
-      data_ = data;
-      size_ = size;
-    }
-
-    ssize_t readAt(off64_t offset, void *const data, size_t size) {
-      if (offset > size_)
-        return -1;
-      size_t remaining = size_ - offset;
-      if (remaining < size)
-        size = remaining;
-      memcpy(data, data_ + offset, size);
-      return size;
-    }
-  };
-
-}  // namespace
-
-// Fuzz FLAC format and instrument the result as exoplayer JNI would:
-// https://github.com/google/ExoPlayer/blob/release-v2/extensions/flac/src/main/jni/
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  FuzzDataSource source(data, size);
-  FLACParser parser(&source);
-
-  // Early parsing
-  if (!parser.init() || !parser.decodeMetadata())
-    return 0;
-
-  auto streamInfo = parser.getStreamInfo();
-
-  // Similar implementation than ExoPlayer
-  int buffer_size = streamInfo.max_blocksize * streamInfo.channels * 2;
-  assert(buffer_size >= 0);  // Not expected
-  auto buffer = new uint8_t[buffer_size];
-  int runs = 0;
-  while (parser.readBuffer(buffer, buffer_size) >= buffer_size) {
-    runs++;
-    continue;
-  }
-  delete[] buffer;
-
-  return 0;
-}
diff --git a/projects/flac/project.yaml b/projects/flac/project.yaml
index dbbd95f..39d8882 100644
--- a/projects/flac/project.yaml
+++ b/projects/flac/project.yaml
@@ -1,10 +1,9 @@
 homepage: "https://xiph.org/flac/"
-language: c++
 primary_contact: "guidovranken@gmail.com"
 auto_ccs:
  - "erik.de.castro.lopo@gmail.com"
 vendor_ccs:
- - "twsmith@mozilla.com"
+ - "cdiehl@mozilla.com"
 sanitizers:
  - address
  - undefined
@@ -12,5 +11,3 @@
 architectures:
  - x86_64
  - i386
-coverage_extra_args: -ignore-filename-regex=/usr/lib/jvm/.*
-main_repo: 'https://github.com/xiph/flac.git'
diff --git a/projects/flatbuffers/Dockerfile b/projects/flatbuffers/Dockerfile
deleted file mode 100644
index d51dac7..0000000
--- a/projects/flatbuffers/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake ninja
-RUN git clone https://github.com/google/flatbuffers
-
-WORKDIR $SRC/
-COPY build.sh $SRC/
diff --git a/projects/flatbuffers/build.sh b/projects/flatbuffers/build.sh
deleted file mode 100755
index cfc1c29..0000000
--- a/projects/flatbuffers/build.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-  
-cd $SRC/flatbuffers
-mkdir build
-cd build
-cmake -DOSS_FUZZ:BOOL=ON -G "Unix Makefiles" ../tests/fuzzer
-make
-
-cp ../tests/fuzzer/*.dict $OUT/
-cp *.bfbs $OUT/
-cp *_fuzzer $OUT/
diff --git a/projects/flatbuffers/project.yaml b/projects/flatbuffers/project.yaml
deleted file mode 100644
index f4faf00..0000000
--- a/projects/flatbuffers/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/google/flatbuffers"
-language: c++
-primary_contact: "wvo@google.com"
-auto_ccs:
-  - "Adam@adalogics.com"
-  - "vglavnyy@gmail.com"
-sanitizers:
-  - address
-  - memory
-  - undefined
-main_repo: 'https://github.com/google/flatbuffers'
diff --git a/projects/fluent-bit/Dockerfile b/projects/fluent-bit/Dockerfile
deleted file mode 100755
index 217dd71..0000000
--- a/projects/fluent-bit/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake flex bison
-RUN git clone https://github.com/fluent/fluent-bit/
-
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/fluent-bit/build.sh b/projects/fluent-bit/build.sh
deleted file mode 100755
index e68e5b8..0000000
--- a/projects/fluent-bit/build.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-cd fluent-bit/build
-
-export CFLAGS="$CFLAGS -fcommon -DFLB_TESTS_OSSFUZZ=ON"
-export CXXFLAGS="$CXXFLAGS -fcommon -DFLB_TESTS_OSSFUZZ=ON"
-
-# Commandline arguments to turn off a lot of plugins.
-INPUT_PLUGINS="-DFLB_IN_COLLECTD=OFF -DFLB_IN_CPU=OFF -DFLB_IN_DISK=OFF -DFLB_IN_DOCKER=OFF -DFLB_IN_EXEC=OFF -DFLB_IN_FORWARD=OFF -DFLB_IN_HEAD=OFF -DFLB_IN_HEALTH=OFF -DFLB_IN_KMSG=OFF -DFLB_IN_MEM=OFF -DFLB_IN_MQTT=OFF -DFLB_IN_NETIF=OFF -DFLB_IN_PROC=OFF -DFLB_IN_RANDOM=OFF -DFLB_IN_SERIAL=OFF -DFLB_IN_STDIN=OFF -DFLB_IN_SYSLOG=OFF -DFLB_IN_SYSTEMD=OFF -DFLB_IN_TAIL=OFF -DFLB_IN_TCP=OFF -DFLB_IN_THERMAL=OFF -DFLB_IN_WINLOG=OFF"
-OUTPUT_PLUGINS="-DFLB_STREAM_PROCESSOR=Off -DFLB_LUAJIT=OFF -DFLB_FILTER_GREP=OFF -DFLB_FILTER_REWRITE_TAG=OFF -DFLB_OUT_AZURE=OFF -DFLB_OUT_BIGQUERY=OFF -DFLB_OUT_COUNTER=OFF -DFLB_OUT_DATADOG=OFF -DFLB_OUT_ES=OFF -DFLB_OUT_FILE=OFF -DFLB_OUT_FLOWCOUNTER=OFF -DFLB_OUT_FORWARD=OFF -DFLB_OUT_GELF=OFF -DFLB_OUT_HTTP=OFF -DFLB_OUT_INFLUXDB=OFF -DFLB_OUT_KAFKA=OFF -DFLB_OUT_KAFKA_REST=OFF -DFLB_OUT_NATS=OFF -DFLB_OUT_NULL=OFF -DFLB_OUT_PGSQL=OFF -DFLB_OUT_PLOT=OFF -DFLB_OUT_SLACK=OFF -DFLB_OUT_SPLUNK=OFF -DFLB_OUT_STACKDRIVER=OFF -DFLB_OUT_STDOUT=OFF -DFLB_OUT_TCP=OFF -DFLB_OUT_SYSLOG=OFF -DFLB_OUT_NRLOGS=OFF  -DFLB_OUT_LOKI=OFF"
-FILTER_PLUGINS="-DFLB_FILTER_PARSER=ON  -DFLB_FILTER_RECORD_MODIFIER=OFF -DFLB_FILTER_MODIFY=OFF -DFLB_FILTER_THROTTLE=OFF -DFLB_FILTER_KUBERNETES=OFF -DFLB_FILTER_NEST=OFF -DFLB_FILTER_PARSER=OFF -DFLB_FILTER_AWS=OFF -DFLB_FILTER_ALTER_SIZE=OFF"
-
-cmake -DFLB_METRICS=ON -DFLB_DEBUG=On -DMBEDTLS_FATAL_WARNINGS=OFF -DFLB_TESTS_INTERNAL=ON -DFLB_TESTS_INTERNAL_FUZZ=ON -DFLB_TESTS_OSSFUZZ=ON ${INPUT_PLUGINS} ${FILTER_PLUGINS} ${OUTPUT_PLUGINS} ..
-make
-
-# Create options files
-for fuzz in http msgpack_parser record_ac signv4 engine; do
-    echo "[libfuzzer]" >> $OUT/flb-it-fuzz-${fuzz}_fuzzer_OSSFUZZ.options
-    echo "detect_leaks=0" >> $OUT/flb-it-fuzz-${fuzz}_fuzzer_OSSFUZZ.options
-done
-
-cp $SRC/fluent-bit/build/bin/*OSSFUZZ ${OUT}/
diff --git a/projects/fluent-bit/project.yaml b/projects/fluent-bit/project.yaml
deleted file mode 100755
index aca7ccc..0000000
--- a/projects/fluent-bit/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: "https://github.com/fluent/fluent-bit"
-primary_contact: "edsiper@gmail.com"
-language: c++
-auto_ccs:
-  - "david@adalogics.com"
-  - "wppttt@amazon.com"
-main_repo: 'https://github.com/fluent/fluent-bit/'
diff --git a/projects/fmt/Dockerfile b/projects/fmt/Dockerfile
deleted file mode 100644
index f9da43c..0000000
--- a/projects/fmt/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN echo "CXX=$CXX"
-RUN echo "CXXFLAGS=$CXXFLAGS"
-RUN apt-get update && apt-get install -y cmake ninja-build
-
-RUN git clone --depth 1 --branch master \
-  https://github.com/fmtlib/fmt.git
-
-WORKDIR fmt
-COPY build.sh $SRC/
diff --git a/projects/fmt/build.sh b/projects/fmt/build.sh
deleted file mode 100755
index 7da75c9..0000000
--- a/projects/fmt/build.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-#create zip files with initial corpus, taken from version control.
-#for f in $(ls fuzzers/initial_corpus/) ;do
-#  zip -j -r $OUT/fuzzer_${f}_seed_corpus.zip fuzzers/initial_corpus/$f
-#done
-
-mkdir build
-cd build
-
-# use C++ 14 instead of 17, because even if clang is
-# bleeding edge, cmake is old in the oss fuzz image.
-
-cmake .. \
--GNinja \
--DCMAKE_BUILD_TYPE=Debug \
--DCMAKE_CXX_STANDARD=14 \
--DFMT_DOC=Off \
--DFMT_TEST=Off \
--DFMT_SAFE_DURATION_CAST=On \
--DFMT_FUZZ=On \
--DFMT_FUZZ_LINKMAIN=Off \
--DFMT_FUZZ_LDFLAGS=$LIB_FUZZING_ENGINE
-
-cmake --build .
-
-cp bin/*fuzzer $OUT
diff --git a/projects/fmt/project.yaml b/projects/fmt/project.yaml
deleted file mode 100644
index 4ed141a..0000000
--- a/projects/fmt/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/fmtlib/fmt"
-language: c++
-primary_contact: "pauldreikossfuzz@gmail.com"
-auto_ccs:
- - "victor.zverovich@gmail.com"
-main_repo: 'https://github.com/fmtlib/fmt.git'
diff --git a/projects/freeimage/Dockerfile b/projects/freeimage/Dockerfile
index 3133e71..86ab661 100644
--- a/projects/freeimage/Dockerfile
+++ b/projects/freeimage/Dockerfile
@@ -16,7 +16,10 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 RUN apt-get update && apt-get install -y make autoconf automake libtool wget
-RUN svn checkout https://svn.code.sf.net/p/freeimage/svn/ freeimage-svn
-WORKDIR $SRC/freeimage-svn/FreeImage/trunk/
+# This downloads the latest version at the time of writing. There does not
+# appear to be a head version of FreeImage.
+RUN wget https://downloads.sourceforge.net/freeimage/FreeImage3180.zip
+RUN unzip FreeImage3180.zip
+WORKDIR $SRC
 COPY build.sh $SRC/
 COPY load_from_memory_fuzzer.cc $SRC/
diff --git a/projects/freeimage/build.sh b/projects/freeimage/build.sh
index 707440e..a418bd0 100755
--- a/projects/freeimage/build.sh
+++ b/projects/freeimage/build.sh
@@ -15,13 +15,15 @@
 #
 ################################################################################
 
+pushd FreeImage
+
 # b44ExpLogTable.cpp only contains a definition of main().
 sed -i 's/Source\/OpenEXR\/IlmImf\/b44ExpLogTable.cpp//' Makefile.srcs
 make LIBRARIES=-lc++ -j$(nproc)
 
-INSTALL_DIR="$PWD/Dist"
+popd
 
-cd $SRC
+INSTALL_DIR=$SRC/FreeImage/Dist
 
 $CXX $CXXFLAGS -I${INSTALL_DIR}/ $LIB_FUZZING_ENGINE \
   load_from_memory_fuzzer.cc ${INSTALL_DIR}/libfreeimage.a \
diff --git a/projects/freeimage/project.yaml b/projects/freeimage/project.yaml
index 7d0c225..79d63c5 100644
--- a/projects/freeimage/project.yaml
+++ b/projects/freeimage/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://freeimage.sourceforge.net/"
-language: c++
 primary_contact: "drolon@infonie.fr"
 
 sanitizers:
diff --git a/projects/freetype2/Dockerfile b/projects/freetype2/Dockerfile
index c65c728..01c0f06 100644
--- a/projects/freetype2/Dockerfile
+++ b/projects/freetype2/Dockerfile
@@ -15,13 +15,16 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER prince.cherusker@gmail.com
 
 RUN apt-get update &&  \
     apt-get install -y \
       autoconf         \
       cmake            \
+      libpng-dev       \
       libtool          \
       pkg-config       \
+      zlib1g-dev       \
       make
 
 # Get some files for the seed corpus
diff --git a/projects/freetype2/project.yaml b/projects/freetype2/project.yaml
index 9649772..e55e3d9 100644
--- a/projects/freetype2/project.yaml
+++ b/projects/freetype2/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.freetype.org/"
-language: c++
 primary_contact: "lemzwerg@gmail.com"
 auto_ccs:
   - "darnold@adobe.com"
@@ -17,4 +16,3 @@
 sanitizers:
   - address
   - undefined
-main_repo: 'https://github.com/freetype/freetype2-testing.git'
diff --git a/projects/fuzzing-puzzles/Dockerfile b/projects/fuzzing-puzzles/Dockerfile
index cc7ee62..25031ff 100644
--- a/projects/fuzzing-puzzles/Dockerfile
+++ b/projects/fuzzing-puzzles/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mmoroz@chromium.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 ADD https://raw.githubusercontent.com/llvm-mirror/compiler-rt/master/test/fuzzer/MultipleConstraintsOnSmallInputTest.cpp \
     $SRC/fuzzing-puzzles/
diff --git a/projects/fuzzing-puzzles/build.sh b/projects/fuzzing-puzzles/build.sh
index 760b4d9..6dda8dd 100755
--- a/projects/fuzzing-puzzles/build.sh
+++ b/projects/fuzzing-puzzles/build.sh
@@ -16,5 +16,5 @@
 ################################################################################
 
 $CXX $CXXFLAGS $SRC/fuzzing-puzzles/MultipleConstraintsOnSmallInputTest.cpp \
-    -o $OUT/multiple_constraints_on_small_input_honggfuzz_fuzzer \
+    -o $OUT/multiple_constraints_on_small_input_afl_fuzzer \
     $LIB_FUZZING_ENGINE
diff --git a/projects/fuzzing-puzzles/project.yaml b/projects/fuzzing-puzzles/project.yaml
index 6f709ab..cf25a7e 100644
--- a/projects/fuzzing-puzzles/project.yaml
+++ b/projects/fuzzing-puzzles/project.yaml
@@ -1,7 +1,8 @@
 homepage: https://github.com/google/fuzzer-test-suite
-language: c++
 primary_contact: kcc@google.com
 auto_ccs:
+  - "kevinwkt@google.com"
+  - "kodewilliams@google.com"
   - "metzman@google.com"
   - "mmoroz@google.com"
 
@@ -9,6 +10,6 @@
   - address
 
 fuzzing_engines:
-  - honggfuzz
+  - afl
 
 disabled: True
diff --git a/projects/fwupd/Dockerfile b/projects/fwupd/Dockerfile
deleted file mode 100644
index d526837..0000000
--- a/projects/fwupd/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update
-RUN apt-get install -y pkg-config zlib1g-dev libffi-dev
-RUN pip3 install -U meson ninja
-RUN git clone --depth 1 https://github.com/fwupd/fwupd.git fwupd
-WORKDIR .
-COPY build.sh $SRC/
diff --git a/projects/fwupd/build.sh b/projects/fwupd/build.sh
deleted file mode 100755
index 8b72156..0000000
--- a/projects/fwupd/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-python3 fwupd/contrib/ci/oss-fuzz.py
diff --git a/projects/fwupd/project.yaml b/projects/fwupd/project.yaml
deleted file mode 100644
index 2864139..0000000
--- a/projects/fwupd/project.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-homepage: "https://github.com/fwupd/fwupd"
-language: c
-primary_contact: "hughsient@gmail.com"
-main_repo: 'https://github.com/fwupd/fwupd'
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
diff --git a/projects/gcloud-go/Dockerfile b/projects/gcloud-go/Dockerfile
deleted file mode 100644
index 1d2b38e..0000000
--- a/projects/gcloud-go/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-LABEL maintainer="codyoss@google.com"
-RUN go get cloud.google.com/go/spanner
-COPY build.sh $SRC/
-WORKDIR $SRC/
diff --git a/projects/gcloud-go/build.sh b/projects/gcloud-go/build.sh
deleted file mode 100644
index 5ff5653..0000000
--- a/projects/gcloud-go/build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-
-compile_go_fuzzer cloud.google.com/go/spanner/spansql FuzzParseQuery fuzz_parse_query
diff --git a/projects/gcloud-go/project.yaml b/projects/gcloud-go/project.yaml
deleted file mode 100644
index f336624..0000000
--- a/projects/gcloud-go/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: "https://github.com/googleapis/google-cloud-go"
-primary_contact: "codyoss@google.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
diff --git a/projects/gdal/Dockerfile b/projects/gdal/Dockerfile
index 00f0723..649fe3f 100644
--- a/projects/gdal/Dockerfile
+++ b/projects/gdal/Dockerfile
@@ -15,11 +15,30 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && \
+MAINTAINER even.rouault@spatialys.com
+RUN dpkg --add-architecture i386 && \
+    apt-get update && \
     apt-get install -y make autoconf automake libtool g++ curl cmake sqlite3 pkg-config
 
 RUN git clone --depth 1 https://github.com/OSGeo/gdal gdal
 
+RUN git clone --depth 1 https://github.com/OSGeo/proj.4 gdal/proj
+
+RUN git clone --depth 1 https://github.com/curl/curl.git gdal/curl
+
+COPY NC4_put_propattr_leak_fix.patch libnetcdf_fix_undefined_left_shift_in_ncx_get_size_t.patch $SRC/
+
+RUN curl https://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-4.4.1.1.tar.gz > gdal/netcdf-4.4.1.1.tar.gz && \
+    cd gdal && \
+    tar xzf netcdf-4.4.1.1.tar.gz && \
+    rm -f netcdf-4.4.1.1.tar.gz && \
+    cd netcdf-4.4.1.1 && \
+    patch -p0 < $SRC/NC4_put_propattr_leak_fix.patch && \
+    patch -p0 < $SRC/libnetcdf_fix_undefined_left_shift_in_ncx_get_size_t.patch && \
+    cd ../..
+
+RUN git clone --depth 1 https://anongit.freedesktop.org/git/poppler/poppler.git gdal/poppler
+
 RUN cp gdal/gdal/fuzzers/build.sh $SRC/
 
 WORKDIR gdal
diff --git a/projects/gdal/NC4_put_propattr_leak_fix.patch b/projects/gdal/NC4_put_propattr_leak_fix.patch
new file mode 100644
index 0000000..55908aa
--- /dev/null
+++ b/projects/gdal/NC4_put_propattr_leak_fix.patch
@@ -0,0 +1,16 @@
+--- libsrc4/nc4info.c.ori	2017-06-07 10:28:11.478130590 +0200
++++ libsrc4/nc4info.c	2017-06-07 10:28:29.670268763 +0200
+@@ -174,11 +174,8 @@
+       herr = 0;
+     }
+  done:
+-    if(ncstat != NC_NOERR) {
+-      if(text != NULL) {
+-        free(text);
+-        text = NULL;
+-      }
++    if(text != NULL) {
++      free(text);
+     }
+ 
+     if(attid >= 0) HCHECK((H5Aclose(attid)));
diff --git a/projects/gdal/libnetcdf_fix_undefined_left_shift_in_ncx_get_size_t.patch b/projects/gdal/libnetcdf_fix_undefined_left_shift_in_ncx_get_size_t.patch
new file mode 100644
index 0000000..e0b886d
--- /dev/null
+++ b/projects/gdal/libnetcdf_fix_undefined_left_shift_in_ncx_get_size_t.patch
@@ -0,0 +1,46 @@
+--- libsrc/ncx.m4.ori	2017-06-15 12:45:29.461345214 +0200
++++ libsrc/ncx.m4	2017-06-23 12:14:29.263652717 +0200
+@@ -726,7 +726,11 @@
+ {
+ 	const uchar *cp = (const uchar *) xp;
+ 
++#if INT_MAX  >= X_INT_MAX
++	*ip = (ix_int)((unsigned)(*cp++) << 24);
++#else
+ 	*ip = *cp++ << 24;
++#endif
+ #if SIZEOF_IX_INT > X_SIZEOF_INT
+ 	if(*ip & 0x80000000)
+ 	{
+@@ -1883,7 +1887,7 @@
+ 	/* similar to get_ix_int */
+ 	const uchar *cp = (const uchar *) *xpp;
+ 
+-	*ulp = (unsigned)(*cp++ << 24);
++	*ulp = (unsigned)(*cp++) << 24;
+ 	*ulp |= (*cp++ << 16);
+ 	*ulp |= (*cp++ << 8);
+ 	*ulp |= *cp;
+--- libsrc/ncx.c.ori	2017-06-15 12:38:29.769770935 +0200
++++ libsrc/ncx.c	2017-06-23 12:10:38.359973119 +0200
+@@ -1031,7 +1031,11 @@
+ {
+ 	const uchar *cp = (const uchar *) xp;
+ 
++#if INT_MAX  >= X_INT_MAX
++	*ip = (ix_int)((unsigned)(*cp++) << 24);
++#else
+ 	*ip = *cp++ << 24;
++#endif
+ #if SIZEOF_IX_INT > X_SIZEOF_INT
+ 	if(*ip & 0x80000000)
+ 	{
+@@ -3451,7 +3455,7 @@
+ 	/* similar to get_ix_int */
+ 	const uchar *cp = (const uchar *) *xpp;
+ 
+-	*ulp = (unsigned)(*cp++ << 24);
++	*ulp = (unsigned)(*cp++) << 24;
+ 	*ulp |= (*cp++ << 16);
+ 	*ulp |= (*cp++ << 8);
+ 	*ulp |= *cp;
diff --git a/projects/gdal/project.yaml b/projects/gdal/project.yaml
index d0bbfe4..89fc406 100644
--- a/projects/gdal/project.yaml
+++ b/projects/gdal/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://gdal.org"
-language: c++
 primary_contact: "even.rouault@gmail.com"
 auto_ccs:
   - "schwehr@gmail.com"
@@ -12,4 +11,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/OSGeo/gdal'
diff --git a/projects/gdk-pixbuf/Dockerfile b/projects/gdk-pixbuf/Dockerfile
deleted file mode 100644
index fdee83f..0000000
--- a/projects/gdk-pixbuf/Dockerfile
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2018 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y python3-pip gtk-doc-tools libffi-dev
-RUN pip3 install meson==0.55.3 ninja
-
-RUN git clone --depth 1 https://gitlab.gnome.org/GNOME/gdk-pixbuf.git
-ADD https://ftp.gnome.org/pub/gnome/sources/glib/2.64/glib-2.64.2.tar.xz $SRC
-RUN tar xvJf $SRC/glib-2.64.2.tar.xz 
-
-RUN git clone --depth 1 https://github.com/glennrp/libpng.git && \
-    git clone --depth 1 https://github.com/MozillaSecurity/fuzzdata.git && \
-    mkdir corpus && \
-    find $SRC/gdk-pixbuf/tests/ \( -name '*.jpeg' -o -name '*.jpg' -o -name '*.png' \) -exec cp -v '{}' corpus/ ';' && \
-    find $SRC/libpng -name "*.png" | grep -v crashers | xargs cp -t corpus/ && \
-    mv $SRC/fuzzdata/samples/gif/*.gif corpus/ && \
-    zip -q $SRC/gdk-pixbuf_seed_corpus.zip corpus/* && \
-    rm -rf libpng fuzzdata corpus
-    
-ADD https://raw.githubusercontent.com/google/fuzzing/master/dictionaries/png.dict $SRC/png.dict
-ADD https://raw.githubusercontent.com/google/fuzzing/master/dictionaries/jpeg.dict $SRC/jpeg.dict
-ADD https://raw.githubusercontent.com/google/fuzzing/master/dictionaries/gif.dict $SRC/gif.dict
-RUN awk 1 $SRC/*.dict > $SRC/gdk-pixbuf.dict && \
-    rm -f $SRC/png.dict $SRC/jpeg.dict $SRC/gif.dict
-
-WORKDIR $SRC/gdk-pixbuf
-COPY targets $SRC/fuzz
-COPY build.sh $SRC/
diff --git a/projects/gdk-pixbuf/build.sh b/projects/gdk-pixbuf/build.sh
deleted file mode 100755
index 45b2967..0000000
--- a/projects/gdk-pixbuf/build.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2018 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-PREFIX=$WORK/prefix
-mkdir -p $PREFIX
-
-export PKG_CONFIG="`which pkg-config` --static"
-export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
-export PATH=$PREFIX/bin:$PATH
-
-BUILD=$WORK/build
-
-rm -rf $WORK/*
-rm -rf $BUILD
-mkdir -p $BUILD
-
-# Build glib
-pushd $SRC/glib-2.64.2
-meson \
-    --prefix=$PREFIX \
-    --libdir=lib \
-    --default-library=static \
-    -Db_lundef=false \
-    -Doss_fuzz=enabled \
-    -Dlibmount=disabled \
-    -Dinternal_pcre=true \
-    _builddir
-ninja -C _builddir
-ninja -C _builddir install
-popd
-
-# Build gdk-pixbuf
-pushd $SRC/gdk-pixbuf
-meson \
-    --prefix=$PREFIX \
-    --libdir=lib \
-    --default-library=static \
-    -Dintrospection=disabled \
-    -Dbuiltin_loaders='all' \
-    _builddir
-ninja -C _builddir
-ninja -C _builddir install
-popd
-
-mv $SRC/{*.zip,*.dict} $OUT
-
-if [ ! -f "${OUT}/gdk-pixbuf_seed_corpus.zip" ]; then
-  echo "missing seed corpus"
-  exit 1
-fi
-
-if [ ! -f "${OUT}/gdk-pixbuf.dict" ]; then
-  echo "missing dictionary"
-  exit 1
-fi
-
-PREDEPS_LDFLAGS="-Wl,-Bdynamic -ldl -lm -lc -pthread -lrt -lpthread"
-DEPS="gmodule-2.0 glib-2.0 gio-2.0 gobject-2.0 gdk-pixbuf-2.0"
-BUILD_CFLAGS="$CFLAGS `pkg-config --static --cflags $DEPS`"
-BUILD_LDFLAGS="-Wl,-static `pkg-config --static --libs $DEPS`"
-
-fuzzers=$(find $SRC/fuzz/ -name "*_fuzzer.c")
-for f in $fuzzers; do
-  fuzzer_name=$(basename $f .c)
-  $CC $CFLAGS $BUILD_CFLAGS -c $f -o $WORK/${fuzzer_name}.o
-  $CXX $CXXFLAGS \
-    $WORK/${fuzzer_name}.o -o $OUT/${fuzzer_name} \
-    $PREDEPS_LDFLAGS \
-    $BUILD_LDFLAGS \
-    $LIB_FUZZING_ENGINE \
-    -Wl,-Bdynamic
-  ln -sf $OUT/gdk-pixbuf_seed_corpus.zip $OUT/${fuzzer_name}_seed_corpus.zip
-  ln -sf $OUT/gdk-pixbuf.dict $OUT/${fuzzer_name}.dict
-done
diff --git a/projects/gdk-pixbuf/project.yaml b/projects/gdk-pixbuf/project.yaml
deleted file mode 100644
index 90c4ed3..0000000
--- a/projects/gdk-pixbuf/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: https://gitlab.gnome.org/GNOME/gdk-pixbuf/
-language: c
-primary_contact: ebassi@gnome.org
-sanitizers:
-  - address
-  - undefined
-main_repo: 'https://gitlab.gnome.org/GNOME/gdk-pixbuf.git'
diff --git a/projects/gdk-pixbuf/targets/animation_fuzzer.c b/projects/gdk-pixbuf/targets/animation_fuzzer.c
deleted file mode 100644
index 755a7b8..0000000
--- a/projects/gdk-pixbuf/targets/animation_fuzzer.c
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stdint.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include "fuzzer_temp_file.h"
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    if (size < 1) {
-        return 0;
-    }
-    GError *error = NULL;
-    GdkPixbuf *pixbuf;
-    GdkPixbufAnimation *anim;
-
-    char *tmpfile = fuzzer_get_tmpfile(data, size);
-    anim = gdk_pixbuf_animation_new_from_file(tmpfile, &error);
-    if (error != NULL) {
-        g_clear_error(&error);
-        fuzzer_release_tmpfile(tmpfile);
-        return 0;
-    }
-
-    char *buf = (char *) calloc(size + 1, sizeof(char));
-    memcpy(buf, data, size);
-    buf[size] = '\0';
-
-    pixbuf = gdk_pixbuf_animation_get_static_image(anim);
-    if (pixbuf != NULL) {
-        unsigned int rot_amount = ((unsigned int) data[0]) % 4;
-        pixbuf = gdk_pixbuf_rotate_simple(pixbuf, rot_amount * 90);
-        gdk_pixbuf_set_option(pixbuf, buf, buf);
-        gdk_pixbuf_get_pixels(pixbuf);
-        gdk_pixbuf_get_width(pixbuf);
-        gdk_pixbuf_get_height(pixbuf);
-        g_object_unref(pixbuf);
-    }
-
-    free(buf);
-    g_object_unref(anim);
-    fuzzer_release_tmpfile(tmpfile);
-    return 0;
-}
diff --git a/projects/gdk-pixbuf/targets/fuzzer_temp_file.h b/projects/gdk-pixbuf/targets/fuzzer_temp_file.h
deleted file mode 100644
index 22ff248..0000000
--- a/projects/gdk-pixbuf/targets/fuzzer_temp_file.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2018 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Adapter utility from fuzzer input to a temporary file, for fuzzing APIs that
-// require a file instead of an input buffer.
-
-#ifndef FUZZER_TEMP_FILE_H_
-#define FUZZER_TEMP_FILE_H_
-
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-// Pure-C interface for creating and cleaning up temporary files.
-
-static char *fuzzer_get_tmpfile(const uint8_t *data, size_t size) {
-  char *filename_buffer = strdup("/tmp/generate_temporary_file.XXXXXX");
-  if (!filename_buffer) {
-    perror("Failed to allocate file name buffer.");
-    abort();
-  }
-  const int file_descriptor = mkstemp(filename_buffer);
-  if (file_descriptor < 0) {
-    perror("Failed to make temporary file.");
-    abort();
-  }
-  FILE *file = fdopen(file_descriptor, "wb");
-  if (!file) {
-    perror("Failed to open file descriptor.");
-    close(file_descriptor);
-    abort();
-  }
-  const size_t bytes_written = fwrite(data, sizeof(uint8_t), size, file);
-  if (bytes_written < size) {
-    close(file_descriptor);
-    fprintf(stderr, "Failed to write all bytes to file (%zu out of %zu)",
-            bytes_written, size);
-    abort();
-  }
-  fclose(file);
-  return filename_buffer;
-}
-
-static void fuzzer_release_tmpfile(char *filename) {
-  if (unlink(filename) != 0) {
-    perror("WARNING: Failed to delete temporary file.");
-  }
-  free(filename);
-}
-
-// C++ RAII object for creating temporary files.
-
-#ifdef __cplusplus
-class FuzzerTemporaryFile {
-public:
-  FuzzerTemporaryFile(const uint8_t *data, size_t size)
-      : filename_(fuzzer_get_tmpfile(data, size)) {}
-
-  ~FuzzerTemporaryFile() { fuzzer_release_tmpfile(filename_); }
-
-  const char *filename() const { return filename_; }
-
-private:
-  char *filename_;
-};
-#endif
-
-#endif // FUZZER_TEMP_FILE_H_
diff --git a/projects/gdk-pixbuf/targets/pixbuf_cons_fuzzer.c b/projects/gdk-pixbuf/targets/pixbuf_cons_fuzzer.c
deleted file mode 100644
index c1ba15d..0000000
--- a/projects/gdk-pixbuf/targets/pixbuf_cons_fuzzer.c
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stdint.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#define WIDTH 10
-#define HEIGHT 20
-#define ROWSTRIDE (WIDTH * 4)
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    if (!(size >= WIDTH * HEIGHT * 4)) {
-        return 0;
-    }
-    const gchar *profile;
-    GdkPixbuf *pixbuf, *tmp;
-    GBytes *bytes;
-    bytes = g_bytes_new_static(data, size);
-    pixbuf = g_object_new(GDK_TYPE_PIXBUF,
-            "width", WIDTH,
-            "height", HEIGHT,
-            "rowstride", ROWSTRIDE,
-            "bits-per-sample", 8,"n-channels", 3,
-            "has-alpha", FALSE,
-            "pixel-bytes", bytes,
-            NULL);
-    if (pixbuf == NULL) {
-        return 0;
-    }
-    gdk_pixbuf_scale(pixbuf, pixbuf,
-            0, 0, 
-            gdk_pixbuf_get_width(pixbuf) / 4, 
-            gdk_pixbuf_get_height(pixbuf) / 4,
-            0, 0, 0.5, 0.5,
-            GDK_INTERP_NEAREST);
-    unsigned int rot_amount = ((unsigned int) data[0]) % 4;
-    tmp = gdk_pixbuf_rotate_simple(pixbuf, rot_amount * 90);
-    tmp = gdk_pixbuf_flip(pixbuf, TRUE);
-    tmp = gdk_pixbuf_composite_color_simple(pixbuf,
-            gdk_pixbuf_get_width(pixbuf) / 4, 
-            gdk_pixbuf_get_height(pixbuf) / 4,
-            GDK_INTERP_NEAREST,
-            128,
-            8,
-            G_MAXUINT32,
-            G_MAXUINT32/2);
-
-    char *buf = (char *) calloc(size + 1, sizeof(char));
-    memcpy(buf, data, size);
-    buf[size] = '\0';
-
-    gdk_pixbuf_set_option(pixbuf, buf, buf);
-    profile = gdk_pixbuf_get_option(pixbuf, buf);
-    tmp = gdk_pixbuf_new_from_data(gdk_pixbuf_get_pixels(pixbuf),
-            GDK_COLORSPACE_RGB,
-            FALSE,
-            gdk_pixbuf_get_bits_per_sample(pixbuf),
-            gdk_pixbuf_get_width(pixbuf), 
-            gdk_pixbuf_get_height(pixbuf),
-            gdk_pixbuf_get_rowstride(pixbuf),
-            NULL,
-            NULL);
-    tmp = gdk_pixbuf_flip(tmp, TRUE);
-
-    free(buf);
-    g_object_unref(pixbuf);
-    g_object_unref(tmp);
-    return 0;
-}
diff --git a/projects/gdk-pixbuf/targets/pixbuf_file_fuzzer.c b/projects/gdk-pixbuf/targets/pixbuf_file_fuzzer.c
deleted file mode 100644
index c772311..0000000
--- a/projects/gdk-pixbuf/targets/pixbuf_file_fuzzer.c
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stdint.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include "fuzzer_temp_file.h"
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    if (size < 1) {
-        return 0;
-    }
-    GdkPixbuf *pixbuf;
-    GError *error = NULL;
-
-    char *tmpfile = fuzzer_get_tmpfile(data, size);
-    pixbuf = gdk_pixbuf_new_from_file(tmpfile, &error);
-    if (error != NULL) {
-        g_clear_error(&error);
-        fuzzer_release_tmpfile(tmpfile);
-        return 0;
-    }
-
-    char *buf = (char *) calloc(size + 1, sizeof(char));
-    memcpy(buf, data, size);
-    buf[size] = '\0';
-
-    gdk_pixbuf_get_width(pixbuf);
-    gdk_pixbuf_get_height(pixbuf);
-    gdk_pixbuf_get_bits_per_sample(pixbuf);
-    gdk_pixbuf_scale(pixbuf, pixbuf,
-            0, 0, 
-            gdk_pixbuf_get_width(pixbuf) / 4, 
-            gdk_pixbuf_get_height(pixbuf) / 4,
-            0, 0, 0.5, 0.5,
-            GDK_INTERP_NEAREST);
-    unsigned int rot_amount = ((unsigned int) data[0]) % 4;
-    pixbuf = gdk_pixbuf_rotate_simple(pixbuf, rot_amount * 90);
-    gdk_pixbuf_set_option(pixbuf, buf, buf);
-    gdk_pixbuf_get_option(pixbuf, buf);
-
-    free(buf);
-    g_clear_object(&pixbuf);
-    fuzzer_release_tmpfile(tmpfile);
-    return 0;
-}
diff --git a/projects/gdk-pixbuf/targets/pixbuf_scale_fuzzer.c b/projects/gdk-pixbuf/targets/pixbuf_scale_fuzzer.c
deleted file mode 100644
index 0a96b69..0000000
--- a/projects/gdk-pixbuf/targets/pixbuf_scale_fuzzer.c
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stdint.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include "fuzzer_temp_file.h"
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    if (size < 1) {
-        return 0;
-    }
-    GError *error = NULL;
-    GdkPixbuf *pixbuf;
-
-    char *tmpfile = fuzzer_get_tmpfile(data, size);
-    pixbuf = gdk_pixbuf_new_from_file_at_scale(tmpfile, 1, size, TRUE, &error);
-    g_clear_error(&error);
-    pixbuf = gdk_pixbuf_new_from_file_at_scale(tmpfile, 1, size, FALSE, &error);
-    if (pixbuf != NULL) {
-        g_clear_object(&pixbuf);
-    } else {
-        g_clear_error(&error);
-    }
-    fuzzer_release_tmpfile(tmpfile);
-    return 0;
-}
diff --git a/projects/gdk-pixbuf/targets/stream_fuzzer.c b/projects/gdk-pixbuf/targets/stream_fuzzer.c
deleted file mode 100644
index 64e7103..0000000
--- a/projects/gdk-pixbuf/targets/stream_fuzzer.c
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stdint.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include "fuzzer_temp_file.h"
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    GError *error = NULL;
-    GdkPixbuf *pixbuf;
-    GFile *file;
-    GInputStream *stream;
-
-    char *tmpfile = fuzzer_get_tmpfile(data, size);
-    file = g_file_new_for_path(tmpfile);
-    stream = (GInputStream *) g_file_read(file, NULL, &error);
-    if (error != NULL) {
-        g_clear_error(&error);
-        g_object_unref(file);
-        fuzzer_release_tmpfile(tmpfile);
-        return 0;
-    }
-
-    pixbuf = gdk_pixbuf_new_from_stream(stream, NULL, &error);
-    if (pixbuf != NULL) {
-        g_object_unref(pixbuf);
-    }
-
-    g_clear_error(&error);
-    g_object_unref(stream);
-    g_object_unref(file);
-    fuzzer_release_tmpfile(tmpfile);
-    return 0;
-}
diff --git a/projects/gfwx/Dockerfile b/projects/gfwx/Dockerfile
index 30a9bb7..3344848 100644
--- a/projects/gfwx/Dockerfile
+++ b/projects/gfwx/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER fyffe@google.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 https://github.com/guidovranken/gfwx-fuzzers.git gfwx-fuzzers
 WORKDIR gfwx-fuzzers
diff --git a/projects/gfwx/project.yaml b/projects/gfwx/project.yaml
index 5ab07b1..cba2965 100644
--- a/projects/gfwx/project.yaml
+++ b/projects/gfwx/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.gfwx.org/"
-language: c++
 primary_contact: "fyffe@google.com"
 sanitizers:
  - address
diff --git a/projects/ghostscript/Dockerfile b/projects/ghostscript/Dockerfile
index c21bb87..c4cdbd9 100644
--- a/projects/ghostscript/Dockerfile
+++ b/projects/ghostscript/Dockerfile
@@ -15,14 +15,14 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER skau@google.com
 
-RUN apt-get update && apt-get install -y autoconf zlibc libtool liblcms2-dev libpng-dev
+RUN apt-get update && apt-get install -y autoconf zlibc libtool liblcms2-dev libpng-dev libtiff-dev
 RUN git clone --branch branch-2.2 --single-branch --depth 1 https://github.com/apple/cups.git cups
-RUN git clone --branch VER-2-10-1 --single-branch --depth 1 https://git.savannah.gnu.org/git/freetype/freetype2.git freetype
+RUN git clone --branch VER-2-10-1 --single-branch --depth 1 https://git.savannah.nongnu.org/git/freetype/freetype2.git freetype
 RUN git clone --single-branch --depth 1 git://git.ghostscript.com/ghostpdl.git ghostpdl
+
 RUN mkdir ghostpdl/fuzz
+COPY gstoraster_fuzzer.cc ghostpdl/fuzz
 
-WORKDIR ghostpdl
-
-COPY gstoraster_fuzzer.cc $SRC/
 COPY build.sh $SRC/
diff --git a/projects/ghostscript/build.sh b/projects/ghostscript/build.sh
index b74772f..11ca104 100755
--- a/projects/ghostscript/build.sh
+++ b/projects/ghostscript/build.sh
@@ -16,7 +16,7 @@
 ################################################################################
 
 # Build CUPS
-pushd $SRC/cups
+pushd cups
 # Fix bad line
 sed -i '2110s/\(\s\)f->value/\1(int)f->value/' cups/ppd-cache.c
 
@@ -29,12 +29,14 @@
 install -m755 cups-config "$WORK"/cups-config
 popd
 
+cd ghostpdl
 rm -rf cups/libs || die
 rm -rf freetype || die
 rm -rf libpng || die
+rm -rf tiff || die
 rm -rf zlib || die
 
-mv $SRC/freetype freetype
+mv ../freetype freetype
 
 CUPSCONFIG="$WORK/cups-config"
 CUPS_CFLAGS=$($CUPSCONFIG --cflags)
@@ -42,7 +44,7 @@
 CUPS_LIBS=$($CUPSCONFIG --image --libs)
 export CXXFLAGS="$CXXFLAGS $CUPS_CFLAGS"
 
-CPPFLAGS="${CPPFLAGS:-} $CUPS_CFLAGS -DPACIFY_VALGRIND" ./autogen.sh \
+CPPFLAGS="${CPPFLAGS:-} $CUPS_CFLAGS" ./autogen.sh \
   CUPSCONFIG=$CUPSCONFIG \
   --enable-freetype --enable-fontconfig \
   --enable-cups --with-ijs --with-jbig2dec \
@@ -50,7 +52,7 @@
 make -j$(nproc) libgs
 
 $CXX $CXXFLAGS $CUPS_LDFLAGS -std=c++11 -I. \
-    $SRC/gstoraster_fuzzer.cc \
+    fuzz/gstoraster_fuzzer.cc \
     -o "$OUT/gstoraster_fuzzer" \
     -Wl,-rpath='$ORIGIN' \
     $CUPS_LIBS \
diff --git a/projects/ghostscript/gstoraster_fuzzer.cc b/projects/ghostscript/gstoraster_fuzzer.cc
index 897e99a..8bc457b 100644
--- a/projects/ghostscript/gstoraster_fuzzer.cc
+++ b/projects/ghostscript/gstoraster_fuzzer.cc
@@ -1,20 +1,6 @@
-/*
-# Copyright 2019 The Chromium OS Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-*/
+// Copyright 2019 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
 
 #include <base/gserrors.h>
 #include <psi/iapi.h>
@@ -42,7 +28,7 @@
 	return to_copy;
 }
 
-static int gs_stdnull(void *inst, const char *buf, int len)
+static int gs_stdout(void *inst, const char *buf, int len)
 {
 	/* Just discard everything. */
 	return len;
@@ -55,22 +41,18 @@
 
 	/* Mostly stolen from cups-filters gstoraster. */
 	char *args[] = {
-		"gs",
 		"-K1048576",
 		"-r200x200",
-		"-sBandListStorage=memory",
-		"-dMaxBitmap=0",
-		"-dBufferSpace=450k",
 		"-dMediaPosition=1",
 		"-dcupsColorSpace=1", /* RGB */
 		"-dQUIET",
-		"-dSAFER",
+		"-dPARANOIDSAFER",
 		"-dNOPAUSE",
 		"-dBATCH",
 		"-dNOINTERPOLATE",
 		"-dNOMEDIAATTRS",
-		"-sstdout=%%stderr",
-		"-sOutputFile=/dev/null",
+		"-sstdout=%stderr",
+		"-sOutputFile=%stdout",
 		"-sDEVICE=cups",
 		"-_",
 	};
@@ -86,7 +68,7 @@
 		return ret;
 	}
 
-	gsapi_set_stdio(gs, gs_stdin, gs_stdnull, gs_stdnull);
+	gsapi_set_stdio(gs, gs_stdin, gs_stdout, NULL /* stderr */);
 	ret = gsapi_set_arg_encoding(gs, GS_ARG_ENCODING_UTF8);
 	if (ret < 0) {
 		fprintf(stderr, "gsapi_set_arg_encoding: error %d\n", ret);
diff --git a/projects/ghostscript/project.yaml b/projects/ghostscript/project.yaml
index d1f91d4..39a973b 100644
--- a/projects/ghostscript/project.yaml
+++ b/projects/ghostscript/project.yaml
@@ -1,14 +1,7 @@
 homepage: "https://ghostscript.com"
-language: c++
 primary_contact: "skau@google.com"
 auto_ccs:
   - "henry.stiles@artifex.com"
   - "skau@google.com"
-  - "sebastian.rasmussen@artifex.com"
-  - "julians.artifex@gmail.com"
-  - "chris.liddell@artifex.com"
-  - "kdlee@chromium.org"
 sanitizers:
   - address
-  - memory
-main_repo: 'git://git.ghostscript.com/ghostpdl.git'
diff --git a/projects/giflib/Dockerfile b/projects/giflib/Dockerfile
index 382ee81..0de6c7a 100644
--- a/projects/giflib/Dockerfile
+++ b/projects/giflib/Dockerfile
@@ -15,9 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update -y && \
-    apt-get install -y make autoconf automake libtool wget zlib1g-dev \
-    binutils cmake ninja-build liblzma-dev libz-dev pkg-config
+MAINTAINER esr@thyrsus.com
+RUN apt-get update && apt-get install -y make autoconf automake libtool wget zlib1g-dev
+RUN apt-get update && \
+apt-get install -y  libtool ninja-build cmake
 RUN git clone --depth=1 https://git.code.sf.net/p/giflib/code $SRC/giflib-code
 RUN git clone --depth 1 https://github.com/google/libprotobuf-mutator.git
 RUN (mkdir LPM && cd LPM && cmake ../libprotobuf-mutator -GNinja -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON -DLIB_PROTO_MUTATOR_TESTING=OFF -DCMAKE_BUILD_TYPE=Release && ninja)
diff --git a/projects/giflib/project.yaml b/projects/giflib/project.yaml
index 48415c2..613be7f 100644
--- a/projects/giflib/project.yaml
+++ b/projects/giflib/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://giflib.sourceforge.net/"
-language: c++
 primary_contact: "esr@thyrsus.com"
 auto_ccs:
   - "vincent.ulitzsch@live.de"
diff --git a/projects/git/Dockerfile b/projects/git/Dockerfile
index 91c05e4..3dbe4c6 100644
--- a/projects/git/Dockerfile
+++ b/projects/git/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER steadmon@google.com
 RUN apt-get update && \
     apt-get install --no-install-recommends -y \
         cvs cvsps gettext libcgi-pm-perl libcurl4-gnutls-dev \
diff --git a/projects/git/build.sh b/projects/git/build.sh
index 8770a83..0a39a97 100755
--- a/projects/git/build.sh
+++ b/projects/git/build.sh
@@ -34,7 +34,7 @@
 zip -j $OUT/fuzz-pack-headers_seed_corpus.zip .git/objects/pack/*.pack.trimmed
 
 # build commit-graph corpus
-ASAN_OPTIONS=detect_leaks=0 ./git commit-graph write
+./git commit-graph write
 zip -j $OUT/fuzz-commit-graph_seed_corpus .git/objects/info/commit-graph
 
 # Mute stderr
diff --git a/projects/git/project.yaml b/projects/git/project.yaml
index 8203db6..4549fd0 100644
--- a/projects/git/project.yaml
+++ b/projects/git/project.yaml
@@ -1,9 +1,2 @@
 homepage: "https://git-scm.com"
-language: c++
 primary_contact: "steadmon@google.com"
-auto_ccs:
-  - "git-fuzz-reports@google.com"
-  - "emilyshaffer@google.com"
-  - "jonathantanmy@google.com"
-  - "jrn@google.com"
-main_repo: 'https://github.com/git/git'
diff --git a/projects/gitea/Dockerfile b/projects/gitea/Dockerfile
deleted file mode 100644
index 9403123..0000000
--- a/projects/gitea/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/go-gitea/gitea
-COPY build.sh $SRC/
-WORKDIR $SRC/gitea
diff --git a/projects/gitea/build.sh b/projects/gitea/build.sh
deleted file mode 100644
index a031afb..0000000
--- a/projects/gitea/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-compile_go_fuzzer code.gitea.io/gitea/tools FuzzMarkdownRenderRaw fuzz_markdown_render_raw gofuzz
-compile_go_fuzzer code.gitea.io/gitea/tools FuzzMarkupPostProcess fuzz_markup_post_process gofuzz
diff --git a/projects/gitea/project.yaml b/projects/gitea/project.yaml
deleted file mode 100644
index 8fcd31f..0000000
--- a/projects/gitea/project.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-homepage: "https://github.com/go-gitea/gitea"
-primary_contact: "security@gitea.io"
-auto_ccs :
-  - "adam@adalogics.com"
-  - "xiaolunwen@gmail.com"
-  - "lauris@nix.lv"
-  - "techknowlogick@gitea.io"
-  - "sapk@sapk.fr"
-  - "zeripath@gmail.com"
-  - "john.olheiser@gmail.com"
-  - "6543@obermui.de"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: "https://github.com/go-gitea/gitea"
diff --git a/projects/glib/Dockerfile b/projects/glib/Dockerfile
index 72449d5..a834934 100644
--- a/projects/glib/Dockerfile
+++ b/projects/glib/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER pdknsk@gmail.com
 RUN apt-get update && apt-get install -y python3-pip
 RUN pip3 install -U meson ninja
 RUN git clone --depth 1 https://gitlab.gnome.org/GNOME/glib
diff --git a/projects/glib/build.sh b/projects/glib/build.sh
index b0d8f39..4b4ac07 100755
--- a/projects/glib/build.sh
+++ b/projects/glib/build.sh
@@ -24,7 +24,7 @@
   -Doss_fuzz=enabled \
   -Db_lundef=false \
   -Ddefault_library=static \
-  -Dlibmount=disabled
+  -Dlibmount=false
 
 ninja -C $BUILD
 
diff --git a/projects/glib/project.yaml b/projects/glib/project.yaml
index 64889c8..90a03d0 100644
--- a/projects/glib/project.yaml
+++ b/projects/glib/project.yaml
@@ -1,5 +1,4 @@
-homepage: "https://gitlab.gnome.org/GNOME/glib/"
-language: c++
+homepage: "https://www.gnu.org/directory/glib.html"
 primary_contact: "bugzilla@tecnocode.co.uk"
 auto_ccs:
 - philip.withnall@gmail.com
@@ -10,4 +9,3 @@
 - undefined
 - memory
 help_url: https://gitlab.gnome.org/GNOME/glib/tree/master/fuzzing#how-to-reproduce-oss-fuzz-bugs-locally
-main_repo: 'https://gitlab.gnome.org/GNOME/glib'
diff --git a/projects/gnupg/Dockerfile b/projects/gnupg/Dockerfile
index 57dc905..02bc37e 100644
--- a/projects/gnupg/Dockerfile
+++ b/projects/gnupg/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER p.antoine@catenacyber.fr
 RUN apt-get update && apt-get install -y make autoconf automake libtool gettext bzip2 gnupg bison flex
 
 RUN git clone --depth 1 git://git.gnupg.org/libgpg-error.git libgpg-error
diff --git a/projects/gnupg/build.sh b/projects/gnupg/build.sh
index 846bc8d..a346c13 100755
--- a/projects/gnupg/build.sh
+++ b/projects/gnupg/build.sh
@@ -60,5 +60,13 @@
 
 # build fuzzers
 cd tests/fuzz
-# export fuzzers and other associated stuff
-cp fuzz_* $OUT/
+#export other associated stuff
+cp *.options $OUT/
+cp fuzz_*_seed_corpus.zip $OUT/
+
+ls fuzz_*.c | cut -d_ -f2 | cut -d. -f1 | while read target
+do
+    $CC $CFLAGS -DHAVE_CONFIG_H -I. -I../..  -I../../common -I../../g10 -c fuzz_$target.c -o fuzz_$target.o
+
+    $CXX $CXXFLAGS -std=c++11 -DHAVE_CONFIG_H fuzz_$target.o -o $OUT/fuzz_$target ../../g10/libgpg.a ../../kbx/libkeybox.a ../../common/libcommon.a ../../common/libgpgrl.a $LIB_FUZZING_ENGINE -lgcrypt -lgpg-error -lassuan -lnpth
+done
diff --git a/projects/gnupg/fuzz_decrypt.c b/projects/gnupg/fuzz_decrypt.c
index f92c15d..ebc7d7d 100644
--- a/projects/gnupg/fuzz_decrypt.c
+++ b/projects/gnupg/fuzz_decrypt.c
@@ -1,18 +1,3 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
 #include <stdint.h>
 #include <stddef.h>
 #include <stdlib.h>
@@ -20,7 +5,6 @@
 #include <stdbool.h>
 #include <ftw.h>
 
-#define INCLUDED_BY_MAIN_MODULE 1
 #include "config.h"
 #include "gpg.h"
 #include "../common/types.h"
diff --git a/projects/gnupg/fuzz_import.c b/projects/gnupg/fuzz_import.c
index a05f54a..e410fff 100644
--- a/projects/gnupg/fuzz_import.c
+++ b/projects/gnupg/fuzz_import.c
@@ -1,18 +1,3 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
 #include <stdint.h>
 #include <stddef.h>
 #include <stdlib.h>
@@ -20,7 +5,6 @@
 #include <stdbool.h>
 #include <ftw.h>
 
-#define INCLUDED_BY_MAIN_MODULE 1
 #include "config.h"
 #include "gpg.h"
 #include "../common/types.h"
diff --git a/projects/gnupg/fuzz_list.c b/projects/gnupg/fuzz_list.c
index d5a44ce..048eec1 100644
--- a/projects/gnupg/fuzz_list.c
+++ b/projects/gnupg/fuzz_list.c
@@ -1,18 +1,3 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
 #include <stdint.h>
 #include <stddef.h>
 #include <stdlib.h>
@@ -20,7 +5,6 @@
 #include <stdbool.h>
 #include <ftw.h>
 
-#define INCLUDED_BY_MAIN_MODULE 1
 #include "config.h"
 #include "gpg.h"
 #include "../common/types.h"
diff --git a/projects/gnupg/fuzz_verify.c b/projects/gnupg/fuzz_verify.c
index c32c1b7..f08ef0f 100644
--- a/projects/gnupg/fuzz_verify.c
+++ b/projects/gnupg/fuzz_verify.c
@@ -1,18 +1,3 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
 #include <stdint.h>
 #include <stddef.h>
 #include <stdlib.h>
@@ -20,7 +5,6 @@
 #include <stdbool.h>
 #include <ftw.h>
 
-#define INCLUDED_BY_MAIN_MODULE 1
 #include "config.h"
 #include "gpg.h"
 #include "../common/types.h"
diff --git a/projects/gnupg/project.yaml b/projects/gnupg/project.yaml
index c2c6ab2..48e8e08 100644
--- a/projects/gnupg/project.yaml
+++ b/projects/gnupg/project.yaml
@@ -1,4 +1,2 @@
 homepage: "https://www.gnupg.org"
-language: c++
 primary_contact: "p.antoine@catenacyber.fr"
-main_repo: 'git://git.gnupg.org/gnupg.git'
diff --git a/projects/gnutls/Dockerfile b/projects/gnutls/Dockerfile
index 4630429..a2182ee 100644
--- a/projects/gnutls/Dockerfile
+++ b/projects/gnutls/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER alex.gaynor@gmail.com
 RUN apt-get update && apt-get install -y \
  make \
  pkg-config \
diff --git a/projects/gnutls/project.yaml b/projects/gnutls/project.yaml
index 8d9a6a2..87928f7 100644
--- a/projects/gnutls/project.yaml
+++ b/projects/gnutls/project.yaml
@@ -1,7 +1,7 @@
 homepage: "https://www.gnutls.org"
-language: c++
-primary_contact: "daiki.ueno@gmail.com"
+primary_contact: "n.mavrogiannopoulos@gmail.com"
 auto_ccs:
+  - "daiki.ueno@gmail.com"
   - "rockdaboot@gmail.com"
   - "nisse@google.com"
   - "anderjuaristi.cictg@gmail.com"
@@ -11,4 +11,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://gitlab.com/gnutls/gnutls.git'
diff --git a/projects/go-attestation/Dockerfile b/projects/go-attestation/Dockerfile
index 4e1651c..ff24e92 100644
--- a/projects/go-attestation/Dockerfile
+++ b/projects/go-attestation/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER bweeks@google.com
 
 RUN go get -u -d github.com/google/go-attestation/...
 
diff --git a/projects/go-attestation/build.sh b/projects/go-attestation/build.sh
index 7130cba..1aec572 100755
--- a/projects/go-attestation/build.sh
+++ b/projects/go-attestation/build.sh
@@ -15,13 +15,20 @@
 #
 ################################################################################
 
+# Based on the function from oss-fuzz/projects/golang/build.sh script.
+function compile_fuzzer {
+  package=$1
+  function=$2
+  fuzzer=$3
 
+   # Instrument all Go files relevant to this fuzzer
+  go-fuzz-build -libfuzzer -func $function -o $fuzzer.a $package
 
-compile_go_fuzzer github.com/google/go-attestation/attest FuzzParseEventLog \
-    parse_event_log_fuzzer
-compile_go_fuzzer github.com/google/go-attestation/attest FuzzParseAKPublic12 \
-    parse_ak_public12_fuzzer
-compile_go_fuzzer github.com/google/go-attestation/attest FuzzParseAKPublic20 \
-    parse_ak_public20_fuzzer
-compile_go_fuzzer github.com/google/go-attestation/attest FuzzParseEKCertificate \
-    parse_ek_certificate_fuzzer
+   # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary
+  $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o $OUT/$fuzzer
+}
+
+compile_fuzzer github.com/google/go-attestation/attest FuzzParseEventLog parse_event_log_fuzzer
+compile_fuzzer github.com/google/go-attestation/attest FuzzParseAKPublic12 parse_ak_public12_fuzzer
+compile_fuzzer github.com/google/go-attestation/attest FuzzParseAKPublic20 parse_ak_public20_fuzzer
+compile_fuzzer github.com/google/go-attestation/attest FuzzParseEKCertificate parse_ek_certificate_fuzzer
diff --git a/projects/go-attestation/project.yaml b/projects/go-attestation/project.yaml
index 87355e3..3dd47d8 100644
--- a/projects/go-attestation/project.yaml
+++ b/projects/go-attestation/project.yaml
@@ -8,4 +8,3 @@
 sanitizers:
   - address
 language: go
-main_repo: 'https://github.com/google/go-attestation'
diff --git a/projects/go-coredns/Dockerfile b/projects/go-coredns/Dockerfile
deleted file mode 100644
index 7991879..0000000
--- a/projects/go-coredns/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-ENV GO111MODULE=on
-RUN git clone --depth 1  https://github.com/coredns/coredns $GOPATH/src/github.com/coredns/coredns
-
-COPY build.sh $SRC/
-WORKDIR $SRC/
diff --git a/projects/go-coredns/build.sh b/projects/go-coredns/build.sh
deleted file mode 100755
index 50e4234..0000000
--- a/projects/go-coredns/build.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Same as usual except for added -tags gofuzz.
-
-cd $GOPATH/src/github.com/coredns/coredns
-
-#make
-ls plugin/*/fuzz.go | while read target
-do
-    fuzzed_plugin=`echo $target | cut -d'/' -f 2`
-    compile_go_fuzzer github.com/coredns/coredns/plugin/$fuzzed_plugin Fuzz fuzz_plugin_$fuzzed_plugin gofuzz
-done
-
-compile_go_fuzzer github.com/coredns/coredns/test Fuzz fuzz_core gofuzz
diff --git a/projects/go-coredns/project.yaml b/projects/go-coredns/project.yaml
deleted file mode 100644
index da4504b..0000000
--- a/projects/go-coredns/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://coredns.io"
-primary_contact: "security@coredns.io"
-auto_ccs :
-- "miek@miek.nl"
-- "p.antoine@catenacyber.fr"
-language: go
-fuzzing_engines:
-- libfuzzer
-sanitizers:
-- address
diff --git a/projects/go-dns/Dockerfile b/projects/go-dns/Dockerfile
deleted file mode 100644
index a5576e7..0000000
--- a/projects/go-dns/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN go get -t github.com/miekg/dns
-
-COPY build.sh $SRC/
-WORKDIR $SRC/
diff --git a/projects/go-dns/build.sh b/projects/go-dns/build.sh
deleted file mode 100755
index d274ad9..0000000
--- a/projects/go-dns/build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-# Same as usual except for added -tags fuzz.
-compile_go_fuzzer github.com/miekg/dns FuzzNewRR fuzz_newrr fuzz
-compile_go_fuzzer github.com/miekg/dns Fuzz fuzz_msg_unpack fuzz
diff --git a/projects/go-dns/project.yaml b/projects/go-dns/project.yaml
deleted file mode 100644
index 929485c..0000000
--- a/projects/go-dns/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/miekg/dns"
-primary_contact: "miek@miek.nl"
-auto_ccs:
-  - "me+google@tomthorogood.co.uk"
-  - "p.antoine@catenacyber.fr"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: "https://github.com/miekg/dns"
diff --git a/projects/go-ethereum/Dockerfile b/projects/go-ethereum/Dockerfile
deleted file mode 100644
index 8323922..0000000
--- a/projects/go-ethereum/Dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone --single-branch --depth=1 https://github.com/ethereum/go-ethereum $GOPATH/src/github.com/ethereum/go-ethereum 
-RUN (cd $GOPATH/src/github.com/ethereum/go-ethereum && go mod download)
-
-RUN cp $GOPATH/src/github.com/ethereum/go-ethereum/oss-fuzz.sh $SRC/build.sh
-# Enable this for easier local testing / repro
-#ADD build.sh $SRC/build.sh
-
-WORKDIR $SRC/
-
diff --git a/projects/go-ethereum/project.yaml b/projects/go-ethereum/project.yaml
deleted file mode 100644
index a4c8532..0000000
--- a/projects/go-ethereum/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/ethereum/go-ethereum"
-primary_contact: "peter@ethereum.org"
-auto_ccs :
-  - "fjl@ethereum.org"
-  - "martin.swende@ethereum.org"
-  - "marius.vanderwijden@ethereum.org"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/ethereum/go-ethereum'
diff --git a/projects/go-json-iterator/Dockerfile b/projects/go-json-iterator/Dockerfile
index 5d4cf02..eef259a 100644
--- a/projects/go-json-iterator/Dockerfile
+++ b/projects/go-json-iterator/Dockerfile
@@ -15,8 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/json-iterator/go json-iterator
+MAINTAINER taowen@gmail.com
+RUN go get github.com/json-iterator/go
 
-COPY fuzz_json.go $SRC/json-iterator/
+RUN mkdir fuzz
+COPY fuzz_json.go fuzz/
 COPY build.sh $SRC/
-WORKDIR $SRC/json-iterator/
+WORKDIR fuzz
diff --git a/projects/go-json-iterator/build.sh b/projects/go-json-iterator/build.sh
index f247b24..c8edbc3 100755
--- a/projects/go-json-iterator/build.sh
+++ b/projects/go-json-iterator/build.sh
@@ -15,5 +15,17 @@
 #
 ################################################################################
 
+# build target function
+function compile_fuzzer {
+  path=$1
+  function=$2
+  fuzzer=$3
 
-compile_go_fuzzer github.com/json-iterator/go Fuzz fuzz_json
+   # Instrument all Go files relevant to this fuzzer
+  go-fuzz-build -libfuzzer -func $function -o $fuzzer.a $path
+
+   # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary
+  $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o $OUT/$fuzzer
+}
+
+compile_fuzzer . Fuzz fuzz_json
diff --git a/projects/go-json-iterator/fuzz_json.go b/projects/go-json-iterator/fuzz_json.go
index e5236be..c057a63 100644
--- a/projects/go-json-iterator/fuzz_json.go
+++ b/projects/go-json-iterator/fuzz_json.go
@@ -2,11 +2,12 @@
 // Use of this source code is governed by Apache 2 LICENSE.
 // Modified from original file https://github.com/dvyukov/go-fuzz-corpus/blob/master/json/json.go
 
-package jsoniter
+package jsonfuzz
 
 import (
 	"encoding/json"
 	"fmt"
+	jsoniter "github.com/json-iterator/go"
 	"reflect"
 )
 
@@ -20,7 +21,7 @@
 		func() interface{} { return new(S) },
 	} {
 		v := ctor()
-		if ConfigCompatibleWithStandardLibrary.Unmarshal(data, v) != nil {
+		if jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(data, v) != nil {
 			continue
 		}
 		score = 1
@@ -35,12 +36,12 @@
 			panic("not equal")
 		}
 
-		data1, err := ConfigCompatibleWithStandardLibrary.Marshal(v)
+		data1, err := jsoniter.ConfigCompatibleWithStandardLibrary.Marshal(v)
 		if err != nil {
 			panic(err)
 		}
 		v1 := ctor()
-		if ConfigCompatibleWithStandardLibrary.Unmarshal(data1, v1) != nil {
+		if jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(data1, v1) != nil {
 			continue
 		}
 		if !reflect.DeepEqual(v, v1) {
@@ -84,9 +85,9 @@
 }
 
 func (m *Marshaller) MarshalJSON() ([]byte, error) {
-	return ConfigCompatibleWithStandardLibrary.Marshal(m.v)
+	return jsoniter.ConfigCompatibleWithStandardLibrary.Marshal(m.v)
 }
 
 func (m *Marshaller) UnmarshalJSON(data []byte) error {
-	return ConfigCompatibleWithStandardLibrary.Unmarshal(data, &m.v)
+	return jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(data, &m.v)
 }
diff --git a/projects/go-redis/Dockerfile b/projects/go-redis/Dockerfile
deleted file mode 100644
index b0ad177..0000000
--- a/projects/go-redis/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/go-redis/redis redis
-COPY build.sh $SRC/
-WORKDIR $SRC/redis
-
diff --git a/projects/go-redis/build.sh b/projects/go-redis/build.sh
deleted file mode 100644
index e297cd3..0000000
--- a/projects/go-redis/build.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#github.com/go-redis/redis/fuzz is not a module, so needs local build
-compile_go_fuzzer ./fuzz Fuzz fuzz gofuzz
diff --git a/projects/go-redis/project.yaml b/projects/go-redis/project.yaml
deleted file mode 100644
index b434a04..0000000
--- a/projects/go-redis/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/go-redis/redis"
-main_repo: "https://github.com/go-redis/redis"
-primary_contact: "vladimir.webdev@gmail.com"
-auto_ccs :
-  - "adam@adalogics.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
diff --git a/projects/go-sftp/Dockerfile b/projects/go-sftp/Dockerfile
deleted file mode 100644
index 0269d8e..0000000
--- a/projects/go-sftp/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/pkg/sftp
-
-COPY build.sh $SRC/
-WORKDIR $SRC/sftp
diff --git a/projects/go-sftp/build.sh b/projects/go-sftp/build.sh
deleted file mode 100755
index 0e8460f..0000000
--- a/projects/go-sftp/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-compile_go_fuzzer . Fuzz fuzz_sftp
diff --git a/projects/go-sftp/project.yaml b/projects/go-sftp/project.yaml
deleted file mode 100644
index 5f0d4e9..0000000
--- a/projects/go-sftp/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/pkg/sftp"
-primary_contact: "nicola.murino@gmail.com"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/pkg/sftp'
diff --git a/projects/go-snappy/Dockerfile b/projects/go-snappy/Dockerfile
deleted file mode 100644
index d6d08af..0000000
--- a/projects/go-snappy/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/golang/snappy
-
-COPY build.sh $SRC/
-COPY fuzz.go $SRC/snappy
-WORKDIR $SRC/snappy
diff --git a/projects/go-snappy/build.sh b/projects/go-snappy/build.sh
deleted file mode 100755
index 805eefb..0000000
--- a/projects/go-snappy/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-compile_go_fuzzer . FuzzRoundTrip fuzz_roundtrip gofuzz
-compile_go_fuzzer . FuzzDecode fuzz_decode gofuzz
diff --git a/projects/go-snappy/fuzz.go b/projects/go-snappy/fuzz.go
deleted file mode 100644
index 6722fd0..0000000
--- a/projects/go-snappy/fuzz.go
+++ /dev/null
@@ -1,33 +0,0 @@
-// +build gofuzz
-
-package snappy
-
-import (
-	"bytes"
-)
-
-func FuzzRoundTrip(data []byte) int {
-	if len(data) > 1234567 {
-		return 0
-	}
-	encoded := Encode(nil, data)
-	decoded, err := Decode(nil, encoded)
-	if err != nil {
-		panic("Error decoding snappy-encoded")
-	}
-	if !bytes.Equal(data, decoded) {
-		panic("Different result on roundtrip encode/decode")
-	}
-	return 1
-}
-
-func FuzzDecode(data []byte) int {
-	if n, _ := DecodedLen(data); n > 1234567 {
-		return 0
-	}
-	_, err := Decode(nil, data)
-	if err != nil {
-		return 0
-	}
-	return 1
-}
diff --git a/projects/go-snappy/project.yaml b/projects/go-snappy/project.yaml
deleted file mode 100644
index 8a732cc..0000000
--- a/projects/go-snappy/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/golang/snappy"
-primary_contact: "nigeltao@golang.org"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/golang/snappy'
diff --git a/projects/go-sqlite3/Dockerfile b/projects/go-sqlite3/Dockerfile
deleted file mode 100644
index f1b10e1..0000000
--- a/projects/go-sqlite3/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 http://github.com/mattn/go-sqlite3 $GOPATH/src/github.com/mattn/go-sqlite3
-
-COPY build.sh $SRC/
-WORKDIR $SRC/
diff --git a/projects/go-sqlite3/build.sh b/projects/go-sqlite3/build.sh
deleted file mode 100755
index 6efdb06..0000000
--- a/projects/go-sqlite3/build.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $GOPATH/src/github.com/mattn/go-sqlite3
-
-compile_go_fuzzer github.com/mattn/go-sqlite3/_example/fuzz FuzzOpenExec fuzz_open_exec
-
-# generate corpus
-go run _example/simple/simple.go
-echo -n -e "select id, name from foo\x00" > simple.fuzc
-cat foo.db >> simple.fuzc
-zip -r $OUT/fuzz_open_exec_seed_corpus.zip simple.fuzc
diff --git a/projects/go-sqlite3/project.yaml b/projects/go-sqlite3/project.yaml
deleted file mode 100644
index 11ef0b1..0000000
--- a/projects/go-sqlite3/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "http://mattn.github.io/go-sqlite3/"
-primary_contact: "mattn.jp@gmail.com"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/mattn/go-sqlite3/'
diff --git a/projects/golang-protobuf/Dockerfile b/projects/golang-protobuf/Dockerfile
index 1347a76..be337f8 100644
--- a/projects/golang-protobuf/Dockerfile
+++ b/projects/golang-protobuf/Dockerfile
@@ -15,11 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER dneil@google.com
 
 ENV GO111MODULE="on"
 ENV GOFUZZ111MODULE="on"
 
 RUN go get google.golang.org/protobuf/proto
-RUN git clone https://go.googlesource.com/protobuf $GOPATH/src/google.golang.org/protobuf
+RUN git clone https://go.googlesource.com/protobuf $SRC/protobuf
 COPY build.sh $SRC/
-WORKDIR $GOPATH/src/google.golang.org/protobuf
+WORKDIR $SRC/protobuf
diff --git a/projects/golang-protobuf/build.sh b/projects/golang-protobuf/build.sh
index ce1fc40..bd1da14 100755
--- a/projects/golang-protobuf/build.sh
+++ b/projects/golang-protobuf/build.sh
@@ -1,14 +1,19 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-. internal/fuzz/oss-fuzz-build.sh
+function compile_fuzzer {
+  path=$1
+  function=$2
+  fuzzer=$3
+
+   # Instrument all Go files relevant to this fuzzer
+  go-fuzz-build -libfuzzer -func $function -o $fuzzer.a $path
+
+   # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary
+  $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o $OUT/$fuzzer
+}
+
+for x in internal/fuzz/*; do
+  if [ -d $x/corpus ]; then
+    name=$(basename $x)
+    compile_fuzzer ./$x Fuzz $name
+    zip -jr $OUT/${name}_seed_corpus.zip $x/corpus
+  fi
+done
diff --git a/projects/golang-protobuf/project.yaml b/projects/golang-protobuf/project.yaml
index 7117b12..71ee2df 100644
--- a/projects/golang-protobuf/project.yaml
+++ b/projects/golang-protobuf/project.yaml
@@ -2,7 +2,6 @@
 primary_contact: "dneil@google.com"
 auto_ccs:
  - "joetsai@google.com"
- - "herbie@google.com"
 sanitizers:
  - address
 fuzzing_engines:
diff --git a/projects/golang/Dockerfile b/projects/golang/Dockerfile
index 1118ce4..bb59761 100644
--- a/projects/golang/Dockerfile
+++ b/projects/golang/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 
 RUN mkdir -p $GOPATH/src/github.com/dvyukov/ && \
     cd $GOPATH/src/github.com/dvyukov/ && \
diff --git a/projects/golang/build.sh b/projects/golang/build.sh
index 064378a..efcbcfa 100755
--- a/projects/golang/build.sh
+++ b/projects/golang/build.sh
@@ -1,25 +1,21 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
 function compile_fuzzer {
-  fuzzer=$(basename $1)
+    fuzzer=$(basename $1)
 
-  compile_go_fuzzer "github.com/dvyukov/go-fuzz-corpus/$fuzzer" Fuzz $fuzzer
+    # Instrument all Go files relevant to this fuzzer, compile and store in $fuzzer.a
+    go-fuzz-build -libfuzzer -o $fuzzer.a github.com/dvyukov/go-fuzz-corpus/$fuzzer
 
-  # Pack the seed corpus
-  zip -r $OUT/fuzzer-${fuzzer}_seed_corpus.zip \
-      $GOPATH/src/github.com/dvyukov/go-fuzz-corpus/$fuzzer/corpus
+    # Instrumented, compiled Go ($fuzzer.a) + libFuzzer = fuzzer binary
+    $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o fuzzer-$fuzzer
+
+    # Copy the fuzzer binary
+    cp fuzzer-$fuzzer $OUT
+
+    # Pack the seed corpus
+    zip -r fuzzer-${fuzzer}_seed_corpus.zip \
+        $GOPATH/src/github.com/dvyukov/go-fuzz-corpus/$fuzzer/corpus
+
+    # Copy the seed corpus
+    cp fuzzer-${fuzzer}_seed_corpus.zip $OUT
 }
 
 export -f compile_fuzzer
diff --git a/projects/golang/project.yaml b/projects/golang/project.yaml
index ed1e863..939f457 100644
--- a/projects/golang/project.yaml
+++ b/projects/golang/project.yaml
@@ -1,9 +1,9 @@
 homepage: "https://golang.org/"
-primary_contact: "golang-fuzz@googlegroups.com"
+primary_contact: "guidovranken@gmail.com"
 auto_ccs:
+ - "golang-fuzz@googlegroups.com"
  - "mmoroz@chromium.org"
  - "josharian@gmail.com"
- - "emmanuel@orijtech.com"
 language: go
 sanitizers:
  - address
diff --git a/projects/gonids/Dockerfile b/projects/gonids/Dockerfile
index 66e9a89..6ca5bd5 100644
--- a/projects/gonids/Dockerfile
+++ b/projects/gonids/Dockerfile
@@ -15,7 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN go get -t github.com/google/gonids
+MAINTAINER duane.security@gmail.com
+RUN go get github.com/google/gonids
 
 ADD https://rules.emergingthreats.net/open/suricata/emerging.rules.zip emerging.rules.zip
 
diff --git a/projects/gonids/build.sh b/projects/gonids/build.sh
index 590045f..e98d54c 100755
--- a/projects/gonids/build.sh
+++ b/projects/gonids/build.sh
@@ -15,7 +15,20 @@
 #
 ################################################################################
 
-compile_go_fuzzer github.com/google/gonids FuzzParseRule fuzz_parserule
+# build target function
+function compile_fuzzer {
+  path=$1
+  function=$2
+  fuzzer=$3
+
+   # Instrument all Go files relevant to this fuzzer
+  go-fuzz-build -libfuzzer -func $function -o $fuzzer.a $path
+
+   # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary
+  $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o $OUT/$fuzzer
+}
+
+compile_fuzzer /root/go/src/github.com/google/gonids/ FuzzParseRule fuzz_parserule
 
 unzip emerging.rules.zip
 cd rules
@@ -25,4 +38,4 @@
 set +x
 cat *.rules | while read l; do echo $l > corpus/$i.rule; i=$((i+1)); done
 set -x
-zip -q -r $OUT/fuzz_parserule_seed_corpus.zip corpus
+zip -r $OUT/fuzz_parserule_seed_corpus.zip corpus
diff --git a/projects/gonids/project.yaml b/projects/gonids/project.yaml
index c57d8bb..2b36088 100644
--- a/projects/gonids/project.yaml
+++ b/projects/gonids/project.yaml
@@ -1,10 +1,8 @@
 homepage: "https://github.com/google/gonids"
 primary_contact: "duane.security@gmail.com"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
+auto_ccs : "p.antoine@catenacyber.fr"
 language: go
 fuzzing_engines:
-  - libfuzzer
+- libfuzzer
 sanitizers:
-  - address
-main_repo: 'https://github.com/google/gonids'
+- address
diff --git a/projects/gopacket/Dockerfile b/projects/gopacket/Dockerfile
deleted file mode 100644
index f8816e5..0000000
--- a/projects/gopacket/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN go get github.com/google/gopacket
-
-COPY build.sh $SRC/
-WORKDIR $SRC
diff --git a/projects/gopacket/build.sh b/projects/gopacket/build.sh
deleted file mode 100755
index 6fc07e6..0000000
--- a/projects/gopacket/build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-
-compile_go_fuzzer github.com/google/gopacket/layers FuzzLayer fuzz_layers
diff --git a/projects/gopacket/project.yaml b/projects/gopacket/project.yaml
deleted file mode 100644
index eec259b..0000000
--- a/projects/gopacket/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/google/gopacket"
-primary_contact: "gconnell@google.com"
-auto_ccs :
-- "p.antoine@catenacyber.fr"
-
-language: go
-fuzzing_engines:
-- libfuzzer
-sanitizers:
-- address
-main_repo: 'https://github.com/google/gopacket'
diff --git a/projects/gpac/Dockerfile b/projects/gpac/Dockerfile
deleted file mode 100755
index cf7fc80..0000000
--- a/projects/gpac/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y build-essential pkg-config libz-dev
-RUN git clone https://github.com/gpac/gpac
-
-WORKDIR $SRC
-COPY build.sh $SRC/
-COPY fuzz_parse.c $SRC/
diff --git a/projects/gpac/build.sh b/projects/gpac/build.sh
deleted file mode 100755
index 904f5f2..0000000
--- a/projects/gpac/build.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd gpac
-./configure --static-build --extra-cflags="${CFLAGS}" --extra-ldflags="${CFLAGS}"
-make
-cp $SRC/fuzz_parse.c . 
-
-$CC $CFLAGS $LIB_FUZZING_ENGINE fuzz_parse.c -o $OUT/fuzz_parse \
-    -I./include -I./ ./bin/gcc/libgpac_static.a \
-    -lm -lz -lpthread -DGPAC_HAVE_CONFIG_H 
diff --git a/projects/gpac/fuzz_parse.c b/projects/gpac/fuzz_parse.c
deleted file mode 100644
index b7c9ac9..0000000
--- a/projects/gpac/fuzz_parse.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 Google LLC
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-      http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-#include <stdio.h>
-#include <unistd.h>
-
-#include <gpac/internal/isomedia_dev.h>
-#include <gpac/constants.h>
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    char filename[256];
-    sprintf(filename, "/tmp/libfuzzer.%d", getpid());
-
-    FILE *fp = fopen(filename, "wb");
-    if (!fp) {
-        return 0;
-    }
-    fwrite(data, size, 1, fp);
-    fclose(fp);
-
-    GF_ISOFile *movie = NULL;
-    movie = gf_isom_open_file(filename, GF_ISOM_OPEN_READ_DUMP, NULL);
-    if (movie != NULL) {
-        gf_isom_close(movie);
-    }
-    unlink(filename);
-    return 0;
-}
diff --git a/projects/gpac/project.yaml b/projects/gpac/project.yaml
deleted file mode 100755
index 1229d12..0000000
--- a/projects/gpac/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://gpac.wp.imt.fr/"
-main_repo: "https://github.com/gpac/gpac"
-primary_contact: "project.gpac@gmail.com"
-language: c
-auto_ccs:
-  - "david@adalogics.com"
diff --git a/projects/graphicsfuzz-spirv/project.yaml b/projects/graphicsfuzz-spirv/project.yaml
index 7613cff..add495c 100644
--- a/projects/graphicsfuzz-spirv/project.yaml
+++ b/projects/graphicsfuzz-spirv/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.graphicsfuzz.com"
-language: c++
 primary_contact: "afdx@google.com"
 auto_ccs:
   - "paulthomson@google.com"
@@ -16,6 +15,3 @@
 architectures:
   - x86_64
   - i386
-
-disabled: True
-blackbox: true
diff --git a/projects/graphicsmagick/Dockerfile b/projects/graphicsmagick/Dockerfile
index 97f3a56..8869d1d 100644
--- a/projects/graphicsmagick/Dockerfile
+++ b/projects/graphicsmagick/Dockerfile
@@ -15,10 +15,11 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y mercurial automake autopoint cmake libtool nasm pkg-config po4a
-RUN hg clone --time -b default https://hg.osdn.net/view/graphicsmagick/GM graphicsmagick || \
-    hg clone --time -b default https://hg.osdn.net/view/graphicsmagick/GM graphicsmagick || \
-    hg clone --time -b default https://hg.osdn.net/view/graphicsmagick/GM graphicsmagick
+MAINTAINER alex.gaynor@gmail.com
+RUN apt-get update && apt-get install -y mercurial automake autopoint cmake libtool nasm pkg-config
+RUN hg clone --time -b default http://hg.code.sf.net/p/graphicsmagick/code graphicsmagick || \
+    hg clone --time -b default http://hg.code.sf.net/p/graphicsmagick/code graphicsmagick || \
+    hg clone --time -b default http://hg.code.sf.net/p/graphicsmagick/code graphicsmagick
 
 RUN git clone --depth 1 https://gitlab.com/libtiff/libtiff
 RUN git clone --depth 1 https://github.com/webmproject/libwebp
@@ -26,13 +27,11 @@
 RUN git clone --depth 1 https://github.com/xz-mirror/xz
 RUN git clone --depth 1 https://github.com/facebook/zstd
 RUN git clone --depth 1 https://github.com/libjpeg-turbo/libjpeg-turbo
-RUN git clone https://git.savannah.nongnu.org/r/freetype/freetype2.git/
+RUN git clone --depth 1 https://git.savannah.nongnu.org/r/freetype/freetype2
 RUN git clone --depth 1 https://github.com/pnggroup/libpng
 RUN git clone --depth 1 https://github.com/mm2/Little-CMS
 RUN git clone https://git.ghostscript.com/ghostpdl.git
 RUN git clone --depth 1 https://gitlab.com/federicomenaquintero/bzip2.git
-RUN git clone --depth 1 https://github.com/jasper-software/jasper
-RUN git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git
 
 WORKDIR graphicsmagick
 COPY build.sh $SRC/
diff --git a/projects/graphicsmagick/project.yaml b/projects/graphicsmagick/project.yaml
index 7b16f6c..fc74038 100644
--- a/projects/graphicsmagick/project.yaml
+++ b/projects/graphicsmagick/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.graphicsmagick.org/"
-language: c++
 primary_contact: "bobjfriesenhahn@gmail.com"
 auto_ccs:
     - troyjp@gmail.com
diff --git a/projects/grok/Dockerfile b/projects/grok/Dockerfile
deleted file mode 100644
index 9551e85..0000000
--- a/projects/grok/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone --depth 1 https://github.com/GrokImageCompression/grok.git grok
-RUN git clone --depth 1 https://github.com/GrokImageCompression/grok-test-data.git grok-data
-WORKDIR grok
-COPY build.sh $SRC/
diff --git a/projects/grok/build.sh b/projects/grok/build.sh
deleted file mode 100755
index 4ec01fb..0000000
--- a/projects/grok/build.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-mkdir build
-cd build
-cmake ..
-make clean -s
-make -j$(nproc) -s
-cd ..
-
-./tests/fuzzers/build_google_oss_fuzzers.sh
-./tests/fuzzers/build_seed_corpus.sh
diff --git a/projects/grok/project.yaml b/projects/grok/project.yaml
deleted file mode 100644
index 15541d0..0000000
--- a/projects/grok/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/GrokImageCompression/grok"
-primary_contact: "boxerab@gmail.com"
-language: c++
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-sanitizers:
-  - address
-  - memory
-  - undefined
-main_repo: 'https://github.com/GrokImageCompression/grok.git'
diff --git a/projects/grpc-gateway/Dockerfile b/projects/grpc-gateway/Dockerfile
deleted file mode 100644
index 9a7cad2..0000000
--- a/projects/grpc-gateway/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-ENV GO111MODULE on
-RUN git clone https://github.com/grpc-ecosystem/grpc-gateway
-COPY build.sh $SRC/
-WORKDIR $SRC/grpc-gateway
diff --git a/projects/grpc-gateway/build.sh b/projects/grpc-gateway/build.sh
deleted file mode 100755
index 19c4ac5..0000000
--- a/projects/grpc-gateway/build.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-if [ "$SANITIZER" = "coverage" ]
-then
-	go get github.com/grpc-ecosystem/grpc-gateway/...
-	compile_go_fuzzer github.com/grpc-ecosystem/grpc-gateway/v2/internal/httprule Fuzz fuzz gofuzz
-else
-	compile_go_fuzzer github.com/grpc-ecosystem/grpc-gateway/v2/internal/httprule Fuzz fuzz gofuzz
-fi
diff --git a/projects/grpc-gateway/project.yaml b/projects/grpc-gateway/project.yaml
deleted file mode 100644
index f2ad693..0000000
--- a/projects/grpc-gateway/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/grpc-ecosystem/grpc-gateway"
-primary_contact: "grpc-gateway-maintainers@googlegroups.com"
-auto_ccs :
-  - "adam@adalogics.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/grpc-ecosystem/grpc-gateway'
diff --git a/projects/grpc-go/Dockerfile b/projects/grpc-go/Dockerfile
deleted file mode 100644
index dc00af5..0000000
--- a/projects/grpc-go/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-ENV GO111MODULE=on
-RUN go get google.golang.org/protobuf/cmd/protoc-gen-go google.golang.org/grpc/cmd/protoc-gen-go-grpc
-RUN git clone --depth 1 https://github.com/grpc/grpc-go $GOPATH/src/google.golang.org/grpc
-
-COPY build.sh fuzz_*.go $SRC/
-WORKDIR $SRC/
diff --git a/projects/grpc-go/build.sh b/projects/grpc-go/build.sh
deleted file mode 100755
index 09f3df6..0000000
--- a/projects/grpc-go/build.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cp $SRC/fuzz*.go $GOPATH/src/google.golang.org/grpc/examples/
-
-# seems needed to build the targets with the golang modules...
-cd $GOPATH/src/google.golang.org/grpc/examples/
-compile_go_fuzzer google.golang.org/grpc/examples FuzzHelloClient fuzz_helloclient
-compile_go_fuzzer google.golang.org/grpc/examples FuzzHelloServer fuzz_helloserver
diff --git a/projects/grpc-go/fuzz_hello.go b/projects/grpc-go/fuzz_hello.go
deleted file mode 100644
index 1202b96..0000000
--- a/projects/grpc-go/fuzz_hello.go
+++ /dev/null
@@ -1,113 +0,0 @@
-package grpc_hello_fuzz
-
-import (
-	"context"
-	"log"
-	"net"
-	"time"
-
-	"google.golang.org/grpc"
-	pb "google.golang.org/grpc/examples/helloworld/helloworld"
-)
-
-var initialized = 0
-
-type server struct {
-	pb.UnimplementedGreeterServer
-}
-
-// SayHello implements helloworld.GreeterServer
-func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {
-	log.Printf("Received: %v", in.GetName())
-	return &pb.HelloReply{Message: "Hello " + in.GetName()}, nil
-}
-
-func FuzzHelloServer(data []byte) int {
-	if initialized == 0 {
-		lis, err := net.Listen("tcp", ":50051")
-		if err != nil {
-			log.Printf("failed to listen: %v\n", err)
-			return 0
-		}
-		s := grpc.NewServer()
-		pb.RegisterGreeterServer(s, &server{})
-		// start server as a separate goroutine
-		go func() {
-			if err := s.Serve(lis); err != nil {
-				log.Printf("failed to serve: %v\n", err)
-			}
-		}()
-		initialized = 1
-	}
-
-	conn, err := net.Dial("tcp", "localhost:50051")
-	if err != nil {
-		log.Printf("failed to dial: %v\n", err)
-		return 0
-	}
-	conn.Write(data)
-	response := make([]byte, 1+len(data))
-	n, err := conn.Read(response)
-	conn.Close()
-	if err != nil || n == 0 {
-		return 0
-	}
-	return 1
-}
-
-var fuzzdata []byte
-
-func FuzzHelloClient(data []byte) int {
-	if len(data) == 0 {
-		return 0
-	}
-	if initialized == 0 {
-		lis, err := net.Listen("tcp", ":50051")
-		if err != nil {
-			log.Printf("failed to listen: %v\n", err)
-			return 0
-		}
-		go func() {
-			for {
-				conn, err := lis.Accept()
-				if err != nil {
-					log.Printf("did not accept: %v", err)
-					break
-				}
-				conn.SetDeadline(time.Now().Add(time.Millisecond * 100))
-				request := make([]byte, 24)
-				n, err := conn.Read(request)
-				if err != nil || n == 0 {
-					log.Printf("did not read: %v", err)
-					conn.Close()
-					break
-				}
-				n, err = conn.Write(fuzzdata)
-				if err != nil || n == 0 {
-					log.Printf("did not write: %v", err)
-				}
-				conn.Close()
-			}
-		}()
-		initialized = 1
-	}
-
-	fuzzdata = data
-	// Set up a connection to the server.
-	ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
-	defer cancel()
-	conn, err := grpc.DialContext(ctx, "localhost:50051", grpc.WithInsecure(), grpc.WithBlock())
-	if err != nil {
-		return 0
-	}
-	defer conn.Close()
-	c := pb.NewGreeterClient(conn)
-
-	// Contact the server and print out its response.
-	r, err := c.SayHello(ctx, &pb.HelloRequest{Name: "world"})
-	if err != nil {
-		return 0
-	}
-	r.GetMessage()
-	return 1
-}
diff --git a/projects/grpc-go/project.yaml b/projects/grpc-go/project.yaml
deleted file mode 100644
index 10821f8..0000000
--- a/projects/grpc-go/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://grpc.io/"
-primary_contact: "menghanl@google.com"
-auto_ccs:
-  - "dfawley@google.com"
-  - "p.antoine@catenacyber.fr"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/grpc/grpc-go'
diff --git a/projects/grpc/Dockerfile b/projects/grpc/Dockerfile
index 6d2a310..8f004bf 100644
--- a/projects/grpc/Dockerfile
+++ b/projects/grpc/Dockerfile
@@ -14,7 +14,10 @@
 #
 ################################################################################
 
-FROM gcr.io/oss-fuzz-base/base-builder
+# TODO(https://github.com/google/oss-fuzz/issues/3093): Stop specifying the
+# image SHA once the bug is fixed.
+FROM gcr.io/oss-fuzz-base/base-builder@sha256:276813aef0ce5972db43c0230f96162003994fa742fb1b2f4e66c67498575c65
+MAINTAINER yangg@google.com
 
 RUN apt-get update && apt-get install -y software-properties-common python-software-properties
 RUN add-apt-repository ppa:webupd8team/java
@@ -25,8 +28,7 @@
 	make            \
         curl            \
         autoconf        \
-        libtool         \
-        rsync
+        libtool
 
 # Install dependencies
 
diff --git a/projects/grpc/build.sh b/projects/grpc/build.sh
index fc82bac..8583153 100755
--- a/projects/grpc/build.sh
+++ b/projects/grpc/build.sh
@@ -24,7 +24,7 @@
 
 readonly FUZZER_TARGETS=(
   test/core/json:json_fuzzer
-  test/core/uri:uri_fuzzer_test
+  test/core/client_channel:uri_fuzzer_test
   test/core/http:request_fuzzer
   test/core/http:response_fuzzer
   test/core/nanopb:fuzzer_response
@@ -129,7 +129,7 @@
 # We don't have a consistent naming convention between fuzzer files and corpus
 # directories so we resort to hard coding zipping corpuses
 zip "${OUT}/json_fuzzer_seed_corpus.zip" test/core/json/corpus/*
-zip "${OUT}/uri_fuzzer_test_seed_corpus.zip" test/core/uri/uri_corpus/*
+zip "${OUT}/uri_fuzzer_test_seed_corpus.zip" test/core/client_channel/uri_corpus/*
 zip "${OUT}/request_fuzzer_seed_corpus.zip" test/core/http/request_corpus/*
 zip "${OUT}/response_fuzzer_seed_corpus.zip" test/core/http/response_corpus/*
 zip "${OUT}/fuzzer_response_seed_corpus.zip" test/core/nanopb/corpus_response/*
diff --git a/projects/grpc/project.yaml b/projects/grpc/project.yaml
index 6c0d25f..3807e7c 100644
--- a/projects/grpc/project.yaml
+++ b/projects/grpc/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.grpc.io/"
-language: c++
 primary_contact: "nnoble@google.com"
 auto_ccs:
   - "donnadionne@google.com"
@@ -11,4 +10,3 @@
 fuzzing_engines:
   - libfuzzer
 coverage_extra_args: -ignore-filename-regex=.*\.cache.*
-main_repo: 'https://github.com/grpc/grpc'
diff --git a/projects/gstreamer/Dockerfile b/projects/gstreamer/Dockerfile
index 46318a5..4df66ca 100644
--- a/projects/gstreamer/Dockerfile
+++ b/projects/gstreamer/Dockerfile
@@ -15,25 +15,25 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER bilboed@bilboed.com
 # Install the build dependencies
 
 # install the minimum
 
 RUN sed -i '/^#\sdeb-src /s/^#//' "/etc/apt/sources.list" && \
    apt-get update && \
-   apt-get install -y build-essential pkg-config bison flex gettext \
-    libffi-dev liblzma-dev libvorbis-dev libtheora-dev libogg-dev zlib1g-dev \
-    python3-pip && \
-   pip3 install meson==0.55.1 ninja==1.10.0.post2
+   apt-get install -y make autoconf automake libtool build-essential \
+    autopoint pkg-config bison flex gettext libffi-dev liblzma-dev \
+    libvorbis-dev libtheora-dev libogg-dev zlib1g-dev
 
-ADD https://ftp.gnome.org/pub/gnome/sources/glib/2.64/glib-2.64.2.tar.xz $SRC
+ADD https://ftp.gnome.org/pub/gnome/sources/glib/2.54/glib-2.54.2.tar.xz $SRC
 
 # Checkout all development repositories
 #RUN for i in orc  gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav; do git clone --depth 1 --recursive https://anongit.freedesktop.org/git/gstreamer/$i $i; done  
 RUN \
-  git clone --depth 1 --recursive https://gitlab.freedesktop.org/gstreamer/gstreamer.git gstreamer && \
-  git clone --depth 1 --recursive https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git gst-plugins-base && \
-  git clone --depth 1 --recursive https://gitlab.freedesktop.org/gstreamer/gst-ci.git gst-ci
+  git clone --depth 1 --recursive https://anongit.freedesktop.org/git/gstreamer/gstreamer gstreamer && \
+  git clone --depth 1 --recursive https://anongit.freedesktop.org/git/gstreamer/gst-plugins-base gst-plugins-base && \
+  git clone --depth 1 --recursive https://anongit.freedesktop.org/git/gstreamer/gst-ci gst-ci
 
 ADD https://people.freedesktop.org/~bilboed/gst-discoverer_seed_corpus.zip $SRC
 
diff --git a/projects/gstreamer/project.yaml b/projects/gstreamer/project.yaml
index dd0fe14..3908093 100644
--- a/projects/gstreamer/project.yaml
+++ b/projects/gstreamer/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://gstreamer.freedesktop.org/"
-language: c++
 primary_contact: "gstreamer-security@lists.freedesktop.org"
 auto_ccs:
  - "bilboed@bilboed.com"
@@ -9,4 +8,3 @@
  - "saunierthibault@gmail.com"
  - "ystreet00@gmail.com"
  - "thaytan@noraisin.net"
-main_repo: 'https://gitlab.freedesktop.org/gstreamer/gstreamer.git'
diff --git a/projects/guetzli/Dockerfile b/projects/guetzli/Dockerfile
index cb17099..28ad615 100644
--- a/projects/guetzli/Dockerfile
+++ b/projects/guetzli/Dockerfile
@@ -15,10 +15,11 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER robryk@google.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool libpng-dev pkg-config curl
 
 RUN mkdir afl-testcases
-RUN cd afl-testcases/ && curl https://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz | tar -xz
+RUN cd afl-testcases/ && curl http://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz | tar -xz
 RUN zip guetzli_fuzzer_seed_corpus.zip afl-testcases/jpeg/full/images/* afl-testcases/jpeg_turbo/full/images/* $SRC/libjpeg-turbo/testimages/
 
 RUN git clone --depth=1 https://github.com/google/guetzli guetzli
diff --git a/projects/guetzli/project.yaml b/projects/guetzli/project.yaml
index b17faaa..a797056 100644
--- a/projects/guetzli/project.yaml
+++ b/projects/guetzli/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/google/guetzli"
-language: c++
 primary_contact: "robryk@google.com"
 auto_ccs:
   - "szabadka@google.com"
@@ -7,4 +6,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/google/guetzli'
diff --git a/projects/h2o/Dockerfile b/projects/h2o/Dockerfile
index 02cf2c5..ad2f4e4 100644
--- a/projects/h2o/Dockerfile
+++ b/projects/h2o/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jonathan.foote@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
 RUN git clone https://github.com/h2o/h2o
 WORKDIR h2o
diff --git a/projects/h2o/project.yaml b/projects/h2o/project.yaml
index 3c32e81..585efec 100644
--- a/projects/h2o/project.yaml
+++ b/projects/h2o/project.yaml
@@ -1,12 +1,7 @@
 homepage: "https://github.com/h2o/h2o"
-language: c++
 primary_contact: "jonathan.foote@gmail.com"
-sanitizers:
-  - address
-  - undefined
 auto_ccs:
   - "frederik.deweerdt@gmail.com"
   - "kazuhooku@gmail.com"
   - "i.nagata110@gmail.com"
   - "security@fastly.com"
-main_repo: 'https://github.com/h2o/h2o'
diff --git a/projects/haproxy/Dockerfile b/projects/haproxy/Dockerfile
deleted file mode 100755
index 92a30f6..0000000
--- a/projects/haproxy/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make
-RUN git clone https://github.com/haproxy/haproxy
-
-WORKDIR $SRC
-
-COPY build.sh $SRC
-COPY fuzz* $SRC/
diff --git a/projects/haproxy/build.sh b/projects/haproxy/build.sh
deleted file mode 100755
index b7afc78..0000000
--- a/projects/haproxy/build.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-export ORIG_CFLAGS=${CFLAGS}
-cd haproxy
-
-# Fix some things in the Makefile where there are no options available
-sed 's/CFLAGS = $(ARCH_FLAGS) $(CPU_CFLAGS) $(DEBUG_CFLAGS) $(SPEC_CFLAGS)/CFLAGS = $(ARCH_FLAGS) $(CPU_CFLAGS) $(DEBUG_CFLAGS) $(SPEC_CFLAGS) ${ORIG_CFLAGS}/g' -i Makefile
-sed 's/LDFLAGS = $(ARCH_FLAGS) -g/LDFLAGS = $(ARCH_FLAGS) -g ${CXXFLAGS}/g' -i Makefile
-make TARGET=generic CC=${CC} LD=${CXX} 
-
-# Make a copy of the main file since it has many global functions we need to declare
-# We dont want the main function but we need the rest of the stuff in haproxy.c
-cd /src/haproxy
-sed 's/int main(int argc/int main2(int argc/g' -i ./src/haproxy.c
-sed 's/dladdr(main,/dladdr(main2,/g' -i ./src/tools.c
-sed 's/(void*)main/(void*)main2/g' -i ./src/tools.c
-
-
-SETTINGS="-Iinclude -g -DUSE_POLL -DUSE_TPROXY -DCONFIG_HAPROXY_VERSION=\"\" -DCONFIG_HAPROXY_DATE=\"\""
-
-$CC $CFLAGS $SETTINGS -c -o ./src/haproxy.o ./src/haproxy.c
-ar cr libhaproxy.a ./src/*.o
-
-for fuzzer in hpack_decode cfg_parser; do
-  cp $SRC/fuzz_${fuzzer}.c .
-  $CC $CFLAGS $SETTINGS -c fuzz_${fuzzer}.c  -o fuzz_${fuzzer}.o
-  $CXX -g $CXXFLAGS $LIB_FUZZING_ENGINE  fuzz_${fuzzer}.o libhaproxy.a -o $OUT/fuzz_${fuzzer}
-done
diff --git a/projects/haproxy/fuzz_cfg_parser.c b/projects/haproxy/fuzz_cfg_parser.c
deleted file mode 100644
index 2879731..0000000
--- a/projects/haproxy/fuzz_cfg_parser.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-*/
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdint.h>
-
-int
-LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
-{
-    if (size < 50)
-        return 0;
-
-	char filename[256];
-	sprintf(filename, "/tmp/libfuzzer.%d", getpid());
-
-	FILE *fp = fopen(filename, "wb");
-	if (!fp)
-			return 0;
-	fwrite(data, size, 1, fp);
-	fclose(fp);
-
-	// Fuzz the cfg parser
-	readcfgfile(filename);
-
-	unlink(filename);
-
-	return 0;
-}
diff --git a/projects/haproxy/fuzz_hpack_decode.c b/projects/haproxy/fuzz_hpack_decode.c
deleted file mode 100644
index 80ba8c3..0000000
--- a/projects/haproxy/fuzz_hpack_decode.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * # Copyright 2020 Google Inc.
- * #
- * # Licensed under the Apache License, Version 2.0 (the "License");
- * # you may not use this file except in compliance with the License.
- * # You may obtain a copy of the License at
- * #
- * #      http://www.apache.org/licenses/LICENSE-2.0
- * #
- * # Unless required by applicable law or agreed to in writing, software
- * # distributed under the License is distributed on an "AS IS" BASIS,
- * # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * # See the License for the specific language governing permissions and
- * # limitations under the License.
- * #
- * ################################################################################
- * */
-#define HPACK_STANDALONE
-
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <haproxy/chunk.h>
-#include <haproxy/hpack-dec.h>
-
-#define MAX_RQ_SIZE 65536
-#define MAX_HDR_NUM 1000
-
-char hex[MAX_RQ_SIZE*3+3]; // enough for "[ XX]* <CR> <LF> \0"
-uint8_t buf[MAX_RQ_SIZE];
-
-char trash_buf[MAX_RQ_SIZE];
-char tmp_buf[MAX_RQ_SIZE];
-
-struct buffer tmp   = { .area = tmp_buf,   .data = 0, .size = sizeof(tmp_buf)   };
-
-/* Empty function we dont need - we just need a callback */
-void debug_hexdump(FILE *out, const char *pfx, const char *buf,
-                   unsigned int baseaddr, int len)
-{ }
-
-// These must be included here
-#include "../src/hpack-huff.c"
-#include "../src/hpack-tbl.c"
-#include "../src/hpack-dec.c"
-
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size){
-        char *new_str = (char *)malloc(size+1);
-        struct hpack_dht *dht;
-        struct pool_head pool;
-        int dht_size = 4096;
-        if (new_str == NULL){
-                return 0;
-        }
-        memcpy(new_str, data, size);
-        new_str[size] = '\0';
-        struct http_hdr list[MAX_HDR_NUM];
-
-        pool.size = dht_size;
-        pool_head_hpack_tbl = &pool;
-        dht = hpack_dht_alloc();
-
-        if (dht != NULL)
-        {
-            hpack_decode_frame(dht, new_str, size, list,sizeof(list)/sizeof(list[0]), &tmp);
-            if (dht != NULL)
-            {
-                free(dht);
-            }
-        }
-        free(new_str);
-        return 0;
-}
diff --git a/projects/haproxy/project.yaml b/projects/haproxy/project.yaml
deleted file mode 100755
index 7f5b430..0000000
--- a/projects/haproxy/project.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-homepage: "https://github.com/haproxy/haproxy"
-primary_contact: "adam@adalogics.com"
-language: c++
-auto_ccs:
-  - "david@adalogics.com"
-  - "timwolla@googlemail.com"
-  - "willy@1wt.eu"
-  - "tribuslukas58@gmail.com"
-  - "christopher.faulet@gmail.com"
-sanitizers:
-  - address
-
-# Bug reports are public by default:
-view_restrictions: none
-main_repo: 'https://github.com/haproxy/haproxy'
diff --git a/projects/harfbuzz/Dockerfile b/projects/harfbuzz/Dockerfile
index d8131b0..7de247d 100644
--- a/projects/harfbuzz/Dockerfile
+++ b/projects/harfbuzz/Dockerfile
@@ -15,8 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y python3-pip ragel pkg-config && \
-    pip3 install meson==0.53.0 ninja
+MAINTAINER mmoroz@chromium.org
+RUN apt-get update && apt-get install -y make autoconf automake libtool ragel pkg-config
+
 RUN git clone --depth 1 https://github.com/harfbuzz/harfbuzz.git
 WORKDIR harfbuzz
 COPY build.sh $SRC/
diff --git a/projects/harfbuzz/build.sh b/projects/harfbuzz/build.sh
index 3509a67..c3d0520 100755
--- a/projects/harfbuzz/build.sh
+++ b/projects/harfbuzz/build.sh
@@ -17,26 +17,23 @@
 
 # Disable:
 # 1. UBSan vptr since target built with -fno-rtti.
-export CFLAGS="$CFLAGS -fno-sanitize=vptr -DHB_NO_VISIBILITY"
-export CXXFLAGS="$CXXFLAGS -fno-sanitize=vptr -DHB_NO_VISIBILITY"
-
-# setup
-build=$WORK/build
-
-# cleanup
-rm -rf $build
-mkdir -p $build
+export CFLAGS="$CFLAGS -fno-sanitize=vptr"
+export CXXFLAGS="$CXXFLAGS -fno-sanitize=vptr"
 
 # Build the library.
-meson --default-library=static --wrap-mode=nodownload \
-      -Dexperimental_api=true \
-      -Dfuzzer_ldflags="$(echo $LIB_FUZZING_ENGINE)" \
-      $build \
-  || (cat build/meson-logs/meson-log.txt && false)
+./autogen.sh
+./configure --enable-static --disable-shared
+make clean
+make -j$(nproc) CPPFLAGS="-DHB_NO_VISIBILITY" V=1 all
 
-# Build the fuzzers.
-ninja -v -j$(nproc) -C $build test/fuzzing/hb-{shape,draw,subset,set}-fuzzer
-mv $build/test/fuzzing/hb-{shape,draw,subset,set}-fuzzer $OUT/
+# Build the fuzzer.
+$CXX $CXXFLAGS -std=c++11 -Isrc \
+    ./test/fuzzing/hb-shape-fuzzer.cc -o $OUT/hb-shape-fuzzer \
+    $LIB_FUZZING_ENGINE ./src/.libs/libharfbuzz.a
+
+$CXX $CXXFLAGS -std=c++11 -Isrc \
+    ./test/fuzzing/hb-subset-fuzzer.cc -o $OUT/hb-subset-fuzzer \
+    $LIB_FUZZING_ENGINE ./src/.libs/libharfbuzz-subset.a ./src/.libs/libharfbuzz.a
 
 # Archive and copy to $OUT seed corpus if the build succeeded.
 mkdir all-fonts
@@ -51,6 +48,4 @@
 	cp $d/* all-fonts/
 done
 zip $OUT/hb-shape-fuzzer_seed_corpus.zip all-fonts/*
-cp $OUT/hb-shape-fuzzer_seed_corpus.zip $OUT/hb-draw-fuzzer_seed_corpus.zip
 cp $OUT/hb-shape-fuzzer_seed_corpus.zip $OUT/hb-subset-fuzzer_seed_corpus.zip
-zip $OUT/hb-set-fuzzer_seed_corpus.zip ./test/fuzzing/sets/*
diff --git a/projects/harfbuzz/hb-draw-fuzzer.options b/projects/harfbuzz/hb-draw-fuzzer.options
deleted file mode 100644
index ea2a7a2..0000000
--- a/projects/harfbuzz/hb-draw-fuzzer.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-timeout = 5
diff --git a/projects/harfbuzz/hb-set-fuzzer.options b/projects/harfbuzz/hb-set-fuzzer.options
deleted file mode 100644
index ea2a7a2..0000000
--- a/projects/harfbuzz/hb-set-fuzzer.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-timeout = 5
diff --git a/projects/harfbuzz/project.yaml b/projects/harfbuzz/project.yaml
index fd12a50..005daa5 100644
--- a/projects/harfbuzz/project.yaml
+++ b/projects/harfbuzz/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/harfbuzz/harfbuzz"
-language: c++
 primary_contact: "harfbuzz-admin@googlegroups.com"
 auto_ccs:
   - "behdad.esfahbod@gmail.com"
@@ -14,22 +13,20 @@
   - "ariza@typekit.com"
   - "qxliu@google.com"
   - "ckitagawa@google.com"
-  - "drott@chromium.org"
 vendor_ccs:
   - "jmuizelaar@mozilla.com"
   - "lsalzman@mozilla.com"
   - "twsmith@mozilla.com"
 fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
+ - libfuzzer
+ - afl
+ - honggfuzz
+ - dataflow
 sanitizers:
-  - address
-  - undefined
-  - memory
-  - dataflow
+ - address
+ - undefined
+ - memory
+ - dataflow
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/harfbuzz/harfbuzz.git'
diff --git a/projects/hermes/Dockerfile b/projects/hermes/Dockerfile
deleted file mode 100644
index eb59a38..0000000
--- a/projects/hermes/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && \
-    apt-get install -y make autoconf automake libtool wget libicu-dev \
-    ninja-build python zip libreadline-dev libatomic-ops-dev
-
-RUN git clone https://github.com/facebook/hermes.git
-WORKDIR hermes
-COPY build.sh $SRC/
diff --git a/projects/hermes/build.sh b/projects/hermes/build.sh
deleted file mode 100755
index 01c11f3..0000000
--- a/projects/hermes/build.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-if [ "${SANITIZER}" = address ]
-then
-    CONFIGURE_FLAGS="--enable-asan"
-elif [ "${SANITIZER}" = undefined ]
-then
-    CONFIGURE_FLAGS="--enable-ubsan"
-else
-    CONFIGURE_FLAGS=""
-fi
-
-./utils/build/configure.py "${OUT}/build" --build-system "Ninja" ${CONFIGURE_FLAGS} \
-                           --cmake-flags="-DHERMES_USE_STATIC_ICU=ON -DHERMES_FUZZING_FLAG=${LIB_FUZZING_ENGINE} -DHERMES_ENABLE_LIBFUZZER=ON"
-cmake --build "$OUT/build"  --parallel --target fuzzer-jsi-entry
-cp "${OUT}/build/bin/fuzzer-jsi-entry" "${OUT}"
diff --git a/projects/hermes/project.yaml b/projects/hermes/project.yaml
deleted file mode 100644
index 0e614fe..0000000
--- a/projects/hermes/project.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-homepage: "https://github.com/facebook/hermes"
-language: c++
-primary_contact: "neildhar@fb.com"
-auto_ccs:
-  - "dulinr@fb.com"
-  - "mhl@fb.com"
-vendor_ccs:
-  - "oss-fuzz@fb.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-sanitizers:
-  - address
-  - undefined
-main_repo: 'https://github.com/facebook/hermes.git'
diff --git a/projects/hiredis/Dockerfile b/projects/hiredis/Dockerfile
deleted file mode 100644
index 3f96259..0000000
--- a/projects/hiredis/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/redis/hiredis
-WORKDIR hiredis
-COPY build.sh $SRC/
diff --git a/projects/hiredis/build.sh b/projects/hiredis/build.sh
deleted file mode 100755
index 72888be..0000000
--- a/projects/hiredis/build.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-make USE_SSL=0
-mv fuzzing/format_command_fuzzer.c .
-
-$CC $CFLAGS -std=c99 -pedantic -c -O3 -fPIC \
-	format_command_fuzzer.c -o format_command_fuzzer.o
-
-$CC $CFLAGS -O3 -fPIC $LIB_FUZZING_ENGINE format_command_fuzzer.o \
-	-o $OUT/format_command_fuzzer libhiredis.a
diff --git a/projects/hiredis/project.yaml b/projects/hiredis/project.yaml
deleted file mode 100755
index b863fe8..0000000
--- a/projects/hiredis/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/redis/hiredis"
-primary_contact: "michael.grunder@gmail.com"
-language: c
-auto_ccs:
-  - "Adam@adalogics.com"
-main_repo: "https://github.com/redis/hiredis"
diff --git a/projects/hoextdown/Dockerfile b/projects/hoextdown/Dockerfile
index 075ef60..d4f7d1d 100644
--- a/projects/hoextdown/Dockerfile
+++ b/projects/hoextdown/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kjclev@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 https://github.com/kjdev/hoextdown.git hoextdown
 WORKDIR hoextdown
diff --git a/projects/hoextdown/project.yaml b/projects/hoextdown/project.yaml
index 1499307..ed77533 100644
--- a/projects/hoextdown/project.yaml
+++ b/projects/hoextdown/project.yaml
@@ -1,4 +1,2 @@
 homepage: "https://github.com/kjdev/hoextdown"
-language: c++
 primary_contact: "kjclev@gmail.com"
-main_repo: 'https://github.com/kjdev/hoextdown.git'
diff --git a/projects/hostap/Dockerfile b/projects/hostap/Dockerfile
index 3a1df86..5d38a06 100644
--- a/projects/hostap/Dockerfile
+++ b/projects/hostap/Dockerfile
@@ -15,9 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && \
-    apt-get install -y make autoconf automake libtool g++ libssl-dev \
-                       libssl-dev:i386
+MAINTAINER elver@google.com
+RUN apt-get update && apt-get install -y make autoconf automake libtool g++
 RUN git clone --depth 1 git://w1.fi/srv/git/hostap.git hostap
 WORKDIR hostap
 COPY build.sh $SRC/
diff --git a/projects/hostap/build.sh b/projects/hostap/build.sh
index 2a0da93..881146c 100755
--- a/projects/hostap/build.sh
+++ b/projects/hostap/build.sh
@@ -21,24 +21,12 @@
 export LDFLAGS="$CXXFLAGS $LIB_FUZZING_ENGINE"
 export CFLAGS="$CFLAGS -MMD"
 
-if [[ "$ARCHITECTURE" == "i386" ]]; then
-	# Force static link
-	rm -v /lib/i386-linux-gnu/libcrypto.so* || :
-fi
-
 # Specific to hostap's rules.include: set empty, as we directly set required
 # sanitizer flags in CFLAGS and LDFLAGS (above).
 export FUZZ_FLAGS=
 
 for target in fuzzing/*; do
   [[ -d "$target" ]] || continue
-
-  if [[ "$SANITIZER" == "dataflow" ]]; then
-	  # libcrypto seems to cause problems with 'dataflow' sanitizer.
-	  [[ "$target" == "fuzzing/dpp-uri" ]] && continue || :
-	  [[ "$target" == "fuzzing/sae" ]] && continue || :
-  fi
-
   (
     cd "$target"
     make clean
diff --git a/projects/hostap/project.yaml b/projects/hostap/project.yaml
index db978e1..ab97da4 100644
--- a/projects/hostap/project.yaml
+++ b/projects/hostap/project.yaml
@@ -1,19 +1,11 @@
 homepage: "https://w1.fi/cvs.html"
-language: c++
 primary_contact: "j@w1.fi"
 auto_ccs:
    - "elver@google.com"
-fuzzing_engines:
-  - afl
-  - libfuzzer
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
   - undefined
   - memory
-  - dataflow
 architectures:
   - x86_64
   - i386
-main_repo: 'git://w1.fi/srv/git/hostap.git'
diff --git a/projects/htslib/Dockerfile b/projects/htslib/Dockerfile
index f3b6cd1..1ad58da 100644
--- a/projects/htslib/Dockerfile
+++ b/projects/htslib/Dockerfile
@@ -15,7 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER rmd@sanger.ac.uk
 RUN apt-get update && apt-get install -y make autoconf automake zlib1g-dev libbz2-dev liblzma-dev libcurl4-gnutls-dev libssl-dev
-RUN git clone --depth 1 --shallow-submodules --recurse-submodules https://github.com/samtools/htslib.git htslib
+RUN git clone --depth 1 https://github.com/samtools/htslib.git htslib
 WORKDIR htslib
 COPY build.sh $SRC/
diff --git a/projects/htslib/project.yaml b/projects/htslib/project.yaml
index 56f5201..f784ab1 100644
--- a/projects/htslib/project.yaml
+++ b/projects/htslib/project.yaml
@@ -1,8 +1,6 @@
 homepage: "https://www.htslib.org/"
-language: c++
 primary_contact: "rmd@sanger.ac.uk"
 auto_ccs:
         - "aw7@sanger.ac.uk"
         - "jkb@sanger.ac.uk"
         - "vo2@sanger.ac.uk"
-main_repo: 'https://github.com/samtools/htslib.git'
diff --git a/projects/http-parser/Dockerfile b/projects/http-parser/Dockerfile
deleted file mode 100755
index 88e93fd..0000000
--- a/projects/http-parser/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake
-RUN git clone https://github.com/nodejs/http-parser
-
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/http-parser/build.sh b/projects/http-parser/build.sh
deleted file mode 100755
index dcd2ac2..0000000
--- a/projects/http-parser/build.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd http-parser
-make
-
-$CC $CFLAGS -I. -DHTTP_PARSER_STRICT=0  -Wall -Wextra -Werror -c fuzzers/fuzz_parser.c -o fuzz_parser.o
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE -Wall -Wextra -Werror http_parser.o fuzz_parser.o -o $OUT/fuzz_parser
-
-$CC $CFLAGS -I. -DHTTP_PARSER_STRICT=0  -Wall -Wextra -Werror -c fuzzers/fuzz_url.c -o fuzz_url.o
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE -Wall -Wextra -Werror http_parser.o fuzz_url.o -o $OUT/fuzz_url 
diff --git a/projects/http-parser/project.yaml b/projects/http-parser/project.yaml
deleted file mode 100755
index b9ee477..0000000
--- a/projects/http-parser/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/nodejs/http-parser"
-primary_contact: "info@bnoordhuis.nl"
-language: c++
-auto_ccs:
-  - "david@adalogics.com"
-main_repo: 'https://github.com/nodejs/http-parser'
diff --git a/projects/httparse/Dockerfile b/projects/httparse/Dockerfile
deleted file mode 100644
index cffcc9f..0000000
--- a/projects/httparse/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone https://github.com/seanmonstar/httparse
-WORKDIR $SRC
-
-COPY build.sh $SRC/
diff --git a/projects/httparse/build.sh b/projects/httparse/build.sh
deleted file mode 100755
index c4fdec2..0000000
--- a/projects/httparse/build.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/httparse
-cargo fuzz build -O
-cp fuzz/target/x86_64-unknown-linux-gnu/release/parse_request $OUT/
-cp fuzz/target/x86_64-unknown-linux-gnu/release/parse_headers $OUT/
-cp fuzz/target/x86_64-unknown-linux-gnu/release/parse_chunk_size $OUT/
diff --git a/projects/httparse/project.yaml b/projects/httparse/project.yaml
deleted file mode 100644
index 43bfec4..0000000
--- a/projects/httparse/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/seanmonstar/httparse"
-main_repo: "https://github.com/seanmonstar/httparse"
-primary_contact: "seanmonstar@gmail.com"
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-language: rust
-auto_ccs:
-  - "david@adalogics.com"
diff --git a/projects/httplib2/Dockerfile b/projects/httplib2/Dockerfile
deleted file mode 100644
index f7dcaf2..0000000
--- a/projects/httplib2/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/httplib2/httplib2
-
-COPY build.sh $SRC/
-
-WORKDIR $SRC/httplib2
diff --git a/projects/httplib2/build.sh b/projects/httplib2/build.sh
deleted file mode 100644
index 3a3d0ea..0000000
--- a/projects/httplib2/build.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-pip3 install six 
-python3 setup.py install
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find ./tests/ -name 'fuzz_*.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_PRELOAD=\$this_dir/sanitizer_with_fuzzer.so \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/httplib2/project.yaml b/projects/httplib2/project.yaml
deleted file mode 100644
index 210aa12..0000000
--- a/projects/httplib2/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/httplib2/httplib2"
-language: python
-primary_contact: "temotor@gmail.com"
-auto_ccs:
-  - "david@adalogics.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
-main_repo: "https://github.com/httplib2/httplib2"
diff --git a/projects/hugo/Dockerfile b/projects/hugo/Dockerfile
deleted file mode 100644
index bfba1a2..0000000
--- a/projects/hugo/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone https://github.com/gohugoio/hugo
-COPY build.sh fuzz.go $SRC/
-WORKDIR $SRC/hugo
diff --git a/projects/hugo/build.sh b/projects/hugo/build.sh
deleted file mode 100755
index c1950ca..0000000
--- a/projects/hugo/build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-mv $SRC/fuzz.go $SRC/hugo/tpl/transform/
-
-compile_go_fuzzer github.com/gohugoio/hugo/tpl/transform FuzzMarkdownify fuzzmarkdownify
diff --git a/projects/hugo/fuzz.go b/projects/hugo/fuzz.go
deleted file mode 100644
index 7a22e6d..0000000
--- a/projects/hugo/fuzz.go
+++ /dev/null
@@ -1,61 +0,0 @@
-// +build gofuzz
-
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package transform
-
-import (
-	"github.com/gohugoio/hugo/common/loggers"
-	"github.com/gohugoio/hugo/config"
-	"github.com/gohugoio/hugo/deps"
-	"github.com/gohugoio/hugo/helpers"
-	"github.com/gohugoio/hugo/hugofs"
-	"github.com/gohugoio/hugo/langs"
-	"github.com/spf13/afero"
-	"github.com/spf13/viper"
-)
-
-func newFuzzDeps(cfg config.Provider) *deps.Deps {
-	cfg.Set("contentDir", "content")
-	cfg.Set("i18nDir", "i18n")
-
-	l := langs.NewLanguage("en", cfg)
-
-	cs, _ := helpers.NewContentSpec(l, loggers.NewErrorLogger(), afero.NewMemMapFs())
-
-	return &deps.Deps{
-		Cfg:         cfg,
-		Fs:          hugofs.NewMem(l),
-		ContentSpec: cs,
-	}
-}
-
-func FuzzMarkdownify(data []byte) int {
-	v := viper.New()
-	v.Set("contentDir", "content")
-	ns := New(newFuzzDeps(v))
-
-	for _, test := range []struct {
-		s interface{}
-	}{
-		{string(data)},
-	} {
-		_, err := ns.Markdownify(test.s)
-		if err != nil {
-			return 0
-		}
-	}
-	return 1
-}
diff --git a/projects/hugo/project.yaml b/projects/hugo/project.yaml
deleted file mode 100644
index 2811a6e..0000000
--- a/projects/hugo/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/gohugoio/hugo"
-primary_contact: "bjorn.erik.pedersen@gmail.com"
-auto_ccs :
-  - "adam@adalogics.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/gohugoio/hugo'
diff --git a/projects/hunspell/Dockerfile b/projects/hunspell/Dockerfile
deleted file mode 100644
index 632863f..0000000
--- a/projects/hunspell/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && \
-    apt-get install -y autoconf automake autopoint libtool
-RUN git clone --depth 1 https://github.com/hunspell/hunspell.git hunspell
-WORKDIR hunspell
-COPY build.sh $SRC/
diff --git a/projects/hunspell/build.sh b/projects/hunspell/build.sh
deleted file mode 100755
index eccf4aa..0000000
--- a/projects/hunspell/build.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-mv -f ./tests/korean.* $OUT/
-mv -f ./tests/utf8_nonbmp.* $OUT/
-
-autoreconf -vfi
-./configure --disable-shared --enable-static
-make clean
-make -j$(nproc) 
-$CXX $CXXFLAGS -o $OUT/fuzzer -I./src/ $LIB_FUZZING_ENGINE ./src/tools/fuzzer.cxx ./src/hunspell/.libs/libhunspell-1.7.a
diff --git a/projects/hunspell/project.yaml b/projects/hunspell/project.yaml
deleted file mode 100644
index 48c3f88..0000000
--- a/projects/hunspell/project.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-homepage: "https://hunspell.github.io/"
-language: c++
-primary_contact: "caolanm@redhat.com"
-auto_ccs:
-  - "security@documentfoundation.org"
-vendor_ccs:
-  - "ehsan.akhgari@gmail.com"
-  - "twsmith@mozilla.com"
-sanitizers:
-  - address
-  - memory
-  - undefined
-architectures:
- - i386
- - x86_64
-main_repo: 'https://github.com/hunspell/hunspell.git'
diff --git a/projects/ibmswtpm2/Dockerfile b/projects/ibmswtpm2/Dockerfile
index 2f707e3..18fe690 100644
--- a/projects/ibmswtpm2/Dockerfile
+++ b/projects/ibmswtpm2/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER john.s.andersen@intel.com
 ARG SIM_DL_URL=https://downloads.sourceforge.net/project/ibmswtpm2/ibmtpm1332.tar.gz
 RUN apt-get update && apt-get install -y make autoconf automake libtool libssl-dev curl tar g++
 RUN mkdir ibmswtpm2 && \
diff --git a/projects/ibmswtpm2/no_writes.patch b/projects/ibmswtpm2/no_writes.patch
index ca8d7c6..a9be0dc 100644
--- a/projects/ibmswtpm2/no_writes.patch
+++ b/projects/ibmswtpm2/no_writes.patch
@@ -84,10 +84,12 @@
 index cc3e410..c10ba5a 100644
 --- a/makefile
 +++ b/makefile
-@@ -40,16 +40,16 @@
+@@ -40,16 +40,19 @@
  
  
--CC = /usr/bin/gcc
+ CC = /usr/bin/gcc
++CC = clang
++CXX = clang++
  
 -CCFLAGS = -Wall  			\
 +CCFLAGS = $(CFLAGS) -Wall  			\
diff --git a/projects/ibmswtpm2/project.yaml b/projects/ibmswtpm2/project.yaml
index c1c6a96..1a439eb 100644
--- a/projects/ibmswtpm2/project.yaml
+++ b/projects/ibmswtpm2/project.yaml
@@ -1,5 +1,4 @@
 homepage: https://sourceforge.net/projects/ibmswtpm2/
-language: c++
 primary_contact: kgoldman@us.ibm.com
 auto_ccs:
   - "john.s.andersen@intel.com"
diff --git a/projects/icu/Dockerfile b/projects/icu/Dockerfile
index af7e2db..366cedc 100644
--- a/projects/icu/Dockerfile
+++ b/projects/icu/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mike.aizatsky@gmail.com
 RUN apt-get update && apt-get install -y make
 
 RUN git clone --depth 1 https://github.com/unicode-org/icu.git icu
diff --git a/projects/icu/project.yaml b/projects/icu/project.yaml
index d38b523..6df1b75 100644
--- a/projects/icu/project.yaml
+++ b/projects/icu/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://site.icu-project.org/"
-language: c++
 auto_ccs:
  - icu-security@unicode.org
  - andy.heninger@gmail.com
@@ -8,9 +7,7 @@
  - shane@unicode.org
  - srl295@gmail.com
  - nrunge@google.com
- - ftang@google.com
 sanitizers:
  - address
  - memory
 
-main_repo: 'https://github.com/unicode-org/icu.git'
diff --git a/projects/igraph/Dockerfile b/projects/igraph/Dockerfile
deleted file mode 100644
index c1d2c00..0000000
--- a/projects/igraph/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2018 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool \
-  pkg-config cmake bison flex
-RUN git clone --depth 1 --branch develop  https://github.com/igraph/igraph
-WORKDIR igraph
-RUN cp $SRC/igraph/fuzzing/build.sh $SRC/build.sh
-
diff --git a/projects/igraph/project.yaml b/projects/igraph/project.yaml
deleted file mode 100644
index aedf56b..0000000
--- a/projects/igraph/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/igraph/igraph"
-main_repo: "https://github.com/igraph/igraph"
-language: c
-primary_contact: "szhorvat@gmail.com"
-auto_ccs:
-  - "Adam@adalogics.com"
-  - "ntamas@gmail.com"
-sanitizers:
-  - address
-  - undefined
diff --git a/projects/image-png/Dockerfile b/projects/image-png/Dockerfile
deleted file mode 100644
index cb953de..0000000
--- a/projects/image-png/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool curl cmake python llvm-dev libclang-dev clang
-
-RUN git clone https://github.com/image-rs/image-png
-WORKDIR $SRC
-
-COPY build.sh $SRC/
-COPY buf_independent.rs $SRC/image-png/fuzz/fuzz_targets/buf_independent.rs
diff --git a/projects/image-png/buf_independent.rs b/projects/image-png/buf_independent.rs
deleted file mode 100644
index f4a1f31..0000000
--- a/projects/image-png/buf_independent.rs
+++ /dev/null
@@ -1,74 +0,0 @@
-#![no_main]
-extern crate libfuzzer_sys;
-use libfuzzer_sys::fuzz_target;
-extern crate png;
-
-use std::io::{BufRead, Read, Result};
-
-/// A reader that reads at most `n` bytes.
-struct SmalBuf<R: BufRead> {
-    inner: R,
-    cap: usize,
-}
-
-impl<R: BufRead> SmalBuf<R> {
-    fn new(inner: R, cap: usize) -> Self {
-        SmalBuf { inner, cap }
-    }
-}
-
-impl<R: BufRead> Read for SmalBuf<R> {
-    fn read(&mut self, buf: &mut [u8]) -> Result<usize> {
-        let len = buf.len().min(self.cap);
-        self.inner.read(&mut buf[..len])
-    }
-}
-
-impl<R: BufRead> BufRead for SmalBuf<R> {
-    fn fill_buf(&mut self) -> Result<&[u8]> {
-        let buf = self.inner.fill_buf()?;
-        let len = buf.len().min(self.cap);
-        Ok(&buf[..len])
-    }
-
-    fn consume(&mut self, amt: usize) {
-        assert!(amt <= self.cap);
-        self.inner.consume(amt)
-    }
-}
-
-fuzz_target!(|data: &[u8]| {
-    // Small limits, we don't need them hopefully.
-    let limits = png::Limits { bytes: 1 << 16 };
-
-    let reference = png::Decoder::new_with_limits(data, limits);
-    let smal = png::Decoder::new_with_limits(SmalBuf::new(data, 1), limits);
-
-    let _ = png_compare(reference, smal);
-});
-
-#[inline(always)]
-fn png_compare<R: BufRead, S: BufRead>(reference: png::Decoder<R>, smal: png::Decoder<S>)
-    -> std::result::Result<png::OutputInfo, ()>
-{
-    let mut smal = Some(smal);
-    let (info, mut reference) = reference.read_info().map_err(|_| {
-        assert!(smal.take().unwrap().read_info().is_err());
-    })?;
-
-    let (sinfo, mut smal) = smal.take().unwrap().read_info().expect("Deviation");
-    assert_eq!(info, sinfo);
-
-    if info.buffer_size() > 5_000_000 {
-        return Err(());
-    }
-
-    let mut ref_data = vec![0; info.buffer_size()];
-    let mut smal_data = vec![0; info.buffer_size()];
-
-    let _rref = reference.next_frame(&mut ref_data);
-    let _rsmal = smal.next_frame(&mut smal_data);
-
-    assert_eq!(smal_data, ref_data);
-    return Ok(info);
-}
diff --git a/projects/image-png/build.sh b/projects/image-png/build.sh
deleted file mode 100755
index c8b7f49..0000000
--- a/projects/image-png/build.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC
-cd image-png
-cargo fuzz build -O
-cp fuzz/target/x86_64-unknown-linux-gnu/release/decode $OUT/
-cp fuzz/target/x86_64-unknown-linux-gnu/release/buf_independent $OUT/
diff --git a/projects/image-png/project.yaml b/projects/image-png/project.yaml
deleted file mode 100644
index aa86d3a..0000000
--- a/projects/image-png/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://docs.rs/image/0.23.14/image"
-main_repo: "https://github.com/image-rs/image-png"
-primary_contact: "andreas.molzer@gmx.de"
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-language: rust
-auto_ccs:
-  - "fintelia@gmail.com"
-  - "david@adalogics.com"
diff --git a/projects/imageio/Dockerfile b/projects/imageio/Dockerfile
deleted file mode 100644
index 87c1811..0000000
--- a/projects/imageio/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/imageio/imageio
-
-COPY build.sh $SRC/
-WORKDIR $SRC/imageio
diff --git a/projects/imageio/build.sh b/projects/imageio/build.sh
deleted file mode 100644
index aeef84e..0000000
--- a/projects/imageio/build.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-python3 setup.py build install
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find . -name 'fuzz_*.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/imageio/project.yaml b/projects/imageio/project.yaml
deleted file mode 100644
index 73389b5..0000000
--- a/projects/imageio/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://imageio.github.io"
-language: python
-primary_contact: "almar.klein@gmail.com"
-auto_ccs:
-  - "david@adalogics.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
-main_repo: 'https://github.com/imageio/imageio'
diff --git a/projects/imagemagick/Dockerfile b/projects/imagemagick/Dockerfile
index 058158b..6a12e0c 100644
--- a/projects/imagemagick/Dockerfile
+++ b/projects/imagemagick/Dockerfile
@@ -15,8 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && \
-    apt-get install -y make autoconf automake groff libtool pkg-config cmake nasm autopoint po4a libc6:i386 libc6-dev:i386
+MAINTAINER paul.l.kehrer@gmail.com
+RUN dpkg --add-architecture i386 && \
+    apt-get update && \
+    apt-get install -y make autoconf automake libtool pkg-config cmake nasm autopoint libc6:i386 libc6-dev:i386
 RUN git clone --depth 1 https://github.com/imagemagick/imagemagick
 RUN git clone --depth 1 https://gitlab.com/libtiff/libtiff
 RUN git clone --depth 1 https://github.com/strukturag/libde265
@@ -25,14 +27,13 @@
 RUN git clone --depth 1 https://github.com/webmproject/libwebp
 RUN git clone --depth 1 https://github.com/madler/zlib
 RUN git clone --depth 1 https://github.com/libjpeg-turbo/libjpeg-turbo
-RUN git clone https://git.savannah.nongnu.org/r/freetype/freetype2.git/
+RUN git clone --depth 1 https://git.savannah.nongnu.org/r/freetype/freetype2
 RUN git clone --depth 1 https://github.com/xz-mirror/xz
 RUN git clone --depth 1 https://github.com/libraw/libraw
 RUN git clone --depth 1 https://github.com/pnggroup/libpng
 RUN git clone --depth 1 https://github.com/mm2/Little-CMS
-RUN git clone https://www.cl.cam.ac.uk/~mgk25/git/jbigkit # does not support shallow
 RUN svn export https://github.com/mozillasecurity/fuzzdata.git/trunk/samples/heic heic_corpus
 RUN git clone --depth 1 https://gitlab.com/federicomenaquintero/bzip2.git
-ADD https://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz afl_testcases.tgz
+ADD http://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz afl_testcases.tgz
 WORKDIR imagemagick
 COPY build.sh $SRC/
diff --git a/projects/imagemagick/project.yaml b/projects/imagemagick/project.yaml
index 509c8c1..4210008 100644
--- a/projects/imagemagick/project.yaml
+++ b/projects/imagemagick/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.imagemagick.org"
-language: c++
 primary_contact: "dirk@lemstra.org"
 auto_ccs:
   - paul.l.kehrer@gmail.com
@@ -12,4 +11,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/imagemagick/imagemagick'
diff --git a/projects/immer/Dockerfile b/projects/immer/Dockerfile
deleted file mode 100644
index 6605b72..0000000
--- a/projects/immer/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y cmake libgc-dev
-RUN git clone --depth 1 https://github.com/arximboldi/immer.git immer
-WORKDIR immer
-COPY build.sh $SRC/
diff --git a/projects/immer/build.sh b/projects/immer/build.sh
deleted file mode 100755
index cf367fe..0000000
--- a/projects/immer/build.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-mkdir build
-cd build
-cmake .. \
-      -DBOEHM_GC_INCLUDE_DIR=/usr/include \
-      -DBOEHM_GC_LIBRARIES=/usr/lib/x86_64-linux-gnu/libgc.a
-make -j$(nproc) fuzzers
-
-for fuzzer in extra/fuzzer/*; do
-    if [[ -f $fuzzer && -x $fuzzer ]]; then
-        cp $fuzzer $OUT
-    fi
-done
diff --git a/projects/immer/project.yaml b/projects/immer/project.yaml
deleted file mode 100644
index 8235c7f..0000000
--- a/projects/immer/project.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-homepage: "https://sinusoid.es/immer"
-language: c++
-primary_contact: "juanpe@sinusoid.al"
-main_repo: 'https://github.com/arximboldi/immer.git'
diff --git a/projects/inchi/Dockerfile b/projects/inchi/Dockerfile
deleted file mode 100644
index ce2f398..0000000
--- a/projects/inchi/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y wget make unzip git
-RUN wget https://www.inchi-trust.org/download/106/INCHI-1-SRC.zip
-RUN unzip INCHI-1-SRC.zip
-WORKDIR INCHI-1-SRC
-COPY build.sh *_fuzzer.c $SRC/
diff --git a/projects/inchi/build.sh b/projects/inchi/build.sh
deleted file mode 100644
index 50c3314..0000000
--- a/projects/inchi/build.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-$CC $CFLAGS -Wno-everything -DTARGET_API_LIB -DCOMPILE_ANSI_ONLY -ansi -c \
-    INCHI_BASE/src/*.c INCHI_API/libinchi/src/*.c INCHI_API/libinchi/src/ixa/*.c
-ar rcs $WORK/libinchi.a *.o
-
-for fuzzer in $SRC/*_fuzzer.c; do
-  fuzzer_basename=$(basename -s .c $fuzzer)
-
-  $CC $CFLAGS \
-      -I INCHI_BASE/src/ \
-      -I INCHI_API/libinchi/src/ \
-      -I INCHI_API/libinchi/src/ixa/ \
-      $fuzzer -c -o ${fuzzer_basename}.o
-
-  $CXX $CXXFLAGS \
-      ${fuzzer_basename}.o -o $OUT/$fuzzer_basename \
-      $LIB_FUZZING_ENGINE $WORK/libinchi.a
-done
diff --git a/projects/inchi/inchi_input_fuzzer.c b/projects/inchi/inchi_input_fuzzer.c
deleted file mode 100644
index 6cacedf..0000000
--- a/projects/inchi/inchi_input_fuzzer.c
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stddef.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "inchi_api.h"
-
-// Define the maximum value for size_t. We return if the fuzzing input is equal
-// to kSizeMax because appending the null-terminator to the InChI buffer would
-// cause wraparound, thereby initializing the buffer to size 0.
-static const size_t kSizeMax = (size_t)-1;
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-
-  if (size == kSizeMax)
-    return 0;
-
-  char *szINCHISource = malloc(sizeof(char) * (size + 1));
-  memcpy(szINCHISource, data, size);
-  szINCHISource[size] = '\0'; // InChI string must be null-terminated
-
-  // Buffer lengths taken from InChI API reference, located at
-  // https://www.inchi-trust.org/download/104/InChI_API_Reference.pdf, page 24
-  char szINCHIKey[28], szXtra1[65], szXtra2[65];
-  GetINCHIKeyFromINCHI(szINCHISource, 0, 0, szINCHIKey, szXtra1, szXtra2);
-
-  inchi_InputINCHI inpInChI;
-  inpInChI.szInChI = szINCHISource;
-
-  inchi_Output out;
-  GetINCHIfromINCHI(&inpInChI, &out);
-
-  inchi_OutputStruct outStruct;
-  GetStructFromINCHI(&inpInChI, &outStruct);
-
-  free(szINCHISource);
-  FreeINCHI(&out);
-  FreeStructFromINCHI(&outStruct);
-
-  return 0;
-}
diff --git a/projects/inchi/project.yaml b/projects/inchi/project.yaml
deleted file mode 100644
index 360948d..0000000
--- a/projects/inchi/project.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-homepage: "https://www.inchi-trust.org/"
-language: c
-primary_contact: "member-info@inchi-trust.org"
-sanitizers:
-  - address
diff --git a/projects/influxdb/Dockerfile b/projects/influxdb/Dockerfile
deleted file mode 100644
index e00af14..0000000
--- a/projects/influxdb/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-MAINTAINER william@influxdata.com
-RUN go get github.com/influxdata/influxdb
-RUN go get github.com/dgrijalva/jwt-go
-
-COPY build.sh $SRC/
-WORKDIR $SRC/
diff --git a/projects/influxdb/build.sh b/projects/influxdb/build.sh
deleted file mode 100644
index 69c86ed..0000000
--- a/projects/influxdb/build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-
-compile_go_fuzzer github.com/influxdata/influxdb/jsonweb FuzzJsonWeb fuzzjsonweb
diff --git a/projects/influxdb/project.yaml b/projects/influxdb/project.yaml
deleted file mode 100644
index 23b3f88..0000000
--- a/projects/influxdb/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/influxdata/influxdb"
-language: go
-primary_contact: "william@influxdata.com"
-auto_ccs:
-  - "palbert@influxdata.com"
-  - "ryan@influxdata.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-disabled: true
-main_repo: 'https://github.com/influxdata/influxdb'
diff --git a/projects/ipfs/Dockerfile b/projects/ipfs/Dockerfile
deleted file mode 100644
index aee4c4c..0000000
--- a/projects/ipfs/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/ipfs/go-datastore
-
-COPY build.sh $SRC/
-WORKDIR $SRC/go-datastore
diff --git a/projects/ipfs/build.sh b/projects/ipfs/build.sh
deleted file mode 100755
index e1d577c..0000000
--- a/projects/ipfs/build.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd fuzz
-
-function compile_ds_fuzzer {
-  fuzzer=$1
-
-  if [ $# == 2 ]; then
-    rm provider* || true
-    DS_PROVIDERS="$2" go generate
-  fi
-
-  compile_go_fuzzer github.com/ipfs/go-datastore/fuzz Fuzz $fuzzer
-}
-
-compile_ds_fuzzer ipfs_ds_flatfs
-compile_ds_fuzzer ipfs_ds_badger "github.com/ipfs/go-ds-badger"
-compile_ds_fuzzer ipfs_ds_badger2 "github.com/ipfs/go-ds-badger2"
-
diff --git a/projects/ipfs/project.yaml b/projects/ipfs/project.yaml
deleted file mode 100644
index 72a5e90..0000000
--- a/projects/ipfs/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/ipfs/go-datastore"
-primary_contact: "will.scott@protocol.ai"
-auto_ccs :
-- "stebalien@protocol.ai"
-language: go
-fuzzing_engines:
-- libfuzzer
-sanitizers:
-- address
-main_repo: 'https://github.com/ipfs/go-datastore'
diff --git a/projects/iroha/Dockerfile b/projects/iroha/Dockerfile
index 8a3e83e..a50decf 100644
--- a/projects/iroha/Dockerfile
+++ b/projects/iroha/Dockerfile
@@ -15,19 +15,41 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER konstantin@soramitsu.co.jp
   
 RUN set -e; \
     apt-get update && \
     apt-get -y --no-install-recommends install libicu-dev \
         apt-utils git curl wget unzip tar; \
     apt-get -y clean
-
-RUN git clone --depth 1 --single-branch --branch master https://github.com/hyperledger/iroha.git
+     
+RUN wget https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4-Linux-x86_64.tar.gz && tar -xzvf cmake-3.14.4-Linux-x86_64.tar.gz && cp -a cmake-3.14.4-Linux-x86_64/bin/. /usr/bin/ && cp -a cmake-3.14.4-Linux-x86_64/share/. /usr/share/
+  
+  
+# Get *your* source code here.
+RUN git clone --depth 1 https://github.com/hyperledger/iroha.git
 
 WORKDIR iroha
 
-RUN cp -R $SRC/iroha/vcpkg /tmp/vcpkg-vars
+RUN cp -R $SRC/iroha/vcpkg_old /tmp/vcpkg-vars
 
-RUN ["bash", "/tmp/vcpkg-vars/oss/build_deps.sh"]
+RUN set -e; \
+    git clone https://github.com/microsoft/vcpkg /tmp/vcpkg; \
+    (cd /tmp/vcpkg ; git checkout $(cat /tmp/vcpkg-vars/VCPKG_COMMIT_SHA)); \
+    for i in /tmp/vcpkg-vars/patches/*.patch; do git -C /tmp/vcpkg apply $i; done; \
+    for i in /tmp/vcpkg-vars/patches/oss/*.patch; do git -C /tmp/vcpkg apply $i; done; \
+    sh /tmp/vcpkg/bootstrap-vcpkg.sh; \
+    /tmp/vcpkg/vcpkg install $(cat /tmp/vcpkg-vars/VCPKG_BOOST_LOCALE_DEPS_LIST | cut -d':' -f1 | tr '\n' ' '); \
+    (cd /tmp/vcpkg ; git checkout -- scripts/toolchains/linux.cmake); \
+    (cd /tmp/vcpkg ; git apply /tmp/vcpkg-vars/patches/oss/0002-vcpkg-dependencies-flags.patch); \
+    /tmp/vcpkg/vcpkg install boost-locale; \
+    (cd /tmp/vcpkg ; git apply /tmp/vcpkg-vars/patches/oss/0003-vcpkg-dependencies-sanitizer.patch); \
+    /tmp/vcpkg/vcpkg install $(sed 's/grpc://' /tmp/vcpkg-vars/VCPKG_DEPS_LIST | cut -d':' -f1 | tr '\n' ' '); \
+    bash -c 'function bumper { while sleep 1; do echo bump; done; }; function run_with_bumper { bumper & p=$!; $@; kill $p; }; ASAN_OPTIONS=detect_leaks=0 run_with_bumper /tmp/vcpkg/vcpkg install grpc'; \ 
+    /tmp/vcpkg/vcpkg install --head $(cat /tmp/vcpkg-vars/VCPKG_HEAD_DEPS_LIST | cut -d':' -f1 | tr '\n' ' '); \
+    /tmp/vcpkg/vcpkg export $(/tmp/vcpkg/vcpkg list | cut -d':' -f1 | tr '\n' ' ') --raw --output=dependencies; \
+    mv /tmp/vcpkg/dependencies /opt/dependencies; \
+    chmod +x /opt/dependencies/installed/x64-linux/tools/protobuf/protoc*; \
+    rm -rf /tmp/vcpkg*
 
 COPY build.sh $SRC/
diff --git a/projects/iroha/project.yaml b/projects/iroha/project.yaml
index c44a2b1..dc5b2bf 100644
--- a/projects/iroha/project.yaml
+++ b/projects/iroha/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/hyperledger/iroha"
-language: c++
 primary_contact: "boldrev@soramitsu.co.jp"
 auto_ccs:
   - "andrei@soramitsu.co.jp"
@@ -7,5 +6,4 @@
   - "igor@soramitsu.co.jp"
   - "gorbachev@soramitsu.co.jp"
 sanitizers:
-  - address
-main_repo: 'https://github.com/hyperledger/iroha.git'
+  - address
\ No newline at end of file
diff --git a/projects/irssi/Dockerfile b/projects/irssi/Dockerfile
index 5ec650f..7d2c694 100644
--- a/projects/irssi/Dockerfile
+++ b/projects/irssi/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER joseph.bisch@gmail.com
 RUN apt-get update && apt-get install -y pkg-config libncurses5-dev libssl-dev python3-pip
 RUN pip3 install -U meson ninja
 RUN git clone https://github.com/irssi/irssi
diff --git a/projects/irssi/project.yaml b/projects/irssi/project.yaml
index aa119af..7429a1c 100644
--- a/projects/irssi/project.yaml
+++ b/projects/irssi/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/irssi/irssi"
-language: c++
 primary_contact: "ahf@irssi.org"
 auto_ccs:
   - "dx@dxzone.com.ar"
@@ -9,4 +8,3 @@
 sanitizers:
   - address
   - undefined
-main_repo: 'https://github.com/irssi/irssi'
diff --git a/projects/istio/Dockerfile b/projects/istio/Dockerfile
deleted file mode 100644
index 4ba44e2..0000000
--- a/projects/istio/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/istio/istio
-COPY build.sh $SRC/
-WORKDIR $SRC/istio
diff --git a/projects/istio/build.sh b/projects/istio/build.sh
deleted file mode 100644
index cb148e8..0000000
--- a/projects/istio/build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-compile_go_fuzzer ./tests/fuzz FuzzParseInputs fuzz_parse_inputs
-compile_go_fuzzer ./tests/fuzz FuzzParseAndBuildSchema fuzz_parse_and_build_schema
diff --git a/projects/istio/project.yaml b/projects/istio/project.yaml
deleted file mode 100644
index f877df6..0000000
--- a/projects/istio/project.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-homepage: "https://github.com/istio/istio"
-primary_contact: "istio-security-vulnerability-reports@googlegroups.com"
-auto_ccs :
-  - "adam@adalogics.com"
-  - "howardjohn@google.com"
-  - "kconner@redhat.com"
-  - "bavery@redhat.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/istio/istio'
diff --git a/projects/jackson-core/Dockerfile b/projects/jackson-core/Dockerfile
deleted file mode 100644
index 1ff7850..0000000
--- a/projects/jackson-core/Dockerfile
+++ /dev/null
@@ -1,35 +0,0 @@
-
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y maven
-
-RUN git clone --depth 1 https://github.com/google/fuzzing
-RUN cat fuzzing/dictionaries/json.dict > $SRC/JsonFuzzer.dict
-
-RUN git clone --depth 1 https://github.com/dvyukov/go-fuzz-corpus && \
-    zip -j $SRC/JsonFuzzer_seed_corpus.zip go-fuzz-corpus/json/corpus/*
-
-ENV JACKSON_BRANCH=2.13
-
-RUN git clone --depth 1 --branch=$JACKSON_BRANCH https://github.com/FasterXML/jackson-core
-RUN git clone --depth 1 --branch=$JACKSON_BRANCH https://github.com/FasterXML/jackson-databind
-RUN git clone --depth 1 --branch=$JACKSON_BRANCH https://github.com/FasterXML/jackson-annotations
-
-COPY build.sh $SRC/
-COPY JsonFuzzer.java $SRC/
-WORKDIR $SRC/
diff --git a/projects/jackson-core/JsonFuzzer.java b/projects/jackson-core/JsonFuzzer.java
deleted file mode 100644
index 05c0bb3..0000000
--- a/projects/jackson-core/JsonFuzzer.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-import com.code_intelligence.jazzer.api.FuzzedDataProvider;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import java.io.IOException;
-
-public class JsonFuzzer {
-  public static void fuzzerTestOneInput(FuzzedDataProvider data) {
-    ObjectMapper mapper = new ObjectMapper();
-    if (data.consumeBoolean())
-      mapper.enable(JsonParser.Feature.ALLOW_COMMENTS);
-    if (data.consumeBoolean())
-      mapper.enable(JsonParser.Feature.ALLOW_SINGLE_QUOTES);
-    if (data.consumeBoolean())
-      mapper.enable(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES);
-    if (data.consumeBoolean())
-      mapper.enable(JsonParser.Feature.ALLOW_YAML_COMMENTS);
-    if (data.consumeBoolean())
-      mapper.enable(JsonParser.Feature.IGNORE_UNDEFINED);
-    if (data.consumeBoolean())
-      mapper.enable(JsonParser.Feature.STRICT_DUPLICATE_DETECTION);
-
-    try {
-      mapper.readTree(data.consumeRemainingAsBytes());
-    } catch (IOException ignored) {
-    }
-  }
-}
diff --git a/projects/jackson-core/build.sh b/projects/jackson-core/build.sh
deleted file mode 100644
index 5cbf19c..0000000
--- a/projects/jackson-core/build.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Copy seed corpus and dictionary.
-mv $SRC/{*.zip,*.dict} $OUT
-
-MAVEN_ARGS="-P!java14+ -Dmaven.test.skip=true -Djavac.src.version=15 -Djavac.target.version=15"
-
-DEPENDENCIES="jackson-core jackson-databind jackson-annotations"
-for dependency in $DEPENDENCIES; do
-  cd $SRC/$dependency
-  mvn package $MAVEN_ARGS
-  current_version=$(mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate \
-  -Dexpression=project.version -q -DforceStdout)
-  cp "target/$dependency-$current_version.jar" $OUT/$dependency.jar
-done
-
-ALL_JARS=$(echo $DEPENDENCIES | xargs printf -- "%s.jar ")
-
-# The classpath at build-time includes the project jars in $OUT as well as the
-# Jazzer API.
-BUILD_CLASSPATH=$(echo $ALL_JARS | xargs printf -- "$OUT/%s:"):$JAZZER_API_PATH
-
-# All .jar and .class files lie in the same directory as the fuzzer at runtime.
-RUNTIME_CLASSPATH=$(echo $ALL_JARS | xargs printf -- "\$this_dir/%s:"):\$this_dir
-
-for fuzzer in $(find $SRC -name '*Fuzzer.java'); do
-  fuzzer_basename=$(basename -s .java $fuzzer)
-  javac -cp $BUILD_CLASSPATH $fuzzer
-  cp $SRC/$fuzzer_basename.class $OUT/
-
-  # Create an execution wrapper that executes Jazzer with the correct arguments.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_LIBRARY_PATH=\"$JVM_LD_LIBRARY_PATH\":\$this_dir \
-\$this_dir/jazzer_driver --agent_path=\$this_dir/jazzer_agent_deploy.jar \
---cp=$RUNTIME_CLASSPATH \
---target_class=$fuzzer_basename \
---jvm_args=\"-Xmx2048m\" \
-\$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/jackson-core/project.yaml b/projects/jackson-core/project.yaml
deleted file mode 100644
index 90c85c5..0000000
--- a/projects/jackson-core/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/FasterXML/jackson-core"
-language: jvm
-primary_contact: "tatu@fasterxml.com"
-auto_ccs:
-  - "meumertzheim@code-intelligence.com"
-fuzzing_engines:
-  - libfuzzer
-main_repo: "https://github.com/FasterXML/jackson-core"
-sanitizers:
-  - address
diff --git a/projects/jackson-dataformats-binary/CborFuzzer.java b/projects/jackson-dataformats-binary/CborFuzzer.java
deleted file mode 100644
index e0f9a48..0000000
--- a/projects/jackson-dataformats-binary/CborFuzzer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.dataformat.cbor.databind.CBORMapper;
-import java.io.IOException;
-
-public class CborFuzzer {
-  public static void fuzzerTestOneInput(byte[] input) {
-    ObjectMapper mapper = new CBORMapper();
-    try {
-      mapper.readTree(input);
-    } catch (IOException ignored) {
-    }
-  }
-}
diff --git a/projects/jackson-dataformats-binary/Dockerfile b/projects/jackson-dataformats-binary/Dockerfile
deleted file mode 100644
index 0e4ea82..0000000
--- a/projects/jackson-dataformats-binary/Dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y maven
-
-ENV JACKSON_BRANCH=2.13
-
-RUN git clone --depth 1 --branch=$JACKSON_BRANCH https://github.com/FasterXML/jackson-dataformats-binary
-RUN git clone --depth 1 --branch=$JACKSON_BRANCH https://github.com/FasterXML/jackson-databind
-RUN git clone --depth 1 --branch=$JACKSON_BRANCH https://github.com/FasterXML/jackson-core
-RUN git clone --depth 1 --branch=$JACKSON_BRANCH https://github.com/FasterXML/jackson-annotations
-
-COPY build.sh $SRC/
-COPY CborFuzzer.java SmileFuzzer.java $SRC/
-WORKDIR $SRC/
diff --git a/projects/jackson-dataformats-binary/SmileFuzzer.java b/projects/jackson-dataformats-binary/SmileFuzzer.java
deleted file mode 100644
index 1d179fe..0000000
--- a/projects/jackson-dataformats-binary/SmileFuzzer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.dataformat.smile.databind.SmileMapper;
-import java.io.IOException;
-
-public class SmileFuzzer {
-  public static void fuzzerTestOneInput(byte[] input) {
-    ObjectMapper mapper = new SmileMapper();
-    try {
-      mapper.readTree(input);
-    } catch (IOException ignored) {
-    }
-  }
-}
diff --git a/projects/jackson-dataformats-binary/build.sh b/projects/jackson-dataformats-binary/build.sh
deleted file mode 100644
index 3c3c0af..0000000
--- a/projects/jackson-dataformats-binary/build.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-MAVEN_ARGS="-P!java14+ -Dmaven.test.skip=true -Djavac.src.version=15 -Djavac.target.version=15"
-
-cd $SRC/jackson-dataformats-binary
-mvn package $MAVEN_ARGS
-CURRENT_VERSION=$(mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate \
- -Dexpression=project.version -q -DforceStdout)
-DATAFORMAT_PREFIX=jackson-dataformat
-cp "cbor/target/$DATAFORMAT_PREFIX-cbor-$CURRENT_VERSION.jar" $OUT/$DATAFORMAT_PREFIX-cbor.jar
-cp "smile/target/$DATAFORMAT_PREFIX-smile-$CURRENT_VERSION.jar" $OUT/$DATAFORMAT_PREFIX-smile.jar
-
-PROJECT_JARS="$DATAFORMAT_PREFIX-cbor.jar $DATAFORMAT_PREFIX-smile.jar"
-
-DEPENDENCIES="jackson-core jackson-databind jackson-annotations"
-for dependency in $DEPENDENCIES; do
-  cd $SRC/$dependency
-  mvn package $MAVEN_ARGS
-  current_version=$(mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate \
-  -Dexpression=project.version -q -DforceStdout)
-  cp "target/$dependency-$current_version.jar" $OUT/$dependency.jar
-done
-
-FUZZER_JARS=$(echo $DEPENDENCIES | xargs printf -- "%s.jar ")
-
-ALL_JARS="$PROJECT_JARS $FUZZER_JARS"
-
-# The classpath at build-time includes the project jars in $OUT as well as the
-# Jazzer API.
-BUILD_CLASSPATH=$(echo $ALL_JARS | xargs printf -- "$OUT/%s:"):$JAZZER_API_PATH
-
-# All .jar and .class files lie in the same directory as the fuzzer at runtime.
-RUNTIME_CLASSPATH=$(echo $ALL_JARS | xargs printf -- "\$this_dir/%s:"):\$this_dir
-
-for fuzzer in $(find $SRC -name '*Fuzzer.java'); do
-  fuzzer_basename=$(basename -s .java $fuzzer)
-  javac -cp $BUILD_CLASSPATH $fuzzer
-  cp $SRC/$fuzzer_basename.class $OUT/
-
-  # Create an execution wrapper that executes Jazzer with the correct arguments.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_LIBRARY_PATH=\"$JVM_LD_LIBRARY_PATH\":\$this_dir \
-\$this_dir/jazzer_driver --agent_path=\$this_dir/jazzer_agent_deploy.jar \
---cp=$RUNTIME_CLASSPATH \
---target_class=$fuzzer_basename \
---jvm_args=\"-Xmx2048m\" \
-\$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/jackson-dataformats-binary/project.yaml b/projects/jackson-dataformats-binary/project.yaml
deleted file mode 100644
index c556cce..0000000
--- a/projects/jackson-dataformats-binary/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/FasterXML/jackson-dataformats-binary"
-language: jvm
-primary_contact: "tatu@fasterxml.com"
-auto_ccs:
-  - "meumertzheim@code-intelligence.com"
-fuzzing_engines:
-  - libfuzzer
-main_repo: "https://github.com/FasterXML/jackson-dataformats-binary"
-sanitizers:
-  - address
diff --git a/projects/janet/Dockerfile b/projects/janet/Dockerfile
deleted file mode 100755
index 0a24e47..0000000
--- a/projects/janet/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake
-RUN git clone https://github.com/janet-lang/janet
-
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/janet/build.sh b/projects/janet/build.sh
deleted file mode 100755
index 0627307..0000000
--- a/projects/janet/build.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-export CFLAGS="$CFLAGS -fPIC"
-cd janet
-make
-
-clang $CFLAGS -std=c99 -Isrc/include -Isrc/conf -fPIC  -o fuzz_dostring.o -c ./test/fuzzers/fuzz_dostring.c
-clang++ $CXXFLAGS $LIB_FUZZING_ENGINE fuzz_dostring.o build/libjanet.a -o $OUT/fuzz_dostring
diff --git a/projects/janet/project.yaml b/projects/janet/project.yaml
deleted file mode 100755
index 891df2e..0000000
--- a/projects/janet/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/janet-lang/janet"
-primary_contact: "calsrose@gmail.com"
-language: c++
-auto_ccs:
-  - "david@adalogics.com"
-main_repo: 'https://github.com/janet-lang/janet'
diff --git a/projects/jansson/Dockerfile b/projects/jansson/Dockerfile
index fc5fef3..dd0ed50 100644
--- a/projects/jansson/Dockerfile
+++ b/projects/jansson/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER cmeister2@gmail.com
 
 RUN git clone --depth 1 https://github.com/akheron/jansson.git /src/jansson
 
diff --git a/projects/jansson/project.yaml b/projects/jansson/project.yaml
index 0962237..0aaa7c0 100644
--- a/projects/jansson/project.yaml
+++ b/projects/jansson/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/akheron/jansson"
-language: c++
 primary_contact: "git@cfware.com"
 auto_ccs:
   - "cmeister2@gmail.com"
@@ -10,4 +9,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/akheron/jansson.git'
diff --git a/projects/janus-gateway/Dockerfile b/projects/janus-gateway/Dockerfile
index f0c56cd..791997d 100644
--- a/projects/janus-gateway/Dockerfile
+++ b/projects/janus-gateway/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER toppi.ale@gmail.com
 RUN apt-get update && apt-get install -y \
 	autoconf autoconf-archive \
 	automake \
diff --git a/projects/janus-gateway/project.yaml b/projects/janus-gateway/project.yaml
index f2a640a..800eada 100644
--- a/projects/janus-gateway/project.yaml
+++ b/projects/janus-gateway/project.yaml
@@ -1,11 +1,23 @@
+# Copyright 2019 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
 homepage: "https://github.com/meetecho/janus-gateway"
-language: c++
 primary_contact: "toppi.ale@gmail.com"
-auto_ccs:
-  - "lminiero@gmail.com"
 sanitizers:
   - address
   - memory
   - undefined
 coverage_extra_args: -ignore-filename-regex=.*glib.* -ignore-filename-regex=.*log.c
-main_repo: 'https://github.com/meetecho/janus-gateway.git'
diff --git a/projects/java-example/Dockerfile b/projects/java-example/Dockerfile
deleted file mode 100644
index 316e9a8..0000000
--- a/projects/java-example/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-COPY build.sh $SRC/
-
-COPY ExampleFuzzerNative.h ExampleFuzzerNative.cpp $SRC/
-COPY ExampleFuzzer.java ExampleValueProfileFuzzer.java ExampleFuzzerNative.java default.options $SRC/
-
-WORKDIR $SRC/
diff --git a/projects/java-example/ExampleFuzzer.java b/projects/java-example/ExampleFuzzer.java
deleted file mode 100644
index 4dde09a..0000000
--- a/projects/java-example/ExampleFuzzer.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-import com.code_intelligence.jazzer.api.FuzzedDataProvider;
-import java.security.SecureRandom;
-
-public class ExampleFuzzer {
-  public static void fuzzerInitialize() {
-    // Optional initialization to be run before the first call to fuzzerTestOneInput.
-  }
-
-  public static void fuzzerTestOneInput(FuzzedDataProvider data) {
-    String input = data.consumeRemainingAsString();
-    long random = 123123132;
-    if (input.startsWith("magicstring" + random) && input.length() > 30
-        && input.charAt(25) == 'C') {
-      throw new IllegalStateException("Not reached");
-    }
-  }
-}
diff --git a/projects/java-example/ExampleFuzzerNative.cpp b/projects/java-example/ExampleFuzzerNative.cpp
deleted file mode 100644
index 7ae0de8..0000000
--- a/projects/java-example/ExampleFuzzerNative.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-#include "ExampleFuzzerNative.h"
-
-#include <string>
-
-// simple function containing a crash that requires coverage and string compare
-// instrumentation for the fuzzer to find
-void parseInternal(const std::string &input) {
-  if (input[0] == 'a' && input[1] == 'b' && input[5] == 'c') {
-    if (input.find("secret_in_native_library") != std::string::npos) {
-      // BOOM
-      *(char *)1 = 2;
-    }
-  }
-}
-
-JNIEXPORT jboolean JNICALL Java_ExampleFuzzerNative_parse(
-    JNIEnv *env, jobject o, jstring bytes) {
-  const char *input(env->GetStringUTFChars(bytes, nullptr));
-  parseInternal(input);
-  env->ReleaseStringUTFChars(bytes, input);
-  return false;
-}
diff --git a/projects/java-example/ExampleFuzzerNative.h b/projects/java-example/ExampleFuzzerNative.h
deleted file mode 100644
index 7c9b8a5..0000000
--- a/projects/java-example/ExampleFuzzerNative.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-/* Header for class ExampleFuzzerNative */
-
-#ifndef _Included_ExampleFuzzerNative
-#define _Included_ExampleFuzzerNative
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*
- * Class:     ExampleFuzzerNative
- * Method:    parse
- * Signature: (Ljava/lang/String;)Z
- */
-JNIEXPORT jboolean JNICALL
-Java_ExampleFuzzerNative_parse(JNIEnv *, jobject, jstring);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/projects/java-example/ExampleFuzzerNative.java b/projects/java-example/ExampleFuzzerNative.java
deleted file mode 100644
index daf75fa..0000000
--- a/projects/java-example/ExampleFuzzerNative.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-import com.code_intelligence.jazzer.api.FuzzedDataProvider;
-
-public class ExampleFuzzerNative {
-  static {
-    System.loadLibrary("native");
-  }
-
-  public static void fuzzerTestOneInput(FuzzedDataProvider data) {
-    int val = data.consumeInt();
-    String stringData = data.consumeRemainingAsString();
-    if (val == 17759716 && stringData.length() > 10 && stringData.contains("jazzer")) {
-      // call native function which contains a crash
-      parse(stringData);
-    }
-  }
-
-  private static native boolean parse(String bytes);
-}
diff --git a/projects/java-example/ExampleValueProfileFuzzer.java b/projects/java-example/ExampleValueProfileFuzzer.java
deleted file mode 100644
index 22b4ce5..0000000
--- a/projects/java-example/ExampleValueProfileFuzzer.java
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-import com.code_intelligence.jazzer.api.FuzzedDataProvider;
-import java.util.Base64;
-
-public class ExampleValueProfileFuzzer {
-  private static String base64(byte[] input) {
-    return Base64.getEncoder().encodeToString(input);
-  }
-
-  private static long insecureEncrypt(long input) {
-    long key = 0xefe4eb93215cb6b0L;
-    return input ^ key;
-  }
-
-  public static void fuzzerTestOneInput(FuzzedDataProvider data) {
-    // Without -use_value_profile=1, the fuzzer gets stuck here as there is no direct correspondence
-    // between the input bytes and the compared string. With value profile, the fuzzer can guess the
-    // expected input byte by byte, which takes linear rather than exponential time.
-    if (base64(data.consumeBytes(6)).equals("SmF6emVy")) {
-      long[] plaintextBlocks = data.consumeLongs(2);
-      if (plaintextBlocks.length != 2)
-        return;
-      if (insecureEncrypt(plaintextBlocks[0]) == 0x9fc48ee64d3dc090L) {
-        // Without --fake_pcs (enabled by default with -use_value_profile=1), the fuzzer would get
-        // stuck here as the value profile information for long comparisons would not be able to
-        // distinguish between this comparison and the one above.
-        if (insecureEncrypt(plaintextBlocks[1]) == 0x888a82ff483ad9c2L) {
-          mustNeverBeCalled();
-        }
-      }
-    }
-  }
-
-  private static void mustNeverBeCalled() {
-    throw new IllegalStateException("mustNeverBeCalled has been called");
-  }
-}
diff --git a/projects/java-example/build.sh b/projects/java-example/build.sh
deleted file mode 100755
index 63f4c95..0000000
--- a/projects/java-example/build.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Build native library.
-JVM_INCLUDES="-I$JAVA_HOME/include -I$JAVA_HOME/include/linux"
-$CXX $CXXFLAGS $JVM_INCLUDES -fPIC -shared \
-    ExampleFuzzerNative.cpp -o $OUT/libnative.so
-
-BUILD_CLASSPATH=$JAZZER_API_PATH
-
-# All class files lie in the same directory as the fuzzer at runtime.
-RUNTIME_CLASSPATH=\$this_dir
-
-for fuzzer in $(find $SRC -name '*Fuzzer.java' -or -name '*FuzzerNative.java'); do
-  fuzzer_basename=$(basename -s .java $fuzzer)
-  javac -cp $BUILD_CLASSPATH $fuzzer
-  cp $SRC/$fuzzer_basename.class $OUT/
-
-  if [[ $fuzzer_basename == *FuzzerNative ]]; then
-    driver=jazzer_driver_asan
-  else
-    driver=jazzer_driver
-  fi
-
-  cp default.options $OUT/"$fuzzer_basename".options
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_LIBRARY_PATH=\"$JVM_LD_LIBRARY_PATH\":\$this_dir \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$driver --agent_path=\$this_dir/jazzer_agent_deploy.jar \
---cp=$RUNTIME_CLASSPATH \
---target_class=$fuzzer_basename \
---jvm_args=\"-Xmx2048m\" \
-\$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/java-example/default.options b/projects/java-example/default.options
deleted file mode 100644
index 5931803..0000000
--- a/projects/java-example/default.options
+++ /dev/null
@@ -1,3 +0,0 @@
-[asan]
-handle_segv=1
-allow_user_segv_handler=1
diff --git a/projects/java-example/project.yaml b/projects/java-example/project.yaml
deleted file mode 100644
index e71c405..0000000
--- a/projects/java-example/project.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-homepage: "https://github.com/CodeIntelligenceTesting/jazzer"
-language: jvm
-primary_contact: "meumertzheim@code-intelligence.com"
-fuzzing_engines:
-  - libfuzzer
-main_repo: "https://github.com/CodeIntelligenceTesting/jazzer"
-sanitizers:
-  - address
diff --git a/projects/jbig2dec/Dockerfile b/projects/jbig2dec/Dockerfile
index 22d95b7..c0ff588 100644
--- a/projects/jbig2dec/Dockerfile
+++ b/projects/jbig2dec/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER sebastian.rasmussen@artifex.com
 RUN apt-get update && apt-get install -y make libtool pkg-config vim libreadline-dev wget autoconf
 RUN git clone --recursive --depth 1 git://git.ghostscript.com/jbig2dec.git jbig2dec
 RUN mkdir tests
diff --git a/projects/jbig2dec/jbig2_fuzzer.cc b/projects/jbig2dec/jbig2_fuzzer.cc
index 4b94f2c..fda32f6 100644
--- a/projects/jbig2dec/jbig2_fuzzer.cc
+++ b/projects/jbig2dec/jbig2_fuzzer.cc
@@ -23,104 +23,85 @@
 
 #include "jbig2.h"
 
-#define ALIGNMENT ((size_t) 16)
-#define KBYTE ((size_t) 1024)
-#define MBYTE (1024 * KBYTE)
-#define GBYTE (1024 * MBYTE)
-#define MAX_ALLOCATION (1 * GBYTE)
+#define ALIGNMENT 16
+#define MAX_ALLOCATION (1024 * 1024 * 1024)
 
-static size_t used;
+static uint64_t total = 0;
 
-static void *jbig2_fuzzer_reached_limit(size_t oldsize, size_t size)
+static void *jbig2_alloc(Jbig2Allocator *allocator, size_t size)
 {
-  if (oldsize == 0)
-    fprintf(stderr, "limit: %zu Mbyte used: %zu Mbyte allocation: %zu: limit reached\n", MAX_ALLOCATION / MBYTE, used / MBYTE, size);
-  else
-    fprintf(stderr, "limit: %zu Mbyte used: %zu Mbyte reallocation: %zu -> %zu: limit reached\n", MAX_ALLOCATION / MBYTE, used / MBYTE, oldsize, size);
-  fflush(0);
-  return NULL;
-}
-
-static void *jbig2_fuzzer_alloc(Jbig2Allocator *allocator, size_t size)
-{
-  char *ptr = NULL;
+  void *ptr;
 
   if (size == 0)
     return NULL;
+
+  ptr = malloc(size + ALIGNMENT);
+  memcpy(ptr, &size, sizeof(size));
+  total += size + ALIGNMENT;
+
+  return (unsigned char *) ptr + ALIGNMENT;
+}
+
+static void jbig2_free(Jbig2Allocator *allocator, void *p)
+{
+  int size;
+
+  if (p == NULL)
+    return;
+
+  memcpy(&size, (unsigned char *) p - ALIGNMENT, sizeof(size));
+  total -= size + ALIGNMENT;
+  free((unsigned char *) p - ALIGNMENT);
+}
+
+static void *jbig2_realloc(Jbig2Allocator *allocator, void *p, size_t size)
+{
+  unsigned char *oldp = p ? (unsigned char *) p - ALIGNMENT : NULL;
+
   if (size > SIZE_MAX - ALIGNMENT)
     return NULL;
-  if (size + ALIGNMENT > MAX_ALLOCATION - used)
-    return jbig2_fuzzer_reached_limit(0, size + ALIGNMENT);
 
-  ptr = (char *) malloc(size + ALIGNMENT);
-  if (ptr == NULL)
+  if (size > MAX_ALLOCATION - ALIGNMENT - total)
     return NULL;
 
-  memcpy(ptr, &size, sizeof(size));
-  used += size + ALIGNMENT;
+  if (oldp == NULL)
+  {
+    if (size == 0)
+      return NULL;
 
-  return ptr + ALIGNMENT;
-}
-
-static void jbig2_fuzzer_free(Jbig2Allocator *allocator, void *ptr)
-{
-  size_t size;
-
-  if (ptr == NULL)
-    return;
-  if (ptr < (void *) ALIGNMENT)
-    return;
-
-  ptr = (char *) ptr - ALIGNMENT;
-  memcpy(&size, ptr, sizeof(size));
-
-  used -= size + ALIGNMENT;
-  free(ptr);
-}
-
-static void *jbig2_fuzzer_realloc(Jbig2Allocator *allocator, void *old, size_t size)
-{
-  size_t oldsize;
-  char *ptr;
-
-  if (old == NULL)
-    return jbig2_fuzzer_alloc(allocator, size);
-  if (old < (void *) ALIGNMENT)
-    return NULL;
-
-  if (size == 0) {
-    jbig2_fuzzer_free(allocator, old);
-    return NULL;
+    p = malloc(size + ALIGNMENT);
   }
-  if (size > SIZE_MAX - ALIGNMENT)
-    return NULL;
+  else
+  {
+    int oldsize;
+    memcpy(&oldsize, oldp, sizeof(oldsize));
 
-  old = (char *) old - ALIGNMENT;
-  memcpy(&oldsize, old, sizeof(oldsize));
+    if (size == 0)
+    {
+      total -= oldsize + ALIGNMENT;
+      free(oldp);
+      return NULL;
+    }
 
-  if (size + ALIGNMENT > MAX_ALLOCATION - used + oldsize + ALIGNMENT)
-    return jbig2_fuzzer_reached_limit(oldsize + ALIGNMENT, size + ALIGNMENT);
+    p = realloc(oldp, size + ALIGNMENT);
+    if (p == NULL)
+      return NULL;
 
-  ptr = (char *) realloc(old, size + ALIGNMENT);
-  if (ptr == NULL)
-    return NULL;
+    total -= oldsize + ALIGNMENT;
+  }
 
-  used -= oldsize + ALIGNMENT;
-  memcpy(ptr, &size, sizeof(size));
-  used += size + ALIGNMENT;
-
-  return ptr + ALIGNMENT;
+  memcpy(p, &size, sizeof(size));
+  total += size + ALIGNMENT;
+  return (unsigned char *) p + ALIGNMENT;
 }
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   Jbig2Allocator allocator;
   Jbig2Ctx *ctx = NULL;
 
-  used = 0;
-
-  allocator.alloc = jbig2_fuzzer_alloc;
-  allocator.free = jbig2_fuzzer_free;
-  allocator.realloc = jbig2_fuzzer_realloc;
+  allocator.alloc = jbig2_alloc;
+  allocator.free = jbig2_free;
+  allocator.realloc = jbig2_realloc;
 
   ctx = jbig2_ctx_new(&allocator, (Jbig2Options) 0, NULL, NULL, NULL);
   if (jbig2_data_in(ctx, data, size) == 0)
diff --git a/projects/jbig2dec/project.yaml b/projects/jbig2dec/project.yaml
index 7f14e07..e7b3df1 100644
--- a/projects/jbig2dec/project.yaml
+++ b/projects/jbig2dec/project.yaml
@@ -1,13 +1,5 @@
 homepage: "https://www.jbig2dec.com"
-language: c++
 primary_contact: sebastian.rasmussen@artifex.com
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
   - memory
-  - dataflow
-main_repo: 'git://git.ghostscript.com/jbig2dec.git'
diff --git a/projects/jsc/Dockerfile b/projects/jsc/Dockerfile
index d98b69e..ddd3543 100644
--- a/projects/jsc/Dockerfile
+++ b/projects/jsc/Dockerfile
@@ -15,9 +15,13 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER ochang@google.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool python ruby ninja-build bison flex gperf wget
-
+# Requires newer CMake than available in Ubuntu 16.04
+RUN wget -q -O - https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4-Linux-x86_64.sh > /tmp/install_cmake.sh && \
+    cd /usr && bash /tmp/install_cmake.sh -- --skip-license && \
+    rm /tmp/install_cmake.sh
 RUN git clone --depth 1 git://git.webkit.org/WebKit.git
-RUN wget https://github.com/unicode-org/icu/releases/download/release-66-1/icu4c-66_1-src.tgz && tar xzvf icu4c-66_1-src.tgz
+RUN wget http://download.icu-project.org/files/icu4c/60.1/icu4c-60_1-src.tgz && tar xzvf icu4c-60_1-src.tgz
 WORKDIR WebKit
 COPY build.sh $SRC
diff --git a/projects/jsc/build.sh b/projects/jsc/build.sh
index b2e3adc..2e722bd 100755
--- a/projects/jsc/build.sh
+++ b/projects/jsc/build.sh
@@ -21,6 +21,8 @@
 cd $SRC/icu/source
 ./configure --disable-shared --enable-static --disable-layoutex \
   --disable-tests --disable-samples --with-data-packaging=static --prefix=$DEPS_PATH
+# ugly hack to avoid build error
+echo '#include <locale.h>' >>i18n/digitlst.h
 make install -j$(nproc)
 
 # Ugly ugly hack to get static linking to work for icu.
diff --git a/projects/jsc/project.yaml b/projects/jsc/project.yaml
index 1f1016f..a7dd02f 100644
--- a/projects/jsc/project.yaml
+++ b/projects/jsc/project.yaml
@@ -1,6 +1,8 @@
 homepage: https://webkit.org/
-language: c++
-primary_contact: "ddkilzer@apple.com"
+fuzzing_engines:
+  - none
+sanitizers:
+  - address
 auto_ccs:
   - "mark.lam@apple.com"
   - "akilsrin@apple.com"
@@ -8,9 +10,3 @@
   - "jfb@chromium.org"
   - "sbarati@apple.com"
   - "ysuzuki@apple.com"
-fuzzing_engines:
-  - none
-sanitizers:
-  - address
-blackbox: true
-main_repo: 'git://git.webkit.org/WebKit.git'
diff --git a/projects/json-c/Dockerfile b/projects/json-c/Dockerfile
index 3bb1222..c63d6b7 100644
--- a/projects/json-c/Dockerfile
+++ b/projects/json-c/Dockerfile
@@ -15,7 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake
+MAINTAINER chriswwolfe@gmail.com
+RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 https://github.com/json-c/json-c.git json-c
 WORKDIR json-c
 COPY build.sh *.cc *.dict $SRC/
diff --git a/projects/json-c/build.sh b/projects/json-c/build.sh
index 9f7128a..244504d 100755
--- a/projects/json-c/build.sh
+++ b/projects/json-c/build.sh
@@ -14,17 +14,17 @@
 # limitations under the License.
 #
 ################################################################################
-mkdir json-c-build
-cd json-c-build
-cmake -DBUILD_SHARED_LIBS=OFF ..
-make -j$(nproc)
-cd ..
+
+./autogen.sh
+./configure --enable-static --disable-shared
+make -j$(nproc) all
+ar rc json_c.a *.o
 
 cp $SRC/*.dict $OUT/
 
 for f in $SRC/*_fuzzer.cc; do
     fuzzer=$(basename "$f" _fuzzer.cc)
-    $CXX $CXXFLAGS -std=c++11 -I$SRC/json-c -I$SRC/json-c/json-c-build\
+    $CXX $CXXFLAGS -std=c++11 -I$SRC/json-c \
          $SRC/${fuzzer}_fuzzer.cc -o $OUT/${fuzzer}_fuzzer \
-         $LIB_FUZZING_ENGINE $SRC/json-c/json-c-build/libjson-c.a
+         $LIB_FUZZING_ENGINE $SRC/json-c/json_c.a
 done
diff --git a/projects/json-c/project.yaml b/projects/json-c/project.yaml
index 1491cd3..435a803 100644
--- a/projects/json-c/project.yaml
+++ b/projects/json-c/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://json-c.github.io/json-c/"
-language: c++
 primary_contact: "erh+git@nimenees.com"
 auto_ccs:
   - "chriswwolfe@gmail.com"
@@ -15,4 +14,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/json-c/json-c.git'
diff --git a/projects/json-sanitizer/DenylistFuzzer.java b/projects/json-sanitizer/DenylistFuzzer.java
deleted file mode 100644
index 4e73cfc..0000000
--- a/projects/json-sanitizer/DenylistFuzzer.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-import com.code_intelligence.jazzer.api.FuzzedDataProvider;
-import com.code_intelligence.jazzer.api.FuzzerSecurityIssueHigh;
-import com.code_intelligence.jazzer.api.FuzzerSecurityIssueMedium;
-import com.google.json.JsonSanitizer;
-
-public class DenylistFuzzer {
-  public static void fuzzerTestOneInput(FuzzedDataProvider data) {
-    String input = data.consumeRemainingAsString();
-    String output;
-    try {
-      output = JsonSanitizer.sanitize(input, 10);
-    } catch (ArrayIndexOutOfBoundsException e) {
-      // ArrayIndexOutOfBoundsException is expected if nesting depth is
-      // exceeded.
-      return;
-    }
-
-    // Check for forbidden substrings. As these would enable Cross-Site
-    // Scripting, treat every finding as a high severity vulnerability.
-    assert !output.contains("</script")
-        : new FuzzerSecurityIssueHigh("Output contains </script");
-    assert !output.contains("]]>")
-        : new FuzzerSecurityIssueHigh("Output contains ]]>");
-
-    // Check for more forbidden substrings. As these would not directly enable
-    // Cross-Site Scripting in general, but may impact script execution on the
-    // embedding page, treat each finding as a medium severity vulnerability.
-    assert !output.contains("<script")
-        : new FuzzerSecurityIssueMedium("Output contains <script");
-    assert !output.contains("<!--")
-        : new FuzzerSecurityIssueMedium("Output contains <!--");
-  }
-}
diff --git a/projects/json-sanitizer/Dockerfile b/projects/json-sanitizer/Dockerfile
deleted file mode 100644
index f36a136..0000000
--- a/projects/json-sanitizer/Dockerfile
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && apt-get install -y maven
-
-RUN git clone --depth 1 https://github.com/google/fuzzing
-RUN cat fuzzing/dictionaries/json.dict \
-        fuzzing/dictionaries/html.dict \
-        fuzzing/dictionaries/xml.dict \
-      > $SRC/DenylistFuzzer.dict
-RUN cp fuzzing/dictionaries/json.dict $SRC/IdempotenceFuzzer.dict
-RUN cp fuzzing/dictionaries/json.dict $SRC/ValidJsonFuzzer.dict
-
-RUN git clone --depth 1 https://github.com/dvyukov/go-fuzz-corpus && \
-    zip -q $SRC/DenylistFuzzer_seed_corpus.zip go-fuzz-corpus/json/corpus/* && \
-    zip -q $SRC/IdempotenceFuzzer_seed_corpus.zip go-fuzz-corpus/json/corpus/* && \
-    zip -q $SRC/ValidJsonFuzzer_seed_corpus.zip go-fuzz-corpus/json/corpus/*
-
-RUN git clone --depth 1 https://github.com/OWASP/json-sanitizer
-COPY build.sh $SRC/
-
-COPY DenylistFuzzer.java IdempotenceFuzzer.java ValidJsonFuzzer.java $SRC/
-
-WORKDIR $SRC/json-sanitizer
diff --git a/projects/json-sanitizer/IdempotenceFuzzer.java b/projects/json-sanitizer/IdempotenceFuzzer.java
deleted file mode 100644
index a42c91a..0000000
--- a/projects/json-sanitizer/IdempotenceFuzzer.java
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-import com.code_intelligence.jazzer.api.FuzzedDataProvider;
-
-import com.google.json.JsonSanitizer;
-
-public class IdempotenceFuzzer {
-  public static void fuzzerTestOneInput(FuzzedDataProvider data) {
-    String input = data.consumeRemainingAsString();
-    String output;
-    try {
-      output = JsonSanitizer.sanitize(input, 10);
-    } catch (ArrayIndexOutOfBoundsException e) {
-      // ArrayIndexOutOfBoundsException is expected if nesting depth is
-      // exceeded.
-      return;
-    }
-
-    // Ensure that sanitizing twice does not give different output
-    // (idempotence). Since failure to be idempotent is not a security issue in
-    // itself, fail with a regular AssertionError.
-    assert JsonSanitizer.sanitize(output).equals(output) : "Not idempotent";
-  }
-}
diff --git a/projects/json-sanitizer/ValidJsonFuzzer.java b/projects/json-sanitizer/ValidJsonFuzzer.java
deleted file mode 100644
index c8fbe03..0000000
--- a/projects/json-sanitizer/ValidJsonFuzzer.java
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-import com.code_intelligence.jazzer.api.FuzzedDataProvider;
-import com.code_intelligence.jazzer.api.FuzzerSecurityIssueLow;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.json.JsonSanitizer;
-
-public class ValidJsonFuzzer {
-  private static Gson gson = new Gson();
-
-  public static void fuzzerTestOneInput(FuzzedDataProvider data) {
-    String input = data.consumeRemainingAsString();
-    String output;
-    try {
-      output = JsonSanitizer.sanitize(input, 10);
-    } catch (ArrayIndexOutOfBoundsException e) {
-      // ArrayIndexOutOfBoundsException is expected if nesting depth is
-      // exceeded.
-      return;
-    }
-
-    // Check that the output is valid JSON. Invalid JSON may crash other parts
-    // of the application that trust the output of the sanitizer.
-    try {
-      Gson gson = new Gson();
-      gson.fromJson(output, JsonElement.class);
-    } catch (Exception e) {
-      throw new FuzzerSecurityIssueLow("Output is invalid JSON", e);
-    }
-  }
-}
diff --git a/projects/json-sanitizer/build.sh b/projects/json-sanitizer/build.sh
deleted file mode 100755
index 64df5e5..0000000
--- a/projects/json-sanitizer/build.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Move seed corpus and dictionary.
-mv $SRC/{*.zip,*.dict} $OUT
-
-# Build the json-sanitizer jar.
-CURRENT_VERSION=$(mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate \
--Dexpression=project.version -q -DforceStdout)
-mvn package
-cp "target/json-sanitizer-$CURRENT_VERSION.jar" $OUT/json-sanitizer.jar
-
-# The jar files containing the project (separated by spaces).
-PROJECT_JARS=json-sanitizer.jar
-
-# Get the fuzzer dependencies (gson).
-mvn dependency:copy -Dartifact=com.google.code.gson:gson:2.8.6 -DoutputDirectory=$OUT/
-
-# The jar files containing further dependencies of the fuzz targets (separated
-# by spaces).
-FUZZER_JARS=gson-2.8.6.jar
-
-# Build fuzzers in $OUT.
-ALL_JARS="$PROJECT_JARS $FUZZER_JARS"
-BUILD_CLASSPATH=$(echo $ALL_JARS | xargs printf -- "$OUT/%s:"):$JAZZER_API_PATH
-
-# All jars and class files lie in the same directory as the fuzzer at runtime.
-RUNTIME_CLASSPATH=$(echo $ALL_JARS | xargs printf -- "\$this_dir/%s:"):.:\$this_dir
-
-for fuzzer in $(find $SRC -name '*Fuzzer.java'); do
-  fuzzer_basename=$(basename -s .java $fuzzer)
-  javac -cp $BUILD_CLASSPATH $fuzzer
-  cp $SRC/$fuzzer_basename.class $OUT/
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_LIBRARY_PATH=\"$JVM_LD_LIBRARY_PATH\":\$this_dir \
-\$this_dir/jazzer_driver --agent_path=\$this_dir/jazzer_agent_deploy.jar \
---cp=$RUNTIME_CLASSPATH \
---target_class=$fuzzer_basename \
---jvm_args=\"-Xmx2048m\" \
-\$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/json-sanitizer/project.yaml b/projects/json-sanitizer/project.yaml
deleted file mode 100644
index 028335f..0000000
--- a/projects/json-sanitizer/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/OWASP/json-sanitizer"
-language: jvm
-primary_contact: "mikesamuel@gmail.com"
-auto_ccs:
-  - "meumertzheim@code-intelligence.com"
-fuzzing_engines:
-  - libfuzzer
-main_repo: "https://github.com/OWASP/json-sanitizer"
-sanitizers:
-  - address
diff --git a/projects/json/Dockerfile b/projects/json/Dockerfile
index 6bf74ed..18203ea 100644
--- a/projects/json/Dockerfile
+++ b/projects/json/Dockerfile
@@ -15,8 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER vitalybuka@chromium.org
 RUN apt-get update && apt-get install -y binutils make
 
 RUN git clone --depth 1 -b develop https://github.com/nlohmann/json.git
 WORKDIR json/
-COPY build.sh *.options parse_afl_fuzzer.dict $SRC/
+COPY build.sh *.options $SRC/
diff --git a/projects/json/build.sh b/projects/json/build.sh
index 3cf7802..d53a1b4 100755
--- a/projects/json/build.sh
+++ b/projects/json/build.sh
@@ -23,4 +23,3 @@
     FUZZER=$(basename $F .cpp)
     cp $SRC/fuzzer-parse.options $OUT/$FUZZER.options
 done
-cp $SRC/parse_afl_fuzzer.dict $OUT/
diff --git a/projects/json/parse_afl_fuzzer.dict b/projects/json/parse_afl_fuzzer.dict
deleted file mode 100644
index c9ced21..0000000
--- a/projects/json/parse_afl_fuzzer.dict
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# AFL dictionary for JSON
-# -----------------------
-#
-# Just the very basics.
-#
-# Inspired by a dictionary by Jakub Wilk <jwilk@jwilk.net>
-#
-
-"0"
-",0"
-":0"
-"0:"
-"-1.2e+3"
-
-"true"
-"false"
-"null"
-
-"\"\""
-",\"\""
-":\"\""
-"\"\":"
-
-"{}"
-",{}"
-":{}"
-"{\"\":0}"
-"{{}}"
-
-"[]"
-",[]"
-":[]"
-"[0]"
-"[[]]"
-
-"''"
-"\\"
-"\\b"
-"\\f"
-"\\n"
-"\\r"
-"\\t"
-"\\u0000"
-"\\x00"
-"\\0"
-"\\uD800\\uDC00"
-"\\uDBFF\\uDFFF"
-
-"\"\":0"
-"//"
-"/**/"
\ No newline at end of file
diff --git a/projects/json/project.yaml b/projects/json/project.yaml
index 83f48e2..0dada2a 100644
--- a/projects/json/project.yaml
+++ b/projects/json/project.yaml
@@ -1,10 +1,6 @@
 homepage: "https://github.com/nlohmann/json"
-language: c++
 primary_contact: "niels.lohmann@gmail.com"
-auto_ccs:
-  - "tanujgarg@google.com"
 sanitizers:
  - address
  - undefined
  - memory
-main_repo: 'https://github.com/nlohmann/json.git'
diff --git a/projects/json5format/Dockerfile b/projects/json5format/Dockerfile
deleted file mode 100644
index c0117a5..0000000
--- a/projects/json5format/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone --depth 1 https://github.com/google/json5format
-WORKDIR $SRC
-
-COPY build.sh $SRC/
diff --git a/projects/json5format/build.sh b/projects/json5format/build.sh
deleted file mode 100755
index c722bdb..0000000
--- a/projects/json5format/build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/json5format
-cargo fuzz build -O
-cp ./fuzz/target/x86_64-unknown-linux-gnu/release/fuzz_parse $OUT/fuzz_parse
diff --git a/projects/json5format/project.yaml b/projects/json5format/project.yaml
deleted file mode 100644
index e73905e..0000000
--- a/projects/json5format/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://crates.io/crates/json5format"
-main_repo: "https://github.com/google/json5format"
-primary_contact: "richkadel@google.com"
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-language: rust
-auto_ccs:
-  - "david@adalogics.com"
diff --git a/projects/jsoncons/Dockerfile b/projects/jsoncons/Dockerfile
deleted file mode 100755
index c3ade88..0000000
--- a/projects/jsoncons/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake
-RUN git clone https://github.com/danielaparker/jsoncons
-
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/jsoncons/build.sh b/projects/jsoncons/build.sh
deleted file mode 100755
index f53a06d..0000000
--- a/projects/jsoncons/build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-cd jsoncons/fuzzers
-
-# Ensure script is executable
-chmod +x ./build_fuzzers.sh
-./build_fuzzers.sh
diff --git a/projects/jsoncons/project.yaml b/projects/jsoncons/project.yaml
deleted file mode 100755
index f086507..0000000
--- a/projects/jsoncons/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/danielaparker/jsoncons"
-primary_contact: "danielaparker@gmail.com"
-language: c++
-auto_ccs :
-  - "david@adalogics.com"
-main_repo: 'https://github.com/danielaparker/jsoncons'
diff --git a/projects/jsoncpp/Dockerfile b/projects/jsoncpp/Dockerfile
index eefbce9..c649d70 100644
--- a/projects/jsoncpp/Dockerfile
+++ b/projects/jsoncpp/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2020 Google Inc.
+# Copyright 2019 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,10 +15,15 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update -y && apt-get install -y curl wget \
-    binutils cmake ninja-build liblzma-dev libz-dev pkg-config autoconf libtool
+RUN apt-get update && apt-get install -y build-essential make curl wget
+
+# Install latest cmake.
+RUN wget https://github.com/Kitware/CMake/releases/download/v3.14.5/cmake-3.14.5-Linux-x86_64.sh; \
+    chmod +x cmake-3.14.5-Linux-x86_64.sh; \
+    ./cmake-3.14.5-Linux-x86_64.sh --skip-license --prefix="/usr/local"
+
 RUN git clone --depth 1 https://github.com/open-source-parsers/jsoncpp
 WORKDIR jsoncpp
-RUN git clone --depth 1 https://github.com/google/libprotobuf-mutator.git
-RUN (mkdir LPM && cd LPM && cmake ../libprotobuf-mutator -GNinja -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON -DLIB_PROTO_MUTATOR_TESTING=OFF -DCMAKE_BUILD_TYPE=Release && ninja)
-COPY build.sh *.proto *.h *.cc $SRC/
+
+COPY build.sh $SRC/
+
diff --git a/projects/jsoncpp/build.sh b/projects/jsoncpp/build.sh
index 739dcd8..8bb8f00 100644
--- a/projects/jsoncpp/build.sh
+++ b/projects/jsoncpp/build.sh
@@ -1,5 +1,5 @@
 #!/bin/bash -eu
-# Copyright 2020 Google Inc.
+# Copyright 2018 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -24,21 +24,7 @@
 # Compile fuzzer.
 $CXX $CXXFLAGS -I../include $LIB_FUZZING_ENGINE \
     ../src/test_lib_json/fuzz.cpp -o $OUT/jsoncpp_fuzzer \
-    lib/libjsoncpp.a
+    src/lib_json/libjsoncpp.a
 
 # Add dictionary.
 cp $SRC/jsoncpp/src/test_lib_json/fuzz.dict $OUT/jsoncpp_fuzzer.dict
-
-if [[ $CFLAGS != *sanitize=memory* ]]; then
-# Compile json proto.
-rm -rf genfiles && mkdir genfiles && ../LPM/external.protobuf/bin/protoc json.proto --cpp_out=genfiles --proto_path=$SRC
-
-# Compile LPM fuzzer.
-$CXX $CXXFLAGS -I genfiles -I .. -I ../libprotobuf-mutator/ -I ../LPM/external.protobuf/include -I ../include $LIB_FUZZING_ENGINE \
-    $SRC/jsoncpp_fuzz_proto.cc genfiles/json.pb.cc $SRC/json_proto_converter.cc \
-    ../LPM/src/libfuzzer/libprotobuf-mutator-libfuzzer.a \
-    ../LPM/src/libprotobuf-mutator.a \
-    ../LPM/external.protobuf/lib/libprotobuf.a \
-    -o  $OUT/jsoncpp_proto_fuzzer \
-    lib/libjsoncpp.a
-fi
\ No newline at end of file
diff --git a/projects/jsoncpp/json.proto b/projects/jsoncpp/json.proto
deleted file mode 100644
index 8dd9de4..0000000
--- a/projects/jsoncpp/json.proto
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-// The proto definition for JSON format has been written based on
-// http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
-
-syntax = "proto2";
-
-package json_proto;
-
-message JsonParseAPI {
-  required int32 settings = 1;
-  required JsonObject object_value = 2;
-}
-
-message JsonObject {
-  required int32 settings = 1;
-  required string name = 2;
-  required JsonValue value = 3;
-}
-
-message JsonValue {
-  oneof value {
-    // Json value types:
-
-    // null: null, will be used when 'oneof' contains nothing
-
-    // object: another json object of any type
-    JsonObject object_value = 1;
-
-    // array: an array of values
-    ArrayValue array_value = 2;
-
-    // number: can be an integer, a float, an exponent
-    NumberValue number_value = 3;
-
-    // string: unicode string
-    StringValue string_value = 4;
-
-    // boolean: true or talse
-    BooleanValue boolean_value = 5;
-  }
-}
-
-message ArrayValue {
-  repeated JsonValue value = 1;
-}
-
-message NumberInteger {
-  required int64 value = 1;
-}
-
-message NumberFloat {
-  required double value = 1;
-}
-
-message NumberExponent {
-  required int32 base = 1;
-  required int32 exponent = 2;
-  required bool use_uppercase = 3;
-}
-
-message NumberExponentFrac {
-  required float base = 1;
-  required int32 exponent = 2;
-  required bool use_uppercase = 3;
-}
-
-message NumberValue {
-  required NumberInteger integer_value = 1;
-
-  // integer_value is used when oneof field below has nothing.
-  oneof value {
-    NumberFloat float_value = 2;
-    NumberExponent exponent_value = 3;
-    NumberExponentFrac exponent_frac_value = 4;
-  }
-}
-
-message StringValue {
-  required string value = 1;
-}
-
-message BooleanValue {
-  required bool value = 1;
-}
diff --git a/projects/jsoncpp/json_proto_converter.cc b/projects/jsoncpp/json_proto_converter.cc
deleted file mode 100644
index ed453be..0000000
--- a/projects/jsoncpp/json_proto_converter.cc
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-#include "json_proto_converter.h"
-
-namespace json_proto {
-
-void JsonProtoConverter::AppendArray(const ArrayValue& array_value) {
-  data_ << '[';
-  bool need_comma = false;
-  for (const auto& value : array_value.value()) {
-    // Trailing comma inside of an array makes JSON invalid, avoid adding that.
-    if (need_comma)
-      data_ << ',';
-    else
-      need_comma = true;
-
-    AppendValue(value);
-  }
-  data_ << ']';
-}
-
-void JsonProtoConverter::AppendNumber(const NumberValue& number_value) {
-  if (number_value.has_float_value()) {
-    data_ << number_value.float_value().value();
-  } else if (number_value.has_exponent_value()) {
-    auto value = number_value.exponent_value();
-    data_ << value.base();
-    data_ << (value.use_uppercase() ? 'E' : 'e');
-    data_ << value.exponent();
-  } else if (number_value.has_exponent_frac_value()) {
-    auto value = number_value.exponent_value();
-    data_ << value.base();
-    data_ << (value.use_uppercase() ? 'E' : 'e');
-    data_ << value.exponent();
-  } else {
-    data_ << number_value.integer_value().value();
-  }
-}
-
-void JsonProtoConverter::AppendObject(const JsonObject& json_object) {
-  data_ << '{' << '"' << json_object.name() << '"' << ':';
-  AppendValue(json_object.value());
-  data_ << '}';
-}
-
-void JsonProtoConverter::AppendValue(const JsonValue& json_value) {
-  if (json_value.has_object_value()) {
-    AppendObject(json_value.object_value());
-  } else if (json_value.has_array_value()) {
-    AppendArray(json_value.array_value());
-  } else if (json_value.has_number_value()) {
-    AppendNumber(json_value.number_value());
-  } else if (json_value.has_string_value()) {
-    data_ << '"' << json_value.string_value().value() << '"';
-  } else if (json_value.has_boolean_value()) {
-    data_ << (json_value.boolean_value().value() ? "true" : "false");
-  } else {
-    data_ << "null";
-  }
-}
-
-std::string JsonProtoConverter::Convert(const JsonObject& json_object) {
-  AppendObject(json_object);
-  return data_.str();
-}
-
-std::string JsonProtoConverter::Convert(
-    const json_proto::ArrayValue& json_array) {
-  AppendArray(json_array);
-  return data_.str();
-}
-
-}  // namespace json_proto
diff --git a/projects/jsoncpp/json_proto_converter.h b/projects/jsoncpp/json_proto_converter.h
deleted file mode 100644
index c354672..0000000
--- a/projects/jsoncpp/json_proto_converter.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-#ifndef JSON_PROTO_CONVERTER_H_
-#define JSON_PROTO_CONVERTER_H_
-
-#include <sstream>
-#include <string>
-
-#include "json.pb.h"
-
-namespace json_proto {
-
-class JsonProtoConverter {
- public:
-  std::string Convert(const json_proto::JsonObject&);
-  std::string Convert(const json_proto::ArrayValue&);
-
- private:
-  std::stringstream data_;
-
-  void AppendArray(const json_proto::ArrayValue&);
-  void AppendNumber(const json_proto::NumberValue&);
-  void AppendObject(const json_proto::JsonObject&);
-  void AppendValue(const json_proto::JsonValue&);
-};
-
-}  // namespace json_proto
-
-#endif  // TESTING_LIBFUZZER_PROTO_JSON_PROTO_CONVERTER_H_
diff --git a/projects/jsoncpp/jsoncpp_fuzz_proto.cc b/projects/jsoncpp/jsoncpp_fuzz_proto.cc
deleted file mode 100644
index 773821e..0000000
--- a/projects/jsoncpp/jsoncpp_fuzz_proto.cc
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-#include "json.pb.h"
-#include "json_proto_converter.h"
-#include "libprotobuf-mutator/src/libfuzzer/libfuzzer_macro.h"
-
-#include <cstdint>
-#include <json/config.h>
-#include <json/json.h>
-#include <memory>
-#include <string>
-#include <iostream>
-#include <cstddef>
-#include <stdint.h>
-#include <cstring>
-#include <iostream>
-
-namespace Json {
-class Exception;
-}
-
-void FuzzJson(std::string data_str, int32_t hash_settings) {
-  Json::CharReaderBuilder builder;
-
-  builder.settings_["failIfExtra"] = hash_settings & (1 << 0);
-  builder.settings_["allowComments_"] = hash_settings & (1 << 1);
-  builder.settings_["strictRoot_"] = hash_settings & (1 << 2);
-  builder.settings_["allowDroppedNullPlaceholders_"] = hash_settings & (1 << 3);
-  builder.settings_["allowNumericKeys_"] = hash_settings & (1 << 4);
-  builder.settings_["allowSingleQuotes_"] = hash_settings & (1 << 5);
-  builder.settings_["failIfExtra_"] = hash_settings & (1 << 6);
-  builder.settings_["rejectDupKeys_"] = hash_settings & (1 << 7);
-  builder.settings_["allowSpecialFloats_"] = hash_settings & (1 << 8);
-  builder.settings_["collectComments"] = hash_settings & (1 << 9);
-  builder.settings_["allowTrailingCommas_"] = hash_settings & (1 << 10);
-
-  std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
-  
-  const char* begin = data_str.c_str();
-  const char* end = begin + data_str.length();
-
-  Json::Value root;
-  try {
-    reader->parse(begin, end, &root, nullptr);
-  } catch (Json::Exception const&) {
-  }
-}
-
-DEFINE_PROTO_FUZZER(const json_proto::JsonParseAPI &json_proto) {
-  json_proto::JsonProtoConverter converter;
-  std::string data_str = converter.Convert(json_proto.object_value());
-  int32_t hash_settings = json_proto.settings();
-  FuzzJson(data_str, hash_settings);
-}
diff --git a/projects/jsoncpp/project.yaml b/projects/jsoncpp/project.yaml
index 8dc8f02..08e3581 100644
--- a/projects/jsoncpp/project.yaml
+++ b/projects/jsoncpp/project.yaml
@@ -1,10 +1,8 @@
 homepage: "https://github.com/open-source-parsers/jsoncpp/"
-language: c++
-primary_contact: "chenguopingdota@163.com"
+primary_contact: "cdunn2001@gmail.com"
 auto_ccs:
  - "jophba@chromium.org"
 sanitizers:
   - address
   - undefined
   - memory
-main_repo: 'https://github.com/open-source-parsers/jsoncpp'
diff --git a/projects/jsonnet/project.yaml b/projects/jsonnet/project.yaml
index 4b33850..e47162a 100644
--- a/projects/jsonnet/project.yaml
+++ b/projects/jsonnet/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/google/jsonnet"
-language: c++
 primary_contact: "dcunnin@google.com"
 auto_ccs:
   - "wwweiwang@google.com"
@@ -17,4 +16,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/google/jsonnet.git'
diff --git a/projects/jsonparser/Dockerfile b/projects/jsonparser/Dockerfile
deleted file mode 100644
index a5d91fa..0000000
--- a/projects/jsonparser/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/buger/jsonparser
-
-COPY build.sh $SRC/
-WORKDIR $SRC/jsonparser
diff --git a/projects/jsonparser/build.sh b/projects/jsonparser/build.sh
deleted file mode 100755
index 3b576e1..0000000
--- a/projects/jsonparser/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-./oss-fuzz-build.sh
diff --git a/projects/jsonparser/project.yaml b/projects/jsonparser/project.yaml
deleted file mode 100644
index 28b579a..0000000
--- a/projects/jsonparser/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/buger/jsonparser"
-primary_contact: "leonsbox@gmail.com"
-auto_ccs :
-  - "adam@adalogics.com"
-  - "leloucharcher@gmail.com"
-language: go
-fuzzing_engines:
-- libfuzzer
-sanitizers:
-- address
-main_repo: 'https://github.com/buger/jsonparser'
diff --git a/projects/jsonschema/Dockerfile b/projects/jsonschema/Dockerfile
deleted file mode 100644
index ffec717..0000000
--- a/projects/jsonschema/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN pip3 install hypothesis
-
-RUN git clone --depth=1 https://github.com/Julian/jsonschema
-WORKDIR $SRC/jsonschema
-
-COPY build.sh $SRC/
diff --git a/projects/jsonschema/build.sh b/projects/jsonschema/build.sh
deleted file mode 100644
index 71d4ad6..0000000
--- a/projects/jsonschema/build.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-pip3 install .
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find $SRC -name 'fuzz_*.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_PRELOAD=\$this_dir/sanitizer_with_fuzzer.so \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/jsonschema/project.yaml b/projects/jsonschema/project.yaml
deleted file mode 100644
index d7ac42b..0000000
--- a/projects/jsonschema/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/Julian/jsonschema"
-language: python
-primary_contact: "Julian+Security@GrayVines.com"
-auto_ccs:
-  - "david@adalogics.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
-main_repo: 'https://github.com/Julian/jsonschema'
diff --git a/projects/kamailio/Dockerfile b/projects/kamailio/Dockerfile
deleted file mode 100755
index 5b67dee..0000000
--- a/projects/kamailio/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y bison flex
-RUN git clone https://github.com/kamailio/kamailio
-
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/kamailio/build.sh b/projects/kamailio/build.sh
deleted file mode 100755
index 2b7c373..0000000
--- a/projects/kamailio/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/kamailio
-
-export CC_OPT="${CFLAGS}"
-export LD_EXTRA_OPTS="${CFLAGS}"
-
-sed -i 's/int main(/int main2(/g' ./src/main.c
-
-make || true
-cd src
-mkdir objects && find . -name "*.o" -exec cp {} ./objects/ \;
-ar -r libkamilio.a ./objects/*.o
-cd ../
-$CC $CFLAGS $LIB_FUZZING_ENGINE ./misc/fuzz/fuzz_uri.c -o $OUT/fuzz_uri \
-    -DFAST_LOCK -D__CPU_i386 ./src/libkamilio.a \
-    -I./src/ -I./src/core/parser -ldl -lresolv -lm
diff --git a/projects/kamailio/project.yaml b/projects/kamailio/project.yaml
deleted file mode 100755
index 46020a0..0000000
--- a/projects/kamailio/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: "www.kamailio.org"
-main_repo: "https://github.com/kamailio/kamailio"
-primary_contact: "ossfuzz@kamailio.org"
-language: c
-auto_ccs:
-  - "miconda@gmail.com"
-  - "david@adalogics.com"
diff --git a/projects/karchive/Dockerfile b/projects/karchive/Dockerfile
index d6c65e0..24fedad 100644
--- a/projects/karchive/Dockerfile
+++ b/projects/karchive/Dockerfile
@@ -15,14 +15,15 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install --yes cmake make autoconf automake autopoint libtool wget po4a
+MAINTAINER tsdgeos@gmail.com
+RUN apt-get update && apt-get install --yes cmake make autoconf automake autopoint libtool wget
 RUN git clone --depth 1 https://github.com/madler/zlib.git
 RUN git clone --depth 1 https://github.com/nih-at/libzip.git
 RUN wget https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz
 RUN git clone https://git.tukaani.org/xz.git
 RUN git clone --depth 1 --branch=5.15 git://code.qt.io/qt/qtbase.git
-RUN git clone --depth 1 https://invent.kde.org/frameworks/extra-cmake-modules.git
-RUN git clone --depth 1 https://invent.kde.org/frameworks/karchive.git
+RUN git clone --depth 1 git://anongit.kde.org/extra-cmake-modules
+RUN git clone --depth 1 git://anongit.kde.org/karchive
 COPY build.sh $SRC
 COPY karchive_fuzzer.cc $SRC
 WORKDIR karchive
diff --git a/projects/karchive/build.sh b/projects/karchive/build.sh
index 7c24c3d..b695ef7 100644
--- a/projects/karchive/build.sh
+++ b/projects/karchive/build.sh
@@ -78,7 +78,7 @@
 make install -j$(nproc)
 
 # Build karchive_fuzzer
-$CXX $CXXFLAGS -fPIC -std=c++11 $SRC/karchive_fuzzer.cc -o $OUT/karchive_fuzzer -I $SRC/qtbase/include/QtCore/ -I $SRC/qtbase/include/ -I $SRC/qtbase/include//QtGui -I $SRC/qtbase/mkspecs/linux-clang-libc++/ -I /usr/local/include/KF5/KArchive -L $SRC/qtbase/lib -lQt5Core -lm -lqtpcre2 -ldl -lpthread $LIB_FUZZING_ENGINE /usr/local/lib/libzip.a /usr/local/lib/libz.a -lKF5Archive /usr/local/lib/libbz2.a -llzma -lQt5Core /usr/local/lib/libz.a
+$CXX $CXXFLAGS -fPIC -std=c++11 $SRC/karchive_fuzzer.cc -o $OUT/karchive_fuzzer -I $SRC/qtbase/include/QtCore/ -I $SRC/qtbase/include/ -I $SRC/qtbase/include//QtGui -I $SRC/qtbase/mkspecs/linux-clang-libc++/ -I /usr/local/include/KF5/KArchive -L $SRC/qtbase/lib -lQt5Core -lm -lqtpcre2 -ldl -lpthread $LIB_FUZZING_ENGINE /usr/local/lib/libzip.a /usr/local/lib/libz.a -lKF5Archive /usr/local/lib/libbz2.a -llzma -lQt5Core
 
 cd $SRC
 find . -name "*.gz" -o -name "*.zip" -o -name "*.xz" -o -name "*.tar" | zip -q $OUT/karchive_fuzzer_seed_corpus.zip -@
diff --git a/projects/karchive/project.yaml b/projects/karchive/project.yaml
index 0e023cd..be82a3a 100644
--- a/projects/karchive/project.yaml
+++ b/projects/karchive/project.yaml
@@ -1,8 +1,6 @@
 homepage: https://cgit.kde.org/karchive.git/
-language: c++
 primary_contact: tsdgeos@gmail.com
 sanitizers:
   - address
   - memory
   - undefined
-main_repo: 'https://invent.kde.org/frameworks/karchive.git'
diff --git a/projects/kcodecs/Dockerfile b/projects/kcodecs/Dockerfile
index 3d70e83..3a234bb 100644
--- a/projects/kcodecs/Dockerfile
+++ b/projects/kcodecs/Dockerfile
@@ -15,10 +15,11 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER tsdgeos@gmail.com
 RUN apt-get install --yes cmake gperf
 RUN git clone --depth 1 --branch=5.15 git://code.qt.io/qt/qtbase.git
-RUN git clone --depth 1 https://invent.kde.org/frameworks/kcodecs.git
-RUN git clone --depth 1 https://invent.kde.org/frameworks/extra-cmake-modules.git
+RUN git clone --depth 1 git://anongit.kde.org/kcodecs
+RUN git clone --depth 1 git://anongit.kde.org/extra-cmake-modules
 RUN git clone --depth 1 https://gitlab.freedesktop.org/uchardet/uchardet.git
 COPY build.sh $SRC
 COPY kcodecs_fuzzer.cc $SRC
diff --git a/projects/kcodecs/project.yaml b/projects/kcodecs/project.yaml
index 1b731e3..e6f8472 100644
--- a/projects/kcodecs/project.yaml
+++ b/projects/kcodecs/project.yaml
@@ -1,8 +1,6 @@
 homepage: https://cgit.kde.org/kcodecs.git/
-language: c++
 primary_contact: tsdgeos@gmail.com
 sanitizers:
   - address
   - memory
   - undefined
-main_repo: 'https://invent.kde.org/frameworks/kcodecs.git'
diff --git a/projects/keystone/Dockerfile b/projects/keystone/Dockerfile
index 29bcdfd..3d0bbae 100644
--- a/projects/keystone/Dockerfile
+++ b/projects/keystone/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER keystone.engine@gmail.com
 RUN apt-get update && apt-get install -y make cmake
 RUN git clone --depth 1 https://github.com/keystone-engine/keystone.git
 WORKDIR $SRC
diff --git a/projects/keystone/project.yaml b/projects/keystone/project.yaml
index 860313b..105389b 100644
--- a/projects/keystone/project.yaml
+++ b/projects/keystone/project.yaml
@@ -1,11 +1,8 @@
 homepage: "https://www.keystone-engine.org"
-language: c++
 primary_contact: "keystone.engine@gmail.com"
-auto_ccs :
-  - "p.antoine@catenacyber.fr"
-  - "stalkr@stalkr.net"
+auto_ccs : "p.antoine@catenacyber.fr"
+
 sanitizers:
-  - address
-  - memory
-  - undefined
-main_repo: 'https://github.com/keystone-engine/keystone.git'
+- address
+- memory
+- undefined
diff --git a/projects/kimageformats/Dockerfile b/projects/kimageformats/Dockerfile
index 4acc31c..8e92b33 100644
--- a/projects/kimageformats/Dockerfile
+++ b/projects/kimageformats/Dockerfile
@@ -15,17 +15,14 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER tsdgeos@gmail.com
 RUN apt-get install --yes cmake
 RUN git clone --depth 1 https://github.com/madler/zlib.git
 RUN git clone --depth 1 https://github.com/nih-at/libzip.git
-RUN git clone --depth 1 https://invent.kde.org/frameworks/extra-cmake-modules.git
+RUN git clone --depth 1 git://anongit.kde.org/extra-cmake-modules
 RUN git clone --depth 1 --branch=5.15 git://code.qt.io/qt/qtbase.git
-RUN git clone --depth 1 https://invent.kde.org/frameworks/karchive.git
-RUN git clone --depth 1 https://invent.kde.org/frameworks/kimageformats.git
-RUN git clone --depth 1 -b v2.0.2 https://aomedia.googlesource.com/aom
-RUN git clone --depth 1 -b v0.9.0 https://github.com/AOMediaCodec/libavif.git
-RUN git clone --depth 1 https://github.com/strukturag/libde265.git
-RUN git clone --depth 1 https://github.com/strukturag/libheif.git
+RUN git clone --depth 1 git://anongit.kde.org/karchive
+RUN git clone --depth 1 git://anongit.kde.org/kimageformats
 COPY build.sh $SRC
 COPY kimgio_fuzzer.cc $SRC
 WORKDIR kimageformats
diff --git a/projects/kimageformats/build.sh b/projects/kimageformats/build.sh
index 0ffa60b..2928af2 100644
--- a/projects/kimageformats/build.sh
+++ b/projects/kimageformats/build.sh
@@ -1,20 +1,3 @@
-#!/bin/bash -eu
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
 cd $SRC
 cd zlib
 ./configure --static
@@ -50,45 +33,8 @@
 make install -j$(nproc)
 
 cd $SRC
-cd aom
-mkdir build.libavif
-cd build.libavif
-extra_libaom_flags='-DAOM_MAX_ALLOCABLE_MEMORY=536870912 -DDO_RANGE_CHECK_CLAMP=1'
-cmake -DBUILD_SHARED_LIBS=0 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DCONFIG_PIC=1 -DAOM_TARGET_CPU=generic -DCONFIG_SIZE_LIMIT=1 -DDECODE_HEIGHT_LIMIT=12288 -DDECODE_WIDTH_LIMIT=12288 -DAOM_EXTRA_C_FLAGS="${extra_libaom_flags}" -DAOM_EXTRA_CXX_FLAGS="${extra_libaom_flags}" ..
-make -j$(nproc)
-make install -j$(nproc)
-
-cd $SRC
-ln -s "$SRC/aom" "$SRC/libavif/ext/"
-cd libavif
-mkdir build
-cd build
-CFLAGS="$CFLAGS -fPIC" cmake -DBUILD_SHARED_LIBS=OFF -DAVIF_ENABLE_WERROR=OFF -DAVIF_CODEC_AOM=ON -DAVIF_LOCAL_AOM=ON ..
-make -j$(nproc)
-
-cd $SRC
-cd libde265
-cmake -DBUILD_SHARED_LIBS=OFF -DDISABLE_SSE=ON .
-make -j$(nproc)
-make install -j$(nproc)
-
-cd $SRC
-cd libheif
-#Reduce max width and height to avoid allocating too much memory
-sed -i "s/static const int MAX_IMAGE_WIDTH = 32768;/static const int MAX_IMAGE_WIDTH = 8192;/g" libheif/heif_limits.h
-sed -i "s/static const int MAX_IMAGE_HEIGHT = 32768;/static const int MAX_IMAGE_HEIGHT = 8192;/g" libheif/heif_limits.h
-mkdir build
-cd build
-cmake -DBUILD_SHARED_LIBS=OFF -DWITH_AOM=ON -DWITH_DAV1D=OFF -DWITH_EXAMPLES=OFF -DWITH_LIBDE265=ON -DWITH_RAV1E=OFF -DWITH_X265=OFF ..
-make -j$(nproc)
-make install -j$(nproc)
-
-cd $SRC
 cd kimageformats
-HANDLER_TYPES="ANIHandler ani
-        QAVIFHandler avif
-        HEIFHandler heif
-        KraHandler kra
+HANDLER_TYPES="KraHandler kra
         OraHandler ora
         PCXHandler pcx
         SoftimagePICHandler pic
@@ -102,8 +48,7 @@
 (
   fuzz_target_name=kimgio_${format}_fuzzer
 
-  $SRC/qtbase/bin/moc $SRC/kimageformats/src/imageformats/$format.cpp -o $format.moc
-  $CXX $CXXFLAGS -fPIC -DHANDLER=$class -std=c++14 $SRC/kimgio_fuzzer.cc $SRC/kimageformats/src/imageformats/$format.cpp -o $OUT/$fuzz_target_name -I $SRC/qtbase/include/QtCore/ -I $SRC/qtbase/include/ -I $SRC/qtbase/include//QtGui -I $SRC/kimageformats/src/imageformats/ -I $SRC/karchive/src/ -I $SRC/qtbase/mkspecs/linux-clang-libc++/ -I $SRC/libavif/include/ -I . -L $SRC/qtbase/lib $SRC/libavif/build/libavif.a /usr/local/lib/libheif.a /usr/local/lib/liblibde265.a $SRC/aom/build.libavif/libaom.a -lQt5Gui -lQt5Core -lqtlibpng -lqtharfbuzz -lm -lqtpcre2 -ldl -lpthread $LIB_FUZZING_ENGINE /usr/local/lib/libzip.a /usr/local/lib/libz.a -lKF5Archive /usr/local/lib/libz.a
+  $CXX $CXXFLAGS -fPIC -DHANDLER=$class -std=c++11 $SRC/kimgio_fuzzer.cc $SRC/kimageformats/src/imageformats/$format.cpp -o $OUT/$fuzz_target_name -I $SRC/qtbase/include/QtCore/ -I $SRC/qtbase/include/ -I $SRC/qtbase/include//QtGui -I $SRC/kimageformats/src/imageformats/ -I $SRC/karchive/src/ -I $SRC/qtbase/mkspecs/linux-clang-libc++/ -L $SRC/qtbase/lib -lQt5Gui -lQt5Core -lqtlibpng -lqtharfbuzz -lm -lqtpcre2 -ldl -lpthread $LIB_FUZZING_ENGINE /usr/local/lib/libzip.a /usr/local/lib/libz.a -lKF5Archive
 
   find . -name "*.${format}" | zip -q $OUT/${fuzz_target_name}_seed_corpus.zip -@
 )
diff --git a/projects/kimageformats/kimgio_fuzzer.cc b/projects/kimageformats/kimgio_fuzzer.cc
index 5fe9cc6..7a17076 100644
--- a/projects/kimageformats/kimgio_fuzzer.cc
+++ b/projects/kimageformats/kimgio_fuzzer.cc
@@ -20,7 +20,7 @@
   Usage:
     python infra/helper.py build_image kimageformats
     python infra/helper.py build_fuzzers --sanitizer undefined|address|memory kimageformats
-    python infra/helper.py run_fuzzer kimageformats kimgio_[ani|avif|heif|kra|ora|pcx|pic|psd|ras|rgb|tga|xcf]_fuzzer
+    python infra/helper.py run_fuzzer kimageformats kimgio_[kra|ora|pcx|pic|psd|ras|rgb|tga|xcf]_fuzzer
 */
 
 
@@ -28,9 +28,6 @@
 #include <QCoreApplication>
 #include <QImage>
 
-#include "ani_p.h"
-#include "avif_p.h"
-#include "heif_p.h"
 #include "kra.h"
 #include "ora.h"
 #include "pcx_p.h"
diff --git a/projects/kimageformats/project.yaml b/projects/kimageformats/project.yaml
index d2551a8..f064f9f 100644
--- a/projects/kimageformats/project.yaml
+++ b/projects/kimageformats/project.yaml
@@ -1,8 +1,6 @@
 homepage: https://cgit.kde.org/kimageformats.git/
-language: c++
 primary_contact: tsdgeos@gmail.com
 sanitizers:
   - address
   - memory
   - undefined
-main_repo: 'https://invent.kde.org/frameworks/kimageformats.git'
diff --git a/projects/knot-dns/Dockerfile b/projects/knot-dns/Dockerfile
index 3c96b70..4977181 100644
--- a/projects/knot-dns/Dockerfile
+++ b/projects/knot-dns/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jonathan.foote@gmail.com
 RUN apt-get update && apt-get install -y \
  autoconf \
  autogen \
@@ -36,7 +37,6 @@
 RUN git clone --depth=1 --recursive https://git.savannah.gnu.org/git/libunistring.git
 RUN git clone --depth=1 https://git.lysator.liu.se/nettle/nettle.git
 RUN git clone --depth=1 https://gitlab.com/gnutls/gnutls.git
-RUN git clone --depth=1 https://github.com/LMDB/lmdb.git
 RUN git clone --depth=1 https://gitlab.labs.nic.cz/knot/knot-dns
 
 WORKDIR knot-dns
diff --git a/projects/knot-dns/build.sh b/projects/knot-dns/build.sh
index e451813..05fe836 100755
--- a/projects/knot-dns/build.sh
+++ b/projects/knot-dns/build.sh
@@ -56,22 +56,20 @@
 make -j$(nproc)
 make install
 
-cd $SRC/lmdb/libraries/liblmdb
-make -j$(nproc)
-make install
 
 # Compile knot, install fuzzers to $OUT
 
 cd $SRC/knot-dns
-sed -i 's/-llmdb/-Wl,-Bstatic,-llmdb,-Bdynamic/' configure.ac
 autoreconf -if
-./configure --with-oss-fuzz=yes --disable-shared --enable-static --disable-daemon --disable-utilities --disable-documentation \
-    --disable-fastparser --disable-modules
+
+./configure --with-oss-fuzz=yes --disable-shared --enable-static --disable-daemon --disable-utilities --disable-documentation --disable-fastparser --disable-modules
+
 make -j$(nproc)
 cd $SRC/knot-dns/tests-fuzz
 make check
 /bin/bash ../libtool   --mode=install /usr/bin/install -c fuzz_packet fuzz_zscanner fuzz_dname_to_str fuzz_dname_from_str "$OUT"
 
+
 # Set up fuzzing seeds
 
 git submodule update --init -- ./fuzz_packet.in
diff --git a/projects/knot-dns/project.yaml b/projects/knot-dns/project.yaml
index fff5830..7d207a7 100644
--- a/projects/knot-dns/project.yaml
+++ b/projects/knot-dns/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.knot-dns.cz/"
-language: c++
 primary_contact: "knot.dns@gmail.com"
 auto_ccs:
   - "jonathan.foote@gmail.com"
diff --git a/projects/kubernetes/Dockerfile b/projects/kubernetes/Dockerfile
index e4ebed8..e0c5afd 100644
--- a/projects/kubernetes/Dockerfile
+++ b/projects/kubernetes/Dockerfile
@@ -1,26 +1,12 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
 FROM gcr.io/oss-fuzz-base/base-builder
 
-RUN go get github.com/ianlancetaylor/demangle
-RUN git clone --depth 1 https://github.com/kubernetes/kubernetes.git
-RUN git clone --depth 1 https://github.com/google/AFL
-RUN git clone --depth 1 https://github.com/dvyukov/go-fuzz-corpus
-RUN git clone --depth 1 https://github.com/kubernetes/kops
-WORKDIR $SRC/
+ENV GOPATH /gopath
 
-COPY build.sh $SRC/
+RUN go get -u -d github.com/dvyukov/go-fuzz/...
+RUN go get github.com/ianlancetaylor/demangle
+
+RUN git clone --depth 1 https://github.com/kubernetes/kubernetes.git /gopath/src/k8s.io/kubernetes
+
+WORKDIR /gopath/src/k8s.io/kubernetes
+
+COPY build.sh $SRC/build.sh
diff --git a/projects/kubernetes/build.sh b/projects/kubernetes/build.sh
index d3d756f..539631b 100755
--- a/projects/kubernetes/build.sh
+++ b/projects/kubernetes/build.sh
@@ -20,21 +20,17 @@
 set -o errexit
 set -x
 
-# Compile kOps fuzzers
-(
-cd kops
-./tests/fuzz/build.sh
-)
-
-# Compile Kubernetes fuzzers
-cd $SRC/kubernetes
-
+# Based on the function from oss-fuzz/projects/golang/build.sh script.
 function compile_fuzzer {
   local pkg=$1
   local function=$2
   local fuzzer="${pkg}_${function}"
 
-  compile_go_fuzzer "k8s.io/kubernetes/test/fuzz/${pkg}" $function $fuzzer
+   # Instrument all Go files relevant to this fuzzer
+  go-fuzz-build -libfuzzer -func "${function}" -o "${fuzzer}.a" "k8s.io/kubernetes/test/fuzz/${pkg}"
+
+   # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary
+  $CXX $CXXFLAGS $LIB_FUZZING_ENGINE "${fuzzer}.a" -lpthread -o "${OUT}/${fuzzer}"
 }
 
 compile_fuzzer "yaml" "FuzzDurationStrict"
diff --git a/projects/kubernetes/project.yaml b/projects/kubernetes/project.yaml
index 3ebee0c..e834026 100644
--- a/projects/kubernetes/project.yaml
+++ b/projects/kubernetes/project.yaml
@@ -5,4 +5,3 @@
 sanitizers:
   - address
 language: go
-main_repo: 'https://github.com/kubernetes/kubernetes.git'
diff --git a/projects/lame/Dockerfile b/projects/lame/Dockerfile
index 8667b64..565626b 100644
--- a/projects/lame/Dockerfile
+++ b/projects/lame/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool subversion
 RUN git clone --depth 1 https://github.com/guidovranken/LAME-fuzzers
 RUN svn checkout https://svn.code.sf.net/p/lame/svn/trunk/lame $SRC/lame
diff --git a/projects/lame/project.yaml b/projects/lame/project.yaml
index b6bd382..646af59 100644
--- a/projects/lame/project.yaml
+++ b/projects/lame/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://sourceforge.net/projects/lame/"
-language: c++
 primary_contact: "guidovranken@gmail.com"
 auto_ccs:
     - "bouvigne@gmail.com"
diff --git a/projects/lcms/Dockerfile b/projects/lcms/Dockerfile
index ed65328..c720537 100644
--- a/projects/lcms/Dockerfile
+++ b/projects/lcms/Dockerfile
@@ -15,7 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kcwu@google.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 https://github.com/mm2/Little-CMS.git lcms
 WORKDIR lcms
-COPY build.sh cmsIT8_load_fuzzer.* cms_transform_fuzzer.* cms_overwrite_transform_fuzzer.* icc.dict $SRC/
+COPY build.sh cmsIT8_load_fuzzer.* cms_transform_fuzzer.* icc.dict $SRC/
diff --git a/projects/lcms/build.sh b/projects/lcms/build.sh
index 9a79b2c..4015b1b 100755
--- a/projects/lcms/build.sh
+++ b/projects/lcms/build.sh
@@ -20,7 +20,7 @@
 make -j$(nproc) all
 
 # build your fuzzer(s)
-FUZZERS="cmsIT8_load_fuzzer cms_transform_fuzzer cms_overwrite_transform_fuzzer"
+FUZZERS="cmsIT8_load_fuzzer cms_transform_fuzzer"
 for F in $FUZZERS; do
     $CC $CFLAGS -c -Iinclude \
         $SRC/$F.c -o $SRC/$F.o
diff --git a/projects/lcms/cms_overwrite_transform_fuzzer.c b/projects/lcms/cms_overwrite_transform_fuzzer.c
deleted file mode 100644
index df077ee..0000000
--- a/projects/lcms/cms_overwrite_transform_fuzzer.c
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stdint.h>
-#include "lcms2.h"
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
- if (size < 2) {
-   return 0;
- }
-
- size_t mid = size / 2;
-
- cmsHPROFILE hInProfile, hOutProfile;
- cmsHTRANSFORM hTransform;
-
- hInProfile = cmsOpenProfileFromMem(data, mid);
- hOutProfile = cmsOpenProfileFromMem(data + mid, size - mid);
- hTransform = cmsCreateTransform(hInProfile, TYPE_BGR_8, hOutProfile,
-                                 TYPE_BGR_8, INTENT_PERCEPTUAL, 0);
- cmsCloseProfile(hInProfile);
- cmsCloseProfile(hOutProfile);
-
- if (hTransform) {
-   cmsDeleteTransform(hTransform);
- }
- return 0;
-}
diff --git a/projects/lcms/cms_overwrite_transform_fuzzer.options b/projects/lcms/cms_overwrite_transform_fuzzer.options
deleted file mode 100644
index beabdc2..0000000
--- a/projects/lcms/cms_overwrite_transform_fuzzer.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-dict = icc.dict
diff --git a/projects/lcms/project.yaml b/projects/lcms/project.yaml
index a7aeff0..26e06e9 100644
--- a/projects/lcms/project.yaml
+++ b/projects/lcms/project.yaml
@@ -1,16 +1,10 @@
 homepage: "http://www.littlecms.com/"
-language: c++
 primary_contact: "marti.maria.s@gmail.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
+  - memory:
+     experimental: True
   - undefined
-  - memory
-  - dataflow
 architectures:
   - x86_64
   - i386
diff --git a/projects/leptonica/Dockerfile b/projects/leptonica/Dockerfile
index cf79bf5..a40efc3 100644
--- a/projects/leptonica/Dockerfile
+++ b/projects/leptonica/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER taking@google.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool \
   pkg-config cmake nasm
 RUN git clone --depth 1 https://github.com/DanBloomberg/leptonica.git leptonica
@@ -26,4 +27,4 @@
 RUN git clone --depth 1 https://github.com/libjpeg-turbo/libjpeg-turbo libjpeg-turbo
 RUN git clone --depth 1 https://github.com/facebook/zstd zstd
 WORKDIR leptonica
-COPY build.sh $SRC/
+COPY build.sh pix_rotate_shear_fuzzer.cc $SRC/
diff --git a/projects/leptonica/build.sh b/projects/leptonica/build.sh
index ee51bdc..991c0cb 100755
--- a/projects/leptonica/build.sh
+++ b/projects/leptonica/build.sh
@@ -15,5 +15,105 @@
 #
 ################################################################################
 
-$SRC/leptonica/prog/fuzzing/oss-fuzz-build.sh
+# libz
+pushd $SRC/zlib
+./configure --static --prefix="$WORK"
+make -j$(nproc) all
+make install
+popd
+
+# libzstd
+pushd $SRC/zstd
+make -j$(nproc) install PREFIX="$WORK"
+popd
+
+# libjbig
+pushd "$SRC/jbigkit"
+make clean
+make -j$(nproc) lib
+cp "$SRC"/jbigkit/libjbig/*.a "$WORK/lib/"
+cp "$SRC"/jbigkit/libjbig/*.h "$WORK/include/"
+popd
+
+# libjpeg-turbo
+pushd $SRC/libjpeg-turbo
+cmake . -DCMAKE_INSTALL_PREFIX="$WORK" -DENABLE_STATIC:bool=on
+make -j$(nproc)
+make install
+popd
+
+# libpng
+pushd $SRC/libpng
+cat scripts/pnglibconf.dfa | \
+  sed -e "s/option WARNING /option WARNING disabled/" \
+> scripts/pnglibconf.dfa.temp
+mv scripts/pnglibconf.dfa.temp scripts/pnglibconf.dfa
+autoreconf -f -i
+./configure \
+  --prefix="$WORK" \
+  --disable-shared \
+  --enable-static \
+  LDFLAGS="-L$WORK/lib" \
+  CPPFLAGS="-I$WORK/include"
+make -j$(nproc)
+make install
+popd
+
+# libwebp
+pushd $SRC/libwebp
+export WEBP_CFLAGS="$CFLAGS -DWEBP_MAX_IMAGE_SIZE=838860800" # 800MiB
+./autogen.sh
+./configure \
+  --enable-libwebpdemux \
+  --enable-libwebpmux \
+  --disable-shared \
+  --disable-jpeg \
+  --disable-tiff \
+  --disable-gif \
+  --disable-wic \
+  --disable-threading \
+  --prefix="$WORK" \
+  CFLAGS="$WEBP_CFLAGS"
+make clean
+make -j$(nproc)
+make install
+popd
+
+# libtiff
+pushd "$SRC/libtiff"
+cmake . -DCMAKE_INSTALL_PREFIX="$WORK" -DBUILD_SHARED_LIBS=off
+make clean
+make -j$(nproc)
+make install
+popd
+
+# leptonica
+export LEPTONICA_LIBS="$WORK/lib/libjbig.a $WORK/lib/libzstd.a $WORK/lib/libwebp.a $WORK/lib/libpng.a"
+./autogen.sh
+./configure \
+  --enable-static \
+  --disable-shared \
+  --with-libpng \
+  --with-zlib \
+  --with-jpeg \
+  --with-libwebp \
+  --with-libtiff \
+  --prefix="$WORK" \
+  LIBS="$LEPTONICA_LIBS" \
+  LDFLAGS="-L$WORK/lib" \
+  CPPFLAGS="-I$WORK/include"
+make -j$(nproc)
+make install
+
+$CXX $CXXFLAGS -std=c++11 -I"$WORK/include" \
+  "$SRC/pix_rotate_shear_fuzzer.cc" -o "$OUT/pix_rotate_shear_fuzzer" \
+  "$WORK/lib/liblept.a" \
+  "$WORK/lib/libtiff.a" \
+  "$WORK/lib/libwebp.a" \
+  "$WORK/lib/libpng.a" \
+  "$WORK/lib/libjpeg.a" \
+  "$WORK/lib/libjbig.a" \
+  "$WORK/lib/libzstd.a" \
+  "$WORK/lib/libz.a" \
+  $LIB_FUZZING_ENGINE
 
diff --git a/projects/leptonica/pix_rotate_shear_fuzzer.cc b/projects/leptonica/pix_rotate_shear_fuzzer.cc
new file mode 100644
index 0000000..4ca2cc9
--- /dev/null
+++ b/projects/leptonica/pix_rotate_shear_fuzzer.cc
@@ -0,0 +1,79 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+// The fuzzer takes as input a buffer of bytes. The buffer is read in as:
+// <angle>, <x_center>, <y_center>, and the remaining bytes will be read
+// in as a <pix>. The image is then rotated by angle around the center. All
+// inputs should not result in undefined behavior.
+#include <cmath>
+#include <cstddef>
+#include <cstdint>
+#include <cstdlib>
+#include <cstring>
+#include "leptonica/allheaders.h"
+
+// Set to true only for debugging; always false for production
+static const bool DebugOutput = false;
+
+namespace {
+
+// Reads the front bytes of a data buffer containing `size` bytes as an int16_t,
+// and advances the buffer forward [if there is sufficient capacity]. If there
+// is insufficient capacity, this returns 0 and does not modify size or data.
+int16_t ReadInt16(const uint8_t** data, size_t* size) {
+  int16_t result = 0;
+  if (*size >= sizeof(result)) {
+    memcpy(&result, *data, sizeof(result));
+    *data += sizeof(result);
+    *size -= sizeof(result);
+  }
+  return result;
+}
+
+}  // namespace
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+  const int16_t angle = ReadInt16(&data, &size);
+  const int16_t x_center = ReadInt16(&data, &size);
+  const int16_t y_center = ReadInt16(&data, &size);
+
+  // Check for pnm format; this can cause timeouts.
+  // The format checker requires at least 12 bytes.
+  if (size < 12) return EXIT_SUCCESS;
+  int format;
+  findFileFormatBuffer(data, &format);
+  if (format == IFF_PNM) return EXIT_SUCCESS;
+
+  Pix* pix = pixReadMem(reinterpret_cast<const unsigned char*>(data), size);
+  if (pix == nullptr) {
+    return EXIT_SUCCESS;
+  }
+
+  // Never in production
+  if (DebugOutput) {
+    L_INFO("w = %d, h = %d, d = %d\n", "fuzzer",
+           pixGetWidth(pix), pixGetHeight(pix), pixGetDepth(pix));
+  }
+
+  constexpr float deg2rad = M_PI / 180.;
+  Pix* pix_rotated = pixRotateShear(pix, x_center, y_center, deg2rad * angle,
+                                    L_BRING_IN_WHITE);
+  if (pix_rotated) {
+    pixDestroy(&pix_rotated);
+  }
+
+  pixDestroy(&pix);
+  return EXIT_SUCCESS;
+}
diff --git a/projects/leptonica/project.yaml b/projects/leptonica/project.yaml
index c6176df..d91418d 100644
--- a/projects/leptonica/project.yaml
+++ b/projects/leptonica/project.yaml
@@ -1,13 +1,9 @@
 homepage: "http://www.leptonica.com"
-language: c++
 primary_contact: "taking@google.com"
 auto_ccs:
   - "kusano@google.com"
   - "dbloomberg@google.com"
-  - "dan.bloomberg@gmail.com"
   - "stjoweil@googlemail.com"
-  - "Adam@adalogics.com"
-  - "ballbach@google.com"
 sanitizers:
   - address
   - undefined
@@ -15,4 +11,3 @@
 labels:
   pix_rotate_shear_fuzzer:
     - sundew
-main_repo: 'https://github.com/DanBloomberg/leptonica.git'
diff --git a/projects/leveldb/Dockerfile b/projects/leveldb/Dockerfile
deleted file mode 100644
index 7234203..0000000
--- a/projects/leveldb/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool gettext pkg-config build-essential
-RUN git clone --recurse-submodules https://github.com/google/leveldb.git
-
-WORKDIR $SRC/
-
-# Copy in our files
-COPY build.sh $SRC/
-COPY *.cc $SRC/leveldb/
-COPY *.options $SRC/
diff --git a/projects/leveldb/build.sh b/projects/leveldb/build.sh
deleted file mode 100755
index 7668c04..0000000
--- a/projects/leveldb/build.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-# Copyright 2020 Luca Boccassi <bluca@debian.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/leveldb
-mkdir -p build && cd build
-cmake -DCMAKE_BUILD_TYPE=Release -DLEVELDB_BUILD_TESTS=0 \
-    -DLEVELDB_BUILD_BENCHMARKS=0 .. && cmake --build .
-
-for fuzzer in fuzz_db; do
-    # Compile
-    $CXX $CXXFLAGS -c ../${fuzzer}.cc -o ${fuzzer}.o \
-        -DLEVELDB_PLATFORM_POSIX=1 -std=c++11 -Wall \
-        -I$SRC/leveldb/build/include -I$SRC/leveldb/ -I$SRC/leveldb/include
-
-    # Link
-    $CXX $LIB_FUZZING_ENGINE $CXXFLAGS ${fuzzer}.o -o $OUT/${fuzzer} libleveldb.a
-done
-
-# Copy options to out
-cp $SRC/*options $OUT/
diff --git a/projects/leveldb/fuzz_db.cc b/projects/leveldb/fuzz_db.cc
deleted file mode 100644
index 0147c12..0000000
--- a/projects/leveldb/fuzz_db.cc
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-
-#include <cstdint>
-#include <cstddef>
-#include <filesystem>
-#include <memory>
-#include <string>
-
-#include "leveldb/db.h"
-#include "leveldb/iterator.h"
-#include "leveldb/options.h"
-#include "leveldb/status.h"
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-namespace {
-
-// Deletes the database directory when going out of scope.
-class AutoDbDeleter {
- public:
-  static constexpr char kDbPath[] = "/tmp/testdb";
-
-  AutoDbDeleter() = default;
-
-  AutoDbDeleter(const AutoDbDeleter&) = delete;
-  AutoDbDeleter& operator=(const AutoDbDeleter&) = delete;
-
-  ~AutoDbDeleter() {
-    std::__fs::filesystem::remove_all(kDbPath);
-  }
-};
-
-// static
-constexpr char AutoDbDeleter::kDbPath[];
-
-// Returns nullptr (a falsey unique_ptr) if opening fails.
-std::unique_ptr<leveldb::DB> OpenDB() {
-  leveldb::Options options;
-  options.create_if_missing = true;
-
-  leveldb::DB* db_ptr;
-  leveldb::Status status =
-      leveldb::DB::Open(options, AutoDbDeleter::kDbPath, &db_ptr);
-  if (!status.ok())
-    return nullptr;
-
-  return std::unique_ptr<leveldb::DB>(db_ptr);
-}
-
-enum class FuzzOp {
-  kPut = 0,
-  kGet = 1,
-  kDelete = 2,
-  kGetProperty = 3,
-  kIterate = 4,
-  kGetReleaseSnapshot = 5,
-  kReopenDb = 6,
-  kCompactRange = 7,
-  // Add new values here.
-
-  // When adding new values, update to the last value above.
-  kMaxValue = kCompactRange,
-};
-
-}  // namespace
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  // Must occur before `db` so the deletion doesn't happen while the DB is open.
-  AutoDbDeleter db_deleter;
-
-  std::unique_ptr<leveldb::DB> db = OpenDB();
-  if (!db.get())
-    return 0;
-
-  // Perform a sequence of operations on the database.
-  FuzzedDataProvider fuzzed_data(data, size);
-  while (fuzzed_data.remaining_bytes() != 0) {
-    FuzzOp fuzz_op = fuzzed_data.ConsumeEnum<FuzzOp>();
-
-    switch (fuzz_op) {
-    case FuzzOp::kPut: {
-      std::string key = fuzzed_data.ConsumeRandomLengthString();
-      std::string value = fuzzed_data.ConsumeRandomLengthString();
-      db->Put(leveldb::WriteOptions(), key, value);
-      break;
-    }
-    case FuzzOp::kGet: {
-      std::string key = fuzzed_data.ConsumeRandomLengthString();
-      std::string value;
-      db->Get(leveldb::ReadOptions(), key, &value);
-      break;
-    }
-    case FuzzOp::kDelete: {
-      std::string key = fuzzed_data.ConsumeRandomLengthString();
-      db->Delete(leveldb::WriteOptions(), key);
-      break;
-    }
-    case FuzzOp::kGetProperty: {
-      std::string name = fuzzed_data.ConsumeRandomLengthString();
-      std::string value;
-      db->GetProperty(name, &value);
-      break;
-    }
-    case FuzzOp::kIterate: {
-      std::unique_ptr<leveldb::Iterator> it(
-          db->NewIterator(leveldb::ReadOptions()));
-      for (it->SeekToFirst(); it->Valid(); it->Next())
-        continue;
-    }
-    case FuzzOp::kGetReleaseSnapshot: {
-      leveldb::ReadOptions snapshot_options;
-      snapshot_options.snapshot = db->GetSnapshot();
-      std::unique_ptr<leveldb::Iterator> it(db->NewIterator(snapshot_options));
-      db->ReleaseSnapshot(snapshot_options.snapshot);
-    }
-    case FuzzOp::kReopenDb: {
-      // The database must be closed before attempting to reopen it. Otherwise,
-      // the open will fail due to exclusive locking.
-      db.reset();
-      db = OpenDB();
-      if (!db)
-        return 0;  // Reopening the database failed.
-      break;
-    }
-    case FuzzOp::kCompactRange: {
-      std::string begin_key = fuzzed_data.ConsumeRandomLengthString();
-      std::string end_key =  fuzzed_data.ConsumeRandomLengthString();
-      leveldb::Slice begin_slice(begin_key);
-      leveldb::Slice end_slice(end_key);
-      db->CompactRange(&begin_slice, &end_slice);
-      break;
-    }
-    }
-  }
-
-  return 0;
-}
diff --git a/projects/leveldb/fuzz_db.options b/projects/leveldb/fuzz_db.options
deleted file mode 100644
index f9d0965..0000000
--- a/projects/leveldb/fuzz_db.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-detect_leaks=0
diff --git a/projects/leveldb/project.yaml b/projects/leveldb/project.yaml
deleted file mode 100644
index 7eecedc..0000000
--- a/projects/leveldb/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/google/leveldb"
-language: c++
-primary_contact: "costan@google.com"
-auto_ccs :
-  - "cmumford@google.com"
-  - "david@adalogics.com"
-sanitizers:
-  - address
-  - memory
-main_repo: 'https://github.com/google/leveldb.git'
diff --git a/projects/libaom/Dockerfile b/projects/libaom/Dockerfile
index a911f33..0619ac0 100644
--- a/projects/libaom/Dockerfile
+++ b/projects/libaom/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER urvang@google.com
 RUN apt-get update && apt-get install -y cmake yasm wget
 RUN git clone https://aomedia.googlesource.com/aom
 ADD https://storage.googleapis.com/aom-test-data/fuzzer/dec_fuzzer_seed_corpus.zip $SRC/
diff --git a/projects/libaom/project.yaml b/projects/libaom/project.yaml
index dedc304..e4d1be9 100644
--- a/projects/libaom/project.yaml
+++ b/projects/libaom/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://aomedia.org/av1-features/get-started/"
-language: c++
 primary_contact: "urvang@google.com"
 sanitizers:
 - address
@@ -11,5 +10,4 @@
 - jzern@google.com
 - wtc@google.com
 vendor_ccs:
-- twsmith@mozilla.com
-main_repo: 'https://aomedia.googlesource.com/aom'
+- cdiehl@mozilla.com
diff --git a/projects/libarchive/Dockerfile b/projects/libarchive/Dockerfile
index bd07669..b2d9d0b 100644
--- a/projects/libarchive/Dockerfile
+++ b/projects/libarchive/Dockerfile
@@ -15,13 +15,13 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kcwu@google.com
 
 # Installing optional libraries can utilize more code path and/or improve
 # performance (avoid calling external programs).
 RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config \
         libbz2-dev liblzo2-dev liblzma-dev liblz4-dev libz-dev \
-        libxml2-dev libssl-dev libacl1-dev libattr1-dev lrzip \
-	liblz4-tool lzop zstd lcab genisoimage jlha-utils rar default-jdk
+        libxml2-dev libssl-dev libacl1-dev libattr1-dev
 RUN git clone --depth 1 https://github.com/libarchive/libarchive.git
 WORKDIR libarchive
 COPY build.sh libarchive_fuzzer.cc $SRC/
diff --git a/projects/libarchive/build.sh b/projects/libarchive/build.sh
index 87587a5..0f04f8d 100755
--- a/projects/libarchive/build.sh
+++ b/projects/libarchive/build.sh
@@ -20,10 +20,6 @@
 ./configure
 make -j$(nproc) all
 
-# build seed
-cp $SRC/libarchive/contrib/oss-fuzz/corpus.zip\
-       	$OUT/libarchive_fuzzer_seed_corpus.zip
-
 # build fuzzer(s)
 $CXX $CXXFLAGS -Ilibarchive \
     $SRC/libarchive_fuzzer.cc -o $OUT/libarchive_fuzzer \
diff --git a/projects/libarchive/project.yaml b/projects/libarchive/project.yaml
index 4637988..515af5f 100644
--- a/projects/libarchive/project.yaml
+++ b/projects/libarchive/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/libarchive/libarchive"
-language: c++
 primary_contact: "joerg.sonnenberger@googlemail.com"
 auto_ccs:
   - "kientzle@gmail.com"
@@ -9,4 +8,3 @@
   - memory:
      experimental: True
   - undefined
-main_repo: 'https://github.com/libarchive/libarchive.git'
diff --git a/projects/libass/Dockerfile b/projects/libass/Dockerfile
index b0758ce..bc1999d 100644
--- a/projects/libass/Dockerfile
+++ b/projects/libass/Dockerfile
@@ -15,11 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config libfreetype6-dev libfontconfig1-dev python3-pip && \
-    pip3 install meson==0.53.0 ninja
+MAINTAINER eugeni.stepanov@gmail.com
+RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config libfreetype6-dev libfontconfig1-dev
 
 RUN git clone --depth 1 https://github.com/libass/libass.git
 RUN git clone --depth 1 https://github.com/behdad/fribidi.git
-RUN git clone --depth 1 https://github.com/harfbuzz/harfbuzz.git
 
 COPY build.sh libass_fuzzer.cc *.dict *.options $SRC/
diff --git a/projects/libass/build.sh b/projects/libass/build.sh
index 44006e3..cb48701 100755
--- a/projects/libass/build.sh
+++ b/projects/libass/build.sh
@@ -19,24 +19,6 @@
 ./autogen.sh --disable-docs --enable-static=yes --enable-shared=no --with-pic=yes --prefix=/work/
 make install
 
-cd $SRC/harfbuzz
-
-# setup
-build=$WORK/build
-
-# # cleanup
-rm -rf $build
-mkdir -p $build
-
-# disable sanitize=vptr for harfbuzz since it compiles without rtti
-CFLAGS="$CFLAGS -fno-sanitize=vptr" \
-CXXFLAGS="$CXXFLAGS -fno-sanitize=vptr" \
-meson --default-library=static --wrap-mode=nodownload \
-      -Dfuzzer_ldflags="$(echo $LIB_FUZZING_ENGINE)" \
-      --prefix=/work/ --libdir=lib $build \
-  || (cat build/meson-logs/meson-log.txt && false)
-meson install -C $build
-
 cd $SRC/libass
 
 export PKG_CONFIG_PATH=/work/lib/pkgconfig
@@ -47,7 +29,7 @@
 $CXX $CXXFLAGS -std=c++11 -I$SRC/libass -L/work/lib \
     $SRC/libass_fuzzer.cc -o $OUT/libass_fuzzer \
     $LIB_FUZZING_ENGINE libass/.libs/libass.a \
-    -Wl,-Bstatic -lfontconfig  -lfribidi -lfreetype -lharfbuzz -lz -lpng12 \
+    -Wl,-Bstatic -lfontconfig  -lfribidi -lfreetype -lz -lpng12 \
     -lexpat -Wl,-Bdynamic
 
 cp $SRC/*.dict $SRC/*.options $OUT/
diff --git a/projects/libass/project.yaml b/projects/libass/project.yaml
index bfcb93e..e7f63b4 100644
--- a/projects/libass/project.yaml
+++ b/projects/libass/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/libass/libass"
-language: c++
 primary_contact: "greg@kinoho.net"
 auto_ccs:
   - "rodger.combs@gmail.com"
@@ -9,4 +8,3 @@
 sanitizers:
   - address
   - undefined
-main_repo: 'https://github.com/libass/libass.git'
diff --git a/projects/libavc/Dockerfile b/projects/libavc/Dockerfile
index 9998c24..5d4bf22 100644
--- a/projects/libavc/Dockerfile
+++ b/projects/libavc/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER harish.mahendrakar@ittiam.com
 RUN apt-get update && apt-get install -y wget cmake
 RUN git clone https://android.googlesource.com/platform/external/libavc
 ADD https://storage.googleapis.com/android_media/external/libavc/fuzzer/avc_dec_fuzzer_seed_corpus.zip $SRC/
diff --git a/projects/libavc/project.yaml b/projects/libavc/project.yaml
index 1f5422f..9c51454 100644
--- a/projects/libavc/project.yaml
+++ b/projects/libavc/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://android.googlesource.com/platform/external/libavc/"
-language: c++
 primary_contact: "harish.mahendrakar@ittiam.com"
 sanitizers:
   - address
@@ -14,9 +13,6 @@
   - geuteneier@google.com
   - hollyhall@google.com
   - mikelogan@google.com
-  - maverickm@google.com
-  - warrenwright@google.com
 architectures:
   - x86_64
   - i386
-main_repo: 'https://android.googlesource.com/platform/external/libavc'
diff --git a/projects/libavif/Dockerfile b/projects/libavif/Dockerfile
index a1f030e..a5e48a9 100644
--- a/projects/libavif/Dockerfile
+++ b/projects/libavif/Dockerfile
@@ -15,19 +15,15 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER joedrago@gmail.com
 
 ADD bionic.list /etc/apt/sources.list.d/bionic.list
 ADD nasm_apt.pin /etc/apt/preferences
 
 RUN apt-get update && \
-    apt-get install --no-install-recommends -y curl python3-pip python3-setuptools python3-wheel cmake git && \
+    apt-get install --no-install-recommends -y curl python3-pip python3-setuptools python3-wheel cmake nasm git && \
     pip3 install meson ninja
 
 RUN git clone --depth 1 https://github.com/AOMediaCodec/libavif.git libavif
 WORKDIR libavif
-
-RUN curl -L https://download.videolan.org/contrib/nasm/nasm-2.14.tar.gz | tar xvz
-RUN cd nasm-2.14 && ./configure && make -j2 && ln -s `pwd`/nasm /usr/bin/nasm && cd ..
-RUN nasm --version
-
-COPY build.sh avif_decode_seed_corpus.zip $SRC/
+COPY build.sh avif_decode_fuzzer.cc avif_decode_seed_corpus.zip $SRC/
diff --git a/projects/libavif/avif_decode_fuzzer.cc b/projects/libavif/avif_decode_fuzzer.cc
new file mode 100644
index 0000000..5747367
--- /dev/null
+++ b/projects/libavif/avif_decode_fuzzer.cc
@@ -0,0 +1,65 @@
+// Copyright 2020 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//###############################################################################
+
+#include "avif/avif.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+  avifROData raw;
+  raw.data = Data;
+  raw.size = Size;
+
+  avifDecoder *decoder = avifDecoderCreate();
+  // avifDecoderSetSource(decoder, AVIF_DECODER_SOURCE_PRIMARY_ITEM);
+  avifResult result = avifDecoderParse(decoder, &raw);
+  if (result == AVIF_RESULT_OK) {
+    // printf("AVIF container reports dimensions: %ux%u (@ %u bpc)\n",
+    //        decoder->containerWidth, decoder->containerHeight,
+    //        decoder->containerDepth);
+    for (int loop = 0; loop < 2; ++loop) {
+      // printf("Image decoded: %s\n", inputFilename);
+      // printf(" * %2.2f seconds, %d images\n", decoder->duration,
+      //        decoder->imageCount);
+      int frameIndex = 0;
+      while (avifDecoderNextImage(decoder) == AVIF_RESULT_OK) {
+        // printf("  * Decoded frame [%d] [pts %2.2f] [duration %2.2f] "
+        //        "[keyframe:%s nearest:%u]: %dx%d\n",
+        //        frameIndex, decoder->imageTiming.pts,
+        //        decoder->imageTiming.duration,
+        //        avifDecoderIsKeyframe(decoder, frameIndex) ? "true" : "false",
+        //        avifDecoderNearestKeyframe(decoder, frameIndex),
+        //        decoder->image->width, decoder->image->height);
+        ++frameIndex;
+      }
+
+      if (loop != 1) {
+        result = avifDecoderReset(decoder);
+        if (result == AVIF_RESULT_OK) {
+          // printf("Decoder reset! Decoding one more time.\n");
+        } else {
+          // printf("ERROR: Failed to reset decode: %s\n",
+          //        avifResultToString(result));
+          break;
+        }
+      }
+    }
+  } else {
+    // printf("ERROR: Failed to decode image: %s\n",
+    // avifResultToString(result));
+  }
+
+  avifDecoderDestroy(decoder);
+  return 0; // Non-zero return values are reserved for future use.
+}
diff --git a/projects/libavif/avif_decode_seed_corpus.zip b/projects/libavif/avif_decode_seed_corpus.zip
index 90c67bb..eb04c20 100644
--- a/projects/libavif/avif_decode_seed_corpus.zip
+++ b/projects/libavif/avif_decode_seed_corpus.zip
Binary files differ
diff --git a/projects/libavif/build.sh b/projects/libavif/build.sh
index 130709f..bf2bf4c 100755
--- a/projects/libavif/build.sh
+++ b/projects/libavif/build.sh
@@ -26,7 +26,7 @@
 
 # build fuzzer
 $CXX $CXXFLAGS -std=c++11 -I../include \
-    ../tests/oss-fuzz/avif_decode_fuzzer.cc -o $OUT/avif_decode_fuzzer \
+    $SRC/avif_decode_fuzzer.cc -o $OUT/avif_decode_fuzzer \
     $LIB_FUZZING_ENGINE libavif.a ../ext/dav1d/build/src/libdav1d.a
 
 # copy seed corpus
diff --git a/projects/libavif/project.yaml b/projects/libavif/project.yaml
index fbb93fc..60816fa 100644
--- a/projects/libavif/project.yaml
+++ b/projects/libavif/project.yaml
@@ -1,6 +1,2 @@
 homepage: "https://github.com/AOMediaCodec/libavif"
-language: c++
 primary_contact: "joedrago@gmail.com"
-auto_ccs:
-  - "wtc@google.com"
-main_repo: 'https://github.com/AOMediaCodec/libavif.git'
diff --git a/projects/libcacard/Dockerfile b/projects/libcacard/Dockerfile
deleted file mode 100644
index 5e280b9..0000000
--- a/projects/libcacard/Dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y pkg-config libglib2.0-dev gyp libsqlite3-dev mercurial python3-pip
-# Because Ubuntu has really ancient meson out there
-RUN pip3 install meson ninja
-
-RUN git clone --depth 1 --single-branch --branch master https://gitlab.freedesktop.org/spice/libcacard.git libcacard
-RUN git clone --depth 1 https://github.com/nss-dev/nss.git nss
-RUN hg clone https://hg.mozilla.org/projects/nspr
-
-WORKDIR libcacard
-COPY build.sh $SRC/
diff --git a/projects/libcacard/build.sh b/projects/libcacard/build.sh
deleted file mode 100755
index 719502e..0000000
--- a/projects/libcacard/build.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Workaround for fixing AFL++ build, discarded for others.
-# See https://github.com/google/oss-fuzz/issues/4280#issuecomment-773977943
-export AFL_LLVM_INSTRUMENT=CLASSIC,NGRAM-4
-
-# Compile NSS
-mkdir $SRC/nss-nspr
-mv $SRC/nss $SRC/nss-nspr/
-mv $SRC/nspr $SRC/nss-nspr/
-cd $SRC/nss-nspr/
-# We do not need NSS to be built with address sanitizer
-CFLAGS="" CXXFLAGS="" nss/build.sh --static
-
-# Create a package config for NSS
-cp dist/Debug/lib/pkgconfig/{nspr,nss}.pc
-sed -i "s/Debug//g" dist/Debug/lib/pkgconfig/nss.pc
-sed -i "s/\/lib/\/lib\/Debug/g" dist/Debug/lib/pkgconfig/nss.pc
-sed -i "s/include\/nspr/public\/nss/g" dist/Debug/lib/pkgconfig/nss.pc
-sed -i "s/NSPR/NSS/g" dist/Debug/lib/pkgconfig/nss.pc
-sed -i "s/Libs:.*/Libs: -L\${libdir} -lssl -lsmime -lnssdev -lnss_static -lpk11wrap_static -lcryptohi -lcerthi -lcertdb -lnssb -lnssutil -lnsspki -ldl -lm -lsqlite -lsoftokn_static -lfreebl_static -lgcm-aes-x86_c_lib -lhw-acc-crypto-avx -lhw-acc-crypto-avx2 /g" dist/Debug/lib/pkgconfig/nss.pc
-echo "Requires: nspr" >> dist/Debug/lib/pkgconfig/nss.pc
-
-export NSS_NSPR_PATH=$(realpath $SRC/nss-nspr/)
-export PKG_CONFIG_PATH=$NSS_NSPR_PATH/dist/Debug/lib/pkgconfig
-export LD_LIBRARY_PATH=$NSS_NSPR_PATH/dist/Debug/lib
-
-# compile libcacard
-BUILD=$WORK/meson
-rm -rf $BUILD
-mkdir $BUILD
-
-cd $SRC/libcacard
-# Drop the tests as they are not needed and require too much dependencies
-meson $BUILD -Ddefault_library=static -Ddisable_tests=true
-ninja -C $BUILD
-
-# We need nss db to work
-cp -r tests/db $OUT/
-
-echo "XXXXXXXX" > $WORK/testinput
-
-fuzzers=$(find $BUILD/fuzz/ -executable -type f)
-for f in $fuzzers; do
-	fuzzer=$(basename $f)
-	cp $f $OUT/
-	# Check if it runs at least in build image
-	$OUT/$fuzzer $WORK/testinput
-	#zip -j $OUT/${fuzzer}_seed_corpus.zip fuzz/corpora/${fuzzer}/*
-done
-
-rm $WORK/testinput
diff --git a/projects/libcacard/project.yaml b/projects/libcacard/project.yaml
index 534af5c..85874af 100644
--- a/projects/libcacard/project.yaml
+++ b/projects/libcacard/project.yaml
@@ -1,9 +1,9 @@
 homepage: "https://gitlab.freedesktop.org/spice/libcacard"
-language: c
 primary_contact: "jjelen@redhat.com"
 auto_ccs:
  - "jakuje@gmail.com"
 sanitizers:
  - address
+ - memory:
+    experimental: True
  - undefined
-main_repo: 'https://gitlab.freedesktop.org/spice/libcacard.git'
diff --git a/projects/libcbor/Dockerfile b/projects/libcbor/Dockerfile
index 7ac62c5..155d336 100644
--- a/projects/libcbor/Dockerfile
+++ b/projects/libcbor/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER alex.gaynor@gmail.com
 RUN apt-get update && apt-get install -y make cmake
 RUN git clone --depth 1 https://github.com/PJK/libcbor
 WORKDIR libcbor
diff --git a/projects/libcbor/project.yaml b/projects/libcbor/project.yaml
index 48bdef9..0ab5d71 100644
--- a/projects/libcbor/project.yaml
+++ b/projects/libcbor/project.yaml
@@ -1,14 +1,8 @@
 homepage: "https://github.com/PJK/libcbor"
-language: c++
 primary_contact: "me@pavelkalvoda.com"
 auto_ccs:
   - alex.gaynor@gmail.com
-fuzzing_engines:
-  - afl
-  - libfuzzer
-  - honggfuzz
 sanitizers:
   - address
   - undefined
   - memory
-main_repo: 'https://github.com/PJK/libcbor'
diff --git a/projects/libchewing/Dockerfile b/projects/libchewing/Dockerfile
index 4a77e24..b361dac 100644
--- a/projects/libchewing/Dockerfile
+++ b/projects/libchewing/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kcwu@csie.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool texinfo
 
 RUN git clone --depth 1 https://github.com/chewing/libchewing.git
diff --git a/projects/libchewing/project.yaml b/projects/libchewing/project.yaml
index 1dd3e6e..8575430 100644
--- a/projects/libchewing/project.yaml
+++ b/projects/libchewing/project.yaml
@@ -1,5 +1,3 @@
 homepage: "http://chewing.im/"
-language: c++
 disabled: true
 view_restrictions: none
-main_repo: 'https://github.com/chewing/libchewing.git'
diff --git a/projects/libcoap/Dockerfile b/projects/libcoap/Dockerfile
index 483ce97..1a63bc5 100644
--- a/projects/libcoap/Dockerfile
+++ b/projects/libcoap/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER bergmann@tzi.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool \
     pkg-config
 RUN git clone --depth 1 https://github.com/obgm/libcoap.git libcoap
diff --git a/projects/libcoap/project.yaml b/projects/libcoap/project.yaml
index e4b5776..6bdfa32 100644
--- a/projects/libcoap/project.yaml
+++ b/projects/libcoap/project.yaml
@@ -1,6 +1,4 @@
 homepage: "https://libcoap.net/"
-language: c++
 primary_contact: "bergmann@tzi.org"
 auto_ccs:
     - "libcoap@gmail.com"
-main_repo: 'https://github.com/obgm/libcoap.git'
diff --git a/projects/libevent/Dockerfile b/projects/libevent/Dockerfile
deleted file mode 100644
index 04fdc04..0000000
--- a/projects/libevent/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool cmake
-RUN git clone --depth 1 https://github.com/libevent/libevent.git libevent
-WORKDIR libevent
-COPY build.sh *.cc $SRC/
diff --git a/projects/libevent/build.sh b/projects/libevent/build.sh
deleted file mode 100755
index d6e44b6..0000000
--- a/projects/libevent/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-sh autogen.sh
-./configure --disable-openssl
-make -j$(nproc) clean
-make -j$(nproc) all
-make install
-
-# build fuzzer
-for fuzzers in $(find $SRC -name '*_fuzzer.cc'); do
-  fuzz_basename=$(basename -s .cc $fuzzers)
-  $CXX $CXXFLAGS -std=c++11 -Iinclude \
-      $fuzzers $LIB_FUZZING_ENGINE ./.libs/libevent.a ./.libs/libevent_core.a  \
-      ./.libs/libevent_pthreads.a ./.libs/libevent_extra.a \
-      -o $OUT/$fuzz_basename
-done
diff --git a/projects/libevent/parse_query_fuzzer.cc b/projects/libevent/parse_query_fuzzer.cc
deleted file mode 100644
index 2271b39..0000000
--- a/projects/libevent/parse_query_fuzzer.cc
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stddef.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string>
-
-#include "libevent/include/event2/http.h"
-#include "libevent/include/event2/keyvalq_struct.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  std::string fuzz_string(reinterpret_cast<const char *>(data), size);
-  struct evkeyvalq headers;
-  if (evhttp_parse_query(fuzz_string.c_str(), &headers) == 0) {
-    evhttp_clear_headers(&headers);
-  }
-  return 0;
-}
diff --git a/projects/libevent/project.yaml b/projects/libevent/project.yaml
deleted file mode 100644
index feb600c..0000000
--- a/projects/libevent/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/libevent/libevent"
-language: c++
-primary_contact: "a3at.mail@gmail.com"
-sanitizers:
-  - address
-  - memory
-  - undefined
-architectures:
-  - x86_64
-  - i386
-main_repo: 'https://github.com/libevent/libevent.git'
diff --git a/projects/libexif/Dockerfile b/projects/libexif/Dockerfile
index 465fd02..927c71e 100644
--- a/projects/libexif/Dockerfile
+++ b/projects/libexif/Dockerfile
@@ -15,8 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER paul.l.kehrer@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool gettext autopoint
 RUN git clone --depth 1 https://github.com/libexif/libexif
 RUN git clone --depth 1 https://github.com/ianare/exif-samples
 WORKDIR libexif
-COPY exif_loader_fuzzer.cc exif_from_data_fuzzer.cc build.sh $SRC/
+COPY exif_loader_fuzzer.cc build.sh $SRC/
diff --git a/projects/libexif/build.sh b/projects/libexif/build.sh
index 790e511..a533bff 100755
--- a/projects/libexif/build.sh
+++ b/projects/libexif/build.sh
@@ -24,17 +24,7 @@
 mkdir -p exif_corpus
 find exif-samples -type f -name '*.jpg' -exec mv -n {} exif_corpus/ \; -o -name '*.tiff' -exec mv -n {} exif_corpus/ \;
 cp libexif/test/testdata/*.jpg exif_corpus
-zip -r "$WORK/exif_seed_corpus.zip" exif_corpus/
+zip -r "$OUT/exif_loader_fuzzer_seed_corpus.zip" exif_corpus/
 popd
 
-for fuzzer in $(find $SRC/ -name '*_fuzzer.cc'); do
-  fuzzer_basename=$(basename -s .cc $fuzzer)
-  $CXX $CXXFLAGS \
-      -std=c++11 \
-      -I"$WORK/include" \
-      $fuzzer \
-      -o $OUT/$fuzzer_basename \
-      $LIB_FUZZING_ENGINE \
-      "$WORK/lib/libexif.a"
-  cp $WORK/exif_seed_corpus.zip "${OUT}/${fuzzer_basename}_seed_corpus.zip"
-done
+$CXX $CXXFLAGS -std=c++11 -I"$WORK/include" "$SRC/exif_loader_fuzzer.cc" -o $OUT/exif_loader_fuzzer $LIB_FUZZING_ENGINE "$WORK/lib/libexif.a"
diff --git a/projects/libexif/exif_from_data_fuzzer.cc b/projects/libexif/exif_from_data_fuzzer.cc
deleted file mode 100644
index 2289328..0000000
--- a/projects/libexif/exif_from_data_fuzzer.cc
+++ /dev/null
@@ -1,66 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <libexif/exif-data.h>
-#include <libexif/exif-loader.h>
-#include <stddef.h>
-#include <stdlib.h>
-
-/* Extract all MakerNote tags */
-static void mnote_dump(ExifData *data) {
-    ExifMnoteData *mn = exif_data_get_mnote_data(data);
-    if (mn) {
-        int num = exif_mnote_data_count(mn);
-
-        /* Loop through all MakerNote tags */
-        for (int i=0; i < num; ++i) {
-            char buf[1024];
-            exif_mnote_data_get_value(mn, i, buf, sizeof(buf));
-        }
-    }
-}
-
-static void dump_value(ExifEntry *entry, void *user_data) {
-  char buf[1024];
-  exif_entry_get_value(entry, buf, sizeof(buf));
-}
-
-static void data_func(ExifContent *content, void *user_data) {
-  exif_content_foreach_entry(content, dump_value, NULL);
-}
-
-/* This is like exif_data_dump but without writing to stdout */
-static void data_dump(ExifData *data) {
-  exif_data_foreach_content(data, data_func, NULL);
-}
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-
-  // Parse tags using (ultimately) exif_data_load_data()
-  auto image = exif_data_new_from_data(data, size);
-  if (image) {
-    // Exercise the EXIF tag manipulation code
-    exif_data_get_mnote_data(image);
-    data_dump(image);
-    mnote_dump(image);
-    unsigned char *buf;
-    unsigned int sz;
-    exif_data_save_data(image, &buf, &sz);
-    free(buf);
-    exif_data_fix(image);
-    exif_data_unref(image);
-  }
-
-  return 0;
-}
diff --git a/projects/libexif/exif_loader_fuzzer.cc b/projects/libexif/exif_loader_fuzzer.cc
index 6389820..98365b7 100644
--- a/projects/libexif/exif_loader_fuzzer.cc
+++ b/projects/libexif/exif_loader_fuzzer.cc
@@ -1,17 +1,3 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
 #include <stdio.h>
 #include <stdint.h>
 #include <libexif/exif-loader.h>
diff --git a/projects/libexif/project.yaml b/projects/libexif/project.yaml
index 8b55215..72f2d93 100644
--- a/projects/libexif/project.yaml
+++ b/projects/libexif/project.yaml
@@ -1,17 +1,13 @@
 homepage: "https://libexif.github.io"
-language: c++
 primary_contact: "dan@coneharvesters.com"
 auto_ccs:
   - paul.l.kehrer@gmail.com
   - marcus@jet.franken.de
-  - marcusmeissner@googlemail.com
 fuzzing_engines:
   - libfuzzer
   - afl
-  - honggfuzz
   - dataflow
 sanitizers:
   - address
   - dataflow
   - memory
-main_repo: 'https://github.com/libexif/libexif'
diff --git a/projects/libfdk-aac/Dockerfile b/projects/libfdk-aac/Dockerfile
index ed0ddca..441bcf9 100644
--- a/projects/libfdk-aac/Dockerfile
+++ b/projects/libfdk-aac/Dockerfile
@@ -15,5 +15,6 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kcc@google.com
 RUN git clone --depth 1 https://android.googlesource.com/platform/external/aac/
 COPY build.sh *.cpp $SRC/
diff --git a/projects/libfdk-aac/project.yaml b/projects/libfdk-aac/project.yaml
index 0613f72..9a5777c 100644
--- a/projects/libfdk-aac/project.yaml
+++ b/projects/libfdk-aac/project.yaml
@@ -1,5 +1,4 @@
 homepage: https://android.googlesource.com/platform/external/aac/
-language: c++
 primary_contact: audio-fdk@iis.fraunhofer.de
 auto_ccs:
   - jmtrivi@google.com
@@ -9,18 +8,6 @@
   - geuteneier@google.com
   - hollyhall@google.com
   - mikelogan@google.com
-  - maverickm@google.com
-  - warrenwright@google.com
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
-sanitizers:
-  - address
-  - undefined
-  - memory
-  - dataflow
 architectures:
   - x86_64
   - i386
diff --git a/projects/libfido2/Dockerfile b/projects/libfido2/Dockerfile
index e7d8a6a..0b6a1c7 100644
--- a/projects/libfido2/Dockerfile
+++ b/projects/libfido2/Dockerfile
@@ -15,13 +15,11 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER g.kihlman@yubico.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN apt-get install -y cmake libudev-dev pkg-config chrpath
-RUN git clone --branch v0.8.0 https://github.com/PJK/libcbor
+RUN git clone --branch v0.5.0 https://github.com/PJK/libcbor
 RUN git clone --branch OpenSSL_1_1_1-stable https://github.com/openssl/openssl
-RUN git clone --branch v1.2.11 https://github.com/madler/zlib
 RUN git clone https://github.com/Yubico/libfido2
-# CIFuzz will replace the libfido directory so put the corpus outside
-ADD https://storage.googleapis.com/yubico-libfido2/corpus.tgz corpus.tgz
 WORKDIR libfido2
 COPY build.sh $SRC/
diff --git a/projects/libfido2/build.sh b/projects/libfido2/build.sh
index 6c680e2..3f00058 100755
--- a/projects/libfido2/build.sh
+++ b/projects/libfido2/build.sh
@@ -20,8 +20,7 @@
 cd ${SRC}/libcbor
 patch -l -p0 < ${SRC}/libfido2/fuzz/README
 mkdir build && cd build
-cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Debug \
-      -DCMAKE_INSTALL_PREFIX=${WORK} -DSANITIZE=OFF ..
+cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${WORK} -DSANITIZE=OFF ..
 make -j$(nproc) VERBOSE=1
 make install
 
@@ -37,12 +36,6 @@
 make -j$(nproc) LDCMD="${CXX} ${CXXFLAGS}"
 make install_sw
 
-# Build zlib, taken from oss-fuzz/projects/zlib.sh
-cd ${SRC}/zlib
-./configure --prefix=${WORK}
-make -j$(nproc) all
-make install
-
 # Building libfido2 with ${LIB_FUZZING_ENGINE} and chosen sanitizer
 cd ${SRC}/libfido2
 mkdir build && cd build
@@ -68,12 +61,9 @@
 done
 
  # Prepare seed corpora
-tar xzf ${SRC}/corpus.tgz
-(set -e ; cd fuzz_assert/corpus    ; zip -r ${OUT}/fuzz_assert_seed_corpus.zip .)
-(set -e ; cd fuzz_bio/corpus       ; zip -r ${OUT}/fuzz_bio_seed_corpus.zip .)
-(set -e ; cd fuzz_cred/corpus      ; zip -r ${OUT}/fuzz_cred_seed_corpus.zip .)
-(set -e ; cd fuzz_credman/corpus   ; zip -r ${OUT}/fuzz_credman_seed_corpus.zip .)
-(set -e ; cd fuzz_hid/corpus       ; zip -r ${OUT}/fuzz_hid_seed_corpus.zip .)
-(set -e ; cd fuzz_largeblob/corpus ; zip -r ${OUT}/fuzz_largeblob_seed_corpus.zip .)
-(set -e ; cd fuzz_mgmt/corpus      ; zip -r ${OUT}/fuzz_mgmt_seed_corpus.zip .)
-(set -e ; cd fuzz_netlink/corpus   ; zip -r ${OUT}/fuzz_netlink_seed_corpus.zip .)
+tar xzf ${SRC}/libfido2/fuzz/corpus.tgz
+(set -e ; cd fuzz_assert/corpus  ; zip -r ${OUT}/fuzz_assert_seed_corpus.zip .)
+(set -e ; cd fuzz_bio/corpus     ; zip -r ${OUT}/fuzz_bio_seed_corpus.zip .)
+(set -e ; cd fuzz_cred/corpus    ; zip -r ${OUT}/fuzz_cred_seed_corpus.zip .)
+(set -e ; cd fuzz_credman/corpus ; zip -r ${OUT}/fuzz_credman_seed_corpus.zip .)
+(set -e ; cd fuzz_mgmt/corpus    ; zip -r ${OUT}/fuzz_mgmt_seed_corpus.zip .)
diff --git a/projects/libfido2/project.yaml b/projects/libfido2/project.yaml
index 5a351a0..e3f28c1 100644
--- a/projects/libfido2/project.yaml
+++ b/projects/libfido2/project.yaml
@@ -1,15 +1,12 @@
 homepage: https://github.com/Yubico/libfido2
-language: c++
-primary_contact: "kostas@yubico.com"
+primary_contact: "g.kihlman@yubico.com"
 auto_ccs:
     - "pedro@ambientworks.net"
     - "marissa.nishimoto@yubico.com"
     - "pedro.ossfuzz@gmail.com"
-    - "ludvig.michaelsson@yubico.com"
 sanitizers:
     - address
     - undefined
     - memory
 fuzzing_engines:
     - libfuzzer
-main_repo: 'https://github.com/Yubico/libfido2'
diff --git a/projects/libfmt/Dockerfile b/projects/libfmt/Dockerfile
new file mode 100644
index 0000000..3249bb0
--- /dev/null
+++ b/projects/libfmt/Dockerfile
@@ -0,0 +1,27 @@
+# Copyright 2019 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER pauldreikossfuzz@gmail.com
+RUN echo "CXX=$CXX"
+RUN echo "CXXFLAGS=$CXXFLAGS"
+RUN apt-get update && apt-get install -y cmake ninja-build
+
+RUN git clone --depth 1 --branch master \
+  https://github.com/fmtlib/fmt.git
+
+WORKDIR fmt
+COPY build.sh $SRC/
diff --git a/projects/libfmt/build.sh b/projects/libfmt/build.sh
new file mode 100755
index 0000000..8d38ff7
--- /dev/null
+++ b/projects/libfmt/build.sh
@@ -0,0 +1,42 @@
+#!/bin/bash -eu
+# Copyright 2019 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#create zip files with initial corpus, taken from version control.
+#for f in $(ls fuzzers/initial_corpus/) ;do
+#  zip -j -r $OUT/fuzzer_${f}_seed_corpus.zip fuzzers/initial_corpus/$f
+#done
+
+mkdir build
+cd build
+
+# use C++ 14 instead of 17, because even if clang is
+# bleeding edge, cmake is old in the oss fuzz image.
+
+cmake .. \
+-GNinja \
+-DCMAKE_BUILD_TYPE=Debug \
+-DCMAKE_CXX_STANDARD=14 \
+-DFMT_DOC=Off \
+-DFMT_TEST=Off \
+-DFMT_SAFE_DURATION_CAST=On \
+-DFMT_FUZZ=On \
+-DFMT_FUZZ_LINKMAIN=Off \
+-DFMT_FUZZ_LDFLAGS=$LIB_FUZZING_ENGINE
+
+cmake --build .
+
+cp bin/fuzzer_* $OUT
diff --git a/projects/libfmt/project.yaml b/projects/libfmt/project.yaml
new file mode 100644
index 0000000..a851089
--- /dev/null
+++ b/projects/libfmt/project.yaml
@@ -0,0 +1,4 @@
+homepage: "https://github.com/fmtlib/fmt"
+primary_contact: "pauldreikossfuzz@gmail.com"
+auto_ccs:
+ - "victor.zverovich@gmail.com"
diff --git a/projects/libgd/Dockerfile b/projects/libgd/Dockerfile
index 0ff48b0..0718205 100644
--- a/projects/libgd/Dockerfile
+++ b/projects/libgd/Dockerfile
@@ -15,9 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER ossfuzz@tds.xyz
 RUN apt-get update && \
     apt-get install -y make autoconf automake libtool pkg-config libz-dev
 RUN git clone --depth 1 https://github.com/libgd/libgd
-ADD https://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz $SRC/afl_testcases.tgz
+ADD http://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz $SRC/afl_testcases.tgz
 WORKDIR libgd
-COPY build.sh *.cc $SRC/
+COPY build.sh parser_target.cc $SRC/
diff --git a/projects/libgd/build.sh b/projects/libgd/build.sh
index 4aabb06..c49d21b 100755
--- a/projects/libgd/build.sh
+++ b/projects/libgd/build.sh
@@ -32,13 +32,6 @@
       $LIB_FUZZING_ENGINE -lgd -Wl,-Bstatic -lz -Wl,-Bdynamic
 done
 
-for fuzzers in $(find $SRC -name '*_fuzzer.cc'); do
-      fuzz_basename=$(basename -s .cc $fuzzers)
-      $CXX $CXXFLAGS -std=c++11 -I"$WORK/include" -L"$WORK/lib" \
-      $fuzzers -o $OUT/$fuzz_basename \
-      $LIB_FUZZING_ENGINE -lgd -Wl,-Bstatic -lz -Wl,-Bdynamic
-done
-
 mkdir afl_testcases
 (cd afl_testcases; tar xvf "$SRC/afl_testcases.tgz")
 for format in bmp gif png webp; do
diff --git a/projects/libgd/gd_image_string_fuzzer.cc b/projects/libgd/gd_image_string_fuzzer.cc
deleted file mode 100644
index f3435cc..0000000
--- a/projects/libgd/gd_image_string_fuzzer.cc
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include <cstddef>
-#include <cstdint>
-#include <cstdlib>
-#include <string>
-
-#include "gd.h"
-#include "gdfontg.h"
-#include "gdfontl.h"
-#include "gdfontmb.h"
-#include "gdfonts.h"
-#include "gdfontt.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-    FuzzedDataProvider stream(data, size);
-    const uint8_t slate_width = stream.ConsumeIntegral<uint8_t>();
-    const uint8_t slate_height = stream.ConsumeIntegral<uint8_t>();
-    gdImagePtr slate_image = gdImageCreateTrueColor(slate_width, slate_height);
-    if (slate_image == nullptr) {
-      return 0;
-    }
-
-    const int x_position = stream.ConsumeIntegral<int>();
-    const int y_position = stream.ConsumeIntegral<int>();
-    const int text_color = stream.ConsumeIntegral<int>();
-    const gdFontPtr font_ptr = stream.PickValueInArray(
-        {gdFontGetGiant(), gdFontGetLarge(), gdFontGetMediumBold(),
-        gdFontGetSmall(), gdFontGetTiny()});
-    const std::string text = stream.ConsumeRemainingBytesAsString();
-
-    gdImageString(slate_image, font_ptr, x_position, y_position,
-                  reinterpret_cast<uint8_t*>(const_cast<char*>(text.c_str())),
-                  text_color);
-    gdImageDestroy(slate_image);
-    return 0;
-}
diff --git a/projects/libgd/project.yaml b/projects/libgd/project.yaml
index 66dc69c..11c766e 100644
--- a/projects/libgd/project.yaml
+++ b/projects/libgd/project.yaml
@@ -1,8 +1,6 @@
 homepage: "https://libgd.org"
-language: c++
 primary_contact: "security@libgd.org"
 auto_ccs:
   - vapier@gmail.com
   - tim@tim-smith.us
   - cmbecker69@gmx.de
-main_repo: 'https://github.com/libgd/libgd'
diff --git a/projects/libgit2/Dockerfile b/projects/libgit2/Dockerfile
index 7f5a6c7..eb75510 100644
--- a/projects/libgit2/Dockerfile
+++ b/projects/libgit2/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER Nelson Elhage <nelhage@nelhage.com>
 RUN apt-get update && apt-get install -y make autoconf automake libtool cmake
 RUN git clone --depth 1 https://github.com/libgit2/libgit2 libgit2
 WORKDIR libgit2
diff --git a/projects/libgit2/project.yaml b/projects/libgit2/project.yaml
index 31de00e..7bc2cb1 100644
--- a/projects/libgit2/project.yaml
+++ b/projects/libgit2/project.yaml
@@ -1,6 +1,4 @@
 homepage: "https://libgit2.github.com/"
-language: c++
 primary_contact: "ps@pks.im"
 auto_ccs:
   - "nelhage@nelhage.com"
-main_repo: 'https://github.com/libgit2/libgit2'
diff --git a/projects/libheif/Dockerfile b/projects/libheif/Dockerfile
index 3c1a0d0..a89584d 100644
--- a/projects/libheif/Dockerfile
+++ b/projects/libheif/Dockerfile
@@ -16,6 +16,7 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 
+MAINTAINER mail@joachim-bauch.de
 
 RUN apt-get update && apt-get install -y \
     autoconf \
@@ -42,12 +43,6 @@
 RUN git clone \
     --depth 1 \
     --branch master \
-    https://aomedia.googlesource.com/aom \
-    aom
-
-RUN git clone \
-    --depth 1 \
-    --branch master \
     https://github.com/strukturag/libheif.git \
     libheif
 
diff --git a/projects/libheif/build.sh b/projects/libheif/build.sh
index 70618a2..d2aed39 100755
--- a/projects/libheif/build.sh
+++ b/projects/libheif/build.sh
@@ -45,24 +45,6 @@
 make -j$(nproc)
 make install
 
-mkdir -p $SRC/aom/build/linux
-cd $SRC/aom/build/linux
-cmake -G "Unix Makefiles" \
-  -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX \
-  -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-  -DCMAKE_INSTALL_PREFIX="$DEPS_PATH" \
-  -DENABLE_SHARED:bool=off -DCONFIG_PIC=1 \
-  -DENABLE_EXAMPLES=0 -DENABLE_DOCS=0 -DENABLE_TESTS=0 \
-  -DCONFIG_SIZE_LIMIT=1 \
-  -DDECODE_HEIGHT_LIMIT=12288 -DDECODE_WIDTH_LIMIT=12288 \
-  -DDO_RANGE_CHECK_CLAMP=1 \
-  -DAOM_MAX_ALLOCABLE_MEMORY=536870912 \
-  -DAOM_TARGET_CPU=generic \
-  ../../
-make clean
-make -j$(nproc)
-make install
-
 # Remove shared libraries to avoid accidental linking against them.
 rm -f $DEPS_PATH/lib/*.so
 rm -f $DEPS_PATH/lib/*.so.*
diff --git a/projects/libheif/project.yaml b/projects/libheif/project.yaml
index f42cf60..b3ea452 100644
--- a/projects/libheif/project.yaml
+++ b/projects/libheif/project.yaml
@@ -1,9 +1,7 @@
 homepage: "https://github.com/strukturag/libheif"
-language: c++
 primary_contact: "dirk.farin@gmail.com"
 auto_ccs:
   - "mail@joachim-bauch.de"
 architectures:
   - i386
   - x86_64
-main_repo: 'https://github.com/strukturag/libheif.git'
diff --git a/projects/libhevc/Dockerfile b/projects/libhevc/Dockerfile
index d483313..ca83129 100644
--- a/projects/libhevc/Dockerfile
+++ b/projects/libhevc/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER harish.mahendrakar@ittiam.com
 RUN apt-get update && apt-get install -y wget cmake
 RUN git clone https://android.googlesource.com/platform/external/libhevc
 ADD https://storage.googleapis.com/android_media/external/libhevc/fuzzer/hevc_dec_fuzzer_seed_corpus.zip $SRC/
diff --git a/projects/libhevc/project.yaml b/projects/libhevc/project.yaml
index 5d84b08..7440484 100644
--- a/projects/libhevc/project.yaml
+++ b/projects/libhevc/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://android.googlesource.com/platform/external/libhevc/"
-language: c++
 primary_contact: "harish.mahendrakar@ittiam.com"
 sanitizers:
   - address
@@ -14,9 +13,6 @@
   - geuteneier@google.com
   - hollyhall@google.com
   - mikelogan@google.com
-  - maverickm@google.com
-  - warrenwright@google.com
 architectures:
   - x86_64
   - i386
-main_repo: 'https://android.googlesource.com/platform/external/libhevc'
diff --git a/projects/libhtp/Dockerfile b/projects/libhtp/Dockerfile
index cb44a8f..3eec92c 100644
--- a/projects/libhtp/Dockerfile
+++ b/projects/libhtp/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER victor@inliniac.net
 RUN apt-get update && apt-get install -y make autoconf automake libtool zlib1g-dev liblzma-dev
 RUN git clone --depth 1 https://github.com/OISF/libhtp.git libhtp
 WORKDIR $SRC
diff --git a/projects/libhtp/project.yaml b/projects/libhtp/project.yaml
index 3b861d5..cd887d1 100644
--- a/projects/libhtp/project.yaml
+++ b/projects/libhtp/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/OISF/libhtp"
-language: c++
 primary_contact: "vjulien@openinfosecfoundation.org"
 auto_ccs :
 - "p.antoine@catenacyber.fr"
@@ -9,4 +8,3 @@
 - address
 - memory
 - undefined
-main_repo: 'https://github.com/OISF/libhtp.git'
diff --git a/projects/libical/Dockerfile b/projects/libical/Dockerfile
index 7402d6d..9679108 100644
--- a/projects/libical/Dockerfile
+++ b/projects/libical/Dockerfile
@@ -15,6 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER tsdgeos@gmail.com
+RUN apt-get update && apt-get install --yes cmake
+
+# libical requires cmake 3.11 whereas Ubuntu 16.04 only has 3.5.1
+ADD https://github.com/Kitware/CMake/releases/download/v3.14.3/cmake-3.14.3-Linux-x86_64.tar.gz $WORK
+RUN cd $WORK && tar -xzf cmake-3.14.3-Linux-x86_64.tar.gz && rm cmake-3.14.3-Linux-x86_64.tar.gz
 
 RUN git clone --depth 1 https://github.com/libical/libical.git
 COPY build.sh $SRC
diff --git a/projects/libical/build.sh b/projects/libical/build.sh
index 830a55b..9af1325 100644
--- a/projects/libical/build.sh
+++ b/projects/libical/build.sh
@@ -1,4 +1,4 @@
-cmake . -DSTATIC_ONLY=ON -DICAL_GLIB=False
+$WORK/cmake-3.14.3-Linux-x86_64/bin/cmake . -DSTATIC_ONLY=ON -DICAL_GLIB=False
 make install -j$(nproc)
 
 $CXX $CXXFLAGS -std=c++11 $SRC/libical_fuzzer.cc $LIB_FUZZING_ENGINE /usr/local/lib/libical.a -o $OUT/libical_fuzzer
diff --git a/projects/libical/project.yaml b/projects/libical/project.yaml
index a5e194d..7462020 100644
--- a/projects/libical/project.yaml
+++ b/projects/libical/project.yaml
@@ -1,5 +1,4 @@
 homepage: https://github.com/libical/libical
-language: c++
 primary_contact: tsdgeos@gmail.com
 auto_ccs:
   - allen.d.winter@gmail.com
@@ -8,4 +7,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/libical/libical.git'
diff --git a/projects/libidn/Dockerfile b/projects/libidn/Dockerfile
index 3bb5413..70ccdd6 100644
--- a/projects/libidn/Dockerfile
+++ b/projects/libidn/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER rockdaboot@gmail.com
 RUN apt-get update && apt-get install -y \
  pkg-config \
  autopoint \
diff --git a/projects/libidn/project.yaml b/projects/libidn/project.yaml
index 6cd7293..fab0882 100644
--- a/projects/libidn/project.yaml
+++ b/projects/libidn/project.yaml
@@ -1,7 +1,5 @@
 homepage: "https://www.gnu.org/software/libidn/"
-language: c++
 primary_contact: "rockdaboot@gmail.com"
 auto_ccs:
   - "tim.ruehsen@gmx.de"
   - "simon@josefsson.org"
-main_repo: 'https://git.savannah.gnu.org/git/libidn.git'
diff --git a/projects/libidn2/Dockerfile b/projects/libidn2/Dockerfile
index a832bd4..193fc16 100644
--- a/projects/libidn2/Dockerfile
+++ b/projects/libidn2/Dockerfile
@@ -15,7 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake gettext libtool autopoint pkg-config gengetopt curl gperf rsync wget
+MAINTAINER rockdaboot@gmail.com
+RUN apt-get update && apt-get install -y make autoconf automake gettext libtool autopoint pkg-config gengetopt curl gperf
 
 RUN git clone --depth=1 --recursive https://gitlab.com/libidn/libidn2.git
 
diff --git a/projects/libidn2/project.yaml b/projects/libidn2/project.yaml
index c8c117f..58750ed 100644
--- a/projects/libidn2/project.yaml
+++ b/projects/libidn2/project.yaml
@@ -1,17 +1,9 @@
 homepage: "https://gitlab.com/libidn/libidn2"
-language: c++
 primary_contact: "rockdaboot@gmail.com"
 auto_ccs:
   - "n.mavrogiannopoulos@gmail.com"
   - "simon@josefsson.org"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
-  - undefined
   - memory
-  - dataflow
-main_repo: 'https://gitlab.com/libidn/libidn2.git'
+  - undefined
diff --git a/projects/libiec61850/Dockerfile b/projects/libiec61850/Dockerfile
deleted file mode 100755
index 17b63d3..0000000
--- a/projects/libiec61850/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/mz-automation/libiec61850
-
-WORKDIR $SRC
-COPY build.sh $SRC/
-COPY fuzz_decode.options $SRC/fuzz_decode.options
diff --git a/projects/libiec61850/build.sh b/projects/libiec61850/build.sh
deleted file mode 100755
index 8487973..0000000
--- a/projects/libiec61850/build.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd libiec61850
-mkdir build && cd build
-cmake ../
-make
-
-$CC $CFLAGS $LIB_FUZZING_ENGINE ../fuzz/fuzz_mms_decode.c -o $OUT/fuzz_mms_decode ./src/libiec61850.a \
-	-I../src/iec61850/inc -I../src/mms/inc -I../src/common/inc \
-	-I../hal/inc -I../src/logging ./hal/libhal.a
-
-# Copy over the options file
-cp $SRC/fuzz_decode.options $OUT/fuzz_decode.options
diff --git a/projects/libiec61850/fuzz_decode.options b/projects/libiec61850/fuzz_decode.options
deleted file mode 100644
index f9d0965..0000000
--- a/projects/libiec61850/fuzz_decode.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-detect_leaks=0
diff --git a/projects/libiec61850/project.yaml b/projects/libiec61850/project.yaml
deleted file mode 100755
index fe265be..0000000
--- a/projects/libiec61850/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/mz-automation/libiec61850"
-primary_contact: "support@mz-automation.de"
-auto_ccs:
-  - "david@adalogics.com"
-language: c
-main_repo: 'https://github.com/mz-automation/libiec61850'
diff --git a/projects/libjpeg-turbo/Dockerfile b/projects/libjpeg-turbo/Dockerfile
index 40c8f49..91ecf3e 100644
--- a/projects/libjpeg-turbo/Dockerfile
+++ b/projects/libjpeg-turbo/Dockerfile
@@ -15,11 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool yasm curl cmake
+MAINTAINER alex.gaynor@gmail.com
+RUN apt-get update && apt-get install -y make autoconf automake libtool nasm curl cmake
 RUN git clone --depth 1 https://github.com/libjpeg-turbo/libjpeg-turbo
 
 RUN mkdir afl-testcases
-RUN cd afl-testcases/ && curl https://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz | tar -xz
+RUN cd afl-testcases/ && curl http://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz | tar -xz
 RUN zip libjpeg_turbo_fuzzer_seed_corpus.zip afl-testcases/jpeg/full/images/* afl-testcases/jpeg_turbo/full/images/* $SRC/libjpeg-turbo/testimages/*
 
 WORKDIR libjpeg-turbo
diff --git a/projects/libjpeg-turbo/project.yaml b/projects/libjpeg-turbo/project.yaml
index 4ed2d55..b77303b 100644
--- a/projects/libjpeg-turbo/project.yaml
+++ b/projects/libjpeg-turbo/project.yaml
@@ -1,6 +1,4 @@
 homepage: "https://github.com/libjpeg-turbo/libjpeg-turbo"
-language: c++
-primary_contact: "drc@virtualgl.org"
 vendor_ccs:
   - "aosmond@mozilla.com"
   - "tnikkel@mozilla.com"
@@ -12,4 +10,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/libjpeg-turbo/libjpeg-turbo'
diff --git a/projects/libldac/Dockerfile b/projects/libldac/Dockerfile
index 9aad216..d5c2a65 100644
--- a/projects/libldac/Dockerfile
+++ b/projects/libldac/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER cdiehl@mozilla.com
 
 RUN apt-get update && apt-get install -y automake libtool
 RUN git clone --depth 1 -b master https://android.googlesource.com/platform/external/libldac
diff --git a/projects/libldac/project.yaml b/projects/libldac/project.yaml
index 189adf0..d9595cf 100644
--- a/projects/libldac/project.yaml
+++ b/projects/libldac/project.yaml
@@ -1,22 +1,12 @@
 homepage: "https://android.googlesource.com/platform/external/libldac"
-language: c++
 primary_contact: "Chisato.Kenmochi@sony.com"
 auto_ccs:
-  - twsmith@mozilla.com
+  - cdiehl@mozilla.com
 vendor_ccs:
   - bcreasey@google.com
   - hamzeh@google.com
   - geuteneier@google.com
   - hollyhall@google.com
   - mikelogan@google.com
-  - maverickm@google.com
-  - warrenwright@google.com
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
-  - dataflow
-main_repo: 'https://android.googlesource.com/platform/external/libldac'
diff --git a/projects/liblouis/Dockerfile b/projects/liblouis/Dockerfile
deleted file mode 100644
index 40a17c0..0000000
--- a/projects/liblouis/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool \
-  pkg-config zlib1g-dev pciutils-dev libpci-dev
-RUN git clone --depth 1 https://github.com/liblouis/liblouis
-WORKDIR liblouis
-COPY build.sh $SRC/
diff --git a/projects/liblouis/build.sh b/projects/liblouis/build.sh
deleted file mode 100755
index fda807c..0000000
--- a/projects/liblouis/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-$SRC/liblouis/tests/fuzzing/build.sh
diff --git a/projects/liblouis/project.yaml b/projects/liblouis/project.yaml
deleted file mode 100644
index e7aa041..0000000
--- a/projects/liblouis/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/liblouis/liblouis"
-main_repo: "https://github.com/liblouis/liblouis"
-language: c
-primary_contact: "christian.egli@sbs.ch"
-auto_ccs:
-  - "Adam@adalogics.com"
-sanitizers:
-  - address
-  - undefined
-  - memory
diff --git a/projects/libmpeg2/Dockerfile b/projects/libmpeg2/Dockerfile
index 9d823a1..849e9ab 100644
--- a/projects/libmpeg2/Dockerfile
+++ b/projects/libmpeg2/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER harish.mahendrakar@ittiam.com
 RUN apt-get update && apt-get install -y wget cmake
 RUN git clone https://android.googlesource.com/platform/external/libmpeg2
 ADD https://storage.googleapis.com/android_media/external/libmpeg2/fuzzer/mpeg2_dec_fuzzer_seed_corpus.zip $SRC/
diff --git a/projects/libmpeg2/project.yaml b/projects/libmpeg2/project.yaml
index a3ec5d4..d304995 100644
--- a/projects/libmpeg2/project.yaml
+++ b/projects/libmpeg2/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://android.googlesource.com/platform/external/libmpeg2/"
-language: c++
 primary_contact: "harish.mahendrakar@ittiam.com"
 sanitizers:
   - address
@@ -14,9 +13,6 @@
   - geuteneier@google.com
   - hollyhall@google.com
   - mikelogan@google.com
-  - maverickm@google.com
-  - warrenwright@google.com
 architectures:
   - x86_64
   - i386
-main_repo: 'https://android.googlesource.com/platform/external/libmpeg2'
diff --git a/projects/libpcap/Dockerfile b/projects/libpcap/Dockerfile
index fcd2b30..f7acf86 100644
--- a/projects/libpcap/Dockerfile
+++ b/projects/libpcap/Dockerfile
@@ -15,10 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER security@tcpdump.org
 RUN apt-get update && apt-get install -y make cmake flex bison
 RUN git clone --depth 1 https://github.com/the-tcpdump-group/libpcap.git libpcap
 # for corpus as wireshark
 RUN git clone --depth=1 https://github.com/the-tcpdump-group/tcpdump.git tcpdump
 WORKDIR $SRC
 COPY build.sh $SRC/
+COPY patch.diff $SRC/
 
diff --git a/projects/libpcap/build.sh b/projects/libpcap/build.sh
index 75463b3..e44f8b8 100755
--- a/projects/libpcap/build.sh
+++ b/projects/libpcap/build.sh
@@ -17,6 +17,7 @@
 
 cd libpcap
 # build project
+git apply ../patch.diff
 mkdir build
 cd build
 cmake ..
diff --git a/projects/libpcap/patch.diff b/projects/libpcap/patch.diff
new file mode 100644
index 0000000..c76b339
--- /dev/null
+++ b/projects/libpcap/patch.diff
@@ -0,0 +1,24 @@
+diff --git a/optimize.c b/optimize.c
+index 4afd063f..90e8c571 100644
+--- a/optimize.c
++++ b/optimize.c
+@@ -1888,7 +1888,7 @@ opt_root(struct block **b)
+ static void
+ opt_loop(opt_state_t *opt_state, struct icode *ic, int do_stmts)
+ {
+-
++	int loopCounter = 0;
+ #ifdef BDEBUG
+ 	if (pcap_optimizer_debug > 1 || pcap_print_dot_graph) {
+ 		printf("opt_loop(root, %d) begin\n", do_stmts);
+@@ -1909,6 +1909,10 @@ opt_loop(opt_state_t *opt_state, struct icode *ic, int do_stmts)
+ 			opt_dump(opt_state, ic);
+ 		}
+ #endif
++		loopCounter++;
++		if (loopCounter > 1000) {
++			break;
++		}
+ 	} while (!opt_state->done);
+ }
+ 
diff --git a/projects/libpcap/project.yaml b/projects/libpcap/project.yaml
index d9c1e43..c7af8df 100644
--- a/projects/libpcap/project.yaml
+++ b/projects/libpcap/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.tcpdump.org"
-language: c++
 primary_contact: "security@tcpdump.org"
 auto_ccs :
   - "p.antoine@catenacyber.fr"
@@ -15,4 +14,3 @@
   - memory
   - undefined
   - dataflow
-main_repo: 'https://github.com/the-tcpdump-group/libpcap.git'
diff --git a/projects/libphonenumber/Dockerfile b/projects/libphonenumber/Dockerfile
deleted file mode 100644
index c75d78c..0000000
--- a/projects/libphonenumber/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y autoconf automake libtool g++ cmake-curses-gui libgtest-dev libre2-dev libicu-dev libboost-dev libboost-thread-dev libboost-system-dev binutils ninja-build liblzma-dev libz-dev pkg-config wget openjdk-8-jdk
-
-WORKDIR $SRC/
-RUN git clone https://github.com/google/libphonenumber
-
-RUN wget https://github.com/unicode-org/icu/releases/download/release-55-2/icu4c-55_2-src.tgz && tar xzvf icu4c-55_2-src.tgz
-
-COPY build.sh $SRC/
-COPY phonefuzz.cc $SRC/
diff --git a/projects/libphonenumber/build.sh b/projects/libphonenumber/build.sh
deleted file mode 100755
index ec67ec6..0000000
--- a/projects/libphonenumber/build.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# For coverage build we need to remove some flags when building protobuf and icu
-if [ "$SANITIZER" = "coverage" ]
-then
-    export OCX=$CXXFLAGS
-    export OC=$CFLAGS
-    CF1=${CFLAGS//-fprofile-instr-generate/}
-    export CFLAGS=${CF1//-fcoverage-mapping/}
-    CXF1=${CXXFLAGS//-fprofile-instr-generate/}
-    export CXXFLAGS=${CXF1//-fcoverage-mapping/}
-fi
-
-# Build Protobuf
-git clone https://github.com/google/protobuf.git
-cd protobuf
-git submodule update --init --recursive
-./autogen.sh
-./configure
-make -j$(nproc)
-make install
-ldconfig
-
-
-# Build icu
-export DEPS_PATH=/src/deps/
-mkdir $DEPS_PATH
-
-# build ICU for linking statically.
-cd $SRC/icu/source
-./configure --disable-shared --enable-static --disable-layoutex \
-  --disable-tests --disable-samples --with-data-packaging=static --prefix=$DEPS_PATH
-make install -j$(nproc)
-
-# Ugly ugly hack to get static linking to work for icu.
-cd $DEPS_PATH/lib
-ls *.a | xargs -n1 ar x
-rm *.a
-ar r libicu.a *.{ao,o}
-ln -s libicu.a libicudata.a
-ln -s libicu.a libicuuc.a
-ln -s libicu.a libicui18n.a
-
-if [ "$SANITIZER" = "coverage" ]
-then
-    export CFLAGS=$OC
-    export CXXFLAGS=$OCX
-fi
-
-# Build libphonenumber
-cd $SRC/libphonenumber/cpp
-sed -i 's/set (BUILD_SHARED_LIB true)/set (BUILD_SHARED_LIB false)/g' CMakeLists.txt
-sed -i 's/list (APPEND CMAKE_C_FLAGS "-pthread")/string (APPEND CMAKE_C_FLAGS " -pthread")/g' CMakeLists.txt
-
-mkdir build && cd build
-cmake -DUSE_BOOST=OFF -DBUILD_GEOCODER=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-      -DICU_UC_INCLUDE_DIR=$SRC/icu/source/comon \
-      -DICU_UC_LIB=$DEPS_PATH/lib/libicuuc.a \
-      -DICU_I18N_INCLUDE_DIR=$SRC/icu/source/i18n/ \
-      -DICU_I18N_LIB=$DEPS_PATH/lib/libicui18n.a  ../
-make
-cd ../
-
-# Build our fuzzer
-cp $SRC/*fuzz.cc .
-$CXX -I/src/libphonenumber/cpp/src $CXXFLAGS -o phonefuzz.o -c phonefuzz.cc
-
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE phonefuzz.o -o phonefuzz \
-     build/libphonenumber.a $SRC/protobuf/src/.libs/libprotobuf.a \
-     $DEPS_PATH/lib/libicu.a -lpthread
-
-cp phonefuzz $OUT/
diff --git a/projects/libphonenumber/phonefuzz.cc b/projects/libphonenumber/phonefuzz.cc
deleted file mode 100644
index 4270f13..0000000
--- a/projects/libphonenumber/phonefuzz.cc
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-#include "phonenumbers/phonenumbermatcher.h"
-#include <string>
-#include <vector>
-
-#include <unicode/unistr.h>
-
-#include "phonenumbers/base/basictypes.h"
-#include "phonenumbers/base/memory/scoped_ptr.h"
-#include "phonenumbers/base/memory/singleton.h"
-#include "phonenumbers/default_logger.h"
-#include "phonenumbers/phonenumber.h"
-#include "phonenumbers/phonenumber.pb.h"
-#include "phonenumbers/phonenumbermatch.h"
-#include "phonenumbers/phonenumberutil.h"
-#include "phonenumbers/stringutil.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
-{
-    if (size < 75)
-        return 0;
-
-    std::string input(reinterpret_cast<const char*>(data), 60);
-    data += 60;
-    size -= 60;
-    std::string input2(reinterpret_cast<const char*>(data), size);
-
-    i18n::phonenumbers::PhoneNumberUtil *phone_util = i18n::phonenumbers::PhoneNumberUtil::GetInstance();
-    i18n::phonenumbers::PhoneNumber parsed;
-    phone_util->Parse(input, input2, &parsed);
-    phone_util->IsValidNumber(parsed);
-    phone_util->GetCountryCodeForRegion(input);
-
-    return 0;
-}
diff --git a/projects/libphonenumber/project.yaml b/projects/libphonenumber/project.yaml
deleted file mode 100644
index 4ab9602..0000000
--- a/projects/libphonenumber/project.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-homepage: "https://github.com/google/libphonenumber/"
-primary_contact: "penmetsaa@google.com"
-language: c++
-auto_ccs:
-  - "david@adalogics.com"
-sanitizers:
-  - address
-main_repo: 'https://github.com/google/libphonenumber'
diff --git a/projects/libplist/Dockerfile b/projects/libplist/Dockerfile
index 375fff6..76432e1 100644
--- a/projects/libplist/Dockerfile
+++ b/projects/libplist/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER nikias@gmx.li
 RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config
 
 RUN git clone --depth 1 https://github.com/libimobiledevice/libplist
diff --git a/projects/libplist/build.sh b/projects/libplist/build.sh
index 7ad2c04..14a29c4 100755
--- a/projects/libplist/build.sh
+++ b/projects/libplist/build.sh
@@ -23,7 +23,7 @@
 for fuzzer in bplist_fuzzer xplist_fuzzer; do
   $CXX $CXXFLAGS -std=c++11 -Iinclude/ \
       fuzz/$fuzzer.cc -o $OUT/$fuzzer \
-      $LIB_FUZZING_ENGINE src/.libs/libplist-2.0.a
+      $LIB_FUZZING_ENGINE src/.libs/libplist.a
 done
 
 zip -j $OUT/bplist_fuzzer_seed_corpus.zip test/data/*.bplist
diff --git a/projects/libplist/project.yaml b/projects/libplist/project.yaml
index 24adeda..6bbfd76 100644
--- a/projects/libplist/project.yaml
+++ b/projects/libplist/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/libimobiledevice/libplist"
-language: c++
 primary_contact: "nikias.bassen@gmail.com"
 auto_ccs:
   - "nikias@gmx.li"
@@ -13,4 +12,3 @@
   - memory
   - undefined
   - dataflow
-main_repo: 'https://github.com/libimobiledevice/libplist'
diff --git a/projects/libpng-proto/Dockerfile b/projects/libpng-proto/Dockerfile
index 26d3917..f68cca5 100644
--- a/projects/libpng-proto/Dockerfile
+++ b/projects/libpng-proto/Dockerfile
@@ -15,11 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update -y && \
-    apt-get install -y make autoconf automake libtool zlib1g-dev \
-    binutils cmake ninja-build liblzma-dev libz-dev pkg-config
+MAINTAINER kcc@google.com
+RUN apt-get update && \
+    apt-get install -y make autoconf automake libtool zlib1g-dev ninja-build cmake
+
 RUN git clone --depth 1 https://github.com/glennrp/libpng.git
 RUN git clone --depth 1 https://github.com/google/libprotobuf-mutator.git
 RUN git clone --depth 1 https://github.com/google/fuzzer-test-suite
 RUN (mkdir LPM && cd LPM && cmake ../libprotobuf-mutator -GNinja -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON -DLIB_PROTO_MUTATOR_TESTING=OFF -DCMAKE_BUILD_TYPE=Release && ninja)
-COPY build.sh png_fuzz_proto.proto png_proto_fuzzer_example.cc libpng_transforms_fuzzer.cc png_proto_mutator.cc $SRC/
+COPY build.sh png_fuzz_proto.proto  png_proto_fuzzer_example.cc libpng_transforms_fuzzer.cc $SRC/
diff --git a/projects/libpng-proto/build.sh b/projects/libpng-proto/build.sh
index b51c9f9..28b8f55 100755
--- a/projects/libpng-proto/build.sh
+++ b/projects/libpng-proto/build.sh
@@ -1,25 +1,9 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
 #!/bin/bash
 
 # build libpng using the upstream-provided build.sh.
 # it will also build the vanilla (non-proto) fuzz target,
 # but we discard it.
-(cd libpng/ && contrib/oss-fuzz/build.sh && rm -rf $OUT/*)
+(cd libpng/ && contrib/oss-fuzz/build.sh && rm $OUT/*)
 
 # Compile png_fuzz_proto.proto; should produce two files in genfiles/:
 # png_fuzz_proto.pb.cc  png_fuzz_proto.pb.h
@@ -42,16 +26,6 @@
   $LIB_FUZZING_ENGINE \
   -o $OUT/png_proto_fuzzer_example
 
-# custom png proto mutator
-$CXX $CXXFLAGS png_proto_fuzzer_example.cc png_proto_mutator.cc libpng_read_fuzzer.o genfiles/png_fuzz_proto.pb.cc \
-  -I genfiles -I.  -I libprotobuf-mutator/  -I LPM/external.protobuf/include \
-  -lz \
-  LPM/src/libfuzzer/libprotobuf-mutator-libfuzzer.a \
-  LPM/src/libprotobuf-mutator.a \
-  LPM/external.protobuf/lib/libprotobuf.a \
-  libpng/.libs/libpng16.a \
-  $LIB_FUZZING_ENGINE \
-  -o $OUT/png_proto_fuzzer_example_custom_mutator
 
 echo > dummy.cc
 
@@ -75,3 +49,5 @@
   libpng/.libs/libpng16.a \
   $LIB_FUZZING_ENGINE \
   -o $OUT/png_transforms_fuzzer
+
+
diff --git a/projects/libpng-proto/png_proto_mutator.cc b/projects/libpng-proto/png_proto_mutator.cc
deleted file mode 100644
index 1389de7..0000000
--- a/projects/libpng-proto/png_proto_mutator.cc
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "libprotobuf-mutator/src/libfuzzer/libfuzzer_macro.h"
-#include "png_fuzz_proto.pb.h"
-
-template <typename Proto>
-using FuzzMutatorCallback = std::function<void(Proto*, unsigned int)>;
-
-template <typename Proto>
-struct PngProtoCBRegistration
-{
-	PngProtoCBRegistration(FuzzMutatorCallback<Proto> const& _callback)
-	{
-		static protobuf_mutator::libfuzzer::PostProcessorRegistration<Proto> reg = {_callback};
-	}
-};
-
-/// Custom mutation: Otherchunk unknown_type -> known_type
-static PngProtoCBRegistration<OtherChunk> addCustomChunk = {
-	[](OtherChunk* message, unsigned int seed)
-	{
-		// Mutate with a probability of roughly 1/47
-		// 47 has been chosen ad-hoc
-		if (seed % 47 == 0)
-		{
-			// If otherChunk is unknown type, mutate
-			// it to known type
-			if (message->has_unknown_type())
-			{
-				// This is our custom mutation
-				// We assume (k * 47 mod N) distribute
-				// uniformly, where
-				//  - N is total number of known
-				// chunks defined by png proto converter
-				//  - k is a factor of seed
-				message->set_known_type(seed);
-			}
-		}
-	}
-};
diff --git a/projects/libpng-proto/project.yaml b/projects/libpng-proto/project.yaml
index a981efe..0bbf714 100644
--- a/projects/libpng-proto/project.yaml
+++ b/projects/libpng-proto/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.libpng.org/pub/png/libpng.html"
-language: c++
 primary_contact: "kcc@google.com"
 sanitizers:
   - undefined
diff --git a/projects/libpng/Dockerfile b/projects/libpng/Dockerfile
index 4723286..80c0830 100644
--- a/projects/libpng/Dockerfile
+++ b/projects/libpng/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER glennrp@gmail.com
 RUN apt-get update && \
     apt-get install -y make autoconf automake libtool zlib1g-dev
 
diff --git a/projects/libpng/project.yaml b/projects/libpng/project.yaml
index 66b280b..0497bb3 100644
--- a/projects/libpng/project.yaml
+++ b/projects/libpng/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.libpng.org/pub/png/libpng.html"
-language: c++
 primary_contact: "glennrp@gmail.com"
 vendor_ccs:
   - "aosmond@mozilla.com"
@@ -9,4 +8,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/glennrp/libpng.git'
diff --git a/projects/libprotobuf-mutator/Dockerfile b/projects/libprotobuf-mutator/Dockerfile
index 14adeb8..5eb0da0 100644
--- a/projects/libprotobuf-mutator/Dockerfile
+++ b/projects/libprotobuf-mutator/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER vitalybuka@chromium.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config cmake \
     ninja-build liblzma-dev libz-dev docbook2x
 
diff --git a/projects/libprotobuf-mutator/project.yaml b/projects/libprotobuf-mutator/project.yaml
index b4bacc0..2060ce5 100644
--- a/projects/libprotobuf-mutator/project.yaml
+++ b/projects/libprotobuf-mutator/project.yaml
@@ -1,4 +1,2 @@
-homepage: "https://github.com/google/libprotobuf-mutator"
-language: c++
-primary_contact: "vitalybuka@chromium.org"
-main_repo: 'https://github.com/google/libprotobuf-mutator.git'
+auto_ccs:
+  - "vitalybuka@chromium.org"
diff --git a/projects/libpsl/Dockerfile b/projects/libpsl/Dockerfile
index 303c5bb..d5cf8db 100644
--- a/projects/libpsl/Dockerfile
+++ b/projects/libpsl/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER rockdaboot@gmail.com
 RUN apt-get update && apt-get install -y \
  make \
  pkg-config \
@@ -41,7 +42,7 @@
 RUN git clone --depth=1 https://gitlab.com/libidn/libidn2.git && \
     rmdir libidn2/gnulib && ln -s $SRC/gnulib libidn2/gnulib
 RUN git clone --depth=1 https://git.savannah.gnu.org/git/libidn.git
-RUN wget https://github.com/unicode-org/icu/releases/download/release-59-2/icu4c-59_2-src.tgz && tar xvfz icu4c-59_2-src.tgz
+RUN wget http://download.icu-project.org/files/icu4c/59.1/icu4c-59_1-src.tgz && tar xvfz icu4c-59_1-src.tgz
 
 RUN git clone --depth=1 --recursive https://github.com/rockdaboot/libpsl.git
 
diff --git a/projects/libpsl/project.yaml b/projects/libpsl/project.yaml
index ea3a979..e63960a 100644
--- a/projects/libpsl/project.yaml
+++ b/projects/libpsl/project.yaml
@@ -1,6 +1,4 @@
 homepage: "https://github.com/rockdaboot/libpsl"
-language: c++
 primary_contact: "rockdaboot@gmail.com"
 auto_ccs:
   - "tim.ruehsen@gmx.de"
-main_repo: 'https://github.com/rockdaboot/libpsl.git'
diff --git a/projects/libra/Dockerfile b/projects/libra/Dockerfile
deleted file mode 100644
index 426e547..0000000
--- a/projects/libra/Dockerfile
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# google oss-fuzz stuff
-FROM gcr.io/oss-fuzz-base/base-builder
-
-# install other tools we might need
-RUN apt-get update && apt-get install -y cmake curl
-
-# get libra
-RUN git clone --depth 1 https://github.com/libra/libra $SRC/libra
-WORKDIR $SRC/libra
-
-# building script for fuzzers
-COPY build.sh $SRC/
diff --git a/projects/libra/build.sh b/projects/libra/build.sh
deleted file mode 100644
index c80e5dc..0000000
--- a/projects/libra/build.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/bin/bash -eux
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Note: This project creates Rust fuzz targets exclusively
-
-# recipe:
-# -------
-# 1. we list all the fuzzers and save to a file fuzzer_list
-# 2. we build the corpus for each fuzzer
-# 3. we build all the fuzzers
-
-# reset flags of OSS-Fuzz
-export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"
-export CXXFLAGS_EXTRA="-stdlib=libc++"
-export CXXFLAGS="$CFLAGS $CXXFLAGS_EXTRA"
-
-# correct workdir
-cd $SRC/libra/testsuite/libra-fuzzer
-
-# fetch all dependencies (needed for patching rocksdb)
-cargo fetch
-
-# patch rocksdb to not link libc++ statically
-sed -i "s/link_cpp(&mut build)/build.cpp_link_stdlib(None)/" \
-    /rust/git/checkouts/rust-rocksdb-a9a28e74c6ead8ef/72e45c3/librocksdb_sys/build.rs
-# so now we need to link libc++ at the end
-export RUSTFLAGS="-C link-arg=-L/usr/local/lib -C link-arg=-lc++"
-
-# 1. list fuzzers
-cargo run --bin libra-fuzzer list --no-desc > fuzzer_list
-
-# 2. build corpus and move to $OUT
-cat fuzzer_list | while read -r line
-do
-    cargo run --bin libra-fuzzer generate -n 128 $line
-    zip -r $OUT/"$line"_seed_corpus.zip fuzz/corpus/$line
-    rm -r fuzz/corpus/$line
-done
-
-# rust libfuzzer flags (https://github.com/rust-fuzz/libfuzzer/blob/master/build.rs#L12)
-export CUSTOM_LIBFUZZER_PATH="$LIB_FUZZING_ENGINE_DEPRECATED"
-export CUSTOM_LIBFUZZER_STD_CXX=c++
-# export CUSTOM_LIBFUZZER_STD_CXX=none 
-
-# export fuzzing flags
-RUSTFLAGS="$RUSTFLAGS --cfg fuzzing"          # used to change code logic
-RUSTFLAGS="$RUSTFLAGS -Cdebug-assertions"     # to get debug_assert in rust
-RUSTFLAGS="$RUSTFLAGS -Zsanitizer=address"    # address sanitizer (ASAN)
-
-RUSTFLAGS="$RUSTFLAGS -Cdebuginfo=1"         
-RUSTFLAGS="$RUSTFLAGS -Cforce-frame-pointers"
-
-RUSTFLAGS="$RUSTFLAGS -Cpasses=sancov"
-RUSTFLAGS="$RUSTFLAGS -Cllvm-args=-sanitizer-coverage-level=4"
-RUSTFLAGS="$RUSTFLAGS -Cllvm-args=-sanitizer-coverage-trace-compares"
-RUSTFLAGS="$RUSTFLAGS -Cllvm-args=-sanitizer-coverage-inline-8bit-counters"
-RUSTFLAGS="$RUSTFLAGS -Cllvm-args=-sanitizer-coverage-trace-geps"
-RUSTFLAGS="$RUSTFLAGS -Cllvm-args=-sanitizer-coverage-prune-blocks=0"
-RUSTFLAGS="$RUSTFLAGS -Cllvm-args=-sanitizer-coverage-pc-table"
-RUSTFLAGS="$RUSTFLAGS -Clink-dead-code"
-RUSTFLAGS="$RUSTFLAGS -Cllvm-args=-sanitizer-coverage-stack-depth"
-RUSTFLAGS="$RUSTFLAGS -Ccodegen-units=1"
-
-export RUSTFLAGS
-
-# 3. build all the fuzzers!
-cat fuzzer_list | while read -r line
-do
-    # build
-    export SINGLE_FUZZ_TARGET="$line"
-    cargo build --manifest-path fuzz/Cargo.toml --bin fuzzer_builder --release --target x86_64-unknown-linux-gnu
-    # move fuzzer to $OUT
-    mv $SRC/libra/target/x86_64-unknown-linux-gnu/release/fuzzer_builder $OUT/$SINGLE_FUZZ_TARGET
-done
diff --git a/projects/libra/project.yaml b/projects/libra/project.yaml
deleted file mode 100644
index 7306731..0000000
--- a/projects/libra/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/libra/libra"
-primary_contact: "davidwong.crypto@gmail.com"
-auto_ccs:
-  - "davidwg@fb.com"
-  - "youngyl@fb.com"
-  - "fuzzing@fb.com"
-language: rust
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-main_repo: 'https://github.com/libra/libra'
diff --git a/projects/libraw/Dockerfile b/projects/libraw/Dockerfile
deleted file mode 100644
index 7ed9213..0000000
--- a/projects/libraw/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config
-RUN git clone --depth 1 https://github.com/libraw/libraw
-WORKDIR libraw
-
-ADD http://oss-fuzz-corpus.storage.googleapis.com/libraw/libraw_cr2_fuzzer_seed_corpus.zip $SRC/
-ADD http://oss-fuzz-corpus.storage.googleapis.com/libraw/libraw_nef_fuzzer_seed_corpus.zip $SRC/
-ADD http://oss-fuzz-corpus.storage.googleapis.com/libraw/libraw_raf_fuzzer_seed_corpus.zip $SRC/
-
-COPY build.sh libraw_fuzzer.cc $SRC/
diff --git a/projects/libraw/build.sh b/projects/libraw/build.sh
deleted file mode 100755
index 6c46d3f..0000000
--- a/projects/libraw/build.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# copy corpuses
-cp $SRC/libraw_cr2_fuzzer_seed_corpus.zip \
-    $SRC/libraw_nef_fuzzer_seed_corpus.zip \
-    $SRC/libraw_raf_fuzzer_seed_corpus.zip \
-    $OUT/
-
-# build project
-autoreconf --install
-./configure --disable-examples
-make
-
-# build fuzzers
-$CXX $CXXFLAGS -std=c++11 -Ilibraw \
-    $SRC/libraw_fuzzer.cc -o $OUT/libraw_fuzzer \
-    $LIB_FUZZING_ENGINE lib/.libs/libraw.a
-
-$CXX $CXXFLAGS -std=c++11 -Ilibraw \
-    $SRC/libraw_fuzzer.cc -o $OUT/libraw_cr2_fuzzer \
-    $LIB_FUZZING_ENGINE lib/.libs/libraw.a
-
-$CXX $CXXFLAGS -std=c++11 -Ilibraw \
-    $SRC/libraw_fuzzer.cc -o $OUT/libraw_nef_fuzzer \
-    $LIB_FUZZING_ENGINE lib/.libs/libraw.a
-
-$CXX $CXXFLAGS -std=c++11 -Ilibraw \
-    $SRC/libraw_fuzzer.cc -o $OUT/libraw_raf_fuzzer \
-    $LIB_FUZZING_ENGINE lib/.libs/libraw.a
diff --git a/projects/libraw/libraw_fuzzer.cc b/projects/libraw/libraw_fuzzer.cc
deleted file mode 100644
index 74c9b61..0000000
--- a/projects/libraw/libraw_fuzzer.cc
+++ /dev/null
@@ -1,64 +0,0 @@
-/*  Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <string>
-
-#include <libraw.h>
-
-enum InterpolationOptions {
-  Linear = 0,
-  Vng = 1, 
-  Ppg = 2,
-  Ahd = 3,
-  Dcb = 4,
-  Dht = 11,
-  AhdModified = 12
-};
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  // Input less than 15mb
-  if (size > 15000000) {
-    return 0;
-  }
-
-  LibRaw lib_raw;
-
-  int result = lib_raw.open_buffer(
-      const_cast<char*>(reinterpret_cast<const char*>(data)), size);
-  if (result != LIBRAW_SUCCESS) {
-    return 0;
-  }
-
-  result = lib_raw.unpack();
-  if (result != LIBRAW_SUCCESS) {
-    return 0;
-  }
-
-  InterpolationOptions options[] = {Linear, Vng, Ppg, Ahd, Dcb, Dht, AhdModified};
-
-  for (int i = 0; i < sizeof(options)/sizeof(*options); i++) {
-    lib_raw.output_params_ptr()->user_qual = static_cast<int>(options[i]);
-
-    result = lib_raw.dcraw_process();
-    if (result != LIBRAW_SUCCESS) {
-      return 0;
-    }
-  }
-
-  return 0;
-}
diff --git a/projects/libraw/project.yaml b/projects/libraw/project.yaml
deleted file mode 100644
index c05690d..0000000
--- a/projects/libraw/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://www.libraw.org/"
-language: c++
-primary_contact: "jesteele@google.com"
-auto_ccs:
-    - "nchusid@google.com"
-    - "pinheirojamie@google.com"
-sanitizers:
-    - address
-    - memory
-    - undefined
-main_repo: 'https://github.com/libraw/libraw'
diff --git a/projects/librawspeed/Dockerfile b/projects/librawspeed/Dockerfile
index 54bb66d..d3ae084 100644
--- a/projects/librawspeed/Dockerfile
+++ b/projects/librawspeed/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER lebedev.ri@gmail.com
 RUN apt-get update && \
     apt-get install -y apt-transport-https ca-certificates gnupg software-properties-common wget && \
     wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | apt-key add - && \
diff --git a/projects/librawspeed/project.yaml b/projects/librawspeed/project.yaml
index a0a49e6..82a2ca3 100644
--- a/projects/librawspeed/project.yaml
+++ b/projects/librawspeed/project.yaml
@@ -1,8 +1,6 @@
 homepage: "https://github.com/darktable-org/rawspeed"
-language: c++
 primary_contact: "lebedev.ri@gmail.com"
 sanitizers:
 - address
 - undefined
 - memory
-main_repo: 'https://github.com/darktable-org/rawspeed.git'
diff --git a/projects/librdkafka/Dockerfile b/projects/librdkafka/Dockerfile
deleted file mode 100755
index 43a2c2a..0000000
--- a/projects/librdkafka/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake flex bison
-RUN git clone https://github.com/edenhill/librdkafka
-
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/librdkafka/build.sh b/projects/librdkafka/build.sh
deleted file mode 100755
index ea59e89..0000000
--- a/projects/librdkafka/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-cd librdkafka
-./configure --install-deps --disable-regex-ext
-make
-
-export LIBZSTD=$PWD/mklove/deps/dest/libzstd/usr/lib/libzstd.a
-export LIBZ_LIB=$PWD/mklove/deps/dest/zlib/usr/lib/libz.a
-
-cd tests
-echo $PWD
-ls -al 
-$CC -g -fPIC $CFLAGS -I../src -c ./fuzzers/fuzz_regex.c -o fuzz_regex.o
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE -rdynamic fuzz_regex.o -o fuzzer \
-    ../src/librdkafka.a -lm ${LIBZSTD} -lsasl2 -lssl -lcrypto \
-    -lcrypto ${LIBZ_LIB} -ldl -lpthread -lrt
-
-cp fuzzer $OUT/fuzz_regex
diff --git a/projects/librdkafka/project.yaml b/projects/librdkafka/project.yaml
deleted file mode 100755
index ab63b27..0000000
--- a/projects/librdkafka/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/edenhill/librdkafka"
-primary_contact: "magnus@edenhill.se"
-language: c++
-auto_ccs:
-  - "david@adalogics.com"
-main_repo: 'https://github.com/edenhill/librdkafka'
diff --git a/projects/libredwg/Dockerfile b/projects/libredwg/Dockerfile
deleted file mode 100755
index 93695c3..0000000
--- a/projects/libredwg/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y autoconf libtool texinfo
-RUN git clone https://github.com/LibreDWG/libredwg
-
-WORKDIR $SRC
-COPY build.sh $SRC/
-COPY llvmfuzz.options $SRC/
diff --git a/projects/libredwg/build.sh b/projects/libredwg/build.sh
deleted file mode 100755
index 7737e4d..0000000
--- a/projects/libredwg/build.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd libredwg
-sh ./autogen.sh
-# enable-release to skip unstable preR13. bindings are not fuzzed.
-./configure --disable-shared --disable-bindings --enable-release
-make
-
-$CC $CFLAGS $LIB_FUZZING_ENGINE examples/llvmfuzz.c -o $OUT/llvmfuzz \
-    src/.libs/libredwg.a -I./include -I./src
-
-cp $SRC/llvmfuzz.options $OUT/llvmfuzz.options
diff --git a/projects/libredwg/llvmfuzz.options b/projects/libredwg/llvmfuzz.options
deleted file mode 100644
index f9d0965..0000000
--- a/projects/libredwg/llvmfuzz.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-detect_leaks=0
diff --git a/projects/libredwg/project.yaml b/projects/libredwg/project.yaml
deleted file mode 100755
index a9e5d44..0000000
--- a/projects/libredwg/project.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-homepage: "https://github.com/LibreDWG/libredwg"
-primary_contact: "reini.urban@gmail.com"
-language: c
-auto_ccs :
-  - "david@adalogics.com"
-fuzzing_engines:
-  - libfuzzer
-  - honggfuzz 
-main_repo: 'https://github.com/LibreDWG/libredwg'
diff --git a/projects/libreoffice/Dockerfile b/projects/libreoffice/Dockerfile
index 6e8d211..520be1b 100644
--- a/projects/libreoffice/Dockerfile
+++ b/projects/libreoffice/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER officesecurity@lists.freedesktop.org
 # enable source repos
 RUN sed -i -e '/^#\s*deb-src.*\smain\s\+restricted/s/^#//' /etc/apt/sources.list
 #build requirements
@@ -117,7 +118,7 @@
     https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/xml.dict \
     https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/html_tags.dict $SRC/
 #fuzzing corpuses
-ADD https://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz $SRC/
+ADD http://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz $SRC/
 RUN mkdir afl-testcases && cd afl-testcases/ && tar xf $SRC/afl_testcases.tgz && cd .. && \
     zip -q $SRC/jpgfuzzer_seed_corpus.zip afl-testcases/jpeg*/full/images/* && \
     zip -q $SRC/giffuzzer_seed_corpus.zip afl-testcases/gif*/full/images/* && \
diff --git a/projects/libreoffice/build.sh b/projects/libreoffice/build.sh
index b4ee63e..cec8368 100755
--- a/projects/libreoffice/build.sh
+++ b/projects/libreoffice/build.sh
@@ -1,18 +1,3 @@
 #!/bin/bash -eu
-# Copyright 2021 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
 
 $SRC/libreoffice/bin/oss-fuzz-build.sh
diff --git a/projects/libreoffice/project.yaml b/projects/libreoffice/project.yaml
index bcf9a4f..356e9ac 100644
--- a/projects/libreoffice/project.yaml
+++ b/projects/libreoffice/project.yaml
@@ -1,9 +1,6 @@
 homepage: "https://www.libreoffice.org/"
-language: c++
 primary_contact: "caolanm@redhat.com"
 auto_ccs:
   - "officesecurity@lists.freedesktop.org"
   - "damjan.jov@gmail.com"
-  - "noelgrandin@gmail.com"
   - "sbergman@redhat.com"
-main_repo: 'https://git.libreoffice.org/core'
diff --git a/projects/libressl/Dockerfile b/projects/libressl/Dockerfile
index 964569a..2c3b031 100644
--- a/projects/libressl/Dockerfile
+++ b/projects/libressl/Dockerfile
@@ -15,12 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake wget
+MAINTAINER ab@pompel.me
+RUN apt-get update && apt-get install -y make cmake
 RUN git clone --depth 1 https://github.com/libressl-portable/portable.git libressl
 RUN git clone --depth 1 https://github.com/libressl-portable/fuzz.git libressl.fuzzers
-RUN git clone --depth 1 https://github.com/guidovranken/cryptofuzz
-RUN git clone --depth 1 https://github.com/guidovranken/cryptofuzz-corpora
-RUN wget https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2
 WORKDIR libressl
 RUN ./update.sh
 COPY build.sh *.options $SRC/
diff --git a/projects/libressl/build.sh b/projects/libressl/build.sh
index 48cf959..b6700e9 100755
--- a/projects/libressl/build.sh
+++ b/projects/libressl/build.sh
@@ -15,18 +15,6 @@
 # limitations under the License.
 #
 ################################################################################
-
-# Install Boost headers
-cd $SRC/
-tar jxf boost_1_74_0.tar.bz2
-cd boost_1_74_0/
-CFLAGS="" CXXFLAGS="" ./bootstrap.sh
-CFLAGS="" CXXFLAGS="" ./b2 headers
-cp -R boost/ /usr/include/
-
-# Prevent Boost compilation error with -std=c++17
-export CXXFLAGS="$CXXFLAGS -D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR"
-
 mkdir -p $WORK/libressl
 cd $WORK/libressl
 
@@ -70,26 +58,3 @@
 cp $SRC/*.options $OUT/
 cp $LIBRESSL_FUZZERS/oids.txt $OUT/asn1.dict
 cp $LIBRESSL_FUZZERS/oids.txt $OUT/x509.dict
-
-# Cryptofuzz
-cd $SRC/cryptofuzz/
-if [[ $CFLAGS = *sanitize=memory* ]]
-then
-    export CXXFLAGS="$CXXFLAGS -DMSAN"
-fi
-# Generate lookup tables
-python3 gen_repository.py
-# Compile Cryptofuzz LibreSSL module
-cd $SRC/cryptofuzz/modules/openssl
-OPENSSL_INCLUDE_PATH="$SRC/libressl/include" OPENSSL_LIBCRYPTO_A_PATH="$WORK/libressl/crypto/libcrypto.a" CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBRESSL" make
-# Compile Cryptofuzz
-cd $SRC/cryptofuzz/
-LIBFUZZER_LINK="$LIB_FUZZING_ENGINE" CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBRESSL -I $SRC/libressl/include" make -j$(nproc)
-# Generate dictionary
-./generate_dict
-# Copy fuzzer
-cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz
-# Copy dictionary
-cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz.dict
-# Copy seed corpus
-cp $SRC/cryptofuzz-corpora/libressl_latest.zip $OUT/cryptofuzz_seed_corpus.zip
diff --git a/projects/libressl/project.yaml b/projects/libressl/project.yaml
index 4d67712..a873c64 100644
--- a/projects/libressl/project.yaml
+++ b/projects/libressl/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.libressl.org/"
-language: c++
 primary_contact: "busterb@gmail.com"
 auto_ccs:
  - "beck@obtuse.com"
@@ -7,8 +6,6 @@
  - "kinichiro.inoguchi@gmail.com"
  - "ted.unangst@gmail.com"
  - "miwaxe@gmail.com"
- - "guidovranken@gmail.com"
 sanitizers:
  - address
  - undefined
-main_repo: 'https://github.com/libressl-portable/portable.git'
diff --git a/projects/libsass/project.yaml b/projects/libsass/project.yaml
index 7c1c2f3..13a2b97 100644
--- a/projects/libsass/project.yaml
+++ b/projects/libsass/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://libsass.org/"
-language: c++
 primary_contact: "xzyfer@gmail.com"
 
 sanitizers:
@@ -10,4 +9,3 @@
 labels:
   data_context_fuzzer:
     - sundew
-main_repo: 'https://github.com/sass/libsass.git'
diff --git a/projects/libsndfile/Dockerfile b/projects/libsndfile/Dockerfile
deleted file mode 100644
index 1a95f1e..0000000
--- a/projects/libsndfile/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone --depth 1 https://github.com/libsndfile/libsndfile.git /src/libsndfile
-
-WORKDIR $SRC/libsndfile
-COPY build.sh $SRC/
diff --git a/projects/libsndfile/build.sh b/projects/libsndfile/build.sh
deleted file mode 100755
index 77d3f65..0000000
--- a/projects/libsndfile/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Run the OSS-Fuzz script in the project.
-./ossfuzz/ossfuzz.sh
diff --git a/projects/libsndfile/project.yaml b/projects/libsndfile/project.yaml
deleted file mode 100644
index 34cbf42..0000000
--- a/projects/libsndfile/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/libsndfile/libsndfile"
-primary_contact: "evpobr@gmail.com"
-language: c
-auto_ccs:
-  - "cmeister2@gmail.com"
-  - "erikd@mega-nerd.com"
-sanitizers:
-  - address
-  - undefined
-  - memory
-coverage_extra_args: -ignore-filename-regex=/usr/lib/jvm/.*
-main_repo: 'https://github.com/libsndfile/libsndfile.git'
diff --git a/projects/libsodium/Dockerfile b/projects/libsodium/Dockerfile
index f995865..cb3fb04 100644
--- a/projects/libsodium/Dockerfile
+++ b/projects/libsodium/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER chriswwolfe@gmail.com
 RUN apt-get update && apt-get install -y make
 RUN git clone --depth 1 https://github.com/jedisct1/libsodium.git --branch stable libsodium
 WORKDIR libsodium
diff --git a/projects/libsodium/fake_random.h b/projects/libsodium/fake_random.h
index 9519b0c..36d8d89 100644
--- a/projects/libsodium/fake_random.h
+++ b/projects/libsodium/fake_random.h
@@ -1,17 +1,3 @@
-// Copyright 2018 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
 #ifndef FAKE_RANDOM_H_
 #define FAKE_RANDOM_H_
 
@@ -57,7 +43,7 @@
   int fake_random_set = randombytes_set_implementation(&fake_random);
   assert(fake_random_set == 0);
 
-  assert(strcmp(randombytes_implementation_name(), "fake_random") == 0);
+  assert(randombytes_implementation_name() == "fake_random");
   int initialized = sodium_init();
   assert(initialized >= 0);
 }
diff --git a/projects/libsodium/project.yaml b/projects/libsodium/project.yaml
index 40b1374..e983817 100644
--- a/projects/libsodium/project.yaml
+++ b/projects/libsodium/project.yaml
@@ -1,8 +1,6 @@
 homepage: "https://libsodium.org"
-language: c++
-primary_contact: "ossfuzzz@gmail.com"
+primary_contact: "ossfuzzz+sodium@gmail.com"
 auto_ccs:
  - "chriswwolfe@gmail.com"
 architectures:
   - x86_64
-main_repo: 'https://github.com/jedisct1/libsodium.git'
diff --git a/projects/libsodium/secret_key_auth_fuzzer.cc b/projects/libsodium/secret_key_auth_fuzzer.cc
index ce46781..32bb5fe 100644
--- a/projects/libsodium/secret_key_auth_fuzzer.cc
+++ b/projects/libsodium/secret_key_auth_fuzzer.cc
@@ -1,19 +1,4 @@
-// Copyright 2018 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
 #include <assert.h>
-#include <stdlib.h>
 #include <sodium.h>
 
 #include "fake_random.h"
@@ -31,8 +16,6 @@
   crypto_auth_keygen(key);
 
   crypto_auth(mac, data, size, key);
-  int err = crypto_auth_verify(mac, data, size, key);
-  assert(err == 0);
-
+  crypto_auth_verify(mac, data, size, key);
   return 0;
 }
diff --git a/projects/libsodium/secretbox_easy_fuzzer.cc b/projects/libsodium/secretbox_easy_fuzzer.cc
index a37c88b..4e25bcc 100644
--- a/projects/libsodium/secretbox_easy_fuzzer.cc
+++ b/projects/libsodium/secretbox_easy_fuzzer.cc
@@ -1,19 +1,4 @@
-// Copyright 2018 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
 #include <assert.h>
-#include <stdlib.h>
 #include <sodium.h>
 
 #include "fake_random.h"
@@ -32,16 +17,12 @@
   randombytes_buf(nonce, sizeof nonce);
 
   size_t ciphertext_len = crypto_secretbox_MACBYTES + size;
-  unsigned char *ciphertext = (unsigned char *) malloc(ciphertext_len);
+  unsigned char ciphertext[ciphertext_len];
 
   crypto_secretbox_easy(ciphertext, data, size, nonce, key);
 
-  unsigned char *decrypted = (unsigned char *) malloc(size);
-  int err = crypto_secretbox_open_easy(decrypted, ciphertext, ciphertext_len, nonce, key);
-  assert(err == 0);
-
-  free((void *) ciphertext);
-  free((void *) decrypted);
+  unsigned char decrypted[size];
+  crypto_secretbox_open_easy(decrypted, ciphertext, ciphertext_len, nonce, key);
 
   return 0;
 }
diff --git a/projects/libspectre/Dockerfile b/projects/libspectre/Dockerfile
index da1339d..1653685 100755
--- a/projects/libspectre/Dockerfile
+++ b/projects/libspectre/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2020 Google Inc.
+# Copyright 2019 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -16,15 +16,12 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 
+MAINTAINER randy408@protonmail.com
 
 RUN apt-get update && \
     apt-get install -y pkg-config make automake libtool wget
 
 RUN git clone --depth 1 https://gitlab.freedesktop.org/libspectre/libspectre.git
 
-RUN wget -O $SRC/libspectre/ghostscript-9.53.3.tar.gz https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9533/ghostscript-9.53.3.tar.gz
-RUN tar xvzf $SRC/libspectre/ghostscript-9.53.3.tar.gz --directory $SRC/libspectre/
-RUN mv $SRC/libspectre/ghostscript-9.53.3 $SRC/libspectre/ghostscript
-
-WORKDIR $SRC/libspectre/
+WORKDIR libspectre
 COPY build.sh $SRC/
diff --git a/projects/libspectre/project.yaml b/projects/libspectre/project.yaml
index d988232..1a53de1 100755
--- a/projects/libspectre/project.yaml
+++ b/projects/libspectre/project.yaml
@@ -1,16 +1,4 @@
 homepage: "https://www.freedesktop.org/wiki/Software/libspectre/"
-language: c++
 primary_contact: "tsdgeos@gmail.com"
 auto_ccs:
   - "randy440088@gmail.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
-sanitizers:
-  - address
-  - undefined
-  - memory
-  - dataflow
-main_repo: 'https://gitlab.freedesktop.org/libspectre/libspectre.git'
diff --git a/projects/libspng/Dockerfile b/projects/libspng/Dockerfile
index f91f825..fa3f5f4 100644
--- a/projects/libspng/Dockerfile
+++ b/projects/libspng/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2020 Google Inc.
+# Copyright 2018 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -16,16 +16,13 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 
+MAINTAINER randy408@protonmail.com
 
 RUN apt-get update && \
     apt-get install -y wget tar cmake
 
-RUN git clone --depth 1 https://github.com/randy408/libspng.git
+RUN git clone --depth 1 https://gitlab.com/randy408/libspng.git
 RUN git clone --depth 1 https://github.com/google/fuzzer-test-suite
 
-RUN wget -O $WORK/zlib.tar.gz http://www.zlib.net/zlib-1.2.11.tar.gz
-RUN tar xzvf $WORK/zlib.tar.gz --directory $SRC/
-RUN mv $SRC/zlib-1.2.11 $SRC/zlib
-
 WORKDIR libspng
 COPY build.sh $SRC/
diff --git a/projects/libspng/project.yaml b/projects/libspng/project.yaml
index 6ebd564..0de90d2 100644
--- a/projects/libspng/project.yaml
+++ b/projects/libspng/project.yaml
@@ -1,12 +1,7 @@
 homepage: "https://libspng.org"
-language: c++
 primary_contact: "randy408@protonmail.com"
 auto_ccs:
   - "randy440088@gmail.com"
 architectures:
   - x86_64
-  - i386
-sanitizers:
-  - address
-  - undefined
-main_repo: 'https://github.com/randy408/libspng.git'
+  - i386
\ No newline at end of file
diff --git a/projects/libsrtp/Dockerfile b/projects/libsrtp/Dockerfile
index e3731dc..b2db89b 100644
--- a/projects/libsrtp/Dockerfile
+++ b/projects/libsrtp/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 RUN apt-get update && apt-get install -y sudo autoconf build-essential libssl-dev pkg-config
 
 RUN git clone --depth 1 https://github.com/cisco/libsrtp
diff --git a/projects/libsrtp/project.yaml b/projects/libsrtp/project.yaml
index a0e5c11..4e69a31 100644
--- a/projects/libsrtp/project.yaml
+++ b/projects/libsrtp/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/cisco/libsrtp"
-language: c++
 primary_contact: "richbarn@cisco.com"
 auto_ccs:
  - "guidovranken@gmail.com"
@@ -9,4 +8,3 @@
 architectures:
  - x86_64
  - i386
-main_repo: 'https://github.com/cisco/libsrtp'
diff --git a/projects/libssh/Dockerfile b/projects/libssh/Dockerfile
index 5e5c060..58aae70 100644
--- a/projects/libssh/Dockerfile
+++ b/projects/libssh/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER alex.gaynor@gmail.com
 RUN apt-get update && apt-get install -y cmake zlib1g-dev libssl-dev
 
 RUN git clone --depth=1 https://git.libssh.org/projects/libssh.git
diff --git a/projects/libssh/build.sh b/projects/libssh/build.sh
index b0a3d15..a2543ec 100644
--- a/projects/libssh/build.sh
+++ b/projects/libssh/build.sh
@@ -15,24 +15,20 @@
 #
 ################################################################################
 
-BUILD=$WORK/build
-mkdir -p $BUILD
-pushd $BUILD
+mkdir -p build
+pushd build
 cmake -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX" \
     -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-    -DBUILD_SHARED_LIBS=OFF -DWITH_INSECURE_NONE=ON $SRC/libssh
+    -DBUILD_SHARED_LIBS=OFF ..
 make "-j$(nproc)"
 
-fuzzers=$(find $SRC/libssh/tests/fuzz/ -name "*_fuzzer.cpp")
-for f in $fuzzers; do
-    fuzzerName=$(basename $f .cpp)
-    echo "Building fuzzer $fuzzerName"
-    $CXX $CXXFLAGS -std=c++11 -I$SRC/libssh/include/ -I$BUILD/include/ \
-        "$f" -o "$OUT/$fuzzerName" \
-        $LIB_FUZZING_ENGINE ./src/libssh.a -Wl,-Bstatic -lcrypto -lz -Wl,-Bdynamic
+$CXX $CXXFLAGS -std=c++11 -I$SRC/libssh/include/ \
+    "$SRC/libssh/tests/fuzz/ssh_server_fuzzer.cpp" \
+    -o "$OUT/libssh_server_fuzzer" \
+    $LIB_FUZZING_ENGINE ./src/libssh.a -Wl,-Bstatic -lcrypto -lz -Wl,-Bdynamic
 
-    if [ -d "$SRC/libssh/tests/fuzz/${fuzzerName}_corpus" ]; then
-        zip -j $OUT/${fuzzerName}_seed_corpus.zip $SRC/libssh/tests/fuzz/${fuzzerName}_corpus/*
-    fi
-done
+$CXX $CXXFLAGS -std=c++11 -I$SRC/libssh/include/ \
+    "$SRC/libssh/tests/fuzz/ssh_client_fuzzer.cpp" \
+    -o "$OUT/libssh_client_fuzzer" \
+    $LIB_FUZZING_ENGINE ./src/libssh.a -Wl,-Bstatic -lcrypto -lz -Wl,-Bdynamic
 popd
diff --git a/projects/libssh/project.yaml b/projects/libssh/project.yaml
index 5c64321..fe93518 100644
--- a/projects/libssh/project.yaml
+++ b/projects/libssh/project.yaml
@@ -1,12 +1,9 @@
 homepage: "https://libssh.org/"
-language: c++
 primary_contact: "asn@cryptomilk.org"
 auto_ccs:
  - "cryptomilk@gmail.com"
  - "jakuje@gmail.com"
- - "anderson.sasaki@gmail.com"
 sanitizers:
   - address
   - memory
   - undefined
-main_repo: 'https://git.libssh.org/projects/libssh.git'
diff --git a/projects/libssh2/Dockerfile b/projects/libssh2/Dockerfile
index 77445e9..c80b7b4 100644
--- a/projects/libssh2/Dockerfile
+++ b/projects/libssh2/Dockerfile
@@ -15,8 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER cmeister2@gmail.com
 
-RUN git clone --depth 1 https://github.com/libssh2/libssh2.git /src/libssh2
+# libssh2 at revision 9662c96 with fuzzer changes on top.
+RUN git clone --depth 1 -b cmeister2/ossfuzz_9662c96 https://github.com/cmeister2/libssh2.git /src/libssh2
 
 WORKDIR $SRC/libssh2
 COPY build.sh $SRC/
diff --git a/projects/libssh2/project.yaml b/projects/libssh2/project.yaml
index 44fb3a4..52a049e 100644
--- a/projects/libssh2/project.yaml
+++ b/projects/libssh2/project.yaml
@@ -1,9 +1,7 @@
 homepage: "https://github.com/libssh2/libssh2"
-language: c++
 primary_contact: "will.cosgrove@gmail.com"
 auto_ccs:
   - "cmeister2@gmail.com"
 sanitizers:
   - address
   - undefined
-main_repo: 'https://github.com/libssh2/libssh2.git'
diff --git a/projects/libtasn1/Dockerfile b/projects/libtasn1/Dockerfile
index e09b338..f6342e1 100644
--- a/projects/libtasn1/Dockerfile
+++ b/projects/libtasn1/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER rockdaboot@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool bison
 
 RUN git clone git://git.savannah.gnu.org/gnulib.git
diff --git a/projects/libtasn1/project.yaml b/projects/libtasn1/project.yaml
index 9380ae9..a502728 100644
--- a/projects/libtasn1/project.yaml
+++ b/projects/libtasn1/project.yaml
@@ -1,19 +1,9 @@
 homepage: "https://gitlab.com/gnutls/libtasn1"
-language: c++
 primary_contact: "rockdaboot@gmail.com"
 auto_ccs:
-  - "dbaryshkov@gmail.com"
-  - "ueno@gnu.org"
   - "n.mavrogiannopoulos@gmail.com"
   - "simon@josefsson.org"
-fuzzing_engines:
-  - afl
-  - libfuzzer
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
   - memory
   - undefined
-  - dataflow
-main_repo: 'https://gitlab.com/gnutls/libtasn1.git'
diff --git a/projects/libteken/Dockerfile b/projects/libteken/Dockerfile
index c8c6f0e..8eb252f 100644
--- a/projects/libteken/Dockerfile
+++ b/projects/libteken/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kcwu@csie.org
 RUN apt-get update && apt-get install -y pmake
 RUN svn co https://svn.freebsd.org/base/head/sys/teken libteken
 WORKDIR libteken
diff --git a/projects/libteken/project.yaml b/projects/libteken/project.yaml
index 8160b85..3f3564c 100644
--- a/projects/libteken/project.yaml
+++ b/projects/libteken/project.yaml
@@ -1,13 +1,6 @@
 homepage: "http://svn.freebsd.org/base/head/sys/teken/"
-language: c++
 primary_contact: "ed@nuxi.nl"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
-  - undefined
   - memory
-  - dataflow
+  - undefined
diff --git a/projects/libtheora/Dockerfile b/projects/libtheora/Dockerfile
index 4736474..abf8782 100644
--- a/projects/libtheora/Dockerfile
+++ b/projects/libtheora/Dockerfile
@@ -15,9 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/ogg.git
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/theora.git libtheora
+RUN git clone --depth 1 https://github.com/xiph/ogg.git
+RUN git clone --depth 1 git://git.xiph.org/theora.git libtheora
 RUN git clone --depth 1 https://github.com/guidovranken/oss-fuzz-fuzzers.git
 RUN git clone --depth 1 https://github.com/guidovranken/fuzzing-headers.git
 COPY build.sh $SRC/
diff --git a/projects/libtheora/project.yaml b/projects/libtheora/project.yaml
index 75dbb5f..f6afef2 100644
--- a/projects/libtheora/project.yaml
+++ b/projects/libtheora/project.yaml
@@ -1,13 +1,14 @@
 homepage: "https://www.theora.org/"
-language: c++
 primary_contact: "guidovranken@gmail.com"
 vendor_ccs:
+ - "cdiehl@mozilla.com"
  - "daede003@umn.edu"
  - "twsmith@mozilla.com"
 sanitizers:
  - address
  - undefined
  - memory
+ - dataflow
 architectures:
  - x86_64
  - i386
diff --git a/projects/libtiff/Dockerfile b/projects/libtiff/Dockerfile
index b6c5fd8..74f0c6a 100644
--- a/projects/libtiff/Dockerfile
+++ b/projects/libtiff/Dockerfile
@@ -15,12 +15,13 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER paul.l.kehrer@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool cmake nasm
 RUN git clone --depth 1 https://gitlab.com/libtiff/libtiff
 RUN git clone --depth 1 https://github.com/madler/zlib
 RUN git clone --depth 1 https://github.com/libjpeg-turbo/libjpeg-turbo
 RUN git clone https://www.cl.cam.ac.uk/~mgk25/git/jbigkit
-ADD https://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz afl_testcases.tgz
+ADD http://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz afl_testcases.tgz
 ADD https://raw.githubusercontent.com/google/AFL/debe27037b9444bbf090a0ffbd5d24889bb887ae/dictionaries/tiff.dict tiff.dict
 WORKDIR libtiff
 COPY build.sh $SRC/
diff --git a/projects/libtiff/project.yaml b/projects/libtiff/project.yaml
index 6c7666b..2580ddb 100644
--- a/projects/libtiff/project.yaml
+++ b/projects/libtiff/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.libtiff.org"
-language: c++
 primary_contact: "even.rouault@gmail.com"
 auto_ccs:
   - paul.l.kehrer@gmail.com
@@ -10,4 +9,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://gitlab.com/libtiff/libtiff'
diff --git a/projects/libtorrent/Dockerfile b/projects/libtorrent/Dockerfile
index 566b8b4..121226e 100644
--- a/projects/libtorrent/Dockerfile
+++ b/projects/libtorrent/Dockerfile
@@ -15,11 +15,13 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER arvid@libtorrent.org
 RUN apt-get update && apt-get install -y wget libssl-dev
 
-RUN git clone --depth 1 --single-branch --branch boost-1.73.0 --recurse-submodules https://github.com/boostorg/boost.git
+RUN wget --no-verbose https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.tar.gz
+RUN tar xzf boost_1_69_0.tar.gz
 
-RUN git clone --depth 1 --single-branch --branch RC_2_0 --recurse-submodules https://github.com/arvidn/libtorrent.git
+RUN git clone --depth 1 --single-branch --branch RC_1_2 --recurse-submodules https://github.com/arvidn/libtorrent.git
 WORKDIR libtorrent
 COPY build.sh $SRC/
 
diff --git a/projects/libtorrent/build.sh b/projects/libtorrent/build.sh
index 7741f28..2dd444c 100755
--- a/projects/libtorrent/build.sh
+++ b/projects/libtorrent/build.sh
@@ -15,12 +15,11 @@
 #
 ################################################################################
 
-export PATH=${PATH}:${PWD}/../boost
-export BOOST_ROOT=${PWD}/../boost
-export BOOST_BUILD_PATH=${PWD}/../boost/tools/build
-# when building b2, we don't want sanitizers enabled
-ASAN_OPTIONS=detect_leaks=0
-(cd ${PWD}/../boost && ./bootstrap.sh && ./b2 headers)
+export PATH=${PATH}:${PWD}/../boost_1_69_0/tools/build/src/engine/bin.linuxx86_64
+export BOOST_ROOT=${PWD}/../boost_1_69_0
+export BOOST_BUILD_PATH=${PWD}/../boost_1_69_0/tools/build
+
+(cd ${PWD}/../boost_1_69_0 && ./bootstrap.sh)
 
 echo "CXX=$CXX"
 echo "CXXFLAGS=$CXXFLAGS"
@@ -28,11 +27,10 @@
 echo "using clang : ossfuzz : $CXX : <compileflags>\"$CXXFLAGS\" <linkflags>\"$CXXFLAGS\" <linkflags>\"${LIB_FUZZING_ENGINE}\" ;" >project-config.jam
 cat project-config.jam
 cd fuzzers
-# we don't want sanitizers enabled on b2 itself
-ASAN_OPTIONS=detect_leaks=0 b2 clang-ossfuzz -j$(nproc) crypto=openssl fuzz=external sanitize=off stage-large logging=off
+b2 clang-ossfuzz -j$(nproc) crypto=openssl fuzz=external sanitize=off stage-large
 cp fuzzers/* $OUT
 
-wget --no-verbose https://github.com/arvidn/libtorrent/releases/download/2.0/corpus.zip
+wget --no-verbose https://github.com/arvidn/libtorrent/releases/download/libtorrent-1_2_1/corpus.zip
 unzip -q corpus.zip
 cd corpus
 for f in *; do
diff --git a/projects/libtorrent/project.yaml b/projects/libtorrent/project.yaml
index 7fc3c83..6f03c2b 100644
--- a/projects/libtorrent/project.yaml
+++ b/projects/libtorrent/project.yaml
@@ -1,7 +1,6 @@
 homepage: "https://github.com/arvidn/libtorrent.git"
-language: c++
 primary_contact: "pauldreikossfuzz@gmail.com"
 auto_ccs:
  - "oss-fuzz-libtorrent@pauldreik.se"
  - "arvid.norberg@gmail.com"
-main_repo: 'https://github.com/arvidn/libtorrent.git'
+
diff --git a/projects/libtpms/Dockerfile b/projects/libtpms/Dockerfile
index 50496fe..f1b1872 100644
--- a/projects/libtpms/Dockerfile
+++ b/projects/libtpms/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER marcandre.lureau@redhat.com
 RUN \
         apt-get update && \
         apt-get install -y \
diff --git a/projects/libtpms/project.yaml b/projects/libtpms/project.yaml
index b2b0853..b931c10 100644
--- a/projects/libtpms/project.yaml
+++ b/projects/libtpms/project.yaml
@@ -1,6 +1,4 @@
 homepage: "https://github.com/stefanberger/libtpms"
-language: c++
 primary_contact: "stefanb@us.ibm.com"
 auto_ccs:
   - "mlureau@redhat.com"
-main_repo: 'https://github.com/stefanberger/libtpms'
diff --git a/projects/libtsm/Dockerfile b/projects/libtsm/Dockerfile
index f0889fd..7b162ea 100644
--- a/projects/libtsm/Dockerfile
+++ b/projects/libtsm/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kcwu@csie.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config
 
 RUN git clone --depth 1 git://people.freedesktop.org/~dvdhrm/libtsm
diff --git a/projects/libtsm/project.yaml b/projects/libtsm/project.yaml
index 8dc1dd8..9a91cf6 100644
--- a/projects/libtsm/project.yaml
+++ b/projects/libtsm/project.yaml
@@ -1,8 +1,6 @@
 homepage: "https://www.freedesktop.org/wiki/Software/kmscon/libtsm/"
-language: c++
 primary_contact: "dh.herrmann@gmail.com"
 sanitizers:
   - address
   - memory
   - undefined
-main_repo: 'git://people.freedesktop.org/~dvdhrm/libtsm'
diff --git a/projects/libucl/Dockerfile b/projects/libucl/Dockerfile
deleted file mode 100644
index 7824ad6..0000000
--- a/projects/libucl/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake autoconf pkg-config libtool
-RUN git clone https://github.com/vstakhov/libucl
-
-WORKDIR $SRC
-
-COPY build.sh $SRC/
-COPY ucl_add_string_fuzzer.options $SRC/ucl_add_string_fuzzer.options
diff --git a/projects/libucl/build.sh b/projects/libucl/build.sh
deleted file mode 100644
index e5589dd..0000000
--- a/projects/libucl/build.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cp $SRC/ucl_add_string_fuzzer.options $OUT/
-
-cd libucl 
-./autogen.sh && ./configure
-make
-
-$CC $CFLAGS $LIB_FUZZING_ENGINE tests/fuzzers/ucl_add_string_fuzzer.c \
-    -DHAVE_CONFIG_H -I./src -I./include src/.libs/libucl.a -I./ \
-    -o $OUT/ucl_add_string_fuzzer
diff --git a/projects/libucl/project.yaml b/projects/libucl/project.yaml
deleted file mode 100644
index 8a5dd20..0000000
--- a/projects/libucl/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/vstakhov/libucl"
-primary_contact: "vsevolod@highsecure.ru"
-auto_ccs:
-  - "adam@adalogics.com"
-language: c
-main_repo: 'https://github.com/vstakhov/libucl'
diff --git a/projects/libucl/ucl_add_string_fuzzer.options b/projects/libucl/ucl_add_string_fuzzer.options
deleted file mode 100644
index f9d0965..0000000
--- a/projects/libucl/ucl_add_string_fuzzer.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-detect_leaks=0
diff --git a/projects/libusb/Dockerfile b/projects/libusb/Dockerfile
deleted file mode 100644
index ee3e490..0000000
--- a/projects/libusb/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool libudev-dev
-RUN git clone --depth 1 https://github.com/libusb/libusb libusb
-WORKDIR libusb
-COPY build.sh *.cc $SRC/
diff --git a/projects/libusb/build.sh b/projects/libusb/build.sh
deleted file mode 100755
index 281aa6e..0000000
--- a/projects/libusb/build.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-./autogen.sh
-./configure
-make -j$(nproc) all
-
-# build fuzzer
-for fuzzer in $(find $SRC -name '*_fuzzer.cc'); do
-    fuzzer_basename=$(basename -s .cc $fuzzer)
-    $CXX $CXXFLAGS -std=c++11 -I. \
-    $fuzzer $LIB_FUZZING_ENGINE ./libusb/.libs/libusb-1.0.a \
-    -lpthread -ludev \
-    -o $OUT/$fuzzer_basename
-done
diff --git a/projects/libusb/libusb_fuzzer.cc b/projects/libusb/libusb_fuzzer.cc
deleted file mode 100644
index 8e543a7..0000000
--- a/projects/libusb/libusb_fuzzer.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include <algorithm>
-#include <cstddef>
-#include <cstdint>
-
-#include "libusb/libusb.h"
-#include "libusb/libusbi.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  struct libusb_transfer *transfer;
-  FuzzedDataProvider stream(data, size);
-  uint8_t bmRequestType = stream.ConsumeIntegral<uint8_t>();
-  uint8_t bRequest = stream.ConsumeIntegral<uint8_t>();
-  uint16_t wValue = stream.ConsumeIntegral<uint16_t>();
-  uint16_t wIndex = stream.ConsumeIntegral<uint16_t>();
-  uint16_t wLength = stream.ConsumeIntegral<uint16_t>();
-  std::vector<char> data_ = stream.ConsumeRemainingBytes<char>();
-  unsigned char* buffer = reinterpret_cast<unsigned char*>(data_.data());
-
-  transfer = libusb_alloc_transfer(0);
-  if (!transfer) {
-    return LIBUSB_ERROR_NO_MEM;
-  }
-
-  if (!buffer) {
-    libusb_free_transfer(transfer);
-    return LIBUSB_ERROR_NO_MEM;
-  }
-
-  libusb_fill_control_setup(
-    buffer, bmRequestType, bRequest, wValue, wIndex, wLength);
-
-  libusb_free_transfer(transfer);
-  return 0;
-}
diff --git a/projects/libusb/project.yaml b/projects/libusb/project.yaml
deleted file mode 100644
index fc08e06..0000000
--- a/projects/libusb/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "http://libusb.info/"
-language: c++
-primary_contact: "christopher.a.dickens@gmail.com"
-auto_ccs:
-  - "hjelmn@gmail.com"
-sanitizers:
-  - address
-  - memory
-  - undefined
-architectures:
-  - x86_64
-main_repo: 'https://github.com/libusb/libusb'
diff --git a/projects/libvips/Dockerfile b/projects/libvips/Dockerfile
index e792dff..cca27ef 100644
--- a/projects/libvips/Dockerfile
+++ b/projects/libvips/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER oscar.mira@adevinta.com
 RUN apt-get update && apt-get install -y \
   curl \
   automake \
@@ -25,10 +26,9 @@
   libfftw3-dev \
   libexpat1-dev \
   libffi-dev \
-  libselinux1-dev \
   glib2.0-dev
 RUN mkdir afl-testcases
-RUN curl https://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz | tar xzC afl-testcases
+RUN curl http://lcamtuf.coredump.cx/afl/demo/afl_testcases.tgz | tar xzC afl-testcases
 RUN git clone --depth 1 https://github.com/libvips/libvips
 RUN git clone --depth 1 https://github.com/madler/zlib.git
 RUN git clone --depth 1 https://github.com/libexif/libexif
@@ -37,8 +37,5 @@
 RUN git clone --depth 1 https://git.code.sf.net/p/giflib/code libgif
 RUN git clone --depth 1 https://chromium.googlesource.com/webm/libwebp
 RUN git clone --depth 1 https://gitlab.com/libtiff/libtiff 
-RUN git clone --depth 1 https://aomedia.googlesource.com/aom
-RUN git clone --depth 1 https://github.com/strukturag/libheif
-
 WORKDIR libvips
 COPY build.sh $SRC/
diff --git a/projects/libvips/build.sh b/projects/libvips/build.sh
index 21505d6..ac61c7b 100755
--- a/projects/libvips/build.sh
+++ b/projects/libvips/build.sh
@@ -16,7 +16,6 @@
 ################################################################################
 
 export PKG_CONFIG_PATH=/work/lib/pkgconfig
-export LDFLAGS="$CXXFLAGS"
 
 # libz
 pushd $SRC/zlib
@@ -37,41 +36,6 @@
 make install
 popd
 
-# aom
-pushd $SRC/aom
-mkdir -p build/linux
-cd build/linux
-cmake -G "Unix Makefiles" \
-  -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX \
-  -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-  -DCMAKE_INSTALL_PREFIX=$WORK -DCMAKE_INSTALL_LIBDIR=lib \
-  -DENABLE_SHARED:bool=off -DCONFIG_PIC=1 \
-  -DENABLE_EXAMPLES=0 -DENABLE_DOCS=0 -DENABLE_TESTS=0 \
-  -DCONFIG_SIZE_LIMIT=1 \
-  -DDECODE_HEIGHT_LIMIT=12288 -DDECODE_WIDTH_LIMIT=12288 \
-  -DDO_RANGE_CHECK_CLAMP=1 \
-  -DAOM_MAX_ALLOCABLE_MEMORY=536870912 \
-  -DAOM_TARGET_CPU=generic \
-  ../../
-make clean
-make -j$(nproc)
-make install
-popd
-
-# libheif
-pushd $SRC/libheif
-autoreconf -fi
-./configure \
-  --disable-shared \
-  --enable-static \
-  --disable-examples \
-  --disable-go \
-  --prefix=$WORK
-make clean
-make -j$(nproc)
-make install
-popd
-
 # libjpeg-turbo
 pushd $SRC/libjpeg-turbo
 cmake . -DCMAKE_INSTALL_PREFIX=$WORK -DENABLE_STATIC:bool=on
@@ -164,12 +128,9 @@
     $WORK/lib/libwebpdemux.a \
     $WORK/lib/libwebp.a \
     $WORK/lib/libtiff.a \
-    $WORK/lib/libheif.a \
-    $WORK/lib/libaom.a \
     $LIB_FUZZING_ENGINE \
     -Wl,-Bstatic \
-    -lfftw3 -lgmodule-2.0 -lgio-2.0 -lgobject-2.0 -lffi -lglib-2.0 -lpcre -lexpat \
-    -lresolv -lsepol -lselinux \
+    -lfftw3 -lgmodule-2.0 -lgobject-2.0 -lffi -lglib-2.0 -lpcre -lexpat \
     -Wl,-Bdynamic -pthread
   ln -sf "seed_corpus.zip" "$OUT/${target}_seed_corpus.zip"
 done
diff --git a/projects/libvips/project.yaml b/projects/libvips/project.yaml
index d4b27f8..8b4908c 100644
--- a/projects/libvips/project.yaml
+++ b/projects/libvips/project.yaml
@@ -1,8 +1,6 @@
 homepage: "https://github.com/libvips/libvips"
-language: c++
 primary_contact: "jcupitt@gmail.com"
 auto_ccs:
   - "oscar.mira@adevinta.com"
   - "kleisauke@gmail.com"
   - "lovell.fuller@gmail.com"
-main_repo: 'https://github.com/libvips/libvips'
diff --git a/projects/libvpx/Dockerfile b/projects/libvpx/Dockerfile
index a75dc13..262848d 100644
--- a/projects/libvpx/Dockerfile
+++ b/projects/libvpx/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jzern@google.com
 RUN apt-get update && apt-get install -y yasm wget gcc
 RUN git clone https://chromium.googlesource.com/webm/libvpx
 ADD https://storage.googleapis.com/downloads.webmproject.org/test_data/fuzzer/vpx_fuzzer_seed_corpus.zip $SRC/
diff --git a/projects/libvpx/build.sh b/projects/libvpx/build.sh
index 15d9ea9..3f6559d 100755
--- a/projects/libvpx/build.sh
+++ b/projects/libvpx/build.sh
@@ -31,7 +31,6 @@
 fi
 
 LDFLAGS="$CXXFLAGS" LD=$CXX $SRC/libvpx/configure \
-    --enable-vp9-highbitdepth \
     --disable-unit-tests \
     --disable-examples \
     --size-limit=12288x12288 \
diff --git a/projects/libvpx/project.yaml b/projects/libvpx/project.yaml
index e6080bd..4e97b0c 100644
--- a/projects/libvpx/project.yaml
+++ b/projects/libvpx/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.webmproject.org"
-language: c++
 primary_contact: "jzern@google.com"
 sanitizers:
 - address
@@ -9,5 +8,4 @@
 - jzern@google.com
 - johannkoenig@google.com
 vendor_ccs:
-- twsmith@mozilla.com
-main_repo: 'https://chromium.googlesource.com/webm/libvpx'
+- cdiehl@mozilla.com
diff --git a/projects/libwebp/Dockerfile b/projects/libwebp/Dockerfile
index 4d91634..233ffbb 100644
--- a/projects/libwebp/Dockerfile
+++ b/projects/libwebp/Dockerfile
@@ -15,11 +15,19 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER yguyon@google.com
 RUN apt-get update && apt-get install -y autoconf make libtool zip
 RUN git clone https://chromium.googlesource.com/webm/libwebp
 RUN git clone https://chromium.googlesource.com/webm/libwebp-test-data
 ADD https://storage.googleapis.com/downloads.webmproject.org/webp/testdata/fuzzer/fuzz_seed_corpus.zip $SRC/
 RUN unzip fuzz_seed_corpus.zip -d libwebp-test-data/
 RUN rm fuzz_seed_corpus.zip
-COPY build.sh $SRC/
+COPY build.sh fuzz.h fuzz.dict $SRC/
+COPY img_alpha.h img_grid.h img_peak.h $SRC/
+COPY fuzz_simple_api.c $SRC/
+COPY fuzz_advanced_api.c $SRC/
+COPY fuzz_animation_api.c $SRC/
+COPY fuzz_webp_animencoder.cc $SRC/
+COPY fuzz_demux_api.c $SRC/
+COPY fuzz_webp_enc_dec.cc $SRC/
 WORKDIR libwebp
diff --git a/projects/libwebp/build.sh b/projects/libwebp/build.sh
index 7af96b8..d9ea7a3 100644
--- a/projects/libwebp/build.sh
+++ b/projects/libwebp/build.sh
@@ -34,38 +34,51 @@
 find $SRC/libwebp-test-data -type f -size -32k -iname "*.webp" \
   -exec zip -qju fuzz_seed_corpus.zip "{}" \;
 
-webp_libs=(
-  src/demux/.libs/libwebpdemux.a
-  src/mux/.libs/libwebpmux.a
+# Simple Decoding API
+$CC $CFLAGS -Isrc -I. -c $SRC/fuzz_simple_api.c
+$CXX $CXXFLAGS $LIB_FUZZING_ENGINE \
+  fuzz_simple_api.o -o $OUT/fuzz_simple_api \
   src/.libs/libwebp.a
-  imageio/.libs/libimageio_util.a
-)
-webp_c_fuzzers=(
-  advanced_api_fuzzer
-  animation_api_fuzzer
-  mux_demux_api_fuzzer
-  simple_api_fuzzer
-)
-webp_cxx_fuzzers=(
-  animdecoder_fuzzer
-  animencoder_fuzzer
-  enc_dec_fuzzer
-)
+cp fuzz_seed_corpus.zip $OUT/fuzz_simple_api_seed_corpus.zip
+cp $SRC/fuzz.dict $OUT/fuzz_simple_api.dict
 
-for fuzzer in "${webp_c_fuzzers[@]}"; do
-  $CC $CFLAGS -Isrc -I. tests/fuzzer/${fuzzer}.c -c -o tests/fuzzer/${fuzzer}.o
-  $CXX $CXXFLAGS $LIB_FUZZING_ENGINE \
-    tests/fuzzer/${fuzzer}.o -o $OUT/${fuzzer} \
-    "${webp_libs[@]}"
-done
+# Advanced Decoding API
+$CC $CFLAGS -Isrc -I. -c $SRC/fuzz_advanced_api.c
+$CXX $CXXFLAGS $LIB_FUZZING_ENGINE \
+  fuzz_advanced_api.o -o $OUT/fuzz_advanced_api \
+  src/.libs/libwebp.a
+cp fuzz_seed_corpus.zip $OUT/fuzz_advanced_api_seed_corpus.zip
+cp $SRC/fuzz.dict $OUT/fuzz_advanced_api.dict
 
-for fuzzer in "${webp_cxx_fuzzers[@]}"; do
-  $CXX $CXXFLAGS -Isrc -I. $LIB_FUZZING_ENGINE \
-    tests/fuzzer/${fuzzer}.cc -o $OUT/${fuzzer} \
-    "${webp_libs[@]}"
-done
+# Animation Decoding API
+$CC $CFLAGS -Isrc -I. -c $SRC/fuzz_animation_api.c
+$CXX $CXXFLAGS $LIB_FUZZING_ENGINE \
+  fuzz_animation_api.o -o $OUT/fuzz_animation_api \
+  src/demux/.libs/libwebpdemux.a \
+  src/.libs/libwebp.a
+cp fuzz_seed_corpus.zip $OUT/fuzz_animation_api_seed_corpus.zip
+cp $SRC/fuzz.dict $OUT/fuzz_animation_api.dict
 
-for fuzzer in "${webp_c_fuzzers[@]}" "${webp_cxx_fuzzers[@]}"; do
-  cp fuzz_seed_corpus.zip $OUT/${fuzzer}_seed_corpus.zip
-  cp tests/fuzzer/fuzz.dict $OUT/${fuzzer}.dict
-done
+# Animation Encoding API
+$CC $CFLAGS -Isrc -I. -c $SRC/fuzz_webp_animencoder.cc
+$CXX $CXXFLAGS $LIB_FUZZING_ENGINE \
+  fuzz_webp_animencoder.o -o $OUT/fuzz_webp_animencoder \
+  src/mux/.libs/libwebpmux.a \
+  src/.libs/libwebp.a
+cp fuzz_seed_corpus.zip $OUT/fuzz_webp_animencoder_seed_corpus.zip
+
+# (De)mux API
+$CC $CFLAGS -Isrc -I. -c $SRC/fuzz_demux_api.c
+$CXX $CXXFLAGS $LIB_FUZZING_ENGINE \
+  fuzz_demux_api.o -o $OUT/fuzz_demux_api \
+  src/demux/.libs/libwebpdemux.a src/mux/.libs/libwebpmux.a \
+  src/.libs/libwebp.a
+cp fuzz_seed_corpus.zip $OUT/fuzz_demux_api_seed_corpus.zip
+cp $SRC/fuzz.dict $OUT/fuzz_demux_api.dict
+
+# Encode then Decode
+$CC $CFLAGS -Isrc -I. -c $SRC/fuzz_webp_enc_dec.cc
+$CXX $CXXFLAGS $LIB_FUZZING_ENGINE \
+  fuzz_webp_enc_dec.o -o $OUT/fuzz_webp_enc_dec \
+  src/.libs/libwebp.a
+cp fuzz_seed_corpus.zip $OUT/fuzz_webp_enc_dec_seed_corpus.zip
diff --git a/projects/libwebp/fuzz.dict b/projects/libwebp/fuzz.dict
new file mode 100644
index 0000000..627c72e
--- /dev/null
+++ b/projects/libwebp/fuzz.dict
@@ -0,0 +1,17 @@
+# https://developers.google.com/speed/webp/docs/riff_container
+
+# FourCC
+"ALPH"
+"ANIM"
+"ANMF"
+"EXIF"
+"ICCP"
+"RIFF"
+"VP8 "
+"VP8L"
+"VP8X"
+"WEBP"
+"XMP "
+
+# VP8 signature
+"\x9D\x01\x2A"
diff --git a/projects/libwebp/fuzz.h b/projects/libwebp/fuzz.h
new file mode 100644
index 0000000..408211f
--- /dev/null
+++ b/projects/libwebp/fuzz.h
@@ -0,0 +1,190 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#include <stdint.h>
+#include <stdlib.h>
+
+#include "dsp/dsp.h"
+#include "img_alpha.h"
+#include "img_grid.h"
+#include "img_peak.h"
+#include "webp/encode.h"
+
+//------------------------------------------------------------------------------
+// Arbitrary limits to prevent OOM, timeout, or slow execution.
+//
+// The decoded image size, and for animations additionally the canvas size.
+static const size_t kFuzzPxLimit = 1024 * 1024;
+// Demuxed or decoded animation frames.
+static const int kFuzzFrameLimit = 3;
+
+// Reads and sums (up to) 128 spread-out bytes.
+uint8_t FuzzHash(const uint8_t* const data, size_t size) {
+  uint8_t value = 0;
+  size_t incr = size / 128;
+  if (!incr) incr = 1;
+  for (size_t i = 0; i < size; i += incr) value += data[i];
+  return value;
+}
+
+//------------------------------------------------------------------------------
+// Extract an integer in [0, max_value].
+
+static uint32_t Extract(uint32_t max_value, const uint8_t data[], size_t size,
+                        uint32_t* const bit_pos) {
+  uint32_t v = 0;
+  int range = 1;
+  while (*bit_pos < 8 * size && range <= max_value) {
+    const uint8_t mask = 1u << (*bit_pos & 7);
+    v = (v << 1) | !!(data[*bit_pos >> 3] & mask);
+    range <<= 1;
+    ++*bit_pos;
+  }
+  return v % (max_value + 1);
+}
+
+//------------------------------------------------------------------------------
+// Some functions to override VP8GetCPUInfo and disable some optimizations.
+
+static VP8CPUInfo GetCPUInfo;
+
+static int GetCPUInfoNoSSE41(CPUFeature feature) {
+  if (feature == kSSE4_1 || feature == kAVX) return 0;
+  return GetCPUInfo(feature);
+}
+
+static int GetCPUInfoNoAVX(CPUFeature feature) {
+  if (feature == kAVX) return 0;
+  return GetCPUInfo(feature);
+}
+
+static int GetCPUInfoForceSlowSSSE3(CPUFeature feature) {
+  if (feature == kSlowSSSE3 && GetCPUInfo(kSSE3)) {
+    return 1;  // we have SSE3 -> force SlowSSSE3
+  }
+  return GetCPUInfo(feature);
+}
+
+static int GetCPUInfoOnlyC(CPUFeature feature) { return 0; }
+
+static void ExtractAndDisableOptimizations(VP8CPUInfo default_VP8GetCPUInfo,
+                                           const uint8_t data[], size_t size,
+                                           uint32_t* const bit_pos) {
+  GetCPUInfo = default_VP8GetCPUInfo;
+  const VP8CPUInfo kVP8CPUInfos[5] = {GetCPUInfoOnlyC, GetCPUInfoForceSlowSSSE3,
+                                      GetCPUInfoNoSSE41, GetCPUInfoNoAVX,
+                                      GetCPUInfo};
+  int VP8GetCPUInfo_index = Extract(4, data, size, bit_pos);
+  VP8GetCPUInfo = kVP8CPUInfos[VP8GetCPUInfo_index];
+}
+
+//------------------------------------------------------------------------------
+
+static int ExtractWebPConfig(WebPConfig* const config, const uint8_t data[],
+                             size_t size, uint32_t* const bit_pos) {
+  if (config == NULL || !WebPConfigInit(config)) return 0;
+  config->lossless = Extract(1, data, size, bit_pos);
+  config->quality = Extract(100, data, size, bit_pos);
+  config->method = Extract(6, data, size, bit_pos);
+  config->image_hint =
+      (WebPImageHint)Extract(WEBP_HINT_LAST - 1, data, size, bit_pos);
+  config->segments = 1 + Extract(3, data, size, bit_pos);
+  config->sns_strength = Extract(100, data, size, bit_pos);
+  config->filter_strength = Extract(100, data, size, bit_pos);
+  config->filter_sharpness = Extract(7, data, size, bit_pos);
+  config->filter_type = Extract(1, data, size, bit_pos);
+  config->autofilter = Extract(1, data, size, bit_pos);
+  config->alpha_compression = Extract(1, data, size, bit_pos);
+  config->alpha_filtering = Extract(2, data, size, bit_pos);
+  config->alpha_quality = Extract(100, data, size, bit_pos);
+  config->pass = 1 + Extract(9, data, size, bit_pos);
+  config->show_compressed = 1;
+  config->preprocessing = Extract(2, data, size, bit_pos);
+  config->partitions = Extract(3, data, size, bit_pos);
+  config->partition_limit = 10 * Extract(10, data, size, bit_pos);
+  config->emulate_jpeg_size = Extract(1, data, size, bit_pos);
+  config->thread_level = Extract(1, data, size, bit_pos);
+  config->low_memory = Extract(1, data, size, bit_pos);
+  config->near_lossless = 20 * Extract(5, data, size, bit_pos);
+  config->exact = Extract(1, data, size, bit_pos);
+  config->use_delta_palette = Extract(1, data, size, bit_pos);
+  config->use_sharp_yuv = Extract(1, data, size, bit_pos);
+  return WebPValidateConfig(config);
+}
+
+//------------------------------------------------------------------------------
+
+static int ExtractSourcePicture(WebPPicture* const pic,
+                                const uint8_t data[], size_t size,
+                                uint32_t* const bit_pos) {
+  if (pic == NULL) return 0;
+
+  // Pick a source picture.
+  const uint8_t* kImagesData[] = {
+      kImgAlphaData,
+      kImgGridData,
+      kImgPeakData
+  };
+  const int kImagesWidth[] = {
+      kImgAlphaWidth,
+      kImgGridWidth,
+      kImgPeakWidth
+  };
+  const int kImagesHeight[] = {
+      kImgAlphaHeight,
+      kImgGridHeight,
+      kImgPeakHeight
+  };
+  const size_t kNbImages = sizeof(kImagesData) / sizeof(kImagesData[0]);
+  const size_t image_index = Extract(kNbImages - 1, data, size, bit_pos);
+  const uint8_t* const image_data = kImagesData[image_index];
+  pic->width = kImagesWidth[image_index];
+  pic->height = kImagesHeight[image_index];
+  pic->argb_stride = pic->width * 4 * sizeof(uint8_t);
+
+  // Read the bytes.
+  return WebPPictureImportRGBA(pic, image_data, pic->argb_stride);
+}
+
+//------------------------------------------------------------------------------
+
+static int max(int a, int b) { return ((a < b) ? b : a); }
+
+static int ExtractAndCropOrScale(WebPPicture* const pic, const uint8_t data[],
+                                 size_t size, uint32_t* const bit_pos) {
+  if (pic == NULL) return 0;
+  const int alter_input = Extract(1, data, size, bit_pos);
+  const int crop_or_scale = Extract(1, data, size, bit_pos);
+  const int width_ratio = 1 + Extract(7, data, size, bit_pos);
+  const int height_ratio = 1 + Extract(7, data, size, bit_pos);
+  if (alter_input) {
+    if (crop_or_scale) {
+      const uint32_t left_ratio = 1 + Extract(7, data, size, bit_pos);
+      const uint32_t top_ratio = 1 + Extract(7, data, size, bit_pos);
+      const int cropped_width = max(1, pic->width / width_ratio);
+      const int cropped_height = max(1, pic->height / height_ratio);
+      const int cropped_left = (pic->width - cropped_width) / left_ratio;
+      const int cropped_top = (pic->height - cropped_height) / top_ratio;
+      return WebPPictureCrop(pic, cropped_left, cropped_top, cropped_width,
+                             cropped_height);
+    } else {
+      const int scaled_width = 1 + (pic->width * width_ratio) / 8;
+      const int scaled_height = 1 + (pic->height * height_ratio) / 8;
+      return WebPPictureRescale(pic, scaled_width, scaled_height);
+    }
+  }
+  return 1;
+}
diff --git a/projects/libwebp/fuzz_advanced_api.c b/projects/libwebp/fuzz_advanced_api.c
new file mode 100644
index 0000000..4e2e2e2
--- /dev/null
+++ b/projects/libwebp/fuzz_advanced_api.c
@@ -0,0 +1,91 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#include "fuzz.h"
+#include "webp/decode.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t* const data, size_t size) {
+  WebPDecoderConfig config;
+  if (!WebPInitDecoderConfig(&config)) return 0;
+  if (WebPGetFeatures(data, size, &config.input) != VP8_STATUS_OK) return 0;
+  if ((size_t)config.input.width * config.input.height > kFuzzPxLimit) return 0;
+
+  // Using two independent criteria ensures that all combinations of options
+  // can reach each path at the decoding stage, with meaningful differences.
+
+  const uint8_t value = FuzzHash(data, size);
+  const float factor = value / 255.f;  // 0-1
+
+  config.options.flip = value & 1;
+  config.options.bypass_filtering = value & 2;
+  config.options.no_fancy_upsampling = value & 4;
+  config.options.use_threads = value & 8;
+  if (size & 1) {
+    config.options.use_cropping = 1;
+    config.options.crop_width = (int)(config.input.width * (1 - factor));
+    config.options.crop_height = (int)(config.input.height * (1 - factor));
+    config.options.crop_left = config.input.width - config.options.crop_width;
+    config.options.crop_top = config.input.height - config.options.crop_height;
+  }
+  if (size & 2) {
+    int strength = (int)(factor * 100);
+    config.options.dithering_strength = strength;
+    config.options.alpha_dithering_strength = 100 - strength;
+  }
+  if (size & 4) {
+    config.options.use_scaling = 1;
+    config.options.scaled_width = (int)(config.input.width * factor * 2);
+    config.options.scaled_height = (int)(config.input.height * factor * 2);
+  }
+
+  config.output.colorspace = (WEBP_CSP_MODE)(value % MODE_LAST);
+
+  if (size % 3) {
+    // Decodes incrementally in chunks of increasing size.
+    WebPIDecoder* idec = WebPIDecode(NULL, 0, &config);
+    if (!idec) return 0;
+    VP8StatusCode status;
+    if (size & 8) {
+      size_t available_size = value + 1;
+      while (1) {
+        if (available_size > size) available_size = size;
+        status = WebPIUpdate(idec, data, available_size);
+        if (status != VP8_STATUS_SUSPENDED || available_size == size) break;
+        available_size *= 2;
+      }
+    } else {
+      // WebPIAppend expects new data and its size with each call.
+      // Implemented here by simply advancing the pointer into data.
+      const uint8_t* new_data = data;
+      size_t new_size = value + 1;
+      while (1) {
+        if (new_data + new_size > data + size) {
+          new_size = data + size - new_data;
+        }
+        status = WebPIAppend(idec, new_data, new_size);
+        if (status != VP8_STATUS_SUSPENDED || new_size == 0) break;
+        new_data += new_size;
+        new_size *= 2;
+      }
+    }
+    WebPIDelete(idec);
+  } else {
+    WebPDecode(data, size, &config);
+  }
+
+  WebPFreeDecBuffer(&config.output);
+  return 0;
+}
diff --git a/projects/libwebp/fuzz_animation_api.c b/projects/libwebp/fuzz_animation_api.c
new file mode 100644
index 0000000..ea75e08
--- /dev/null
+++ b/projects/libwebp/fuzz_animation_api.c
@@ -0,0 +1,78 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#include "fuzz.h"
+#include "webp/decode.h"
+#include "webp/demux.h"
+#include "webp/mux_types.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t* const data, size_t size) {
+  WebPData webp_data;
+  WebPDataInit(&webp_data);
+  webp_data.size = size;
+  webp_data.bytes = data;
+
+  // WebPAnimDecoderNew uses WebPDemux internally to calloc canvas size.
+  WebPDemuxer* const demux = WebPDemux(&webp_data);
+  if (!demux) return 0;
+  const uint32_t cw = WebPDemuxGetI(demux, WEBP_FF_CANVAS_WIDTH);
+  const uint32_t ch = WebPDemuxGetI(demux, WEBP_FF_CANVAS_HEIGHT);
+  if ((size_t)cw * ch > kFuzzPxLimit) {
+    WebPDemuxDelete(demux);
+    return 0;
+  }
+
+  // In addition to canvas size, check each frame separately.
+  WebPIterator iter;
+  for (int i = 0; i < kFuzzFrameLimit; i++) {
+    if (!WebPDemuxGetFrame(demux, i + 1, &iter)) break;
+    int w, h;
+    if (WebPGetInfo(iter.fragment.bytes, iter.fragment.size, &w, &h)) {
+      if ((size_t)w * h > kFuzzPxLimit) {  // image size of the frame payload
+        WebPDemuxReleaseIterator(&iter);
+        WebPDemuxDelete(demux);
+        return 0;
+      }
+    }
+  }
+
+  WebPDemuxReleaseIterator(&iter);
+  WebPDemuxDelete(demux);
+
+  WebPAnimDecoderOptions dec_options;
+  if (!WebPAnimDecoderOptionsInit(&dec_options)) return 0;
+
+  dec_options.use_threads = size & 1;
+  // Animations only support 4 (of 12) modes.
+  dec_options.color_mode = (WEBP_CSP_MODE)(size % MODE_LAST);
+  if (dec_options.color_mode != MODE_BGRA &&
+      dec_options.color_mode != MODE_rgbA &&
+      dec_options.color_mode != MODE_bgrA) {
+    dec_options.color_mode = MODE_RGBA;
+  }
+
+  WebPAnimDecoder* dec = WebPAnimDecoderNew(&webp_data, &dec_options);
+  if (!dec) return 0;
+
+  for (int i = 0; i < kFuzzFrameLimit; i++) {
+    uint8_t* buf;
+    int timestamp;
+    if (!WebPAnimDecoderGetNext(dec, &buf, &timestamp)) break;
+  }
+
+  WebPAnimDecoderDelete(dec);
+  return 0;
+}
diff --git a/projects/libwebp/fuzz_demux_api.c b/projects/libwebp/fuzz_demux_api.c
new file mode 100644
index 0000000..8078c61
--- /dev/null
+++ b/projects/libwebp/fuzz_demux_api.c
@@ -0,0 +1,96 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#include "fuzz.h"
+#include "webp/mux.h"
+#include "webp/demux.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t* const data, size_t size) {
+  WebPData webp_data;
+  WebPDataInit(&webp_data);
+  webp_data.size = size;
+  webp_data.bytes = data;
+
+  // Extracted chunks and frames are not processed or decoded,
+  // which is already covered extensively by the other fuzz targets.
+
+  if (size & 1) {
+    // Mux API
+    WebPMux* mux = WebPMuxCreate(&webp_data, size & 2);
+    if (!mux) return 0;
+
+    WebPData chunk;
+    WebPMuxGetChunk(mux, "EXIF", &chunk);
+    WebPMuxGetChunk(mux, "ICCP", &chunk);
+    WebPMuxGetChunk(mux, "FUZZ", &chunk);  // unknown
+
+    uint32_t flags;
+    WebPMuxGetFeatures(mux, &flags);
+
+    WebPMuxAnimParams params;
+    WebPMuxGetAnimationParams(mux, &params);
+
+    WebPMuxError status;
+    WebPMuxFrameInfo info;
+    for (int i = 0; i < kFuzzFrameLimit; i++) {
+      status = WebPMuxGetFrame(mux, i + 1, &info);
+      if (status == WEBP_MUX_NOT_FOUND) {
+        break;
+      } else if (status == WEBP_MUX_OK) {
+        WebPDataClear(&info.bitstream);
+      }
+    }
+
+    WebPMuxDelete(mux);
+  } else {
+    // Demux API
+    WebPDemuxer* demux;
+    if (size & 2) {
+      WebPDemuxState state;
+      demux = WebPDemuxPartial(&webp_data, &state);
+      if (state < WEBP_DEMUX_PARSED_HEADER) {
+        WebPDemuxDelete(demux);
+        return 0;
+      }
+    } else {
+      demux = WebPDemux(&webp_data);
+      if (!demux) return 0;
+    }
+
+    WebPChunkIterator chunk_iter;
+    if (WebPDemuxGetChunk(demux, "EXIF", 1, &chunk_iter)) {
+      WebPDemuxNextChunk(&chunk_iter);
+    }
+    WebPDemuxReleaseChunkIterator(&chunk_iter);
+    if (WebPDemuxGetChunk(demux, "ICCP", 0, &chunk_iter)) {  // 0 == last
+      WebPDemuxPrevChunk(&chunk_iter);
+    }
+    WebPDemuxReleaseChunkIterator(&chunk_iter);
+    // Skips FUZZ because the Demux API has no concept of (un)known chunks.
+
+    WebPIterator iter;
+    if (WebPDemuxGetFrame(demux, 1, &iter)) {
+      for (int i = 1; i < kFuzzFrameLimit; i++) {
+        if (!WebPDemuxNextFrame(&iter)) break;
+      }
+    }
+
+    WebPDemuxReleaseIterator(&iter);
+    WebPDemuxDelete(demux);
+  }
+
+  return 0;
+}
diff --git a/projects/libwebp/fuzz_simple_api.c b/projects/libwebp/fuzz_simple_api.c
new file mode 100644
index 0000000..615c2f3
--- /dev/null
+++ b/projects/libwebp/fuzz_simple_api.c
@@ -0,0 +1,84 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#include "fuzz.h"
+#include "webp/decode.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t* const data, size_t size) {
+  int w, h;
+  if (!WebPGetInfo(data, size, &w, &h)) return 0;
+  if ((size_t)w * h > kFuzzPxLimit) return 0;
+
+  const uint8_t value = FuzzHash(data, size);
+  uint8_t* buf = NULL;
+
+  // For *Into functions, which decode into an external buffer, an
+  // intentionally too small buffer can be given with low probability.
+  if (value < 0x16) {
+    buf = WebPDecodeRGBA(data, size, &w, &h);
+  } else if (value < 0x2b) {
+    buf = WebPDecodeARGB(data, size, &w, &h);
+  } else if (value < 0x40) {
+    buf = WebPDecodeBGRA(data, size, &w, &h);
+  } else if (value < 0x55) {
+    buf = WebPDecodeRGB(data, size, &w, &h);
+  } else if (value < 0x6a) {
+    buf = WebPDecodeBGR(data, size, &w, &h);
+  } else if (value < 0x7f) {
+    uint8_t *u, *v;
+    int stride, uv_stride;
+    buf = WebPDecodeYUV(data, size, &w, &h, &u, &v, &stride, &uv_stride);
+  } else if (value < 0xe8) {
+    const int stride = (value < 0xbe ? 4 : 3) * w;
+    size_t buf_size = stride * h;
+    if (value % 0x10 == 0) buf_size--;
+    uint8_t* const ext_buf = (uint8_t*)malloc(buf_size);
+    if (value < 0x94) {
+      WebPDecodeRGBAInto(data, size, ext_buf, buf_size, stride);
+    } else if (value < 0xa9) {
+      WebPDecodeARGBInto(data, size, ext_buf, buf_size, stride);
+    } else if (value < 0xbe) {
+      WebPDecodeBGRAInto(data, size, ext_buf, buf_size, stride);
+    } else if (value < 0xd3) {
+      WebPDecodeRGBInto(data, size, ext_buf, buf_size, stride);
+    } else {
+      WebPDecodeBGRInto(data, size, ext_buf, buf_size, stride);
+    }
+    free(ext_buf);
+  } else {
+    size_t luma_size = w * h;
+    const int uv_stride = (w + 1) / 2;
+    size_t u_size = uv_stride * (h + 1) / 2;
+    size_t v_size = uv_stride * (h + 1) / 2;
+    if (value % 0x10 == 0) {
+      if (size & 1) luma_size--;
+      if (size & 2) u_size--;
+      if (size & 4) v_size--;
+    }
+    uint8_t* const luma_buf = (uint8_t*)malloc(luma_size);
+    uint8_t* const u_buf = (uint8_t*)malloc(u_size);
+    uint8_t* const v_buf = (uint8_t*)malloc(v_size);
+    WebPDecodeYUVInto(data, size, luma_buf, luma_size, w /* luma_stride */,
+                      u_buf, u_size, uv_stride, v_buf, v_size, uv_stride);
+    free(luma_buf);
+    free(u_buf);
+    free(v_buf);
+  }
+
+  if (buf) WebPFree(buf);
+
+  return 0;
+}
diff --git a/projects/libwebp/fuzz_webp_animencoder.cc b/projects/libwebp/fuzz_webp_animencoder.cc
new file mode 100644
index 0000000..f5cb2d1
--- /dev/null
+++ b/projects/libwebp/fuzz_webp_animencoder.cc
@@ -0,0 +1,165 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "fuzz.h"
+#include "webp/encode.h"
+#include "webp/mux.h"
+
+namespace {
+
+const VP8CPUInfo default_VP8GetCPUInfo = VP8GetCPUInfo;
+
+int AddFrame(WebPAnimEncoder** const enc,
+             const WebPAnimEncoderOptions& anim_config, int* const width,
+             int* const height, int timestamp_ms, const uint8_t data[],
+             size_t size, uint32_t* const bit_pos) {
+  if (enc == nullptr || width == nullptr || height == nullptr) {
+    fprintf(stderr, "NULL parameters.\n");
+    if (enc != nullptr) WebPAnimEncoderDelete(*enc);
+    abort();
+  }
+
+  // Init the source picture.
+  WebPPicture pic;
+  if (!WebPPictureInit(&pic)) {
+    fprintf(stderr, "WebPPictureInit failed.\n");
+    WebPAnimEncoderDelete(*enc);
+    abort();
+  }
+  pic.use_argb = Extract(1, data, size, bit_pos);
+
+  // Read the source picture.
+  if (!ExtractSourcePicture(&pic, data, size, bit_pos)) {
+    fprintf(stderr, "Can't read input image.\n");
+    WebPPictureFree(&pic);
+    abort();
+  }
+
+  // Crop and scale.
+  if (*enc == nullptr) {  // First frame will set canvas width and height.
+    if (!ExtractAndCropOrScale(&pic, data, size, bit_pos)) {
+      fprintf(stderr, "ExtractAndCropOrScale failed.");
+      WebPPictureFree(&pic);
+      abort();
+    }
+  } else {  // Other frames will be resized to the first frame's dimensions.
+    if (!WebPPictureRescale(&pic, *width, *height)) {
+      fprintf(stderr, "WebPPictureRescale failed. Size: %d,%d\n", *width,
+              *height);
+      WebPAnimEncoderDelete(*enc);
+      WebPPictureFree(&pic);
+      abort();
+    }
+  }
+
+  // Create encoder if it doesn't exist.
+  if (*enc == nullptr) {
+    *width = pic.width;
+    *height = pic.height;
+    *enc = WebPAnimEncoderNew(*width, *height, &anim_config);
+    if (*enc == nullptr) {
+      fprintf(stderr, "WebPAnimEncoderNew failed.\n");
+      WebPPictureFree(&pic);
+      abort();
+    }
+  }
+
+  // Create frame encoding config.
+  WebPConfig config;
+  if (!ExtractWebPConfig(&config, data, size, bit_pos)) {
+    fprintf(stderr, "ExtractWebPConfig failed.\n");
+    WebPAnimEncoderDelete(*enc);
+    WebPPictureFree(&pic);
+    abort();
+  }
+  // Skip slow settings on big images, it's likely to timeout.
+  if (pic.width * pic.height > 32 * 32) {
+    config.method = (config.method > 4) ? 4 : config.method;
+    config.quality = (config.quality > 99.0f) ? 99.0f : config.quality;
+    config.alpha_quality =
+        (config.alpha_quality > 99) ? 99 : config.alpha_quality;
+  }
+
+  // Encode.
+  if (!WebPAnimEncoderAdd(*enc, &pic, timestamp_ms, &config)) {
+    fprintf(stderr, "WebPEncode failed. Error code: %d\n", pic.error_code);
+    WebPAnimEncoderDelete(*enc);
+    WebPPictureFree(&pic);
+    abort();
+  }
+
+  WebPPictureFree(&pic);
+  return 1;
+}
+
+}  // namespace
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* const data, size_t size) {
+  WebPAnimEncoder* enc = nullptr;
+  int width = 0, height = 0, timestamp_ms = 0;
+  uint32_t bit_pos = 0;
+
+  ExtractAndDisableOptimizations(default_VP8GetCPUInfo, data, size, &bit_pos);
+
+  // Extract a configuration from the packed bits.
+  WebPAnimEncoderOptions anim_config;
+  if (!WebPAnimEncoderOptionsInit(&anim_config)) {
+    fprintf(stderr, "WebPAnimEncoderOptionsInit failed.\n");
+    abort();
+  }
+  anim_config.minimize_size = Extract(1, data, size, &bit_pos);
+  anim_config.kmax = Extract(15, data, size, &bit_pos);
+  const int min_kmin = (anim_config.kmax > 1) ? (anim_config.kmax / 2) : 0;
+  const int max_kmin = (anim_config.kmax > 1) ? (anim_config.kmax - 1) : 0;
+  anim_config.kmin =
+      min_kmin + Extract((uint32_t)(max_kmin - min_kmin), data, size, &bit_pos);
+  anim_config.allow_mixed = Extract(1, data, size, &bit_pos);
+  anim_config.verbose = 0;
+
+  const int nb_frames = 1 + Extract(15, data, size, &bit_pos);
+
+  // For each frame.
+  for (int i = 0; i < nb_frames; ++i) {
+    if (!AddFrame(&enc, anim_config, &width, &height, timestamp_ms, data, size,
+                  &bit_pos)) {
+      return 0;
+    }
+
+    timestamp_ms += (1 << (2 + Extract(15, data, size, &bit_pos))) +
+                    Extract(1, data, size, &bit_pos);  // [1..131073], arbitrary
+  }
+
+  // Assemble.
+  if (!WebPAnimEncoderAdd(enc, nullptr, timestamp_ms, nullptr)) {
+    fprintf(stderr, "Last WebPAnimEncoderAdd failed.");
+    WebPAnimEncoderDelete(enc);
+    abort();
+  }
+  WebPData webp_data;
+  WebPDataInit(&webp_data);
+  if (!WebPAnimEncoderAssemble(enc, &webp_data)) {
+    fprintf(stderr, "WebPAnimEncoderAssemble failed.");
+    WebPAnimEncoderDelete(enc);
+    WebPDataClear(&webp_data);
+    abort();
+  }
+
+  WebPAnimEncoderDelete(enc);
+  WebPDataClear(&webp_data);
+  return 0;
+}
diff --git a/projects/libwebp/fuzz_webp_enc_dec.cc b/projects/libwebp/fuzz_webp_enc_dec.cc
new file mode 100644
index 0000000..5e3ef42
--- /dev/null
+++ b/projects/libwebp/fuzz_webp_enc_dec.cc
@@ -0,0 +1,133 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "fuzz.h"
+#include "webp/encode.h"
+#include "webp/decode.h"
+
+namespace {
+
+const VP8CPUInfo default_VP8GetCPUInfo = VP8GetCPUInfo;
+
+}  // namespace
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* const data, size_t size) {
+  uint32_t bit_pos = 0;
+
+  ExtractAndDisableOptimizations(default_VP8GetCPUInfo, data, size, &bit_pos);
+
+  // Init the source picture.
+  WebPPicture pic;
+  if (!WebPPictureInit(&pic)) {
+    fprintf(stderr, "WebPPictureInit failed.\n");
+    abort();
+  }
+  pic.use_argb = Extract(1, data, size, &bit_pos);
+
+  // Read the source picture.
+  if (!ExtractSourcePicture(&pic, data, size, &bit_pos)) {
+    fprintf(stderr, "Can't read input image.\n");
+    WebPPictureFree(&pic);
+    abort();
+  }
+
+  // Crop and scale.
+  if (!ExtractAndCropOrScale(&pic, data, size, &bit_pos)) {
+    fprintf(stderr, "ExtractAndCropOrScale failed.");
+    WebPPictureFree(&pic);
+    abort();
+  }
+
+  // Extract a configuration from the packed bits.
+  WebPConfig config;
+  if (!ExtractWebPConfig(&config, data, size, &bit_pos)) {
+    fprintf(stderr, "ExtractWebPConfig failed.\n");
+    abort();
+  }
+  // Skip slow settings on big images, it's likely to timeout.
+  if (pic.width * pic.height > 32 * 32) {
+    if (config.lossless) {
+      if (config.quality > 99.0f && config.method >= 5) {
+        config.quality = 99.0f;
+        config.method = 5;
+      }
+    } else {
+      if (config.quality > 99.0f && config.method == 6) {
+        config.quality = 99.0f;
+      }
+    }
+    if (config.alpha_quality == 100 && config.method == 6) {
+      config.alpha_quality = 99;
+    }
+  }
+
+  // Encode.
+  WebPMemoryWriter memory_writer;
+  WebPMemoryWriterInit(&memory_writer);
+  pic.writer = WebPMemoryWrite;
+  pic.custom_ptr = &memory_writer;
+  if (!WebPEncode(&config, &pic)) {
+    fprintf(stderr, "WebPEncode failed. Error code: %d\n", pic.error_code);
+    WebPMemoryWriterClear(&memory_writer);
+    WebPPictureFree(&pic);
+    abort();
+  }
+
+  // Try decoding the result.
+  int w, h;
+  const uint8_t* const out_data = memory_writer.mem;
+  const size_t out_size = memory_writer.size;
+  uint8_t* const rgba = WebPDecodeBGRA(out_data, out_size, &w, &h);
+  if (rgba == nullptr || w != pic.width || h != pic.height) {
+    fprintf(stderr, "WebPDecodeBGRA failed.\n");
+    WebPFree(rgba);
+    WebPMemoryWriterClear(&memory_writer);
+    WebPPictureFree(&pic);
+    abort();
+  }
+
+  // Compare the results if exact encoding.
+  if (pic.use_argb && config.lossless && config.near_lossless == 100) {
+    const uint32_t* src1 = (const uint32_t*)rgba;
+    const uint32_t* src2 = pic.argb;
+    for (int y = 0; y < h; ++y, src1 += w, src2 += pic.argb_stride) {
+      for (int x = 0; x < w; ++x) {
+        uint32_t v1 = src1[x], v2 = src2[x];
+        if (!config.exact) {
+          if ((v1 & 0xff000000u) == 0 || (v2 & 0xff000000u) == 0) {
+            // Only keep alpha for comparison of fully transparent area.
+            v1 &= 0xff000000u;
+            v2 &= 0xff000000u;
+          }
+        }
+        if (v1 != v2) {
+          fprintf(stderr, "Lossless compression failed pixel-exactness.\n");
+          WebPFree(rgba);
+          WebPMemoryWriterClear(&memory_writer);
+          WebPPictureFree(&pic);
+          abort();
+        }
+      }
+    }
+  }
+
+  WebPFree(rgba);
+  WebPMemoryWriterClear(&memory_writer);
+  WebPPictureFree(&pic);
+  return 0;
+}
diff --git a/projects/libwebp/img_alpha.h b/projects/libwebp/img_alpha.h
new file mode 100644
index 0000000..4ac397e
--- /dev/null
+++ b/projects/libwebp/img_alpha.h
@@ -0,0 +1,360 @@
+#include <stdint.h>
+
+static const int kImgAlphaWidth = 32;
+static const int kImgAlphaHeight = 32;
+
+/*Pixel format: Red: 8 bit, Green: 8 bit, Blue: 8 bit, Fix 0xFF: 8 bit*/
+static const uint8_t kImgAlphaData[] = {
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0xfe, 0xfe, 0xff, 0xfe, 0xfe, 0xfd, 0xff, 0xfe, 0xfd, 0xfc, 0xff,
+    0xfe, 0xfd, 0xfb, 0xff, 0xfe, 0xfc, 0xfb, 0xff, 0xfe, 0xfc, 0xfa, 0xff,
+    0xfe, 0xfc, 0xf9, 0xff, 0xfe, 0xfb, 0xf8, 0xff, 0xfe, 0xfb, 0xf7, 0xff,
+    0xfe, 0xfb, 0xf7, 0xff, 0xfe, 0xfa, 0xf6, 0xff, 0xfe, 0xf9, 0xf5, 0xff,
+    0xfd, 0xf9, 0xf3, 0xff, 0xfd, 0xf8, 0xf2, 0xff, 0xfd, 0xf7, 0xf1, 0xff,
+    0xfc, 0xf7, 0xf0, 0xff, 0xfc, 0xf6, 0xef, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff,
+    0xfe, 0xfe, 0xfd, 0xff, 0xfe, 0xfd, 0xfc, 0xff, 0xfe, 0xfd, 0xfb, 0xff,
+    0xfe, 0xfc, 0xfa, 0xff, 0xfe, 0xfc, 0xfa, 0xff, 0xfe, 0xfb, 0xf9, 0xff,
+    0xfe, 0xfb, 0xf8, 0xff, 0xfe, 0xfb, 0xf7, 0xff, 0xfe, 0xfa, 0xf7, 0xff,
+    0xfe, 0xfa, 0xf5, 0xff, 0xfe, 0xfa, 0xf5, 0xff, 0xfd, 0xf9, 0xf4, 0xff,
+    0xfd, 0xf8, 0xf2, 0xff, 0xfc, 0xf7, 0xf1, 0xff, 0xfc, 0xf7, 0xf0, 0xff,
+    0xfc, 0xf7, 0xef, 0xff, 0xfc, 0xf6, 0xee, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfe, 0xfe, 0xfe, 0xff, 0xfe, 0xfe, 0xfd, 0xff, 0xfe, 0xfd, 0xfd, 0xff,
+    0xfe, 0xfd, 0xfc, 0xff, 0xfe, 0xfd, 0xfb, 0xff, 0xfe, 0xfc, 0xfa, 0xff,
+    0xfe, 0xfc, 0xfa, 0xff, 0xfe, 0xfc, 0xf9, 0xff, 0xfe, 0xfb, 0xf8, 0xff,
+    0xfe, 0xfb, 0xf7, 0xff, 0xfe, 0xfb, 0xf6, 0xff, 0xfe, 0xfa, 0xf5, 0xff,
+    0xfe, 0xfa, 0xf5, 0xff, 0xfe, 0xf9, 0xf4, 0xff, 0xfe, 0xf8, 0xf3, 0xff,
+    0xfd, 0xf8, 0xf2, 0xff, 0xfc, 0xf7, 0xf1, 0xff, 0xfc, 0xf5, 0xf0, 0xff,
+    0xfc, 0xf6, 0xee, 0xff, 0xfc, 0xf5, 0xed, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfd, 0xfd, 0xff,
+    0xfc, 0xfb, 0xfb, 0xff, 0xfd, 0xfc, 0xfc, 0xff, 0xfe, 0xfd, 0xfb, 0xff,
+    0xfe, 0xfc, 0xfa, 0xff, 0xfe, 0xfc, 0xfa, 0xff, 0xfe, 0xfc, 0xf9, 0xff,
+    0xfe, 0xfb, 0xf8, 0xff, 0xfe, 0xfb, 0xf8, 0xff, 0xfe, 0xfb, 0xf7, 0xff,
+    0xfe, 0xfb, 0xf6, 0xff, 0xfe, 0xfa, 0xf5, 0xff, 0xfe, 0xfa, 0xf5, 0xff,
+    0xfe, 0xf9, 0xf4, 0xff, 0xfe, 0xf9, 0xf3, 0xff, 0xfe, 0xf8, 0xf2, 0xff,
+    0xfd, 0xf7, 0xf1, 0xff, 0xfc, 0xf6, 0xf0, 0xff, 0xfc, 0xf6, 0xee, 0xff,
+    0xfc, 0xf5, 0xec, 0xff, 0xfb, 0xf5, 0xec, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xfb, 0xfb, 0xfb, 0xff,
+    0xfa, 0xf9, 0xf9, 0xff, 0xf7, 0xf6, 0xf6, 0xff, 0xfd, 0xfc, 0xfa, 0xff,
+    0xfe, 0xfc, 0xfa, 0xff, 0xfe, 0xfc, 0xf9, 0xff, 0xfe, 0xfb, 0xf9, 0xff,
+    0xfe, 0xfb, 0xf7, 0xff, 0xfe, 0xfb, 0xf7, 0xff, 0xfe, 0xfb, 0xf6, 0xff,
+    0xfe, 0xfa, 0xf5, 0xff, 0xfe, 0xfa, 0xf5, 0xff, 0xfe, 0xfa, 0xf3, 0xff,
+    0xfe, 0xfa, 0xf4, 0xfb, 0xfe, 0xf9, 0xf4, 0xeb, 0xfe, 0xfb, 0xf6, 0xdc,
+    0xfd, 0xfa, 0xf6, 0xcf, 0xfd, 0xfa, 0xf5, 0xcc, 0xfc, 0xf9, 0xf4, 0xcb,
+    0xfd, 0xf8, 0xf3, 0xc7, 0xfc, 0xf8, 0xf2, 0xc7,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfd, 0xfd, 0xff,
+    0xfb, 0xfa, 0xfa, 0xff, 0xf8, 0xf7, 0xf7, 0xff, 0xf6, 0xf4, 0xf4, 0xff,
+    0xf7, 0xf5, 0xf5, 0xff, 0xf5, 0xf5, 0xf4, 0xff, 0xf8, 0xf7, 0xf7, 0xff,
+    0xfd, 0xfb, 0xf8, 0xff, 0xfe, 0xfb, 0xf8, 0xff, 0xfe, 0xfb, 0xf7, 0xff,
+    0xfe, 0xfb, 0xf7, 0xff, 0xfe, 0xfa, 0xf6, 0xff, 0xfe, 0xfa, 0xf5, 0xff,
+    0xfe, 0xfa, 0xf4, 0xff, 0xfd, 0xfa, 0xf4, 0xfc, 0xfe, 0xfc, 0xf9, 0xcf,
+    0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0xa8, 0xff, 0xff, 0xff, 0xa4,
+    0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xff, 0xff, 0x94,
+    0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0x8b,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0xfc, 0xfc, 0xff, 0xfa, 0xf9, 0xf9, 0xff,
+    0xf6, 0xf5, 0xf4, 0xff, 0xf5, 0xf3, 0xf3, 0xff, 0xf4, 0xf2, 0xf1, 0xff,
+    0xf2, 0xf1, 0xf0, 0xff, 0xf2, 0xf0, 0xf0, 0xff, 0xf0, 0xee, 0xee, 0xff,
+    0xf1, 0xf0, 0xef, 0xff, 0xfe, 0xfb, 0xf8, 0xff, 0xfe, 0xfb, 0xf6, 0xff,
+    0xfe, 0xfa, 0xf6, 0xff, 0xfe, 0xfa, 0xf5, 0xff, 0xfe, 0xfb, 0xf4, 0xff,
+    0xfe, 0xfb, 0xf5, 0xf3, 0xff, 0xfe, 0xfe, 0xb4, 0xff, 0xff, 0xff, 0xac,
+    0xff, 0xff, 0xff, 0xa7, 0xff, 0xff, 0xff, 0xa3, 0xff, 0xff, 0xff, 0x9c,
+    0xff, 0xff, 0xff, 0x98, 0xff, 0xff, 0xff, 0x93, 0xff, 0xff, 0xff, 0x8f,
+    0xff, 0xff, 0xff, 0x88, 0xff, 0xff, 0xff, 0x84,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff,
+    0xfc, 0xfb, 0xfb, 0xff, 0xf9, 0xf8, 0xf8, 0xff, 0xf6, 0xf5, 0xf4, 0xff,
+    0xf3, 0xf1, 0xf1, 0xff, 0xf0, 0xed, 0xed, 0xff, 0xef, 0xec, 0xeb, 0xff,
+    0xee, 0xeb, 0xeb, 0xff, 0xf0, 0xee, 0xee, 0xff, 0xea, 0xe7, 0xe7, 0xff,
+    0xec, 0xe9, 0xe9, 0xff, 0xf5, 0xf2, 0xf0, 0xff, 0xfe, 0xfb, 0xf6, 0xff,
+    0xfe, 0xfb, 0xf5, 0xff, 0xfe, 0xfa, 0xf4, 0xff, 0xfe, 0xfb, 0xf6, 0xeb,
+    0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0xab, 0xff, 0xff, 0xff, 0xa4,
+    0xff, 0xff, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xff, 0xff, 0x97,
+    0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0x8c, 0xff, 0xff, 0xff, 0x87,
+    0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 0x7c,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xfd, 0xfc, 0xfc, 0xff, 0xfb, 0xfb, 0xfa, 0xff,
+    0xf8, 0xf6, 0xf6, 0xff, 0xf4, 0xf3, 0xf2, 0xff, 0xf2, 0xf0, 0xf0, 0xff,
+    0xef, 0xec, 0xeb, 0xff, 0xef, 0xec, 0xeb, 0xff, 0xeb, 0xe7, 0xe6, 0xff,
+    0xea, 0xe6, 0xe5, 0xff, 0xeb, 0xe8, 0xe8, 0xff, 0xe9, 0xe6, 0xe7, 0xff,
+    0xe5, 0xe2, 0xe2, 0xff, 0xed, 0xeb, 0xeb, 0xff, 0xf7, 0xf5, 0xf2, 0xff,
+    0xfe, 0xfa, 0xf5, 0xff, 0xfe, 0xfb, 0xf5, 0xf8, 0xff, 0xff, 0xff, 0xac,
+    0xff, 0xff, 0xff, 0xa8, 0xff, 0xff, 0xff, 0xa3, 0xff, 0xff, 0xff, 0x9f,
+    0xff, 0xff, 0xff, 0x98, 0xff, 0xff, 0xff, 0x94, 0xff, 0xff, 0xff, 0x8f,
+    0xff, 0xff, 0xff, 0x8b, 0xff, 0xff, 0xff, 0x84, 0xff, 0xff, 0xff, 0x80,
+    0xff, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0x77,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc, 0xfc, 0xfc, 0xff, 0xf8, 0xf7, 0xf7, 0xff, 0xf6, 0xf5, 0xf4, 0xff,
+    0xf3, 0xf1, 0xf0, 0xff, 0xf1, 0xef, 0xef, 0xff, 0xef, 0xed, 0xec, 0xff,
+    0xec, 0xe8, 0xe7, 0xff, 0xe9, 0xe6, 0xe6, 0xff, 0xec, 0xe9, 0xe9, 0xff,
+    0xe4, 0xe0, 0xdf, 0xff, 0xec, 0xe9, 0xe9, 0xff, 0xea, 0xe6, 0xe6, 0xff,
+    0xe6, 0xe2, 0xe2, 0xff, 0xea, 0xe8, 0xe8, 0xff, 0xec, 0xe8, 0xe7, 0xff,
+    0xfc, 0xf9, 0xf4, 0xff, 0xfe, 0xfd, 0xfa, 0xc3, 0xff, 0xff, 0xff, 0xa7,
+    0xff, 0xff, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0x97,
+    0xff, 0xff, 0xff, 0x93, 0xff, 0xff, 0xff, 0x8c, 0xfe, 0xfc, 0xf9, 0xa3,
+    0xfc, 0xfb, 0xf5, 0xb0, 0xfc, 0xf9, 0xf1, 0xbb, 0xfb, 0xf8, 0xf1, 0xb8,
+    0xfb, 0xf8, 0xef, 0xb4, 0xfb, 0xf9, 0xf2, 0xa4,
+    0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xfc, 0xfc, 0xfc, 0xff,
+    0xf8, 0xf7, 0xf7, 0xff, 0xf5, 0xf3, 0xf3, 0xff, 0xf1, 0xef, 0xef, 0xff,
+    0xef, 0xec, 0xeb, 0xff, 0xeb, 0xe7, 0xe7, 0xff, 0xea, 0xe7, 0xe6, 0xff,
+    0xe7, 0xe3, 0xe2, 0xff, 0xe4, 0xdf, 0xde, 0xff, 0xe6, 0xe2, 0xe2, 0xff,
+    0xe4, 0xe1, 0xe0, 0xff, 0xe6, 0xe3, 0xe2, 0xff, 0xe0, 0xdc, 0xdc, 0xff,
+    0xe3, 0xdf, 0xdf, 0xff, 0xe8, 0xe5, 0xe5, 0xff, 0xe4, 0xe1, 0xe2, 0xff,
+    0xec, 0xe8, 0xe5, 0xf8, 0xff, 0xff, 0xff, 0xa4, 0xff, 0xff, 0xff, 0xa0,
+    0xff, 0xff, 0xff, 0x9b, 0xff, 0xff, 0xff, 0x97, 0xff, 0xff, 0xff, 0x90,
+    0xfe, 0xfe, 0xfb, 0x9c, 0xfc, 0xf9, 0xef, 0xf7, 0xfc, 0xf8, 0xed, 0xff,
+    0xfc, 0xf7, 0xeb, 0xff, 0xfb, 0xf7, 0xeb, 0xff, 0xfa, 0xf6, 0xe9, 0xff,
+    0xfa, 0xf5, 0xe7, 0xff, 0xf8, 0xf4, 0xe5, 0xff,
+    0xfd, 0xfd, 0xfd, 0xff, 0xfa, 0xfa, 0xfa, 0xff, 0xfc, 0xfc, 0xfc, 0xff,
+    0xf8, 0xf7, 0xf7, 0xff, 0xf1, 0xef, 0xee, 0xff, 0xed, 0xea, 0xe9, 0xff,
+    0xea, 0xe6, 0xe5, 0xff, 0xe7, 0xe3, 0xe2, 0xff, 0xe4, 0xe0, 0xdf, 0xff,
+    0xe3, 0xde, 0xdd, 0xff, 0xe2, 0xde, 0xdd, 0xff, 0xe5, 0xe1, 0xe1, 0xff,
+    0xde, 0xda, 0xda, 0xff, 0xe0, 0xdd, 0xdc, 0xff, 0xe1, 0xdd, 0xdd, 0xff,
+    0xe3, 0xe0, 0xdf, 0xff, 0xe4, 0xe1, 0xe1, 0xff, 0xe3, 0xe0, 0xe0, 0xff,
+    0xec, 0xea, 0xea, 0xe8, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x98,
+    0xff, 0xff, 0xff, 0x93, 0xff, 0xff, 0xff, 0x8f, 0xfe, 0xfe, 0xfe, 0x8c,
+    0xfd, 0xfb, 0xef, 0xff, 0xfd, 0xfb, 0xed, 0xff, 0xfd, 0xf8, 0xec, 0xff,
+    0xfc, 0xf8, 0xeb, 0xff, 0xfc, 0xf7, 0xea, 0xff, 0xfb, 0xf6, 0xe9, 0xff,
+    0xfa, 0xf6, 0xe7, 0xff, 0xfa, 0xf5, 0xe5, 0xff,
+    0xfa, 0xfa, 0xfa, 0xff, 0xf8, 0xf7, 0xf8, 0xff, 0xf6, 0xf6, 0xf6, 0xff,
+    0xf1, 0xf0, 0xf0, 0xff, 0xed, 0xec, 0xec, 0xff, 0xe9, 0xe6, 0xe5, 0xff,
+    0xe6, 0xe1, 0xe0, 0xff, 0xe2, 0xde, 0xdc, 0xff, 0xe0, 0xda, 0xd8, 0xff,
+    0xdd, 0xd7, 0xd5, 0xff, 0xde, 0xda, 0xd9, 0xff, 0xde, 0xda, 0xda, 0xff,
+    0xdc, 0xd7, 0xd8, 0xff, 0xdf, 0xdc, 0xdc, 0xff, 0xe5, 0xe3, 0xe4, 0xff,
+    0xe1, 0xde, 0xde, 0xff, 0xde, 0xdc, 0xdc, 0xff, 0xe9, 0xe7, 0xe8, 0xff,
+    0xe8, 0xe7, 0xe6, 0xe7, 0xff, 0xff, 0xff, 0x97, 0xff, 0xff, 0xff, 0x93,
+    0xff, 0xff, 0xff, 0x8c, 0xff, 0xff, 0xff, 0x88, 0xfe, 0xfe, 0xfa, 0x9b,
+    0xfc, 0xfb, 0xee, 0xff, 0xfc, 0xfa, 0xed, 0xff, 0xfb, 0xfa, 0xeb, 0xff,
+    0xfb, 0xf8, 0xeb, 0xff, 0xfb, 0xf7, 0xea, 0xff, 0xfa, 0xf6, 0xe8, 0xff,
+    0xf8, 0xf6, 0xe6, 0xff, 0xf7, 0xf5, 0xe3, 0xff,
+    0xf9, 0xf9, 0xf9, 0xff, 0xf7, 0xf6, 0xf7, 0xff, 0xf5, 0xf4, 0xf4, 0xff,
+    0xf0, 0xee, 0xef, 0xff, 0xe8, 0xe7, 0xe7, 0xff, 0xe7, 0xe4, 0xe3, 0xff,
+    0xe2, 0xdd, 0xdb, 0xff, 0xdf, 0xd9, 0xd7, 0xff, 0xdc, 0xd6, 0xd4, 0xff,
+    0xd8, 0xd2, 0xcf, 0xff, 0xd8, 0xd2, 0xd1, 0xff, 0xe0, 0xdc, 0xdc, 0xff,
+    0xdb, 0xd7, 0xd7, 0xff, 0xdb, 0xd7, 0xd7, 0xff, 0xe7, 0xe5, 0xe5, 0xff,
+    0xde, 0xda, 0xdb, 0xff, 0xdb, 0xd8, 0xd9, 0xff, 0xe0, 0xde, 0xde, 0xff,
+    0xed, 0xeb, 0xec, 0xe4, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0x8b,
+    0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0x80, 0xfe, 0xfe, 0xfa, 0x94,
+    0xfd, 0xfb, 0xee, 0xff, 0xfd, 0xfb, 0xed, 0xff, 0xfc, 0xfb, 0xec, 0xff,
+    0xfc, 0xfa, 0xea, 0xff, 0xf8, 0xf7, 0xe9, 0xff, 0xf8, 0xf6, 0xe7, 0xff,
+    0xf7, 0xf7, 0xe5, 0xff, 0xf7, 0xf5, 0xe3, 0xff,
+    0xf9, 0xf9, 0xf9, 0xff, 0xf5, 0xf4, 0xf4, 0xff, 0xf2, 0xf2, 0xf2, 0xff,
+    0xe9, 0xe6, 0xe6, 0xff, 0xe9, 0xe7, 0xe6, 0xff, 0xe9, 0xe7, 0xe7, 0xff,
+    0xe0, 0xdb, 0xda, 0xff, 0xda, 0xd3, 0xd2, 0xff, 0xd6, 0xd0, 0xce, 0xff,
+    0xd4, 0xcd, 0xcb, 0xff, 0xd0, 0xc8, 0xc7, 0xff, 0xd7, 0xd2, 0xd1, 0xff,
+    0xd8, 0xd3, 0xd3, 0xff, 0xd4, 0xd1, 0xd1, 0xff, 0xe6, 0xe3, 0xe2, 0xff,
+    0xdd, 0xda, 0xda, 0xff, 0xe3, 0xe1, 0xe1, 0xff, 0xe0, 0xde, 0xde, 0xff,
+    0xe7, 0xe5, 0xe5, 0xe3, 0xff, 0xff, 0xff, 0x88, 0xff, 0xff, 0xff, 0x84,
+    0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7b, 0xfe, 0xfe, 0xfb, 0x88,
+    0xfc, 0xfc, 0xef, 0xff, 0xfb, 0xfc, 0xee, 0xff, 0xfb, 0xfa, 0xeb, 0xff,
+    0xfa, 0xfa, 0xea, 0xff, 0xf9, 0xf9, 0xe7, 0xff, 0xf7, 0xf7, 0xe6, 0xff,
+    0xf6, 0xf5, 0xe5, 0xff, 0xf7, 0xf5, 0xe3, 0xff,
+    0xf8, 0xf7, 0xf7, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xf2, 0xf2, 0xf1, 0xff,
+    0xe8, 0xe6, 0xe6, 0xff, 0xe4, 0xe1, 0xe1, 0xff, 0xdd, 0xda, 0xda, 0xff,
+    0xe7, 0xe3, 0xe3, 0xff, 0xd6, 0xcf, 0xcd, 0xff, 0xd4, 0xcc, 0xca, 0xff,
+    0xcf, 0xc7, 0xc5, 0xff, 0xcc, 0xc3, 0xc1, 0xff, 0xd3, 0xce, 0xcc, 0xff,
+    0xd9, 0xd4, 0xd4, 0xff, 0xda, 0xd6, 0xd6, 0xff, 0xe3, 0xe1, 0xe0, 0xff,
+    0xdb, 0xd8, 0xd7, 0xff, 0xe4, 0xe2, 0xe2, 0xff, 0xe1, 0xde, 0xdf, 0xff,
+    0xe3, 0xe1, 0xe1, 0xf0, 0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 0x7c,
+    0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x73, 0xff, 0xff, 0xff, 0x6f,
+    0xfb, 0xfc, 0xed, 0xff, 0xfa, 0xfb, 0xed, 0xff, 0xfb, 0xfa, 0xeb, 0xff,
+    0xfa, 0xf9, 0xe9, 0xff, 0xfa, 0xf9, 0xe7, 0xff, 0xf8, 0xf9, 0xe7, 0xff,
+    0xf7, 0xf5, 0xe3, 0xff, 0xf7, 0xf4, 0xe1, 0xff,
+    0xf2, 0xf2, 0xf2, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf0, 0xf0, 0xef, 0xff,
+    0xe5, 0xe3, 0xe3, 0xff, 0xdd, 0xd9, 0xd9, 0xff, 0xdf, 0xdc, 0xdc, 0xff,
+    0xe6, 0xe3, 0xe3, 0xff, 0xe1, 0xda, 0xdb, 0xff, 0xd2, 0xca, 0xc7, 0xff,
+    0xca, 0xc2, 0xc0, 0xff, 0xc7, 0xbe, 0xbc, 0xff, 0xc8, 0xc2, 0xc0, 0xff,
+    0xd2, 0xcf, 0xce, 0xff, 0xd5, 0xcf, 0xd0, 0xff, 0xd5, 0xd1, 0xd1, 0xff,
+    0xda, 0xd6, 0xd7, 0xff, 0xde, 0xdc, 0xdd, 0xff, 0xde, 0xdd, 0xdc, 0xff,
+    0xe2, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0x77,
+    0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x6c, 0xff, 0xff, 0xff, 0x67,
+    0xfa, 0xfd, 0xed, 0xf8, 0xf9, 0xfc, 0xeb, 0xff, 0xf9, 0xfb, 0xea, 0xff,
+    0xf8, 0xf9, 0xe8, 0xff, 0xf7, 0xf9, 0xe6, 0xff, 0xf7, 0xf8, 0xe6, 0xff,
+    0xf6, 0xf5, 0xe4, 0xff, 0xf6, 0xf4, 0xe1, 0xff,
+    0xe7, 0xe7, 0xe7, 0xff, 0xe3, 0xe4, 0xe3, 0xff, 0xe1, 0xe2, 0xe2, 0xff,
+    0xe4, 0xe4, 0xe4, 0xff, 0xd7, 0xd6, 0xd5, 0xff, 0xd5, 0xd4, 0xd4, 0xff,
+    0xdd, 0xdc, 0xdc, 0xff, 0xdc, 0xda, 0xda, 0xff, 0xd0, 0xc9, 0xc9, 0xff,
+    0xc9, 0xbf, 0xbe, 0xff, 0xc2, 0xba, 0xb8, 0xff, 0xc0, 0xb8, 0xb6, 0xff,
+    0xcc, 0xc7, 0xc7, 0xff, 0xd2, 0xcd, 0xcd, 0xff, 0xd2, 0xce, 0xcf, 0xff,
+    0xd1, 0xcc, 0xcd, 0xff, 0xdf, 0xde, 0xde, 0xff, 0xe7, 0xe6, 0xe6, 0xff,
+    0xe4, 0xe3, 0xe3, 0xff, 0xfd, 0xfd, 0xfd, 0x78, 0xff, 0xff, 0xff, 0x70,
+    0xff, 0xff, 0xff, 0x6b, 0xff, 0xff, 0xff, 0x67, 0xff, 0xff, 0xff, 0x60,
+    0xfc, 0xfe, 0xef, 0xcf, 0xf9, 0xfc, 0xec, 0xff, 0xfa, 0xfa, 0xe9, 0xff,
+    0xf8, 0xfa, 0xe8, 0xff, 0xf7, 0xf7, 0xe5, 0xff, 0xf6, 0xf7, 0xe5, 0xff,
+    0xf5, 0xf5, 0xe3, 0xff, 0xf6, 0xf4, 0xe0, 0xff,
+    0xdc, 0xdd, 0xdd, 0xff, 0xdb, 0xdc, 0xdc, 0xff, 0xd3, 0xd4, 0xd4, 0xff,
+    0xd8, 0xd8, 0xd8, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff,
+    0xca, 0xcb, 0xcb, 0xff, 0xcc, 0xcc, 0xcd, 0xff, 0xcb, 0xcb, 0xcb, 0xff,
+    0xc6, 0xc1, 0xc1, 0xff, 0xc0, 0xbc, 0xba, 0xff, 0xba, 0xb1, 0xaf, 0xff,
+    0xc5, 0xbf, 0xc0, 0xff, 0xd6, 0xd2, 0xd2, 0xff, 0xc4, 0xbf, 0xbf, 0xff,
+    0xd3, 0xce, 0xcd, 0xff, 0xd3, 0xd1, 0xd2, 0xff, 0xe3, 0xe2, 0xe2, 0xff,
+    0xe6, 0xe4, 0xe4, 0xff, 0xee, 0xee, 0xed, 0x9b, 0xff, 0xff, 0xff, 0x68,
+    0xff, 0xff, 0xff, 0x63, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xff, 0x5b,
+    0xfd, 0xfe, 0xf6, 0x80, 0xf9, 0xfc, 0xeb, 0xff, 0xf7, 0xfa, 0xeb, 0xff,
+    0xf7, 0xf9, 0xe9, 0xff, 0xf6, 0xf8, 0xe8, 0xff, 0xf6, 0xf7, 0xe5, 0xff,
+    0xf5, 0xf4, 0xe4, 0xff, 0xf5, 0xf4, 0xe3, 0xff,
+    0xd7, 0xd8, 0xd8, 0xff, 0xd4, 0xd5, 0xd4, 0xff, 0xd2, 0xd3, 0xd3, 0xff,
+    0xcf, 0xd0, 0xd0, 0xff, 0xcc, 0xce, 0xcd, 0xff, 0xc9, 0xca, 0xca, 0xff,
+    0xc5, 0xc6, 0xc6, 0xff, 0xc3, 0xc4, 0xc4, 0xff, 0xbf, 0xbf, 0xbd, 0xff,
+    0xbe, 0xbf, 0xbf, 0xff, 0xba, 0xba, 0xba, 0xff, 0xb4, 0xb1, 0xb1, 0xff,
+    0xbb, 0xba, 0xb9, 0xff, 0xc9, 0xc8, 0xc7, 0xff, 0xe2, 0xde, 0xde, 0xff,
+    0xc1, 0xbd, 0xbd, 0xff, 0xd6, 0xd5, 0xd5, 0xff, 0xde, 0xdd, 0xdc, 0xff,
+    0xdc, 0xda, 0xda, 0xff, 0xe6, 0xe5, 0xe5, 0xcf, 0xff, 0xff, 0xff, 0x63,
+    0xff, 0xff, 0xff, 0x5c, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x53,
+    0xff, 0xff, 0xff, 0x4f, 0xf9, 0xfc, 0xeb, 0xfb, 0xf6, 0xf9, 0xeb, 0xff,
+    0xf6, 0xf9, 0xea, 0xff, 0xf6, 0xf9, 0xe8, 0xff, 0xf5, 0xf5, 0xe4, 0xff,
+    0xf6, 0xf6, 0xe4, 0xff, 0xf5, 0xf4, 0xe2, 0xff,
+    0xd3, 0xd4, 0xd4, 0xff, 0xcc, 0xcd, 0xcd, 0xff, 0xce, 0xcf, 0xcf, 0xff,
+    0xc9, 0xcb, 0xcb, 0xff, 0xc6, 0xc7, 0xc7, 0xff, 0xc3, 0xc5, 0xc4, 0xff,
+    0xc0, 0xc1, 0xc1, 0xff, 0xbb, 0xbd, 0xbc, 0xff, 0xb7, 0xb9, 0xb8, 0xff,
+    0xb6, 0xb7, 0xb7, 0xff, 0xb4, 0xb7, 0xb6, 0xff, 0xaf, 0xaf, 0xaf, 0xff,
+    0xb0, 0xb2, 0xb2, 0xff, 0xb5, 0xb5, 0xb5, 0xff, 0xc1, 0xc0, 0xc0, 0xff,
+    0xc9, 0xc6, 0xc7, 0xff, 0xb3, 0xad, 0xae, 0xff, 0xcf, 0xcd, 0xce, 0xff,
+    0xe3, 0xe2, 0xe2, 0xff, 0xe4, 0xe2, 0xe2, 0xff, 0xfd, 0xfd, 0xfd, 0x60,
+    0xff, 0xff, 0xff, 0x57, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x4c,
+    0xff, 0xff, 0xff, 0x47, 0xfa, 0xfb, 0xef, 0xa8, 0xf8, 0xfc, 0xed, 0xff,
+    0xf7, 0xf9, 0xea, 0xff, 0xf6, 0xf7, 0xe7, 0xff, 0xf6, 0xf4, 0xe7, 0xff,
+    0xf5, 0xf4, 0xe5, 0xff, 0xf4, 0xf3, 0xe3, 0xff,
+    0xce, 0xcf, 0xcf, 0xff, 0xc8, 0xc9, 0xc9, 0xff, 0xc6, 0xc8, 0xc8, 0xff,
+    0xc4, 0xc6, 0xc6, 0xff, 0xc2, 0xc3, 0xc3, 0xff, 0xba, 0xbd, 0xbc, 0xff,
+    0xbc, 0xbe, 0xbe, 0xff, 0xb5, 0xb8, 0xb7, 0xff, 0xb4, 0xb6, 0xb5, 0xff,
+    0xb0, 0xb2, 0xb2, 0xff, 0xaf, 0xb1, 0xb0, 0xff, 0xaa, 0xad, 0xac, 0xff,
+    0xaa, 0xad, 0xac, 0xff, 0xa7, 0xa9, 0xa8, 0xff, 0xa4, 0xa5, 0xa5, 0xff,
+    0xa7, 0xa8, 0xa8, 0xff, 0xc4, 0xc3, 0xc3, 0xff, 0xb8, 0xb7, 0xb7, 0xff,
+    0xc0, 0xbf, 0xbe, 0xff, 0xd0, 0xce, 0xce, 0xff, 0xe3, 0xe2, 0xe2, 0x94,
+    0xff, 0xff, 0xff, 0x4f, 0xff, 0xff, 0xff, 0x4b, 0xff, 0xff, 0xff, 0x44,
+    0xff, 0xff, 0xff, 0x40, 0xed, 0xe7, 0xe6, 0x48, 0xba, 0xad, 0xa1, 0xff,
+    0xd6, 0xcf, 0xc1, 0xff, 0xf4, 0xf3, 0xe4, 0xff, 0xf5, 0xf4, 0xe5, 0xff,
+    0xf5, 0xf3, 0xe5, 0xff, 0xf5, 0xf5, 0xe5, 0xff,
+    0xc7, 0xc9, 0xc8, 0xff, 0xc5, 0xc6, 0xc6, 0xff, 0xc1, 0xc2, 0xc2, 0xff,
+    0xbd, 0xbe, 0xbe, 0xff, 0xba, 0xbc, 0xbb, 0xff, 0xb3, 0xb4, 0xb4, 0xff,
+    0xb2, 0xb5, 0xb4, 0xff, 0xb1, 0xb4, 0xb3, 0xff, 0xac, 0xaf, 0xae, 0xff,
+    0xa8, 0xaa, 0xa9, 0xff, 0xa8, 0xab, 0xaa, 0xff, 0xa1, 0xa4, 0xa3, 0xff,
+    0xa1, 0xa4, 0xa3, 0xff, 0xa3, 0xa5, 0xa4, 0xff, 0x9f, 0xa1, 0xa0, 0xff,
+    0x99, 0x9b, 0x9a, 0xff, 0x98, 0x9a, 0x9a, 0xff, 0x97, 0x9a, 0x99, 0xff,
+    0xa0, 0xa0, 0xa0, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x9f, 0xa0, 0x9f, 0xe8,
+    0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x44, 0xff, 0xff, 0xff, 0x3f,
+    0xff, 0xff, 0xff, 0x3b, 0xff, 0xff, 0xff, 0x34, 0xbb, 0xa7, 0xa5, 0xd8,
+    0xb9, 0xa9, 0xa6, 0xff, 0xb9, 0xac, 0xa0, 0xff, 0xf8, 0xfa, 0xe7, 0xff,
+    0xf5, 0xf4, 0xe6, 0xff, 0xf4, 0xf3, 0xe4, 0xff,
+    0xc0, 0xc0, 0xbf, 0xff, 0xbb, 0xbb, 0xbb, 0xff, 0xbb, 0xbc, 0xbb, 0xff,
+    0xb6, 0xb6, 0xb6, 0xff, 0xb0, 0xb1, 0xb1, 0xff, 0xad, 0xad, 0xad, 0xff,
+    0xa8, 0xa7, 0xa7, 0xff, 0xa8, 0xa9, 0xa9, 0xff, 0xa5, 0xa6, 0xa6, 0xff,
+    0xa4, 0xa6, 0xa5, 0xff, 0xa3, 0xa6, 0xa6, 0xff, 0x9b, 0x9d, 0x9c, 0xff,
+    0x96, 0x99, 0x99, 0xff, 0x9b, 0x9d, 0x9d, 0xff, 0x97, 0x99, 0x98, 0xff,
+    0x8e, 0x91, 0x91, 0xff, 0x98, 0x9b, 0x9b, 0xff, 0x89, 0x8c, 0x8b, 0xff,
+    0x87, 0x8b, 0x89, 0xff, 0x84, 0x7f, 0x81, 0xff, 0x82, 0x82, 0x83, 0xff,
+    0xc0, 0xbe, 0xbf, 0x67, 0xff, 0xff, 0xff, 0x3c, 0xff, 0xff, 0xff, 0x37,
+    0xff, 0xff, 0xff, 0x33, 0xff, 0xff, 0xff, 0x2f, 0xc6, 0xbb, 0xb9, 0x50,
+    0xac, 0x9c, 0x99, 0xff, 0xa8, 0x98, 0x91, 0xff, 0xbd, 0xb0, 0xa5, 0xff,
+    0xf6, 0xf5, 0xe6, 0xff, 0xf4, 0xf3, 0xe4, 0xff,
+    0xbb, 0xbb, 0xba, 0xff, 0xb3, 0xb3, 0xb3, 0xff, 0xb3, 0xb4, 0xb4, 0xff,
+    0xae, 0xaf, 0xae, 0xff, 0xad, 0xae, 0xae, 0xff, 0xb2, 0xb4, 0xb4, 0xfc,
+    0xa8, 0xa8, 0xa9, 0xf3, 0xa7, 0xa7, 0xa7, 0xf3, 0x9e, 0x9f, 0x9d, 0xfc,
+    0x9b, 0x9c, 0x9a, 0xff, 0x9c, 0x9e, 0x9e, 0xff, 0x94, 0x96, 0x94, 0xff,
+    0x90, 0x90, 0x90, 0xff, 0x96, 0x98, 0x99, 0xff, 0x8d, 0x8f, 0x8e, 0xff,
+    0x83, 0x83, 0x84, 0xff, 0x8f, 0x92, 0x91, 0xff, 0x83, 0x85, 0x85, 0xff,
+    0x87, 0x87, 0x87, 0xff, 0x7c, 0x7d, 0x7d, 0xff, 0x78, 0x74, 0x72, 0xff,
+    0x95, 0x93, 0x92, 0x97, 0xff, 0xff, 0xff, 0x34, 0xff, 0xff, 0xff, 0x30,
+    0xff, 0xff, 0xff, 0x2c, 0xff, 0xff, 0xff, 0x27, 0xff, 0xff, 0xff, 0x23,
+    0xa2, 0x93, 0x94, 0xe7, 0x96, 0x83, 0x81, 0xff, 0xa8, 0x91, 0x8b, 0xff,
+    0xc4, 0xbc, 0xb2, 0xff, 0xf5, 0xf5, 0xe4, 0xff,
+    0xb7, 0xb9, 0xb8, 0xff, 0xaf, 0xaf, 0xae, 0xff, 0xaf, 0xaf, 0xaf, 0xff,
+    0xac, 0xad, 0xae, 0xff, 0xa8, 0xaa, 0xa9, 0xff, 0xae, 0xaf, 0xaf, 0xec,
+    0xc6, 0xc7, 0xc7, 0xb4, 0xc5, 0xc6, 0xc6, 0xb3, 0x9a, 0x99, 0x99, 0xeb,
+    0x91, 0x91, 0x90, 0xff, 0x94, 0x95, 0x95, 0xff, 0x95, 0x96, 0x96, 0xff,
+    0x8c, 0x8e, 0x8e, 0xff, 0x86, 0x88, 0x87, 0xff, 0x83, 0x82, 0x82, 0xff,
+    0x80, 0x81, 0x81, 0xff, 0x82, 0x84, 0x84, 0xff, 0x7b, 0x79, 0x7a, 0xff,
+    0x73, 0x74, 0x73, 0xff, 0x79, 0x7a, 0x7b, 0xff, 0x75, 0x73, 0x72, 0xff,
+    0x6f, 0x70, 0x6e, 0xfc, 0xe8, 0xe7, 0xe7, 0x37, 0xff, 0xff, 0xff, 0x2b,
+    0xff, 0xff, 0xff, 0x24, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x1c,
+    0x70, 0x6e, 0x6d, 0xeb, 0x6c, 0x69, 0x66, 0xff, 0x83, 0x78, 0x7b, 0xff,
+    0x83, 0x7f, 0x78, 0xff, 0xdc, 0xd5, 0xcd, 0xff,
+    0xb3, 0xb5, 0xb4, 0xff, 0xa9, 0xa9, 0xaa, 0xff, 0xa7, 0xa8, 0xa7, 0xff,
+    0xa7, 0xa8, 0xa7, 0xff, 0xa6, 0xa8, 0xa8, 0xff, 0xab, 0xac, 0xab, 0xe3,
+    0xdb, 0xdc, 0xdc, 0x97, 0xd9, 0xda, 0xda, 0x93, 0x99, 0x99, 0x98, 0xe0,
+    0x94, 0x95, 0x95, 0xff, 0x8e, 0x8f, 0x8e, 0xff, 0x8f, 0x93, 0x92, 0xff,
+    0x88, 0x8a, 0x89, 0xff, 0x79, 0x78, 0x78, 0xff, 0x80, 0x82, 0x82, 0xff,
+    0x7f, 0x81, 0x81, 0xff, 0x7f, 0x7d, 0x7e, 0xff, 0x76, 0x72, 0x72, 0xff,
+    0x70, 0x70, 0x70, 0xff, 0x73, 0x73, 0x73, 0xff, 0x67, 0x66, 0x64, 0xff,
+    0x6b, 0x6b, 0x6a, 0xff, 0x70, 0x73, 0x72, 0xd4, 0xff, 0xff, 0xff, 0x23,
+    0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0x1b, 0x79, 0x74, 0x72, 0x67,
+    0x63, 0x61, 0x61, 0xff, 0x63, 0x62, 0x60, 0xff, 0x5e, 0x5c, 0x5a, 0xff,
+    0x61, 0x5f, 0x5c, 0xff, 0x6b, 0x63, 0x5e, 0xff,
+    0xae, 0xaf, 0xaf, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0x9c, 0x9b, 0x99, 0xff,
+    0x9d, 0x9c, 0x9b, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x9c, 0x9c, 0x9d, 0xf7,
+    0xaa, 0xac, 0xac, 0xd4, 0xa5, 0xa7, 0xa6, 0xd3, 0x98, 0x9a, 0x9a, 0xf4,
+    0x8d, 0x8e, 0x8e, 0xff, 0x85, 0x85, 0x85, 0xff, 0x85, 0x86, 0x86, 0xff,
+    0x82, 0x84, 0x84, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x7e, 0x82, 0x81, 0xff,
+    0x79, 0x7b, 0x7b, 0xff, 0x79, 0x7b, 0x7b, 0xff, 0x72, 0x73, 0x73, 0xff,
+    0x70, 0x6e, 0x6e, 0xff, 0x6d, 0x6d, 0x6d, 0xff, 0x61, 0x5f, 0x5d, 0xff,
+    0x5d, 0x5d, 0x5b, 0xff, 0x64, 0x60, 0x61, 0xff, 0x5e, 0x5d, 0x5d, 0xec,
+    0x6a, 0x69, 0x67, 0xa0, 0x67, 0x66, 0x64, 0xbc, 0x59, 0x56, 0x55, 0xff,
+    0x54, 0x51, 0x4e, 0xff, 0x56, 0x52, 0x51, 0xff, 0x55, 0x52, 0x4f, 0xff,
+    0x52, 0x4e, 0x49, 0xff, 0x54, 0x54, 0x52, 0xff,
+    0xa9, 0xac, 0xab, 0xff, 0xa1, 0xa0, 0xa0, 0xff, 0x9a, 0x99, 0x98, 0xff,
+    0x97, 0x97, 0x96, 0xff, 0x95, 0x94, 0x94, 0xff, 0x8e, 0x8c, 0x8c, 0xff,
+    0x95, 0x98, 0x97, 0xfc, 0x90, 0x91, 0x91, 0xfc, 0x95, 0x96, 0x96, 0xff,
+    0x86, 0x86, 0x86, 0xff, 0x81, 0x82, 0x80, 0xff, 0x7d, 0x7e, 0x7b, 0xff,
+    0x78, 0x79, 0x78, 0xff, 0x71, 0x70, 0x6e, 0xff, 0x72, 0x71, 0x70, 0xff,
+    0x72, 0x73, 0x72, 0xff, 0x70, 0x70, 0x6e, 0xff, 0x6d, 0x6a, 0x6a, 0xff,
+    0x64, 0x64, 0x63, 0xff, 0x69, 0x68, 0x67, 0xff, 0x61, 0x5f, 0x5e, 0xff,
+    0x59, 0x57, 0x57, 0xff, 0x5f, 0x5f, 0x5e, 0xff, 0x55, 0x55, 0x53, 0xff,
+    0x57, 0x58, 0x57, 0xff, 0x51, 0x53, 0x50, 0xff, 0x54, 0x51, 0x51, 0xff,
+    0x4c, 0x4b, 0x4a, 0xff, 0x49, 0x4a, 0x47, 0xff, 0x4f, 0x51, 0x4e, 0xff,
+    0x4f, 0x4d, 0x49, 0xff, 0x4c, 0x4b, 0x46, 0xff,
+    0xa7, 0xaa, 0xaa, 0xff, 0x99, 0x98, 0x98, 0xff, 0x95, 0x92, 0x92, 0xff,
+    0x94, 0x93, 0x92, 0xff, 0x8a, 0x87, 0x84, 0xff, 0x85, 0x80, 0x7f, 0xff,
+    0x8d, 0x90, 0x8f, 0xff, 0x85, 0x85, 0x85, 0xff, 0x8e, 0x8e, 0x8e, 0xff,
+    0x80, 0x80, 0x81, 0xff, 0x7c, 0x7d, 0x7b, 0xff, 0x79, 0x79, 0x78, 0xff,
+    0x78, 0x79, 0x78, 0xff, 0x6e, 0x6c, 0x6b, 0xff, 0x68, 0x66, 0x66, 0xff,
+    0x69, 0x6a, 0x67, 0xff, 0x60, 0x5e, 0x5d, 0xff, 0x5b, 0x58, 0x57, 0xff,
+    0x58, 0x56, 0x55, 0xff, 0x61, 0x5e, 0x5d, 0xff, 0x54, 0x53, 0x52, 0xff,
+    0x60, 0x5d, 0x5c, 0xff, 0x5b, 0x5b, 0x5a, 0xff, 0x59, 0x5a, 0x58, 0xff,
+    0x48, 0x43, 0x42, 0xff, 0x44, 0x40, 0x40, 0xff, 0x48, 0x46, 0x44, 0xff,
+    0x4a, 0x46, 0x46, 0xff, 0x4c, 0x4f, 0x4c, 0xff, 0x49, 0x4a, 0x48, 0xff,
+    0x47, 0x46, 0x41, 0xff, 0x44, 0x43, 0x3f, 0xff,
+    0xa2, 0xa4, 0xa4, 0xff, 0x96, 0x95, 0x96, 0xff, 0x8e, 0x8c, 0x8a, 0xff,
+    0x89, 0x86, 0x86, 0xff, 0x82, 0x7c, 0x7c, 0xff, 0x83, 0x80, 0x7f, 0xff,
+    0x82, 0x82, 0x80, 0xff, 0x82, 0x83, 0x81, 0xff, 0x82, 0x85, 0x85, 0xff,
+    0x7c, 0x7c, 0x7c, 0xff, 0x77, 0x78, 0x75, 0xff, 0x75, 0x77, 0x76, 0xff,
+    0x71, 0x72, 0x70, 0xff, 0x68, 0x66, 0x65, 0xff, 0x62, 0x60, 0x5f, 0xff,
+    0x5f, 0x5e, 0x5c, 0xff, 0x5a, 0x52, 0x4f, 0xff, 0x5b, 0x53, 0x4f, 0xff,
+    0x50, 0x49, 0x49, 0xff, 0x5c, 0x58, 0x57, 0xff, 0x50, 0x4b, 0x49, 0xff,
+    0x57, 0x54, 0x53, 0xff, 0x4f, 0x4f, 0x4e, 0xff, 0x53, 0x57, 0x55, 0xff,
+    0x48, 0x45, 0x44, 0xff, 0x3c, 0x33, 0x33, 0xff, 0x49, 0x45, 0x43, 0xff,
+    0x41, 0x3f, 0x3d, 0xff, 0x49, 0x46, 0x44, 0xff, 0x4a, 0x48, 0x47, 0xff,
+    0x3f, 0x3c, 0x3a, 0xff, 0x43, 0x41, 0x3e, 0xff,
+    0x99, 0x9c, 0x9a, 0xff, 0x90, 0x8e, 0x8f, 0xff, 0x8c, 0x8b, 0x89, 0xff,
+    0x81, 0x7c, 0x7c, 0xff, 0x7d, 0x78, 0x78, 0xff, 0x82, 0x82, 0x80, 0xff,
+    0x77, 0x74, 0x73, 0xff, 0x75, 0x73, 0x73, 0xff, 0x78, 0x76, 0x76, 0xff,
+    0x70, 0x6f, 0x6f, 0xff, 0x6d, 0x6c, 0x6b, 0xff, 0x6e, 0x6f, 0x6d, 0xff,
+    0x68, 0x68, 0x66, 0xff, 0x5f, 0x5b, 0x5b, 0xff, 0x5b, 0x56, 0x56, 0xff,
+    0x5a, 0x58, 0x57, 0xff, 0x53, 0x49, 0x47, 0xff, 0x4e, 0x45, 0x43, 0xff,
+    0x49, 0x43, 0x41, 0xff, 0x5f, 0x5b, 0x5a, 0xff, 0x46, 0x3f, 0x3e, 0xff,
+    0x4b, 0x48, 0x47, 0xff, 0x42, 0x3f, 0x3f, 0xff, 0x4d, 0x50, 0x50, 0xff,
+    0x52, 0x52, 0x51, 0xff, 0x37, 0x31, 0x30, 0xff, 0x3d, 0x38, 0x37, 0xff,
+    0x3f, 0x39, 0x38, 0xff, 0x40, 0x3c, 0x3b, 0xff, 0x4a, 0x48, 0x47, 0xff,
+    0x3f, 0x3d, 0x3b, 0xff, 0x46, 0x45, 0x43, 0xff,
+};
diff --git a/projects/libwebp/img_grid.h b/projects/libwebp/img_grid.h
new file mode 100644
index 0000000..33fcfcd
--- /dev/null
+++ b/projects/libwebp/img_grid.h
@@ -0,0 +1,104 @@
+#include <stdint.h>
+
+static const int kImgGridWidth = 16;
+static const int kImgGridHeight = 16;
+
+/*Pixel format: Red: 8 bit, Green: 8 bit, Blue: 8 bit, Fix 0xFF: 8 bit*/
+static const uint8_t kImgGridData[] = {
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff,
+    0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff,
+    0xff, 0x00, 0x00, 0xff,
+};
diff --git a/projects/libwebp/img_peak.h b/projects/libwebp/img_peak.h
new file mode 100644
index 0000000..9b2a116
--- /dev/null
+++ b/projects/libwebp/img_peak.h
@@ -0,0 +1,5512 @@
+#include <stdint.h>
+
+static const int kImgPeakWidth = 128;
+static const int kImgPeakHeight = 128;
+
+/*Pixel format: Red: 8 bit, Green: 8 bit, Blue: 8 bit, Fix 0xFF: 8 bit*/
+static const uint8_t kImgPeakData[] = {
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf7, 0xdd, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf7, 0xdd, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf7, 0xdd, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xe4, 0xe2, 0xd8, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xe4, 0xe2, 0xd8, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xec, 0xdb, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf7, 0xdd, 0xcc, 0xff, 0xec, 0xd6, 0xc4, 0xff, 0xd9, 0xc6, 0xb4, 0xff,
+    0xa7, 0x94, 0x84, 0xff, 0xa9, 0x9b, 0x8c, 0xff, 0xa9, 0x9b, 0x8c, 0xff,
+    0xc5, 0xb7, 0xb4, 0xff, 0xc0, 0xaa, 0x9c, 0xff, 0xc4, 0xb2, 0xac, 0xff,
+    0xe6, 0xd6, 0xcc, 0xff, 0xee, 0xdd, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xde, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf7, 0xdd, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff, 0xc0, 0xaa, 0x9c, 0xff,
+    0x9c, 0x7e, 0x6c, 0xff, 0x8c, 0x6e, 0x64, 0xff, 0x94, 0x79, 0x6c, 0xff,
+    0x94, 0x79, 0x6c, 0xff, 0x8e, 0x79, 0x74, 0xff, 0x9e, 0x8b, 0x84, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x9e, 0x8b, 0x84, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xbf, 0xaa, 0xa4, 0xff, 0xc5, 0xb7, 0xb4, 0xff, 0xd6, 0xc5, 0xbc, 0xff,
+    0xec, 0xdb, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xde, 0xd4, 0xff,
+    0xd4, 0xb8, 0xac, 0xff, 0x94, 0x79, 0x6c, 0xff, 0x84, 0x6e, 0x5c, 0xff,
+    0x94, 0x79, 0x6c, 0xff, 0x8d, 0x72, 0x6b, 0xff, 0x8a, 0x76, 0x6c, 0xff,
+    0x9e, 0x8b, 0x84, 0xff, 0x9e, 0x8b, 0x84, 0xff, 0xa8, 0x93, 0x8c, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x8f, 0x86, 0x7c, 0xff,
+    0xc4, 0xb2, 0xac, 0xff, 0xcc, 0xbd, 0xbc, 0xff, 0xa8, 0x9b, 0x94, 0xff,
+    0xd9, 0xcc, 0xbc, 0xff, 0xe4, 0xe2, 0xd8, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xdc, 0xbe, 0xb4, 0xff, 0xac, 0x8e, 0x7c, 0xff, 0x9c, 0x81, 0x74, 0xff,
+    0x7c, 0x62, 0x54, 0xff, 0x80, 0x67, 0x5c, 0xff, 0xa4, 0x89, 0x7c, 0xff,
+    0xbc, 0xa4, 0x9c, 0xff, 0x8d, 0x72, 0x6b, 0xff, 0xac, 0x8d, 0x84, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x96, 0x85, 0x84, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x96, 0x85, 0x84, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xc7, 0xb8, 0xac, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0xc9, 0xc0, 0xb4, 0xff, 0xe4, 0xd2, 0xc4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf2, 0xe9, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xe4, 0xe2, 0xd8, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf7, 0xdd, 0xcc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xec, 0xd6, 0xc4, 0xff, 0xa4, 0x89, 0x7c, 0xff,
+    0x7c, 0x5c, 0x4c, 0xff, 0x7e, 0x67, 0x54, 0xff, 0x7c, 0x62, 0x54, 0xff,
+    0x80, 0x67, 0x5c, 0xff, 0x8c, 0x6e, 0x64, 0xff, 0x8c, 0x6d, 0x6c, 0xff,
+    0xac, 0x8d, 0x84, 0xff, 0x8c, 0x6e, 0x64, 0xff, 0xac, 0x8d, 0x8c, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0x9c, 0x7a, 0x7c, 0xff,
+    0x8e, 0x72, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0x96, 0x86, 0x8c, 0xff, 0xa8, 0x9b, 0x94, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0xd7, 0xcc, 0xc4, 0xff, 0xd6, 0xc5, 0xbc, 0xff, 0xb0, 0xa3, 0x9c, 0xff,
+    0xc7, 0xb8, 0xac, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xec, 0xd6, 0xc4, 0xff, 0x94, 0x76, 0x64, 0xff, 0x7c, 0x5c, 0x4c, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x80, 0x67, 0x5c, 0xff, 0x8d, 0x72, 0x6b, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x8e, 0x72, 0x74, 0xff, 0xa4, 0x85, 0x84, 0xff,
+    0xa4, 0x85, 0x84, 0xff, 0x8e, 0x72, 0x74, 0xff, 0x8e, 0x72, 0x74, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xb1, 0xaa, 0xa4, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0x9c, 0x93, 0x8c, 0xff, 0xa8, 0x93, 0x8c, 0xff,
+    0xa8, 0x93, 0x8c, 0xff, 0xc4, 0xb2, 0xac, 0xff, 0xee, 0xdd, 0xd4, 0xff,
+    0xef, 0xe2, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xe7, 0xce, 0xbc, 0xff,
+    0x84, 0x6e, 0x5c, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x7f, 0x6a, 0x64, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0xa8, 0x93, 0x8c, 0xff, 0xa4, 0x85, 0x84, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0xa4, 0x85, 0x84, 0xff, 0xcc, 0xaa, 0xac, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0x8e, 0x72, 0x74, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0xbc, 0xb6, 0xac, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x8f, 0x86, 0x7c, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0xa8, 0x9b, 0x94, 0xff, 0xdc, 0xbe, 0xb4, 0xff,
+    0xee, 0xdd, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf7, 0xdd, 0xcc, 0xff, 0x84, 0x6e, 0x5c, 0xff,
+    0x6f, 0x56, 0x44, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x94, 0x79, 0x6c, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0xbd, 0xa6, 0xa4, 0xff, 0xb4, 0x96, 0x94, 0xff, 0x8e, 0x79, 0x74, 0xff,
+    0x8e, 0x72, 0x74, 0xff, 0xbd, 0xa6, 0xa4, 0xff, 0xdc, 0xba, 0xbc, 0xff,
+    0xc6, 0xb1, 0xb4, 0xff, 0xac, 0x8d, 0x8c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x9c, 0x7a, 0x7c, 0xff, 0x84, 0x77, 0x74, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xd5, 0xcd, 0xcc, 0xff, 0x9c, 0x93, 0x8c, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0x8f, 0x86, 0x7c, 0xff, 0xa8, 0x93, 0x8c, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xee, 0xdd, 0xd4, 0xff, 0xee, 0xdd, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xe7, 0xce, 0xbc, 0xff, 0x9c, 0x7e, 0x6c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x8d, 0x72, 0x6b, 0xff, 0xd4, 0xc6, 0xc4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xef, 0xe2, 0xdc, 0xff, 0xc4, 0xba, 0xbc, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0xe4, 0xce, 0xcc, 0xff,
+    0xec, 0xde, 0xdc, 0xff, 0xf8, 0xea, 0xec, 0xff, 0xc5, 0xb7, 0xb4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0x84, 0x77, 0x74, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0x89, 0x86, 0x84, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xee, 0xdd, 0xd4, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xd4, 0xc2, 0xac, 0xff,
+    0x7e, 0x67, 0x54, 0xff, 0x7c, 0x5c, 0x4c, 0xff, 0x7c, 0x5c, 0x4c, 0xff,
+    0x74, 0x4e, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x4e, 0x44, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0xac, 0x8d, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xc6, 0xb1, 0xb4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xdc, 0xba, 0xbc, 0xff,
+    0xcf, 0xc6, 0xcc, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x8e, 0x7a, 0x7c, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xba, 0xb0, 0xa4, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0xbd, 0xa6, 0xa4, 0xff, 0xec, 0xdb, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xe7, 0xce, 0xbc, 0xff, 0x7c, 0x62, 0x54, 0xff,
+    0x6f, 0x56, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x8d, 0x72, 0x6b, 0xff, 0xa6, 0x95, 0x94, 0xff, 0x9e, 0x8b, 0x84, 0xff,
+    0xb0, 0xa3, 0x9c, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x77, 0x66, 0x6c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x9e, 0x8b, 0x84, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0x94, 0x8b, 0x84, 0xff, 0x84, 0x77, 0x74, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xc5, 0xb7, 0xb4, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xba, 0xb0, 0xa4, 0xff, 0x94, 0x8b, 0x84, 0xff, 0xba, 0xb0, 0xa4, 0xff,
+    0xec, 0xd6, 0xc4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xc7, 0xb2, 0xa4, 0xff, 0x7e, 0x67, 0x54, 0xff, 0x6f, 0x56, 0x44, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x7c, 0x5c, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x4e, 0x44, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x7f, 0x6a, 0x64, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x72, 0x62, 0x5c, 0xff, 0x84, 0x77, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x9e, 0x8b, 0x84, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x94, 0x8b, 0x84, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0xe6, 0xd6, 0xcc, 0xff, 0xef, 0xe2, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xec, 0xdb, 0xcc, 0xff, 0x9c, 0x7e, 0x6c, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x7c, 0x5c, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x9c, 0x7a, 0x74, 0xff, 0x8d, 0x72, 0x6b, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x8a, 0x76, 0x6c, 0xff, 0x71, 0x6a, 0x64, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x94, 0x8b, 0x84, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x9e, 0x8b, 0x84, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x9e, 0x8b, 0x84, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x8c, 0x81, 0x84, 0xff, 0xc4, 0xb2, 0xac, 0xff,
+    0xcc, 0xbd, 0xbc, 0xff, 0xbc, 0xb6, 0xac, 0xff, 0xd7, 0xcc, 0xc4, 0xff,
+    0xc9, 0xc0, 0xb4, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xc5, 0xb7, 0xb4, 0xff,
+    0xc5, 0xb7, 0xb4, 0xff, 0xd9, 0xcc, 0xbc, 0xff, 0xef, 0xe2, 0xdc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xec, 0xd6, 0xc4, 0xff, 0x84, 0x6e, 0x5c, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x80, 0x67, 0x5c, 0xff,
+    0x8d, 0x72, 0x6b, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0x7f, 0x6a, 0x64, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x7f, 0x72, 0x6c, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x7f, 0x6a, 0x64, 0xff, 0x7f, 0x6a, 0x64, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xbc, 0xb6, 0xac, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xd9, 0xd4, 0xcc, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xd6, 0xc5, 0xbc, 0xff,
+    0xef, 0xe2, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xd9, 0xc6, 0xb4, 0xff,
+    0x7e, 0x67, 0x54, 0xff, 0x6f, 0x56, 0x44, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x7e, 0x67, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x74, 0x4e, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x80, 0x67, 0x5c, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x78, 0x66, 0x64, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x7f, 0x72, 0x6c, 0xff,
+    0x7c, 0x72, 0x64, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x94, 0x8b, 0x84, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xe4, 0xde, 0xdc, 0xff, 0xcc, 0xc2, 0xbc, 0xff,
+    0xcc, 0xc2, 0xbc, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xd9, 0xc6, 0xb4, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x6f, 0x56, 0x44, 0xff,
+    0x7c, 0x62, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x7c, 0x5c, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x6b, 0x56, 0x5c, 0xff, 0x8d, 0x72, 0x6b, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x8d, 0x72, 0x6b, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x75, 0x62, 0x64, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x94, 0x8b, 0x84, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0x7b, 0x7a, 0x7c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xd5, 0xcd, 0xcc, 0xff, 0xb1, 0xaa, 0xa4, 0xff,
+    0xc7, 0xb8, 0xac, 0xff, 0xda, 0xd4, 0xc4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xd4, 0xb8, 0xac, 0xff, 0x80, 0x67, 0x5c, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x7c, 0x5c, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x7c, 0x5c, 0x4c, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x7c, 0x5c, 0x4c, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x74, 0x4e, 0x44, 0xff, 0x7c, 0x5c, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5e, 0x5c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x7c, 0x5e, 0x5c, 0xff, 0x8c, 0x6e, 0x64, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x94, 0x8b, 0x84, 0xff,
+    0x8d, 0x72, 0x6b, 0xff, 0x75, 0x56, 0x54, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x75, 0x56, 0x54, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0xb1, 0xaa, 0xa4, 0xff, 0x94, 0x8b, 0x84, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x81, 0x72, 0x74, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0xd4, 0xc6, 0xc4, 0xff, 0xc5, 0xb7, 0xb4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xd7, 0xcc, 0xc4, 0xff,
+    0xef, 0xe2, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xac, 0x8e, 0x7c, 0xff,
+    0x7c, 0x5c, 0x4c, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x6f, 0x56, 0x44, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x6f, 0x56, 0x44, 0xff, 0x7c, 0x62, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x8c, 0x6e, 0x64, 0xff, 0x6b, 0x56, 0x5c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x7d, 0x62, 0x5c, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0xb4, 0x9b, 0x94, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x7c, 0x72, 0x64, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0x84, 0x77, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xcc, 0xbd, 0xbc, 0xff,
+    0x88, 0x8a, 0x84, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xc2, 0xc2, 0xbc, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xa4, 0x86, 0x74, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x7c, 0x5c, 0x4c, 0xff, 0x7c, 0x62, 0x54, 0xff,
+    0x7d, 0x62, 0x5c, 0xff, 0x8d, 0x72, 0x6b, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x8e, 0x72, 0x74, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x58, 0x49, 0x4c, 0xff, 0x74, 0x4e, 0x4c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x50, 0x4e, 0x44, 0xff, 0x7c, 0x5e, 0x5c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0xbc, 0xa4, 0x9c, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x84, 0x77, 0x74, 0xff, 0x9e, 0x8b, 0x84, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xbc, 0xaa, 0xac, 0xff, 0xc4, 0xba, 0xbc, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0xb1, 0xaa, 0xa4, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xb1, 0xaa, 0xa4, 0xff,
+    0xc9, 0xc0, 0xb4, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xac, 0x8e, 0x7c, 0xff, 0x6f, 0x56, 0x44, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x80, 0x67, 0x5c, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x75, 0x62, 0x64, 0xff,
+    0x9c, 0x7a, 0x74, 0xff, 0xa4, 0x85, 0x84, 0xff, 0x9c, 0x7a, 0x7c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0xbc, 0xa4, 0x9c, 0xff,
+    0x7f, 0x72, 0x6c, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x7c, 0x5e, 0x5c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0xa8, 0x9b, 0x94, 0xff,
+    0xc6, 0xb1, 0xb4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0x84, 0x77, 0x74, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0xa8, 0x9b, 0x94, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xb0, 0xa3, 0x9c, 0xff, 0xd7, 0xcc, 0xc4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xf7, 0xdd, 0xcc, 0xff, 0xf7, 0xdd, 0xcc, 0xff, 0x94, 0x79, 0x6c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x6f, 0x56, 0x44, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x64, 0x5a, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0x8d, 0x72, 0x6b, 0xff, 0x8c, 0x6d, 0x6c, 0xff,
+    0x8c, 0x6d, 0x6c, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0x8c, 0x6d, 0x6c, 0xff,
+    0x7c, 0x5e, 0x5c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x78, 0x66, 0x64, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x72, 0x62, 0x5c, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0x78, 0x66, 0x64, 0xff, 0xa4, 0x9e, 0xa4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xec, 0xdb, 0xcc, 0xff,
+    0xf2, 0xe9, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xfc, 0xe2, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xf7, 0xdd, 0xcc, 0xff, 0x94, 0x76, 0x64, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x6f, 0x56, 0x44, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x74, 0x4e, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x8e, 0x79, 0x74, 0xff,
+    0x7c, 0x5e, 0x5c, 0xff, 0x72, 0x62, 0x5c, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x8c, 0x6e, 0x64, 0xff, 0x78, 0x66, 0x64, 0xff, 0x7f, 0x6a, 0x64, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x7c, 0x5e, 0x5c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x80, 0x67, 0x5c, 0xff, 0x75, 0x56, 0x54, 0xff, 0x50, 0x4e, 0x44, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x9e, 0x8e, 0x94, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xbf, 0xaa, 0xa4, 0xff, 0xa8, 0x9b, 0x94, 0xff, 0xd9, 0xcc, 0xbc, 0xff,
+    0xef, 0xe2, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x6f, 0x56, 0x44, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x7c, 0x5c, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x5b, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x7c, 0x5e, 0x5c, 0xff, 0x8c, 0x6d, 0x6c, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x8d, 0x72, 0x6b, 0xff, 0x69, 0x55, 0x54, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x80, 0x67, 0x5c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x90, 0x7f, 0x74, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x90, 0x7f, 0x74, 0xff, 0x9c, 0x88, 0x7c, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x8e, 0x79, 0x74, 0xff, 0xac, 0x8d, 0x8c, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x96, 0x85, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xc6, 0xb1, 0xb4, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xba, 0xb0, 0xa4, 0xff,
+    0xe6, 0xd6, 0xcc, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe2, 0xcc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xac, 0x8e, 0x7c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x74, 0x5b, 0x4c, 0xff, 0x74, 0x4e, 0x44, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0xac, 0x8d, 0x8c, 0xff, 0xbf, 0xaa, 0xa4, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x80, 0x67, 0x5c, 0xff, 0x8a, 0x76, 0x6c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x80, 0x67, 0x5c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x9c, 0x7a, 0x74, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x96, 0x85, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x94, 0x8b, 0x84, 0xff, 0x96, 0x85, 0x84, 0xff, 0x84, 0x79, 0x7c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0xa8, 0x9b, 0x94, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xe2, 0xdc, 0xcc, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xf2, 0xe9, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe6, 0xcc, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0x94, 0x79, 0x6c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x7c, 0x62, 0x54, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x74, 0x4e, 0x44, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0xbc, 0xa4, 0x9c, 0xff, 0xc5, 0xb7, 0xb4, 0xff,
+    0xac, 0x8d, 0x8c, 0xff, 0x7f, 0x6a, 0x64, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x7d, 0x62, 0x5c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0x78, 0x66, 0x64, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x75, 0x62, 0x64, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0x9e, 0x8e, 0x94, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0x96, 0x86, 0x8c, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0xd4, 0xc6, 0xc4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xba, 0xb0, 0xa4, 0xff, 0xd9, 0xd4, 0xcc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0x9c, 0x7e, 0x6c, 0xff, 0x7c, 0x62, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x94, 0x79, 0x6c, 0xff, 0xbc, 0xa4, 0x9c, 0xff, 0xc7, 0xb8, 0xac, 0xff,
+    0x70, 0x66, 0x5c, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x7c, 0x72, 0x64, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x8c, 0x6e, 0x64, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x74, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x7c, 0x5e, 0x5c, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0x75, 0x56, 0x54, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0xac, 0x8d, 0x8c, 0xff, 0x7c, 0x5e, 0x5c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x8e, 0x7a, 0x7c, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0x6b, 0x56, 0x5c, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xba, 0xb0, 0xa4, 0xff, 0xc5, 0xb7, 0xb4, 0xff,
+    0xe2, 0xdc, 0xcc, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf9, 0xe2, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xac, 0x8d, 0x84, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x7c, 0x5c, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff, 0x74, 0x4e, 0x44, 0xff,
+    0x74, 0x4e, 0x44, 0xff, 0x75, 0x56, 0x54, 0xff, 0x74, 0x4e, 0x4c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x8a, 0x76, 0x6c, 0xff, 0xc5, 0xb7, 0xb4, 0xff, 0x8a, 0x76, 0x6c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x7c, 0x5e, 0x5c, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0xbd, 0xa6, 0xa4, 0xff, 0x84, 0x77, 0x74, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x8d, 0x72, 0x6b, 0xff, 0x96, 0x85, 0x84, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x84, 0x77, 0x74, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0x96, 0x86, 0x8c, 0xff, 0x81, 0x72, 0x74, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x9e, 0x8b, 0x84, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xcc, 0xbe, 0xc4, 0xff, 0xa1, 0xa2, 0x9c, 0xff, 0xc7, 0xb8, 0xac, 0xff,
+    0xd7, 0xcc, 0xc4, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf9, 0xe2, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xb4, 0x9a, 0x8c, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x74, 0x4e, 0x44, 0xff, 0x75, 0x56, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x84, 0x77, 0x74, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0x69, 0x55, 0x54, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x58, 0x49, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x7f, 0x6a, 0x64, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x74, 0x4e, 0x4c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x8c, 0x6d, 0x6c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x7d, 0x62, 0x5c, 0xff, 0x8e, 0x7a, 0x7c, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0xad, 0x9a, 0x9c, 0xff, 0x9e, 0x8e, 0x94, 0xff, 0xa4, 0x9e, 0xa4, 0xff,
+    0x9e, 0x8e, 0x94, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x6b, 0x56, 0x5c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xc4, 0xba, 0xbc, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0xb0, 0xa3, 0x9c, 0xff,
+    0xbc, 0xb6, 0xac, 0xff, 0xd9, 0xd4, 0xcc, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xb1, 0xa3, 0x94, 0xff, 0xc9, 0xc0, 0xb4, 0xff, 0xd9, 0xcc, 0xbc, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x7c, 0x72, 0x64, 0xff,
+    0x8f, 0x86, 0x7c, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x8e, 0x72, 0x74, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x8e, 0x72, 0x74, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0xbc, 0xaa, 0xac, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0xbd, 0xa6, 0xa4, 0xff, 0xbd, 0xa6, 0xa4, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0x8e, 0x72, 0x74, 0xff, 0x7f, 0x72, 0x6c, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xc5, 0xb7, 0xb4, 0xff, 0xb0, 0xa3, 0x9c, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xea, 0xe4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf2, 0xe9, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0x7c, 0x72, 0x64, 0xff, 0x7f, 0x72, 0x6c, 0xff, 0x64, 0x5a, 0x4c, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x7c, 0x5e, 0x5c, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5c, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x75, 0x56, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x50, 0x4e, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x8c, 0x6d, 0x6c, 0xff, 0x84, 0x77, 0x74, 0xff, 0x7f, 0x6a, 0x64, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0x81, 0x72, 0x74, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x8e, 0x79, 0x74, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x9e, 0x8e, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xad, 0x9a, 0x9c, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0xc6, 0xb1, 0xb4, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0x9e, 0x8e, 0x94, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x9e, 0x8e, 0x94, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0xc5, 0xb7, 0xb4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xbc, 0xb6, 0xac, 0xff, 0xbf, 0xaa, 0xa4, 0xff, 0xc9, 0xc0, 0xb4, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf2, 0xe9, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x94, 0x8b, 0x84, 0xff, 0x90, 0x7f, 0x74, 0xff, 0x71, 0x6a, 0x64, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x7c, 0x5e, 0x5c, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x50, 0x4e, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x74, 0x4e, 0x4c, 0xff, 0x5c, 0x3e, 0x34, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x7f, 0x6a, 0x64, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x50, 0x4e, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x80, 0x67, 0x5c, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x77, 0x66, 0x6c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x78, 0x66, 0x64, 0xff, 0x77, 0x66, 0x6c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xad, 0x9a, 0x9c, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0xbc, 0xaa, 0xac, 0xff,
+    0x9e, 0x8e, 0x94, 0xff, 0x9c, 0x7a, 0x7c, 0xff, 0x84, 0x79, 0x7c, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x96, 0x85, 0x84, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xcc, 0xc2, 0xbc, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xc5, 0xb7, 0xb4, 0xff, 0xc5, 0xb7, 0xb4, 0xff, 0xb0, 0xa3, 0x9c, 0xff,
+    0xd7, 0xcc, 0xc4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xe8, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0x94, 0x8b, 0x84, 0xff, 0x90, 0x7f, 0x74, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0x7f, 0x72, 0x6c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x7f, 0x6a, 0x64, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x72, 0x62, 0x5c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x72, 0x62, 0x5c, 0xff, 0x7c, 0x5d, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x7f, 0x6a, 0x64, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x72, 0x62, 0x5c, 0xff, 0x77, 0x66, 0x6c, 0xff, 0x75, 0x62, 0x64, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x96, 0x86, 0x8c, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x8e, 0x72, 0x74, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x8e, 0x7a, 0x7c, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0x96, 0x86, 0x8c, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x96, 0x86, 0x8c, 0xff, 0x96, 0x86, 0x8c, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xc2, 0xbc, 0xff,
+    0xc4, 0xbe, 0xc4, 0xff, 0xc5, 0xb7, 0xb4, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xa9, 0x9b, 0x8c, 0xff, 0xf9, 0xe2, 0xd4, 0xff, 0xfc, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xea, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x9c, 0x93, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff, 0x94, 0x8b, 0x84, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0xd7, 0xcc, 0xc4, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x81, 0x72, 0x74, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x70, 0x66, 0x5c, 0xff, 0x7f, 0x6a, 0x64, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x75, 0x62, 0x64, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0x7f, 0x72, 0x6c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xb0, 0xa3, 0x9c, 0xff, 0xa6, 0x95, 0x94, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x78, 0x77, 0x74, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x8c, 0x81, 0x84, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xad, 0x9a, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xbc, 0xaa, 0xac, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0xb0, 0xaa, 0x9c, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xea, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x92, 0x92, 0x8c, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xc8, 0xca, 0xc4, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xc5, 0xb7, 0xb4, 0xff, 0xb1, 0xaa, 0xa4, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0x78, 0x66, 0x64, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x74, 0x4e, 0x4c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x50, 0x4e, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x7f, 0x6a, 0x64, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x75, 0x56, 0x54, 0xff, 0x7c, 0x5e, 0x5c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x7f, 0x72, 0x6c, 0xff, 0x96, 0x85, 0x84, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x94, 0x8b, 0x84, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x84, 0x77, 0x74, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x81, 0x72, 0x74, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xc5, 0xb7, 0xb4, 0xff, 0x94, 0x8b, 0x84, 0xff, 0xe4, 0xde, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x9c, 0x9a, 0x94, 0xff, 0xe4, 0xde, 0xdc, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0x8c, 0x6e, 0x64, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x74, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x44, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x70, 0x66, 0x5c, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x50, 0x4e, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x96, 0x85, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x94, 0x8b, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x75, 0x62, 0x64, 0xff, 0x8e, 0x79, 0x74, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0x94, 0x8e, 0x94, 0xff,
+    0xc5, 0xb7, 0xb4, 0xff, 0xa8, 0x9b, 0x94, 0xff, 0xc7, 0xb8, 0xac, 0xff,
+    0xf4, 0xea, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xe8, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xb1, 0xaa, 0xa4, 0xff,
+    0x9c, 0x93, 0x8c, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xe4, 0xde, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xbd, 0xa6, 0xa4, 0xff,
+    0x9c, 0x7a, 0x7c, 0xff, 0x75, 0x62, 0x64, 0xff, 0x7c, 0x5e, 0x5c, 0xff,
+    0x74, 0x4e, 0x4c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x5c, 0x42, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x8e, 0x72, 0x74, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x94, 0x8b, 0x84, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0xa6, 0x95, 0x94, 0xff, 0x9c, 0x93, 0x8c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x84, 0x77, 0x74, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x96, 0x86, 0x8c, 0xff, 0x96, 0x85, 0x84, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0xa1, 0xa2, 0x9c, 0xff,
+    0xc5, 0xb7, 0xb4, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0x9c, 0x93, 0x8c, 0xff,
+    0xef, 0xe2, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xe8, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xc2, 0xc2, 0xbc, 0xff, 0x94, 0x8e, 0x94, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0x71, 0x72, 0x6c, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xe4, 0xe2, 0xd8, 0xff, 0xdc, 0xd6, 0xdc, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xbe, 0xc4, 0xff,
+    0xc6, 0xb1, 0xb4, 0xff, 0xb4, 0x96, 0x94, 0xff, 0x75, 0x62, 0x64, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x7f, 0x72, 0x6c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xb0, 0xa3, 0x9c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xec, 0xde, 0xdc, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xd6, 0xc5, 0xbc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0xbc, 0xb6, 0xac, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x92, 0x92, 0x8c, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xbc, 0xaa, 0xac, 0xff, 0xbc, 0xaa, 0xac, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x50, 0x4e, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x7c, 0x5d, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x7f, 0x6a, 0x64, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x8e, 0x7a, 0x7c, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0x94, 0x8b, 0x84, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0xa4, 0x9e, 0xa4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0x9c, 0x93, 0x8c, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x89, 0x86, 0x84, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x89, 0x86, 0x84, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xdc, 0xd6, 0xdc, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x7f, 0x6a, 0x64, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x71, 0x6a, 0x64, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x8e, 0x7a, 0x7c, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x8f, 0x86, 0x7c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x78, 0x66, 0x64, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x84, 0x77, 0x74, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xcc, 0xbe, 0xc4, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xad, 0x9a, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xc4, 0xbe, 0xc4, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xd5, 0xcd, 0xcc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xb0, 0xa3, 0x9c, 0xff, 0xbc, 0xb6, 0xac, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xee, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xee, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x71, 0x72, 0x6c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0x94, 0x8e, 0x94, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x75, 0x62, 0x64, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x53, 0x41, 0x3c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x53, 0x41, 0x3c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x72, 0x62, 0x5c, 0xff, 0x7f, 0x6a, 0x64, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x72, 0x62, 0x5c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x7f, 0x72, 0x6c, 0xff, 0x84, 0x79, 0x7c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x9c, 0x93, 0x8c, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0xa4, 0x9e, 0xa4, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xb1, 0xaa, 0xa4, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xba, 0xb0, 0xa4, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xee, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xac, 0xa9, 0xac, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x7b, 0x7a, 0x7c, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0x71, 0x72, 0x74, 0xff, 0x71, 0x72, 0x74, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x84, 0x77, 0x74, 0xff, 0x94, 0x8b, 0x84, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x84, 0x77, 0x74, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x84, 0x79, 0x7c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0xb0, 0xa3, 0x9c, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xbc, 0xb6, 0xac, 0xff, 0xc5, 0xb7, 0xb4, 0xff,
+    0xe4, 0xe2, 0xd8, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0x7b, 0x7a, 0x7c, 0xff, 0x94, 0x8e, 0x94, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x7b, 0x7a, 0x7c, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0x81, 0x72, 0x74, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x72, 0x5b, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x72, 0x62, 0x5c, 0xff, 0x8f, 0x86, 0x7c, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x77, 0x66, 0x6c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x75, 0x62, 0x64, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x96, 0x86, 0x8c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xb1, 0xaa, 0xa4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xc2, 0xc2, 0xbc, 0xff, 0xb1, 0xaa, 0xa4, 0xff, 0xd6, 0xc5, 0xbc, 0xff,
+    0xb0, 0xa3, 0x9c, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xfc, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x78, 0x77, 0x74, 0xff, 0x71, 0x72, 0x74, 0xff,
+    0x78, 0x77, 0x74, 0xff, 0x83, 0x82, 0x84, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x8c, 0x86, 0x8c, 0xff, 0x96, 0x85, 0x84, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x96, 0x86, 0x8c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x7d, 0x62, 0x5c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0x96, 0x85, 0x84, 0xff, 0x7c, 0x72, 0x64, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0x8e, 0x7a, 0x7c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0x9e, 0x8e, 0x94, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xf8, 0xea, 0xec, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xc2, 0xc2, 0xbc, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xd7, 0xcc, 0xc4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x8c, 0x81, 0x84, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0xcc, 0xbd, 0xbc, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x58, 0x49, 0x4c, 0xff, 0x7c, 0x5d, 0x54, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0x71, 0x6a, 0x64, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0x81, 0x72, 0x74, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x84, 0x79, 0x7c, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xc4, 0xbe, 0xc4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xc8, 0xca, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xc2, 0xbc, 0xff,
+    0xcc, 0xc2, 0xbc, 0xff, 0x9c, 0x93, 0x8c, 0xff, 0xee, 0xdd, 0xd4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xac, 0xa9, 0xac, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0x77, 0x66, 0x6c, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x7f, 0x72, 0x6c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x3e, 0x34, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x81, 0x72, 0x74, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x81, 0x72, 0x74, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xc4, 0xbe, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xcc, 0xc2, 0xbc, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0x9c, 0x92, 0x84, 0xff,
+    0xe2, 0xdc, 0xcc, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0xac, 0xa9, 0xac, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x6b, 0x56, 0x5c, 0xff,
+    0xc5, 0xb7, 0xb4, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x72, 0x62, 0x5c, 0xff, 0x72, 0x62, 0x5c, 0xff, 0x7f, 0x72, 0x6c, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x7f, 0x72, 0x6c, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x75, 0x62, 0x64, 0xff, 0x75, 0x62, 0x64, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x84, 0x77, 0x74, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0xac, 0xa9, 0xac, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0xc4, 0xba, 0xbc, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x83, 0x82, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x94, 0x8e, 0x94, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xcc, 0xbe, 0xc4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xcc, 0xbd, 0xbc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0x8f, 0x86, 0x7c, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0x94, 0x8e, 0x94, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x96, 0x86, 0x8c, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xc4, 0xba, 0xbc, 0xff,
+    0xd4, 0xc6, 0xc4, 0xff, 0x6b, 0x56, 0x5c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x55, 0x55, 0x54, 0xff, 0x6b, 0x56, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x71, 0x6a, 0x64, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x72, 0x62, 0x5c, 0xff, 0x89, 0x86, 0x84, 0xff,
+    0x9c, 0x93, 0x8c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x9e, 0x8e, 0x94, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xe4, 0xe1, 0xe4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xc4, 0xbe, 0xc4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xd5, 0xcd, 0xcc, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xb1, 0xaa, 0xa4, 0xff, 0xb1, 0xaa, 0xa4, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0xbc, 0xb6, 0xac, 0xff, 0xfb, 0xf9, 0xec, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf1, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xcf, 0xc6, 0xcc, 0xff, 0xac, 0xa9, 0xac, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xac, 0xa9, 0xac, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0x7b, 0x7a, 0x7c, 0xff, 0x96, 0x85, 0x84, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x78, 0x66, 0x64, 0xff, 0x71, 0x6a, 0x64, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x84, 0x77, 0x74, 0xff, 0x50, 0x4e, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x3e, 0x34, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x3e, 0x34, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x81, 0x72, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0xa6, 0x95, 0x94, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x96, 0x85, 0x84, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0x78, 0x77, 0x74, 0xff, 0x96, 0x85, 0x84, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xac, 0xa9, 0xac, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0xc5, 0xb7, 0xb4, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xcf, 0xc6, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xd4, 0xc6, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xc2, 0xbc, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0x9c, 0x88, 0x7c, 0xff, 0xe6, 0xd6, 0xcc, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfb, 0xf9, 0xec, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xb1, 0xaa, 0xa4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0x83, 0x82, 0x84, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x7f, 0x6a, 0x64, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x7f, 0x72, 0x6c, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x84, 0x77, 0x74, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x8c, 0x81, 0x84, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xbd, 0xbc, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0x9c, 0x93, 0x8c, 0xff, 0xa8, 0x9b, 0x94, 0xff,
+    0xf2, 0xe9, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x94, 0x8e, 0x94, 0xff,
+    0xc4, 0xbe, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0xc6, 0xb1, 0xb4, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x74, 0x4e, 0x4c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x8f, 0x86, 0x7c, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0x96, 0x85, 0x84, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0x77, 0x66, 0x6c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x89, 0x86, 0x84, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0xb1, 0xaa, 0xa4, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xc4, 0xbe, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xac, 0xa9, 0xac, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xdc, 0xd6, 0xdc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xd4, 0xc6, 0xc4, 0xff, 0xcc, 0xbe, 0xc4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0x94, 0x8b, 0x84, 0xff,
+    0xba, 0xb0, 0xa4, 0xff, 0xf4, 0xea, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xe4, 0xe2, 0xd8, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0x9c, 0x9a, 0x94, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x8e, 0x79, 0x74, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xd7, 0xcc, 0xc4, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x3e, 0x34, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x72, 0x62, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x84, 0x79, 0x7c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xb1, 0xaa, 0xa4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xc4, 0xbe, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xc4, 0xbe, 0xc4, 0xff, 0xd5, 0xcd, 0xcc, 0xff, 0xcf, 0xc6, 0xcc, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0xcc, 0xbe, 0xac, 0xff, 0xfb, 0xf9, 0xec, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfa, 0xfe, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0x94, 0x8e, 0x94, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0x89, 0x86, 0x84, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x81, 0x72, 0x74, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xa4, 0x9e, 0xa4, 0xff,
+    0xbd, 0xa6, 0xa4, 0xff, 0x84, 0x77, 0x74, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x74, 0x4e, 0x4c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0x96, 0x85, 0x84, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0x83, 0x82, 0x84, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xf8, 0xea, 0xec, 0xff, 0xec, 0xe2, 0xe4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xcf, 0xc6, 0xcc, 0xff, 0xc5, 0xb7, 0xb4, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0x90, 0x7f, 0x74, 0xff, 0x9c, 0x93, 0x8c, 0xff, 0xfb, 0xf9, 0xec, 0xff,
+    0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xc2, 0xc2, 0xbc, 0xff, 0xb3, 0xae, 0xac, 0xff, 0x9c, 0x9a, 0x94, 0xff,
+    0x94, 0x8e, 0x94, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x9c, 0x9a, 0x94, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0x94, 0x8b, 0x84, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x7f, 0x72, 0x6c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x96, 0x85, 0x84, 0xff, 0x7d, 0x62, 0x5c, 0xff,
+    0x53, 0x41, 0x3c, 0xff, 0x75, 0x56, 0x54, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x8f, 0x86, 0x7c, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0x96, 0x85, 0x84, 0xff, 0xa4, 0x9e, 0xa4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xac, 0xa9, 0xac, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xe4, 0xe1, 0xe4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xe4, 0xd2, 0xd4, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xd9, 0xd4, 0xcc, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xd7, 0xcc, 0xc4, 0xff,
+    0xfb, 0xf9, 0xec, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xc4, 0xbe, 0xc4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xac, 0xa9, 0xac, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xa1, 0xa2, 0x9c, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x6b, 0x56, 0x5c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x9c, 0x93, 0x8c, 0xff, 0xc4, 0xb2, 0xac, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x72, 0x62, 0x5c, 0xff, 0x84, 0x77, 0x74, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x96, 0x85, 0x84, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x89, 0x86, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xb0, 0xa3, 0x9c, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0x89, 0x86, 0x84, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xc4, 0xba, 0xbc, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xe4, 0xde, 0xdc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xf2, 0xf0, 0xec, 0xff,
+    0xcc, 0xbe, 0xc4, 0xff, 0xd4, 0xc6, 0xc4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xd4, 0xc6, 0xc4, 0xff, 0xa8, 0x93, 0x8c, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xfb, 0xf9, 0xec, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfa, 0xfe, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0x92, 0x92, 0x8c, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xa6, 0x95, 0x94, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x75, 0x62, 0x64, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0x80, 0x67, 0x5c, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x61, 0x48, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x89, 0x86, 0x84, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x9e, 0x8e, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xa1, 0xa2, 0x9c, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xfc, 0xf6, 0xf4, 0xff, 0xdc, 0xd6, 0xdc, 0xff,
+    0xd4, 0xc6, 0xc4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xd4, 0xc6, 0xc4, 0xff,
+    0xdc, 0xd6, 0xdc, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0xa8, 0x93, 0x8c, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfa, 0xfe, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xe9, 0xd4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x81, 0x72, 0x74, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x70, 0x5e, 0x5c, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xbc, 0xaa, 0xac, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x3e, 0x34, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x5c, 0x3e, 0x34, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0x89, 0x86, 0x84, 0xff, 0x9c, 0x9a, 0x94, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xc2, 0xc2, 0xbc, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xac, 0xa9, 0xac, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xc4, 0xbe, 0xc4, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xc4, 0xbe, 0xc4, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xec, 0xe2, 0xe4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xcc, 0xc2, 0xbc, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0xb0, 0xa3, 0x9c, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x94, 0x8e, 0x94, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xac, 0xa9, 0xac, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xc8, 0xca, 0xc4, 0xff,
+    0xc2, 0xc2, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0x64, 0x4e, 0x54, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0x8e, 0x7a, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0xa8, 0x9b, 0x94, 0xff,
+    0xbc, 0xaa, 0xac, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff,
+    0x69, 0x4e, 0x44, 0xff, 0x69, 0x4e, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x53, 0x41, 0x3c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x8f, 0x86, 0x7c, 0xff,
+    0x78, 0x77, 0x74, 0xff, 0x78, 0x77, 0x74, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0x96, 0x86, 0x8c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xc8, 0xca, 0xc4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xd5, 0xcd, 0xcc, 0xff, 0xf4, 0xf2, 0xf4, 0xff,
+    0xf4, 0xf2, 0xf4, 0xff, 0xd4, 0xc6, 0xc4, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xc4, 0xbe, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0xc9, 0xc0, 0xb4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfb, 0xfe, 0xec, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x78, 0x77, 0x74, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0x88, 0x8a, 0x84, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x78, 0x66, 0x64, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x6c, 0x66, 0x6c, 0xff, 0x83, 0x82, 0x84, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xc6, 0xb1, 0xb4, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x75, 0x56, 0x54, 0xff, 0x69, 0x4e, 0x44, 0xff,
+    0x74, 0x5b, 0x4c, 0xff, 0x74, 0x4e, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x72, 0x62, 0x5c, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x81, 0x72, 0x74, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x92, 0x92, 0x8c, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0xc6, 0xb1, 0xb4, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xc2, 0xc2, 0xbc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xc2, 0xc2, 0xbc, 0xff, 0xcf, 0xc6, 0xcc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xec, 0xe2, 0xe4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xc4, 0xbe, 0xc4, 0xff, 0xcc, 0xbd, 0xbc, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xf4, 0xea, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0x7b, 0x7a, 0x7c, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0xc2, 0xc2, 0xbc, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xbc, 0xaa, 0xac, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x6b, 0x56, 0x5c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x6b, 0x56, 0x5c, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x71, 0x6a, 0x64, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xdc, 0xba, 0xbc, 0xff, 0xc6, 0xb1, 0xb4, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0x75, 0x56, 0x54, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x72, 0x5b, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x84, 0x77, 0x74, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x84, 0x79, 0x7c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x89, 0x86, 0x84, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x84, 0x79, 0x7c, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xac, 0xa9, 0xac, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xc5, 0xb7, 0xb4, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x9c, 0x93, 0x8c, 0xff, 0xd7, 0xcc, 0xc4, 0xff,
+    0xfb, 0xf9, 0xec, 0xff, 0xfb, 0xf9, 0xec, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x7b, 0x7a, 0x7c, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xa1, 0xa2, 0x9c, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0xa4, 0x9e, 0xa4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xc4, 0xba, 0xbc, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xcc, 0xbe, 0xc4, 0xff, 0xc4, 0xba, 0xbc, 0xff,
+    0x8e, 0x72, 0x74, 0xff, 0x69, 0x55, 0x54, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x74, 0x55, 0x4c, 0xff, 0x74, 0x55, 0x4c, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x81, 0x72, 0x74, 0xff, 0x84, 0x79, 0x7c, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0x89, 0x86, 0x84, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0x92, 0x92, 0x8c, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xec, 0xea, 0xec, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xcf, 0xc6, 0xcc, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0x89, 0x86, 0x84, 0xff, 0xa8, 0x9b, 0x94, 0xff,
+    0xf2, 0xe9, 0xdc, 0xff, 0xfc, 0xf2, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x71, 0x72, 0x6c, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0x92, 0x92, 0x8c, 0xff, 0x71, 0x72, 0x74, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0x92, 0x92, 0x8c, 0xff, 0x83, 0x82, 0x84, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0x83, 0x82, 0x84, 0xff,
+    0xa1, 0xa2, 0x9c, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x75, 0x62, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x75, 0x62, 0x64, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x74, 0x55, 0x4c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x3e, 0x34, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x54, 0x46, 0x3c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x89, 0x86, 0x84, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0x9a, 0x94, 0x94, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x94, 0x8e, 0x94, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xad, 0x9a, 0x9c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x94, 0x8e, 0x94, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xc8, 0xca, 0xc4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xf4, 0xea, 0xe4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xc4, 0xba, 0xbc, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0xd4, 0xc6, 0xc4, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x90, 0x7f, 0x74, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xfb, 0xf9, 0xec, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x88, 0x8a, 0x84, 0xff, 0x71, 0x72, 0x74, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0x89, 0x86, 0x84, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x78, 0x77, 0x74, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xc5, 0xb7, 0xb4, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0x96, 0x85, 0x84, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x6a, 0x53, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x6c, 0x4a, 0x44, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x4e, 0x42, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x7f, 0x72, 0x6c, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xa4, 0x9e, 0xa4, 0xff,
+    0x9e, 0x8e, 0x94, 0xff, 0x81, 0x72, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x89, 0x86, 0x84, 0xff, 0xb1, 0xaa, 0xa4, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xe4, 0xe1, 0xe4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xc2, 0xc2, 0xbc, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcf, 0xc6, 0xcc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xb0, 0xa3, 0x9c, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0x94, 0x8b, 0x84, 0xff, 0xe4, 0xe2, 0xd8, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfc, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf0, 0xd4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0x88, 0x8a, 0x84, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x63, 0x6a, 0x64, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x89, 0x86, 0x84, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0x9c, 0x9a, 0x94, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x69, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x6a, 0x53, 0x4c, 0xff, 0x75, 0x56, 0x54, 0xff, 0x6c, 0x4a, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x90, 0x7f, 0x74, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x96, 0x85, 0x84, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcf, 0xc6, 0xcc, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xc8, 0xca, 0xc4, 0xff,
+    0xe4, 0xe1, 0xe4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xac, 0xa9, 0xac, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xb4, 0xaa, 0xac, 0xff, 0xc4, 0xba, 0xbc, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x94, 0x8b, 0x84, 0xff, 0xb4, 0xae, 0x9c, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x63, 0x6a, 0x64, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x63, 0x6a, 0x64, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x71, 0x6a, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x7b, 0x7a, 0x7c, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0x78, 0x77, 0x74, 0xff, 0x7b, 0x7a, 0x7c, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0x75, 0x62, 0x64, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x69, 0x4e, 0x4c, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x96, 0x85, 0x84, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0x84, 0x79, 0x7c, 0xff, 0x96, 0x85, 0x84, 0xff, 0x9e, 0x8e, 0x94, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xd9, 0xd4, 0xcc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xc8, 0xca, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xd9, 0xd4, 0xcc, 0xff, 0x9c, 0x93, 0x8c, 0xff,
+    0x88, 0x8a, 0x84, 0xff, 0x8f, 0x86, 0x7c, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfb, 0xfe, 0xec, 0xff, 0xfb, 0xfe, 0xec, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfc, 0xf9, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xfc, 0xf9, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfc, 0xf9, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf0, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x88, 0x8a, 0x84, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x71, 0x72, 0x74, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x71, 0x6a, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x6c, 0x66, 0x6c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x83, 0x82, 0x84, 0xff,
+    0x7b, 0x7a, 0x7c, 0xff, 0x71, 0x72, 0x6c, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x5c, 0x42, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x69, 0x4e, 0x4c, 0xff, 0x5c, 0x42, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x4e, 0x42, 0x44, 0xff, 0x60, 0x46, 0x3c, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0x96, 0x85, 0x84, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x94, 0x8b, 0x84, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0x89, 0x86, 0x84, 0xff, 0x9e, 0x8e, 0x94, 0xff, 0x9c, 0x9a, 0x94, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0xa4, 0x9e, 0xa4, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xc2, 0xc2, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xcf, 0xc6, 0xcc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xc8, 0xca, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcf, 0xc6, 0xcc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xd4, 0xc6, 0xc4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xc6, 0xb1, 0xb4, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x9c, 0x9a, 0x94, 0xff, 0xfb, 0xf9, 0xec, 0xff,
+    0xfb, 0xf9, 0xec, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x71, 0x72, 0x74, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x6c, 0x66, 0x6c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x71, 0x72, 0x74, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x69, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x61, 0x48, 0x44, 0xff, 0x5c, 0x42, 0x44, 0xff,
+    0x5c, 0x42, 0x3c, 0xff, 0x53, 0x41, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x96, 0x85, 0x84, 0xff,
+    0x8e, 0x7a, 0x7c, 0xff, 0x8c, 0x81, 0x84, 0xff, 0xb1, 0xaa, 0xa4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0x8c, 0x81, 0x84, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0x94, 0x8e, 0x94, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xd7, 0xd6, 0xd4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0xcc, 0xbe, 0xc4, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0x92, 0x92, 0x8c, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xfb, 0xfe, 0xec, 0xff, 0xfb, 0xfe, 0xec, 0xff, 0xfb, 0xfe, 0xec, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfa, 0xfe, 0xdc, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x63, 0x6a, 0x64, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x83, 0x82, 0x84, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x71, 0x72, 0x6c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x53, 0x41, 0x3c, 0xff, 0x61, 0x48, 0x44, 0xff, 0x61, 0x48, 0x44, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x8e, 0x7a, 0x7c, 0xff,
+    0x78, 0x77, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xae, 0xa4, 0xa4, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x8c, 0x81, 0x84, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x94, 0x8c, 0x8c, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xd7, 0xd6, 0xd4, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xcf, 0xc6, 0xcc, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcf, 0xc6, 0xcc, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xcc, 0xbd, 0xbc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0x9c, 0x93, 0x8c, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x94, 0x8e, 0x94, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0x88, 0x8a, 0x84, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x61, 0x48, 0x44, 0xff, 0x58, 0x49, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x89, 0x86, 0x84, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xd4, 0xc6, 0xc4, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x69, 0x55, 0x54, 0xff, 0x75, 0x62, 0x64, 0xff,
+    0x94, 0x8c, 0x8c, 0xff, 0x89, 0x86, 0x84, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xb1, 0xaa, 0xa4, 0xff, 0xc4, 0xbe, 0xc4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0x7b, 0x7a, 0x7c, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xbe, 0xc4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xb4, 0xaa, 0xac, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xc5, 0xb7, 0xb4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xd7, 0xd6, 0xd4, 0xff, 0x9c, 0x9a, 0x94, 0xff, 0xe2, 0xdc, 0xcc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfb, 0xfe, 0xec, 0xff, 0xfb, 0xfe, 0xec, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x69, 0x4e, 0x4c, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0x96, 0x86, 0x8c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x9c, 0x9a, 0x94, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x94, 0x8e, 0x94, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xd7, 0xd6, 0xd4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xc5, 0xb7, 0xb4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0x9e, 0x8e, 0x94, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xd9, 0xd4, 0xcc, 0xff, 0xe4, 0xe2, 0xd8, 0xff,
+    0xfb, 0xfe, 0xec, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x6b, 0x56, 0x5c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0xb1, 0xaa, 0xa4, 0xff, 0xbc, 0xb0, 0xac, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xe4, 0xce, 0xcc, 0xff, 0xd5, 0xcd, 0xcc, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xc4, 0xbe, 0xc4, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xac, 0xa9, 0xac, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xe4, 0xe1, 0xe4, 0xff,
+    0xec, 0xea, 0xec, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xc4, 0xbe, 0xc4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xbc, 0xb1, 0xb4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xb4, 0xaa, 0xac, 0xff, 0xbc, 0xaa, 0xac, 0xff, 0xcc, 0xbe, 0xc4, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xd8, 0xdc, 0xd4, 0xff, 0xe8, 0xe7, 0xe4, 0xff,
+    0xfb, 0xf9, 0xec, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfb, 0xfe, 0xec, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x78, 0x77, 0x74, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x78, 0x77, 0x74, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xb1, 0xaa, 0xa4, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xe6, 0xd6, 0xd6, 0xff, 0xcc, 0xbd, 0xbc, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x84, 0x77, 0x74, 0xff, 0x9e, 0x8b, 0x84, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x89, 0x86, 0x84, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xd9, 0xd4, 0xcc, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xd7, 0xd6, 0xd4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xe8, 0xe7, 0xe4, 0xff,
+    0xe8, 0xe7, 0xe4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xd5, 0xcd, 0xcc, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0xcf, 0xc6, 0xcc, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0xc5, 0xb7, 0xb4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfb, 0xfe, 0xec, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x71, 0x6a, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0x83, 0x82, 0x84, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0xe4, 0xe1, 0xe4, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xe8, 0xe7, 0xe4, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xe4, 0xde, 0xdc, 0xff, 0xe4, 0xe1, 0xe4, 0xff,
+    0xf4, 0xf2, 0xf4, 0xff, 0xe8, 0xe7, 0xe4, 0xff, 0xcf, 0xc6, 0xcc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xcf, 0xc6, 0xcc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xba, 0xbc, 0xff, 0xac, 0xa9, 0xac, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xd9, 0xd4, 0xcc, 0xff, 0xe8, 0xe7, 0xe4, 0xff,
+    0xfb, 0xf9, 0xec, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfb, 0xfe, 0xec, 0xff,
+    0xfb, 0xfe, 0xec, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x6c, 0x66, 0x6c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x7b, 0x7a, 0x7c, 0xff,
+    0x89, 0x86, 0x84, 0xff, 0x83, 0x82, 0x84, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xbc, 0xb1, 0xb4, 0xff, 0xae, 0xa4, 0xa4, 0xff, 0x84, 0x79, 0x7c, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x81, 0x72, 0x74, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xc8, 0xca, 0xc4, 0xff, 0xe4, 0xe1, 0xe4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xec, 0xea, 0xec, 0xff, 0xec, 0xea, 0xec, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xd9, 0xd4, 0xcc, 0xff,
+    0xd8, 0xdc, 0xd4, 0xff, 0xfb, 0xf9, 0xec, 0xff, 0xfb, 0xf9, 0xec, 0xff,
+    0xfb, 0xfe, 0xec, 0xff, 0xfb, 0xfe, 0xec, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfb, 0xfe, 0xec, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x71, 0x72, 0x74, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x71, 0x72, 0x6c, 0xff, 0x7b, 0x7a, 0x7c, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0xa4, 0x9e, 0xa4, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x84, 0x79, 0x7c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xd8, 0xdc, 0xd4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xcc, 0xc5, 0xc4, 0xff, 0xc2, 0xc2, 0xbc, 0xff, 0xcf, 0xc6, 0xcc, 0xff,
+    0xbc, 0xb6, 0xac, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc8, 0xca, 0xc4, 0xff,
+    0xc8, 0xca, 0xc4, 0xff, 0xf2, 0xf0, 0xec, 0xff, 0xf2, 0xf0, 0xec, 0xff,
+    0xfb, 0xfe, 0xec, 0xff, 0xfb, 0xfe, 0xec, 0xff, 0xfb, 0xfe, 0xec, 0xff,
+    0xfb, 0xfe, 0xec, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xfa, 0xfe, 0xe4, 0xff,
+    0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x7b, 0x7a, 0x7c, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x78, 0x77, 0x74, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0xc6, 0xb1, 0xb4, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xb3, 0xae, 0xac, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xcf, 0xc6, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xcf, 0xc6, 0xcc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xcf, 0xc6, 0xcc, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xd9, 0xd4, 0xcc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xd8, 0xdc, 0xd4, 0xff, 0xfc, 0xfe, 0xf4, 0xff,
+    0xfb, 0xfe, 0xec, 0xff, 0xfa, 0xfe, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfb, 0xfe, 0xec, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x63, 0x6a, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x7b, 0x7a, 0x7c, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x8c, 0x86, 0x8c, 0xff, 0xac, 0xa9, 0xac, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xc5, 0xc4, 0xff,
+    0xe4, 0xe1, 0xe4, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xd7, 0xd6, 0xd4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xe4, 0xe1, 0xe4, 0xff,
+    0xd7, 0xd6, 0xd4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xa1, 0xa2, 0x9c, 0xff, 0xbc, 0xb6, 0xac, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xd8, 0xdc, 0xd4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xf2, 0xf0, 0xec, 0xff,
+    0xfb, 0xf9, 0xec, 0xff, 0xfb, 0xf9, 0xec, 0xff, 0xfb, 0xfe, 0xec, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xfb, 0xf9, 0xec, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xfb, 0xf9, 0xec, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x63, 0x6a, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x71, 0x6a, 0x64, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x94, 0x8c, 0x8c, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xc4, 0xbe, 0xc4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xd6, 0xd2, 0xd4, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xe4, 0xe1, 0xe4, 0xff, 0xe4, 0xe2, 0xd8, 0xff, 0xe4, 0xe1, 0xe4, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xc8, 0xca, 0xc4, 0xff, 0xe4, 0xe2, 0xd8, 0xff, 0xe8, 0xe7, 0xe4, 0xff,
+    0xfb, 0xf9, 0xec, 0xff, 0xfb, 0xf9, 0xec, 0xff, 0xe4, 0xe2, 0xd8, 0xff,
+    0xc9, 0xc0, 0xb4, 0xff, 0xb0, 0xa3, 0x9c, 0xff, 0xb1, 0xa3, 0x94, 0xff,
+    0xbc, 0xa4, 0x9c, 0xff, 0xc0, 0xaa, 0x9c, 0xff, 0xd6, 0xc5, 0xbc, 0xff,
+    0xcc, 0xbe, 0xac, 0xff, 0xd9, 0xcc, 0xbc, 0xff, 0xe2, 0xdc, 0xcc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf7, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0xbc, 0xb1, 0xb4, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0xa1, 0x99, 0x9c, 0xff,
+    0xac, 0xa9, 0xac, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xec, 0xea, 0xec, 0xff,
+    0xe8, 0xe7, 0xe4, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xc2, 0xc2, 0xbc, 0xff,
+    0xa3, 0xa3, 0xa4, 0xff, 0xb1, 0xaa, 0xa4, 0xff, 0xb3, 0xae, 0xac, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xd9, 0xd4, 0xcc, 0xff, 0xe8, 0xe7, 0xe4, 0xff,
+    0xd9, 0xd4, 0xcc, 0xff, 0xd7, 0xcc, 0xc4, 0xff, 0xbc, 0xb6, 0xac, 0xff,
+    0xb0, 0xa3, 0x9c, 0xff, 0xc4, 0xb2, 0xac, 0xff, 0xbc, 0xa4, 0x9c, 0xff,
+    0xa4, 0x85, 0x84, 0xff, 0x9e, 0x8b, 0x84, 0xff, 0xa7, 0x94, 0x84, 0xff,
+    0x9c, 0x8e, 0x7c, 0xff, 0xa9, 0x9b, 0x8c, 0xff, 0xb4, 0xaa, 0x94, 0xff,
+    0xbc, 0xb6, 0xac, 0xff, 0xda, 0xd4, 0xc4, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0xba, 0xb6, 0xb4, 0xff, 0xa4, 0x9e, 0xa4, 0xff, 0x89, 0x86, 0x84, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x88, 0x8a, 0x84, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0x89, 0x86, 0x84, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0x83, 0x82, 0x84, 0xff, 0x94, 0x8e, 0x94, 0xff,
+    0xd7, 0xd6, 0xd4, 0xff, 0xf4, 0xf2, 0xf4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xe4, 0xe1, 0xe4, 0xff, 0xd8, 0xdc, 0xd4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xd6, 0xd2, 0xd4, 0xff,
+    0xa1, 0x99, 0x9c, 0xff, 0xb3, 0xae, 0xac, 0xff, 0xbc, 0xb6, 0xac, 0xff,
+    0xb1, 0xaa, 0xa4, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xe4, 0xe2, 0xd8, 0xff,
+    0xf2, 0xf0, 0xec, 0xff, 0xd8, 0xdc, 0xd4, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0xcc, 0xbd, 0xbc, 0xff, 0xef, 0xe2, 0xdc, 0xff, 0xc6, 0xb1, 0xb4, 0xff,
+    0xac, 0x8d, 0x8c, 0xff, 0xac, 0x8d, 0x84, 0xff, 0xa4, 0x89, 0x7c, 0xff,
+    0x9c, 0x88, 0x7c, 0xff, 0x9c, 0x8e, 0x7c, 0xff, 0x9c, 0x8e, 0x7c, 0xff,
+    0xb1, 0xa3, 0x94, 0xff, 0xb1, 0xa3, 0x94, 0xff, 0xb4, 0xae, 0x9c, 0xff,
+    0xd9, 0xcc, 0xbc, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0x81, 0x7e, 0x7c, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xa1, 0x99, 0x9c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x7b, 0x7a, 0x7c, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0x88, 0x8a, 0x84, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x83, 0x82, 0x84, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0x9c, 0x9a, 0x94, 0xff, 0x89, 0x86, 0x84, 0xff, 0x71, 0x72, 0x6c, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xe8, 0xe7, 0xe4, 0xff, 0xec, 0xea, 0xec, 0xff,
+    0xe8, 0xe7, 0xe4, 0xff, 0xe4, 0xe1, 0xe4, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xc4, 0xbe, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xc4, 0xc3, 0xc4, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0x9c, 0x9a, 0x94, 0xff, 0xac, 0xa9, 0xac, 0xff, 0xd7, 0xd6, 0xd4, 0xff,
+    0xf2, 0xf0, 0xec, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xcc, 0xc2, 0xbc, 0xff, 0xdc, 0xba, 0xbc, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0xa4, 0x85, 0x84, 0xff, 0x9c, 0x88, 0x7c, 0xff,
+    0x9c, 0x88, 0x7c, 0xff, 0x9c, 0x88, 0x7c, 0xff, 0x8f, 0x86, 0x7c, 0xff,
+    0xa4, 0x86, 0x74, 0xff, 0x9c, 0x88, 0x7c, 0xff, 0xa8, 0x93, 0x8c, 0xff,
+    0xb1, 0xa3, 0x94, 0xff, 0xb4, 0xae, 0x9c, 0xff, 0xe2, 0xdc, 0xcc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0x83, 0x82, 0x84, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0x9a, 0x94, 0x94, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0x7b, 0x7a, 0x7c, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x94, 0x8e, 0x94, 0xff, 0xba, 0xb6, 0xb4, 0xff, 0xcc, 0xcc, 0xcc, 0xff,
+    0xe8, 0xe7, 0xe4, 0xff, 0xd7, 0xd6, 0xd4, 0xff, 0xdc, 0xd6, 0xdc, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xba, 0xb6, 0xb4, 0xff,
+    0xd9, 0xd4, 0xcc, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xac, 0xa9, 0xac, 0xff,
+    0xa1, 0x9e, 0x9c, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xf4, 0xea, 0xe4, 0xff, 0xbc, 0xb0, 0xac, 0xff,
+    0xbc, 0xaa, 0xac, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0xa8, 0x93, 0x8c, 0xff,
+    0xa4, 0x85, 0x84, 0xff, 0xa4, 0x85, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0xbc, 0xa4, 0x9c, 0xff, 0xbf, 0xaa, 0xa4, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xac, 0x8d, 0x84, 0xff, 0x9c, 0x88, 0x7c, 0xff,
+    0x90, 0x7f, 0x74, 0xff, 0xac, 0x8d, 0x84, 0xff, 0xba, 0xb0, 0xa4, 0xff,
+    0xf4, 0xe9, 0xd4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf7, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x7b, 0x7a, 0x7c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x71, 0x72, 0x74, 0xff,
+    0x88, 0x8a, 0x84, 0xff, 0x89, 0x86, 0x84, 0xff, 0x7b, 0x7a, 0x7c, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x78, 0x77, 0x74, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xac, 0xa9, 0xac, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0x8b, 0x8b, 0x8c, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xbc, 0xb9, 0xbc, 0xff,
+    0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xdc, 0xdc, 0xdc, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xbc, 0xb9, 0xbc, 0xff, 0xac, 0xa9, 0xac, 0xff,
+    0xdc, 0xdc, 0xdc, 0xff, 0xd6, 0xd2, 0xd4, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xbc, 0xb0, 0xac, 0xff, 0xa6, 0x95, 0x94, 0xff, 0x96, 0x86, 0x8c, 0xff,
+    0x9e, 0x8b, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xa4, 0x85, 0x84, 0xff,
+    0xa4, 0x85, 0x84, 0xff, 0xa8, 0x93, 0x8c, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0xbd, 0xa6, 0xa4, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xa6, 0x95, 0x94, 0xff,
+    0xa4, 0x85, 0x84, 0xff, 0x8f, 0x86, 0x7c, 0xff, 0xa7, 0x94, 0x84, 0xff,
+    0xba, 0xb0, 0xa4, 0xff, 0xe4, 0xe2, 0xd8, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf7, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x7b, 0x7a, 0x7c, 0xff, 0x63, 0x6a, 0x64, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x63, 0x6a, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x7b, 0x7a, 0x7c, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0x7b, 0x7a, 0x7c, 0xff, 0x9c, 0x9a, 0x94, 0xff,
+    0x71, 0x72, 0x74, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xc8, 0xca, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0xc2, 0xbe, 0xbc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xe4, 0xe1, 0xe4, 0xff, 0xd4, 0xc6, 0xc4, 0xff, 0xd5, 0xcd, 0xcc, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xa8, 0x93, 0x8c, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x9c, 0x7a, 0x7c, 0xff, 0xa4, 0x85, 0x84, 0xff, 0xa4, 0x85, 0x84, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0xb4, 0x96, 0x94, 0xff,
+    0xbd, 0xa6, 0xa4, 0xff, 0xc5, 0xb7, 0xb4, 0xff, 0xbc, 0xa4, 0x9c, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0x9c, 0x88, 0x7c, 0xff, 0x9c, 0x88, 0x7c, 0xff,
+    0x9c, 0x92, 0x84, 0xff, 0xc7, 0xb8, 0xac, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x50, 0x4e, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff, 0x63, 0x6a, 0x64, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0xa1, 0xa2, 0x9c, 0xff, 0xb4, 0xb2, 0xb4, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xc2, 0xc2, 0xbc, 0xff, 0x83, 0x82, 0x84, 0xff,
+    0x7b, 0x7a, 0x7c, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0xdc, 0xd6, 0xdc, 0xff, 0xd4, 0xc6, 0xc4, 0xff, 0xd4, 0xc6, 0xc4, 0xff,
+    0xc6, 0xb1, 0xb4, 0xff, 0xe6, 0xd6, 0xd6, 0xff, 0xcc, 0xbe, 0xc4, 0xff,
+    0xb4, 0x96, 0x94, 0xff, 0xa4, 0x85, 0x84, 0xff, 0x9c, 0x7a, 0x74, 0xff,
+    0x9c, 0x7a, 0x7c, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0xa6, 0x95, 0x94, 0xff, 0xb0, 0xa3, 0x9c, 0xff,
+    0xad, 0x9e, 0x9e, 0xff, 0xa8, 0x93, 0x8c, 0xff, 0x90, 0x7f, 0x74, 0xff,
+    0x9c, 0x81, 0x74, 0xff, 0xa9, 0x9b, 0x8c, 0xff, 0xd8, 0xdc, 0xd4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x8b, 0x8b, 0x8c, 0xff, 0xc4, 0xc3, 0xc4, 0xff,
+    0x9a, 0x94, 0x94, 0xff, 0xb4, 0xb2, 0xb4, 0xff, 0x71, 0x72, 0x74, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0x89, 0x86, 0x84, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0xbc, 0xb9, 0xbc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xc2, 0xbe, 0xbc, 0xff,
+    0xa6, 0x95, 0x94, 0xff, 0xd4, 0xc6, 0xc4, 0xff, 0xe4, 0xd2, 0xd4, 0xff,
+    0xb4, 0x9b, 0x94, 0xff, 0x96, 0x86, 0x8c, 0xff, 0x9c, 0x7a, 0x7c, 0xff,
+    0x9c, 0x7a, 0x74, 0xff, 0x8e, 0x7a, 0x7c, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0xb4, 0x9b, 0x94, 0xff, 0xad, 0x9e, 0x9e, 0xff,
+    0xba, 0xb0, 0xa4, 0xff, 0xbf, 0xaa, 0xa4, 0xff, 0xa8, 0x93, 0x8c, 0xff,
+    0x84, 0x7e, 0x74, 0xff, 0x90, 0x7f, 0x74, 0xff, 0xa9, 0x9b, 0x8c, 0xff,
+    0xd9, 0xc6, 0xb4, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x63, 0x6a, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0xa1, 0x9e, 0x9c, 0xff,
+    0x81, 0x7e, 0x7c, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x83, 0x82, 0x84, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0xb4, 0xb2, 0xb4, 0xff, 0xcc, 0xc5, 0xc4, 0xff, 0xac, 0xa9, 0xac, 0xff,
+    0x7b, 0x7a, 0x7c, 0xff, 0xbf, 0xaa, 0xa4, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x9c, 0x7a, 0x74, 0xff, 0x8e, 0x72, 0x74, 0xff,
+    0x9c, 0x7a, 0x7c, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0x8e, 0x79, 0x74, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0xa8, 0x93, 0x8c, 0xff, 0xa8, 0x9b, 0x94, 0xff,
+    0xae, 0xa4, 0xa4, 0xff, 0xbf, 0xaa, 0xa4, 0xff, 0xa8, 0x93, 0x8c, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x8a, 0x76, 0x6c, 0xff, 0x84, 0x7e, 0x74, 0xff,
+    0xa9, 0x9b, 0x8c, 0xff, 0xc9, 0xc0, 0xb4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x83, 0x82, 0x84, 0xff,
+    0xb3, 0xae, 0xac, 0xff, 0x9c, 0x9a, 0x94, 0xff, 0xa3, 0xa3, 0xa4, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x9c, 0x93, 0x8c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x81, 0x72, 0x74, 0xff, 0x7f, 0x72, 0x6c, 0xff,
+    0x8f, 0x7f, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x8e, 0x79, 0x74, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x96, 0x85, 0x84, 0xff, 0xa4, 0x85, 0x84, 0xff,
+    0xa8, 0x93, 0x8c, 0xff, 0xb4, 0x9b, 0x94, 0xff, 0xa8, 0x93, 0x8c, 0xff,
+    0x7f, 0x72, 0x6c, 0xff, 0x8c, 0x6e, 0x64, 0xff, 0x90, 0x7f, 0x74, 0xff,
+    0xa7, 0x94, 0x84, 0xff, 0xb0, 0xa3, 0x9c, 0xff, 0xe4, 0xd2, 0xc4, 0xff,
+    0xf2, 0xe9, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x58, 0x49, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x64, 0x6a, 0x6c, 0xff, 0x92, 0x92, 0x8c, 0xff, 0x64, 0x6a, 0x6c, 0xff,
+    0x83, 0x82, 0x84, 0xff, 0x7b, 0x7a, 0x7c, 0xff, 0x8b, 0x8b, 0x8c, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x7f, 0x72, 0x6c, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x8e, 0x72, 0x74, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x96, 0x85, 0x84, 0xff, 0x9c, 0x80, 0x7c, 0xff,
+    0x96, 0x85, 0x84, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0x9e, 0x8b, 0x84, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x9c, 0x92, 0x84, 0xff, 0x8e, 0x79, 0x74, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0xa7, 0x94, 0x84, 0xff, 0xb1, 0xa3, 0x94, 0xff,
+    0xda, 0xd4, 0xc4, 0xff, 0xf2, 0xe9, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf3, 0xf2, 0xdc, 0xff, 0xf3, 0xf2, 0xdc, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x64, 0x4e, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x71, 0x6a, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff, 0x71, 0x72, 0x6c, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x81, 0x72, 0x74, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x96, 0x86, 0x8c, 0xff, 0xad, 0x9a, 0x9c, 0xff,
+    0xa4, 0x85, 0x84, 0xff, 0xa4, 0x85, 0x84, 0xff, 0x8d, 0x72, 0x6b, 0xff,
+    0x78, 0x66, 0x64, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x9c, 0x7a, 0x74, 0xff, 0xa4, 0x89, 0x7c, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0xe2, 0xdc, 0xcc, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x64, 0x6a, 0x6c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x58, 0x49, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x81, 0x7e, 0x7c, 0xff, 0x78, 0x66, 0x64, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x9d, 0x8d, 0x8c, 0xff, 0xbc, 0xaa, 0xac, 0xff,
+    0xac, 0x8d, 0x8c, 0xff, 0x96, 0x86, 0x8c, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x75, 0x62, 0x64, 0xff, 0x84, 0x77, 0x74, 0xff, 0xbd, 0xa6, 0xa4, 0xff,
+    0x9c, 0x80, 0x7c, 0xff, 0x8e, 0x79, 0x74, 0xff, 0x9c, 0x7a, 0x74, 0xff,
+    0x9c, 0x88, 0x7c, 0xff, 0xa8, 0x9b, 0x94, 0xff, 0xe4, 0xe2, 0xd8, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0xf2, 0xe9, 0xdc, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x6b, 0x56, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x70, 0x66, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x77, 0x66, 0x6c, 0xff, 0x7e, 0x6d, 0x6c, 0xff, 0x84, 0x79, 0x7c, 0xff,
+    0x96, 0x86, 0x8c, 0xff, 0xac, 0x8d, 0x84, 0xff, 0x8e, 0x72, 0x74, 0xff,
+    0x7f, 0x6a, 0x64, 0xff, 0xad, 0x9e, 0x9e, 0xff, 0xba, 0xb0, 0xa4, 0xff,
+    0xb4, 0x9b, 0x94, 0xff, 0x8e, 0x72, 0x74, 0xff, 0x8e, 0x79, 0x74, 0xff,
+    0x8e, 0x79, 0x74, 0xff, 0x84, 0x7e, 0x74, 0xff, 0xda, 0xd4, 0xc4, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0xf4, 0xf8, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x53, 0x41, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x78, 0x66, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x6c, 0x61, 0x64, 0xff, 0x8e, 0x79, 0x74, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0xa8, 0x93, 0x8c, 0xff, 0x8f, 0x7f, 0x7c, 0xff,
+    0x72, 0x62, 0x5c, 0xff, 0x7f, 0x72, 0x6c, 0xff, 0x9d, 0x8d, 0x8c, 0xff,
+    0xa8, 0x9b, 0x94, 0xff, 0x9c, 0x80, 0x7c, 0xff, 0x8e, 0x79, 0x74, 0xff,
+    0x7f, 0x72, 0x6c, 0xff, 0x8f, 0x86, 0x7c, 0xff, 0xb1, 0xaa, 0xa4, 0xff,
+    0xe4, 0xe2, 0xd8, 0xff, 0xf4, 0xf2, 0xe4, 0xff, 0xf3, 0xf2, 0xdc, 0xff,
+    0xf4, 0xf2, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x64, 0x4e, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x6b, 0x56, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x77, 0x66, 0x6c, 0xff,
+    0x7e, 0x6d, 0x6c, 0xff, 0x8f, 0x7f, 0x7c, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x71, 0x6a, 0x64, 0xff, 0x7e, 0x6d, 0x6c, 0xff,
+    0x9d, 0x8d, 0x8c, 0xff, 0x84, 0x79, 0x7c, 0xff, 0x7f, 0x72, 0x6c, 0xff,
+    0x7f, 0x72, 0x6c, 0xff, 0x7c, 0x72, 0x64, 0xff, 0x94, 0x8b, 0x84, 0xff,
+    0xda, 0xd4, 0xc4, 0xff, 0xf4, 0xea, 0xe4, 0xff, 0xf2, 0xe9, 0xdc, 0xff,
+    0xf4, 0xea, 0xe4, 0xff, 0xf4, 0xf8, 0xe4, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x42, 0x42, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x6f, 0x6c, 0x6c, 0xff, 0x78, 0x66, 0x64, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x63, 0x66, 0x64, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x8c, 0x81, 0x84, 0xff, 0x81, 0x72, 0x74, 0xff, 0x81, 0x72, 0x74, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x63, 0x6a, 0x64, 0xff, 0x84, 0x7e, 0x74, 0xff,
+    0xc2, 0xbe, 0xbc, 0xff, 0xe4, 0xe2, 0xd8, 0xff, 0xc9, 0xc0, 0xb4, 0xff,
+    0xf4, 0xea, 0xe4, 0xff, 0xf4, 0xf2, 0xe4, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x42, 0x42, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x69, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x70, 0x5e, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x63, 0x66, 0x64, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x81, 0x72, 0x74, 0xff, 0x84, 0x77, 0x74, 0xff, 0x77, 0x66, 0x6c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x71, 0x6a, 0x64, 0xff, 0x71, 0x72, 0x6c, 0xff,
+    0xb1, 0xaa, 0xa4, 0xff, 0xd6, 0xc5, 0xbc, 0xff, 0x9a, 0x94, 0x94, 0xff,
+    0xd9, 0xd4, 0xcc, 0xff, 0xe4, 0xe2, 0xd8, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x6b, 0x56, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x6c, 0x61, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x6c, 0x61, 0x64, 0xff,
+    0x6c, 0x66, 0x6c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x71, 0x6a, 0x64, 0xff, 0x6f, 0x6c, 0x6c, 0xff,
+    0x84, 0x77, 0x74, 0xff, 0x89, 0x86, 0x84, 0xff, 0x8f, 0x86, 0x7c, 0xff,
+    0xcc, 0xc2, 0xbc, 0xff, 0xe4, 0xe2, 0xd8, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x34, 0x2e, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x6f, 0x6c, 0x6c, 0xff, 0x71, 0x6a, 0x64, 0xff,
+    0x71, 0x6a, 0x64, 0xff, 0x70, 0x66, 0x5c, 0xff, 0x72, 0x62, 0x5c, 0xff,
+    0x88, 0x8a, 0x84, 0xff, 0xa8, 0x9b, 0x94, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x6b, 0x56, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x5f, 0x62, 0x64, 0xff, 0x5f, 0x62, 0x64, 0xff, 0x5d, 0x62, 0x5c, 0xff,
+    0x63, 0x66, 0x64, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x72, 0x5b, 0x54, 0xff,
+    0x78, 0x77, 0x74, 0xff, 0x8f, 0x86, 0x7c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x34, 0x32, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x5d, 0x62, 0x5c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x70, 0x5e, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x70, 0x66, 0x5c, 0xff, 0x63, 0x66, 0x64, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x6b, 0x56, 0x5c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4e, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x4e, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x64, 0x5d, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x69, 0x55, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x2e, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x64, 0x5d, 0x5c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x32, 0x2c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x30, 0x2a, 0x24, 0xff, 0x2c, 0x26, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x64, 0x4e, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x58, 0x49, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x2c, 0x26, 0x2c, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x41, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x69, 0x55, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x50, 0x4e, 0x44, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x6b, 0x56, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x58, 0x49, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x50, 0x4e, 0x44, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x50, 0x4e, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x2e, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x46, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x53, 0x41, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x5d, 0x5a, 0x54, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x64, 0x4e, 0x54, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x53, 0x41, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x64, 0x4e, 0x54, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x50, 0x4e, 0x44, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x50, 0x4e, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x44, 0x46, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x5d, 0x5a, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x50, 0x4e, 0x44, 0xff, 0x44, 0x46, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff, 0x53, 0x5a, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x32, 0x2c, 0xff, 0x3c, 0x32, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x34, 0x32, 0x2c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x64, 0x5d, 0x5c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x34, 0x2e, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x5f, 0x62, 0x64, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x46, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x50, 0x4e, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x64, 0x4e, 0x54, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x32, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x44, 0x46, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x53, 0x5a, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x2e, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x34, 0x32, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x32, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x30, 0x2a, 0x24, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x53, 0x41, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x46, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x46, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x2a, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x30, 0x2a, 0x24, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x46, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x44, 0x46, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x30, 0x2a, 0x24, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3c, 0x32, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x32, 0x2c, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x32, 0x2c, 0xff,
+    0x3c, 0x32, 0x2c, 0xff, 0x34, 0x2e, 0x34, 0xff, 0x3c, 0x32, 0x2c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x4e, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x53, 0x41, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x53, 0x41, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x4c, 0x52, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x58, 0x5c, 0x5c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x34, 0x2e, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x2c, 0x26, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x32, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x4e, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x58, 0x49, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x53, 0x41, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x2e, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x64, 0x4e, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x34, 0x32, 0x2c, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x2c, 0x26, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x46, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x34, 0x32, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x32, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x32, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x55, 0x52, 0x4c, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x5d, 0x5a, 0x54, 0xff, 0x6b, 0x56, 0x5c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x53, 0x41, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x52, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x4e, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x34, 0x2e, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x32, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x32, 0x2c, 0xff, 0x3c, 0x32, 0x2c, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x5c, 0x3e, 0x34, 0xff, 0x3c, 0x32, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x49, 0x4c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x53, 0x41, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x5d, 0x62, 0x5c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x34, 0x2e, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x2c, 0x26, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x2c, 0x26, 0x2c, 0xff, 0x44, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x2c, 0x26, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x34, 0x32, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x58, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x4e, 0x4c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x2c, 0x26, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x30, 0x2a, 0x24, 0xff, 0x2c, 0x26, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x30, 0x26, 0x24, 0xff, 0x2c, 0x26, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x44, 0x47, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x32, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x55, 0x54, 0xff, 0x58, 0x49, 0x4c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x55, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x53, 0x5a, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x30, 0x26, 0x24, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x55, 0x4e, 0x4c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x2c, 0x26, 0x2c, 0xff,
+    0x2c, 0x26, 0x2c, 0xff, 0x2c, 0x26, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x2c, 0x26, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x30, 0x2a, 0x24, 0xff, 0x34, 0x2e, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x2e, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x4e, 0x42, 0x44, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x30, 0x2a, 0x24, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x34, 0x2e, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x4e, 0x42, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x34, 0x32, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x3a, 0x3c, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x49, 0x4a, 0x4c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x30, 0x26, 0x24, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x4c, 0x47, 0x44, 0xff, 0x4c, 0x53, 0x54, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x2c, 0x26, 0x2c, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x2c, 0x26, 0x2c, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x55, 0x55, 0x54, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x44, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x42, 0x42, 0x44, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff,
+    0x30, 0x2a, 0x24, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3b, 0x3a, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x53, 0x54, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x34, 0x33, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x34, 0x33, 0x34, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x34, 0x32, 0x2c, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x34, 0x33, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x2e, 0x2c, 0xff, 0x3c, 0x2e, 0x2c, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x30, 0x26, 0x24, 0xff, 0x30, 0x26, 0x24, 0xff,
+    0x3c, 0x2e, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x30, 0x2a, 0x24, 0xff, 0x33, 0x2c, 0x2c, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x55, 0x52, 0x4c, 0xff, 0x55, 0x52, 0x4c, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x3c, 0x32, 0x2c, 0xff, 0x33, 0x2c, 0x2c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x4c, 0x53, 0x54, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4c, 0x52, 0x4c, 0xff,
+    0x4b, 0x4e, 0x4c, 0xff, 0x55, 0x55, 0x54, 0xff, 0x4b, 0x4e, 0x4c, 0xff,
+    0x49, 0x4a, 0x4c, 0xff, 0x34, 0x32, 0x2c, 0xff, 0x34, 0x32, 0x2c, 0xff,
+    0x33, 0x2c, 0x2c, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x4e, 0x42, 0x44, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x34, 0x2e, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3c, 0x35, 0x34, 0xff, 0x3b, 0x3a, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x34, 0xff, 0x44, 0x3a, 0x3c, 0xff, 0x42, 0x42, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff, 0x49, 0x4a, 0x4c, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x3c, 0x35, 0x34, 0xff, 0x3c, 0x35, 0x34, 0xff,
+    0x3b, 0x3a, 0x3c, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x44, 0x47, 0x44, 0xff,
+    0x44, 0x47, 0x44, 0xff, 0x4c, 0x47, 0x44, 0xff,
+};
diff --git a/projects/libwebp/project.yaml b/projects/libwebp/project.yaml
index 593cd8a..16c58b3 100644
--- a/projects/libwebp/project.yaml
+++ b/projects/libwebp/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://developers.google.com/speed/webp/"
-language: c++
 primary_contact: "jzern@google.com"
 fuzzing_engines:
   - libfuzzer
@@ -19,4 +18,3 @@
   - aosmond@mozilla.com
   - tnikkel@mozilla.com
   - twsmith@mozilla.com
-main_repo: 'https://chromium.googlesource.com/webm/libwebp'
diff --git a/projects/libxls/Dockerfile b/projects/libxls/Dockerfile
index 069fdd4..a6de95c 100644
--- a/projects/libxls/Dockerfile
+++ b/projects/libxls/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER emmiller@gmail.com
 RUN apt-get update && apt-get install -y make autoconf autoconf-archive automake gettext libtool
 
 RUN git clone --depth 1 https://github.com/libxls/libxls libxls
diff --git a/projects/libxls/project.yaml b/projects/libxls/project.yaml
index 28f8313..4915173 100644
--- a/projects/libxls/project.yaml
+++ b/projects/libxls/project.yaml
@@ -1,4 +1,2 @@
 homepage: "https://github.com/libxls/libxls"
-language: c++
 primary_contact: "emmiller@gmail.com"
-main_repo: 'https://github.com/libxls/libxls'
diff --git a/projects/libxml2/Dockerfile b/projects/libxml2/Dockerfile
index 6d64df3..fc821c8 100644
--- a/projects/libxml2/Dockerfile
+++ b/projects/libxml2/Dockerfile
@@ -15,11 +15,11 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER ochang@chromium.org
+RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config
 
-RUN apt-get update && \
-    apt-get install -y --no-install-recommends \
-        make autoconf automake libtool pkg-config \
-        zlib1g-dev zlib1g-dev:i386 liblzma-dev liblzma-dev:i386
 RUN git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git
 WORKDIR libxml2
+
 COPY build.sh $SRC/
+COPY *.cc *.h *.options *.dict $SRC/
diff --git a/projects/libxml2/build.sh b/projects/libxml2/build.sh
index 4240ba7..418792b 100755
--- a/projects/libxml2/build.sh
+++ b/projects/libxml2/build.sh
@@ -16,37 +16,19 @@
 #
 ################################################################################
 
-if [ "$SANITIZER" = undefined ]; then
-    export CFLAGS="$CFLAGS -fsanitize=unsigned-integer-overflow -fno-sanitize-recover=unsigned-integer-overflow"
-    export CXXFLAGS="$CXXFLAGS -fsanitize=unsigned-integer-overflow -fno-sanitize-recover=unsigned-integer-overflow"
-fi
+./autogen.sh
+./configure --with-http=no
+make -j$(nproc) clean
+make -j$(nproc) all
 
-export V=1
+seed_corpus_temp_file="$OUT/xml_seed_corpus.zip"
+zip -r $seed_corpus_temp_file $SRC/libxml2/test
 
-./autogen.sh \
-    --disable-shared \
-    --without-debug \
-    --without-ftp \
-    --without-http \
-    --without-legacy \
-    --without-python
-make -j$(nproc)
+for fuzzer in libxml2_xml_read_memory_fuzzer libxml2_xml_reader_for_file_fuzzer; do
+  $CXX $CXXFLAGS -std=c++11 -Iinclude/ \
+      $SRC/$fuzzer.cc -o $OUT/$fuzzer \
+      $LIB_FUZZING_ENGINE .libs/libxml2.a
 
-cd fuzz
-make clean-corpus
-make fuzz.o
-
-for fuzzer in html regexp schema uri xml xpath; do
-    make $fuzzer.o
-    # Link with $CXX
-    $CXX $CXXFLAGS \
-        $fuzzer.o fuzz.o \
-        -o $OUT/$fuzzer \
-        $LIB_FUZZING_ENGINE \
-        ../.libs/libxml2.a -Wl,-Bstatic -lz -llzma -Wl,-Bdynamic
-
-    [ -e seed/$fuzzer ] || make seed/$fuzzer.stamp
-    zip -j $OUT/${fuzzer}_seed_corpus.zip seed/$fuzzer/*
+  cp $SRC/*.dict $OUT/$fuzzer.dict
+  cp $seed_corpus_temp_file $OUT/${fuzzer}_seed_corpus.zip
 done
-
-cp *.dict *.options $OUT/
diff --git a/projects/libxml2/fuzzer_temp_file.h b/projects/libxml2/fuzzer_temp_file.h
new file mode 100644
index 0000000..fe25cab
--- /dev/null
+++ b/projects/libxml2/fuzzer_temp_file.h
@@ -0,0 +1,81 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Adapter utility from fuzzer input to a temporary file, for fuzzing APIs that
+// require a file instead of an input buffer.
+
+#ifndef FUZZER_TEMP_FILE_H_
+#define FUZZER_TEMP_FILE_H_
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+// Pure-C interface for creating and cleaning up temporary files.
+
+static char* fuzzer_get_tmpfile(const uint8_t* data, size_t size) {
+  char* filename_buffer = strdup("/tmp/generate_temporary_file.XXXXXX");
+  if (!filename_buffer) {
+    perror("Failed to allocate file name buffer.");
+    abort();
+  }
+  const int file_descriptor = mkstemp(filename_buffer);
+  if (file_descriptor < 0) {
+    perror("Failed to make temporary file.");
+    abort();
+  }
+  FILE* file = fdopen(file_descriptor, "wb");
+  if (!file) {
+    perror("Failed to open file descriptor.");
+    close(file_descriptor);
+    abort();
+  }
+  const size_t bytes_written = fwrite(data, sizeof(uint8_t), size, file);
+  if (bytes_written < size) {
+    close(file_descriptor);
+    fprintf(stderr, "Failed to write all bytes to file (%zu out of %zu)",
+            bytes_written, size);
+    abort();
+  }
+  fclose(file);
+  return filename_buffer;
+}
+
+static void fuzzer_release_tmpfile(char* filename) {
+  if (unlink(filename) != 0) {
+    perror("WARNING: Failed to delete temporary file.");
+  }
+  free(filename);
+}
+
+// C++ RAII object for creating temporary files.
+
+#ifdef __cplusplus
+class FuzzerTemporaryFile {
+ public:
+  FuzzerTemporaryFile(const uint8_t* data, size_t size)
+      : filename_(fuzzer_get_tmpfile(data, size)) {}
+
+  ~FuzzerTemporaryFile() { fuzzer_release_tmpfile(filename_); }
+
+  const char* filename() const { return filename_; }
+
+ private:
+  char* filename_;
+};
+#endif
+
+#endif  // FUZZER_TEMP_FILE_H_
diff --git a/projects/libxml2/libxml2_xml_read_memory_fuzzer.cc b/projects/libxml2/libxml2_xml_read_memory_fuzzer.cc
new file mode 100644
index 0000000..6f1d549
--- /dev/null
+++ b/projects/libxml2/libxml2_xml_read_memory_fuzzer.cc
@@ -0,0 +1,48 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <cassert>
+#include <cstddef>
+#include <cstdint>
+
+#include <functional>
+#include <limits>
+#include <string>
+
+#include "libxml/parser.h"
+#include "libxml/xmlsave.h"
+
+void ignore (void* ctx, const char* msg, ...) {
+  // Error handler to avoid spam of error messages from libxml parser.
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+  xmlSetGenericErrorFunc(NULL, &ignore);
+
+  // Test default empty options value and some random combination.
+  std::string data_string(reinterpret_cast<const char*>(data), size);
+  const std::size_t data_hash = std::hash<std::string>()(data_string);
+  const int max_option_value = std::numeric_limits<int>::max();
+  int random_option_value = data_hash % max_option_value;
+
+  // Disable XML_PARSE_HUGE to avoid stack overflow.
+  random_option_value &= ~XML_PARSE_HUGE;
+  const int options[] = {0, random_option_value};
+
+  for (const auto option_value : options) {
+    // Intentionally pass raw data as the API does not require trailing \0.
+    if (auto doc = xmlReadMemory(reinterpret_cast<const char*>(data), size,
+                                 "noname.xml", NULL, option_value)) {
+      auto buf = xmlBufferCreate();
+      assert(buf);
+      auto ctxt = xmlSaveToBuffer(buf, NULL, 0);
+      xmlSaveDoc(ctxt, doc);
+      xmlSaveClose(ctxt);
+      xmlFreeDoc(doc);
+      xmlBufferFree(buf);
+    }
+  }
+
+  return 0;
+}
diff --git a/projects/libxml2/libxml2_xml_reader_for_file_fuzzer.cc b/projects/libxml2/libxml2_xml_reader_for_file_fuzzer.cc
new file mode 100644
index 0000000..4a71aa5
--- /dev/null
+++ b/projects/libxml2/libxml2_xml_reader_for_file_fuzzer.cc
@@ -0,0 +1,52 @@
+// Copyright 2018 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include <fuzzer/FuzzedDataProvider.h>
+
+#include <cstddef>
+#include <cstdint>
+#include <string>
+
+#include "fuzzer_temp_file.h"
+
+#include "libxml/xmlreader.h"
+
+void ignore (void* ctx, const char* msg, ...) {
+  // Error handler to avoid spam of error messages from libxml parser.
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+  xmlSetGenericErrorFunc(NULL, &ignore);
+
+  FuzzedDataProvider provider(data, size);
+  const int options = provider.ConsumeIntegral<int>();
+
+  // libxml does not expect more than 100 characters, let's go beyond that.
+  const std::string encoding = provider.ConsumeRandomLengthString(128);
+  auto file_contents = provider.ConsumeRemainingBytes<uint8_t>();
+
+  FuzzerTemporaryFile file(file_contents.data(), file_contents.size());
+
+  xmlTextReaderPtr xmlReader =
+      xmlReaderForFile(file.filename(), encoding.c_str(), options);
+
+  constexpr int kReadSuccessful = 1;
+  while (xmlTextReaderRead(xmlReader) == kReadSuccessful) {
+    xmlTextReaderNodeType(xmlReader);
+    xmlTextReaderConstValue(xmlReader);
+  }
+
+  xmlFreeTextReader(xmlReader);
+  return EXIT_SUCCESS;
+}
diff --git a/projects/libxml2/project.yaml b/projects/libxml2/project.yaml
index 873e81e..39fdb71 100644
--- a/projects/libxml2/project.yaml
+++ b/projects/libxml2/project.yaml
@@ -1,15 +1,16 @@
 homepage: "http://www.xmlsoft.org/"
-language: c++
 primary_contact: "wellnhofer@aevum.de"
 vendor_ccs:
   - "akilsrin@apple.com"
   - "ddkilzer@apple.com"
   - "benl@google.com"
-  - "simon.lewis@apple.com"
 sanitizers:
   - address
   - memory
   - undefined
+labels:
+  libxml2_xml_reader_for_file_fuzzer:
+    - sundew
 architectures:
   - x86_64
   - i386
@@ -17,4 +18,3 @@
   - libfuzzer
   - honggfuzz
   - afl
-main_repo: 'https://gitlab.gnome.org/GNOME/libxml2.git'
diff --git a/projects/libxml2/xml.dict b/projects/libxml2/xml.dict
new file mode 100644
index 0000000..4ffa6c8
--- /dev/null
+++ b/projects/libxml2/xml.dict
@@ -0,0 +1,87 @@
+# Copyright 2016 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+#
+# AFL dictionary for XML
+# ----------------------
+#
+# Several basic syntax elements and attributes, modeled on libxml2.
+#
+# Created by Michal Zalewski <lcamtuf@google.com>
+#
+
+attr_encoding=" encoding=\"1\""
+attr_generic=" a=\"1\""
+attr_href=" href=\"1\""
+attr_standalone=" standalone=\"no\""
+attr_version=" version=\"1\""
+attr_xml_base=" xml:base=\"1\""
+attr_xml_id=" xml:id=\"1\""
+attr_xml_lang=" xml:lang=\"1\""
+attr_xml_space=" xml:space=\"1\""
+attr_xmlns=" xmlns=\"1\""
+
+entity_builtin="&lt;"
+entity_decimal="&#1;"
+entity_external="&a;"
+entity_hex="&#x1;"
+
+string_any="ANY"
+string_brackets="[]"
+string_cdata="CDATA"
+string_col_fallback=":fallback"
+string_col_generic=":a"
+string_col_include=":include"
+string_dashes="--"
+string_empty="EMPTY"
+string_empty_dblquotes="\"\""
+string_empty_quotes="''"
+string_entities="ENTITIES"
+string_entity="ENTITY"
+string_fixed="#FIXED"
+string_id="ID"
+string_idref="IDREF"
+string_idrefs="IDREFS"
+string_implied="#IMPLIED"
+string_nmtoken="NMTOKEN"
+string_nmtokens="NMTOKENS"
+string_notation="NOTATION"
+string_parentheses="()"
+string_pcdata="#PCDATA"
+string_percent="%a"
+string_public="PUBLIC"
+string_required="#REQUIRED"
+string_schema=":schema"
+string_system="SYSTEM"
+string_ucs4="UCS-4"
+string_utf16="UTF-16"
+string_utf8="UTF-8"
+string_xmlns="xmlns:"
+
+tag_attlist="<!ATTLIST"
+tag_cdata="<![CDATA["
+tag_close="</a>"
+tag_doctype="<!DOCTYPE"
+tag_element="<!ELEMENT"
+tag_entity="<!ENTITY"
+tag_ignore="<![IGNORE["
+tag_include="<![INCLUDE["
+tag_notation="<!NOTATION"
+tag_open="<a>"
+tag_open_close="<a />"
+tag_open_exclamation="<!"
+tag_open_q="<?"
+tag_sq2_close="]]>"
+tag_xml_q="<?xml?>"
diff --git a/projects/libxslt/Dockerfile b/projects/libxslt/Dockerfile
index 2592e6a..b020aeb 100644
--- a/projects/libxslt/Dockerfile
+++ b/projects/libxslt/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER wellnhofer@aevum.de
 
 # Note that we don't use the system libxml2 but a custom instrumented build.
 # libgcrypt is required for the crypto extensions of libexslt.
diff --git a/projects/libxslt/project.yaml b/projects/libxslt/project.yaml
index 09fc830..72d793f 100644
--- a/projects/libxslt/project.yaml
+++ b/projects/libxslt/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.xmlsoft.org/libxslt/"
-language: c++
 primary_contact: "wellnhofer@aevum.de"
 vendor_ccs:
   - "ddkilzer@apple.com"
@@ -8,4 +7,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://gitlab.gnome.org/GNOME/libxslt.git'
diff --git a/projects/libyal/Dockerfile b/projects/libyal/Dockerfile
deleted file mode 100644
index c255806..0000000
--- a/projects/libyal/Dockerfile
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && apt-get install -y make autoconf automake autopoint libtool pkg-config flex byacc
-
-RUN git clone --depth 1 https://github.com/libyal/libfplist.git libfplist
-RUN git clone --depth 1 https://github.com/libyal/libftxf.git libftxf
-RUN git clone --depth 1 https://github.com/libyal/libfusn.git libfusn
-RUN git clone --depth 1 https://github.com/libyal/libfwnt.git libfwnt
-RUN git clone --depth 1 https://github.com/libyal/libfwps.git libfwps
-RUN git clone --depth 1 https://github.com/libyal/libfwsi.git libfwsi
-
-RUN git clone --depth 1 https://github.com/libyal/libagdb.git libagdb
-RUN git clone --depth 1 https://github.com/libyal/libcreg.git libcreg
-RUN git clone --depth 1 https://github.com/libyal/libesedb.git libesedb
-RUN git clone --depth 1 https://github.com/libyal/libevt.git libevt
-RUN git clone --depth 1 https://github.com/libyal/libevtx.git libevtx
-RUN git clone --depth 1 https://github.com/libyal/libexe.git libexe
-RUN git clone --depth 1 https://github.com/libyal/liblnk.git liblnk
-RUN git clone --depth 1 https://github.com/libyal/libmdmp.git libmdmp
-RUN git clone --depth 1 https://github.com/libyal/libmsiecf.git libmsiecf
-RUN git clone --depth 1 https://github.com/libyal/libnk2.git libnk2
-RUN git clone --depth 1 https://github.com/libyal/libolecf.git libolecf
-RUN git clone --depth 1 https://github.com/libyal/libpff.git libpff
-RUN git clone --depth 1 https://github.com/libyal/libregf.git libregf
-RUN git clone --depth 1 https://github.com/libyal/libscca.git libscca
-
-RUN git clone --depth 1 https://github.com/libyal/libfsapfs.git libfsapfs
-RUN git clone --depth 1 https://github.com/libyal/libfsext.git libfsext
-RUN git clone --depth 1 https://github.com/libyal/libfshfs.git libfshfs
-RUN git clone --depth 1 https://github.com/libyal/libfsntfs.git libfsntfs
-RUN git clone --depth 1 https://github.com/libyal/libfsxfs.git libfsxfs
-
-RUN git clone --depth 1 https://github.com/libyal/libbde.git libbde
-RUN git clone --depth 1 https://github.com/libyal/libluksde.git libluksde
-RUN git clone --depth 1 https://github.com/libyal/libvsgpt.git libvsgpt
-RUN git clone --depth 1 https://github.com/libyal/libvslvm.git libvslvm
-RUN git clone --depth 1 https://github.com/libyal/libvsmbr.git libvsmbr
-
-RUN git clone --depth 1 https://github.com/libyal/libewf.git libewf
-RUN git clone --depth 1 https://github.com/libyal/libmodi.git libmodi
-RUN git clone --depth 1 https://github.com/libyal/libqcow.git libqcow
-RUN git clone --depth 1 https://github.com/libyal/libsmraw.git libsmraw
-RUN git clone --depth 1 https://github.com/libyal/libvhdi.git libvhdi
-RUN git clone --depth 1 https://github.com/libyal/libvmdk.git libvmdk
-
-WORKDIR libyal
-COPY build.sh $SRC/
diff --git a/projects/libyal/build.sh b/projects/libyal/build.sh
deleted file mode 100755
index c61ee51..0000000
--- a/projects/libyal/build.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-for PROJECT in ${SRC}/*;
-do
-  PROJECT=$(basename ${PROJECT})
-
-  # A libyal project should have an ossfuzz directory and a synclibs.sh script.
-  if ! test -d ${SRC}/${PROJECT}/ossfuzz || ! test -x ${SRC}/${PROJECT}/synclibs.sh;
-  then
-    continue
-  fi
-  cd ${SRC}/${PROJECT}
-
-  # Prepare the project source for build.
-  ./synclibs.sh
-  ./autogen.sh
-  ./configure --enable-shared=no
-
-  # Build the project and fuzzer binaries.
-  make -j$(nproc) LIB_FUZZING_ENGINE=${LIB_FUZZING_ENGINE}
-
-  # Download the test data if supported.
-  if test -x ./synctestdata.sh;
-  then
-    ./synctestdata.sh
-  fi
-
-  # Copy the fuzzer binaries and test data to the output directory.
-  for FUZZ_TARGET in $(cd ossfuzz && find . -executable -type f);
-  do
-    FUZZ_TARGET=$(basename ${FUZZ_TARGET})
-
-    # Prefix the fuzzer binaries with the project name.
-    cp ossfuzz/${FUZZ_TARGET} ${OUT}/${PROJECT}_${FUZZ_TARGET}
-
-    # Download the test data if supported.
-    LIBYAL_TYPE_NAME=${FUZZ_TARGET/_fuzzer/};
-
-    if test -f tests/data/${LIBYAL_TYPE_NAME/}.1;
-    then
-      (cd tests/data && zip ${OUT}/${PROJECT}_${FUZZ_TARGET}_seed_corpus.zip ${LIBYAL_TYPE_NAME}.*)
-
-    elif test -d tests/input/public;
-    then
-      (cd tests/input/public && zip ${OUT}/${PROJECT}_${FUZZ_TARGET}_seed_corpus.zip *)
-
-    else
-      echo "Missing test data for seed corpus."
-      exit 1
-    fi
-  done
-done
diff --git a/projects/libyal/project.yaml b/projects/libyal/project.yaml
deleted file mode 100644
index 367ab33..0000000
--- a/projects/libyal/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/libyal"
-language: c
-primary_contact: "joachim.metz@gmail.com"
-sanitizers:
-- address
-- memory
-- undefined
-architectures:
-- x86_64
-- i386
-main_repo: 'https://github.com/libyal/libfplist.git'
diff --git a/projects/libyaml/Dockerfile b/projects/libyaml/Dockerfile
index 8477cce..dd99a1c 100644
--- a/projects/libyaml/Dockerfile
+++ b/projects/libyaml/Dockerfile
@@ -15,10 +15,11 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER alex.gaynor@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 
 RUN git clone --depth=1 https://github.com/yaml/libyaml
-RUN zip $SRC/libyaml_seed_corpus.zip libyaml/examples/*
+RUN zip libyaml_fuzzer_seed_corpus.zip libyaml/examples/*
 
 WORKDIR libyaml
-COPY build.sh *.h *_fuzzer.c libyaml_fuzzer.options yaml.dict $SRC/
+COPY build.sh libyaml_fuzzer.cc libyaml_fuzzer.options yaml.dict $SRC/
diff --git a/projects/libyaml/build.sh b/projects/libyaml/build.sh
index 1eb3130..f78b99b 100755
--- a/projects/libyaml/build.sh
+++ b/projects/libyaml/build.sh
@@ -18,22 +18,9 @@
 ./configure
 make "-j$(nproc)"
 
-for fuzzer in $SRC/*_fuzzer.c; do
-  fuzzer_basename=$(basename -s .c $fuzzer)
+$CXX $CXXFLAGS -std=c++11 -Iinclude \
+    $SRC/libyaml_fuzzer.cc -o $OUT/libyaml_fuzzer \
+    $LIB_FUZZING_ENGINE src/.libs/libyaml.a
 
-  $CC $CFLAGS \
-      -I $SRC -Iinclude \
-      -c $fuzzer -o $fuzzer_basename.o
-
-  $CXX $CXXFLAGS \
-      -std=c++11 \
-      $fuzzer_basename.o \
-      -o $OUT/$fuzzer_basename \
-      $LIB_FUZZING_ENGINE \
-      src/.libs/libyaml.a
-
-  cp $SRC/libyaml_seed_corpus.zip "${OUT}/${fuzzer_basename}_seed_corpus.zip"
-  cp $SRC/libyaml_fuzzer.options "${OUT}/${fuzzer_basename}.options"
-done
-
-cp $SRC/yaml.dict $OUT/
+cp $SRC/libyaml_fuzzer_seed_corpus.zip $OUT/
+cp $SRC/*.dict $SRC/*.options $OUT/
diff --git a/projects/libyaml/libyaml_deconstructor_alt_fuzzer.c b/projects/libyaml/libyaml_deconstructor_alt_fuzzer.c
deleted file mode 100644
index b8ac2fe..0000000
--- a/projects/libyaml/libyaml_deconstructor_alt_fuzzer.c
+++ /dev/null
@@ -1,833 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "yaml.h"
-#include "yaml_write_handler.h"
-#include <assert.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef NDEBUG
-#undef NDEBUG
-#endif
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  if (size < 2)
-    return 0;
-
-  bool done = false;
-  bool is_canonical = data[0] & 1;
-  bool is_unicode = data[1] & 1;
-  data += 2;
-  size -= 2;
-
-  yaml_parser_t parser;
-  yaml_emitter_t emitter;
-  yaml_event_t input_event;
-  yaml_document_t output_document;
-
-  int root;
-
-  /* Initialize the parser and emitter objects. */
-
-  if (!yaml_parser_initialize(&parser)) {
-    return 1;
-  }
-
-  if (!yaml_emitter_initialize(&emitter)) {
-    yaml_parser_delete(&parser);
-    return 1;
-  }
-
-  /* Set the parser parameters. */
-
-  yaml_parser_set_input_string(&parser, data, size);
-
-  /* Set the emitter parameters. */
-  yaml_output_buffer_t out = {/*buf=*/NULL, /*size=*/0};
-  yaml_emitter_set_output(&emitter, yaml_write_handler, &out);
-
-  yaml_emitter_set_canonical(&emitter, is_canonical);
-  yaml_emitter_set_unicode(&emitter, is_unicode);
-
-  /* Create and emit the STREAM-START event. */
-
-  if (!yaml_emitter_open(&emitter))
-    goto error;
-
-  /* Create a output_document object. */
-
-  if (!yaml_document_initialize(&output_document, NULL, NULL, NULL, 0, 0))
-    goto error;
-
-  /* Create the root sequence. */
-
-  root = yaml_document_add_sequence(&output_document, NULL,
-                                    YAML_BLOCK_SEQUENCE_STYLE);
-  if (!root)
-    goto error;
-
-  /* Loop through the input events. */
-
-  while (!done) {
-    int properties, key, value, map, seq;
-
-    /* Get the next event. */
-
-    if (!yaml_parser_parse(&parser, &input_event))
-      goto error;
-
-    /* Check if this is the stream end. */
-
-    done = (input_event.type == YAML_STREAM_END_EVENT);
-
-    /* Create a mapping node and attach it to the root sequence. */
-
-    properties = yaml_document_add_mapping(&output_document, NULL,
-                                           YAML_BLOCK_MAPPING_STYLE);
-    if (!properties)
-      goto error;
-    if (!yaml_document_append_sequence_item(&output_document, root, properties))
-      goto error;
-
-    /* Analyze the event. */
-
-    switch (input_event.type) {
-    case YAML_STREAM_START_EVENT:
-
-      /* Add 'type': 'STREAM-START'. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"type", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"STREAM-START", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      /* Add 'encoding': <encoding>. */
-
-      if (input_event.data.stream_start.encoding) {
-        yaml_encoding_t encoding = input_event.data.stream_start.encoding;
-
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"encoding", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        value = yaml_document_add_scalar(
-            &output_document, NULL,
-            (encoding == YAML_UTF8_ENCODING
-                 ? (yaml_char_t *)"utf-8"
-                 : encoding == YAML_UTF16LE_ENCODING
-                       ? (yaml_char_t *)"utf-16-le"
-                       : encoding == YAML_UTF16BE_ENCODING
-                             ? (yaml_char_t *)"utf-16-be"
-                             : (yaml_char_t *)"unknown"),
-            -1, YAML_PLAIN_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, value))
-          goto error;
-      }
-
-      break;
-
-    case YAML_STREAM_END_EVENT:
-
-      /* Add 'type': 'STREAM-END'. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"type", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"STREAM-END", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      break;
-
-    case YAML_DOCUMENT_START_EVENT:
-
-      /* Add 'type': 'DOCUMENT-START'. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"type", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"DOCUMENT-START", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      /* Display the output_document version numbers. */
-
-      if (input_event.data.document_start.version_directive) {
-        yaml_version_directive_t *version =
-            input_event.data.document_start.version_directive;
-        char number[64];
-
-        /* Add 'version': {}. */
-
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"version", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        map = yaml_document_add_mapping(&output_document, NULL,
-                                        YAML_FLOW_MAPPING_STYLE);
-        if (!map)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, map))
-          goto error;
-
-        /* Add 'major': <number>. */
-
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"major", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        sprintf(number, "%d", version->major);
-        value = yaml_document_add_scalar(
-            &output_document, (yaml_char_t *)YAML_INT_TAG,
-            (yaml_char_t *)number, -1, YAML_PLAIN_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, map, key,
-                                               value))
-          goto error;
-
-        /* Add 'minor': <number>. */
-
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"minor", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        sprintf(number, "%d", version->minor);
-        value = yaml_document_add_scalar(
-            &output_document, (yaml_char_t *)YAML_INT_TAG,
-            (yaml_char_t *)number, -1, YAML_PLAIN_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, map, key,
-                                               value))
-          goto error;
-      }
-
-      /* Display the output_document tag directives. */
-
-      if (input_event.data.document_start.tag_directives.start !=
-          input_event.data.document_start.tag_directives.end) {
-        yaml_tag_directive_t *tag;
-
-        /* Add 'tags': []. */
-
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"tags", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        seq = yaml_document_add_sequence(&output_document, NULL,
-                                         YAML_BLOCK_SEQUENCE_STYLE);
-        if (!seq)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, seq))
-          goto error;
-
-        for (tag = input_event.data.document_start.tag_directives.start;
-             tag != input_event.data.document_start.tag_directives.end; tag++) {
-          /* Add {}. */
-
-          map = yaml_document_add_mapping(&output_document, NULL,
-                                          YAML_FLOW_MAPPING_STYLE);
-          if (!map)
-            goto error;
-          if (!yaml_document_append_sequence_item(&output_document, seq, map))
-            goto error;
-
-          /* Add 'handle': <handle>. */
-
-          key = yaml_document_add_scalar(&output_document, NULL,
-                                         (yaml_char_t *)"handle", -1,
-                                         YAML_PLAIN_SCALAR_STYLE);
-          if (!key)
-            goto error;
-          value = yaml_document_add_scalar(&output_document, NULL, tag->handle,
-                                           -1, YAML_DOUBLE_QUOTED_SCALAR_STYLE);
-          if (!value)
-            goto error;
-          if (!yaml_document_append_mapping_pair(&output_document, map, key,
-                                                 value))
-            goto error;
-
-          /* Add 'prefix': <prefix>. */
-
-          key = yaml_document_add_scalar(&output_document, NULL,
-                                         (yaml_char_t *)"prefix", -1,
-                                         YAML_PLAIN_SCALAR_STYLE);
-          if (!key)
-            goto error;
-          value = yaml_document_add_scalar(&output_document, NULL, tag->prefix,
-                                           -1, YAML_DOUBLE_QUOTED_SCALAR_STYLE);
-          if (!value)
-            goto error;
-          if (!yaml_document_append_mapping_pair(&output_document, map, key,
-                                                 value))
-            goto error;
-        }
-      }
-
-      /* Add 'implicit': <flag>. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"implicit", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(
-          &output_document, (yaml_char_t *)YAML_BOOL_TAG,
-          (input_event.data.document_start.implicit ? (yaml_char_t *)"true"
-                                                    : (yaml_char_t *)"false"),
-          -1, YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      break;
-
-    case YAML_DOCUMENT_END_EVENT:
-
-      /* Add 'type': 'DOCUMENT-END'. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"type", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"DOCUMENT-END", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      /* Add 'implicit': <flag>. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"implicit", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(
-          &output_document, (yaml_char_t *)YAML_BOOL_TAG,
-          (input_event.data.document_end.implicit ? (yaml_char_t *)"true"
-                                                  : (yaml_char_t *)"false"),
-          -1, YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      break;
-
-    case YAML_ALIAS_EVENT:
-
-      /* Add 'type': 'ALIAS'. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"type", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"ALIAS", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      /* Add 'anchor': <anchor>. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"anchor", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       input_event.data.alias.anchor, -1,
-                                       YAML_DOUBLE_QUOTED_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      break;
-
-    case YAML_SCALAR_EVENT:
-
-      /* Add 'type': 'SCALAR'. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"type", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"SCALAR", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      /* Add 'anchor': <anchor>. */
-
-      if (input_event.data.scalar.anchor) {
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"anchor", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        value = yaml_document_add_scalar(&output_document, NULL,
-                                         input_event.data.scalar.anchor, -1,
-                                         YAML_DOUBLE_QUOTED_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, value))
-          goto error;
-      }
-
-      /* Add 'tag': <tag>. */
-
-      if (input_event.data.scalar.tag) {
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"tag", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        value = yaml_document_add_scalar(&output_document, NULL,
-                                         input_event.data.scalar.tag, -1,
-                                         YAML_DOUBLE_QUOTED_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, value))
-          goto error;
-      }
-
-      /* Add 'value': <value>. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"value", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(
-          &output_document, NULL, input_event.data.scalar.value,
-          input_event.data.scalar.length, YAML_DOUBLE_QUOTED_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      /* Display if the scalar tag is implicit. */
-
-      /* Add 'implicit': {} */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"version", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      map = yaml_document_add_mapping(&output_document, NULL,
-                                      YAML_FLOW_MAPPING_STYLE);
-      if (!map)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             map))
-        goto error;
-
-      /* Add 'plain': <flag>. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"plain", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(
-          &output_document, (yaml_char_t *)YAML_BOOL_TAG,
-          (input_event.data.scalar.plain_implicit ? (yaml_char_t *)"true"
-                                                  : (yaml_char_t *)"false"),
-          -1, YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, map, key, value))
-        goto error;
-
-      /* Add 'quoted': <flag>. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"quoted", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(
-          &output_document, (yaml_char_t *)YAML_BOOL_TAG,
-          (input_event.data.scalar.quoted_implicit ? (yaml_char_t *)"true"
-                                                   : (yaml_char_t *)"false"),
-          -1, YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, map, key, value))
-        goto error;
-
-      /* Display the style information. */
-
-      if (input_event.data.scalar.style) {
-        yaml_scalar_style_t style = input_event.data.scalar.style;
-
-        /* Add 'style': <style>. */
-
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"style", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        value = yaml_document_add_scalar(
-            &output_document, NULL,
-            (yaml_char_t
-                 *)(style == YAML_PLAIN_SCALAR_STYLE
-                        ? "plain"
-                        : style == YAML_SINGLE_QUOTED_SCALAR_STYLE
-                              ? "single-quoted"
-                              : style == YAML_DOUBLE_QUOTED_SCALAR_STYLE
-                                    ? "double-quoted"
-                                    : style == YAML_LITERAL_SCALAR_STYLE
-                                          ? "literal"
-                                          : style == YAML_FOLDED_SCALAR_STYLE
-                                                ? "folded"
-                                                : "unknown"),
-            -1, YAML_PLAIN_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, value))
-          goto error;
-      }
-
-      break;
-
-    case YAML_SEQUENCE_START_EVENT:
-
-      /* Add 'type': 'SEQUENCE-START'. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"type", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"SEQUENCE-START", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      /* Add 'anchor': <anchor>. */
-
-      if (input_event.data.sequence_start.anchor) {
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"anchor", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        value = yaml_document_add_scalar(&output_document, NULL,
-                                         input_event.data.sequence_start.anchor,
-                                         -1, YAML_DOUBLE_QUOTED_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, value))
-          goto error;
-      }
-
-      /* Add 'tag': <tag>. */
-
-      if (input_event.data.sequence_start.tag) {
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"tag", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        value = yaml_document_add_scalar(&output_document, NULL,
-                                         input_event.data.sequence_start.tag,
-                                         -1, YAML_DOUBLE_QUOTED_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, value))
-          goto error;
-      }
-
-      /* Add 'implicit': <flag>. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"implicit", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(
-          &output_document, (yaml_char_t *)YAML_BOOL_TAG,
-          (input_event.data.sequence_start.implicit ? (yaml_char_t *)"true"
-                                                    : (yaml_char_t *)"false"),
-          -1, YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      /* Display the style information. */
-
-      if (input_event.data.sequence_start.style) {
-        yaml_sequence_style_t style = input_event.data.sequence_start.style;
-
-        /* Add 'style': <style>. */
-
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"style", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        value = yaml_document_add_scalar(
-            &output_document, NULL,
-            (yaml_char_t *)(style == YAML_BLOCK_SEQUENCE_STYLE
-                                ? "block"
-                                : style == YAML_FLOW_SEQUENCE_STYLE
-                                      ? "flow"
-                                      : "unknown"),
-            -1, YAML_PLAIN_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, value))
-          goto error;
-      }
-
-      break;
-
-    case YAML_SEQUENCE_END_EVENT:
-
-      /* Add 'type': 'SEQUENCE-END'. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"type", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"SEQUENCE-END", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      break;
-
-    case YAML_MAPPING_START_EVENT:
-
-      /* Add 'type': 'MAPPING-START'. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"type", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"MAPPING-START", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      /* Add 'anchor': <anchor>. */
-
-      if (input_event.data.mapping_start.anchor) {
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"anchor", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        value = yaml_document_add_scalar(&output_document, NULL,
-                                         input_event.data.mapping_start.anchor,
-                                         -1, YAML_DOUBLE_QUOTED_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, value))
-          goto error;
-      }
-
-      /* Add 'tag': <tag>. */
-
-      if (input_event.data.mapping_start.tag) {
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"tag", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        value = yaml_document_add_scalar(&output_document, NULL,
-                                         input_event.data.mapping_start.tag, -1,
-                                         YAML_DOUBLE_QUOTED_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, value))
-          goto error;
-      }
-
-      /* Add 'implicit': <flag>. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"implicit", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(
-          &output_document, (yaml_char_t *)YAML_BOOL_TAG,
-          (yaml_char_t *)(input_event.data.mapping_start.implicit ? "true"
-                                                                  : "false"),
-          -1, YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      /* Display the style information. */
-
-      if (input_event.data.sequence_start.style) {
-        yaml_sequence_style_t style = input_event.data.sequence_start.style;
-
-        /* Add 'style': <style>. */
-
-        key = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"style", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-        if (!key)
-          goto error;
-        value = yaml_document_add_scalar(
-            &output_document, NULL,
-            (yaml_char_t *)(style == YAML_BLOCK_MAPPING_STYLE
-                                ? "block"
-                                : style == YAML_FLOW_MAPPING_STYLE ? "flow"
-                                                                   : "unknown"),
-            -1, YAML_PLAIN_SCALAR_STYLE);
-        if (!value)
-          goto error;
-        if (!yaml_document_append_mapping_pair(&output_document, properties,
-                                               key, value))
-          goto error;
-      }
-
-      break;
-
-    case YAML_MAPPING_END_EVENT:
-
-      /* Add 'type': 'MAPPING-END'. */
-
-      key = yaml_document_add_scalar(&output_document, NULL,
-                                     (yaml_char_t *)"type", -1,
-                                     YAML_PLAIN_SCALAR_STYLE);
-      if (!key)
-        goto error;
-      value = yaml_document_add_scalar(&output_document, NULL,
-                                       (yaml_char_t *)"MAPPING-END", -1,
-                                       YAML_PLAIN_SCALAR_STYLE);
-      if (!value)
-        goto error;
-      if (!yaml_document_append_mapping_pair(&output_document, properties, key,
-                                             value))
-        goto error;
-
-      break;
-
-    default:
-      /* It couldn't really happen. */
-      break;
-    }
-
-    /* Delete the event object. */
-
-    yaml_event_delete(&input_event);
-  }
-
-  if (!yaml_emitter_dump(&emitter, &output_document))
-    goto error;
-
-  yaml_emitter_close(&emitter);
-
-error:
-
-  free(out.buf);
-
-  yaml_event_delete(&input_event);
-  yaml_document_delete(&output_document);
-  yaml_parser_delete(&parser);
-  yaml_emitter_delete(&emitter);
-
-  return 0;
-}
diff --git a/projects/libyaml/libyaml_deconstructor_fuzzer.c b/projects/libyaml/libyaml_deconstructor_fuzzer.c
deleted file mode 100644
index 2f1079b..0000000
--- a/projects/libyaml/libyaml_deconstructor_fuzzer.c
+++ /dev/null
@@ -1,994 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "yaml.h"
-#include "yaml_write_handler.h"
-#include <assert.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef NDEBUG
-#undef NDEBUG
-#endif
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  if (size < 2)
-    return 0;
-
-  bool done = false;
-  bool is_canonical = data[0] & 1;
-  bool is_unicode = data[1] & 1;
-  data += 2;
-  size -= 2;
-
-  yaml_parser_t parser;
-  yaml_emitter_t emitter;
-  yaml_event_t input_event;
-  yaml_event_t output_event;
-
-  /* Initialize the parser and emitter objects. */
-
-  if (!yaml_parser_initialize(&parser)) {
-    return 1;
-  }
-
-  if (!yaml_emitter_initialize(&emitter)) {
-    yaml_parser_delete(&parser);
-    return 1;
-  }
-
-  /* Set the parser parameters. */
-
-  yaml_parser_set_input_string(&parser, data, size);
-
-  /* Set the emitter parameters. */
-  yaml_output_buffer_t out = {/*buf=*/NULL, /*size=*/0};
-  yaml_emitter_set_output(&emitter, yaml_write_handler, &out);
-
-  yaml_emitter_set_canonical(&emitter, is_canonical);
-  yaml_emitter_set_unicode(&emitter, is_unicode);
-
-  /* Create and emit the STREAM-START event. */
-
-  if (!yaml_stream_start_event_initialize(&output_event, YAML_UTF8_ENCODING))
-    goto error;
-  if (!yaml_emitter_emit(&emitter, &output_event))
-    goto error;
-
-  /* Create and emit the DOCUMENT-START event. */
-
-  if (!yaml_document_start_event_initialize(&output_event, NULL, NULL, NULL, 0))
-    goto error;
-  if (!yaml_emitter_emit(&emitter, &output_event))
-    goto error;
-
-  /* Create and emit the SEQUENCE-START event. */
-
-  if (!yaml_sequence_start_event_initialize(
-          &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:seq", 1,
-          YAML_BLOCK_SEQUENCE_STYLE))
-    goto error;
-  if (!yaml_emitter_emit(&emitter, &output_event))
-    goto error;
-
-  /* Loop through the input events. */
-
-  while (!done) {
-    /* Get the next event. */
-
-    if (!yaml_parser_parse(&parser, &input_event))
-      goto error;
-
-    /* Check if this is the stream end. */
-
-    done = (input_event.type == YAML_STREAM_END_EVENT);
-
-    /* Create and emit a MAPPING-START event. */
-
-    if (!yaml_mapping_start_event_initialize(
-            &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:map", 1,
-            YAML_BLOCK_MAPPING_STYLE))
-      goto error;
-    if (!yaml_emitter_emit(&emitter, &output_event))
-      goto error;
-
-    /* Analyze the event. */
-
-    switch (input_event.type) {
-    case YAML_STREAM_START_EVENT:
-
-      /* Write 'type'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"type", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'STREAM-START'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"STREAM-START", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Display encoding information. */
-
-      if (input_event.data.stream_start.encoding) {
-        yaml_encoding_t encoding = input_event.data.stream_start.encoding;
-
-        /* Write 'encoding'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"encoding", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write the stream encoding. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)(encoding == YAML_UTF8_ENCODING
-                                    ? "utf-8"
-                                    : encoding == YAML_UTF16LE_ENCODING
-                                          ? "utf-16-le"
-                                          : encoding == YAML_UTF16BE_ENCODING
-                                                ? "utf-16-be"
-                                                : "unknown"),
-                -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      break;
-
-    case YAML_STREAM_END_EVENT:
-
-      /* Write 'type'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"type", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'STREAM-END'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"STREAM-END", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      break;
-
-    case YAML_DOCUMENT_START_EVENT:
-
-      /* Write 'type'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"type", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'DOCUMENT-START'. */
-
-      if (!yaml_scalar_event_initialize(&output_event, NULL,
-                                        (yaml_char_t *)"tag:yaml.org,2002:str",
-                                        (yaml_char_t *)"DOCUMENT-START", -1, 1,
-                                        1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Display the document version numbers. */
-
-      if (input_event.data.document_start.version_directive) {
-        yaml_version_directive_t *version =
-            input_event.data.document_start.version_directive;
-        char number[64];
-
-        /* Write 'version'. */
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"version", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write '{'. */
-
-        if (!yaml_mapping_start_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:map", 1,
-                YAML_FLOW_MAPPING_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write 'major'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"major", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write a number. */
-
-        sprintf(number, "%d", version->major);
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:int",
-                (yaml_char_t *)number, -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write 'minor'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"minor", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write a number. */
-
-        sprintf(number, "%d", version->minor);
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:int",
-                (yaml_char_t *)number, -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write '}'. */
-
-        if (!yaml_mapping_end_event_initialize(&output_event))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      /* Display the document tag directives. */
-
-      if (input_event.data.document_start.tag_directives.start !=
-          input_event.data.document_start.tag_directives.end) {
-        yaml_tag_directive_t *tag;
-
-        /* Write 'tags'. */
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"tags", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Start a block sequence. */
-
-        if (!yaml_sequence_start_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:seq", 1,
-                YAML_BLOCK_SEQUENCE_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        for (tag = input_event.data.document_start.tag_directives.start;
-             tag != input_event.data.document_start.tag_directives.end; tag++) {
-          /* Write '{'. */
-
-          if (!yaml_mapping_start_event_initialize(
-                  &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:map",
-                  1, YAML_FLOW_MAPPING_STYLE))
-            goto error;
-          if (!yaml_emitter_emit(&emitter, &output_event))
-            goto error;
-
-          /* Write 'handle'. */
-
-          if (!yaml_scalar_event_initialize(
-                  &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                  (yaml_char_t *)"handle", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-            goto error;
-          if (!yaml_emitter_emit(&emitter, &output_event))
-            goto error;
-
-          /* Write the tag directive handle. */
-
-          if (!yaml_scalar_event_initialize(
-                  &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                  (yaml_char_t *)tag->handle, -1, 0, 1,
-                  YAML_DOUBLE_QUOTED_SCALAR_STYLE))
-            goto error;
-          if (!yaml_emitter_emit(&emitter, &output_event))
-            goto error;
-
-          /* Write 'prefix'. */
-
-          if (!yaml_scalar_event_initialize(
-                  &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                  (yaml_char_t *)"prefix", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-            goto error;
-          if (!yaml_emitter_emit(&emitter, &output_event))
-            goto error;
-
-          /* Write the tag directive prefix. */
-
-          if (!yaml_scalar_event_initialize(
-                  &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                  (yaml_char_t *)tag->prefix, -1, 0, 1,
-                  YAML_DOUBLE_QUOTED_SCALAR_STYLE))
-            goto error;
-          if (!yaml_emitter_emit(&emitter, &output_event))
-            goto error;
-
-          /* Write '}'. */
-
-          if (!yaml_mapping_end_event_initialize(&output_event))
-            goto error;
-          if (!yaml_emitter_emit(&emitter, &output_event))
-            goto error;
-        }
-
-        /* End a block sequence. */
-
-        if (!yaml_sequence_end_event_initialize(&output_event))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      /* Write 'implicit'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"implicit", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write if the document is implicit. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:bool",
-              (yaml_char_t *)(input_event.data.document_start.implicit
-                                  ? "true"
-                                  : "false"),
-              -1, 1, 0, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      break;
-
-    case YAML_DOCUMENT_END_EVENT:
-
-      /* Write 'type'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"type", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'DOCUMENT-END'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"DOCUMENT-END", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'implicit'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"implicit", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write if the document is implicit. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:bool",
-              (yaml_char_t *)(input_event.data.document_end.implicit ? "true"
-                                                                     : "false"),
-              -1, 1, 0, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      break;
-
-    case YAML_ALIAS_EVENT:
-
-      /* Write 'type'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"type", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'ALIAS'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"ALIAS", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'anchor'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"anchor", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write the alias anchor. */
-
-      if (!yaml_scalar_event_initialize(&output_event, NULL,
-                                        (yaml_char_t *)"tag:yaml.org,2002:str",
-                                        input_event.data.alias.anchor, -1, 0, 1,
-                                        YAML_DOUBLE_QUOTED_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      break;
-
-    case YAML_SCALAR_EVENT:
-
-      /* Write 'type'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"type", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'SCALAR'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"SCALAR", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Display the scalar anchor. */
-
-      if (input_event.data.scalar.anchor) {
-        /* Write 'anchor'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"anchor", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write the scalar anchor. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                input_event.data.scalar.anchor, -1, 0, 1,
-                YAML_DOUBLE_QUOTED_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      /* Display the scalar tag. */
-
-      if (input_event.data.scalar.tag) {
-        /* Write 'tag'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"tag", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write the scalar tag. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                input_event.data.scalar.tag, -1, 0, 1,
-                YAML_DOUBLE_QUOTED_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      /* Display the scalar value. */
-
-      /* Write 'value'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"value", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write the scalar value. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              input_event.data.scalar.value, input_event.data.scalar.length, 0,
-              1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Display if the scalar tag is implicit. */
-
-      /* Write 'implicit'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"implicit", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write '{'. */
-
-      if (!yaml_mapping_start_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:map", 1,
-              YAML_FLOW_MAPPING_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'plain'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"plain", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write if the scalar is implicit in the plain style. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:bool",
-              (yaml_char_t *)(input_event.data.scalar.plain_implicit ? "true"
-                                                                     : "false"),
-              -1, 1, 0, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'quoted'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"non-plain", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write if the scalar is implicit in a non-plain style. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:bool",
-              (yaml_char_t *)(input_event.data.scalar.quoted_implicit
-                                  ? "true"
-                                  : "false"),
-              -1, 1, 0, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write '}'. */
-
-      if (!yaml_mapping_end_event_initialize(&output_event))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Display the style information. */
-
-      if (input_event.data.scalar.style) {
-        yaml_scalar_style_t style = input_event.data.scalar.style;
-
-        /* Write 'style'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"style", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write the scalar style. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t
-                     *)(style == YAML_PLAIN_SCALAR_STYLE
-                            ? "plain"
-                            : style == YAML_SINGLE_QUOTED_SCALAR_STYLE
-                                  ? "single-quoted"
-                                  : style == YAML_DOUBLE_QUOTED_SCALAR_STYLE
-                                        ? "double-quoted"
-                                        : style == YAML_LITERAL_SCALAR_STYLE
-                                              ? "literal"
-                                              : style ==
-                                                        YAML_FOLDED_SCALAR_STYLE
-                                                    ? "folded"
-                                                    : "unknown"),
-                -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      break;
-
-    case YAML_SEQUENCE_START_EVENT:
-
-      /* Write 'type'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"type", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'SEQUENCE-START'. */
-
-      if (!yaml_scalar_event_initialize(&output_event, NULL,
-                                        (yaml_char_t *)"tag:yaml.org,2002:str",
-                                        (yaml_char_t *)"SEQUENCE-START", -1, 1,
-                                        1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Display the sequence anchor. */
-
-      if (input_event.data.sequence_start.anchor) {
-        /* Write 'anchor'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"anchor", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write the sequence anchor. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                input_event.data.sequence_start.anchor, -1, 0, 1,
-                YAML_DOUBLE_QUOTED_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      /* Display the sequence tag. */
-
-      if (input_event.data.sequence_start.tag) {
-        /* Write 'tag'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"tag", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write the sequence tag. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                input_event.data.sequence_start.tag, -1, 0, 1,
-                YAML_DOUBLE_QUOTED_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      /* Write 'implicit'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"implicit", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write if the sequence tag is implicit. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:bool",
-              (yaml_char_t *)(input_event.data.sequence_start.implicit
-                                  ? "true"
-                                  : "false"),
-              -1, 1, 0, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Display the style information. */
-
-      if (input_event.data.sequence_start.style) {
-        yaml_sequence_style_t style = input_event.data.sequence_start.style;
-
-        /* Write 'style'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"style", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write the scalar style. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)(style == YAML_BLOCK_SEQUENCE_STYLE
-                                    ? "block"
-                                    : style == YAML_FLOW_SEQUENCE_STYLE
-                                          ? "flow"
-                                          : "unknown"),
-                -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      break;
-
-    case YAML_SEQUENCE_END_EVENT:
-
-      /* Write 'type'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"type", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'SEQUENCE-END'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"SEQUENCE-END", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      break;
-
-    case YAML_MAPPING_START_EVENT:
-
-      /* Write 'type'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"type", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'MAPPING-START'. */
-
-      if (!yaml_scalar_event_initialize(&output_event, NULL,
-                                        (yaml_char_t *)"tag:yaml.org,2002:str",
-                                        (yaml_char_t *)"MAPPING-START", -1, 1,
-                                        1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Display the mapping anchor. */
-
-      if (input_event.data.mapping_start.anchor) {
-        /* Write 'anchor'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"anchor", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write the mapping anchor. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                input_event.data.mapping_start.anchor, -1, 0, 1,
-                YAML_DOUBLE_QUOTED_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      /* Display the mapping tag. */
-
-      if (input_event.data.mapping_start.tag) {
-        /* Write 'tag'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"tag", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write the mapping tag. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                input_event.data.mapping_start.tag, -1, 0, 1,
-                YAML_DOUBLE_QUOTED_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      /* Write 'implicit'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"implicit", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write if the mapping tag is implicit. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:bool",
-              (yaml_char_t *)(input_event.data.mapping_start.implicit
-                                  ? "true"
-                                  : "false"),
-              -1, 1, 0, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Display the style information. */
-
-      if (input_event.data.mapping_start.style) {
-        yaml_mapping_style_t style = input_event.data.mapping_start.style;
-
-        /* Write 'style'. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)"style", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-
-        /* Write the scalar style. */
-
-        if (!yaml_scalar_event_initialize(
-                &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-                (yaml_char_t *)(style == YAML_BLOCK_MAPPING_STYLE
-                                    ? "block"
-                                    : style == YAML_FLOW_MAPPING_STYLE
-                                          ? "flow"
-                                          : "unknown"),
-                -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-          goto error;
-        if (!yaml_emitter_emit(&emitter, &output_event))
-          goto error;
-      }
-
-      break;
-
-    case YAML_MAPPING_END_EVENT:
-
-      /* Write 'type'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"type", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      /* Write 'MAPPING-END'. */
-
-      if (!yaml_scalar_event_initialize(
-              &output_event, NULL, (yaml_char_t *)"tag:yaml.org,2002:str",
-              (yaml_char_t *)"MAPPING-END", -1, 1, 1, YAML_PLAIN_SCALAR_STYLE))
-        goto error;
-      if (!yaml_emitter_emit(&emitter, &output_event))
-        goto error;
-
-      break;
-
-    default:
-      /* It couldn't really happen. */
-      break;
-    }
-
-    /* Delete the event object. */
-
-    yaml_event_delete(&input_event);
-
-    /* Create and emit a MAPPING-END event. */
-
-    if (!yaml_mapping_end_event_initialize(&output_event))
-      goto error;
-    if (!yaml_emitter_emit(&emitter, &output_event))
-      goto error;
-  }
-
-  /* Create and emit the SEQUENCE-END event. */
-
-  if (!yaml_sequence_end_event_initialize(&output_event))
-    goto error;
-  if (!yaml_emitter_emit(&emitter, &output_event))
-    goto error;
-
-  /* Create and emit the DOCUMENT-END event. */
-
-  if (!yaml_document_end_event_initialize(&output_event, 0))
-    goto error;
-  if (!yaml_emitter_emit(&emitter, &output_event))
-    goto error;
-
-  /* Create and emit the STREAM-END event. */
-
-  if (!yaml_stream_end_event_initialize(&output_event))
-    goto error;
-  yaml_emitter_emit(&emitter, &output_event);
-
-error:
-
-  free(out.buf);
-
-  yaml_event_delete(&input_event);
-  yaml_parser_delete(&parser);
-  yaml_emitter_delete(&emitter);
-
-  return 0;
-}
diff --git a/projects/libyaml/libyaml_dumper_fuzzer.c b/projects/libyaml/libyaml_dumper_fuzzer.c
deleted file mode 100644
index 5ad8a4e..0000000
--- a/projects/libyaml/libyaml_dumper_fuzzer.c
+++ /dev/null
@@ -1,311 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "yaml.h"
-#include "yaml_write_handler.h"
-#include <assert.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef NDEBUG
-#undef NDEBUG
-#endif
-
-#define MAX_DOCUMENTS 16
-
-bool nodes_equal(yaml_document_t *document1, int index1,
-                 yaml_document_t *document2, int index2, int level) {
-  const bool equal = true;
-
-  if (level++ > 1000)
-    return !equal;
-  yaml_node_t *node1 = yaml_document_get_node(document1, index1);
-
-  if (!node1)
-    return !equal;
-
-  yaml_node_t *node2 = yaml_document_get_node(document2, index2);
-
-  if (!node2)
-    return !equal;
-
-  if (node1->type != node2->type)
-    return !equal;
-
-  if (strcmp((char *)node1->tag, (char *)node2->tag) != 0)
-    return !equal;
-
-  switch (node1->type) {
-  case YAML_SCALAR_NODE:
-    if (node1->data.scalar.length != node2->data.scalar.length)
-      return !equal;
-    if (strncmp((char *)node1->data.scalar.value,
-                (char *)node2->data.scalar.value,
-                node1->data.scalar.length) != 0)
-      return !equal;
-    break;
-  case YAML_SEQUENCE_NODE:
-    if ((node1->data.sequence.items.top - node1->data.sequence.items.start) !=
-        (node2->data.sequence.items.top - node2->data.sequence.items.start))
-      return !equal;
-    for (int k = 0; k < (node1->data.sequence.items.top -
-                         node1->data.sequence.items.start);
-         k++) {
-      if (!nodes_equal(document1, node1->data.sequence.items.start[k],
-                       document2, node2->data.sequence.items.start[k], level))
-        return !equal;
-    }
-    break;
-  case YAML_MAPPING_NODE:
-    if ((node1->data.mapping.pairs.top - node1->data.mapping.pairs.start) !=
-        (node2->data.mapping.pairs.top - node2->data.mapping.pairs.start))
-      return !equal;
-    for (int k = 0;
-         k < (node1->data.mapping.pairs.top - node1->data.mapping.pairs.start);
-         k++) {
-      if (!nodes_equal(document1, node1->data.mapping.pairs.start[k].key,
-                       document2, node2->data.mapping.pairs.start[k].key,
-                       level))
-        return !equal;
-      if (!nodes_equal(document1, node1->data.mapping.pairs.start[k].value,
-                       document2, node2->data.mapping.pairs.start[k].value,
-                       level))
-        return !equal;
-    }
-    break;
-  default:
-    return !equal;
-  }
-  return equal;
-}
-
-bool documents_equal(yaml_document_t *document1, yaml_document_t *document2) {
-
-  const bool equal = true;
-
-  if ((document1->version_directive && !document2->version_directive) ||
-      (!document1->version_directive && document2->version_directive) ||
-      (document1->version_directive && document2->version_directive &&
-       (document1->version_directive->major !=
-            document2->version_directive->major ||
-        document1->version_directive->minor !=
-            document2->version_directive->minor)))
-    return !equal;
-
-  if ((document1->tag_directives.end - document1->tag_directives.start) !=
-      (document2->tag_directives.end - document2->tag_directives.start))
-    return !equal;
-  for (int k = 0;
-       k < (document1->tag_directives.end - document1->tag_directives.start);
-       k++) {
-    if ((strcmp((char *)document1->tag_directives.start[k].handle,
-                (char *)document2->tag_directives.start[k].handle) != 0) ||
-        (strcmp((char *)document1->tag_directives.start[k].prefix,
-                (char *)document2->tag_directives.start[k].prefix) != 0))
-      return !equal;
-  }
-
-  if ((document1->nodes.top - document1->nodes.start) !=
-      (document2->nodes.top - document2->nodes.start))
-    return !equal;
-
-  if (document1->nodes.top != document1->nodes.start) {
-    if (!nodes_equal(document1, 1, document2, 1, 0))
-      return !equal;
-  }
-
-  return equal;
-}
-
-bool copy_document(yaml_document_t *document_to,
-                   yaml_document_t *document_from) {
-  bool error = true;
-
-  yaml_node_t *node;
-  yaml_node_item_t *item;
-  yaml_node_pair_t *pair;
-
-  if (!yaml_document_initialize(document_to, document_from->version_directive,
-                                document_from->tag_directives.start,
-                                document_from->tag_directives.end,
-                                document_from->start_implicit,
-                                document_from->end_implicit))
-    return !error;
-
-  for (node = document_from->nodes.start; node < document_from->nodes.top;
-       node++) {
-    switch (node->type) {
-    case YAML_SCALAR_NODE:
-      if (!yaml_document_add_scalar(
-              document_to, node->tag, node->data.scalar.value,
-              node->data.scalar.length, node->data.scalar.style))
-        goto out;
-      break;
-    case YAML_SEQUENCE_NODE:
-      if (!yaml_document_add_sequence(document_to, node->tag,
-                                      node->data.sequence.style))
-        goto out;
-      break;
-    case YAML_MAPPING_NODE:
-      if (!yaml_document_add_mapping(document_to, node->tag,
-                                     node->data.mapping.style))
-        goto out;
-      break;
-    default:
-      goto out;
-    }
-  }
-
-  for (node = document_from->nodes.start; node < document_from->nodes.top;
-       node++) {
-    switch (node->type) {
-    case YAML_SEQUENCE_NODE:
-      for (item = node->data.sequence.items.start;
-           item < node->data.sequence.items.top; item++) {
-        if (!yaml_document_append_sequence_item(
-                document_to, node - document_from->nodes.start + 1, *item))
-          goto out;
-      }
-      break;
-    case YAML_MAPPING_NODE:
-      for (pair = node->data.mapping.pairs.start;
-           pair < node->data.mapping.pairs.top; pair++) {
-        if (!yaml_document_append_mapping_pair(
-                document_to, node - document_from->nodes.start + 1, pair->key,
-                pair->value))
-          goto out;
-      }
-      break;
-    default:
-      break;
-    }
-  }
-  return error;
-
-out:
-  yaml_document_delete(document_to);
-  return !error;
-}
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  if (size < 2)
-    return 0;
-
-  yaml_parser_t parser;
-  yaml_emitter_t emitter;
-
-  yaml_document_t document;
-  yaml_document_t documents[MAX_DOCUMENTS];
-  size_t document_number = 0;
-  int count = 0;
-  bool done = false;
-  bool equal = false;
-  bool is_canonical = data[0] & 1;
-  bool is_unicode = data[1] & 1;
-  data += 2;
-  size -= 2;
-
-  if (!yaml_parser_initialize(&parser))
-    return 0;
-
-  yaml_parser_set_input_string(&parser, data, size);
-  if (!yaml_emitter_initialize(&emitter))
-    return 0;
-
-  yaml_emitter_set_canonical(&emitter, is_canonical);
-  yaml_emitter_set_unicode(&emitter, is_unicode);
-
-  yaml_output_buffer_t out = {/*buf=*/NULL, /*size=*/0};
-  yaml_emitter_set_output(&emitter, yaml_write_handler, &out);
-  yaml_emitter_open(&emitter);
-
-  while (!done) {
-    if (!yaml_parser_load(&parser, &document)) {
-      equal = 1;
-      break;
-    }
-
-    done = (!yaml_document_get_root_node(&document));
-    if (!done) {
-      if (document_number >= MAX_DOCUMENTS) {
-        yaml_document_delete(&document);
-        equal = true;
-        break;
-      }
-
-      if (!copy_document(&documents[document_number++], &document)) {
-        yaml_document_delete(&document);
-        equal = true;
-        break;
-      }
-      if (!(yaml_emitter_dump(&emitter, &document) ||
-            (yaml_emitter_flush(&emitter) && 0))) {
-        equal = true;
-        break;
-      }
-
-      count++;
-    } else {
-      yaml_document_delete(&document);
-    }
-  }
-
-  yaml_parser_delete(&parser);
-  yaml_emitter_close(&emitter);
-  yaml_emitter_delete(&emitter);
-
-  if (!equal) {
-    count = 0;
-    done = false;
-    if (!yaml_parser_initialize(&parser))
-      goto error;
-
-    if (!out.buf) {
-      yaml_parser_delete(&parser);
-      goto error;
-    }
-
-    yaml_parser_set_input_string(&parser, out.buf, out.size);
-
-    while (!done) {
-      if (!yaml_parser_load(&parser, &document)) {
-        yaml_parser_delete(&parser);
-        goto error;
-      }
-
-      done = (!yaml_document_get_root_node(&document));
-      if (!done) {
-        if (!documents_equal(documents + count, &document)) {
-          yaml_parser_delete(&parser);
-          goto error;
-        }
-        count++;
-      }
-      yaml_document_delete(&document);
-    }
-    yaml_parser_delete(&parser);
-  }
-
-  for (int k = 0; k < document_number; k++) {
-    yaml_document_delete(documents + k);
-  }
-
-error:
-
-  free(out.buf);
-  return 0;
-}
diff --git a/projects/libyaml/libyaml_emitter_fuzzer.c b/projects/libyaml/libyaml_emitter_fuzzer.c
deleted file mode 100644
index d44bd60..0000000
--- a/projects/libyaml/libyaml_emitter_fuzzer.c
+++ /dev/null
@@ -1,298 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "yaml.h"
-#include "yaml_write_handler.h"
-#include <assert.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef NDEBUG
-#undef NDEBUG
-#endif
-
-#define MAX_EVENTS 1024
-
-bool events_equal(yaml_event_t *event1, yaml_event_t *event2) {
-  
-  const bool equal = true;
-
-  if (event1->type != event2->type)
-    return equal;
-
-  switch (event1->type) {
-  case YAML_STREAM_START_EVENT:
-    return !equal;
-
-  case YAML_DOCUMENT_START_EVENT:
-    if ((event1->data.document_start.version_directive &&
-         !event2->data.document_start.version_directive) ||
-        (!event1->data.document_start.version_directive &&
-         event2->data.document_start.version_directive) ||
-        (event1->data.document_start.version_directive &&
-         event2->data.document_start.version_directive &&
-         (event1->data.document_start.version_directive->major !=
-              event2->data.document_start.version_directive->major ||
-          event1->data.document_start.version_directive->minor !=
-              event2->data.document_start.version_directive->minor)))
-      return equal;
-    if ((event1->data.document_start.tag_directives.end -
-         event1->data.document_start.tag_directives.start) !=
-        (event2->data.document_start.tag_directives.end -
-         event2->data.document_start.tag_directives.start))
-      return equal;
-    for (int k = 0; k < (event1->data.document_start.tag_directives.end -
-                         event1->data.document_start.tag_directives.start);
-         k++) {
-      if ((strcmp((char *)event1->data.document_start.tag_directives.start[k]
-                      .handle,
-                  (char *)event2->data.document_start.tag_directives.start[k]
-                      .handle) != 0) ||
-          (strcmp((char *)event1->data.document_start.tag_directives.start[k]
-                      .prefix,
-                  (char *)event2->data.document_start.tag_directives.start[k]
-                      .prefix) != 0))
-        return equal;
-    }
-    return !equal;
-
-  case YAML_DOCUMENT_END_EVENT:
-    return !equal;
-
-  case YAML_ALIAS_EVENT:
-    return (strcmp((char *)event1->data.alias.anchor,
-                   (char *)event2->data.alias.anchor) == 0);
-
-  case YAML_SCALAR_EVENT:
-    if ((event1->data.scalar.anchor && !event2->data.scalar.anchor) ||
-        (!event1->data.scalar.anchor && event2->data.scalar.anchor) ||
-        (event1->data.scalar.anchor && event2->data.scalar.anchor &&
-         strcmp((char *)event1->data.scalar.anchor,
-                (char *)event2->data.scalar.anchor) != 0))
-      return equal;
-    if ((event1->data.scalar.tag && !event2->data.scalar.tag &&
-         strcmp((char *)event1->data.scalar.tag, "!") != 0) ||
-        (!event1->data.scalar.tag && event2->data.scalar.tag &&
-         strcmp((char *)event2->data.scalar.tag, "!") != 0) ||
-        (event1->data.scalar.tag && event2->data.scalar.tag &&
-         strcmp((char *)event1->data.scalar.tag,
-                (char *)event2->data.scalar.tag) != 0))
-      return equal;
-    if ((event1->data.scalar.length != event2->data.scalar.length) ||
-        memcmp(event1->data.scalar.value, event2->data.scalar.value,
-               event1->data.scalar.length) != 0)
-      return equal;
-    if ((event1->data.scalar.plain_implicit !=
-         event2->data.scalar.plain_implicit) ||
-        (event1->data.scalar.quoted_implicit !=
-         event2->data.scalar.quoted_implicit))
-      return equal;
-    return !equal;
-
-  case YAML_SEQUENCE_START_EVENT:
-    if ((event1->data.sequence_start.anchor &&
-         !event2->data.sequence_start.anchor) ||
-        (!event1->data.sequence_start.anchor &&
-         event2->data.sequence_start.anchor) ||
-        (event1->data.sequence_start.anchor &&
-         event2->data.sequence_start.anchor &&
-         strcmp((char *)event1->data.sequence_start.anchor,
-                (char *)event2->data.sequence_start.anchor) != 0))
-      return equal;
-    if ((event1->data.sequence_start.tag && !event2->data.sequence_start.tag) ||
-        (!event1->data.sequence_start.tag && event2->data.sequence_start.tag) ||
-        (event1->data.sequence_start.tag && event2->data.sequence_start.tag &&
-         strcmp((char *)event1->data.sequence_start.tag,
-                (char *)event2->data.sequence_start.tag) != 0))
-      return equal;
-    if ((event1->data.sequence_start.implicit !=
-         event2->data.sequence_start.implicit))
-      return equal;
-    return !equal;
-
-  case YAML_MAPPING_START_EVENT:
-    if ((event1->data.mapping_start.anchor &&
-         !event2->data.mapping_start.anchor) ||
-        (!event1->data.mapping_start.anchor &&
-         event2->data.mapping_start.anchor) ||
-        (event1->data.mapping_start.anchor &&
-         event2->data.mapping_start.anchor &&
-         strcmp((char *)event1->data.mapping_start.anchor,
-                (char *)event2->data.mapping_start.anchor) != 0))
-      return equal;
-    if ((event1->data.mapping_start.tag && !event2->data.mapping_start.tag) ||
-        (!event1->data.mapping_start.tag && event2->data.mapping_start.tag) ||
-        (event1->data.mapping_start.tag && event2->data.mapping_start.tag &&
-         strcmp((char *)event1->data.mapping_start.tag,
-                (char *)event2->data.mapping_start.tag) != 0))
-      return equal;
-    if ((event1->data.mapping_start.implicit !=
-         event2->data.mapping_start.implicit))
-      return equal;
-    return !equal;
-
-  default:
-    return !equal;
-  }
-}
-
-bool copy_event(yaml_event_t *event_to, yaml_event_t *event_from) {
-
-  switch (event_from->type) {
-  case YAML_STREAM_START_EVENT:
-    return yaml_stream_start_event_initialize(
-        event_to, event_from->data.stream_start.encoding);
-
-  case YAML_STREAM_END_EVENT:
-    return yaml_stream_end_event_initialize(event_to);
-
-  case YAML_DOCUMENT_START_EVENT:
-    return yaml_document_start_event_initialize(
-        event_to, event_from->data.document_start.version_directive,
-        event_from->data.document_start.tag_directives.start,
-        event_from->data.document_start.tag_directives.end,
-        event_from->data.document_start.implicit);
-
-  case YAML_DOCUMENT_END_EVENT:
-    return yaml_document_end_event_initialize(
-        event_to, event_from->data.document_end.implicit);
-
-  case YAML_ALIAS_EVENT:
-    return yaml_alias_event_initialize(event_to, event_from->data.alias.anchor);
-
-  case YAML_SCALAR_EVENT:
-    return yaml_scalar_event_initialize(
-        event_to, event_from->data.scalar.anchor, event_from->data.scalar.tag,
-        event_from->data.scalar.value, event_from->data.scalar.length,
-        event_from->data.scalar.plain_implicit,
-        event_from->data.scalar.quoted_implicit, event_from->data.scalar.style);
-
-  case YAML_SEQUENCE_START_EVENT:
-    return yaml_sequence_start_event_initialize(
-        event_to, event_from->data.sequence_start.anchor,
-        event_from->data.sequence_start.tag,
-        event_from->data.sequence_start.implicit,
-        event_from->data.sequence_start.style);
-
-  case YAML_SEQUENCE_END_EVENT:
-    return yaml_sequence_end_event_initialize(event_to);
-
-  case YAML_MAPPING_START_EVENT:
-    return yaml_mapping_start_event_initialize(
-        event_to, event_from->data.mapping_start.anchor,
-        event_from->data.mapping_start.tag,
-        event_from->data.mapping_start.implicit,
-        event_from->data.mapping_start.style);
-
-  case YAML_MAPPING_END_EVENT:
-    return yaml_mapping_end_event_initialize(event_to);
-  }
-
-  return false;
-}
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  if (size < 2)
-    return 0;
-
-  yaml_parser_t parser;
-  yaml_emitter_t emitter;
-  yaml_event_t event;
-  yaml_event_t events[MAX_EVENTS];
-  size_t event_number = 0;
-  bool done = false;
-  int count = 0;
-  bool is_canonical = data[0] & 1;
-  bool is_unicode = data[1] & 1;
-  data += 2;
-  size -= 2;
-
-  if (!yaml_parser_initialize(&parser))
-    return 0;
-
-  yaml_parser_set_input_string(&parser, data, size);
-  if (!yaml_emitter_initialize(&emitter)) {
-    yaml_parser_delete(&parser);
-    return 0;
-  }
-
-  yaml_emitter_set_canonical(&emitter, is_canonical);
-  yaml_emitter_set_unicode(&emitter, is_unicode);
-
-  yaml_output_buffer_t out = {/*buf=*/NULL, /*size=*/0};
-  yaml_emitter_set_output(&emitter, yaml_write_handler, &out);
-
-  while (!done) {
-    if (!yaml_parser_parse(&parser, &event)) {
-      goto delete_parser;
-    }
-
-    done = (event.type == YAML_STREAM_END_EVENT);
-    if (event_number >= MAX_EVENTS) {
-      yaml_event_delete(&event);
-      goto delete_parser;
-    }
-
-    if (copy_event(&events[event_number++], &event)) {
-      yaml_event_delete(&event);
-      goto delete_parser;
-    }
-
-    if (!yaml_emitter_emit(&emitter, &event)) {
-      goto delete_parser;
-    }
-
-  }
-
-  yaml_parser_delete(&parser);
-
-  done = false;
-  if (!yaml_parser_initialize(&parser))
-    goto error;
-
-  yaml_parser_set_input_string(&parser, out.buf, out.size);
-
-  while (!done) {
-    if (!yaml_parser_parse(&parser, &event))
-      break;
-
-    done = (event.type == YAML_STREAM_END_EVENT);
-    if (events_equal(events + count, &event)) {
-      yaml_event_delete(&event);
-      break;
-    }
-
-    yaml_event_delete(&event);
-    count++;
-  }
-
-delete_parser:
-
-  yaml_parser_delete(&parser);
-
-error:
-
-  yaml_emitter_delete(&emitter);
-
-  for (int k = 0; k < event_number; k++) {
-    yaml_event_delete(events + k);
-  }
-
-  free(out.buf);
-
-  return 0;
-}
diff --git a/projects/libyaml/libyaml_fuzzer.cc b/projects/libyaml/libyaml_fuzzer.cc
new file mode 100644
index 0000000..57d5093
--- /dev/null
+++ b/projects/libyaml/libyaml_fuzzer.cc
@@ -0,0 +1,21 @@
+#include <stdint.h>
+
+#include <yaml.h>
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+    yaml_parser_t parser;
+    yaml_parser_initialize(&parser);
+    yaml_parser_set_input_string(&parser, data, size);
+
+    int done = 0;
+    while (!done) {
+        yaml_event_t event;
+        if (!yaml_parser_parse(&parser, &event)) {
+            break;
+        }
+        done = (event.type == YAML_STREAM_END_EVENT);
+        yaml_event_delete(&event);
+    }
+    yaml_parser_delete(&parser);
+    return 0;
+}
diff --git a/projects/libyaml/libyaml_loader_fuzzer.c b/projects/libyaml/libyaml_loader_fuzzer.c
deleted file mode 100644
index 6986fea..0000000
--- a/projects/libyaml/libyaml_loader_fuzzer.c
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "yaml.h"
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include <stdbool.h>
-
-#ifdef NDEBUG
-#undef NDEBUG
-#endif
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  yaml_parser_t parser;
-  yaml_document_t document;
-  bool done = false;
-
-  if(!yaml_parser_initialize(&parser))
-    return 0;
-
-  yaml_parser_set_input_string(&parser, data, size);
-
-  while (!done)
-  {
-      if (!yaml_parser_load(&parser, &document)) {
-          break;
-      }
-
-      done = (!yaml_document_get_root_node(&document));
-
-      yaml_document_delete(&document);
-  }
-
-  yaml_parser_delete(&parser);
-
-  return 0;
-}
diff --git a/projects/libyaml/libyaml_parser_fuzzer.c b/projects/libyaml/libyaml_parser_fuzzer.c
deleted file mode 100644
index a0119bb..0000000
--- a/projects/libyaml/libyaml_parser_fuzzer.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "yaml.h"
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include <stdbool.h>
-
-#ifdef NDEBUG
-#undef NDEBUG
-#endif
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  yaml_parser_t parser;
-  yaml_event_t event;
-  bool done = false;
-
-  if(!yaml_parser_initialize(&parser))
-    return 0;
-
-  yaml_parser_set_input_string(&parser, data, size);
-
-  while (!done)
-  {
-      if (!yaml_parser_parse(&parser, &event)) break;
-
-      done = (event.type == YAML_STREAM_END_EVENT);
-
-      yaml_event_delete(&event);
-  }
-
-  yaml_parser_delete(&parser);
-
-  return 0;
-}
diff --git a/projects/libyaml/libyaml_reformatter_alt_fuzzer.c b/projects/libyaml/libyaml_reformatter_alt_fuzzer.c
deleted file mode 100644
index 5ca6c2b..0000000
--- a/projects/libyaml/libyaml_reformatter_alt_fuzzer.c
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "yaml.h"
-#include "yaml_write_handler.h"
-#include <assert.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef NDEBUG
-#undef NDEBUG
-#endif
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  if (size < 2)
-    return 0;
-
-  bool done = false;
-  bool is_canonical = data[0] & 1;
-  bool is_unicode = data[1] & 1;
-  data += 2;
-  size -= 2;
-
-  yaml_parser_t parser;
-  yaml_emitter_t emitter;
-  yaml_document_t document;
-
-  /* Initialize the parser and emitter objects. */
-
-  if (!yaml_parser_initialize(&parser))
-    return 0;
-
-  if (!yaml_emitter_initialize(&emitter))
-    goto cleanup_parser;
-
-  /* Set the parser parameters. */
-
-  yaml_parser_set_input_string(&parser, data, size);
-
-  /* Set the emitter parameters. */
-  yaml_output_buffer_t out = {/*buf=*/NULL, /*size=*/0};
-  yaml_emitter_set_output(&emitter, yaml_write_handler, &out);
-
-  yaml_emitter_set_canonical(&emitter, is_canonical);
-  yaml_emitter_set_unicode(&emitter, is_unicode);
-
-  /* The main loop. */
-
-  while (!done) {
-    /* Get the next event. */
-
-    if (!yaml_parser_load(&parser, &document))
-      break;
-
-    /* Check if this is the stream end. */
-
-    done = (!yaml_document_get_root_node(&document));
-
-    /* Emit the event. */
-
-    if (!yaml_emitter_dump(&emitter, &document))
-      break;
-  }
-
-  free(out.buf);
-  yaml_emitter_delete(&emitter);
-
-cleanup_parser:
-
-  yaml_parser_delete(&parser);
-  return 0;
-}
diff --git a/projects/libyaml/libyaml_reformatter_fuzzer.c b/projects/libyaml/libyaml_reformatter_fuzzer.c
deleted file mode 100644
index a43243f..0000000
--- a/projects/libyaml/libyaml_reformatter_fuzzer.c
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "yaml.h"
-#include "yaml_write_handler.h"
-#include <assert.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef NDEBUG
-#undef NDEBUG
-#endif
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  if (size < 2)
-    return 0;
-
-  bool done = false;
-  bool is_canonical = data[0] & 1;
-  bool is_unicode = data[1] & 1;
-  data += 2;
-  size -= 2;
-
-  yaml_parser_t parser;
-  yaml_emitter_t emitter;
-  yaml_event_t event;
-
-  /* Initialize the parser and emitter objects. */
-
-  if (!yaml_parser_initialize(&parser))
-    return 0;
-
-  if (!yaml_emitter_initialize(&emitter))
-    goto cleanup_parser;
-
-  /* Set the parser parameters. */
-
-  yaml_parser_set_input_string(&parser, data, size);
-
-  /* Set the emitter parameters. */
-  yaml_output_buffer_t out = {/*buf=*/NULL, /*size=*/0};
-  yaml_emitter_set_output(&emitter, yaml_write_handler, &out);
-
-  yaml_emitter_set_canonical(&emitter, is_canonical);
-  yaml_emitter_set_unicode(&emitter, is_unicode);
-
-  /* The main loop. */
-
-  while (!done) {
-    /* Get the next event. */
-
-    if (!yaml_parser_parse(&parser, &event))
-      break;
-
-    /* Check if this is the stream end. */
-
-    done = (event.type == YAML_STREAM_END_EVENT);
-
-    /* Emit the event. */
-
-    if (!yaml_emitter_emit(&emitter, &event))
-      break;
-  }
-
-  free(out.buf);
-  yaml_emitter_delete(&emitter);
-
-cleanup_parser:
-
-  yaml_parser_delete(&parser);
-  return 0;
-}
diff --git a/projects/libyaml/libyaml_scanner_fuzzer.c b/projects/libyaml/libyaml_scanner_fuzzer.c
deleted file mode 100644
index 681f8b6..0000000
--- a/projects/libyaml/libyaml_scanner_fuzzer.c
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "yaml.h"
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include <stdbool.h>
-
-#ifdef NDEBUG
-#undef NDEBUG
-#endif
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  yaml_parser_t parser;
-  yaml_token_t token;
-  bool done = false;
-
-  if(!yaml_parser_initialize(&parser))
-    return 0;
-
-  yaml_parser_set_input_string(&parser, data, size);
-
-  while (!done)
-  {
-      if (!yaml_parser_scan(&parser, &token)) {
-          break;
-      }
-
-      done = (token.type == YAML_STREAM_END_TOKEN);
-
-      yaml_token_delete(&token);
-  }
-
-  yaml_parser_delete(&parser);
-
-  return 0;
-}
diff --git a/projects/libyaml/project.yaml b/projects/libyaml/project.yaml
index 417dcc5..3e885cc 100644
--- a/projects/libyaml/project.yaml
+++ b/projects/libyaml/project.yaml
@@ -1,14 +1,10 @@
 homepage: https://github.com/yaml/libyaml
-language: c++
 primary_contact: "sigmavirus24@gmail.com"
 auto_ccs:
   - "alex.gaynor@gmail.com"
-  - "perlpunks@googlemail.com"
-  - "ingy@ingy.net"
 fuzzing_engines:
   - libfuzzer
   - afl
-  - honggfuzz
   - dataflow
 sanitizers:
   - address
@@ -18,4 +14,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/yaml/libyaml'
diff --git a/projects/libyaml/yaml_write_handler.h b/projects/libyaml/yaml_write_handler.h
deleted file mode 100644
index cb5d26e..0000000
--- a/projects/libyaml/yaml_write_handler.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef YAML_WRITE_HANDLER_H_
-#define YAML_WRITE_HANDLER_H_
-
-typedef struct yaml_output_buffer {
-  unsigned char *buf;
-  size_t size;
-} yaml_output_buffer_t;
-
-static int yaml_write_handler(void *data, unsigned char *buffer, size_t size) {
-  yaml_output_buffer_t *out = (yaml_output_buffer_t *)data;
-
-  out->buf = (unsigned char *)realloc(out->buf, out->size + size);
-  if (!out->buf) {
-    out->size = 0;
-    return 1;
-  }
-
-  memcpy(out->buf + out->size, buffer, size);
-  out->size += size;
-  return 0;
-}
-
-#endif // YAML_WRITE_HANDLER_H_
diff --git a/projects/libyang/Dockerfile b/projects/libyang/Dockerfile
deleted file mode 100755
index c1c5f75..0000000
--- a/projects/libyang/Dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y autoconf automake libtool subversion
-RUN git clone https://github.com/CESNET/libyang
-
-RUN svn co svn://vcs.exim.org/pcre2/code/trunk pcre2 && \
-    cd pcre2 && \
-    ./autogen.sh && \
-    ./configure && \
-    make && \
-    make install
-
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/libyang/build.sh b/projects/libyang/build.sh
deleted file mode 100755
index cb5857d..0000000
--- a/projects/libyang/build.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd libyang
-git checkout libyang2
-
-sed -i 's/add_subdirectory/#add_subdirectory/g' ./tools/CMakeLists.txt
-mkdir build && cd build
-cmake ../ -DENABLE_STATIC=ON 
-make
-
-static_pcre=($(find /src/pcre2 -name "libpcre2-8.a"))
-
-for fuzzer in lyd_parse_mem_json lyd_parse_mem_xml lys_parse_mem; do
-    $CC $CFLAGS $LIB_FUZZING_ENGINE ../tests/fuzz/${fuzzer}.c -o $OUT/${fuzzer} \
-        ./libyang.a -I../src -I./src -I./compat ${static_pcre} 
-done
diff --git a/projects/libyang/project.yaml b/projects/libyang/project.yaml
deleted file mode 100755
index aac772c..0000000
--- a/projects/libyang/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/CESNET/libyang"
-main_repo: 'https://github.com/CESNET/libyang'
-primary_contact: "mvasko@cesnet.cz"
-language: c
-auto_ccs:
-  - "mv6606@gmail.com"
-  - "david@adalogics.com"
-  - "warband.times@gmail.com"
-  - "juraj.vijtiuk@sartura.hr"
-sanitizers:
-  - address
-  - memory
diff --git a/projects/libyuv/project.yaml b/projects/libyuv/project.yaml
deleted file mode 100644
index b2ce796..0000000
--- a/projects/libyuv/project.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-homepage: "https://chromium.googlesource.com/libyuv/libyuv/"
-language: c++
-primary_contact: "mikhal@webrtc.org"
-auto_ccs:
-    - "fbarchard@google.com"
-    - "frkoenig@google.com"
-vendor_ccs:
-    - "ansgoel@microsoft.com"
-    - "jonorman@microsoft.com"
-fuzzing_engines:
-    - libfuzzer
-    - afl
-sanitizers:
-    - address
-    - memory
-    - undefined
diff --git a/projects/libzip/Dockerfile b/projects/libzip/Dockerfile
index a2c0b42..fb19311 100644
--- a/projects/libzip/Dockerfile
+++ b/projects/libzip/Dockerfile
@@ -17,6 +17,7 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 
+MAINTAINER randy408@protonmail.com
 
 RUN apt-get update && apt-get install -y cmake pkg-config zlib1g-dev liblzma-dev
 
diff --git a/projects/libzip/project.yaml b/projects/libzip/project.yaml
index 2743d39..45cf724 100644
--- a/projects/libzip/project.yaml
+++ b/projects/libzip/project.yaml
@@ -1,10 +1,4 @@
 homepage: "https://libzip.org/"
-language: c++
 primary_contact: "libzip@nih.at"
 auto_ccs:
-  - "randy440088@gmail.com"
-sanitizers:
-  - address
-  - undefined
-  - memory
-main_repo: 'https://github.com/nih-at/libzip.git'
+  - "randy440088@gmail.com"
\ No newline at end of file
diff --git a/projects/libzmq/Dockerfile b/projects/libzmq/Dockerfile
deleted file mode 100644
index dbefc17..0000000
--- a/projects/libzmq/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool gettext pkg-config build-essential
-RUN git clone --depth 1 https://github.com/zeromq/libzmq.git
-RUN git clone --depth 1 https://github.com/zeromq/libzmq-fuzz-corpora.git
-RUN git clone --depth 1 -b stable https://github.com/jedisct1/libsodium.git
-WORKDIR libzmq
-COPY build.sh $SRC/
diff --git a/projects/libzmq/build.sh b/projects/libzmq/build.sh
deleted file mode 100755
index 519696f..0000000
--- a/projects/libzmq/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-# Copyright 2020 Luca Boccassi <bluca@debian.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-${SRC}/libzmq/builds/fuzz/ci_build.sh
diff --git a/projects/libzmq/project.yaml b/projects/libzmq/project.yaml
deleted file mode 100644
index a7b9465..0000000
--- a/projects/libzmq/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/zeromq/libzmq"
-language: c++
-primary_contact: "bluca@debian.org"
-auto_ccs:
-  - "luca.boccassi@gmail.com"
-  - "somdoron@gmail.com"
-  - "simon.giesecke@gmail.com"
-architectures:
-  - x86_64
-  - i386
-main_repo: 'https://github.com/zeromq/libzmq.git'
diff --git a/projects/lighttpd/Dockerfile b/projects/lighttpd/Dockerfile
deleted file mode 100755
index e27d804..0000000
--- a/projects/lighttpd/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y libz-dev libtool pkg-config autoconf
-RUN git clone https://github.com/lighttpd/lighttpd1.4
-
-WORKDIR $SRC/lighttpd1.4
-COPY build.sh $SRC/
-COPY fuzz_* $SRC/
diff --git a/projects/lighttpd/build.sh b/projects/lighttpd/build.sh
deleted file mode 100755
index 5cd286a..0000000
--- a/projects/lighttpd/build.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-./autogen.sh
-./configure --without-pcre --enable-static
-make
-cd src
-$CC $CFLAGS -c $SRC/fuzz_burl.c -I. -I../include
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE fuzz_burl.o burl.o buffer.o base64.o -o $OUT/fuzz_burl
diff --git a/projects/lighttpd/fuzz_burl.c b/projects/lighttpd/fuzz_burl.c
deleted file mode 100644
index 5ba1e1c..0000000
--- a/projects/lighttpd/fuzz_burl.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2021 Google LLC
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-
-#include "burl.h"
-#include "buffer.h"
-
-void run_burl_normalize (buffer *psrc, buffer *ptmp, 
-						int flags, int line, const char *in, 
-						size_t in_len) {
-    int qs;
-    buffer_copy_string_len(psrc, in, in_len);
-    qs = burl_normalize(psrc, ptmp, flags);
-}
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    if (size <= 4) {
-        return 0;
-    }
-    int flags = ((int*)data)[0];
-    data += 4;
-    size -= 4;
-    char *new_str = (char *)malloc(size+1);
-    if (new_str == NULL){
-        return 0;
-    }
-    memcpy(new_str, data, size);
-    new_str[size] = '\0';
-
-    /* main fuzzer entrypoint for library */
-    buffer *psrc = buffer_init();
-    buffer *ptmp = buffer_init();
-    run_burl_normalize(psrc, ptmp, flags, __LINE__, new_str, size);
-    buffer_urldecode_path(psrc);
-
-    buffer_free(psrc);
-    buffer_free(ptmp);
-    free(new_str);
-    return 0;     
-}
diff --git a/projects/lighttpd/project.yaml b/projects/lighttpd/project.yaml
deleted file mode 100755
index 9a4b442..0000000
--- a/projects/lighttpd/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://www.lighttpd.net/"
-primary_contact: "lighttpd.fuzz@gmail.com"
-language: c
-auto_ccs :
-  - "david@adalogics.com"
-main_repo: "https://github.com/lighttpd/lighttpd1.4"
diff --git a/projects/llvm/Dockerfile b/projects/llvm/Dockerfile
index 1fd4c55..f6cc0c8 100644
--- a/projects/llvm/Dockerfile
+++ b/projects/llvm/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kcc@google.com
 RUN apt-get update -y
 RUN apt-get install -y autoconf automake libtool curl make g++ unzip wget git \
     binutils liblzma-dev libz-dev python-all cmake ninja-build subversion \
diff --git a/projects/llvm/project.yaml b/projects/llvm/project.yaml
index 54aef01..81662e8 100644
--- a/projects/llvm/project.yaml
+++ b/projects/llvm/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://llvm.org/"
-language: c++
 primary_contact: "kcc@google.com"
 auto_ccs:
   - "mascasa@google.com"
@@ -20,10 +19,9 @@
   - address
   - memory
 
+# The LLVM build currently supports only libFuzzer
 fuzzing_engines:
-  - libfuzzer
-  - honggfuzz
+    - libfuzzer
 
 # Bug reports are public by default:
 view_restrictions: none
-main_repo: 'https://github.com/llvm/llvm-project.git'
diff --git a/projects/llvm_libcxx/Dockerfile b/projects/llvm_libcxx/Dockerfile
index 81fd8b2..389b365 100644
--- a/projects/llvm_libcxx/Dockerfile
+++ b/projects/llvm_libcxx/Dockerfile
@@ -15,5 +15,4 @@
 ################################################################################
 FROM gcr.io/oss-fuzz-base/base-builder
 RUN git clone --depth 1 https://github.com/llvm/llvm-project.git
-WORKDIR llvm-project
 COPY build.sh $SRC/
diff --git a/projects/llvm_libcxx/build.sh b/projects/llvm_libcxx/build.sh
index b7f61c7..56130d3 100755
--- a/projects/llvm_libcxx/build.sh
+++ b/projects/llvm_libcxx/build.sh
@@ -15,5 +15,22 @@
 #
 ################################################################################
 
-# Run the oss-fuzz script in the repository
-./libcxx/utils/ci/oss-fuzz.sh
+cd llvm-project
+
+if [[ $SANITIZER = *undefined* ]]; then
+  CXXFLAGS="$CXXFLAGS -fsanitize=unsigned-integer-overflow -fsanitize-trap=unsigned-integer-overflow"
+fi
+
+for f in $(grep -v "#" libcxx/fuzzing/RoutineNames.txt); do
+  cat > ${f}_fuzzer.cc <<EOF
+#include "fuzzing/fuzzing.h"
+#include <cassert>
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+  int result = fuzzing::$f(data, size);
+  assert(result == 0); return 0;
+}
+EOF
+  $CXX $CXXFLAGS -std=c++11 ${f}_fuzzer.cc ./libcxx/fuzzing/fuzzing.cpp \
+      -nostdinc++ -cxx-isystem ./libcxx/include -iquote ./libcxx \
+      -o $OUT/$f $LIB_FUZZING_ENGINE
+done
diff --git a/projects/llvm_libcxx/project.yaml b/projects/llvm_libcxx/project.yaml
index 95587c1..06b10f3 100644
--- a/projects/llvm_libcxx/project.yaml
+++ b/projects/llvm_libcxx/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://libcxx.llvm.org/"
-language: c++
 primary_contact: "mclow.lists@gmail.com"
 auto_ccs:
   - "timshen91@gmail.com"
diff --git a/projects/llvm_libcxxabi/Dockerfile b/projects/llvm_libcxxabi/Dockerfile
index b66bd78..15ca3e1 100644
--- a/projects/llvm_libcxxabi/Dockerfile
+++ b/projects/llvm_libcxxabi/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kcc@google.com
 RUN apt-get update && apt-get install -y subversion
 
 RUN git clone --depth 1 https://github.com/llvm/llvm-project.git
diff --git a/projects/llvm_libcxxabi/project.yaml b/projects/llvm_libcxxabi/project.yaml
index 64e7e62..3a2e46f 100644
--- a/projects/llvm_libcxxabi/project.yaml
+++ b/projects/llvm_libcxxabi/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://libcxxabi.llvm.org/"
-language: c++
 primary_contact: "kcc@google.com"
 auto_ccs:
   - "Erik.Pilkington@gmail.com"
diff --git a/projects/lodepng/Dockerfile b/projects/lodepng/Dockerfile
index f295e56..f5c9c27 100644
--- a/projects/lodepng/Dockerfile
+++ b/projects/lodepng/Dockerfile
@@ -15,9 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER lvandeve@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 https://github.com/lvandeve/lodepng.git lodepng     # or use other version control
 WORKDIR lodepng
-ADD http://oss-fuzz-corpus.storage.googleapis.com/lodepng/lodepng_fuzzer_seed_corpus.zip $SRC/
-ADD https://raw.githubusercontent.com/google/AFL/master/dictionaries/png.dict $SRC/lodepng_fuzzer.dict
 COPY build.sh $SRC/
diff --git a/projects/lodepng/build.sh b/projects/lodepng/build.sh
index 491b0fc..be59342 100755
--- a/projects/lodepng/build.sh
+++ b/projects/lodepng/build.sh
@@ -19,9 +19,3 @@
 # allocate more than 100MB memory, which prevents OOM with the 2GB limit.
 $CXX $CXXFLAGS -DLODEPNG_MAX_ALLOC=100000000 lodepng.cpp lodepng_fuzzer.cpp -o\
  $OUT/lodepng_fuzzer $LIB_FUZZING_ENGINE
-
-# copy seed corpus
-cp $SRC/lodepng_fuzzer_seed_corpus.zip $OUT/
-
-# copy dictionary file
-cp $SRC/*.dict $OUT/
diff --git a/projects/lodepng/project.yaml b/projects/lodepng/project.yaml
index babb4c9..57af912 100644
--- a/projects/lodepng/project.yaml
+++ b/projects/lodepng/project.yaml
@@ -1,9 +1,5 @@
 homepage: "https://github.com/lvandeve/lodepng"
-language: c++
 primary_contact: "lvandeve@gmail.com"
-auto_ccs:
-  - "singharshdeep@google.com"
 sanitizers:
 - address
 - undefined
-main_repo: 'https://github.com/lvandeve/lodepng.git'
diff --git a/projects/loki/Dockerfile b/projects/loki/Dockerfile
deleted file mode 100644
index 2340618..0000000
--- a/projects/loki/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/grafana/loki/
-COPY build.sh $SRC/
-WORKDIR $SRC/loki
diff --git a/projects/loki/build.sh b/projects/loki/build.sh
deleted file mode 100644
index de3d5fb..0000000
--- a/projects/loki/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-compile_go_fuzzer github.com/grafana/loki/pkg/logql FuzzParseExpr fuzz_parse_expr
diff --git a/projects/loki/project.yaml b/projects/loki/project.yaml
deleted file mode 100644
index 5b75286..0000000
--- a/projects/loki/project.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-homepage: "https://github.com/grafana/loki"
-primary_contact: "cyril.tovena@grafana.com"
-auto_ccs :
-  - "adam@adalogics.com"
-  - "edward.welch@grafana.com"
-  - "michel.hollands@grafana.com"
-  - "loki@grafana.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/grafana/loki'
diff --git a/projects/lotus/Dockerfile b/projects/lotus/Dockerfile
deleted file mode 100644
index 08dccff..0000000
--- a/projects/lotus/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y mesa-opencl-icd ocl-icd-opencl-dev gcc \
-    git bzr jq pkg-config curl clang build-essential hwloc libhwloc-dev
-RUN git clone --depth 1 https://github.com/filecoin-project/lotus
-RUN git clone --depth 1 https://github.com/filecoin-project/fuzzing-lotus
-COPY build.sh $SRC/
-WORKDIR $SRC/lotus
diff --git a/projects/lotus/build.sh b/projects/lotus/build.sh
deleted file mode 100644
index 6460309..0000000
--- a/projects/lotus/build.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-make
-
-# Not all fuzzers can be compiled with --sanitizer=coverage.
-# The specific issue is that gofuzz.NewFromGofuzz is not supported when compiling with coverage.
-# The current status of the coverage build is that we do not break it for the fuzzers that cannot be compiled.
-#The reason that we don't break the build script is to create coverage reports for the fuzzers that compile.
-if [[ $SANITIZER = *coverage* ]]; then
-	compile_go_fuzzer github.com/filecoin-project/lotus/chain/types FuzzMessage fuzz_message gofuzz
-	mkdir fuzzing
-	cp ../fuzzing-lotus/fuzz/fuzz.go fuzzing/
-	compile_go_fuzzer github.com/filecoin-project/lotus/fuzzing FuzzBlockMsg fuzz_block_msg || true
-	compile_go_fuzzer github.com/filecoin-project/lotus/fuzzing FuzzBlockMsgStructural fuzz_block_msg_structural || true
-	compile_go_fuzzer github.com/filecoin-project/lotus/fuzzing FuzzBlockHeader fuzz_block_header || true
-	compile_go_fuzzer github.com/filecoin-project/lotus/fuzzing FuzzNodesForHeight fuzz_nodes_for_height || true
-	exit 0
-fi
-
-compile_go_fuzzer ./chain/types FuzzMessage fuzz_message gofuzz
-
-
-# Fuzzers from fuzzing-lotus
-cd ../fuzzing-lotus/fuzz
-rm -Rf libfuzzer
-go mod init github.com/filecoin-project/fuzzing-lotus/fuzz
-
-compile_go_fuzzer github.com/filecoin-project/fuzzing-lotus/fuzz FuzzBlockMsg fuzz_block_msg
-compile_go_fuzzer github.com/filecoin-project/fuzzing-lotus/fuzz FuzzBlockMsgStructural fuzz_block_msg_structural
-compile_go_fuzzer github.com/filecoin-project/fuzzing-lotus/fuzz FuzzBlockHeader fuzz_block_header
-compile_go_fuzzer github.com/filecoin-project/fuzzing-lotus/fuzz FuzzNodesForHeight fuzz_nodes_for_height
-exit 0
diff --git a/projects/lotus/project.yaml b/projects/lotus/project.yaml
deleted file mode 100644
index 6ab81c1..0000000
--- a/projects/lotus/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/filecoin-project/lotus"
-main_repo: "https://github.com/filecoin-project/lotus"
-primary_contact: "security@filecoin.org"
-auto_ccs :
-  - "Adam@adalogics.com"
-  - "kubuxu@protocol.ai"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
diff --git a/projects/lua/Dockerfile b/projects/lua/Dockerfile
deleted file mode 100644
index 054ce66..0000000
--- a/projects/lua/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y libreadline-dev 
-RUN git clone https://github.com/lua/lua
-WORKDIR $SRC
-COPY build.sh $SRC/
-COPY fuzz_lua.c $SRC/
diff --git a/projects/lua/build.sh b/projects/lua/build.sh
deleted file mode 100755
index 72f33c7..0000000
--- a/projects/lua/build.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-sed "s/CFLAGS=/CFLAGS+=/g" -i $SRC/lua/makefile
-sed "s/MYLDFLAGS=/MYLDFLAGS=${CFLAGS} /g" -i $SRC/lua/makefile
-sed "s|CC= gcc|CC= ${CC}|g" -i $SRC/lua/makefile
-
-cd $SRC/lua
-make
-cp ../fuzz_lua.c .
-$CC $CFLAGS -c fuzz_lua.c -o fuzz_lua.o
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE fuzz_lua.o -o $OUT/fuzz_lua ./liblua.a
diff --git a/projects/lua/fuzz_lua.c b/projects/lua/fuzz_lua.c
deleted file mode 100644
index 2acaf2c..0000000
--- a/projects/lua/fuzz_lua.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Copyright 2020 Google LLC
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-
-#define lua_c
-
-#include "lprefix.h"
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-
-#include <signal.h>
-
-#include "lua.h"
-
-#include "lauxlib.h"
-#include "lualib.h"
-
-
-#if !defined(LUA_PROGNAME)
-#define LUA_PROGNAME            "lua"
-#endif
-
-#if !defined(LUA_INIT_VAR)
-#define LUA_INIT_VAR            "LUA_INIT"
-#endif
-
-#define LUA_INITVARVERSION      LUA_INIT_VAR LUA_VERSUFFIX
-
-
-static lua_State *globalL = NULL;
-
-static const char *progname = LUA_PROGNAME;
-
-
-/*
-** Hook set by signal function to stop the interpreter.
-*/
-static void lstop (lua_State *L, lua_Debug *ar) {
-  (void)ar;  /* unused arg. */
-  lua_sethook(L, NULL, 0, 0);  /* reset hook */
-  luaL_error(L, "interrupted!");
-}
-
-
-/*
-** Function to be called at a C signal. Because a C signal cannot
-** just change a Lua state (as there is no proper synchronization),
-** this function only sets a hook that, when called, will stop the
-** interpreter.
-*/
-static void laction (int i) {
-  int flag = LUA_MASKCALL | LUA_MASKRET | LUA_MASKLINE | LUA_MASKCOUNT;
-  signal(i, SIG_DFL); /* if another SIGINT happens, terminate process */
-  lua_sethook(globalL, lstop, flag, 1);
-}
-
-
-
-/*
-** Prints an error message, adding the program name in front of it
-** (if present)
-*/
-static void l_message (const char *pname, const char *msg) {
-  if (pname) lua_writestringerror("%s: ", pname);
-  lua_writestringerror("%s\n", msg);
-}
-
-
-/*
-** Check whether 'status' is not OK and, if so, prints the error
-** message on the top of the stack. It assumes that the error object
-** is a string, as it was either generated by Lua or by 'msghandler'.
-*/
-static int report (lua_State *L, int status) {
-  if (status != LUA_OK) {
-    const char *msg = lua_tostring(L, -1);
-    l_message(progname, msg);
-    lua_pop(L, 1);  /* remove message */
-  }
-  return status;
-}
-
-/*
-** Message handler used to run all chunks
-*/
-static int msghandler (lua_State *L) {
-  const char *msg = lua_tostring(L, 1);
-  if (msg == NULL) {  /* is error object not a string? */
-    if (luaL_callmeta(L, 1, "__tostring") &&  /* does it have a metamethod */
-        lua_type(L, -1) == LUA_TSTRING)  /* that produces a string? */
-      return 1;  /* that is the message */
-    else
-      msg = lua_pushfstring(L, "(error object is a %s value)",
-                               luaL_typename(L, 1));
-  }
-  luaL_traceback(L, L, msg, 1);  /* append a standard traceback */
-  return 1;  /* return the traceback */
-}
-
-
-/*
-** Interface to 'lua_pcall', which sets appropriate message function
-** and C-signal handler. Used to run all chunks.
-*/
-static int docall (lua_State *L, int narg, int nres) {
-  int status;
-  int base = lua_gettop(L) - narg;  /* function index */
-  lua_pushcfunction(L, msghandler);  /* push message handler */
-  lua_insert(L, base);  /* put it under function and args */
-  globalL = L;  /* to be available to 'laction' */
-  signal(SIGINT, laction);  /* set C-signal handler */
-  status = lua_pcall(L, narg, nres, base);
-  signal(SIGINT, SIG_DFL); /* reset C-signal handler */
-  lua_remove(L, base);  /* remove message handler from the stack */
-  return status;
-}
-
-
-static int dochunk (lua_State *L, int status) {
-  if (status == LUA_OK) status = docall(L, 0, 0);
-  return report(L, status);
-}
-
-
-/* mark in error messages for incomplete statements */
-#define EOFMARK         "<eof>"
-#define marklen         (sizeof(EOFMARK)/sizeof(char) - 1)
-
-int
-LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    lua_State *L = luaL_newstate();
-    if (L == NULL) {
-        return 0;
-    }
-    dochunk(L, luaL_loadbufferx(L, data, size, "test", "t"));
-
-    lua_close(L);
-    return 0;
-}
diff --git a/projects/lua/project.yaml b/projects/lua/project.yaml
deleted file mode 100644
index 9a4b0dd..0000000
--- a/projects/lua/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: "https://github.com/lua/lua"
-language: c
-primary_contact: "roberto@inf.puc-rio.br"
-auto_ccs:
-  - "fuzz@lua.org"
-  - "david@adalogics.com"
-main_repo: 'https://github.com/lua/lua'
diff --git a/projects/lwan/Dockerfile b/projects/lwan/Dockerfile
index 6499373..a342314 100644
--- a/projects/lwan/Dockerfile
+++ b/projects/lwan/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER leandro.pereira@gmail.com
 RUN apt-get update
 RUN apt-get install -y build-essential cmake git ninja-build zlib1g-dev
 
diff --git a/projects/lwan/project.yaml b/projects/lwan/project.yaml
index 224f6b5..4342d99 100644
--- a/projects/lwan/project.yaml
+++ b/projects/lwan/project.yaml
@@ -1,6 +1,4 @@
 homepage: "https://github.com/lpereira/lwan"
-language: c++
 primary_contact: "leandro.pereira@gmail.com"
 sanitizers:
   - address
-main_repo: 'git://github.com/lpereira/lwan'
diff --git a/projects/lxc/Dockerfile b/projects/lxc/Dockerfile
deleted file mode 100644
index 375c224..0000000
--- a/projects/lxc/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && \
-    apt-get install -y pkgconf make libtool automake autoconf
-RUN git clone --depth 1 https://github.com/lxc/lxc
-WORKDIR lxc
-COPY build.sh $SRC/
diff --git a/projects/lxc/build.sh b/projects/lxc/build.sh
deleted file mode 100755
index 1f18a7e..0000000
--- a/projects/lxc/build.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash -e
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-src/tests/oss-fuzz.sh
diff --git a/projects/lxc/project.yaml b/projects/lxc/project.yaml
deleted file mode 100644
index f19d356..0000000
--- a/projects/lxc/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/lxc/lxc"
-language: c
-primary_contact: "christian@brauner.io"
-builds_per_day: 4
-sanitizers:
-  - address
-  - undefined
-  - memory
-auto_ccs:
-  - stgraber@stgraber.org
-  - evverx@gmail.com
-main_repo: "https://github.com/lxc/lxc"
diff --git a/projects/lz4/Dockerfile b/projects/lz4/Dockerfile
index 2f9f429..93da98d 100644
--- a/projects/lz4/Dockerfile
+++ b/projects/lz4/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER cmeister2@gmail.com
 
 RUN git clone --depth 1 https://github.com/lz4/lz4.git /src/lz4
 
diff --git a/projects/lz4/project.yaml b/projects/lz4/project.yaml
index 8aa5314..7b008f0 100644
--- a/projects/lz4/project.yaml
+++ b/projects/lz4/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/lz4/lz4"
-language: c++
 primary_contact: "Yann.collet.73@gmail.com"
 auto_ccs:
   - "NickRTerrell@gmail.com"
@@ -9,16 +8,10 @@
   - "bimbashrestha@fb.com"
   - "mhl@fb.com"
   - "reed@fb.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
   - memory
   - undefined
-  - dataflow
 architectures:
   - x86_64
-main_repo: 'https://github.com/lz4/lz4.git'
+  - i386
diff --git a/projects/lzma/Dockerfile b/projects/lzma/Dockerfile
index 38e5dfe..36e9306 100644
--- a/projects/lzma/Dockerfile
+++ b/projects/lzma/Dockerfile
@@ -16,6 +16,7 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 
+MAINTAINER mail@joachim-bauch.de
 
 RUN apt-get update && apt-get install -y \
 	autoconf \
diff --git a/projects/lzma/project.yaml b/projects/lzma/project.yaml
index 45f9fb8..e555832 100644
--- a/projects/lzma/project.yaml
+++ b/projects/lzma/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.7-zip.org/sdk.html"
-language: c++
 primary_contact: "ipavlov@users.sourceforge.net"
 auto_ccs:
   - "mail@joachim-bauch.de"
diff --git a/projects/lzo/Dockerfile b/projects/lzo/Dockerfile
index 32127b1..e309f62 100644
--- a/projects/lzo/Dockerfile
+++ b/projects/lzo/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER info@oberhumer.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool wget
 RUN wget -O lzo.tar.gz \
     http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
diff --git a/projects/lzo/project.yaml b/projects/lzo/project.yaml
index 5713379..7bf5d10 100644
--- a/projects/lzo/project.yaml
+++ b/projects/lzo/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.oberhumer.com"
-language: c++
 primary_contact: "info@oberhumer.com"
 auto_ccs:
   - "bshas3@gmail.com"
diff --git a/projects/matio/Dockerfile b/projects/matio/Dockerfile
index d69281c..42c0dd4 100644
--- a/projects/matio/Dockerfile
+++ b/projects/matio/Dockerfile
@@ -15,9 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool
-RUN git clone --depth 1 https://github.com/madler/zlib
+MAINTAINER t-beu@users.sourceforge.net
+RUN apt-get update && apt-get install -y make autoconf automake libhdf5-dev libtool zlib1g-dev
+ENV HDF5_DIR /usr/lib/x86_64-linux-gnu/hdf5/serial
 RUN git clone --depth 1 git://git.code.sf.net/p/matio/matio matio
-ADD https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/hdf5-1.12.0.tar.gz hdf5-1.12.0.tar.gz
 WORKDIR matio
+ADD https://support.hdfgroup.org/ftp/lib-external/szip/2.1.1/src/szip-2.1.1.tar.gz szip.tar.gz
 COPY build.sh $SRC/
diff --git a/projects/matio/project.yaml b/projects/matio/project.yaml
index 3b3596b..054efbe 100644
--- a/projects/matio/project.yaml
+++ b/projects/matio/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/tbeu/matio"
-language: c++
 primary_contact: "t-beu@users.sourceforge.net"
 sanitizers:
   - address
@@ -7,4 +6,3 @@
   - undefined
 architectures:
   - x86_64
-main_repo: 'git://git.code.sf.net/p/matio/matio'
diff --git a/projects/mbedtls/Dockerfile b/projects/mbedtls/Dockerfile
index 3a8908f..9c49e60 100644
--- a/projects/mbedtls/Dockerfile
+++ b/projects/mbedtls/Dockerfile
@@ -16,6 +16,7 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 #TODO change
+MAINTAINER support-mbedtls@arm.com
 RUN apt-get update && apt-get install -y make cmake
 RUN git clone --recursive --depth 1 https://github.com/ARMmbed/mbedtls.git mbedtls
 RUN git clone --depth 1 https://github.com/google/boringssl.git boringssl
diff --git a/projects/mbedtls/project.yaml b/projects/mbedtls/project.yaml
index e76f41a..ac93b7e 100644
--- a/projects/mbedtls/project.yaml
+++ b/projects/mbedtls/project.yaml
@@ -1,6 +1,3 @@
-homepage: "https://developer.trustedfirmware.org/w/mbed-tls/"
-language: c++
-primary_contact: "mbed-tls-security@lists.trustedfirmware.org"
-auto_ccs :
-  - "p.antoine@catenacyber.fr"
-main_repo: 'https://github.com/ARMmbed/mbedtls.git'
+homepage: "https://tls.mbed.org"
+primary_contact: "support-mbedtls@arm.com"
+auto_ccs : "p.antoine@catenacyber.fr"
diff --git a/projects/md4c/Dockerfile b/projects/md4c/Dockerfile
deleted file mode 100755
index 65ebbff..0000000
--- a/projects/md4c/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake
-RUN git clone https://github.com/mity/md4c
-
-WORKDIR $SRC/md4c
-COPY build.sh $SRC/
diff --git a/projects/md4c/build.sh b/projects/md4c/build.sh
deleted file mode 100755
index 51d8a80..0000000
--- a/projects/md4c/build.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-mkdir build && cd build
-cmake ../ -DBUILD_SHARED_LIBS=OFF
-make
-$CC $CFLAGS $LIB_FUZZING_ENGINE ../test/fuzzers/fuzz-mdhtml.c -o $OUT/fuzz-mdhtml \
-    -I../src ./src/libmd4c-html.a ./src/libmd4c.a
diff --git a/projects/md4c/project.yaml b/projects/md4c/project.yaml
deleted file mode 100755
index 33e881e..0000000
--- a/projects/md4c/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/mity/md4c"
-main_repo: "https://github.com/mity/md4c"
-primary_contact: "mity@morous.org"
-language: c
-auto_ccs:
-  - "david@adalogics.com"
diff --git a/projects/mdbtools/Dockerfile b/projects/mdbtools/Dockerfile
deleted file mode 100644
index 37b2668..0000000
--- a/projects/mdbtools/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf autoconf-archive automake gettext libtool pkg-config
-
-RUN git clone --depth 1 --branch master https://github.com/mdbtools/mdbtools mdbtools
-RUN git clone --depth 1 https://github.com/mdbtools/mdbtestdata mdbtestdata
-WORKDIR mdbtools
-COPY build.sh $SRC/
diff --git a/projects/mdbtools/build.sh b/projects/mdbtools/build.sh
deleted file mode 100644
index d3269bc..0000000
--- a/projects/mdbtools/build.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash -eu
-
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-autoreconf -f -i
-./configure --enable-static --disable-man --disable-glib
-make clean
-
-make
-
-zip -j $OUT/fuzz_mdb_seed_corpus.zip ../mdbtestdata/data/*.mdb ../mdbtestdata/data/*.accdb
-
-cd src/fuzz
-make fuzz_mdb
-cp fuzz_mdb $OUT/fuzz_mdb
diff --git a/projects/mdbtools/project.yaml b/projects/mdbtools/project.yaml
deleted file mode 100644
index 86b0d4f..0000000
--- a/projects/mdbtools/project.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-homepage: "https://github.com/mdbtools/mdbtools"
-language: c
-primary_contact: "emmiller@gmail.com"
-main_repo: "https://github.com/mdbtools/mdbtools"
diff --git a/projects/mercurial/Dockerfile b/projects/mercurial/Dockerfile
index 334d95d..09b5220 100644
--- a/projects/mercurial/Dockerfile
+++ b/projects/mercurial/Dockerfile
@@ -15,28 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y \
-  autoconf \
-  automake \
-  build-essential \
-  curl \
-  libbz2-dev \
-  libncurses5-dev \
-  libncursesw5-dev \
-  libreadline-dev \
-  libsqlite3-dev \
-  libssl-dev \
-  libtool \
-  llvm \
-  lzma-dev \
-  make \
-  python3-dev \
-  tk-dev \
-  wget \
-  xz-utils \
-  zlib1g-dev \
-  mercurial
-RUN cd $SRC && curl https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz | tar xzf -
+MAINTAINER security@mercurial-scm.org
+RUN apt-get update && apt-get install -y make autoconf automake libtool \
+  python-dev mercurial curl
+RUN cd $SRC && curl https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz | tar xzf -
 RUN hg clone https://www.mercurial-scm.org/repo/hg mercurial
 WORKDIR mercurial
 COPY build.sh $SRC/
diff --git a/projects/mercurial/build.sh b/projects/mercurial/build.sh
index abb6ba6..30ee281 100755
--- a/projects/mercurial/build.sh
+++ b/projects/mercurial/build.sh
@@ -15,43 +15,49 @@
 #
 ################################################################################
 
-# Ignore memory leaks from python scripts invoked in the build
-export ASAN_OPTIONS="detect_leaks=0"
-export MSAN_OPTIONS="halt_on_error=0:exitcode=0:report_umrs=0"
+pushd $SRC/Python-2.7.15/
+patch -p1 <<'EOF'
+Index: v2_7_unstable/Python/pymath.c
+===================================================================
+--- v2_7_unstable.orig/Python/pymath.c
++++ v2_7_unstable/Python/pymath.c
+@@ -18,6 +18,7 @@ double _Py_force_double(double x)
+ /* inline assembly for getting and setting the 387 FPU control word on
+    gcc/x86 */
 
-# Remove -pthread from CFLAGS, this trips up ./configure
-# which thinks pthreads are available without any CLI flags
-CFLAGS=${CFLAGS//"-pthread"/}
++__attribute__((no_sanitize_memory))
+ unsigned short _Py_get_387controlword(void) {
+     unsigned short cw;
+     __asm__ __volatile__ ("fnstcw %0" : "=m" (cw));
+Index: v2_7_unstable/Modules/_ctypes/callproc.c
+===================================================================
+--- v2_7_unstable.orig/Modules/_ctypes/callproc.c
++++ v2_7_unstable/Modules/_ctypes/callproc.c
+@@ -1166,6 +1166,10 @@ PyObject *_ctypes_callproc(PPROC pProc,
 
-FLAGS=()
-case $SANITIZER in
-  address)
-    FLAGS+=("--with-address-sanitizer")
-    ;;
-  memory)
-    FLAGS+=("--with-memory-sanitizer")
-    # installing ensurepip takes a while with MSAN instrumentation, so
-    # we disable it here
-    FLAGS+=("--without-ensurepip")
-    ;;
-  undefined)
-    FLAGS+=("--with-undefined-behavior-sanitizer")
-    ;;
-esac
+     rtype = _ctypes_get_ffi_type(restype);
+     resbuf = alloca(max(rtype->size, sizeof(ffi_arg)));
++    /* ffi_call actually initializes resbuf, but from asm, which
++     * MemorySanitizer can't detect. Avoid false positives from MSan. */
++    if (resbuf != NULL)
++        memset(resbuf, 0, max(rtype->size, sizeof(ffi_arg)));
 
-pushd $SRC/Python-3.8.3/
+     avalues = (void **)alloca(sizeof(void *) * argcount);
+     atypes = (ffi_type **)alloca(sizeof(ffi_type *) * argcount);
+EOF
+
 if [ -e $OUT/sanpy/cflags -a "$(cat $OUT/sanpy/cflags)" = "${CFLAGS}" ] ; then
     echo 'Python cflags unchanged, no need to rebuild'
 else
     rm -rf $OUT/sanpy
-    ./configure "${FLAGS[@]:-}" \
+    ASAN_OPTIONS=detect_leaks=0 ./configure --without-pymalloc \
                 --prefix=$OUT/sanpy CFLAGS="${CFLAGS}" LINKCC="${CXX}" \
                 LDFLAGS="${CXXFLAGS}"
     grep -v HAVE_GETC_UNLOCKED < pyconfig.h > tmp && mv tmp pyconfig.h
-    make && make install
+    ASAN_OPTIONS=detect_leaks=0 make && make install
     echo "${CFLAGS}" > $OUT/sanpy/cflags
 fi
 popd
 
 cd contrib/fuzz
-make clean oss-fuzz PYTHON_CONFIG=$OUT/sanpy/bin/python3.8-config PYTHON_CONFIG_FLAGS="--ldflags --embed"
+make clean oss-fuzz
diff --git a/projects/mercurial/project.yaml b/projects/mercurial/project.yaml
index 2908b04..e000719 100644
--- a/projects/mercurial/project.yaml
+++ b/projects/mercurial/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.mercurial-scm.org/"
-language: c++
 primary_contact: "durin42@gmail.com"
 auto_ccs:
   - "gregory.szorc@gmail.com"
@@ -10,4 +9,3 @@
   - address
   - undefined
   - memory
-coverage_extra_args: -ignore-filename-regex=.*/sanpy/.*
diff --git a/projects/meshoptimizer/Dockerfile b/projects/meshoptimizer/Dockerfile
deleted file mode 100644
index 0522ab8..0000000
--- a/projects/meshoptimizer/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool \
-  pkg-config cmake libcurlpp-dev libcurl4-openssl-dev
-RUN git clone https://github.com/zeux/meshoptimizer
-WORKDIR meshoptimizer
-COPY build.sh $SRC/
diff --git a/projects/meshoptimizer/build.sh b/projects/meshoptimizer/build.sh
deleted file mode 100755
index 8012b52..0000000
--- a/projects/meshoptimizer/build.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-mkdir build && cd build
-cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ..
-make -j$(nproc)
-
-cd ..
-find . -name "*.o" -exec ar rcs fuzz_lib.a {} \;
-$CXX $CXXFLAGS tools/codecfuzz.cpp -o $OUT/codecfuzzer $LIB_FUZZING_ENGINE fuzz_lib.a
diff --git a/projects/meshoptimizer/project.yaml b/projects/meshoptimizer/project.yaml
deleted file mode 100644
index bc4b3cf..0000000
--- a/projects/meshoptimizer/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/zeux/meshoptimizer"
-main_repo: "https://github.com/zeux/meshoptimizer"
-language: c++
-primary_contact: "arseny.kapoulkine@gmail.com"
-auto_ccs:
-  - "Adam@adalogics.com"
-sanitizers:
-  - address
-  - undefined
-  - memory
diff --git a/projects/minify/Dockerfile b/projects/minify/Dockerfile
deleted file mode 100644
index 3f3516a..0000000
--- a/projects/minify/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/tdewolff/minify
-RUN git clone --depth 1 https://github.com/tdewolff/parse
-COPY build.sh $SRC/
-WORKDIR $SRC/
diff --git a/projects/minify/build.sh b/projects/minify/build.sh
deleted file mode 100755
index 1c03167..0000000
--- a/projects/minify/build.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-./minify/tests/oss-fuzz-build.sh
diff --git a/projects/minify/project.yaml b/projects/minify/project.yaml
deleted file mode 100644
index 3854a49..0000000
--- a/projects/minify/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/tdewolff/minify"
-primary_contact: "tacodewolff@gmail.com"
-auto_ccs :
-  - "adam@adalogics.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/tdewolff/minify'
diff --git a/projects/miniz/Dockerfile b/projects/miniz/Dockerfile
deleted file mode 100644
index 5658ff3..0000000
--- a/projects/miniz/Dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && \
-    apt-get install -y cmake
-
-RUN git clone --depth 1 https://github.com/richgel999/miniz.git
-
-WORKDIR miniz
-COPY build.sh $SRC/
diff --git a/projects/miniz/build.sh b/projects/miniz/build.sh
deleted file mode 100755
index e116a39..0000000
--- a/projects/miniz/build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Run the OSS-Fuzz script in the project
-$SRC/miniz/tests/ossfuzz.sh
-
diff --git a/projects/miniz/project.yaml b/projects/miniz/project.yaml
deleted file mode 100644
index 928f7c6..0000000
--- a/projects/miniz/project.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-homepage: "https://github.com/richgel999/miniz"
-language: c
-primary_contact: "martin@urbackup.org"
-auto_ccs:
-  - "randy440088@gmail.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
-sanitizers:
-  - address
-  - undefined
-  - memory
-  - dataflow
-main_repo: 'https://github.com/richgel999/miniz.git'
diff --git a/projects/minizinc/Dockerfile b/projects/minizinc/Dockerfile
new file mode 100644
index 0000000..70a58ea
--- /dev/null
+++ b/projects/minizinc/Dockerfile
@@ -0,0 +1,24 @@
+# Copyright 2019 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER Harsil S. Patel <harsil.patel@monash.edu>
+RUN apt-get update && apt-get install -y make autoconf automake libtool cmake git build-essential curl
+RUN curl -L https://gitlab.com/minizinc/minizinc-afl-seed-corpus/-/archive/master/minizinc-afl-seed-corpus-master.zip -o $SRC/minizinc_fuzzer_seed_corpus.zip
+RUN git clone --depth 1 --branch develop https://github.com/MiniZinc/libminizinc.git minizinc
+COPY minizinc_fuzzer.cpp minizinc/
+WORKDIR minizinc
+COPY build.sh minizinc_fuzzer.dict minizinc_fuzzer.options $SRC/
\ No newline at end of file
diff --git a/projects/minizinc/build.sh b/projects/minizinc/build.sh
new file mode 100755
index 0000000..9cd1c08
--- /dev/null
+++ b/projects/minizinc/build.sh
@@ -0,0 +1,32 @@
+#!/bin/bash -eu
+# Copyright 2019 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+build_dir=$WORK/build
+
+mkdir -p $build_dir
+pushd $build_dir
+cmake $SRC/minizinc -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=$WORK/install
+cmake --build . --target install -- -j$(nproc)
+popd
+
+$CXX $CXXFLAGS -std=c++11 -I$WORK/install/include $SRC/minizinc/minizinc_fuzzer.cpp -o $OUT/minizinc_fuzzer $LIB_FUZZING_ENGINE $WORK/install/lib/libmzn.a
+
+rm -rf $OUT/share
+mv $WORK/install/share $OUT
+mv $SRC/minizinc_fuzzer_seed_corpus.zip $OUT/minizinc_fuzzer_seed_corpus.zip
+mv $SRC/minizinc_fuzzer.dict $OUT/minizinc_fuzzer.dict
+mv $SRC/minizinc_fuzzer.options $OUT/minizinc_fuzzer.options
\ No newline at end of file
diff --git a/projects/minizinc/minizinc_fuzzer.cpp b/projects/minizinc/minizinc_fuzzer.cpp
new file mode 100644
index 0000000..f4bbc28
--- /dev/null
+++ b/projects/minizinc/minizinc_fuzzer.cpp
@@ -0,0 +1,66 @@
+/*
+# Copyright 2019 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <minizinc/solver.hh>
+
+using namespace std;
+using namespace MiniZinc;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+
+    Timer starttime;
+    bool fSuccess = false;
+    try {
+      MznSolver slv(std::cout,std::cerr);
+      try {
+        std::string model = std::string(reinterpret_cast<const char*>(Data), Size);
+        std::vector<std::string> args({"-c","--solver","org.minizinc.mzn-fzn"});
+        fSuccess = (slv.run(args, model, "minizinc", "model.mzn") != SolverInstance::ERROR);
+      } catch (const LocationException& e) {
+        if (slv.get_flag_verbose())
+          std::cerr << std::endl;
+        std::cerr << e.loc() << ":" << std::endl;
+        std::cerr << e.what() << ": " << e.msg() << std::endl;
+      } catch (const Exception& e) {
+        if (slv.get_flag_verbose())
+          std::cerr << std::endl;
+        std::string what = e.what();
+        std::cerr << what << (what.empty() ? "" : ": ") << e.msg() << std::endl;
+      }
+      catch (const exception& e) {
+        if (slv.get_flag_verbose())
+          std::cerr << std::endl;
+        std::cerr << e.what() << std::endl;
+      }
+      catch (...) {
+        if (slv.get_flag_verbose())
+          std::cerr << std::endl;
+        std::cerr << "  UNKNOWN EXCEPTION." << std::endl;
+      }
+
+      if (slv.get_flag_verbose()) {
+        std::cerr << "   Done (";
+        cerr << "overall time " << starttime.stoptime() << ")." << std::endl;
+      }
+    } catch (const Exception& e) {
+      std::string what = e.what();
+      std::cerr << what << (what.empty() ? "" : ": ") << e.msg() << std::endl;
+    }
+
+  return 0;  // Non-zero return values are reserved for future use.
+}
diff --git a/projects/minizinc/minizinc_fuzzer.dict b/projects/minizinc/minizinc_fuzzer.dict
new file mode 100644
index 0000000..79db04d
--- /dev/null
+++ b/projects/minizinc/minizinc_fuzzer.dict
@@ -0,0 +1,50 @@
+reserved_keyword_0="ann"
+reserved_keyword_1="annotation"
+reserved_keyword_2="any"
+reserved_keyword_3="array"
+reserved_keyword_4="bool"
+reserved_keyword_5="case"
+reserved_keyword_6="constraint"
+reserved_keyword_7="diff"
+reserved_keyword_8="div"
+reserved_keyword_9="else"
+reserved_keyword_10="elseif"
+reserved_keyword_11="endif"
+reserved_keyword_12="enum"
+reserved_keyword_13="false"
+reserved_keyword_14="float"
+reserved_keyword_15="function"
+reserved_keyword_16="if"
+reserved_keyword_17="in"
+reserved_keyword_18="include"
+reserved_keyword_19="int"
+reserved_keyword_20="intersect"
+reserved_keyword_21="let"
+reserved_keyword_22="list"
+reserved_keyword_23="maximize"
+reserved_keyword_24="minimize"
+reserved_keyword_25="mod"
+reserved_keyword_26="not"
+reserved_keyword_27="of"
+reserved_keyword_28="op"
+reserved_keyword_29="opt"
+reserved_keyword_30="output"
+reserved_keyword_31="par"
+reserved_keyword_32="predicate"
+reserved_keyword_33="record"
+reserved_keyword_34="satisfy"
+reserved_keyword_35="set"
+reserved_keyword_36="solve"
+reserved_keyword_37="string"
+reserved_keyword_38="subset"
+reserved_keyword_39="superset"
+reserved_keyword_40="symdiff"
+reserved_keyword_41="test"
+reserved_keyword_42="then"
+reserved_keyword_43="true"
+reserved_keyword_44="tuple"
+reserved_keyword_45="type"
+reserved_keyword_46="union"
+reserved_keyword_47="var"
+reserved_keyword_48="where"
+reserved_keyword_49="xor"
\ No newline at end of file
diff --git a/projects/minizinc/minizinc_fuzzer.options b/projects/minizinc/minizinc_fuzzer.options
new file mode 100644
index 0000000..6819d2e
--- /dev/null
+++ b/projects/minizinc/minizinc_fuzzer.options
@@ -0,0 +1,3 @@
+[libfuzzer]
+only_ascii = 1
+detect_leaks = 0
\ No newline at end of file
diff --git a/projects/minizinc/project.yaml b/projects/minizinc/project.yaml
new file mode 100644
index 0000000..bc42b9a
--- /dev/null
+++ b/projects/minizinc/project.yaml
@@ -0,0 +1,8 @@
+homepage: "http://www.minizinc.org/"
+primary_contact: "jip.dekker@monash.edu"
+auto_ccs:
+  - "jip.dekker@monash.edu"
+  - "guido.tack@monash.edu"
+sanitizers:
+  - address
+  - memory
diff --git a/projects/minizip/Dockerfile b/projects/minizip/Dockerfile
index 3d14fba..c9eb382 100644
--- a/projects/minizip/Dockerfile
+++ b/projects/minizip/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER nathan.moinvaziri@gmail.com
 RUN apt-get update && apt-get install -y make cmake pkg-config
 
 RUN git clone -b dev https://github.com/nmoinvaz/minizip
diff --git a/projects/minizip/project.yaml b/projects/minizip/project.yaml
index 453540a..75283a1 100644
--- a/projects/minizip/project.yaml
+++ b/projects/minizip/project.yaml
@@ -1,5 +1,20 @@
+# Copyright 2018 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
 homepage: "https://github.com/nmoinvaz/minizip"
-language: c++
 primary_contact: "nathan.moinvaziri@gmail.com"
 sanitizers:
   - address
@@ -7,5 +22,4 @@
   - undefined
 architectures:
   - x86_64
-  - i386
-main_repo: 'https://github.com/nmoinvaz/minizip'
+  - i386
\ No newline at end of file
diff --git a/projects/monero/Dockerfile b/projects/monero/Dockerfile
deleted file mode 100644
index fe2dbbe..0000000
--- a/projects/monero/Dockerfile
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright 2020 The Monero Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Multistage docker build, requires docker 17.05
-
-# builder stage
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN set -ex && \
-    apt-get update && \
-    apt-get --no-install-recommends --yes install \
-        ca-certificates \
-        cmake \
-        g++ \
-        make \
-        pkg-config \
-        graphviz \
-        doxygen \
-        git \
-        curl \
-        libtool-bin \
-        autoconf \
-        automake \
-        bzip2 \
-        xsltproc \
-        gperf \
-        unzip \
-        cmake \
-        ccache \
-        libsodium-dev \
-        libreadline-dev \
-        libudev-dev \
-        libprotobuf-dev \
-        protobuf-compiler
-
-WORKDIR monero
-
-ENV CFLAGS="${CFLAGS} -fPIC -pthread"
-ENV CXXFLAGS="${CXXFLAGS} -fPIC -pthread"
-
-## Boost
-ARG BOOST_VERSION=1_70_0
-ARG BOOST_VERSION_DOT=1.70.0
-ARG BOOST_HASH=430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778
-RUN set -ex \
-    && curl -s -L -o  boost_${BOOST_VERSION}.tar.bz2 https://downloads.getmonero.org/libs/boost_${BOOST_VERSION}.tar.bz2 \
-    && echo "${BOOST_HASH}  boost_${BOOST_VERSION}.tar.bz2" | sha256sum -c \
-    && tar -xjf boost_${BOOST_VERSION}.tar.bz2 \
-    && cd boost_${BOOST_VERSION} \
-    && sed -i -e 's/use(* m_instance)/if (m_instance) use(* m_instance)/' boost/serialization/singleton.hpp \
-    && ./bootstrap.sh --with-toolset=clang \
-    && ./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale threading=multi threadapi=pthread cflags="$CFLAGS" cxxflags="$CXXFLAGS" stage
-ENV BOOST_ROOT /usr/local/boost_${BOOST_VERSION}
-
-# OpenSSL
-ARG OPENSSL_VERSION=1.1.1g
-ARG OPENSSL_HASH=ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46
-RUN set -ex \
-    && curl -s -O https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
-    && echo "${OPENSSL_HASH}  openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c \
-    && tar -xzf openssl-${OPENSSL_VERSION}.tar.gz \
-    && cd openssl-${OPENSSL_VERSION} \
-    && ./Configure linux-x86_64 no-shared --static "$CFLAGS" \
-    && make build_generated \
-    && make libcrypto.a \
-    && make install
-ENV OPENSSL_ROOT_DIR=/usr/local/openssl-${OPENSSL_VERSION}
-
-# ZMQ
-ARG ZMQ_VERSION=v4.3.2
-ARG ZMQ_HASH=a84ffa12b2eb3569ced199660bac5ad128bff1f0
-RUN set -ex \
-    && git clone --depth=1 https://github.com/zeromq/libzmq.git -b ${ZMQ_VERSION} \
-    && cd libzmq \
-    && test `git rev-parse HEAD` = ${ZMQ_HASH} || exit 1 \
-    && sed -i -e 's/::~generic_mtrie_t /::~generic_mtrie_t<T> /' src/generic_mtrie_impl.hpp \
-    && ./autogen.sh \
-    && ./configure --enable-static --disable-shared --with-libsodium \
-    && make \
-    && make install \
-    && ldconfig
-
-# Libusb
-ARG USB_VERSION=v1.0.22
-ARG USB_HASH=0034b2afdcdb1614e78edaa2a9e22d5936aeae5d
-RUN set -ex \
-    && git clone --depth=1 https://github.com/libusb/libusb.git -b ${USB_VERSION} \
-    && cd libusb \
-    && test `git rev-parse HEAD` = ${USB_HASH} || exit 1 \
-    && ./autogen.sh \
-    && ./configure --disable-shared \
-    && make \
-    && make install
-
-# Hidapi
-ARG HIDAPI_VERSION=hidapi-0.8.0-rc1
-ARG HIDAPI_HASH=40cf516139b5b61e30d9403a48db23d8f915f52c
-RUN set -ex \
-    && git clone --depth=1 https://github.com/signal11/hidapi -b ${HIDAPI_VERSION} \
-    && cd hidapi \
-    && test `git rev-parse HEAD` = ${HIDAPI_HASH} || exit 1 \
-    && ./bootstrap \
-    && ./configure --enable-static --disable-shared \
-    && make \
-    && make install
-
-RUN git clone --depth 1 https://github.com/monero-project/monero.git monero
-COPY build.sh $SRC/
diff --git a/projects/monero/build.sh b/projects/monero/build.sh
deleted file mode 100755
index ff3001b..0000000
--- a/projects/monero/build.sh
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 The Monero Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-export BOOST_ROOT=/src/monero/boost_1_70_0
-export OPENSSL_ROOT_DIR=/src/monero/openssl-1.1.1g
-
-cd monero
-sed -i -e 's/include(FindCcache)/# include(FindCcache)/' CMakeLists.txt
-git submodule init
-git submodule update
-mkdir -p build
-cd build
-export CXXFLAGS="$CXXFLAGS -fPIC"
-cmake -D OSSFUZZ=ON -D STATIC=ON -D BUILD_TESTS=ON -D USE_LTO=OFF -D ARCH="default" ..
-
-TESTS="\
-  base58_fuzz_tests \
-  block_fuzz_tests \
-  transaction_fuzz_tests \
-  load-from-binary_fuzz_tests \
-  load-from-json_fuzz_tests \
-  parse-url_fuzz_tests \
-  http-client_fuzz_tests \
-  levin_fuzz_tests \
-  bulletproof_fuzz_tests \
-  tx-extra_fuzz_tests \
-"
-
-# only libfuzzer can run the slow to start ones
-if test "x$FUZZING_ENGINE" == 'xlibfuzzer'
-then
-  TESTS="$TESTS \
-    signature_fuzz_tests \
-    cold-outputs_fuzz_tests \
-    cold-transaction_fuzz_tests \
-  "
-fi
-
-make -C tests/fuzz $TESTS
-
-cd /src/monero/monero/build/tests/fuzz
-for fuzzer in *_fuzz_tests
-do
-  cp "$fuzzer" "$OUT"
-  base=$(echo $fuzzer | sed -e s/_fuzz_tests//)
-  cd "/src/monero/monero/tests/data/fuzz/$base"
-  rm -f "${OUT}/${fuzzer}_seed_corpus.zip"
-  for f in *
-  do
-    h=$(sha1sum "$f" | awk '{print $1}')
-    cp "$f" "$h"
-    zip "${OUT}/${fuzzer}_seed_corpus.zip" "$h"
-    rm -f "$h"
-  done
-  cd -
-done
diff --git a/projects/monero/project.yaml b/projects/monero/project.yaml
deleted file mode 100644
index 6329a7b..0000000
--- a/projects/monero/project.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-homepage: "https://getmonero.org/"
-language: c++
-primary_contact: "binaryfate01@gmail.com"
-auto_ccs:
-  - luigi1111w@gmail.com
-  - ric@ts.org
-  - moneromooo@protonmail.com
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-architectures:
-  - x86_64
-main_repo: 'https://github.com/monero-project/monero.git'
diff --git a/projects/mongoose/Dockerfile b/projects/mongoose/Dockerfile
deleted file mode 100644
index 15f4a4f..0000000
--- a/projects/mongoose/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update 
-RUN git clone https://github.com/cesanta/mongoose
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/mongoose/build.sh b/projects/mongoose/build.sh
deleted file mode 100755
index 20b7be9..0000000
--- a/projects/mongoose/build.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-cd $SRC/mongoose
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE -DMG_ENABLE_LINES -DMG_ENABLE_LOG=0 mongoose.c -I. test/fuzz.c -o $OUT/fuzz
diff --git a/projects/mongoose/project.yaml b/projects/mongoose/project.yaml
deleted file mode 100644
index 94fc077..0000000
--- a/projects/mongoose/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/cesanta/mongoose"
-language: c++
-primary_contact: "info@cesanta.com"
-auto_ccs:
-  - "david@adalogics.com"
-main_repo: 'https://github.com/cesanta/mongoose'
diff --git a/projects/mp4parse-rust/Dockerfile b/projects/mp4parse-rust/Dockerfile
deleted file mode 100644
index 990fbba..0000000
--- a/projects/mp4parse-rust/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool curl cmake python llvm-dev libclang-dev clang
-
-RUN git clone --depth 1 --recursive https://github.com/mozilla/mp4parse-rust mp4parse-rust
-WORKDIR mp4parse-rust
-
-COPY build.sh default.options $SRC/
diff --git a/projects/mp4parse-rust/build.sh b/projects/mp4parse-rust/build.sh
deleted file mode 100755
index 8998c93..0000000
--- a/projects/mp4parse-rust/build.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Note: This project creates Rust fuzz targets exclusively
-PROJECT_DIR=$SRC/mp4parse-rust
-cd $PROJECT_DIR/mp4parse_capi/fuzz && cargo fuzz build -O --debug-assertions
-
-# collect avif files
-mkdir $PROJECT_DIR/avif_corpus
-find $PROJECT_DIR/mp4parse -type f -name '*.avif' -exec cp '{}' $PROJECT_DIR/avif_corpus \;
-
-# collect mp4 files
-mkdir $PROJECT_DIR/mp4_corpus
-find $PROJECT_DIR/mp4parse/tests -type f -name '*.mp4' -exec cp '{}' $PROJECT_DIR/mp4_corpus \;
-find $PROJECT_DIR/mp4parse_capi/tests/ -type f -name '*.mp4' -exec cp '{}' $PROJECT_DIR/mp4_corpus \;
-
-FUZZ_TARGET_OUTPUT_DIR=$PROJECT_DIR/mp4parse_capi/fuzz/target/x86_64-unknown-linux-gnu/release
-for f in $SRC/mp4parse-rust/mp4parse_capi/fuzz/fuzz_targets/*.rs
-do
-    FUZZ_TARGET_NAME=$(basename ${f%.*})
-    cp $FUZZ_TARGET_OUTPUT_DIR/$FUZZ_TARGET_NAME $OUT/
-    cp $PROJECT_DIR/mp4parse_capi/fuzz/mp4.dict $OUT/$FUZZ_TARGET_NAME.dict
-    cp $SRC/default.options $OUT/$FUZZ_TARGET_NAME.options
-    zip -jr $OUT/${FUZZ_TARGET_NAME}_seed_corpus.zip $PROJECT_DIR/${FUZZ_TARGET_NAME}_corpus/
-done
diff --git a/projects/mp4parse-rust/default.options b/projects/mp4parse-rust/default.options
deleted file mode 100644
index 84c33f6..0000000
--- a/projects/mp4parse-rust/default.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[asan]
-max_allocation_size_mb=512
diff --git a/projects/mp4parse-rust/project.yaml b/projects/mp4parse-rust/project.yaml
deleted file mode 100644
index eee731e..0000000
--- a/projects/mp4parse-rust/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/mozilla/mp4parse-rust"
-primary_contact: "mgregan@mozilla.com"
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-language: rust
-vendor_ccs:
-- "bvandyk@mozilla.com"
-- "jbauman@mozilla.com"
-- "twsmith@mozilla.com"
-main_repo: 'https://github.com/mozilla/mp4parse-rust'
diff --git a/projects/mpg123/project.yaml b/projects/mpg123/project.yaml
index 951e45a..e6ace86 100644
--- a/projects/mpg123/project.yaml
+++ b/projects/mpg123/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.mpg123.de"
-language: c++
 primary_contact: "maintainer@mpg123.org"
 
 sanitizers:
diff --git a/projects/mruby/Dockerfile b/projects/mruby/Dockerfile
index 36aa167..6183b72 100644
--- a/projects/mruby/Dockerfile
+++ b/projects/mruby/Dockerfile
@@ -16,7 +16,7 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 RUN apt-get update && apt-get install -y build-essential ruby bison ninja-build \
-    cmake zlib1g-dev libbz2-dev liblzma-dev
+    cmake zlib1g-dev libbz2-dev
 RUN git clone --depth 1 https://github.com/mruby/mruby mruby
 RUN git clone --depth 1 https://github.com/bshastry/mruby_seeds.git mruby_seeds
 RUN git clone --depth 1 https://github.com/google/libprotobuf-mutator.git
diff --git a/projects/mruby/build.sh b/projects/mruby/build.sh
index 999f21a..e251db9 100755
--- a/projects/mruby/build.sh
+++ b/projects/mruby/build.sh
@@ -18,9 +18,9 @@
 # Instrument mruby
 (
 cd $SRC/mruby
-export LD=$CC
+export LD=clang
 export LDFLAGS="$CFLAGS"
-rake -m
+./minirake clean && ./minirake -j$(nproc) all
 
 # build fuzzers
 FUZZ_TARGET=$SRC/mruby/oss-fuzz/mruby_fuzzer.c
@@ -36,18 +36,17 @@
 if [[ $CFLAGS != *sanitize=memory* ]]; then
     PROTO_FUZZ_TARGET=$SRC/mruby/oss-fuzz/mruby_proto_fuzzer.cpp
     PROTO_CONVERTER=$SRC/mruby/oss-fuzz/proto_to_ruby.cpp
-    rm -rf $SRC/mruby/genfiles
-    mkdir $SRC/mruby/genfiles
-    $SRC/LPM/external.protobuf/bin/protoc --proto_path=$SRC/mruby/oss-fuzz ruby.proto --cpp_out=$SRC/mruby/genfiles
-    $CXX -c $CXXFLAGS $SRC/mruby/genfiles/ruby.pb.cc -o $SRC/mruby/genfiles/ruby.pb.o -I $SRC/LPM/external.protobuf/include
-    $CXX -I $SRC/mruby/include -I $SRC/LPM/external.protobuf/include $CXXFLAGS $PROTO_FUZZ_TARGET $SRC/mruby/genfiles/ruby.pb.o $PROTO_CONVERTER \
-      -I $SRC/mruby/genfiles \
-      -I $SRC/libprotobuf-mutator \
-      -I $SRC/mruby/include -lz -lm \
-      $SRC/LPM/src/libfuzzer/libprotobuf-mutator-libfuzzer.a \
-      $SRC/LPM/src/libprotobuf-mutator.a \
-      $SRC/LPM/external.protobuf/lib/libprotobuf.a \
-      $SRC/mruby/build/host/lib/libmruby.a \
+    rm -rf genfiles
+    mkdir genfiles
+    LPM/external.protobuf/bin/protoc --proto_path=mruby/oss-fuzz ruby.proto --cpp_out=genfiles
+    $CXX $CXXFLAGS $PROTO_FUZZ_TARGET genfiles/ruby.pb.cc $PROTO_CONVERTER \
+      -I genfiles -I mruby/oss-fuzz  -I libprotobuf-mutator/ -I .  \
+      -I LPM/external.protobuf/include \
+      -I mruby/include -lz -lm \
+      LPM/src/libfuzzer/libprotobuf-mutator-libfuzzer.a \
+      LPM/src/libprotobuf-mutator.a \
+      LPM/external.protobuf/lib/libprotobuf.a \
+      mruby/build/host/lib/libmruby.a \
       $LIB_FUZZING_ENGINE \
       -o $OUT/mruby_proto_fuzzer
 
diff --git a/projects/mruby/project.yaml b/projects/mruby/project.yaml
index 3500439..3a8c3d3 100644
--- a/projects/mruby/project.yaml
+++ b/projects/mruby/project.yaml
@@ -1,5 +1,4 @@
 homepage: https://www.mruby.org/
-language: c++
 primary_contact: "yukihiro@gmail.com"
 auto_ccs:
   - "bshas3@gmail.com"
@@ -7,4 +6,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/mruby/mruby'
diff --git a/projects/msgpack-c/Dockerfile b/projects/msgpack-c/Dockerfile
index 87efd76..4dea0b3 100644
--- a/projects/msgpack-c/Dockerfile
+++ b/projects/msgpack-c/Dockerfile
@@ -15,14 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y cmake wget bzip2
-RUN git clone --depth 1 --single-branch --branch cpp_master https://github.com/msgpack/msgpack-c.git msgpack-c
-
-RUN wget https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \
-    tar xf boost_1_70_0.tar.bz2 && \
-    cd boost_1_70_0 && \
-    ./bootstrap.sh --with-toolset=clang --prefix=/usr && \
-    ./b2 -j$(nproc) toolset=clang --with-chrono --with-context --with-filesystem --with-system --with-timer address-model=64 cflags="$CFLAGS" cxxflags="$CXXFLAGS"  link=static variant=release runtime-link=static threading=multi install
-
+MAINTAINER chriswwolfe@gmail.com
+RUN apt-get update && apt-get install -y cmake
+RUN git clone --depth 1 https://github.com/msgpack/msgpack-c.git msgpack-c
 WORKDIR msgpack-c
 COPY build.sh $SRC/
diff --git a/projects/msgpack-c/build.sh b/projects/msgpack-c/build.sh
index 9a065ff..21faacf 100755
--- a/projects/msgpack-c/build.sh
+++ b/projects/msgpack-c/build.sh
@@ -15,6 +15,11 @@
 #
 ################################################################################
 
+cmake -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX" \
+      -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
+      -DMSGPACK_CXX11=ON .
+make -j$(nproc) all
+
 for f in $SRC/msgpack-c/fuzz/*_fuzzer.cpp; do
     # NOTE(derwolfe): the naming scheme for fuzzers and seed corpora is
     # fuzzer = something_something_fuzzer.cpp
@@ -22,7 +27,7 @@
     fuzzer=$(basename "$f" .cpp)
     $CXX $CXXFLAGS -std=c++11 -Iinclude -I"$SRC/msgpack-c/include" \
          "$f" -o "$OUT/${fuzzer}" \
-         $LIB_FUZZING_ENGINE
+         $LIB_FUZZING_ENGINE "$SRC/msgpack-c/libmsgpackc.a"
 
     if [ -d "$SRC/msgpack-c/fuzz/${fuzzer}_seed_corpus" ]; then
         zip -rj "$OUT/${fuzzer}_seed_corpus.zip" "$SRC/msgpack-c/fuzz/${fuzzer}_seed_corpus/"
diff --git a/projects/msgpack-c/project.yaml b/projects/msgpack-c/project.yaml
index 3b36793..2e30007 100644
--- a/projects/msgpack-c/project.yaml
+++ b/projects/msgpack-c/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://msgpack.org/"
-language: c++
 primary_contact: "redboltz@gmail.com"
 auto_ccs:
   - nobu.k.jp@gmail.com
@@ -8,4 +7,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/msgpack/msgpack-c.git'
diff --git a/projects/mtail/Dockerfile b/projects/mtail/Dockerfile
index 7861cbc..42b94f5 100644
--- a/projects/mtail/Dockerfile
+++ b/projects/mtail/Dockerfile
@@ -15,6 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/google/mtail $GOPATH/src/github.com/google/mtail
-WORKDIR $GOPATH/src/github.com/google/mtail
+MAINTAINER jaq@spacepants.org
+RUN mkdir -p github.com/google
+RUN git clone --depth 1 https://github.com/google/mtail github.com/google/mtail
+WORKDIR github.com/google/mtail
 COPY build.sh $SRC/
diff --git a/projects/mtail/build.sh b/projects/mtail/build.sh
index 2c769ad..58c6cf7 100755
--- a/projects/mtail/build.sh
+++ b/projects/mtail/build.sh
@@ -15,6 +15,12 @@
 #
 ################################################################################
 
-compile_go_fuzzer github.com/google/mtail/internal/vm Fuzz vm-fuzzer
-# Make the dictionary and seed corpus.
-make --debug $OUT/vm-fuzzer.dict $OUT/vm-fuzzer_seed_corpus.zip
+# We've used git checkout, not go get to fetch the source so set up the GOPATH to find our source.
+export GOPATH=$GOPATH:/
+
+# go-fuzz-build doesn't like modules until https://github.com/dvyukov/go-fuzz/issues/195 is fixed
+# fetch and vendor all the dependencies so go-fuzz-build can find them
+make GO111MODULE=off --debug install_deps
+go mod vendor
+
+make GO111MODULE=off --debug $OUT/vm-fuzzer.dict $OUT/vm-fuzzer_seed_corpus.zip $OUT/vm-fuzzer
diff --git a/projects/mtail/project.yaml b/projects/mtail/project.yaml
index fd95d2f..af7d2d4 100644
--- a/projects/mtail/project.yaml
+++ b/projects/mtail/project.yaml
@@ -5,4 +5,3 @@
 sanitizers:
   - address
 language: go
-main_repo: 'https://github.com/google/mtail'
diff --git a/projects/muparser/Dockerfile b/projects/muparser/Dockerfile
deleted file mode 100644
index 2cf1db8..0000000
--- a/projects/muparser/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool
-RUN apt-get install -y build-essential cmake pkg-config
-RUN git clone --depth 1 https://github.com/beltoforion/muparser.git muparser
-WORKDIR muparser
-COPY build.sh set_eval_fuzzer.cc $SRC/
diff --git a/projects/muparser/build.sh b/projects/muparser/build.sh
deleted file mode 100755
index c42359d..0000000
--- a/projects/muparser/build.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-CFLAGS="${CFLAGS} -fno-sanitize=integer-divide-by-zero,float-divide-by-zero"
-CXXFLAGS="${CXXFLAGS} -fno-sanitize=integer-divide-by-zero,float-divide-by-zero"
-
-# build project
-cmake . -DBUILD_SHARED_LIBS=OFF  -DENABLE_OPENMP=OFF
-make -j$(nproc)
-
-# install
-make install
-ldconfig
-
-# build fuzzers
-MU_CXXFLAGS=$(pkg-config muparser --cflags)
-MU_LIBS=$(pkg-config muparser --libs)
-
-$CXX -std=c++11 $CXXFLAGS -I. \
-     $MU_CXXFLAGS $MU_LIBS \
-     $SRC/set_eval_fuzzer.cc -o $OUT/set_eval_fuzzer \
-     $LIB_FUZZING_ENGINE libmuparser.a
diff --git a/projects/muparser/project.yaml b/projects/muparser/project.yaml
deleted file mode 100644
index e6be1c1..0000000
--- a/projects/muparser/project.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-homepage: "https://beltoforion.de/article.php?a=muparser"
-language: c++
-primary_contact: "equinox.ib@googlemail.com"
-auto_ccs:
-    - "zhichengcai@google.com"
-sanitizers:
-    - address
-    - undefined
-main_repo: 'https://github.com/beltoforion/muparser.git'
diff --git a/projects/muparser/set_eval_fuzzer.cc b/projects/muparser/set_eval_fuzzer.cc
deleted file mode 100644
index b04b2ff..0000000
--- a/projects/muparser/set_eval_fuzzer.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stdint.h>
-#include <stdio.h>
-#include <iostream>
-#include <string>
-
-#include "muParser.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  std::string line_string((char *)data, size);
-  try {
-    mu::Parser parser;
-    parser.SetExpr(line_string);
-    parser.Eval();
-  } catch (mu::Parser::exception_type &e) {
-     // Skip logging errors to avoid log spam.
-     // std::cout << e.GetMsg() << std::endl;
-  }
-  return 0;
-}
diff --git a/projects/mupdf/Dockerfile b/projects/mupdf/Dockerfile
index 160ce0e..0b0b760 100644
--- a/projects/mupdf/Dockerfile
+++ b/projects/mupdf/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jonathan@titanous.com
 RUN apt-get update && apt-get install -y make libtool pkg-config
 RUN git clone --recursive --depth 1 git://git.ghostscript.com/mupdf.git mupdf
 RUN git clone --depth 1 https://github.com/mozilla/pdf.js pdf.js && \
diff --git a/projects/mupdf/pdf_fuzzer.cc b/projects/mupdf/pdf_fuzzer.cc
index 3e3f1fb..fd8ad7f 100644
--- a/projects/mupdf/pdf_fuzzer.cc
+++ b/projects/mupdf/pdf_fuzzer.cc
@@ -23,115 +23,96 @@
 
 #include <mupdf/fitz.h>
 
-#define ALIGNMENT ((size_t) 16)
-#define KBYTE ((size_t) 1024)
-#define MBYTE (1024 * KBYTE)
-#define GBYTE (1024 * MBYTE)
-#define MAX_ALLOCATION (1 * GBYTE)
+#define ALIGNMENT 16
+#define MAX_ALLOCATION (1024 * 1024 * 1024)
 
-static size_t used;
+static uint64_t total = 0;
 
-static void *fz_limit_reached_ossfuzz(size_t oldsize, size_t size)
+static void *
+fz_malloc_ossfuzz(void *opaque, size_t size)
 {
-  if (oldsize == 0)
-    fprintf(stderr, "limit: %zu Mbyte used: %zu Mbyte allocation: %zu: limit reached\n", MAX_ALLOCATION / MBYTE, used / MBYTE, size);
-  else
-    fprintf(stderr, "limit: %zu Mbyte used: %zu Mbyte reallocation: %zu -> %zu: limit reached\n", MAX_ALLOCATION / MBYTE, used / MBYTE, oldsize, size);
-  fflush(0);
-  return NULL;
+	char *ptr = NULL;
+
+	if (size == 0)
+		return NULL;
+	if (size > SIZE_MAX - ALIGNMENT)
+		return NULL;
+
+	if (size > MAX_ALLOCATION - ALIGNMENT - total)
+		return NULL;
+
+	ptr = (char *) malloc(size + ALIGNMENT);
+	if (ptr == NULL)
+		return NULL;
+
+	memcpy(ptr, &size, sizeof(size));
+	total += size + ALIGNMENT;
+
+	return ptr + ALIGNMENT;
 }
 
-static void *fz_malloc_ossfuzz(void *opaque, size_t size)
+static void
+fz_free_ossfuzz(void *opaque, void *ptr)
 {
-  char *ptr = NULL;
+	size_t size;
 
-  if (size == 0)
-    return NULL;
-  if (size > SIZE_MAX - ALIGNMENT)
-    return NULL;
-  if (size + ALIGNMENT > MAX_ALLOCATION - used)
-    return fz_limit_reached_ossfuzz(0, size + ALIGNMENT);
+	if (ptr == NULL)
+		return;
 
-  ptr = (char *) malloc(size + ALIGNMENT);
-  if (ptr == NULL)
-    return NULL;
+	ptr = ((char *) ptr) - ALIGNMENT;
 
-  memcpy(ptr, &size, sizeof(size));
-  used += size + ALIGNMENT;
-
-  return ptr + ALIGNMENT;
+	memcpy(&size, ptr, sizeof(size));
+	total -= size - ALIGNMENT;
+	free(ptr);
 }
 
-static void fz_free_ossfuzz(void *opaque, void *ptr)
+static void *
+fz_realloc_ossfuzz(void *opaque, void *old, size_t size)
 {
-  size_t size;
+	size_t oldsize;
+	char *ptr;
 
-  if (ptr == NULL)
-    return;
-  if (ptr < (void *) ALIGNMENT)
-    return;
+	if (old == NULL)
+		return fz_malloc_ossfuzz(opaque, size);
+	if (size == 0)
+	{
+		fz_free_ossfuzz(opaque, old);
+		return NULL;
+	}
+	if (size > SIZE_MAX - ALIGNMENT)
+		return NULL;
 
-  ptr = (char *) ptr - ALIGNMENT;
-  memcpy(&size, ptr, sizeof(size));
+	old = ((char *) old) - ALIGNMENT;
+	memcpy(&oldsize, old, sizeof(oldsize));
 
-  used -= size + ALIGNMENT;
-  free(ptr);
-}
+	if (size > MAX_ALLOCATION - total + oldsize)
+		return NULL;
 
-static void *fz_realloc_ossfuzz(void *opaque, void *old, size_t size)
-{
-  size_t oldsize;
-  char *ptr;
+	ptr = (char *) realloc(old, size + ALIGNMENT);
+	if (ptr == NULL)
+		return NULL;
 
-  if (old == NULL)
-    return fz_malloc_ossfuzz(opaque, size);
-  if (old < (void *) ALIGNMENT)
-    return NULL;
+	total -= oldsize + ALIGNMENT;
+	memcpy(ptr, &size, sizeof(size));
+	total += size + ALIGNMENT;
 
-  if (size == 0) {
-    fz_free_ossfuzz(opaque, old);
-    return NULL;
-  }
-  if (size > SIZE_MAX - ALIGNMENT)
-    return NULL;
-
-  old = (char *) old - ALIGNMENT;
-  memcpy(&oldsize, old, sizeof(oldsize));
-
-  if (size + ALIGNMENT > MAX_ALLOCATION - used + oldsize + ALIGNMENT)
-    return fz_limit_reached_ossfuzz(oldsize + ALIGNMENT, size + ALIGNMENT);
-
-  ptr = (char *) realloc(old, size + ALIGNMENT);
-  if (ptr == NULL)
-    return NULL;
-
-  used -= oldsize + ALIGNMENT;
-  memcpy(ptr, &size, sizeof(size));
-  used += size + ALIGNMENT;
-
-  return ptr + ALIGNMENT;
+	return ptr + ALIGNMENT;
 }
 
 static fz_alloc_context fz_alloc_ossfuzz =
 {
-  NULL,
-  fz_malloc_ossfuzz,
-  fz_realloc_ossfuzz,
-  fz_free_ossfuzz
+	NULL,
+	fz_malloc_ossfuzz,
+	fz_realloc_ossfuzz,
+	fz_free_ossfuzz
 };
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  fz_context *ctx;
-  fz_stream *stream;
-  fz_document *doc;
-  fz_pixmap *pix;
+  fz_context *ctx = fz_new_context(&fz_alloc_ossfuzz, nullptr, FZ_STORE_DEFAULT);
 
-  used = 0;
-
-  ctx = fz_new_context(&fz_alloc_ossfuzz, nullptr, FZ_STORE_DEFAULT);
-  stream = NULL;
-  doc = NULL;
-  pix = NULL;
+  fz_stream *stream = NULL;
+  fz_document *doc = NULL;
+  fz_pixmap *pix = NULL;
 
   fz_var(stream);
   fz_var(doc);
diff --git a/projects/mupdf/project.yaml b/projects/mupdf/project.yaml
index 49b7105..a68aec1 100644
--- a/projects/mupdf/project.yaml
+++ b/projects/mupdf/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.mupdf.com"
-language: c++
 primary_contact: tor.andersson@artifex.com
 fuzzing_engines:
   - libfuzzer
@@ -13,4 +12,3 @@
 auto_ccs:
   - jonathan@titanous.com
   - sebastian.rasmussen@artifex.com
-  - julians.artifex@gmail.com
diff --git a/projects/myanmar-tools/Dockerfile b/projects/myanmar-tools/Dockerfile
index 62ed215..90f94c6 100644
--- a/projects/myanmar-tools/Dockerfile
+++ b/projects/myanmar-tools/Dockerfile
@@ -13,11 +13,12 @@
 # limitations under the License.
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER sffc@google.com
 
 RUN apt-get update && apt-get -y install \
     build-essential \
     cmake \
     libunwind-dev
 RUN git clone https://github.com/google/myanmar-tools.git
-WORKDIR $SRC/myanmar-tools
+WORKDIR $SRC/myanmar-tools/clients/cpp/
 COPY build.sh $SRC/
diff --git a/projects/myanmar-tools/project.yaml b/projects/myanmar-tools/project.yaml
index d2c7f32..293ce9c 100644
--- a/projects/myanmar-tools/project.yaml
+++ b/projects/myanmar-tools/project.yaml
@@ -1,5 +1,18 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 homepage: "https://github.com/googlei18n/myanmar-tools/"
-language: c++
 primary_contact: "sffc@google.com"
 auto_ccs:
   - "ccornelius@google.com"
@@ -7,4 +20,3 @@
   - address
   - memory
 coverage_extra_args: -ignore-filename-regex=.*/\.hunter/.*
-main_repo: 'https://github.com/google/myanmar-tools.git'
diff --git a/projects/mysql-server/Dockerfile b/projects/mysql-server/Dockerfile
index fddad91..d2ee3fb 100644
--- a/projects/mysql-server/Dockerfile
+++ b/projects/mysql-server/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER secalert_us@oracle.com
 RUN apt-get update
 RUN apt-get install -y build-essential libssl-dev libncurses5-dev libncursesw5-dev make cmake perl bison pkg-config
 RUN git clone --depth 1 https://github.com/mysql/mysql-server
diff --git a/projects/mysql-server/build.sh b/projects/mysql-server/build.sh
index 6ea7b27..9f9afe6 100644
--- a/projects/mysql-server/build.sh
+++ b/projects/mysql-server/build.sh
@@ -26,7 +26,7 @@
     cmake .. -Dprotobuf_BUILD_SHARED_LIBS=OFF -DDOWNLOAD_BOOST=1 -DWITH_BOOST=. -DWITH_SSL=system -DFUZZING=1 -DCMAKE_INSTALL_PREFIX=$OUT/mysql
 fi
 make install
-mv $OUT/mysql/bin/fuzz* $OUT/
+cp $OUT/mysql/bin/fuzz* $OUT/
 cp ../fuzz/fuzz*.options $OUT/
 cp ../fuzz/fuzz*.dict $OUT/
 cp ../fuzz/init*.sql $OUT/
diff --git a/projects/mysql-server/fix.diff b/projects/mysql-server/fix.diff
index cec23c2..7e3e171 100644
--- a/projects/mysql-server/fix.diff
+++ b/projects/mysql-server/fix.diff
@@ -1,16 +1,16 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3667900243c..337344e124d 100644
+index ce1d1bb05b5..d1d0b04f202 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -597,6 +597,7 @@ IF(WITH_JEMALLOC AND (WITH_TCMALLOC OR WITH_TCMALLOC_DEBUG))
-   MESSAGE(FATAL_ERROR "Specify only *one* of WITH_TCMALLOC and WITH_JEMALLOC")
+@@ -528,6 +528,7 @@ IF(WITH_JEMALLOC)
+   STRING_APPEND(CMAKE_CXX_FLAGS " -fno-builtin-realloc -fno-builtin-free")
  ENDIF()
  
 +OPTION(FUZZING "Fuzzing" OFF)
  OPTION(ENABLED_PROFILING "Enable profiling" ON)
  OPTION(WITHOUT_SERVER OFF)
- 
-@@ -1587,6 +1588,10 @@ IF(NOT WITHOUT_SERVER AND WITH_UNIT_TESTS)
+ IF(UNIX)
+@@ -1348,6 +1349,10 @@ IF(NOT WITHOUT_SERVER AND WITH_UNIT_TESTS)
    TARGET_LINK_LIBRARIES(server_unittest_library ${ICU_LIBRARIES})
  ENDIF()
  
@@ -22,10 +22,10 @@
  # It is referenced by some of the directories below, so we insert it here.
  ADD_SUBDIRECTORY(scripts)
 diff --git a/include/mysql.h b/include/mysql.h
-index b805bffdf88..23d2311299e 100644
+index 1f499e9d9e5..a85c181ae78 100644
 --- a/include/mysql.h
 +++ b/include/mysql.h
-@@ -262,7 +262,8 @@ enum mysql_protocol_type {
+@@ -261,7 +261,8 @@ enum mysql_protocol_type {
    MYSQL_PROTOCOL_TCP,
    MYSQL_PROTOCOL_SOCKET,
    MYSQL_PROTOCOL_PIPE,
@@ -35,22 +35,8 @@
  };
  
  enum mysql_ssl_mode {
-diff --git a/include/mysql.h.pp b/include/mysql.h.pp
-index ce785802ad9..4f048082335 100644
---- a/include/mysql.h.pp
-+++ b/include/mysql.h.pp
-@@ -485,7 +485,8 @@ enum mysql_protocol_type {
-   MYSQL_PROTOCOL_TCP,
-   MYSQL_PROTOCOL_SOCKET,
-   MYSQL_PROTOCOL_PIPE,
--  MYSQL_PROTOCOL_MEMORY
-+  MYSQL_PROTOCOL_MEMORY,
-+  MYSQL_PROTOCOL_FUZZ
- };
- enum mysql_ssl_mode {
-   SSL_MODE_DISABLED = 1,
 diff --git a/include/violite.h b/include/violite.h
-index c04e82505a7..2498ba0053c 100644
+index 76f2ed2017a..56900e11349 100644
 --- a/include/violite.h
 +++ b/include/violite.h
 @@ -108,12 +108,14 @@ enum enum_vio_type : int {
@@ -69,9 +55,9 @@
  };
  
  /**
-@@ -444,4 +446,20 @@ struct Vio {
- 
- #define SSL_handle SSL *
+@@ -450,4 +452,20 @@ struct Vio {
+ #define SSL_handle void *
+ #endif
  
 +
 +//Vio fuzzing
@@ -91,40 +77,23 @@
 +
  #endif /* vio_violite_h_ */
 diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt
-index 4956a0dc2d8..bab0aa3b504 100644
+index 0979a2b7b8c..0c896297a9f 100644
 --- a/libmysql/CMakeLists.txt
 +++ b/libmysql/CMakeLists.txt
-@@ -353,11 +353,11 @@ IF(UNIX)
- 
+@@ -324,7 +324,7 @@ IF(UNIX)
    ADD_INSTALL_RPATH_FOR_OPENSSL(libmysql)
  
--  IF(LINK_FLAG_Z_DEFS)
-+  IF(LINK_FLAG_Z_DEFS AND NOT FUZZING)
-     MY_TARGET_LINK_OPTIONS(libmysql "LINKER:${LINK_FLAG_Z_DEFS}")
-   ENDIF()
- 
--  IF(LINUX)
-+  IF(LINUX AND NOT FUZZING)
-     MY_TARGET_LINK_OPTIONS(libmysql
-       "LINKER:--version-script=${CMAKE_CURRENT_BINARY_DIR}/libmysql.ver")
-   ENDIF() 
-diff --git a/mysys/mf_tempfile.cc b/mysys/mf_tempfile.cc
-index f4f5dffba9a..26ab2ce0917 100644
---- a/mysys/mf_tempfile.cc
-+++ b/mysys/mf_tempfile.cc
-@@ -320,6 +320,7 @@ File create_temp_file(char *to, const char *dir, const char *prefix,
-       set_my_errno(ENAMETOOLONG);
-       return file;
-     }
-+    sprintf(prefix_buff, "%sXXXXXX", prefix ? prefix : "tmp.");
-     my_stpcpy(convert_dirname(to, dir, NullS), prefix_buff);
-     file = mkstemp(to);
-     file_info::RegisterFilename(file, to, file_info::OpenType::FILE_BY_MKSTEMP);
+   GET_TARGET_PROPERTY(libmysql_link_flags libmysql LINK_FLAGS)
+-  IF(LINK_FLAG_NO_UNDEFINED)
++  IF(LINK_FLAG_NO_UNDEFINED AND NOT FUZZING)
+     STRING_APPEND(libmysql_link_flags
+       " ${LINK_FLAG_NO_UNDEFINED}")
+     STRING_APPEND(libmysql_link_flags
 diff --git a/mysys/my_rnd.cc b/mysys/my_rnd.cc
-index 8253e3967d4..034c71de600 100644
+index fa96e35eb02..e03ee47c220 100644
 --- a/mysys/my_rnd.cc
 +++ b/mysys/my_rnd.cc
-@@ -48,6 +48,9 @@
+@@ -51,6 +51,9 @@
  */
  
  double my_rnd(struct rand_struct *rand_st) {
@@ -134,7 +103,7 @@
    rand_st->seed1 = (rand_st->seed1 * 3 + rand_st->seed2) % rand_st->max_value;
    rand_st->seed2 = (rand_st->seed1 + rand_st->seed2 + 33) % rand_st->max_value;
    return (((double)rand_st->seed1) / rand_st->max_value_dbl);
-@@ -64,6 +67,12 @@ Fill a buffer with random bytes using the SSL library routines
+@@ -67,6 +70,12 @@ Fill a buffer with random bytes using the SSL library routines
  */
  int my_rand_buffer(unsigned char *buffer, size_t buffer_size) {
    int rc;
@@ -147,7 +116,7 @@
    rc = RAND_bytes(buffer, (int)buffer_size);
  
    if (!rc) {
-@@ -85,6 +94,9 @@ int my_rand_buffer(unsigned char *buffer, size_t buffer_size) {
+@@ -88,6 +97,9 @@ int my_rand_buffer(unsigned char *buffer, size_t buffer_size) {
  double my_rnd_ssl(bool *failed) {
    unsigned int res;
  
@@ -158,10 +127,10 @@
      *failed = true;
      return 0;
 diff --git a/sql-common/client.cc b/sql-common/client.cc
-index 61404be555b..721802cb60c 100644
+index fd36e9950cf..c8cae8c3cbf 100644
 --- a/sql-common/client.cc
 +++ b/sql-common/client.cc
-@@ -5774,6 +5774,12 @@ static mysql_state_machine_status csm_begin_connect(mysql_async_connect *ctx) {
+@@ -5852,6 +5852,12 @@ static mysql_state_machine_status csm_begin_connect(mysql_async_connect *ctx) {
      }
    }
  #endif /* _WIN32 */
@@ -175,10 +144,10 @@
    if (!net->vio &&
        (!mysql->options.protocol ||
 diff --git a/sql/mysqld.cc b/sql/mysqld.cc
-index 519926135ed..db75dc7f5e5 100644
+index c30315d4702..4413d95915d 100644
 --- a/sql/mysqld.cc
 +++ b/sql/mysqld.cc
-@@ -6862,7 +6862,9 @@ int mysqld_main(int argc, char **argv)
+@@ -6395,7 +6395,9 @@ int mysqld_main(int argc, char **argv)
      unireg_abort(MYSQLD_ABORT_EXIT);  // Will do exit
    }
  
@@ -188,7 +157,7 @@
  
    size_t guardize = 0;
  #ifndef _WIN32
-@@ -7347,8 +7349,10 @@ int mysqld_main(int argc, char **argv)
+@@ -6879,8 +6881,10 @@ int mysqld_main(int argc, char **argv)
      unireg_abort(MYSQLD_ABORT_EXIT);
  
  #ifndef _WIN32
@@ -199,7 +168,7 @@
  #endif
  
    /* set all persistent options */
-@@ -7393,8 +7397,9 @@ int mysqld_main(int argc, char **argv)
+@@ -7022,8 +7026,9 @@ int mysqld_main(int argc, char **argv)
    }
  
    start_handle_manager();
@@ -210,18 +179,18 @@
  
    LogEvent()
        .type(LOG_TYPE_ERROR)
-@@ -7441,6 +7446,10 @@ int mysqld_main(int argc, char **argv)
+@@ -7070,6 +7075,10 @@ int mysqld_main(int argc, char **argv)
  
-   (void)RUN_HOOK(server_state, before_handle_connection, (nullptr));
+   (void)RUN_HOOK(server_state, before_handle_connection, (NULL));
  
 +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
 +  return 0;
 +#endif
 +
  #if defined(_WIN32)
-   if (mysqld_socket_acceptor != nullptr)
-     mysqld_socket_acceptor->check_and_spawn_admin_connection_handler_thread();
-@@ -10281,6 +10290,9 @@ static int get_options(int *argc_ptr, char ***argv_ptr) {
+   setup_conn_event_handler_threads();
+ #else
+@@ -9895,6 +9904,9 @@ static int get_options(int *argc_ptr, char ***argv_ptr) {
  
    if (opt_short_log_format) opt_specialflag |= SPECIAL_SHORT_LOG_FORMAT;
  
@@ -232,10 +201,10 @@
      LogErr(ERROR_LEVEL, ER_CONNECTION_HANDLING_OOM);
      return 1;
 diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc
-index fba0684f322..8352dacbc03 100644
+index 983603eb58c..d577c6fcc05 100644
 --- a/storage/innobase/buf/buf0buf.cc
 +++ b/storage/innobase/buf/buf0buf.cc
-@@ -1487,18 +1487,14 @@ dberr_t buf_pool_init(ulint total_size, ulint n_instances) {
+@@ -1484,18 +1484,14 @@ dberr_t buf_pool_init(ulint total_size, ulint n_instances) {
        n = n_instances;
      }
  
@@ -269,37 +238,38 @@
  
  IF(WIN32)
 diff --git a/vio/vio.cc b/vio/vio.cc
-index 38e3d90f20e..abbc9a52478 100644
+index f2007bbc928..3b2ca196ec5 100644
 --- a/vio/vio.cc
 +++ b/vio/vio.cc
-@@ -284,6 +284,26 @@ static bool vio_init(Vio *vio, enum enum_vio_type type, my_socket sd,
-       vio->is_blocking_flag = true;
-       break;
- 
-+    case VIO_TYPE_FUZZ:
-+      vio->viodelete = vio_delete;
-+      vio->vioerrno = vio_errno;
-+      vio->read = vio_read_buff_fuzz;
-+      vio->write = vio_write_buff_fuzz;
-+      vio->fastsend = vio_fastsend_fuzz;
-+      vio->viokeepalive = vio_keepalive_fuzz;
-+      vio->should_retry = vio_should_retry_fuzz;
-+      vio->was_timeout = vio_was_timeout_fuzz;
-+      vio->vioshutdown = vio_shutdown_fuzz;
-+      vio->peer_addr = vio_peer_addr;
-+      vio->timeout = vio_socket_timeout_fuzz;
-+      vio->io_wait = vio_io_wait_fuzz;
-+      vio->is_connected = vio_is_connected_fuzz;
-+      vio->has_data = vio->read_buffer ? vio_buff_has_data : has_no_data;
-+      vio->is_blocking = vio_is_blocking;
-+      vio->set_blocking = vio_set_blocking;
-+      vio->set_blocking_flag = vio_set_blocking_flag;
-+      vio->is_blocking_flag = false;
-+
-     default:
-       vio->viodelete = vio_delete;
-       vio->vioerrno = vio_errno;
-@@ -568,7 +588,8 @@ static const vio_string vio_type_names[] = {{"", 0},
+@@ -301,6 +301,27 @@ static bool vio_init(Vio *vio, enum enum_vio_type type, my_socket sd,
+     return false;
+   }
+ #endif /* HAVE_OPENSSL */
++  if (type == VIO_TYPE_FUZZ) {
++    vio->viodelete = vio_delete;
++    vio->vioerrno = vio_errno;
++    vio->read = vio_read_buff_fuzz;
++    vio->write = vio_write_buff_fuzz;
++    vio->fastsend = vio_fastsend_fuzz;
++    vio->viokeepalive = vio_keepalive_fuzz;
++    vio->should_retry = vio_should_retry_fuzz;
++    vio->was_timeout = vio_was_timeout_fuzz;
++    vio->vioshutdown = vio_shutdown_fuzz;
++    vio->peer_addr = vio_peer_addr;
++    vio->timeout = vio_socket_timeout_fuzz;
++    vio->io_wait = vio_io_wait_fuzz;
++    vio->is_connected = vio_is_connected_fuzz;
++    vio->has_data = vio->read_buffer ? vio_buff_has_data : has_no_data;
++    vio->is_blocking = vio_is_blocking;
++    vio->set_blocking = vio_set_blocking;
++    vio->set_blocking_flag = vio_set_blocking_flag;
++    vio->is_blocking_flag = false;
++    return false;
++  }
+   vio->viodelete = vio_delete;
+   vio->vioerrno = vio_errno;
+   vio->read = vio->read_buffer ? vio_read_buff : vio_read;
+@@ -576,7 +597,8 @@ static const vio_string vio_type_names[] = {{"", 0},
                                              {STRING_WITH_LEN("SSL/TLS")},
                                              {STRING_WITH_LEN("Shared Memory")},
                                              {STRING_WITH_LEN("Internal")},
diff --git a/projects/mysql-server/project.yaml b/projects/mysql-server/project.yaml
index 68f04d2..7c38e2d 100644
--- a/projects/mysql-server/project.yaml
+++ b/projects/mysql-server/project.yaml
@@ -1,16 +1,14 @@
 homepage: "https://www.mysql.com"
-language: c++
 primary_contact: "secalert_us@oracle.com"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
-  - "christopher.alves@telecomnancy.net"
-  - "zouhair.janati-idrissi@telecomnancy.net"
-  - "julien.zhan@telecomnancy.net"
+auto_ccs :
+- "p.antoine@catenacyber.fr"
+- "christopher.alves@telecomnancy.net"
+- "zouhair.janati-idrissi@telecomnancy.net"
+- "julien.zhan@telecomnancy.net"
 
 fuzzing_engines:
-  - libfuzzer
-  - honggfuzz
+- libfuzzer
 sanitizers:
-  - address
-  - undefined
-main_repo: 'https://github.com/mysql/mysql-server'
+- address
+  # - memory
+- undefined
diff --git a/projects/mysql-server/targets/CMakeLists.txt b/projects/mysql-server/targets/CMakeLists.txt
index 4cf3671..507ba36 100644
--- a/projects/mysql-server/targets/CMakeLists.txt
+++ b/projects/mysql-server/targets/CMakeLists.txt
@@ -6,10 +6,14 @@
   TARGET_LINK_LIBRARIES(fuzz_stmt_fetch mysqlclient)
 
   MYSQL_ADD_EXECUTABLE(fuzz_mysqld fuzz_mysqld.cc util_fuzz.cc onefile.cc)
-  TARGET_LINK_LIBRARIES(fuzz_mysqld sql_main sql_gis binlog rpl master slave sql_dd mysys minchassis binlogevents_static ${ICU_LIBRARIES})
+  TARGET_LINK_LIBRARIES(fuzz_mysqld sql_main sql_gis binlog rpl master slave sql_dd sql_gis mysys binlogevents_static ${ICU_LIBRARIES})
+
+  MYSQL_ADD_EXECUTABLE(fuzz_docommand fuzz_docommand.cc util_fuzz.cc onefile.cc)
+  TARGET_LINK_LIBRARIES(fuzz_docommand sql_main sql_gis binlog rpl master slave sql_dd sql_gis mysys binlogevents_static ${ICU_LIBRARIES})
+
 
   MYSQL_ADD_EXECUTABLE(fuzz_initfile fuzz_initfile.cc util_fuzz.cc onefile.cc)
-  TARGET_LINK_LIBRARIES(fuzz_initfile sql_main sql_gis binlog rpl master slave sql_dd mysys minchassis binlogevents_static ${ICU_LIBRARIES})
+  TARGET_LINK_LIBRARIES(fuzz_initfile sql_main sql_gis binlog rpl master slave sql_dd sql_gis mysys binlogevents_static ${ICU_LIBRARIES})
 else()
   MYSQL_ADD_EXECUTABLE(fuzz_real_query fuzz_real_query.cc)
   TARGET_LINK_LIBRARIES(fuzz_real_query mysqlclient)
@@ -20,10 +24,14 @@
   TARGET_LINK_LIBRARIES(fuzz_stmt_fetch $ENV{LIB_FUZZING_ENGINE})
 
   MYSQL_ADD_EXECUTABLE(fuzz_mysqld fuzz_mysqld.cc util_fuzz.cc)
-  TARGET_LINK_LIBRARIES(fuzz_mysqld sql_main sql_gis binlog rpl master slave sql_dd mysys minchassis binlogevents_static ${ICU_LIBRARIES})
+  TARGET_LINK_LIBRARIES(fuzz_mysqld sql_main sql_gis binlog rpl master slave sql_dd sql_gis mysys binlogevents_static ${ICU_LIBRARIES})
   TARGET_LINK_LIBRARIES(fuzz_mysqld $ENV{LIB_FUZZING_ENGINE})
 
+  MYSQL_ADD_EXECUTABLE(fuzz_docommand fuzz_docommand.cc util_fuzz.cc)
+  TARGET_LINK_LIBRARIES(fuzz_docommand sql_main sql_gis binlog rpl master slave sql_dd sql_gis mysys binlogevents_static ${ICU_LIBRARIES})
+  TARGET_LINK_LIBRARIES(fuzz_docommand $ENV{LIB_FUZZING_ENGINE})
+
   MYSQL_ADD_EXECUTABLE(fuzz_initfile fuzz_initfile.cc util_fuzz.cc)
-  TARGET_LINK_LIBRARIES(fuzz_initfile sql_main sql_gis binlog rpl master slave sql_dd mysys minchassis binlogevents_static ${ICU_LIBRARIES})
+  TARGET_LINK_LIBRARIES(fuzz_initfile sql_main sql_gis binlog rpl master slave sql_dd sql_gis mysys binlogevents_static ${ICU_LIBRARIES})
   TARGET_LINK_LIBRARIES(fuzz_initfile $ENV{LIB_FUZZING_ENGINE})
 endif()
diff --git a/projects/mysql-server/targets/fuzz_docommand.cc b/projects/mysql-server/targets/fuzz_docommand.cc
index f77ec4f..238618b 100644
--- a/projects/mysql-server/targets/fuzz_docommand.cc
+++ b/projects/mysql-server/targets/fuzz_docommand.cc
@@ -1,18 +1,3 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
 //#include <stdint.h>
 //#include <stdlib.h>
 //#include <stdio.h>
@@ -55,7 +40,6 @@
 }
 
 
-// FIXME: Fix this buffer with succesful authenticated connection for mysql 8.21.
 const uint8_t startConn[] =
 "\xa6\x00\x00\x01\x85\xa6\xff\x01\x00\x00\x00\x01\x2d\x00\x00\x00" \
 "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \
diff --git a/projects/nanopb/Dockerfile b/projects/nanopb/Dockerfile
index 25637f7..5ddb2ff 100644
--- a/projects/nanopb/Dockerfile
+++ b/projects/nanopb/Dockerfile
@@ -15,10 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y python3-pip git wget
-RUN python3 -m pip install --upgrade pip
-RUN pip3 install protobuf grpcio-tools scons
-RUN update-alternatives --install /usr/bin/python python $(which python3) 100
+MAINTAINER jpa@npb.mail.kapsi.fi
+RUN apt-get update && apt-get install -y python-pip git scons
+RUN pip install protobuf grpcio-tools
 RUN git clone --depth 1 https://github.com/nanopb/nanopb $SRC/nanopb
 COPY build.sh $SRC/
 
diff --git a/projects/nanopb/build.sh b/projects/nanopb/build.sh
index 4a45cf0..f9fc81c 100755
--- a/projects/nanopb/build.sh
+++ b/projects/nanopb/build.sh
@@ -15,6 +15,32 @@
 #
 ################################################################################
 
-# Build script is integrated to nanopb repository.
-source $SRC/nanopb/tests/fuzztest/ossfuzz.sh
+cd $SRC/nanopb/tests
+
+# Build seed corpus.
+# Generating it here ensures it will contain all of the fields in the AllTypes
+# test case. The generators are built without fuzzing instrumentation.
+rm -rf build
+scons build/alltypes/encode_alltypes build/fuzztest/generate_message
+mkdir fuzztest_seed_corpus
+build/alltypes/encode_alltypes 0 > fuzztest_seed_corpus/alltypes0
+build/alltypes/encode_alltypes 1 > fuzztest_seed_corpus/alltypes1
+build/alltypes/encode_alltypes 2 > fuzztest_seed_corpus/alltypes2
+build/fuzztest/generate_message $(date +%s) > fuzztest_seed_corpus/rndmsg 2>/dev/null
+for f in fuzztest_seed_corpus/*; do
+    mv $f fuzztest_seed_corpus/$(sha1sum $f | cut -f 1 -d ' ')
+done
+zip -r "$OUT/fuzztest_seed_corpus.zip" fuzztest_seed_corpus
+
+# Build the fuzz testing stub with instrumentation
+rm -rf build
+scons CC="$CC" CXX="$CXX" LINK="$CXX" \
+      CCFLAGS="-Wall -Wextra -g -DLLVMFUZZER $CFLAGS" \
+      CXXFLAGS="-Wall -Wextra -g -DLLVMFUZZER $CXXFLAGS" \
+      NODEFARGS="1" \
+      LINKFLAGS="-std=c++11 $CXXFLAGS" \
+      LINKLIBS="$LIB_FUZZING_ENGINE" build/fuzztest/fuzztest
+
+cp build/fuzztest/fuzztest "$OUT/fuzztest"
+
 
diff --git a/projects/nanopb/project.yaml b/projects/nanopb/project.yaml
index 95366ed..53aab2e 100644
--- a/projects/nanopb/project.yaml
+++ b/projects/nanopb/project.yaml
@@ -1,14 +1,7 @@
 homepage: "https://jpa.kapsi.fi/nanopb/"
-language: c++
 primary_contact: "jpa@npb.mail.kapsi.fi"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
-  - undefined
   - memory
-  - dataflow
-main_repo: 'https://github.com/nanopb/nanopb'
+  - undefined
+
diff --git a/projects/nats/Dockerfile b/projects/nats/Dockerfile
deleted file mode 100644
index a9dbcf4..0000000
--- a/projects/nats/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/nats-io/nats-server
-COPY build.sh $SRC/
-WORKDIR $SRC/nats-server
diff --git a/projects/nats/build.sh b/projects/nats/build.sh
deleted file mode 100755
index 2235a6e..0000000
--- a/projects/nats/build.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-
-compile_go_fuzzer ./conf Fuzz fuzz_conf
-compile_go_fuzzer ./server FuzzClient fuzz_client
-
diff --git a/projects/nats/project.yaml b/projects/nats/project.yaml
deleted file mode 100644
index 529e144..0000000
--- a/projects/nats/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/nats-io/nats-server"
-primary_contact: "security@nats.io"
-auto_ccs :
-  - "adam@adalogics.com"
-  - "mh@synadia.com"
-  - "wally@synadia.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/nats-io/nats-server'
diff --git a/projects/ndpi/Dockerfile b/projects/ndpi/Dockerfile
index fafb081..7004308 100644
--- a/projects/ndpi/Dockerfile
+++ b/projects/ndpi/Dockerfile
@@ -15,8 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake autogen pkg-config libtool flex bison cmake
-RUN git clone --depth 1 https://github.com/json-c/json-c.git json-c
+MAINTAINER deri@ntop.org
+RUN apt-get update && apt-get install -y make autoconf automake autogen pkg-config libtool flex bison
 RUN git clone --depth 1 https://github.com/ntop/nDPI.git ndpi
 ADD https://www.tcpdump.org/release/libpcap-1.9.1.tar.gz libpcap-1.9.1.tar.gz
 COPY build.sh $SRC/
diff --git a/projects/ndpi/build.sh b/projects/ndpi/build.sh
index cf844d1..53ef132 100755
--- a/projects/ndpi/build.sh
+++ b/projects/ndpi/build.sh
@@ -23,16 +23,9 @@
 make install
 cd ..
 
-cd json-c
-mkdir build
-cd build
-cmake -DBUILD_SHARED_LIBS=OFF ..
-make install
-cd ../..
-
 # build project
 cd ndpi
 sh autogen.sh
 ./configure --enable-fuzztargets
 make
-ls fuzz/fuzz* | grep -v "\." | grep -v "with_main" | while read i; do cp $i $OUT/; done
+ls fuzz/fuzz* | grep -v "\." | while read i; do cp $i $OUT/; done
diff --git a/projects/ndpi/project.yaml b/projects/ndpi/project.yaml
index 3f917fa..21c6d4f 100644
--- a/projects/ndpi/project.yaml
+++ b/projects/ndpi/project.yaml
@@ -1,14 +1,4 @@
 homepage: "https://www.ntop.org/products/deep-packet-inspection/ndpi/"
-language: c++
 primary_contact: "luca.deri@gmail.com"
 auto_ccs :
   - "p.antoine@catenacyber.fr"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-sanitizers:
-  - address
-  - undefined
-  - memory
-main_repo: 'https://github.com/ntop/nDPI.git'
diff --git a/projects/neomutt/Dockerfile b/projects/neomutt/Dockerfile
index 920e71d..ed2800b 100644
--- a/projects/neomutt/Dockerfile
+++ b/projects/neomutt/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER joseph.bisch@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool xsltproc libncursesw5-dev libtinfo5 libxml2-dev libxml2-utils libidn11-dev
 RUN git clone https://github.com/neomutt/neomutt neomutt
 WORKDIR neomutt
diff --git a/projects/neomutt/project.yaml b/projects/neomutt/project.yaml
index 7924a79..b4dc390 100644
--- a/projects/neomutt/project.yaml
+++ b/projects/neomutt/project.yaml
@@ -1,7 +1,5 @@
 homepage: "https://neomutt.org"
-language: c++
 primary_contact: "joseph.bisch@gmail.com"
 auto_ccs:
   - "richard.russon@gmail.com"
   - "pietro.cerutti@gmail.com"
-main_repo: 'https://github.com/neomutt/neomutt'
diff --git a/projects/nestegg/Dockerfile b/projects/nestegg/Dockerfile
index 5afe078..633edb6 100644
--- a/projects/nestegg/Dockerfile
+++ b/projects/nestegg/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kinetik@flim.org
 RUN apt-get update && apt-get install -y subversion wget
 RUN git clone https://github.com/kinetiknz/nestegg.git
 
diff --git a/projects/nestegg/project.yaml b/projects/nestegg/project.yaml
index 93165f3..0b58467 100644
--- a/projects/nestegg/project.yaml
+++ b/projects/nestegg/project.yaml
@@ -1,16 +1,9 @@
 homepage: "https://github.com/kinetiknz/nestegg"
-language: c++
 primary_contact: "mgregan@mozilla.com"
-fuzzing_engines:
-  - afl
-  - libfuzzer
-  - honggfuzz
-  - dataflow
 sanitizers:
-  - address
-  - memory
-  - undefined
-  - dataflow
+- address
+- memory
+- undefined
 vendor_ccs:
-  - "twsmith@mozilla.com"
-main_repo: 'https://github.com/kinetiknz/nestegg.git'
+- "twsmith@mozilla.com"
+- "cdiehl@mozilla.com"
diff --git a/projects/net-snmp/Dockerfile b/projects/net-snmp/Dockerfile
index c9e6a79..a5114b4 100644
--- a/projects/net-snmp/Dockerfile
+++ b/projects/net-snmp/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER fenner@gmail.com
 RUN apt-get update && apt-get install -y make autoconf libtool libssl-dev
 RUN git clone --depth 1 git://git.code.sf.net/p/net-snmp/code net-snmp
 WORKDIR net-snmp
diff --git a/projects/net-snmp/project.yaml b/projects/net-snmp/project.yaml
index 3392038..53055d7 100644
--- a/projects/net-snmp/project.yaml
+++ b/projects/net-snmp/project.yaml
@@ -1,9 +1,7 @@
 homepage: "http://www.net-snmp.org/"
-language: c++
 primary_contact: "hardaker@users.sourceforge.net"
 auto_ccs:
    - "rstory@freesnmp.com"
    - "fenner@gmail.com"
    - "bvanassche@acm.org"
    - "magfr@lysator.liu.se"
-main_repo: 'git://git.code.sf.net/p/net-snmp/code'
diff --git a/projects/nettle/Dockerfile b/projects/nettle/Dockerfile
deleted file mode 100644
index 5367c20..0000000
--- a/projects/nettle/Dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get install -y software-properties-common python-software-properties make autoconf build-essential wget lzip libtool
-RUN git clone --depth 1 https://git.lysator.liu.se/nettle/nettle
-RUN git clone --depth 1 https://github.com/randombit/botan.git
-RUN git clone --depth 1 https://github.com/guidovranken/cryptofuzz
-RUN git clone --depth 1 https://github.com/guidovranken/cryptofuzz-corpora
-RUN wget https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2
-RUN wget https://gmplib.org/download/gmp/gmp-6.2.0.tar.lz
-COPY build.sh $SRC/
diff --git a/projects/nettle/build.sh b/projects/nettle/build.sh
deleted file mode 100755
index 0101831..0000000
--- a/projects/nettle/build.sh
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-export LINK_FLAGS=""
-
-# Not using OpenSSL
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NO_OPENSSL"
-
-# Install Boost headers
-    cd $SRC/
-    tar jxf boost_1_74_0.tar.bz2
-    cd boost_1_74_0/
-    CFLAGS="" CXXFLAGS="" ./bootstrap.sh
-    CFLAGS="" CXXFLAGS="" ./b2 headers
-    cp -R boost/ /usr/include/
-
-
-# Generate lookup tables. This only needs to be done once.
-    cd $SRC/cryptofuzz
-    python gen_repository.py
-
-if [[ $CFLAGS != *sanitize=memory* ]]
-then
-    # Compile libgmp
-        cd $SRC/
-        lzip -d gmp-6.2.0.tar.lz
-        tar xf gmp-6.2.0.tar
-
-        cd gmp-6.2.0/
-        autoreconf -ivf
-        if [[ $CFLAGS != *-m32* ]]
-        then
-            ./configure --enable-maintainer-mode
-        else
-            setarch i386 ./configure --enable-maintainer-mode
-        fi
-        make -j$(nproc)
-        make install
-
-    # Compile Nettle (with libgmp)
-        mkdir $SRC/nettle-with-libgmp-install/
-        cp -R $SRC/nettle $SRC/nettle-with-libgmp/
-        cd $SRC/nettle-with-libgmp/
-        bash .bootstrap
-        if [[ $CFLAGS != *sanitize=memory* ]]
-        then
-            ./configure --disable-documentation --disable-openssl --prefix=`realpath ../nettle-with-libgmp-install`
-        else
-            ./configure --disable-documentation --disable-openssl --disable-assembler --prefix=`realpath ../nettle-with-libgmp-install`
-        fi
-        make -j$(nproc)
-        make install
-
-        if [[ $CFLAGS != *-m32* ]]
-        then
-        export LIBNETTLE_A_PATH=`realpath ../nettle-with-libgmp-install/lib/libnettle.a`
-        export LIBHOGWEED_A_PATH=`realpath ../nettle-with-libgmp-install/lib/libhogweed.a`
-        ls -l $LIBHOGWEED_A_PATH
-        else
-        export LIBNETTLE_A_PATH=`realpath ../nettle-with-libgmp-install/lib32/libnettle.a`
-        export LIBHOGWEED_A_PATH=`realpath ../nettle-with-libgmp-install/lib32/libhogweed.a`
-        fi
-        export NETTLE_INCLUDE_PATH=`realpath ../nettle-with-libgmp-install/include`
-        export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NETTLE"
-        export LINK_FLAGS="$LINK_FLAGS /usr/local/lib/libgmp.a"
-
-        # Compile Cryptofuzz Nettle module
-        cd $SRC/cryptofuzz/modules/nettle
-        make -f Makefile-hogweed -B
-
-    ##############################################################################
-    # Compile Botan
-        cd $SRC/botan
-        if [[ $CFLAGS != *-m32* ]]
-        then
-            ./configure.py --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator --build-targets=static --without-documentation
-        else
-            ./configure.py --cpu=x86_32 --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator --build-targets=static --without-documentation
-        fi
-        make -j$(nproc)
-
-        export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BOTAN"
-        export LIBBOTAN_A_PATH="$SRC/botan/libbotan-3.a"
-        export BOTAN_INCLUDE_PATH="$SRC/botan/build/include"
-
-        # Compile Cryptofuzz Botan module
-        cd $SRC/cryptofuzz/modules/botan
-        make -B
-
-    # Compile Cryptofuzz
-        cd $SRC/cryptofuzz
-        LIBFUZZER_LINK="$LIB_FUZZING_ENGINE" make -B -j$(nproc) >/dev/null
-
-        # Generate dictionary
-        ./generate_dict
-
-        # Copy fuzzer
-        cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz-nettle-with-libgmp
-        # Copy dictionary
-        cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-nettle-with-libgmp.dict
-        # Copy seed corpus
-        cp $SRC/cryptofuzz-corpora/libressl_latest.zip $OUT/cryptofuzz-nettle-with-libgmp_seed_corpus.zip
-fi
-
-# Compile Nettle (with mini gmp)
-    mkdir $SRC/nettle-with-mini-gmp-install/
-    cp -R $SRC/nettle $SRC/nettle-with-mini-gmp/
-    cd $SRC/nettle-with-mini-gmp/
-    bash .bootstrap
-    if [[ $CFLAGS != *sanitize=memory* ]]
-    then
-        ./configure --enable-mini-gmp --disable-documentation --disable-openssl --prefix=`realpath ../nettle-with-mini-gmp-install`
-    else
-        ./configure --enable-mini-gmp --disable-documentation --disable-openssl --disable-assembler --prefix=`realpath ../nettle-with-mini-gmp-install`
-    fi
-    make -j$(nproc)
-    make install
-
-    if [[ $CFLAGS != *-m32* ]]
-    then
-    export LIBNETTLE_A_PATH=`realpath ../nettle-with-mini-gmp-install/lib/libnettle.a`
-    export LIBHOGWEED_A_PATH=`realpath ../nettle-with-mini-gmp-install/lib/libhogweed.a`
-    ls -l $LIBHOGWEED_A_PATH
-    else
-    export LIBNETTLE_A_PATH=`realpath ../nettle-with-mini-gmp-install/lib32/libnettle.a`
-    export LIBHOGWEED_A_PATH=`realpath ../nettle-with-mini-gmp-install/lib32/libhogweed.a`
-    fi
-    export NETTLE_INCLUDE_PATH=`realpath ../nettle-with-mini-gmp-install/include`
-    export LINK_FLAGS=""
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NETTLE"
-
-    # Compile Cryptofuzz Nettle module
-    cd $SRC/cryptofuzz/modules/nettle
-    make -f Makefile-hogweed -B
-
-# Compile Cryptofuzz
-    cd $SRC/cryptofuzz
-    LIBFUZZER_LINK="$LIB_FUZZING_ENGINE" make -B -j$(nproc) >/dev/null
-
-    # Generate dictionary
-    ./generate_dict
-
-    # Copy fuzzer
-    cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz-nettle-with-mini-gmp
-    # Copy dictionary
-    cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-nettle-with-mini-gmp.dict
-    # Copy seed corpus
-    cp $SRC/cryptofuzz-corpora/libressl_latest.zip $OUT/cryptofuzz-nettle-with-mini-gmp_seed_corpus.zip
diff --git a/projects/nettle/project.yaml b/projects/nettle/project.yaml
deleted file mode 100644
index 77b348c..0000000
--- a/projects/nettle/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://www.lysator.liu.se/~nisse/nettle/"
-language: c++
-primary_contact: guidovranken@gmail.com
-auto_ccs:
-    - "nisse@google.com"
-sanitizers:
- - address
- - undefined
- - memory
-architectures:
- - x86_64
- - i386
diff --git a/projects/nghttp2/Dockerfile b/projects/nghttp2/Dockerfile
index 58a0309..ff5cb94 100644
--- a/projects/nghttp2/Dockerfile
+++ b/projects/nghttp2/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER tatsuhiro.t@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config
 RUN git clone --depth 1 https://github.com/nghttp2/nghttp2.git
 WORKDIR nghttp2
diff --git a/projects/nghttp2/project.yaml b/projects/nghttp2/project.yaml
index 2c3df5f..a12853d 100644
--- a/projects/nghttp2/project.yaml
+++ b/projects/nghttp2/project.yaml
@@ -1,14 +1,6 @@
 homepage: "https://nghttp2.org/"
-language: c++
 primary_contact: "tatsuhiro.t@gmail.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
-  - undefined
   - memory
-  - dataflow
-main_repo: 'https://github.com/nghttp2/nghttp2.git'
+  - undefined
diff --git a/projects/nginx/Dockerfile b/projects/nginx/Dockerfile
deleted file mode 100644
index d567f2f..0000000
--- a/projects/nginx/Dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && apt-get install -y libpcre3-dev zlib1g-dev mercurial ninja-build cmake liblzma-dev libz-dev binutils libtool
-RUN hg clone http://hg.nginx.org/nginx/
-RUN git clone --depth 1 https://github.com/google/libprotobuf-mutator.git
-RUN git clone --depth 1 https://github.com/google/fuzzer-test-suite
-RUN (mkdir LPM && cd LPM && cmake ../libprotobuf-mutator -GNinja -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON -DLIB_PROTO_MUTATOR_TESTING=OFF -DCMAKE_BUILD_TYPE=Release && ninja)
-
-WORKDIR nginx
-COPY fuzz $SRC/fuzz
-COPY build.sh add_fuzzers.diff make_fuzzers  $SRC/
diff --git a/projects/nginx/add_fuzzers.diff b/projects/nginx/add_fuzzers.diff
deleted file mode 100644
index 28b41af..0000000
--- a/projects/nginx/add_fuzzers.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/auto/configure b/auto/configure
-index 7e6e33a7..bb368cfb 100755
---- a/auto/configure
-+++ b/auto/configure
-@@ -100,6 +100,7 @@ have=NGX_HTTP_SCGI_TEMP_PATH value="\"$NGX_HTTP_SCGI_TEMP_PATH\""
- . auto/define
- 
- . auto/make
-+. auto/make_fuzzers
- . auto/lib/make
- . auto/install
- 
diff --git a/projects/nginx/build.sh b/projects/nginx/build.sh
deleted file mode 100644
index fcfb70b..0000000
--- a/projects/nginx/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-hg import $SRC/add_fuzzers.diff --no-commit
-
-cp -r $SRC/fuzz src/
-cp $SRC/make_fuzzers auto/make_fuzzers
-
-cd src/fuzz
-rm -rf genfiles && mkdir genfiles && $SRC/LPM/external.protobuf/bin/protoc http_request_proto.proto --cpp_out=genfiles
-cd ../..
-
-auto/configure \
-    --with-ld-opt="-Wl,--wrap=listen -Wl,--wrap=setsockopt -Wl,--wrap=bind -Wl,--wrap=shutdown -Wl,--wrap=connect -Wl,--wrap=getpwnam -Wl,--wrap=getgrnam -Wl,--wrap=chmod -Wl,--wrap=chown" \
-    --with-http_v2_module
-make -f objs/Makefile fuzzers
-
-cp objs/*_fuzzer $OUT/
-cp $SRC/fuzz/*.dict $OUT/
diff --git a/projects/nginx/fuzz/http_request_fuzzer.cc b/projects/nginx/fuzz/http_request_fuzzer.cc
deleted file mode 100644
index 8d69e82..0000000
--- a/projects/nginx/fuzz/http_request_fuzzer.cc
+++ /dev/null
@@ -1,310 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-extern "C" {
-#include <ngx_config.h>
-#include <ngx_core.h>
-#include <ngx_event.h>
-#include <ngx_http.h>
-}
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <time.h>
-#include <unistd.h>
-
-#include "http_request_proto.pb.h"
-#include "libprotobuf-mutator/src/libfuzzer/libfuzzer_macro.h"
-
-static char configuration[] =
-"error_log stderr emerg;\n"
-"events {\n"
-"    use epoll;\n"
-"    worker_connections 2;\n"
-"    multi_accept off;\n"
-"    accept_mutex off;\n"
-"}\n"
-"http {\n"
-"    server_tokens off;\n"
-"    default_type application/octet-stream;\n"
-"    map $http_upgrade $connection_upgrade {\n"
-"      default upgrade;\n"
-"      '' close;\n"
-"    }\n"
-"    error_log stderr emerg;\n"
-"    access_log off;\n"
-"    map $subdomain $nss {\n"
-"      default local_upstream;\n"
-"    }\n"
-"    upstream local_upstream {\n"
-"      server 127.0.0.1:1010 max_fails=0;\n"
-"      server 127.0.0.1:1011 max_fails=0;\n"
-"      server 127.0.0.1:1012 max_fails=0;\n"
-"      server 127.0.0.1:1013 max_fails=0;\n"
-"      server 127.0.0.1:1014 max_fails=0;\n"
-"      server 127.0.0.1:1015 max_fails=0;\n"
-"      server 127.0.0.1:1016 max_fails=0;\n"
-"      server 127.0.0.1:1017 max_fails=0;\n"
-"      server 127.0.0.1:1018 max_fails=0;\n"
-"      server 127.0.0.1:1019 max_fails=0;\n"
-"    }\n"
-"    client_max_body_size 256M;\n"
-"    client_body_temp_path /tmp/;\n"
-"    proxy_temp_path /tmp/;\n"
-"    proxy_buffer_size 24K;\n"
-"    proxy_max_temp_file_size 0;\n"
-"    proxy_buffers 8 4K;\n"
-"    proxy_busy_buffers_size 28K;\n"
-"    proxy_buffering off;\n"
-"    server {\n"
-"      listen unix:nginx.sock;\n"
-"      server_name ~^(?<subdomain>.+)\\.url.com$;\n"
-"      proxy_next_upstream off;\n"
-"      proxy_read_timeout 5m;\n"
-"      proxy_http_version 1.1;\n"
-"      proxy_set_header Host $http_host;\n"
-"      proxy_set_header X-Real-IP $remote_addr;\n"
-"      proxy_set_header X-Real-Port $remote_port;\n"
-"      location / {\n"
-"        proxy_pass http://$nss;\n"
-"        proxy_set_header Host $http_host;\n"
-"        proxy_set_header X-Real-IP $remote_addr;\n"
-"        proxy_set_header X-Real-Port $remote_port;\n"
-"        proxy_set_header Connection '';\n"
-"        chunked_transfer_encoding off;\n"
-"        proxy_buffering off;\n"
-"        proxy_cache off;\n"
-"      }\n"
-"    }\n"
-"}\n"
-"\n";
-
-
-static ngx_cycle_t *cycle;
-static ngx_log_t ngx_log;
-static ngx_open_file_t ngx_log_file;
-static char *my_argv[2];
-static char arg1[] = {0, 0xA, 0};
-
-extern char **environ;
-
-static const char *config_file = "/tmp/http_config.conf";
-
-struct fuzzing_data {
-  const uint8_t *data;
-  size_t data_len;
-};
-
-static struct fuzzing_data request;
-static struct fuzzing_data reply;
-
-static ngx_http_upstream_t *upstream;
-static ngx_http_request_t *req_reply;
-static ngx_http_cleanup_t cln_new = {};
-static int cln_added;
-
-// Called when finalizing the request to upstream
-// Do not need to clean the request pool
-static void cleanup_reply(void *data) { req_reply = NULL; }
-
-// Called by the http parser to read the buffer
-static ssize_t request_recv_handler(ngx_connection_t *c, u_char *buf,
-                                    size_t size) {
-  if (request.data_len < size)
-    size = request.data_len;
-  memcpy(buf, request.data, size);
-  request.data += size;
-  request.data_len -= size;
-  return size;
-}
-
-// Feed fuzzing input for the reply from upstream
-static ssize_t reply_recv_handler(ngx_connection_t *c, u_char *buf,
-                                  size_t size) {
-  req_reply = (ngx_http_request_t *)(c->data);
-  if (!cln_added) { // add cleanup so that we know whether everything is cleanup
-                    // correctly
-    cln_added = 1;
-    cln_new.handler = cleanup_reply;
-    cln_new.next = req_reply->cleanup;
-    cln_new.data = NULL;
-    req_reply->cleanup = &cln_new;
-  }
-  upstream = req_reply->upstream;
-
-  if (reply.data_len < size)
-    size = reply.data_len;
-  memcpy(buf, reply.data, size);
-  reply.data += size;
-  reply.data_len -= size;
-  if (size == 0)
-    c->read->ready = 0;
-  return size;
-}
-
-static ngx_int_t add_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags) {
-  return NGX_OK;
-}
-
-static ngx_int_t init_event(ngx_cycle_t *cycle, ngx_msec_t timer) {
-  return NGX_OK;
-}
-
-// Used when sending data, do nothing
-static ngx_chain_t *send_chain(ngx_connection_t *c, ngx_chain_t *in,
-                               off_t limit) {
-  c->read->ready = 1;
-  c->recv = reply_recv_handler;
-  return in->next;
-}
-
-// Create a base state for Nginx without starting the server
-extern "C" int InitializeNginx(void) {
-  ngx_log_t *log;
-  ngx_cycle_t init_cycle;
-
-  if (access("nginx.sock", F_OK) != -1) {
-    remove("nginx.sock");
-  }
-
-  ngx_debug_init();
-  ngx_strerror_init();
-  ngx_time_init();
-  ngx_regex_init();
-
-  // Just output logs to stderr
-  ngx_log.file = &ngx_log_file;
-  ngx_log.log_level = NGX_LOG_EMERG;
-  ngx_log_file.fd = ngx_stderr;
-  log = &ngx_log;
-
-  ngx_memzero(&init_cycle, sizeof(ngx_cycle_t));
-  init_cycle.log = log;
-  ngx_cycle = &init_cycle;
-
-  init_cycle.pool = ngx_create_pool(1024, log);
-
-  // Set custom argv/argc
-  my_argv[0] = arg1;
-  my_argv[1] = NULL;
-  ngx_argv = ngx_os_argv = my_argv;
-  ngx_argc = 0;
-
-  // Weird trick to free a leaking buffer always caught by ASAN
-  // We basically let ngx overwrite the environment variable, free the leak and
-  // restore the environment as before.
-  char *env_before = environ[0];
-  environ[0] = my_argv[0] + 1;
-  ngx_os_init(log);
-  free(environ[0]);
-  environ[0] = env_before;
-
-  ngx_crc32_table_init();
-  ngx_preinit_modules();
-
-  FILE *fptr = fopen(config_file, "w");
-  fprintf(fptr, "%s", configuration);
-  fclose(fptr);
-  init_cycle.conf_file.len = strlen(config_file);
-  init_cycle.conf_file.data = (unsigned char *) config_file;
-
-  cycle = ngx_init_cycle(&init_cycle);
-
-  ngx_os_status(cycle->log);
-  ngx_cycle = cycle;
-
-  ngx_event_actions.add = add_event;
-  ngx_event_actions.init = init_event;
-  ngx_io.send_chain = send_chain;
-  ngx_event_flags = 1;
-  ngx_event_timer_init(cycle->log);
-  return 0;
-}
-
-extern "C" long int invalid_call(ngx_connection_s *a, ngx_chain_s *b,
-                                 long int c) {
-  return 0;
-}
-
-DEFINE_PROTO_FUZZER(const HttpProto &input) {
-  static int init = InitializeNginx();
-  assert(init == 0);
-
-  // have two free connections, one for client, one for upstream
-  ngx_event_t read_event1 = {};
-  ngx_event_t write_event1 = {};
-  ngx_connection_t local1 = {};
-  ngx_event_t read_event2 = {};
-  ngx_event_t write_event2 = {};
-  ngx_connection_t local2 = {};
-  ngx_connection_t *c;
-  ngx_listening_t *ls;
-
-  req_reply = NULL;
-  upstream = NULL;
-  cln_added = 0;
-
-  const char *req_string = input.request().c_str();
-  size_t req_len = strlen(req_string);
-  const char *rep_string = input.reply().c_str();
-  size_t rep_len = strlen(rep_string);
-  request.data = (const uint8_t *)req_string;
-  request.data_len = req_len;
-  reply.data = (const uint8_t *)rep_string;
-  reply.data_len = rep_len;
-
-  // Use listening entry created from configuration
-  ls = (ngx_listening_t *)ngx_cycle->listening.elts;
-
-  // Fake event ready for dispatch on read
-  local1.read = &read_event1;
-  local1.write = &write_event1;
-  local2.read = &read_event2;
-  local2.write = &write_event2;
-  local2.send_chain = send_chain;
-
-  // Create fake free connection to feed the http handler
-  ngx_cycle->free_connections = &local1;
-  local1.data = &local2;
-  ngx_cycle->free_connection_n = 2;
-
-  // Initialize connection
-  c = ngx_get_connection(
-      255, &ngx_log); // 255 - (hopefully unused) socket descriptor
-
-  c->shared = 1;
-  c->type = SOCK_STREAM;
-  c->pool = ngx_create_pool(256, ngx_cycle->log);
-  c->sockaddr = ls->sockaddr;
-  c->listening = ls;
-  c->recv = request_recv_handler; // Where the input will be read
-  c->send_chain = send_chain;
-  c->send = (ngx_send_pt)invalid_call;
-  c->recv_chain = (ngx_recv_chain_pt)invalid_call;
-  c->log = &ngx_log;
-  c->pool->log = &ngx_log;
-  c->read->log = &ngx_log;
-  c->write->log = &ngx_log;
-  c->socklen = ls->socklen;
-  c->local_sockaddr = ls->sockaddr;
-  c->local_socklen = ls->socklen;
-
-  read_event1.ready = 1;
-  write_event1.ready = write_event1.delayed = 1;
-
-  // Will redirect to http parser
-  ngx_http_init_connection(c);
-}
diff --git a/projects/nginx/fuzz/http_request_fuzzer.dict b/projects/nginx/fuzz/http_request_fuzzer.dict
deleted file mode 100644
index 6a21c63..0000000
--- a/projects/nginx/fuzz/http_request_fuzzer.dict
+++ /dev/null
@@ -1,152 +0,0 @@
-# Sources: https://en.wikipedia.org/wiki/List_of_HTTP_header_fields
-
-# misc
-"HTTP/1.1"
-
-# verbs
-"CONNECT"
-"DELETE"
-"GET"
-"HEAD"
-"OPTIONS"
-"PATCH"
-"POST"
-"PUT"
-"TRACE"
-
-
-# Webdav/caldav verbs
-"ACL"
-"BASELINE-CONTROL"
-"BIND"
-"CHECKIN"
-"CHECKOUT"
-"COPY"
-"LABEL"
-"LINK"
-"LOCK"
-"MERGE"
-"MKACTIVITY"
-"MKCALENDAR"
-"MKCOL"
-"MKREDIRECTREF"
-"MKWORKSPACE"
-"MOVE"
-"ORDERPATCH"
-"PRI"
-"PROPFIND"
-"PROPPATCH"
-"REBIND"
-"REPORT"
-"SEARCH"
-"UNBIND"
-"UNCHECKOUT"
-"UNLINK"
-"UNLOCK"
-"UPDATE"
-"UPDATEREDIRECTREF"
-"VERSION-CONTROL"
-
-
-# Fields
-"A-IM"
-"Accept"
-"Accept-Charset"
-"Accept-Datetime"
-"Accept-Encoding"
-"Accept-Language"
-"Accept-Patch"
-"Accept-Ranges"
-"Access-Control-Allow-Credentials"
-"Access-Control-Allow-Headers"
-"Access-Control-Allow-Methods"
-"Access-Control-Allow-Origin"
-"Access-Control-Expose-Headers"
-"Access-Control-Max-Age"
-"Access-Control-Request-Headers"
-"Access-Control-Request-Method"
-"Age"
-"Allow"
-"Alt-Svc"
-"Authorization"
-"Cache-Control"
-"Connection"
-"Connection:"
-"Content-Disposition"
-"Content-Encoding"
-"Content-Language"
-"Content-Length"
-"Content-Location"
-"Content-MD5"
-"Content-Range"
-"Content-Security-Policy"
-"Content-Type"
-"Cookie"
-"DNT"
-"Date"
-"Delta-Base"
-"ETag"
-"Expect"
-"Expires"
-"Forwarded"
-"From"
-"Front-End-Https"
-"HTTP2-Settings"
-"Host"
-"IM"
-"If-Match"
-"If-Modified-Since"
-"If-None-Match"
-"If-Range"
-"If-Unmodified-Since"
-"Last-Modified"
-"Link"
-"Location"
-"Max-Forwards"
-"Origin"
-"P3P"
-"Pragma"
-"Proxy-Authenticate"
-"Proxy-Authorization"
-"Proxy-Connection"
-"Public-Key-Pins"
-"Range"
-"Referer"
-"Refresh"
-"Retry-After"
-"Save-Data"
-"Server"
-"Set-Cookie"
-"Status"
-"Strict-Transport-Security"
-"TE"
-"Timing-Allow-Origin"
-"Tk"
-"Trailer"
-"Transfer-Encoding"
-"Upgrade"
-"Upgrade-Insecure-Requests"
-"User-Agent"
-"Vary"
-"Via"
-"WWW-Authenticate"
-"Warning"
-"X-ATT-DeviceId"
-"X-Content-Duration"
-"X-Content-Security-Policy"
-"X-Content-Type-Options"
-"X-Correlation-ID"
-"X-Csrf-Token"
-"X-Forwarded-For"
-"X-Forwarded-Host"
-"X-Forwarded-Proto"
-"X-Frame-Options"
-"X-Http-Method-Override"
-"X-Powered-By"
-"X-Request-ID"
-"X-Requested-With"
-"X-UA-Compatible"
-"X-UIDH"
-"X-Wap-Profile"
-"X-WebKit-CSP"
-"X-XSS-Protection"
diff --git a/projects/nginx/fuzz/http_request_proto.proto b/projects/nginx/fuzz/http_request_proto.proto
deleted file mode 100644
index 22a53af..0000000
--- a/projects/nginx/fuzz/http_request_proto.proto
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-syntax = "proto2";
-// Proto description of the http request fuzzer input format
-
-message HttpProto{
-	required string request = 1;
-	required string reply = 2;
-}
diff --git a/projects/nginx/fuzz/wrappers.c b/projects/nginx/fuzz/wrappers.c
deleted file mode 100644
index cb29872..0000000
--- a/projects/nginx/fuzz/wrappers.c
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <grp.h>
-#include <pwd.h>
-
-int __wrap_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) {
-  return 0;
-}
-
-int __wrap_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) {
-  return 0;
-}
-
-int __wrap_shutdown(int socket, int how) { return 0; }
-
-ssize_t __wrap_listen(int fd, void *buf, size_t bytes) { return 0; }
-
-int __wrap_setsockopt(int fd, int level, int optname, const void *optval,
-                      socklen_t optlen) {
-  return 0;
-}
-
-int __wrap_chmod(const char *pathname, mode_t mode){
-  return 0;
-}
-
-int __wrap_chown(const char *pathname, uid_t owner, gid_t group){
-  return 0;
-}
-
-struct passwd pwd;
-struct group grp;
-
-struct passwd *__wrap_getpwnam(const char *name){
-  pwd.pw_uid = 1;
-  return &pwd;
-}
-
-struct group *__wrap_getgrnam(const char *name){
-  grp.gr_gid = 1;
-  return &grp;
-}
diff --git a/projects/nginx/make_fuzzers b/projects/nginx/make_fuzzers
deleted file mode 100644
index a62d4d6..0000000
--- a/projects/nginx/make_fuzzers
+++ /dev/null
@@ -1,39 +0,0 @@
-sed -i 's/main(/fuzz_without_main(/g' src/core/nginx.c
-
-mkdir -p $NGX_OBJS/src/fuzz
-
-ngx_all_objs_fuzz=`echo src/fuzz/wrappers.c $ngx_all_srcs \
-    | sed -e "s#\([^ ]*\.\)cc#$NGX_OBJS\/\1$ngx_objext#g" \
-          -e "s#\([^ ]*\.\)c#$NGX_OBJS\/\1$ngx_objext#g"`
-
-ngx_deps_fuzz=`echo $ngx_all_objs_fuzz $ngx_modules_obj $ngx_res $LINK_DEPS \
-    | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
-          -e "s/\//$ngx_regex_dirsep/g"`
-
-ngx_objs=`echo objs/src/fuzz/wrappers.o $ngx_all_objs $ngx_modules_obj \
-    | sed -e "s/  *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \
-          -e "s/\//$ngx_regex_dirsep/g"`
-
-cat << END                                                    >> $NGX_MAKEFILE
-
-fuzzers: objs/http_request_fuzzer
-
-objs/src/fuzz/wrappers.o:
-	\$(CC) $ngx_compile_opt \$(CFLAGS) -o objs/src/fuzz/wrappers.o src/fuzz/wrappers.c
-
-objs/http_request_fuzzer: $ngx_deps_fuzz
-	 \$(CXX) \$(CXXFLAGS) src/fuzz/http_request_fuzzer.cc \
-	 src/fuzz/genfiles/http_request_proto.pb.cc \
-	 -o objs/http_request_fuzzer \
-	 \$(CORE_INCS) \$(HTTP_INCS) \
-	 -I src/fuzz/genfiles/ -I \$(SRC)/ \
-	 -I \$(SRC)/libprotobuf-mutator/ \
-	 -I \$(SRC)/LPM/external.protobuf/include \
-	 \$(SRC)/LPM/src/libfuzzer/libprotobuf-mutator-libfuzzer.a \
-  	 \$(SRC)/LPM/src/libprotobuf-mutator.a \
-  	 \$(SRC)/LPM/external.protobuf/lib/libprotobuf.a \
-	 $ngx_binexit$ngx_long_cont$ngx_objs \
-   	 \$(LIB_FUZZING_ENGINE) $ngx_libs$ngx_link$ngx_main_link -lcrypt
-$ngx_long_end					    
-
-END
diff --git a/projects/nginx/project.yaml b/projects/nginx/project.yaml
index 0aa9020..9b23bbe 100644
--- a/projects/nginx/project.yaml
+++ b/projects/nginx/project.yaml
@@ -1,8 +1,2 @@
 homepage: "http://nginx.org"
-language: c
 primary_contact: "xim.andrew@gmail.com"
-auto_ccs:
-  - ouyangyunshu@google.com
-  - mmoroz@google.com
-sanitizers:
-  - address
diff --git a/projects/ninja/Dockerfile b/projects/ninja/Dockerfile
deleted file mode 100644
index 7d9d5e2..0000000
--- a/projects/ninja/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y cmake
-
-RUN git clone --depth 1 https://github.com/ninja-build/ninja
-WORKDIR ninja
-RUN mv $SRC/ninja/misc/oss-fuzz/build.sh $SRC/
-RUN mv $SRC/ninja/misc/oss-fuzz/sample_ninja_build $SRC/
diff --git a/projects/ninja/project.yaml b/projects/ninja/project.yaml
deleted file mode 100644
index d35fdc4..0000000
--- a/projects/ninja/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/ninja-build/ninja"
-language: c++
-primary_contact: "jhasse@gmail.com"
-auto_ccs:
-  - "Adam@adalogics.com"
-sanitizers:
-  - address
-  - undefined
-  - memory
-main_repo: "https://github.com/ninja-build/ninja"
diff --git a/projects/njs/Dockerfile b/projects/njs/Dockerfile
index 0066c4a..05bf5dd 100644
--- a/projects/njs/Dockerfile
+++ b/projects/njs/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mmoroz@chromium.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool \
     mercurial libpcre3-dev subversion
 RUN hg clone http://hg.nginx.org/njs
diff --git a/projects/njs/project.yaml b/projects/njs/project.yaml
index bd92434..c307952 100644
--- a/projects/njs/project.yaml
+++ b/projects/njs/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://nginx.org/en/docs/njs/"
-language: c++
 primary_contact: "xeioex@nginx.com"
 auto_ccs:
  - "alexander.borisov@nginx.com"
diff --git a/projects/nodejs/Dockerfile b/projects/nodejs/Dockerfile
deleted file mode 100644
index f2805ab..0000000
--- a/projects/nodejs/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make
-RUN apt-get install -y flex bison build-essential
-RUN git clone --recursive --depth 1 https://github.com/nodejs/node
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/nodejs/build.sh b/projects/nodejs/build.sh
deleted file mode 100755
index 713d9f1..0000000
--- a/projects/nodejs/build.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-cd $SRC/node
-
-# Build node
-export LDFLAGS="$CXXFLAGS"
-export LD="$CXX"
-./configure --with-ossfuzz
-make -j$(nproc)
-
-# Copy all fuzzers to OUT folder 
-cp out/Release/fuzz_* ${OUT}/
diff --git a/projects/nodejs/fuzz_url.cc b/projects/nodejs/fuzz_url.cc
deleted file mode 100644
index 1c07fac..0000000
--- a/projects/nodejs/fuzz_url.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-#include <stdlib.h>
-
-#include "node.h"
-#include "node_internals.h"
-#include "node_url.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-    node::url::URL url2((char*)data, size);
-
-    return 0;
-} 
diff --git a/projects/nodejs/project.yaml b/projects/nodejs/project.yaml
index 4161f63..80ca11e 100644
--- a/projects/nodejs/project.yaml
+++ b/projects/nodejs/project.yaml
@@ -1,10 +1,2 @@
 homepage: "https://nodejs.org"
 primary_contact: "security@nodejs.org"
-language: c++
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-auto_ccs:
-  - "david@adalogics.com"
-main_repo: 'https://github.com/nodejs/node'
diff --git a/projects/nom/Dockerfile b/projects/nom/Dockerfile
deleted file mode 100644
index 167550e..0000000
--- a/projects/nom/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone --depth 1 https://github.com/Geal/nom/
-WORKDIR $SRC
-
-COPY build.sh $SRC/
diff --git a/projects/nom/build.sh b/projects/nom/build.sh
deleted file mode 100755
index 8567ddc..0000000
--- a/projects/nom/build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/nom
-cargo fuzz build -O 
-cp fuzz/target/x86_64-unknown-linux-gnu/release/fuzz_arithmetic $OUT/
diff --git a/projects/nom/project.yaml b/projects/nom/project.yaml
deleted file mode 100644
index 9c2f7d8..0000000
--- a/projects/nom/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/Geal/nom"
-main_repo: "https://github.com/Geal/nom"
-primary_contact: "geo.couprie@gmail.com"
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-language: rust
-auto_ccs:
-  - "david@adalogics.com"
diff --git a/projects/nss/Dockerfile b/projects/nss/Dockerfile
index 5ad8b5e..0a4df4f 100644
--- a/projects/nss/Dockerfile
+++ b/projects/nss/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mmoroz@chromium.org
 RUN apt-get update && apt-get install -y make mercurial zlib1g-dev gyp ninja-build libssl-dev
 
 RUN hg clone https://hg.mozilla.org/projects/nspr nspr
diff --git a/projects/nss/project.yaml b/projects/nss/project.yaml
index 3cf3dc0..f3daae3 100644
--- a/projects/nss/project.yaml
+++ b/projects/nss/project.yaml
@@ -1,8 +1,10 @@
 homepage: "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS"
-language: c++
-primary_contact: "jjones@mozilla.com"
+primary_contact: "fkiefer@mozilla.com"
 auto_ccs:
-  - "bbeurdouche@mozilla.com"
-  - "tvandermerwe@mozilla.com"
+  - "jjones@mozilla.com"
+  - "cdiehl@mozilla.com"
   - "sledru@mozilla.com"
   - "kjacobs@mozilla.com"
+fuzzing_engines:
+  - libfuzzer
+  - afl
diff --git a/projects/ntp/Dockerfile b/projects/ntp/Dockerfile
index 40de20c..d942c8c 100644
--- a/projects/ntp/Dockerfile
+++ b/projects/ntp/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER security@ntp.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool bison flex rsync lynx
 ADD https://www.bitkeeper.org/downloads/7.3.3/bk-7.3.3-x86_64-glibc213-linux.bin bk-7.3.3-x86_64-glibc213-linux.bin
 RUN chmod +x bk-7.3.3-x86_64-glibc213-linux.bin
diff --git a/projects/ntp/project.yaml b/projects/ntp/project.yaml
index c3b8b2d..df48cec 100644
--- a/projects/ntp/project.yaml
+++ b/projects/ntp/project.yaml
@@ -1,15 +1,8 @@
 homepage: "http://www.ntp.org"
-language: c++
 primary_contact: "security@ntp.org"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
-fuzzing_engines:
-  - afl
-  - libfuzzer
-  - honggfuzz
-  - dataflow
+auto_ccs : "p.antoine@catenacyber.fr"
+
 sanitizers:
-  - address
-  - memory
-  - undefined
-  - dataflow
+- address
+- memory
+- undefined
diff --git a/projects/oak/Dockerfile b/projects/oak/Dockerfile
index e6f44f3..9d74398 100644
--- a/projects/oak/Dockerfile
+++ b/projects/oak/Dockerfile
@@ -17,6 +17,7 @@
 # TODO(https://github.com/google/oss-fuzz/issues/3093): Stop specifying the
 # image SHA once the bug is fixed.
 FROM gcr.io/oss-fuzz-base/base-builder@sha256:276813aef0ce5972db43c0230f96162003994fa742fb1b2f4e66c67498575c65
+MAINTAINER tzn@google.com
 
 # Use a fixed Bazel version.
 # https://github.com/google/asylo/blob/088ea3490dd4579655bd5b65b0e31fe18de7f6dd/asylo/distrib/toolchain/Dockerfile#L48-L71
diff --git a/projects/oak/build.sh b/projects/oak/build.sh
index 2e46c77..3ade813 100755
--- a/projects/oak/build.sh
+++ b/projects/oak/build.sh
@@ -42,35 +42,34 @@
 # Temporary hack, see https://github.com/google/oss-fuzz/issues/383
 readonly NO_VPTR='--copt=-fno-sanitize=vptr --linkopt=-fno-sanitize=vptr'
 
-readonly FUZZER_TARGETS=()
-readonly ENABLED=false
+readonly FUZZER_TARGETS=(
+  'oak/server:wasm_node_fuzz'
+)
 
-if [ "$ENABLED" = true ]; then
-  bazel build \
-    --client_env=CC=${CC} \
-    --client_env=CXX=${CXX} \
-    --dynamic_mode=off \
-    --spawn_strategy=standalone \
-    --genrule_strategy=standalone \
-    ${NO_VPTR} \
-    --strip=never \
-    --linkopt=-lc++ \
-    --linkopt=-pthread \
-    --cxxopt=-std=c++11 \
-    --copt=${LIB_FUZZING_ENGINE} \
-    --linkopt=${LIB_FUZZING_ENGINE} \
-    --remote_cache=https://storage.googleapis.com/oak-bazel-cache \
-    --remote_upload_local_results=false \
-    ${EXTRA_BAZEL_FLAGS} \
-    ${FUZZER_TARGETS[@]}
+bazel build \
+  --client_env=CC=${CC} \
+  --client_env=CXX=${CXX} \
+  --dynamic_mode=off \
+  --spawn_strategy=standalone \
+  --genrule_strategy=standalone \
+  ${NO_VPTR} \
+  --strip=never \
+  --linkopt=-lc++ \
+  --linkopt=-pthread \
+  --cxxopt=-std=c++11 \
+  --copt=${LIB_FUZZING_ENGINE} \
+  --linkopt=${LIB_FUZZING_ENGINE} \
+  --remote_cache=https://storage.googleapis.com/oak-bazel-cache \
+  --remote_upload_local_results=false \
+  ${EXTRA_BAZEL_FLAGS} \
+  ${FUZZER_TARGETS[@]}
 
-  for target in ${FUZZER_TARGETS}; do
-    # Replace : with /.
-    fuzzer_name="${target/:/\/}"
-    cp "./bazel-bin/${fuzzer_name}" "${OUT}/"
-  done
+for target in ${FUZZER_TARGETS}; do
+  # Replace : with /.
+  fuzzer_name="${target/:/\/}"
+  cp "./bazel-bin/${fuzzer_name}" "${OUT}/"
+done
 
-  # Cleanup bazel- symlinks to avoid oss-fuzz trying to copy out of the build
-  # cache.
-  rm -f ./bazel-*
-fi
+# Cleanup bazel- symlinks to avoid oss-fuzz trying to copy out of the build
+# cache.
+rm -f ./bazel-*
diff --git a/projects/oak/project.yaml b/projects/oak/project.yaml
index 3f79c7f..b336dcc 100644
--- a/projects/oak/project.yaml
+++ b/projects/oak/project.yaml
@@ -1,6 +1,4 @@
-disabled: True
 homepage: "https://github.com/project-oak/oak"
-language: c++
 primary_contact: "tzn@google.com"
 auto_ccs:
   - "project-oak-team@google.com"
@@ -12,4 +10,3 @@
   - "mks@google.com"
 fuzzing_engines:
   - libfuzzer
-main_repo: 'https://github.com/project-oak/oak'
diff --git a/projects/oniguruma/.gitignore b/projects/oniguruma/.gitignore
deleted file mode 100644
index f181609..0000000
--- a/projects/oniguruma/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/oniguruma
-/fuzzer.options.*
diff --git a/projects/oniguruma/Dockerfile b/projects/oniguruma/Dockerfile
deleted file mode 100644
index 9334f9d..0000000
--- a/projects/oniguruma/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && apt-get install -y make autoconf automake libtool
-RUN git clone --depth 1 https://github.com/kkos/oniguruma.git oniguruma
-
-WORKDIR oniguruma
-COPY build.sh $SRC/
-COPY fuzzer.options $SRC/oniguruma/harnesses
diff --git a/projects/oniguruma/build.sh b/projects/oniguruma/build.sh
deleted file mode 100755
index 4ebd5c1..0000000
--- a/projects/oniguruma/build.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-./autogen.sh
-./configure
-make clean
-make -j$(nproc)
-
-FUZZ_SRCDIR=harnesses
-FUZZ_TARGET=fuzzer
-
-# build fuzzer
-$CC $CFLAGS -o $FUZZ_SRCDIR/fuzzer_syntax.o -I src -c -DSYNTAX_TEST $FUZZ_SRCDIR/base.c
-$CXX $CXXFLAGS -o $OUT/$FUZZ_TARGET $FUZZ_SRCDIR/fuzzer_syntax.o $LIB_FUZZING_ENGINE src/.libs/libonig.a
-
-# setup files
-cp $FUZZ_SRCDIR/$FUZZ_TARGET.options $OUT/
-cp $FUZZ_SRCDIR/ascii_compatible.dict $OUT/$FUZZ_TARGET.dict
diff --git a/projects/oniguruma/fuzzer.options b/projects/oniguruma/fuzzer.options
deleted file mode 100644
index e69de29..0000000
--- a/projects/oniguruma/fuzzer.options
+++ /dev/null
diff --git a/projects/oniguruma/project.yaml b/projects/oniguruma/project.yaml
deleted file mode 100644
index 835d372..0000000
--- a/projects/oniguruma/project.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-homepage: "https://github.com/kkos/oniguruma"
-language: c
-primary_contact: "kkosako0@gmail.com"
-sanitizers:
-  - address
-  - undefined
-  - memory
-main_repo: 'https://github.com/kkos/oniguruma.git'
diff --git a/projects/open62541/Dockerfile b/projects/open62541/Dockerfile
index 12c1e1f..5704524 100644
--- a/projects/open62541/Dockerfile
+++ b/projects/open62541/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER git@s.profanter.me
 RUN apt-get update && apt-get install -y make cmake python-six wget
 # We need libmbedtls > 2.5.1 otherwise it does not include the lib for static linking
 RUN wget https://open62541.org/libmbedtls/libmbedtls-dev_2.6.0-1_amd64.deb && \
diff --git a/projects/open62541/project.yaml b/projects/open62541/project.yaml
index 7f0447c..9039fda 100644
--- a/projects/open62541/project.yaml
+++ b/projects/open62541/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://open62541.org/"
-language: c++
 primary_contact: "Stefan.Profanter@gmail.com"
 auto_ccs:
  - "julius.pfrommer@gmail.com"
@@ -9,4 +8,3 @@
 - address
 - undefined
 - memory
-main_repo: 'https://github.com/open62541/open62541.git'
diff --git a/projects/openbabel/Dockerfile b/projects/openbabel/Dockerfile
deleted file mode 100644
index 766293a..0000000
--- a/projects/openbabel/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt install -y cmake
-RUN git clone --depth 1 https://github.com/openbabel/openbabel.git
-COPY build.sh $SRC
-WORKDIR $SRC/openbabel
diff --git a/projects/openbabel/build.sh b/projects/openbabel/build.sh
deleted file mode 100755
index 5a1b547..0000000
--- a/projects/openbabel/build.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-# build project
-mkdir build && cd build
-cmake .. -DBUILD_SHARED=OFF -DBUILD_MIXED=ON
-make -j $(nproc)
-cp bin/fuzz* $OUT/
diff --git a/projects/openbabel/project.yaml b/projects/openbabel/project.yaml
deleted file mode 100644
index e7437df..0000000
--- a/projects/openbabel/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://openbabel.org"
-language: c++
-primary_contact: "geoff.hutchison@gmail.com"
-auto_ccs :
-- "p.antoine@catenacyber.fr"
-
-sanitizers:
-- address
-- undefined
-main_repo: 'https://github.com/openbabel/openbabel.git'
diff --git a/projects/opencv/build.sh b/projects/opencv/build.sh
index 5336f1b..a3fb653 100755
--- a/projects/opencv/build.sh
+++ b/projects/opencv/build.sh
@@ -30,10 +30,7 @@
 popd
 
 pushd $SRC
-for fuzzer in core_fuzzer filestorage_read_file_fuzzer \
-   filestorage_read_filename_fuzzer filestorage_read_string_fuzzer \
-   generateusergallerycollage_fuzzer imdecode_fuzzer imencode_fuzzer \
-   imread_fuzzer; do
+for fuzzer in imdecode_fuzzer imread_fuzzer; do
 $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.cc -std=c++11 \
 -I$install_dir/include/opencv4 -L$install_dir/lib \
 -L$install_dir/lib/opencv4/3rdparty \
@@ -41,7 +38,7 @@
 -lopencv_stitching -lopencv_video -lopencv_calib3d -lopencv_features2d \
 -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc \
 -lopencv_flann -lopencv_core -llibjpeg-turbo -llibwebp -llibpng -llibtiff \
--llibopenjp2 -lIlmImf -llibprotobuf -lquirc -lzlib -littnotify -lippiw \
+-llibjasper -lIlmImf -llibprotobuf -lquirc -lzlib -littnotify -lippiw \
 -lippicv -lade -ldl -lm -lpthread -lrt \
 -o $OUT/$fuzzer
 done
diff --git a/projects/opencv/core_fuzzer.cc b/projects/opencv/core_fuzzer.cc
deleted file mode 100644
index 089b6d7..0000000
--- a/projects/opencv/core_fuzzer.cc
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-#include <cstdint>
-
-#include <opencv2/opencv.hpp>
-#include <fuzzer/FuzzedDataProvider.h>
-
-namespace {
-
-bool GetCVImage(const std::string& image_string, const int max_pixels,
-                cv::Mat* original_image) {
-  if (image_string.empty()) return false;
-  std::vector<uchar> raw_data(image_string.size());
-  const char* ptr = image_string.data();
-  std::copy(ptr, ptr + image_string.size(), raw_data.data());
-  try {
-    *original_image = cv::imdecode(raw_data, cv::IMREAD_UNCHANGED);
-  } catch (cv::Exception e) {}
-  return !original_image->empty();
-}
-
-void TestExternalMethods(const cv::Mat& mat) {
-  try{
-    cv::sum(mat);
-  } catch (cv::Exception e) {}
-  try {
-    cv::mean(mat);
-  } catch (cv::Exception e) {}
-  try {
-    cv::trace(mat);
-  } catch (cv::Exception e) {}
-}
-
-void TestInternalMethods(const cv::Mat& mat) {
-  try {
-    mat.t();
-  } catch (cv::Exception e) {}
-  try {
-    mat.inv();
-  } catch (cv::Exception e) {}
-  try {
-    mat.diag();
-  } catch (cv::Exception e) {}
-}
-
-void TestSplitAndMerge(const cv::Mat& image) {
-  std::vector<cv::Mat> split_image(image.channels());
-  cv::split(image, split_image);
-  if (!split_image.empty()) {
-    cv::Mat new_image;
-    cv::merge(split_image, new_image);
-  }
-}
-
-}  // namespace
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  // Prepares a backup image we will use if we cannot successfully get an image
-  // by decoding the string.
-  std::vector<uint8_t> image_data = {data, data + size};
-  cv::Mat backup_image =
-      cv::Mat(1, image_data.size(), CV_8UC1, image_data.data());
-
-  FuzzedDataProvider fuzzed_data_provider(data, size);
-  const int max_pixels = fuzzed_data_provider.ConsumeIntegral<int>();
-  const std::string image_string =
-      fuzzed_data_provider.ConsumeRemainingBytesAsString();
-  cv::Mat original_image;
-  // Tests the clone method.
-  cv::Mat cloned_image = GetCVImage(image_string, max_pixels, &original_image)
-                             ? original_image.clone()
-                             : backup_image.clone();
-
-  // TODO: enabling the following crashes right away.
-  // TestExternalMethods(cloned_image);
-  TestInternalMethods(cloned_image);
-  TestSplitAndMerge(cloned_image);
-  return 0;
-}
diff --git a/projects/opencv/filestorage_read_file_fuzzer.cc b/projects/opencv/filestorage_read_file_fuzzer.cc
deleted file mode 100644
index 03e06e6..0000000
--- a/projects/opencv/filestorage_read_file_fuzzer.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-#include <cstdint>
-
-#include <opencv2/opencv.hpp>
-#include "fuzzer_temp_file.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  // Tests reading from a file using cv::FileStorage, which attempts to parse
-  // JSON, XML, and YAML, using the first few bytes of a file to determine which
-  // type to parse it as.
-  const FuzzerTemporaryFile temp_file(data, size);
-  cv::FileStorage storage;
-  try {
-    // TODO: enabling the following crashes right away.
-//    storage.open(temp_file.filename(), cv::FileStorage::READ);
-  } catch (cv::Exception e) {
-    // Do nothing.
-  }
-  return 0;
-}
diff --git a/projects/opencv/filestorage_read_filename_fuzzer.cc b/projects/opencv/filestorage_read_filename_fuzzer.cc
deleted file mode 100644
index 122f1db..0000000
--- a/projects/opencv/filestorage_read_filename_fuzzer.cc
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-#include <cstdint>
-
-#include <opencv2/opencv.hpp>
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  // Tests filename parsing when opening cv::FileStorage for reading. The file
-  // doesn't actually exist, so any logic prediated on successfully opening the
-  // file will not be tested.
-  //
-  // Note that this may actually generate filenames that do exist. If so, this
-  // could result in some bugs being difficult to reproduce. If a case doesn't
-  // reproduce and looks like a real filename, this may be the cause.
-  cv::FileStorage storage;
-  try {
-    storage.open(std::string(reinterpret_cast<const char*>(data), size),
-                 cv::FileStorage::READ);
-  } catch (cv::Exception e) {
-    // Do nothing.
-  }
-  return 0;
-}
diff --git a/projects/opencv/filestorage_read_string_fuzzer.cc b/projects/opencv/filestorage_read_string_fuzzer.cc
deleted file mode 100644
index d9db91e..0000000
--- a/projects/opencv/filestorage_read_string_fuzzer.cc
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-#include <cstdint>
-
-#include <opencv2/opencv.hpp>
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  // Tests reading from a string (instead of a file) using cv::FileStorage,
-  // which attempts to parse JSON, XML, and YAML, using the first few bytes of a
-  // string to determine which type to parse it as.
-  cv::FileStorage storage;
-  try {
-    storage.open(std::string(reinterpret_cast<const char*>(data), size),
-                 cv::FileStorage::READ);
-  } catch (cv::Exception e) {
-    // Do nothing.
-  }
-  return 0;
-}
diff --git a/projects/opencv/generateusergallerycollage_fuzzer.cc b/projects/opencv/generateusergallerycollage_fuzzer.cc
deleted file mode 100644
index 4d8432f..0000000
--- a/projects/opencv/generateusergallerycollage_fuzzer.cc
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-#include <cstdint>
-#include <iosfwd>
-
-#include <opencv2/opencv.hpp>
-#include <fuzzer/FuzzedDataProvider.h>
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  const int kMaxXResolution = 6000;
-  const int kMaxYResolution = 6000;
-  const int kMaxLineThickness = 10;
-  const double kMaxFontScale = 10.0;
-
-  FuzzedDataProvider fuzz_provider(data, size);
-
-  int fuzz_font_face = fuzz_provider.PickValueInArray(
-      {cv::FONT_HERSHEY_SIMPLEX, cv::FONT_HERSHEY_PLAIN,
-       cv::FONT_HERSHEY_DUPLEX, cv::FONT_HERSHEY_COMPLEX,
-       cv::FONT_HERSHEY_TRIPLEX, cv::FONT_HERSHEY_COMPLEX_SMALL,
-       cv::FONT_HERSHEY_SCRIPT_SIMPLEX, cv::FONT_HERSHEY_SCRIPT_COMPLEX});
-
-  int fuzz_linetype = fuzz_provider.PickValueInArray({
-      cv::LINE_8,     // 8-connected line
-      cv::LINE_4,     // 4-connected line
-      cv::LINE_AA     // anti-aliased line
-  });
-
-  double fuzz_font_scale =
-      fuzz_provider.ConsumeFloatingPointInRange(0.0, kMaxFontScale);
-  int fuzz_width =
-      fuzz_provider.ConsumeIntegralInRange<int>(0, kMaxXResolution);
-  int fuzz_height =
-      fuzz_provider.ConsumeIntegralInRange<int>(0, kMaxYResolution);
-  int fuzz_x_pos =
-      fuzz_provider.ConsumeIntegralInRange<int>(0, kMaxXResolution);
-  int fuzz_y_pos =
-      fuzz_provider.ConsumeIntegralInRange<int>(0, kMaxYResolution);
-  int fuzz_thickness =
-      fuzz_provider.ConsumeIntegralInRange<int>(0, kMaxLineThickness);
-
-  std::vector<uint8_t> color_scalar_vals;
-  std::vector<uint8_t> canvas_fill_scalar_vals;
-
-  // Ensure that all 3D vectors are fully populated,
-  // even if fuzz_provider is exhausted.
-  for (int i = 0; i < 3; i++) {
-    color_scalar_vals.insert(color_scalar_vals.begin(),
-                             fuzz_provider.ConsumeIntegralInRange(0, 255));
-    canvas_fill_scalar_vals.insert(
-        canvas_fill_scalar_vals.begin(),
-        fuzz_provider.ConsumeIntegralInRange(0, 255));
-  }
-
-  cv::Scalar fuzz_color(color_scalar_vals[0], color_scalar_vals[1],
-                        color_scalar_vals[2]);
-  cv::Scalar fuzz_canvas_fill(canvas_fill_scalar_vals[0],
-                              canvas_fill_scalar_vals[1],
-                              canvas_fill_scalar_vals[2]);
-
-  cv::Point fuzz_text_pos(fuzz_x_pos, fuzz_y_pos);
-  cv::Mat fuzz_canvas(fuzz_height, fuzz_width, CV_8UC3, fuzz_canvas_fill);
-
-  std::basic_string<char> fuzz_annotation =
-      fuzz_provider.ConsumeRemainingBytesAsString();
-
-  cv::putText(fuzz_canvas, fuzz_annotation, fuzz_text_pos, fuzz_font_face,
-              fuzz_font_scale, fuzz_color, fuzz_thickness, fuzz_linetype);
-  return 0;
-}
diff --git a/projects/opencv/imencode_fuzzer.cc b/projects/opencv/imencode_fuzzer.cc
deleted file mode 100644
index 735fcd7..0000000
--- a/projects/opencv/imencode_fuzzer.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2020 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-#include <cstdint>
-
-#include <opencv2/opencv.hpp>
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  std::vector<uint8_t> image_data = {data, data + size};
-  cv::Mat data_matrix =
-      cv::Mat(1, image_data.size(), CV_8UC1, image_data.data());
-  try {
-    std::vector<uchar> buffer;
-    cv::imencode(".tiff", data_matrix, buffer);
-  } catch (cv::Exception e) {
-    // Do nothing.
-  }
-  return 0;
-}
diff --git a/projects/opencv/project.yaml b/projects/opencv/project.yaml
index e6b085c..38a24bc 100644
--- a/projects/opencv/project.yaml
+++ b/projects/opencv/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://opencv.org/"
-language: c++
 primary_contact: "garybradski@gmail.com"
 
 auto_ccs:
@@ -19,4 +18,3 @@
     - sundew
   imread_fuzzer:
     - sundew
-main_repo: 'https://github.com/opencv/opencv.git'
diff --git a/projects/opendnp3/Dockerfile b/projects/opendnp3/Dockerfile
index e602568..c619c9c 100644
--- a/projects/opendnp3/Dockerfile
+++ b/projects/opendnp3/Dockerfile
@@ -15,8 +15,16 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER info@automatak.com
 RUN apt-get update && apt-get install -y make wget tshark
-
+# The CMake version that is available on Ubuntu 16.04 is 3.5.1. OpenDNP3
+# needs CMake 3.8 or higher, because of the C# bindings. Therefore, we
+# manually install a modern CMake until the OSS Fuzz environment updates
+# to a more recent Ubuntu.
+# This section was taken from JSC Dockerfile
+RUN wget -q -O - https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4-Linux-x86_64.sh > /tmp/install_cmake.sh && \
+    cd /usr && bash /tmp/install_cmake.sh -- --skip-license && \
+    rm /tmp/install_cmake.sh
 RUN git clone --recursive -b release-2.x --depth 1 https://github.com/dnp3/opendnp3.git opendnp3
 WORKDIR opendnp3
 COPY build.sh $SRC/
diff --git a/projects/opendnp3/project.yaml b/projects/opendnp3/project.yaml
index 47c72b6..18f47f6 100644
--- a/projects/opendnp3/project.yaml
+++ b/projects/opendnp3/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.automatak.com/opendnp3/"
-language: c++
 primary_contact: "info@automatak.com"
 auto_ccs :
   - "p.antoine@catenacyber.fr"
@@ -9,4 +8,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/dnp3/opendnp3.git'
diff --git a/projects/openexr/Dockerfile b/projects/openexr/Dockerfile
deleted file mode 100644
index 2cc4945..0000000
--- a/projects/openexr/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool zlib1g-dev
-RUN git clone --depth 1 https://github.com/AcademySoftwareFoundation/openexr openexr
-WORKDIR openexr
-COPY build.sh $SRC/
diff --git a/projects/openexr/build.sh b/projects/openexr/build.sh
deleted file mode 100755
index 80a2e49..0000000
--- a/projects/openexr/build.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $WORK/
-
-CMAKE_SETTINGS=(
-  "-D BUILD_SHARED_LIBS=OFF"         # Build static libraries only
-  "-D PYILMBASE_ENABLE=OFF"          # Don't build Python support
-  "-D BUILD_TESTING=OFF"             # Or tests
-  "-D INSTALL_OPENEXR_EXAMPLES=OFF"  # Or examples
-  "-D OPENEXR_LIB_SUFFIX="           # Don't append the version number to library files
-  "-D ILMBASE_LIB_SUFFIX="
-)
-cmake $SRC/openexr ${CMAKE_SETTINGS[@]}
-make -j$(nproc)
-
-INCLUDES=(
-  "-I $SRC"
-  "-I $SRC/openexr/src/lib/OpenEXR"
-  "-I $SRC/openexr/src/lib/OpenEXRUtil"
-  "-I $WORK/cmake"
-)
-
-LIBS=(
-  "$WORK/src/lib/OpenEXRUtil/libOpenEXRUtil.a"
-  "$WORK/src/lib/OpenEXR/libOpenEXR.a"
-  "$WORK/src/lib/IlmThread/libIlmThread.a"
-  "$WORK/src/lib/Iex/libIex.a"
-  "$WORK/_deps/imath-build/src/Imath/libImath*.a"
-)
-
-for fuzzer in $SRC/openexr/src/test/OpenEXRFuzzTest/oss-fuzz/*_fuzzer.cc; do
-  fuzzer_basename=$(basename -s .cc $fuzzer)
-  $CXX $CXXFLAGS -std=c++11 -pthread ${INCLUDES[@]} $fuzzer $LIB_FUZZING_ENGINE ${LIBS[@]} -lz \
-    -o $OUT/$fuzzer_basename
-done
diff --git a/projects/openexr/project.yaml b/projects/openexr/project.yaml
deleted file mode 100644
index 521e767..0000000
--- a/projects/openexr/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: "https://openexr.com"
-language: c++
-primary_contact: "twodeecoda@gmail.com"
-auto_ccs:
-  - "cbpilm@gmail.com"
-  - "security@openexr.org"
-main_repo: 'https://github.com/AcademySoftwareFoundation/openexr'
diff --git a/projects/openh264/Dockerfile b/projects/openh264/Dockerfile
index f7cc712..bb34782 100644
--- a/projects/openh264/Dockerfile
+++ b/projects/openh264/Dockerfile
@@ -15,7 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && \
+MAINTAINER twsmith@mozilla.com
+RUN dpkg --add-architecture i386 && \
+    apt-get update && \
     apt-get install -y libstdc++-5-dev libstdc++-5-dev:i386 nasm subversion
 RUN git clone --depth 1 https://github.com/cisco/openh264.git openh264
 WORKDIR openh264
diff --git a/projects/openh264/project.yaml b/projects/openh264/project.yaml
index 37ee8c9..b963a4b 100644
--- a/projects/openh264/project.yaml
+++ b/projects/openh264/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.openh264.org"
-language: c++
 primary_contact: "huili2@cisco.com"
 auto_ccs:
   - "guangwwa@cisco.com"
@@ -16,4 +15,3 @@
 architectures:
  - i386
  - x86_64
-main_repo: 'https://github.com/cisco/openh264.git'
diff --git a/projects/openjpeg/Dockerfile b/projects/openjpeg/Dockerfile
index 865a7e3..629a5cc 100644
--- a/projects/openjpeg/Dockerfile
+++ b/projects/openjpeg/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER antonin@gmail.com
 RUN apt-get update && apt-get install -y make cmake g++
 RUN git clone --depth 1 https://github.com/uclouvain/openjpeg openjpeg
 # openjpeg-data is used to create a seed corpus
diff --git a/projects/openjpeg/build.sh b/projects/openjpeg/build.sh
index 1bc2da0..cd96cf7 100755
--- a/projects/openjpeg/build.sh
+++ b/projects/openjpeg/build.sh
@@ -17,7 +17,7 @@
 
 mkdir build
 cd build
-cmake -DCMAKE_BUILD_TYPE=Release ..
+cmake ..
 make clean -s
 make -j$(nproc) -s
 cd ..
diff --git a/projects/openjpeg/project.yaml b/projects/openjpeg/project.yaml
index c9d944f..dfd8eb8 100644
--- a/projects/openjpeg/project.yaml
+++ b/projects/openjpeg/project.yaml
@@ -1,16 +1,12 @@
 homepage: "http://www.openjpeg.org/"
-language: c++
 primary_contact: "antonin@gmail.com"
 auto_ccs:
   - "even.rouault@gmail.com"
 fuzzing_engines:
   - libfuzzer
   - afl
-  - honggfuzz
   - dataflow
 sanitizers:
   - address
-  - memory
   - dataflow
   - undefined
-main_repo: 'https://github.com/uclouvain/openjpeg'
diff --git a/projects/opensc/Dockerfile b/projects/opensc/Dockerfile
index 4393c71..eb8e30e 100644
--- a/projects/opensc/Dockerfile
+++ b/projects/opensc/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER frankmorgner@gmail.com
 RUN apt-get update && apt-get install -y pcscd libccid libpcsclite-dev libssl-dev libreadline-dev autoconf automake build-essential docbook-xsl xsltproc libtool pkg-config zlib1g-dev
 RUN git clone --depth 1 --single-branch --branch master https://github.com/OpenSC/OpenSC opensc
 WORKDIR opensc
diff --git a/projects/opensc/build.sh b/projects/opensc/build.sh
index 84ab497..212d34a 100755
--- a/projects/opensc/build.sh
+++ b/projects/opensc/build.sh
@@ -17,15 +17,12 @@
 
 ./bootstrap
 # FIXME FUZZING_LIBS="$LIB_FUZZING_ENGINE" fails with some missing C++ library, I don't know how to fix this
-./configure --disable-optimization --disable-shared --disable-pcsc --enable-ctapi --enable-fuzzing FUZZING_LIBS="$LIB_FUZZING_ENGINE"
+./configure --disable-shared --disable-pcsc --enable-ctapi --enable-fuzzing FUZZING_LIBS="$LIB_FUZZING_ENGINE"
 make -j4
 
-fuzzerFiles=$(find $SRC/opensc/src/tests/fuzzing/ -name "fuzz_*.c")
+cp src/tests/fuzzing/fuzz_asn1_print $OUT
+cp src/tests/fuzzing/fuzz_asn1_sig_value $OUT
+cp src/tests/fuzzing/fuzz_pkcs15_decode $OUT
+cp src/tests/fuzzing/fuzz_pkcs15_reader $OUT
 
-for F in $fuzzerFiles; do
-    fuzzerName=$(basename $F .c)
-    cp "$SRC/opensc/src/tests/fuzzing/$fuzzerName" $OUT
-    if [ -d "$SRC/opensc/src/tests/fuzzing/corpus/${fuzzerName}" ]; then
-        zip -j $OUT/${fuzzerName}_seed_corpus.zip $SRC/opensc/src/tests/fuzzing/corpus/${fuzzerName}/*
-    fi
-done
+#cp src/tests/fuzzing/fuzz_pkcs15_reader.options $OUT
diff --git a/projects/opensc/project.yaml b/projects/opensc/project.yaml
index 79d794e..f060500 100644
--- a/projects/opensc/project.yaml
+++ b/projects/opensc/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/OpenSC/OpenSC/"
-language: c++
 primary_contact: "frankmorgner@gmail.com"
 auto_ccs:
   - "martin.paljak@gmail.com"
@@ -8,4 +7,6 @@
   - "andreas.schwier@cardcontact.de"
   - "deengert@gmail.com"
   - "jakuje@gmail.com"
-main_repo: 'https://github.com/OpenSC/OpenSC'
+fuzzing_engines:
+  - libfuzzer
+  - honggfuzz
diff --git a/projects/openssh/Dockerfile b/projects/openssh/Dockerfile
index 929d57c..dad44cd 100644
--- a/projects/openssh/Dockerfile
+++ b/projects/openssh/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER djm@mindrot.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN apt-get install -y libz-dev libssl1.0.0 libssl-dev libedit-dev zip
 RUN git clone --depth 1 https://github.com/openssh/openssh-portable openssh
diff --git a/projects/openssh/build.sh b/projects/openssh/build.sh
index 49d1381..6c7e9e2 100755
--- a/projects/openssh/build.sh
+++ b/projects/openssh/build.sh
@@ -15,12 +15,6 @@
 #
 ################################################################################
 
-# Enable null cipher
-sed -i 's/#define CFLAG_INTERNAL.*/#define CFLAG_INTERNAL 0/' cipher.c
-
-# Turn off agent unlock password failure delays
-sed -i 's|\(usleep.*\)|// \1|' ssh-agent.c
-
 # Build project
 autoreconf
 env
@@ -31,50 +25,34 @@
 make -j$(nproc) all
 
 # Build fuzzers
-EXTRA_CFLAGS="-DCIPHER_NONE_AVAIL=1"
 STATIC_CRYPTO="-Wl,-Bstatic -lcrypto -Wl,-Bdynamic"
 
-SK_NULL=ssh-sk-null.o
-SK_DUMMY=sk-dummy.o
+COMMON=ssh-sk-null.o
 
-$CC $CFLAGS $EXTRA_CFLAGS -I. -g -c \
-	regress/misc/fuzz-harness/ssh-sk-null.cc -o ssh-sk-null.o
-$CC $CFLAGS $EXTRA_CFLAGS -I. -g -c \
-	-DSK_DUMMY_INTEGRATE=1 regress/misc/sk-dummy/sk-dummy.c -o sk-dummy.o
+$CXX $CXXFLAGS -std=c++11 -I. -L. -Lopenbsd-compat -g \
+	regress/misc/fuzz-harness/ssh-sk-null.cc -c -o ssh-sk-null.o
 
-$CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
+$CXX $CXXFLAGS -std=c++11 -I. -L. -Lopenbsd-compat -g \
 	regress/misc/fuzz-harness/pubkey_fuzz.cc -o $OUT/pubkey_fuzz \
-	-lssh -lopenbsd-compat $SK_NULL $STATIC_CRYPTO $LIB_FUZZING_ENGINE
-$CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
+	-lssh -lopenbsd-compat $COMMON $STATIC_CRYPTO $LIB_FUZZING_ENGINE
+$CXX $CXXFLAGS -std=c++11 -I. -L. -Lopenbsd-compat -g \
 	regress/misc/fuzz-harness/privkey_fuzz.cc -o $OUT/privkey_fuzz \
-	-lssh -lopenbsd-compat $SK_NULL $STATIC_CRYPTO $LIB_FUZZING_ENGINE
-$CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
+	-lssh -lopenbsd-compat $COMMON $STATIC_CRYPTO $LIB_FUZZING_ENGINE
+$CXX $CXXFLAGS -std=c++11 -I. -L. -Lopenbsd-compat -g \
 	regress/misc/fuzz-harness/sig_fuzz.cc -o $OUT/sig_fuzz \
-	-lssh -lopenbsd-compat $SK_NULL $STATIC_CRYPTO $LIB_FUZZING_ENGINE
-$CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
+	-lssh -lopenbsd-compat $COMMON $STATIC_CRYPTO $LIB_FUZZING_ENGINE
+$CXX $CXXFLAGS -std=c++11 -I. -L. -Lopenbsd-compat -g \
 	regress/misc/fuzz-harness/authopt_fuzz.cc -o $OUT/authopt_fuzz \
-	auth-options.o -lssh -lopenbsd-compat $SK_NULL $STATIC_CRYPTO \
+	auth-options.o -lssh -lopenbsd-compat $COMMON $STATIC_CRYPTO \
 	$LIB_FUZZING_ENGINE
-$CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
+$CXX $CXXFLAGS -std=c++11 -I. -L. -Lopenbsd-compat -g \
 	regress/misc/fuzz-harness/sshsig_fuzz.cc -o $OUT/sshsig_fuzz \
-	sshsig.o -lssh -lopenbsd-compat $SK_NULL $STATIC_CRYPTO \
+	sshsig.o -lssh -lopenbsd-compat $COMMON $STATIC_CRYPTO \
 	$LIB_FUZZING_ENGINE
-$CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
+$CXX $CXXFLAGS -std=c++11 -I. -L. -Lopenbsd-compat -g \
 	regress/misc/fuzz-harness/sshsigopt_fuzz.cc -o $OUT/sshsigopt_fuzz \
-	sshsig.o -lssh -lopenbsd-compat $SK_NULL $STATIC_CRYPTO \
+	sshsig.o -lssh -lopenbsd-compat $COMMON $STATIC_CRYPTO \
 	$LIB_FUZZING_ENGINE
-$CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
-	regress/misc/fuzz-harness/kex_fuzz.cc -o $OUT/kex_fuzz \
-	-lssh -lopenbsd-compat -lz $SK_NULL $STATIC_CRYPTO \
-	$LIB_FUZZING_ENGINE
-
-$CC $CFLAGS $EXTRA_CFLAGS -I. -g -c \
-	regress/misc/fuzz-harness/agent_fuzz_helper.c -o agent_fuzz_helper.o
-$CC $CFLAGS $EXTRA_CFLAGS -I. -g -c -DENABLE_SK_INTERNAL=1 ssh-sk.c -o ssh-sk.o
-$CXX $CXXFLAGS -std=c++11 $EXTRA_CFLAGS -I. -L. -Lopenbsd-compat -g \
-	regress/misc/fuzz-harness/agent_fuzz.cc -o $OUT/agent_fuzz \
-	$SK_DUMMY agent_fuzz_helper.o ssh-sk.o -lssh -lopenbsd-compat -lz \
-	$STATIC_CRYPTO $LIB_FUZZING_ENGINE
 
 # Prepare seed corpora
 CASES="$SRC/openssh-fuzz-cases"
@@ -84,5 +62,3 @@
 (set -e ; cd ${CASES}/authopt ; zip -r $OUT/authopt_fuzz_seed_corpus.zip .)
 (set -e ; cd ${CASES}/sshsig ; zip -r $OUT/sshsig_fuzz_seed_corpus.zip .)
 (set -e ; cd ${CASES}/sshsigopt ; zip -r $OUT/sshsigopt_fuzz_seed_corpus.zip .)
-(set -e ; cd ${CASES}/kex ; zip -r $OUT/kex_fuzz_seed_corpus.zip .)
-(set -e ; cd ${CASES}/agent ; zip -r $OUT/agent_fuzz_seed_corpus.zip .)
diff --git a/projects/openssh/project.yaml b/projects/openssh/project.yaml
index 53ac442..814eefb 100644
--- a/projects/openssh/project.yaml
+++ b/projects/openssh/project.yaml
@@ -1,7 +1,5 @@
 homepage: https://www.openssh.com/
-language: c++
 primary_contact: "djm@mindrot.org"
 auto_ccs:
         - "dtucker@dtucker.net.au"
         - "djm@google.com"
-main_repo: 'https://github.com/openssh/openssh-portable'
diff --git a/projects/openssl/Dockerfile b/projects/openssl/Dockerfile
index ae28436..7dd8360 100644
--- a/projects/openssl/Dockerfile
+++ b/projects/openssl/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kurt@roeckx.be
 RUN apt-get update && apt-get install -y make
 RUN git clone --depth 1 https://github.com/openssl/openssl.git
 WORKDIR openssl
diff --git a/projects/openssl/project.yaml b/projects/openssl/project.yaml
index d0b35c6..348bc82 100644
--- a/projects/openssl/project.yaml
+++ b/projects/openssl/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.openssl.org/"
-language: c++
 primary_contact: "kurt@roeckx.be"
 auto_ccs: 
  - "openssl-security@openssl.org"
@@ -11,4 +10,3 @@
  - memory:
     experimental: True
  - undefined
-main_repo: 'https://github.com/openssl/openssl.git'
diff --git a/projects/openthread/Dockerfile b/projects/openthread/Dockerfile
index 4ef0e6e..829cadc 100644
--- a/projects/openthread/Dockerfile
+++ b/projects/openthread/Dockerfile
@@ -15,8 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jonhui@nestlabs.com
 
-RUN apt-get update && apt-get install -y cmake ninja-build
+RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 https://github.com/openthread/openthread
 
 WORKDIR openthread
diff --git a/projects/openthread/build.sh b/projects/openthread/build.sh
index 0195084..3cd7851 100755
--- a/projects/openthread/build.sh
+++ b/projects/openthread/build.sh
@@ -15,4 +15,53 @@
 #
 ################################################################################
 
-bash tests/fuzz/oss-fuzz-build
+./bootstrap
+
+export CPPFLAGS="                                     \
+    -DOPENTHREAD_CONFIG_BORDER_AGENT_ENABLE=1         \
+    -DOPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE=1        \
+    -DOPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE=1      \
+    -DOPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE=1      \
+    -DOPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE=1    \
+    -DOPENTHREAD_CONFIG_COAP_API_ENABLE=1             \
+    -DOPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE=1      \
+    -DOPENTHREAD_CONFIG_COMMISSIONER_ENABLE=1         \
+    -DOPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE=1         \
+    -DOPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE=1         \
+    -DOPENTHREAD_CONFIG_DIAG_ENABLE=1                 \
+    -DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1           \
+    -DOPENTHREAD_CONFIG_ECDSA_ENABLE=1                \
+    -DOPENTHREAD_CONFIG_LEGACY_ENABLE=1               \
+    -DOPENTHREAD_CONFIG_JAM_DETECTION_ENABLE=1        \
+    -DOPENTHREAD_CONFIG_JOINER_ENABLE=1               \
+    -DOPENTHREAD_CONFIG_LINK_RAW_ENABLE=1             \
+    -DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1           \
+    -DOPENTHREAD_CONFIG_NCP_UART_ENABLE=1             \
+    -DOPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE=1     \
+    -DOPENTHREAD_CONFIG_SNTP_CLIENT_ENABLE=1          \
+    -DOPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE=1  \
+    -DOPENTHREAD_CONFIG_TMF_NETWORK_DIAG_MTD_ENABLE=1 \
+    -DOPENTHREAD_CONFIG_UDP_FORWARD_ENABLE=1"
+
+./configure                             \
+    --enable-fuzz-targets               \
+    --enable-cli                        \
+    --enable-ftd                        \
+    --enable-joiner                     \
+    --enable-ncp                        \
+    --disable-docs
+
+make -j$(nproc)
+
+find . -name '*-fuzzer' -exec cp -v '{}' $OUT ';'
+find . -name '*-fuzzer.dict' -exec cp -v '{}' $OUT ';'
+find . -name '*-fuzzer.options' -exec cp -v '{}' $OUT ';'
+
+fuzzers=$(find tests/fuzz -name "*-fuzzer")
+for f in $fuzzers; do
+    fuzzer=$(basename $f -fuzzer)
+
+    if [ -d "tests/fuzz/corpora/${fuzzer}" ]; then
+	zip -j $OUT/$(basename $f)_seed_corpus.zip tests/fuzz/corpora/${fuzzer}/*
+    fi
+done
diff --git a/projects/openthread/project.yaml b/projects/openthread/project.yaml
index c772d3b..5709f4b 100644
--- a/projects/openthread/project.yaml
+++ b/projects/openthread/project.yaml
@@ -1,12 +1,11 @@
 homepage: "https://github.com/openthread/openthread"
-language: c++
 primary_contact: "jonhui@google.com"
 fuzzing_engines:
   - libfuzzer
   - afl
   - honggfuzz
+  - dataflow
 sanitizers:
   - address
   - undefined
   - dataflow
-main_repo: 'https://github.com/openthread/openthread'
diff --git a/projects/openvswitch/Dockerfile b/projects/openvswitch/Dockerfile
index f7c149f..b7da141 100644
--- a/projects/openvswitch/Dockerfile
+++ b/projects/openvswitch/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER blp@ovn.org
 RUN apt-get update && apt-get install -y make autoconf automake \
     libtool python python3-pip \
     libz-dev libssl-dev libssl1.0.0 wget
diff --git a/projects/openvswitch/project.yaml b/projects/openvswitch/project.yaml
index 4ee3e96..9cfd31b 100644
--- a/projects/openvswitch/project.yaml
+++ b/projects/openvswitch/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.openvswitch.org"
-language: c++
 primary_contact: "blp@ovn.org"
 auto_ccs:
   - "jpettit@ovn.org"
@@ -7,10 +6,7 @@
   - "pkusunyifeng@gmail.com"
   - "bshas3@gmail.com"
   - "cpp.code.lv@gmail.com"
-  - "u9012063@gmail.com"
-  - "ilya.maximets@gmail.com"
 sanitizers:
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/openvswitch/ovs.git'
diff --git a/projects/opus/Dockerfile b/projects/opus/Dockerfile
index 717b882..bba1237 100644
--- a/projects/opus/Dockerfile
+++ b/projects/opus/Dockerfile
@@ -15,10 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER flim@google.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool wget
 
-RUN git clone https://gitlab.xiph.org/xiph/opus.git
+RUN git clone https://git.xiph.org/opus.git
 RUN wget https://opus-codec.org/static/testvectors/opus_testvectors.tar.gz
 WORKDIR opus
 COPY build.sh $SRC/
-COPY *.c tests/
diff --git a/projects/opus/build.sh b/projects/opus/build.sh
index 8a495f9..ae86054 100644
--- a/projects/opus/build.sh
+++ b/projects/opus/build.sh
@@ -16,15 +16,11 @@
 ##############################################################################
 set -eu
 
-FUZZERS="opus_decode_fuzzer opus_multi_fuzzer"
+FUZZERS="opus_decode_fuzzer"
 BUILDS=(floating fixed)
 
 tar xvf $SRC/opus_testvectors.tar.gz
 
-if [[ $CFLAGS = *sanitize=memory* ]]; then
-  CFLAGS+=" -D_FORTIFY_SOURCE=0"
-fi
-
 ./autogen.sh
 
 for build in "${BUILDS[@]}"; do
@@ -37,8 +33,8 @@
       ;;
   esac
 
-  ./configure $extra_args --enable-static --disable-shared --disable-doc \
-    --enable-assertions
+  ./configure $extra_args --enable-static --disable-shared --disable-doc
+  make clean
   make -j$(nproc)
 
   # Build all fuzzers
@@ -46,7 +42,6 @@
     $CC $CFLAGS -c -Iinclude \
       tests/$fuzzer.c \
       -o $fuzzer.o
-
     $CXX $CXXFLAGS \
       $fuzzer.o \
       -o $OUT/${fuzzer}_${build} \
@@ -54,8 +49,7 @@
 
     # Setup the .options and test corpus zip files using the corresponding
     # fuzzer's name
-    [ -f tests/$fuzzer.options ] \
-        && cp tests/$fuzzer.options $OUT/${fuzzer}_${build}.options
+    cp tests/$fuzzer.options $OUT/${fuzzer}_${build}.options
     zip -r $OUT/${fuzzer}_${build}_seed_corpus.zip opus_testvectors/
   done
 done
diff --git a/projects/opus/opus_multi_fuzzer.c b/projects/opus/opus_multi_fuzzer.c
deleted file mode 100644
index de63bfb..0000000
--- a/projects/opus/opus_multi_fuzzer.c
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stddef.h>
-#include <stdlib.h>
-
-#include "opus.h"
-#include "opus_multistream.h"
-
-struct TocInfo {
-  opus_int32 frequency;  // in [Hz*1000]
-  int channels;          // number of channels; either 1 or 2
-  int frame_len_x2;      // in [ms*2]. x2 is to avoid float value of 2.5 ms
-};
-
-void extractTocInfo(const uint8_t toc, struct TocInfo *const info) {
-  const int frame_lengths_x2[3][4] = {
-    {20, 40, 80, 120},
-    {20, 40, 20, 40},
-    {5, 10, 20, 40}
-  };
-
-  info->channels = toc & 4 ? 2 : 1;
-
-  const uint8_t config = toc >> 3;
-
-  int len_index;
-  if (config < 12) {
-    len_index = 0;
-  } else if (config < 16) {
-    len_index = 1;
-  } else {
-    len_index = 2;
-  }
-  info->frame_len_x2 = frame_lengths_x2[len_index][config & 3];
-
-  switch (config >> 2) {
-    case 0: info->frequency = 8; break;
-    case 1: info->frequency = 12; break;
-    case 2: info->frequency = 16; break;
-    case 3: info->frequency = (config < 14) ? 24 : 48; break;
-    case 4: info->frequency = 8; break;
-    case 5: info->frequency = 16; break;
-    case 6: info->frequency = 24; break;
-    default: info->frequency = 48; break;
-  }
-}
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  if (size < 3 || size > 1000000) return 0;
-
-  // Using last byte as a number of streams (instead of rand_r). Each stream
-  // should be at least 3 bytes long hence divmod.
-  int streams = 1 + data[size - 1] % (size / 3);
-  if (streams > 255) streams = 255;
-  unsigned char *mapping = (unsigned char*) malloc(sizeof(unsigned char)*streams);
-  if (!mapping) return 0;
-
-  for (int i = 0; i < streams; ++i) {
-    mapping[i] = i;
-  }
-
-  struct TocInfo info;
-  extractTocInfo(*data, &info);
-
-  int error = 0;
-  OpusMSDecoder *const decoder = opus_multistream_decoder_create(
-      info.frequency * 1000, streams, streams, 0, mapping, &error);
-
-  if (!decoder || error) return 0;
-
-  const int frame_size = (info.frequency * info.frame_len_x2) / 2;
-  opus_int16 *pcm = (opus_int16*) malloc(sizeof(opus_int16)*frame_size*streams);
-  if (!pcm) goto exit;
-
-  // opus_decode wants us to use its return value, but we don't really care.
-  const int foo =
-      opus_multistream_decode(decoder, data, size, pcm, frame_size, 0);
-  (void)foo;
-
-  opus_multistream_decoder_destroy(decoder);
-
-  free(pcm);
-
-exit:
-  free(mapping);
-  return 0;
-}
diff --git a/projects/opus/project.yaml b/projects/opus/project.yaml
index de5d7e3..bfadfe3 100644
--- a/projects/opus/project.yaml
+++ b/projects/opus/project.yaml
@@ -1,18 +1,10 @@
 homepage: "https://opus-codec.org/"
-language: c++
 primary_contact: "jmvalin@jmvalin.ca"
 auto_ccs:
   - "flim@google.com"
 vendor_ccs:
   - "twsmith@mozilla.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
-  - undefined
   - memory
-  - dataflow
-main_repo: 'https://gitlab.xiph.org/xiph/opus.git'
+  - undefined
diff --git a/projects/opusfile/Dockerfile b/projects/opusfile/Dockerfile
deleted file mode 100644
index 452f301..0000000
--- a/projects/opusfile/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y autoconf automake git libogg0 libogg-dev libopus0 libopus-dev libssl-dev libtool make pkg-config
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/opusfile
-WORKDIR opusfile
-COPY build.sh *.c $SRC/
diff --git a/projects/opusfile/build.sh b/projects/opusfile/build.sh
deleted file mode 100755
index 038372b..0000000
--- a/projects/opusfile/build.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-./autogen.sh
-./configure --enable-static --disable-shared --disable-doc --enable-assertions
-make -j$(nproc)
-ldconfig
-
-for fuzzer in $SRC/*_fuzzer.c; do
-  fuzzer_basename=$(basename -s .c $fuzzer)
-
-  $CC $CFLAGS -c \
-      -I $SRC -I /usr/include/opus -I /usr/include/ogg \
-      $fuzzer -o ${fuzzer_basename}.o
-
-  $CXX $CXXFLAGS \
-      ${fuzzer_basename}.o \
-      -o $OUT/${fuzzer_basename} $LIB_FUZZING_ENGINE \
-      $SRC/opusfile/.libs/libopusfile.a -l:libopus.a -l:libogg.a
-done
diff --git a/projects/opusfile/opusfile_fuzzer.c b/projects/opusfile/opusfile_fuzzer.c
deleted file mode 100644
index db162aa..0000000
--- a/projects/opusfile/opusfile_fuzzer.c
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <errno.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "opusfile/config.h"
-#include "opusfile/include/opusfile.h"
-
-// Opusfile fuzzing wrapper to help with automated fuzz testing. It's based on
-// https://github.com/xiph/opusfile/blob/master/examples/opusfile_example.c
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  int ret, tmp;
-  OggOpusFile *of = op_open_memory(data, size, &ret);
-  if (!of)
-    return 0;
-
-  op_link_count(of);
-
-  int link_index = -1;
-  op_pcm_total(of, link_index);
-  op_raw_total(of, link_index);
-  op_pcm_tell(of);
-  op_raw_tell(of);
-
-  ogg_int64_t total_sample_count = 0;
-  const int pcm_size = 120 * 48 * 2; // 120ms/ch@48kHz is recommended
-  opus_int16 pcm[pcm_size];
-  for (;;) {
-    ret = op_read_stereo(of, pcm, pcm_size);
-    if (ret < 0) {
-      break;
-    }
-
-    if (op_current_link(of) != link_index) {
-      link_index = op_current_link(of);
-      op_pcm_total(of, link_index);
-      op_raw_total(of, link_index);
-      op_pcm_tell(of);
-      op_raw_tell(of);
-      op_bitrate_instant(of);
-      tmp = op_head(of, link_index)->version;
-
-      const OpusTags *tags = op_tags(of, link_index);
-      for (int i = 0; i < tags->comments; ++i) {
-        // Note: The compare also touches memory allocated for user_comments[i].
-        // This is a desired side effect and should be kept even if this
-        // comparison is removed.
-        if (opus_tagncompare("METADATA_BLOCK_PICTURE", 22,
-                             tags->user_comments[i]) == 0) {
-          OpusPictureTag pic;
-          if (opus_picture_tag_parse(&pic, tags->user_comments[i]) >= 0) {
-            opus_picture_tag_clear(&pic);
-          }
-        }
-      }
-
-      if (tags->vendor) {
-        tmp = tags->vendor[0];
-      }
-
-      int binary_suffix_len;
-      opus_tags_get_binary_suffix(tags, &binary_suffix_len);
-    }
-
-    if (ret == 0) {
-      break;
-    }
-
-    total_sample_count += ret;
-  }
-
-  if (total_sample_count > 0) {
-    // Try random-access PCM reads. The number of tests is arbitrary and the
-    // offset is designed to be pseudo-random, but deterministic - this is
-    // implemented using Lehmer RNG with a minor hack that probably breaks some
-    // properties of the RNG (but that is acceptable).
-    ogg_int64_t rng_seed = 1307832949LL;
-    for (int i = 0; i < 32; ++i) {
-      // Derive the next deterministic offset to test and iterate the RNG.
-      rng_seed = (rng_seed * 279470273LL);
-      const ogg_int64_t offset = rng_seed % total_sample_count;
-      rng_seed = rng_seed % 4294967291LL;
-
-      if (op_pcm_seek(of, offset) == 0) {
-        tmp = op_read_stereo(of, pcm, pcm_size);
-      }
-    }
-  }
-
-  op_free(of);
-  return 0;
-}
diff --git a/projects/opusfile/project.yaml b/projects/opusfile/project.yaml
deleted file mode 100644
index 604d127..0000000
--- a/projects/opusfile/project.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-homepage: "https://opus-codec.org/"
-language: c
-primary_contact: "jmvalin@jmvalin.ca"
diff --git a/projects/orbit/Dockerfile b/projects/orbit/Dockerfile
deleted file mode 100644
index e4f01c8..0000000
--- a/projects/orbit/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y m4 libglu1-mesa-dev mesa-common-dev \
-  libxmu-dev libxi-dev pkg-config libxxf86vm-dev patchelf
-
-ADD https://github.com/google/orbit/archive/main.tar.gz $SRC/
-RUN mkdir -p $SRC/orbit && tar -xzf $SRC/main.tar.gz \
-  -C $SRC/orbit/ --strip-components 1; rm -f $SRC/main.tar.gz
-WORKDIR $SRC/orbit
-COPY build.sh $SRC/
-
-# That's a hack. The service needs to have a more recent kernel than what the
-# container provides. But this code is not going to be called from the fuzz-
-# tests, so we should be fine here.
-ADD https://raw.githubusercontent.com/torvalds/linux/v5.7/include/uapi/linux/perf_event.h /usr/include/linux/perf_event.h
diff --git a/projects/orbit/build.sh b/projects/orbit/build.sh
deleted file mode 100755
index a90185f..0000000
--- a/projects/orbit/build.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-#builds project
-export PATH="$HOME/.local/bin:$PATH"
-$SRC/orbit/bootstrap-orbit.sh --force-public-remotes --dont-compile --ignore-system-requirements
-
-conan profile new default --detect
-conan profile update settings.compiler.libcxx=libc++ default
-conan profile update settings.compiler.fpo=False default
-conan profile update settings.compiler.address_sanitizer=True default
-conan profile update settings.compiler.fuzzer_sanitizer=True default
-
-sed -i 's/\[settings\]/include(libfuzzer_base)\n\n[settings]/' ~/.conan/profiles/default
-echo "CFLAGS=\$BASE_CFLAGS" >> ~/.conan/profiles/default
-echo "CXXFLAGS=\$BASE_CXXFLAGS" >> ~/.conan/profiles/default
-echo "LDFLAGS=\$BASE_LDFLAGS" >> ~/.conan/profiles/default
-echo "OrbitProfiler:CFLAGS=\$BASE_CFLAGS $CFLAGS" >> ~/.conan/profiles/default
-echo "OrbitProfiler:CXXFLAGS=\$BASE_CFLAGS $CXXFLAGS" >> ~/.conan/profiles/default
-
-# The following two lines is what should theoretically be correct. The workaround + explanation follows
-# echo "llvm:CFLAGS=\$BASE_CFLAGS $CFLAGS" >> ~/.conan/profiles/default
-# echo "llvm:CXXFLAGS=\$BASE_CXXFLAGS $CXXFLAGS" >> ~/.conan/profiles/default
-
-# The $CFLAGS and $CXXFLAGS contains "-fsanitize=address -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link"
-# when this script is called. Since llvm currently cannot be build with address sanitizers, 
-# the flags are set manually here.
-echo "llvm:CFLAGS=\$BASE_CFLAGS -O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" >> ~/.conan/profiles/default
-echo "llvm:CXXFLAGS=\$BASE_CXXFLAGS -O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -stdlib=libc++" >> ~/.conan/profiles/default
-
-$SRC/orbit/build.sh default
-
-function copy_fuzzer {
-  mkdir -p "$OUT/lib"
-  cp -v "$1" "$OUT/"
-  patchelf --set-rpath '$ORIGIN/lib' "$OUT/$(basename "$1")"
-
-  ldd "$1" | grep '=>' | cut -d ' ' -f 3 | while read lib; do
-    if [[ -f $lib ]]; then
-      cp -v "$lib" "$OUT/lib/"
-      patchelf --set-rpath '$ORIGIN' "$OUT/lib/$(basename "$lib")"
-    fi
-  done
-}
-
-find $SRC/orbit/build_default/bin -name \*Fuzzer | while read fuzzer; do
-  copy_fuzzer "$fuzzer"
-done
diff --git a/projects/orbit/project.yaml b/projects/orbit/project.yaml
deleted file mode 100644
index 244b4b4..0000000
--- a/projects/orbit/project.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-homepage: "https://github.com/google/orbit"
-language: c++
-primary_contact: "hebecker@google.com"
-auto_ccs:
-  - "orbitprofiler-eng+fuzztests@google.com"
-  - "antonrohr@google.com"
-  - "dfenner@google.com"
-  - "dimitry@google.com"
-  - "dpallotti@google.com"
-  - "freichl@google.com"
-  - "irinashkviro@google.com"
-  - "karupayun@google.com"
-  - "kuebler@google.com"
-  - "pierric@google.com"
-  - "wotzlaw@google.com"
-
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
diff --git a/projects/osquery/Dockerfile b/projects/osquery/Dockerfile
index c1c8ff5..58e73df 100755
--- a/projects/osquery/Dockerfile
+++ b/projects/osquery/Dockerfile
@@ -15,9 +15,27 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER theopolis@osquery.io
 RUN apt-get update
 RUN apt-get install -y --no-install-recommends python python3 bison flex make wget xz-utils libunwind-dev
 
+# Install specific git version.
+RUN export GIT_VER=2.21.0 \
+ && apt-get install -y libz-dev gettext nano libssl-dev autoconf libcurl4-openssl-dev \
+ && wget https://github.com/git/git/archive/v$GIT_VER.tar.gz \
+ && tar xf v$GIT_VER.tar.gz \
+ && cd git-$GIT_VER/ \
+ && make configure \
+ && ./configure --with-openssl \
+ && make -j4 install \
+ && cd .. \
+ && rm -rf v$GIT_VER.tar.gz git-$GIT_VER
+
+# Installer newer cmake
+RUN wget -q https://github.com/Kitware/CMake/releases/download/v3.14.6/cmake-3.14.6-Linux-x86_64.tar.gz \
+ && tar xf cmake-3.14.6-Linux-x86_64.tar.gz -C /usr/local --strip 1 \
+ && rm cmake-3.14.6-Linux-x86_64.tar.gz
+
 RUN git clone --depth 1 https://github.com/osquery/osquery osquery
 
 WORKDIR osquery
diff --git a/projects/osquery/build.sh b/projects/osquery/build.sh
index 6b4ae9b..b5b31d6 100755
--- a/projects/osquery/build.sh
+++ b/projects/osquery/build.sh
@@ -25,16 +25,17 @@
 
 pushd "${SRC}/${PROJECT}"
 
+# Prefer shared libs
+sed -i 's/CMAKE_LINK_SEARCH_START_STATIC ON/CMAKE_LINK_SEARCH_START_STATIC OFF/g' cmake/flags.cmake
+sed -i 's/CMAKE_LINK_SEARCH_END_STATIC ON/CMAKE_LINK_SEARCH_END_STATIC OFF/g' cmake/flags.cmake
+
 mkdir build && pushd build
 
 cmake \
   -DOSQUERY_VERSION:string=0.0.0-fuzz \
   -DOSQUERY_ENABLE_ADDRESS_SANITIZER:BOOL=ON \
-  -DOSQUERY_BUILD_FUZZERS:BOOL=ON \
-  -DOSQUERY_IGNORE_CMAKE_MAX_VERSION_CHECK:BOOL=ON \
-  -DOSQUERY_BUILD_AWS:BOOL=OFF \
+  -DOSQUERY_ENABLE_FUZZER_SANITIZERS:BOOL=ON \
   ..
-
 cmake \
   "-DCMAKE_EXE_LINKER_FLAGS=${LIB_FUZZING_ENGINE} -Wl,-rpath,'\$ORIGIN/lib'" \
   ..
diff --git a/projects/osquery/project.yaml b/projects/osquery/project.yaml
index d0944c1..db5f8bb 100644
--- a/projects/osquery/project.yaml
+++ b/projects/osquery/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://osquery.io"
-language: c++
 primary_contact: "osquery@osquery.io"
 auto_ccs:
   - "theopolis@osquery.io"
@@ -15,5 +14,3 @@
  - address
 fuzzing_engines:
  - libfuzzer
- - afl
-main_repo: 'https://github.com/osquery/osquery'
diff --git a/projects/ots/Dockerfile b/projects/ots/Dockerfile
index 6ab4d86..d86342c 100644
--- a/projects/ots/Dockerfile
+++ b/projects/ots/Dockerfile
@@ -15,8 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y python3-pip && \
-    pip3 install meson==0.55.2 ninja
+MAINTAINER mmoroz@chromium.org
+RUN apt-get update && apt-get install -y python3-pip pkg-config zlib1g-dev && \
+    pip3 install meson==0.52.0 ninja
 RUN git clone --depth 1 https://github.com/khaledhosny/ots.git
 WORKDIR ots
+RUN git submodule update --init --recursive
 COPY build.sh ots-fuzzer.* $SRC/
diff --git a/projects/ots/build.sh b/projects/ots/build.sh
index 8627188..27ead8f 100755
--- a/projects/ots/build.sh
+++ b/projects/ots/build.sh
@@ -23,8 +23,7 @@
 mkdir -p $build
 
 # Configure the project.
-meson -Dfuzzer_ldflags="$(echo $LIB_FUZZING_ENGINE)" \
-      --wrap-mode=forcefallback \
+meson -Dfuzzer_ldflags=$LIB_FUZZING_ENGINE \
       $build \
    || (cat build/meson-logs/meson-log.txt && false)
 
diff --git a/projects/ots/project.yaml b/projects/ots/project.yaml
index 559eed3..b70de65 100644
--- a/projects/ots/project.yaml
+++ b/projects/ots/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/khaledhosny/ots"
-language: c++
 primary_contact: "dr.khaled.hosny@gmail.com"
 auto_ccs:
   - "kevin899@gmail.com"
@@ -8,16 +7,3 @@
   - "jmuizelaar@mozilla.com"
   - "lsalzman@mozilla.com"
   - "twsmith@mozilla.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
-sanitizers:
-  - address
-  - undefined
-  - memory
-architectures:
-  - x86_64
-  - i386
-main_repo: 'https://github.com/khaledhosny/ots.git'
diff --git a/projects/p11-kit/Dockerfile b/projects/p11-kit/Dockerfile
deleted file mode 100644
index 5ae7858..0000000
--- a/projects/p11-kit/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config libtasn1-6-dev libffi-dev
-RUN echo deb http://archive.ubuntu.com/ubuntu/ bionic main >> /etc/apt/sources.list
-RUN apt-get update && apt-get install -y -t bionic gettext autopoint
-RUN git clone --depth 1 https://github.com/p11-glue/p11-kit.git p11-kit
-WORKDIR p11-kit
-COPY build.sh $SRC/
diff --git a/projects/p11-kit/build.sh b/projects/p11-kit/build.sh
deleted file mode 100755
index c15f9d5..0000000
--- a/projects/p11-kit/build.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-./autogen.sh
-make -j$(nproc) oss-fuzz
-
-cd fuzz
-for dir in *.in; do
-    fuzzer=$(basename $dir .in)_fuzzer
-    zip -rj "$OUT/${fuzzer}_seed_corpus.zip" "${dir}/"
-done
diff --git a/projects/p11-kit/project.yaml b/projects/p11-kit/project.yaml
deleted file mode 100644
index 55139b8..0000000
--- a/projects/p11-kit/project.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-homepage: https://p11-glue.github.io/p11-glue/p11-kit.html
-main_repo: https://github.com/p11-glue/p11-kit
-language: c
-primary_contact: "daiki.ueno@gmail.com"
diff --git a/projects/p9/Dockerfile b/projects/p9/Dockerfile
deleted file mode 100644
index fbbe65a..0000000
--- a/projects/p9/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-MAINTAINER s@sevki.org
-
-RUN go get -v -u github.com/hugelgupf/p9/...
-
-WORKDIR /root/go/src/github.com/hugelgupf/p9
-
-COPY build.sh $SRC/
diff --git a/projects/p9/build.sh b/projects/p9/build.sh
deleted file mode 100644
index 9e194aa..0000000
--- a/projects/p9/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-compile_go_fuzzer github.com/hugelgupf/p9/p9 Fuzz p9_fuzzer
diff --git a/projects/p9/project.yaml b/projects/p9/project.yaml
deleted file mode 100644
index bae55cb..0000000
--- a/projects/p9/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/hugelgupf/p9"
-language: go
-primary_contact: "harvey@googlegroups.com"
-auto_ccs:
-  - "s@sevki.org"
-  - "c@chrisko.ch"
-fuzzing_engines:
-- libfuzzer
-sanitizers:
-- address
-main_repo: 'https://github.com/hugelgupf/p9'
diff --git a/projects/pcapplusplus/Dockerfile b/projects/pcapplusplus/Dockerfile
deleted file mode 100644
index 8d93b53..0000000
--- a/projects/pcapplusplus/Dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && apt-get install -y gcc g++ make cmake flex bison
-RUN git clone https://github.com/seladb/PcapPlusPlus PcapPlusPlus
-
-# Get tcpdump's test pcaps as seed corpus
-RUN git clone --depth=1 https://github.com/the-tcpdump-group/tcpdump.git tcpdump
-RUN git clone --depth=1 https://github.com/the-tcpdump-group/libpcap.git libpcap
-
-WORKDIR PcapPlusPlus
-
-COPY build.sh $SRC
-COPY *.options $SRC
diff --git a/projects/pcapplusplus/build.sh b/projects/pcapplusplus/build.sh
deleted file mode 100644
index a30f4c3..0000000
--- a/projects/pcapplusplus/build.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash -eu
-#
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-TARGETS_DIR=Tests/Fuzzers/Bin
-
-# Build libpcap
-cd $SRC/libpcap/
-./configure
-make -j$(nproc)
-
-# Build PcapPlusPlus linking statically against the built libpcap
-cd $SRC/PcapPlusPlus
-./configure-fuzzing.sh --libpcap-static-lib-dir $SRC/libpcap/
-make clean
-make -j$(nproc) fuzzers
-
-# Copy target and options
-cp $TARGETS_DIR/FuzzTarget $OUT
-cp $(ldd $OUT/FuzzTarget | cut -d" " -f3) $OUT
-cp $SRC/default.options $OUT/FuzzTarget.options
-
-# Copy corpora
-cd $SRC/tcpdump
-zip -jr FuzzTarget_seed_corpus.zip tests/*.pcap
-cp FuzzTarget_seed_corpus.zip $OUT/
diff --git a/projects/pcapplusplus/default.options b/projects/pcapplusplus/default.options
deleted file mode 100644
index eb7fde2..0000000
--- a/projects/pcapplusplus/default.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-close_fd_mask=3
diff --git a/projects/pcapplusplus/project.yaml b/projects/pcapplusplus/project.yaml
deleted file mode 100644
index 993b29c..0000000
--- a/projects/pcapplusplus/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/seladb/PcapPlusPlus"
-language: c++
-primary_contact: "pcapplusplus@gmail.com"
-auto_ccs:
-  - "zlowram@gmail.com"
-sanitizers:
-  - address
-  - memory
-  - undefined
-main_repo: 'https://github.com/seladb/PcapPlusPlus'
diff --git a/projects/pcl/Dockerfile b/projects/pcl/Dockerfile
deleted file mode 100644
index 740a3b3..0000000
--- a/projects/pcl/Dockerfile
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make cmake autoconf \
-    automake libtool gettext pkg-config build-essential \
-    mercurial wget libeigen3-dev libflann-dev python python-dev 
-    
-# VTK deps
-RUN apt-get update && apt-get install -y \
-    libavcodec-dev libavformat-dev libavutil-dev libboost-dev \
-    libdouble-conversion-dev libeigen3-dev libexpat1-dev \
-    libfontconfig-dev libfreetype6-dev libgdal-dev libglew-dev \
-    libhdf5-dev libjpeg-dev libjsoncpp-dev liblz4-dev liblzma-dev \
-    libnetcdf-dev libnetcdf-cxx-legacy-dev libogg-dev libpng-dev \
-    libpython3-dev libqt5opengl5-dev libqt5x11extras5-dev libsqlite3-dev \
-    libswscale-dev libtheora-dev libtiff-dev libxml2-dev libxt-dev \
-    qtbase5-dev qttools5-dev zlib1g-dev
-
-# Install and build boost from source so we can have it use libc++
-RUN wget https://sourceforge.net/projects/boost/files/boost/1.70.0/boost_1_70_0.tar.gz && \
-    tar xzf boost_1_70_0.tar.gz && \
-    cd boost_1_70_0 && \
-    ./bootstrap.sh --with-toolset=clang && \
-    ./b2 clean && \
-    ./b2 toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" -j$(nproc) install && \
-    cd .. && \
-    rm -rf boost_1_70_0]
-
-RUN git clone --depth 1 https://github.com/PointCloudLibrary/pcl
-COPY build.sh $SRC/
-WORKDIR $SRC/
diff --git a/projects/pcl/build.sh b/projects/pcl/build.sh
deleted file mode 100755
index c08aeac..0000000
--- a/projects/pcl/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-chmod +x $SRC/pcl/test/fuzz/build.sh
-$SRC/pcl/test/fuzz/build.sh
diff --git a/projects/pcl/project.yaml b/projects/pcl/project.yaml
deleted file mode 100644
index fdb4cb1..0000000
--- a/projects/pcl/project.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-main_repo: "https://github.com/pointcloudlibrary/pcl"
-homepage: "http://pointclouds.org"
-language: c++
-primary_contact: "kunal.tyagi.3.1994@gmail.com"
-auto_ccs:
-  - "tyagi.kunal@live.com"
-  - "larshg@gmail.com"
-  - "markus95.vieth@gmail.com"
-  - "k.koide.aist@gmail.com"
diff --git a/projects/pcre2/Dockerfile b/projects/pcre2/Dockerfile
index a979103..72e8a34 100644
--- a/projects/pcre2/Dockerfile
+++ b/projects/pcre2/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kcc@google.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool subversion
 
 RUN svn co svn://vcs.exim.org/pcre2/code/trunk pcre2
diff --git a/projects/pcre2/project.yaml b/projects/pcre2/project.yaml
index 51b625f..fbe4a4c 100644
--- a/projects/pcre2/project.yaml
+++ b/projects/pcre2/project.yaml
@@ -1,9 +1,9 @@
 homepage: "http://www.pcre.org/"
-language: c++
 primary_contact: "philip.hazel@gmail.com"
 fuzzing_engines:
   - libfuzzer
   - afl
+  - honggfuzz
   - dataflow
 sanitizers:
   - address
diff --git a/projects/perfetto/Dockerfile b/projects/perfetto/Dockerfile
index 1ab2c35..d733a95 100644
--- a/projects/perfetto/Dockerfile
+++ b/projects/perfetto/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER fmayer@google.com
 
 RUN apt-get update
 RUN apt-get -y install python curl
diff --git a/projects/perfetto/project.yaml b/projects/perfetto/project.yaml
index 8984193..dcdd13c 100644
--- a/projects/perfetto/project.yaml
+++ b/projects/perfetto/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://perfetto.dev"
-language: c++
 primary_contact: "fmayer@google.com"
 auto_ccs:
   - "hjd@google.com"
@@ -7,20 +6,14 @@
   - "perfetto-oss-fuzz@google.com"
   - "primiano@google.com"
   - "rsavitski@google.com"
-  - "eseckler@google.com"
+  - "taylori@google.com"
 vendor_ccs:
   - bcreasey@google.com
   - hamzeh@google.com
   - geuteneier@google.com
   - hollyhall@google.com
   - mikelogan@google.com
-  - maverickm@google.com
-  - warrenwright@google.com
 fuzzing_engines:
   - libfuzzer
-  - honggfuzz
-  - afl
 sanitizers:
   - address
-  - undefined
-main_repo: 'https://android.googlesource.com/platform/external/perfetto/'
diff --git a/projects/pffft/Dockerfile b/projects/pffft/Dockerfile
index 9442459..61e69f1 100644
--- a/projects/pffft/Dockerfile
+++ b/projects/pffft/Dockerfile
@@ -15,8 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER alessiob@webrtc.org
 RUN apt-get update && apt-get install -y mercurial python-numpy
-RUN git clone https://bitbucket.org/jpommier/pffft $SRC/pffft
+RUN hg clone https://bitbucket.org/jpommier/pffft $SRC/pffft
 WORKDIR pffft
 COPY build.sh $SRC
 # TODO(alessiob): Move the fuzzing source code to pffft upstream.
diff --git a/projects/pffft/project.yaml b/projects/pffft/project.yaml
index b8d101d..568a579 100644
--- a/projects/pffft/project.yaml
+++ b/projects/pffft/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://bitbucket.org/jpommier/pffft"
-language: c++
 primary_contact: "pommier@modartt.com"
 auto_ccs:
   - "alessiob@webrtc.org"
@@ -7,7 +6,6 @@
 fuzzing_engines:
   - libfuzzer
   - afl
-  - honggfuzz
   - dataflow
 sanitizers:
   - address
diff --git a/projects/php/Dockerfile b/projects/php/Dockerfile
index a2cb115..2a391d5 100644
--- a/projects/php/Dockerfile
+++ b/projects/php/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER stas@php.net
 RUN apt-get update && \
     apt-get install -y autoconf automake libtool bison re2c pkg-config
 RUN git clone --depth 1 --branch master https://github.com/php/php-src.git php-src
diff --git a/projects/php/build.sh b/projects/php/build.sh
index fbef489..0dd2a79 100755
--- a/projects/php/build.sh
+++ b/projects/php/build.sh
@@ -32,9 +32,9 @@
 ./buildconf
 ./configure \
     --disable-all \
-    --enable-debug-assertions \
     --enable-option-checking=fatal \
     --enable-fuzzer \
+    --enable-json \
     --enable-exif \
     --enable-mbstring \
     --without-pcre-jit \
@@ -43,21 +43,17 @@
     --with-pic
 make -j$(nproc)
 
-# Generate corpuses and dictionaries.
-sapi/cli/php sapi/fuzzer/generate_all.php
-
-# Copy dictionaries to expected locations.
+# Generate dictionary for unserialize fuzzer
+sapi/cli/php sapi/fuzzer/generate_unserialize_dict.php
 cp sapi/fuzzer/dict/unserialize $OUT/php-fuzz-unserialize.dict
+
+# Generate initial corpus for parser fuzzer
+sapi/cli/php sapi/fuzzer/generate_parser_corpus.php
 cp sapi/fuzzer/dict/parser $OUT/php-fuzz-parser.dict
+
 cp sapi/fuzzer/json.dict $OUT/php-fuzz-json.dict
 
-FUZZERS="php-fuzz-json
-php-fuzz-exif
-php-fuzz-mbstring
-php-fuzz-unserialize
-php-fuzz-unserializehash
-php-fuzz-parser
-php-fuzz-execute"
+FUZZERS="php-fuzz-json php-fuzz-exif php-fuzz-mbstring php-fuzz-unserialize php-fuzz-parser"
 for fuzzerName in $FUZZERS; do
 	cp sapi/fuzzer/$fuzzerName $OUT/
 done
diff --git a/projects/php/project.yaml b/projects/php/project.yaml
index abd0906..5520029 100644
--- a/projects/php/project.yaml
+++ b/projects/php/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://php.net/"
-language: c++
 primary_contact: "stas@php.net"
 auto_ccs:
  - "smalyshev@gmail.com"
@@ -11,4 +10,3 @@
 architectures:
  - x86_64
  - i386
-main_repo: 'https://github.com/php/php-src.git'
diff --git a/projects/picotls/Dockerfile b/projects/picotls/Dockerfile
index 5d7dcc9..e645633 100644
--- a/projects/picotls/Dockerfile
+++ b/projects/picotls/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jonathan.foote@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool cmake pkg-config libssl-dev
 RUN git clone https://github.com/h2o/picotls
 WORKDIR picotls
diff --git a/projects/picotls/project.yaml b/projects/picotls/project.yaml
index ad55c72..966dce5 100644
--- a/projects/picotls/project.yaml
+++ b/projects/picotls/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/h2o/picotls"
-language: c++
 primary_contact: "jonathan.foote@gmail.com"
 auto_ccs:
   - "frederik.deweerdt@gmail.com"
@@ -7,4 +6,3 @@
   - "i.nagata110@gmail.com"
   - "tmaesaka@gmail.com"
   - "security@fastly.com"
-main_repo: 'https://github.com/h2o/picotls'
diff --git a/projects/piex/Dockerfile b/projects/piex/Dockerfile
index 13824b1..9adb45d 100644
--- a/projects/piex/Dockerfile
+++ b/projects/piex/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone https://github.com/guidovranken/piex.git piex
 WORKDIR piex
diff --git a/projects/piex/project.yaml b/projects/piex/project.yaml
index 6c853bc..444b156 100644
--- a/projects/piex/project.yaml
+++ b/projects/piex/project.yaml
@@ -1,8 +1,6 @@
 homepage: "https://github.com/google/piex"
-language: c++
 primary_contact: "nchusid@google.com"
 sanitizers:
  - address
  - undefined
  - memory
-main_repo: 'https://github.com/guidovranken/piex.git'
diff --git a/projects/pigweed/Dockerfile b/projects/pigweed/Dockerfile
deleted file mode 100644
index fd1d270..0000000
--- a/projects/pigweed/Dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y git build-essential python
-
-RUN git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git' --depth 1
-ENV PATH="${SRC}/depot_tools:${PATH}"
-
-RUN git clone 'https://pigweed.googlesource.com/pigweed/pigweed'  --depth 1
-
-COPY build.sh $SRC/
-COPY filter_cipd.py $SRC/
-COPY extract_pw_fuzzers.py $SRC/
diff --git a/projects/pigweed/build.sh b/projects/pigweed/build.sh
deleted file mode 100644
index 75ded6f..0000000
--- a/projects/pigweed/build.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/bash
-
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# If you ran this script as root against a local checkout, you may need to do
-# the following to restore the Pigweed build environment before continuing
-# development:
-#   $ cd $PW_ROOT
-#   $ sudo rm -rf .cipd/ .python3-env/ out/
-#   $ git reset --hard
-#   $ source ./bootstrap.sh
-
-PW_ROOT="$SRC/pigweed"
-BUILDROOT="$PW_ROOT/out/oss-fuzz"
-mkdir -p $BUILDROOT
-
-# Tweak the ensure file to skip downloading a bunch of build environment pieces
-# that we won't use and/or that OSS-Fuzz wants to provide itself.
-python $SRC/filter_cipd.py \
-  --root "$PW_ROOT" \
-  --json "$PW_ROOT/pw_env_setup/py/pw_env_setup/cipd_setup/pigweed.json" \
-  --excludes \
-      infra/cmake \
-      fuchsia/third_party/bazel \
-      pigweed/third_party/bloaty-embedded \
-      fuchsia/third_party/clang \
-      infra/go \
-      pigweed/third_party/protoc-gen-go \
-      pigweed/third_party/openocd \
-      fuchsia/rust \
-      pigweed/third_party/mingw64-x86_64-win32-seh \
-      pigweed/host_tools \
-      infra/goma/client \
-      fuchsia/third_party/qemu \
-      pigweed/third_party/kythe
-
-# Pigweed checks that it can find these as part of a "sanity check".
-mkdir -p "$PW_ROOT/.environment/cipd/pigweed/bin"
-for b in arm-none-eabi-gcc bazel bloaty ; do
-  x="$PW_ROOT/.environment/cipd/pigweed/bin/$b"
-  if [[ ! -x $x ]] ; then
-    ln -s "$(which false)" "$x"
-  fi
-done
-
-# Setup the Pigweed build environemnt
-set +u
-PW_ENVSETUP_QUIET=1 source "$PW_ROOT/bootstrap.sh"
-set -u
-
-# -stdlib=libc++ conflicts with the -nostdinc++ used on pw_minimal_cpp_stdlib.
-EXTRA_CXXFLAGS="-Wno-unused-command-line-argument"
-
-# Disable UBSan vptr since target built with -fno-rtti.
-EXTRA_CXXFLAGS+=" -fno-sanitize=vptr"
-
-# Build!
-CXXFLAGS="$CXXFLAGS $EXTRA_CXXFLAGS" LDFLAGS="$CXXFLAGS" \
-  gn gen "$BUILDROOT" \
-    --root="$PW_ROOT" \
-    --args="pw_toolchain_OSS_FUZZ_ENABLED=true
-            pw_toolchain_SANITIZERS=[\"$SANITIZER\"]"
-ninja -C "$BUILDROOT" fuzzers
-
-# Use build-generated metadata to identify available fuzzers
-python "$SRC/extract_pw_fuzzers.py" --buildroot "$BUILDROOT" --out "$OUT/"
-
-
diff --git a/projects/pigweed/extract_pw_fuzzers.py b/projects/pigweed/extract_pw_fuzzers.py
deleted file mode 100644
index 6361f2d..0000000
--- a/projects/pigweed/extract_pw_fuzzers.py
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Script to find fuzzers in a Pigweed build."""
-
-import argparse
-import json
-import os
-import shutil
-import sys
-
-
-def main():
-  """ Use pw_module_tests.testinfo.json files to find and copy fuzzers. """
-  parser = argparse.ArgumentParser()
-  parser.add_argument('--buildroot')
-  parser.add_argument('--out')
-  args = parser.parse_args()
-  print('  buildroot: ' + args.buildroot)
-  print('        out: ' + args.out)
-
-  testinfo = os.path.join(args.buildroot, 'host_clang_fuzz',
-                          'obj',
-                          'pw_module_tests.testinfo.json')
-  tests = []
-  with open(testinfo) as json_file:
-    tests = json.load(json_file)
-  for test in tests:
-    if test['type'] != 'fuzzer':
-      # Skip unit tests
-      continue
-    fuzzer = test['test_name']
-    objdir = test['test_directory']
-    module = os.path.basename(os.path.dirname(objdir))
-    if module == 'pw_fuzzer':
-      # Skip examples
-      continue
-    src = os.path.join(args.buildroot, objdir, fuzzer)
-    dst = os.path.join(args.out, '{}_{}'.format(module, fuzzer))
-    print('Copying {} to {}'.format(src, dst))
-    shutil.copy(src, dst)
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/projects/pigweed/filter_cipd.py b/projects/pigweed/filter_cipd.py
deleted file mode 100644
index e8dc098..0000000
--- a/projects/pigweed/filter_cipd.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-"""Script for filter Pigweed's CIPD dependencies for OSS Fuzz conflicts."""
-
-import argparse
-import json
-import os
-import sys
-
-
-def main():
-  """Main entry point of the script."""
-  parser = argparse.ArgumentParser()
-  parser.add_argument('--root', default=os.path.join(os.getcwd(), 'pigweed'))
-  parser.add_argument(
-      '--json', default='pw_env_setup/py/pw_env_setup/cipd_setup/pigweed.json')
-  parser.add_argument('--excludes', default='clang', nargs='*')
-  args = parser.parse_args()
-
-  # Load args.json
-  prebuilts = []
-  try:
-    with open(args.json, 'r') as json_file:
-      prebuilts = json.load(json_file)
-  except Exception:
-    print('Encountered error attempting to load ' + args.json)
-    raise
-
-  # Filter out args.excludes
-  for exclude in args.excludes:
-    prebuilts[:] = [p for p in prebuilts if exclude not in str(p['path'])]
-
-  # Rename original CIPD JSON file
-  try:
-    os.rename(args.json, args.json + '.orig')
-  except Exception:
-    print('Encountered error attempting to rename ' + args.json)
-    raise
-
-  # Save new CIPD JSON file
-  try:
-    with open(args.json, 'w') as json_file:
-      json.dump(prebuilts, json_file, indent=2)
-  except Exception:
-    print('Encountered error attempting to write ' + args.json)
-    raise
-
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/projects/pigweed/project.yaml b/projects/pigweed/project.yaml
deleted file mode 100644
index 78789fe..0000000
--- a/projects/pigweed/project.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-homepage: "https://pigweed.googlesource.com/pigweed/"
-language: c++
-primary_contact: "keir@google.com"
-auto_ccs:
-  - "alizhang@google.com"
-  - "amontanez@google.com"
-  - "davidrogers@google.com"
-  - "ewout@google.com"
-  - "frolv@google.com"
-  - "hepler@google.com"
-  - "keir@google.com"
-  - "moch@google.com"
-  - "mohrr@google.com"
-  - "prashanthsw@google.com"
-  - "rginda@google.com"
-  - "tonymd@google.com"
-  - "vivlam@google.com"
-sanitizers:
-  - address
-main_repo: 'https://pigweed.googlesource.com/pigweed/pigweed'
diff --git a/projects/pillow/Dockerfile b/projects/pillow/Dockerfile
index ab90895..aa67d85 100644
--- a/projects/pillow/Dockerfile
+++ b/projects/pillow/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2020 Google LLC
+# Copyright 2019 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,49 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/google/fuzzing
-RUN cat fuzzing/dictionaries/bmp.dict \
-        fuzzing/dictionaries/dds.dict \
-        fuzzing/dictionaries/gif.dict \
-        fuzzing/dictionaries/icns.dict \
-        fuzzing/dictionaries/jpeg.dict \
-        fuzzing/dictionaries/jpeg2000.dict \
-        fuzzing/dictionaries/pbm.dict \
-        fuzzing/dictionaries/png.dict \
-        fuzzing/dictionaries/psd.dict \
-        fuzzing/dictionaries/tiff.dict \
-        fuzzing/dictionaries/webp.dict \
-      > $OUT/fuzz_pillow.dict
-
-# library build dependencies
-RUN apt-get update && \
-    apt-get install -y \
-      libxau-dev \
-      pkg-config \
-      rsync \
-      zlib1g-dev 
-
-RUN git clone --depth 1 https://github.com/python-pillow/Pillow
-RUN git clone --depth 1 https://github.com/python-pillow/pillow-wheels
-
-COPY build_depends.sh $SRC
-
-RUN ln -s /usr/local/bin/python3 /usr/local/bin/python \
-    && ln -s /bin/true /usr/local/bin/yum_install \
-    && ln -s /bin/true /usr/local/bin/yum \
-    && cd $SRC/pillow-wheels \
-    && git submodule update --init multibuild \
-    && bash $SRC/build_depends.sh
-
-# install extra test images for a better starting corpus
-RUN cd Pillow && depends/install_extra_test_images.sh
-
+MAINTAINER guidovranken@gmail.com
+RUN apt-get update && apt-get install -y make autoconf automake build-essential libbz2-dev libc6-dev libffi-dev libfreetype6-dev libgdbm-dev libjpeg-turbo8-dev liblcms2-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev libtiff5-dev libtool libwebp-dev make python python-dev python-setuptools tk-dev wget zlib1g-dev libwebp-dev
+RUN wget https://github.com/python/cpython/archive/v3.8.1.tar.gz
+RUN git clone --depth 1 https://github.com/python-pillow/Pillow.git pillow
+RUN git clone --depth 1 https://github.com/guidovranken/oss-fuzz-fuzzers
+WORKDIR pillow
 COPY build.sh $SRC/
-
-# pillow optional runtime dependencies
-RUN apt-get install -y \
-     python3-tk \
-     tcl8.6-dev \
-     tk8.6-dev 
-
-WORKDIR $SRC/Pillow
diff --git a/projects/pillow/build.sh b/projects/pillow/build.sh
old mode 100644
new mode 100755
index e7dac34..1bee1d7
--- a/projects/pillow/build.sh
+++ b/projects/pillow/build.sh
@@ -1,5 +1,5 @@
 #!/bin/bash -eu
-# Copyright 2020 Google LLC
+# Copyright 2019 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,33 +15,98 @@
 #
 ################################################################################
 
-python3 setup.py build --build-base=/tmp/build install
+# Because Pillow's "./setup.py build_ext --inplace" does not work with custom CC and CFLAGS,
+# it is necessary to build in the following manner:
+#
+# Build CPython without instrumentation/sanitization
+# Build Pillow in a virtualenv based on uninstrumented and unsanitized CPython. Log the build steps to build.sh
+# Build CPython with instrumentation/sanitization
+# Rewrite build.sh to compile Pillow based on CPython with instrumentation/sanitization
+#
+# Why not build Pillow directly with a virtualenv based on instrumented CPython?
+# Because the virtualenv will inherit CC and CFLAGS of the instrumented CPython, and that will fail.
 
-# Build fuzzers in $OUT.
-for fuzzer in $(find $SRC -name 'fuzz_*.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller \
-      --add-binary /usr/local/lib/libjpeg.so.9:. \
-      --add-binary /usr/local/lib/libfreetype.so.6:. \
-      --add-binary /usr/local/lib/liblcms2.so.2:. \
-      --add-binary /usr/local/lib/libopenjp2.so.7:. \
-      --add-binary /usr/local/lib/libpng16.so.16:. \
-      --add-binary /usr/local/lib/libtiff.so.5:. \
-      --add-binary /usr/local/lib/libwebp.so.7:. \
-      --add-binary /usr/local/lib/libwebpdemux.so.2:. \
-      --add-binary /usr/local/lib/libwebpmux.so.3:. \
-      --add-binary /usr/local/lib/libxcb.so.1:. \
-      --distpath $OUT --onefile --name $fuzzer_package $fuzzer
+cd $SRC/
+tar zxf v3.8.1.tar.gz
+cd cpython-3.8.1/
 
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_PRELOAD=\$this_dir/sanitizer_with_fuzzer.so \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
+# Ignore memory leaks from python scripts invoked in the build
+export ASAN_OPTIONS="detect_leaks=0"
+export MSAN_OPTIONS="halt_on_error=0:exitcode=0:report_umrs=0"
 
-find Tests/images Tests/icc Tests/fonts -print | zip -q $OUT/fuzz_pillow_seed_corpus.zip -@
+# Remove -pthread from CFLAGS, this trips up ./configure
+# which thinks pthreads are available without any CLI flags
+CFLAGS=${CFLAGS//"-pthread"/}
+
+FLAGS=()
+case $SANITIZER in
+  address)
+    FLAGS+=("--with-address-sanitizer")
+    ;;
+  memory)
+    FLAGS+=("--with-memory-sanitizer")
+    # installing ensurepip takes a while with MSAN instrumentation, so
+    # we disable it here
+    FLAGS+=("--without-ensurepip")
+    # -msan-keep-going is needed to allow MSAN's halt_on_error to function
+    FLAGS+=("CFLAGS=-mllvm -msan-keep-going=1")
+    ;;
+  undefined)
+    FLAGS+=("--with-undefined-behavior-sanitizer")
+    ;;
+esac
+
+export CPYTHON_INSTALL_PATH=$OUT/cpython-install
+rm -rf $CPYTHON_INSTALL_PATH
+mkdir $CPYTHON_INSTALL_PATH
+
+export CPYTHON_UNINSTRUMENTED_INSTALL_PATH=$OUT/cpython-install
+rm -rf $CPYTHON_UNINSTRUMENTED_INSTALL_PATH
+mkdir $CPYTHON_UNINSTRUMENTED_INSTALL_PATH
+
+cd $SRC/
+tar zxf v3.8.1.tar.gz
+
+# Compile uninstrumented CPython
+cp -R $SRC/cpython-3.8.1/ $SRC/cpython-3.8.1-uninstrumented
+cd $SRC/cpython-3.8.1-uninstrumented
+CFLAGS="" CXXFLAGS="" ./configure --prefix=$CPYTHON_UNINSTRUMENTED_INSTALL_PATH
+CFLAGS="" CXXFLAGS="" make -j$(nproc)
+CFLAGS="" CXXFLAGS="" make install
+
+# Compile instrumented CPython
+cd $SRC/cpython-3.8.1/
+cp $SRC/oss-fuzz-fuzzers/pillow/python_coverage.h Python/
+
+# Patch the interpreter to record code coverage
+sed -i '1 s/^.*$/#include "python_coverage.h"/g' Python/ceval.c
+sed -i 's/case TARGET\(.*\): {/\0\nfuzzer_record_code_coverage(f->f_code, f->f_lasti);/g' Python/ceval.c
+
+./configure "${FLAGS[@]}" --prefix=$CPYTHON_INSTALL_PATH
+make -j$(nproc)
+make install
+
+# Compile Pillow fuzzers
+cd $SRC/oss-fuzz-fuzzers/pillow
+rm $CPYTHON_INSTALL_PATH/lib/python3.8/lib-dynload/_tkinter*.so
+make
+cp $SRC/oss-fuzz-fuzzers/pillow/fuzzer-loadimg $OUT/
+cp $SRC/oss-fuzz-fuzzers/pillow/loadimg.py $OUT/
+
+# Create venv for Pillow compilation
+$CPYTHON_UNINSTRUMENTED_INSTALL_PATH/bin/python3 -m venv $SRC/venv
+source $SRC/venv/bin/activate
+
+# Compile Pillow
+cd $SRC/pillow
+CFLAGS="" CXXFLAGS="" ./setup.py build_ext --inplace >build.sh
+grep "^\(gcc\|x86_64-linux-gnu-gcc\|clang\) " build.sh | sed 's/^\(gcc\|x86_64-linux-gnu-gcc\|clang\) /$CC $CFLAGS /g' | sed 's/-DPILLOW_VERSION="\([^"]\+\)"/-DPILLOW_VERSION="\\"\1\\""/g' >build2.sh
+bash build2.sh
+cp -R $SRC/pillow $OUT/
+cp /usr/lib/x86_64-linux-gnu/libjpeg.so.8 $OUT/
+cp /usr/lib/x86_64-linux-gnu/libtiff.so.5 $OUT/
+cp /usr/lib/x86_64-linux-gnu/libjbig.so.0 $OUT/
+cp /usr/lib/x86_64-linux-gnu/libwebp.so.5 $OUT/
+cp /usr/lib/x86_64-linux-gnu/libwebpmux.so.1 $OUT/
+cp /usr/lib/x86_64-linux-gnu/libwebpdemux.so.1 $OUT/
+cp $SRC/oss-fuzz-fuzzers/pillow/corpus.zip $OUT/fuzzer-loadimg_seed_corpus.zip
diff --git a/projects/pillow/build_depends.sh b/projects/pillow/build_depends.sh
deleted file mode 100644
index efdb34e..0000000
--- a/projects/pillow/build_depends.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-. multibuild/common_utils.sh
-
-export CONFIGURE_BUILD_SOURCED=1
-BUILD_PREFIX="${BUILD_PREFIX:-/usr/local}"
-export CPPFLAGS="-I$BUILD_PREFIX/include $CPPFLAGS"
-export LIBRARY_PATH="$BUILD_PREFIX/lib:$LIBRARY_PATH"
-export PKG_CONFIG_PATH="$BUILD_PREFIX/lib/pkgconfig/:$PKG_CONFIG_PATH"
-
-. multibuild/library_builders.sh
-. config.sh
-
-pre_build
diff --git a/projects/pillow/project.yaml b/projects/pillow/project.yaml
index e72792b..f6041e9 100644
--- a/projects/pillow/project.yaml
+++ b/projects/pillow/project.yaml
@@ -1,12 +1,11 @@
-homepage: "https://github.com/python-pillow/Pillow"
-language: python
-primary_contact: "security@tidelift.com"
+homepage: "https://python-pillow.org/"
+primary_contact: "guidovranken@gmail.com"
 auto_ccs:
-  - "david@adalogics.com"
-  - "esoroos@gmail.com"
+ - "security@python-pillow.org"
+sanitizers:
+ - address
+ - undefined
+architectures:
+ - x86_64
 fuzzing_engines:
   - libfuzzer
-sanitizers:
-  - address
-  - undefined
-main_repo: 'https://github.com/python-pillow/Pillow'
diff --git a/projects/pngquant/Dockerfile b/projects/pngquant/Dockerfile
deleted file mode 100644
index 8804d68..0000000
--- a/projects/pngquant/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make libpng-dev autoconf libtool
-RUN git clone --depth 1 https://github.com/kornelski/pngquant
-RUN git clone --depth 1 https://github.com/glennrp/libpng.git $SRC/pngquant/libpng
-WORKDIR $SRC/
-RUN mv $SRC/pngquant/test/oss_fuzz_build.sh $SRC/build.sh
diff --git a/projects/pngquant/project.yaml b/projects/pngquant/project.yaml
deleted file mode 100644
index b40ced8..0000000
--- a/projects/pngquant/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://pngquant.org"
-main_repo: "https://github.com/kornelski/pngquant"
-language: c
-primary_contact: "ossfuzz@pngquant.org"
-auto_ccs:
-  - "Adam@adalogics.com"
-sanitizers:
-  - address
-  - undefined
-fuzzing_engines:
-  - libfuzzer
-  - honggfuzz
diff --git a/projects/poppler/Dockerfile b/projects/poppler/Dockerfile
index c1b0355..dfac4e5 100644
--- a/projects/poppler/Dockerfile
+++ b/projects/poppler/Dockerfile
@@ -15,26 +15,14 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y wget autoconf automake libtool pkg-config gperf
-RUN pip3 install meson ninja
-
-RUN git clone --depth 1 https://github.com/madler/zlib.git
+MAINTAINER jonathan@titanous.com
+RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config cmake
+RUN git clone --depth 1 https://anongit.freedesktop.org/git/poppler/poppler.git
 RUN git clone --depth 1 git://git.sv.nongnu.org/freetype/freetype2.git
-RUN git clone --depth 1 https://github.com/mm2/Little-CMS.git
-RUN git clone --depth 1 https://github.com/uclouvain/openjpeg
-RUN git clone --depth 1 https://github.com/glennrp/libpng.git
-RUN git clone --depth 1 https://gitlab.freedesktop.org/fontconfig/fontconfig.git
-RUN git clone --depth 1 https://gitlab.freedesktop.org/cairo/cairo.git
-RUN git clone --depth 1 --branch=5.15 git://code.qt.io/qt/qtbase.git
-ADD http://ftp.gnome.org/pub/gnome/sources/pango/1.48/pango-1.48.0.tar.xz $SRC
-RUN tar xvJf $SRC/pango-1.48.0.tar.xz
-ADD https://ftp.gnome.org/pub/gnome/sources/glib/2.64/glib-2.64.2.tar.xz $SRC
-RUN tar xvJf $SRC/glib-2.64.2.tar.xz
-RUN git clone --depth 1 --single-branch https://gitlab.freedesktop.org/poppler/poppler.git
-
 RUN git clone --depth 1 https://github.com/mozilla/pdf.js pdf.js && \
-    zip -q $SRC/poppler_seed_corpus.zip pdf.js/test/pdfs/*.pdf && \
+    zip -q $SRC/pdf_fuzzer_seed_corpus.zip pdf.js/test/pdfs/*.pdf && \
     rm -rf pdf.js
-ADD https://raw.githubusercontent.com/google/fuzzing/master/dictionaries/pdf.dict $SRC/poppler.dict
+ADD https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/pdf.dict $SRC/pdf_fuzzer.dict
 WORKDIR $SRC/poppler
+COPY *.cc $SRC/fuzz/
 COPY build.sh $SRC/
diff --git a/projects/poppler/build.sh b/projects/poppler/build.sh
index 23692dd..49478ef 100755
--- a/projects/poppler/build.sh
+++ b/projects/poppler/build.sh
@@ -14,232 +14,50 @@
 # limitations under the License.
 #
 ################################################################################
-PREFIX=$WORK/prefix
-mkdir -p $PREFIX
-
-export PKG_CONFIG="`which pkg-config` --static"
-export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
-export PATH=$PREFIX/bin:$PATH
-
-BUILD=$WORK/build
-
-rm -rf $WORK/*
-rm -rf $BUILD
-mkdir -p $BUILD
-
-pushd $SRC/zlib
-CFLAGS=-fPIC ./configure --static --prefix=$PREFIX
-make install -j$(nproc)
 
 pushd $SRC/freetype2
 ./autogen.sh
-./configure --prefix="$PREFIX" --disable-shared PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
+./configure --prefix="$WORK" --disable-shared PKG_CONFIG_PATH="$WORK/lib/pkgconfig"
 make -j$(nproc)
 make install
 
-pushd $SRC/Little-CMS
-./configure --prefix="$PREFIX" --disable-shared PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
-make -j$(nproc)
-make install
-
-mkdir -p $SRC/openjpeg/build
-pushd $SRC/openjpeg/build
-cmake .. -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=$PREFIX
-make -j$(nproc) install
-
-if [ "$SANITIZER" != "memory" ]; then
-
-    pushd $SRC/fontconfig
-    meson \
-        --prefix=$PREFIX \
-        --libdir=lib \
-        --default-library=static \
-        _builddir
-    ninja -C _builddir
-    ninja -C _builddir install
-    popd
-
-    pushd $SRC/glib-2.64.2
-    meson \
-        --prefix=$PREFIX \
-        --libdir=lib \
-        --default-library=static \
-        -Db_lundef=false \
-        -Doss_fuzz=enabled \
-        -Dlibmount=disabled \
-        -Dinternal_pcre=true \
-        _builddir
-    ninja -C _builddir
-    ninja -C _builddir install
-    popd
-
-    pushd $SRC/libpng
-    autoreconf -fi
-    CPPFLAGS=-I$PREFIX/include LDFLAGS=-L$PREFIX/lib ./configure --prefix="$PREFIX" --disable-shared --disable-dependency-tracking
-    make -j$(nproc)
-    make install
-
-    pushd $SRC/cairo
-    meson \
-        --prefix=$PREFIX \
-        --libdir=lib \
-        --default-library=static \
-        _builddir
-    ninja -C _builddir
-    ninja -C _builddir install
-    popd
-
-    pushd $SRC/pango-1.48.0
-    meson \
-        -Ddefault_library=static \
-        --prefix=$PREFIX \
-        --libdir=lib \
-        _builddir
-    sed -i -e 's/ -Werror=implicit-fallthrough//g' _builddir/build.ninja
-    ninja -C _builddir
-    ninja -C _builddir install
-    popd
-fi
-
-pushd $SRC/qtbase
-# add the flags to Qt build too
-sed -i -e "s/QMAKE_CXXFLAGS    += -stdlib=libc++/QMAKE_CXXFLAGS    += -stdlib=libc++  $CXXFLAGS\nQMAKE_CFLAGS += $CFLAGS/g" mkspecs/linux-clang-libc++/qmake.conf
-sed -i -e "s/QMAKE_LFLAGS      += -stdlib=libc++/QMAKE_LFLAGS      += -stdlib=libc++ -lpthread $CXXFLAGS/g" mkspecs/linux-clang-libc++/qmake.conf
-# disable sanitize=vptr for harfbuzz since it compiles without rtti
-sed -i -e "s/TARGET = qtharfbuzz/TARGET = qtharfbuzz\nQMAKE_CXXFLAGS += -fno-sanitize=vptr/g" src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro
-# make qmake compile faster
-sed -i -e "s/MAKE\")/MAKE\" -j$(nproc))/g" configure
-./configure --glib=no --libpng=qt -opensource -confirm-license -static -no-opengl -no-icu -no-pkg-config -platform linux-clang-libc++ -nomake tests -nomake examples -prefix $PREFIX -D QT_NO_DEPRECATED_WARNINGS
-make -j$(nproc)
-make install
-popd
-
-# Poppler complains when PKG_CONFIG is set to `which pkg-config --static` so
-# temporarily removing it
-export PKG_CONFIG="`which pkg-config`"
-
-if [ "$SANITIZER" != "memory" ]; then
-    POPPLER_ENABLE_GLIB=ON
-    POPPLER_FONT_CONFIGURATION=fontconfig
-else
-    POPPLER_ENABLE_GLIB=OFF
-    POPPLER_FONT_CONFIGURATION=generic
-fi
-
-mkdir -p $SRC/poppler/build
-pushd $SRC/poppler/build
-cmake .. \
+mkdir -p $WORK/poppler
+pushd $WORK/poppler
+cmake $SRC/poppler \
   -DCMAKE_BUILD_TYPE=debug \
   -DBUILD_SHARED_LIBS=OFF \
-  -DENABLE_FUZZER=OFF \
-  -DFONT_CONFIGURATION=$POPPLER_FONT_CONFIGURATION \
+  -DFONT_CONFIGURATION=generic \
   -DENABLE_DCTDECODER=none \
-  -DENABLE_GOBJECT_INTROSPECTION=OFF \
+  -DENABLE_LIBOPENJPEG=none \
+  -DENABLE_CMS=none \
   -DENABLE_LIBPNG=OFF \
   -DENABLE_ZLIB=OFF \
   -DENABLE_LIBTIFF=OFF \
   -DENABLE_LIBJPEG=OFF \
-  -DENABLE_GLIB=$POPPLER_ENABLE_GLIB \
+  -DENABLE_GLIB=OFF \
   -DENABLE_LIBCURL=OFF \
-  -DENABLE_QT5=ON \
+  -DENABLE_QT5=OFF \
   -DENABLE_UTILS=OFF \
-  -DWITH_Cairo=$POPPLER_ENABLE_GLIB \
+  -DWITH_Cairo=OFF \
   -DWITH_NSS3=OFF \
-  -DCMAKE_INSTALL_PREFIX=$PREFIX
+  -DFREETYPE_INCLUDE_DIRS=$WORK/include/freetype2 \
+  -DFREETYPE_LIBRARY=$WORK/lib
+make -j$(nproc) poppler poppler-cpp
 
-export PKG_CONFIG="`which pkg-config` --static"
-make -j$(nproc) poppler poppler-cpp poppler-qt5
-if [ "$SANITIZER" != "memory" ]; then
-    make -j$(nproc) poppler-glib
-fi
+fuzz_target=pdf_fuzzer
 
-PREDEPS_LDFLAGS="-Wl,-Bdynamic -ldl -lm -lc -lz -pthread -lrt -lpthread"
-DEPS="freetype2 lcms2 libopenjp2"
-if [ "$SANITIZER" != "memory" ]; then
-    DEPS="$DEPS fontconfig libpng"
-fi
-BUILD_CFLAGS="$CFLAGS `pkg-config --static --cflags $DEPS`"
-BUILD_LDFLAGS="-Wl,-static `pkg-config --static --libs $DEPS`"
-
-fuzzers=$(find $SRC/poppler/cpp/tests/fuzzing/ -name "*_fuzzer.cc")
-
-for f in $fuzzers; do
-    fuzzer_name=$(basename $f .cc)
-
-    $CXX $CXXFLAGS -std=c++11 -I$SRC/poppler/cpp -I$SRC/poppler/build/cpp \
-        $BUILD_CFLAGS \
-        $f -o $OUT/$fuzzer_name \
-        $PREDEPS_LDFLAGS \
-        $SRC/poppler/build/cpp/libpoppler-cpp.a \
-        $SRC/poppler/build/libpoppler.a \
-        $BUILD_LDFLAGS \
-        $LIB_FUZZING_ENGINE \
-        $LIB_FUZZING_ENGINE \
-        -Wl,-Bdynamic
-done
-
-if [ "$SANITIZER" != "memory" ]; then
-    DEPS="gmodule-2.0 glib-2.0 gio-2.0 gobject-2.0 freetype2 lcms2 libopenjp2 cairo cairo-gobject pango fontconfig libpng"
-    BUILD_CFLAGS="$CFLAGS `pkg-config --static --cflags $DEPS`"
-    BUILD_LDFLAGS="-Wl,-static `pkg-config --static --libs $DEPS`"
-
-    fuzzers=$(find $SRC/poppler/glib/tests/fuzzing/ -name "*_fuzzer.cc")
-    for f in $fuzzers; do
-        fuzzer_name=$(basename $f .cc)
-
-        $CXX $CXXFLAGS -std=c++11 -I$SRC/poppler/glib -I$SRC/poppler/build/glib \
-            $BUILD_CFLAGS \
-            $f -o $OUT/$fuzzer_name \
-            $PREDEPS_LDFLAGS \
-            $SRC/poppler/build/glib/libpoppler-glib.a \
-            $SRC/poppler/build/cpp/libpoppler-cpp.a \
-            $SRC/poppler/build/libpoppler.a \
-            $BUILD_LDFLAGS \
-            $LIB_FUZZING_ENGINE \
-            -Wl,-Bdynamic
-    done
-fi
-
-PREDEPS_LDFLAGS="-Wl,-Bdynamic -ldl -lm -lc -lz -pthread -lrt -lpthread"
-DEPS="freetype2 lcms2 libopenjp2 Qt5Core Qt5Gui Qt5Xml"
-if [ "$SANITIZER" != "memory" ]; then
-    DEPS="$DEPS fontconfig libpng"
-fi
-BUILD_CFLAGS="$CFLAGS `pkg-config --static --cflags $DEPS`"
-BUILD_LDFLAGS="-Wl,-static `pkg-config --static --libs $DEPS`"
-
-fuzzers=$(find $SRC/poppler/qt5/tests/fuzzing/ -name "*_fuzzer.cc")
-for f in $fuzzers; do
-    fuzzer_name=$(basename $f .cc)
-
-    $CXX $CXXFLAGS -std=c++11 -fPIC \
-        -I$SRC/poppler/qt5/src -I$SRC/poppler/build/qt5/src \
-        $BUILD_CFLAGS \
-        $f -o $OUT/$fuzzer_name \
-        $PREDEPS_LDFLAGS \
-        $SRC/poppler/build/qt5/src/libpoppler-qt5.a \
-        $SRC/poppler/build/cpp/libpoppler-cpp.a \
-        $SRC/poppler/build/libpoppler.a \
-        $BUILD_LDFLAGS \
-        $LIB_FUZZING_ENGINE \
-        -Wl,-Bdynamic
-done
+$CXX $CXXFLAGS -std=c++11 -I$SRC/poppler/cpp \
+    $SRC/fuzz/pdf_fuzzer.cc -o $OUT/$fuzz_target \
+    $LIB_FUZZING_ENGINE $WORK/poppler/cpp/libpoppler-cpp.a $WORK/poppler/libpoppler.a $WORK/lib/libfreetype.a
 
 mv $SRC/{*.zip,*.dict} $OUT
 
-if [ ! -f "${OUT}/poppler_seed_corpus.zip" ]; then
-    echo "missing seed corpus"
-    exit 1
+if [ ! -f "${OUT}/${fuzz_target}_seed_corpus.zip" ]; then
+  echo "missing seed corpus"
+  exit 1
 fi
 
-if [ ! -f "${OUT}/poppler.dict" ]; then
-    echo "missing dictionary"
-    exit 1
+if [ ! -f "${OUT}/${fuzz_target}.dict" ]; then
+  echo "missing dictionary"
+  exit 1
 fi
-
-fuzzers=$(find $OUT -name "*_fuzzer")
-for f in $fuzzers; do
-  fuzzer_name=$(basename $f)
-  ln -sf $OUT/poppler_seed_corpus.zip $OUT/${fuzzer_name}_seed_corpus.zip
-  ln -sf $OUT/poppler.dict $OUT/${fuzzer_name}.dict
-done
diff --git a/projects/poppler/pdf_fuzzer.cc b/projects/poppler/pdf_fuzzer.cc
new file mode 100644
index 0000000..b278f83
--- /dev/null
+++ b/projects/poppler/pdf_fuzzer.cc
@@ -0,0 +1,50 @@
+/*
+# Copyright 2018 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+*/
+
+#include <cstdint>
+
+#include <poppler-global.h>
+#include <poppler-document.h>
+#include <poppler-page.h>
+#include <poppler-page-renderer.h>
+
+static void nop_func(const std::string& msg, void*) {};
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+  poppler::set_debug_error_function(nop_func, nullptr);
+
+  poppler::document *doc = poppler::document::load_from_raw_data((const char *)data, size);
+  if (!doc || doc->is_locked()) {
+    delete doc;
+    return 0;
+  }
+
+  poppler::page_renderer r;
+  for (int i = 0; i < doc->pages(); i++) {
+    poppler::page *p = doc->create_page(i);
+    if (!p) {
+      continue;
+    }
+    r.render_page(p);
+    p->text_list();
+    delete p;
+  }
+
+  delete doc;
+  return 0;
+}
diff --git a/projects/poppler/project.yaml b/projects/poppler/project.yaml
index c123796..18f88cc 100644
--- a/projects/poppler/project.yaml
+++ b/projects/poppler/project.yaml
@@ -1,5 +1,4 @@
 homepage: https://poppler.freedesktop.org/
-language: c++
 primary_contact: tsdgeos@gmail.com
 sanitizers:
   - address
@@ -8,4 +7,3 @@
 auto_ccs:
   - jonathan@titanous.com
   - adam.reichold@t-online.de
-main_repo: 'https://anongit.freedesktop.org/git/poppler/poppler.git'
diff --git a/projects/postgis/Dockerfile b/projects/postgis/Dockerfile
index 67b7a69..fdab216 100644
--- a/projects/postgis/Dockerfile
+++ b/projects/postgis/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER lr@pcorp.us
 RUN echo deb http://archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse >> /etc/apt/sources.list
 RUN apt-get update && apt-get install -y make autoconf automake libtool g++ postgresql-server-dev-10 libgeos-dev libproj-dev libxml2-dev pkg-config libjson-c-dev
 RUN git clone --depth 1 https://git.osgeo.org/gitea/postgis/postgis.git postgis
diff --git a/projects/postgis/project.yaml b/projects/postgis/project.yaml
index 003aa18..d55e54e 100644
--- a/projects/postgis/project.yaml
+++ b/projects/postgis/project.yaml
@@ -1,9 +1,7 @@
 homepage: "http://postgis.net/"
-language: c++
 primary_contact: "lr@pcorp.us"
 auto_ccs:
   - "even.rouault@gmail.com"
   - "pramsey@cleverelephant.ca"
   - "mateusz@loskot.net"
   - "komzpa@gmail.com"
-main_repo: 'https://git.osgeo.org/gitea/postgis/postgis.git'
diff --git a/projects/postgresql/Dockerfile b/projects/postgresql/Dockerfile
deleted file mode 100644
index ac3dcf9..0000000
--- a/projects/postgresql/Dockerfile
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && apt-get install -y make libreadline-dev zlib1g-dev bison flex
-
-RUN git clone git://git.postgresql.org/git/postgresql.git
-RUN zip postgresql_fuzzer_seed_corpus.zip postgresql/src/test/regress/sql/*
-
-WORKDIR postgresql
-RUN mkdir bld
-
-COPY fuzzer $SRC/fuzzer
-COPY build.sh add_fuzzers.diff $SRC/
diff --git a/projects/postgresql/add_fuzzers.diff b/projects/postgresql/add_fuzzers.diff
deleted file mode 100644
index 86b106c..0000000
--- a/projects/postgresql/add_fuzzers.diff
+++ /dev/null
@@ -1,68 +0,0 @@
-diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
-index cb5a96117f..c9b4880085 100644
---- a/src/backend/tcop/postgres.c
-+++ b/src/backend/tcop/postgres.c
-@@ -102,6 +102,9 @@ int			max_stack_depth = 100;
- /* wait N seconds to allow attach from a debugger */
- int			PostAuthDelay = 0;
- 
-+#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
-+bool        fuzzer_first_run = true;
-+#endif
- 
- 
- /* ----------------
-@@ -507,10 +510,15 @@ ReadCommand(StringInfo inBuf)
- {
- 	int			result;
- 
-+#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
-+    result = SocketBackend(inBuf);
-+#else
-+
- 	if (whereToSendOutput == DestRemote)
- 		result = SocketBackend(inBuf);
- 	else
- 		result = InteractiveBackend(inBuf);
-+#endif
- 	return result;
- }
- 
-@@ -3846,6 +3854,11 @@ PostgresMain(int argc, char *argv[],
- 	bool		idle_in_transaction_timeout_enabled = false;
- 	bool		idle_session_timeout_enabled = false;
- 
-+#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
-+        if(fuzzer_first_run)
-+                {
-+#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
-+
- 	/* Initialize startup process environment if necessary. */
- 	if (!IsUnderPostmaster)
- 		InitStandaloneProcess(argv[0]);
-@@ -4207,6 +4220,11 @@ PostgresMain(int argc, char *argv[],
- 	if (!ignore_till_sync)
- 		send_ready_for_query = true;	/* initially, or after error */
- 
-+#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
-+        fuzzer_first_run=false;
-+            }
-+#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
-+
- 	/*
- 	 * Non-error queries loop here.
- 	 */
-diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
-index 80c2672461..c16e0423c5 100644
---- a/src/backend/utils/error/elog.c
-+++ b/src/backend/utils/error/elog.c
-@@ -600,7 +600,9 @@ errfinish(const char *filename, int lineno, const char *funcname)
- 		pq_endcopyout(true);
- 
- 	/* Emit the message to the right places */
-+#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
- 	EmitErrorReport();
-+#endif
- 
- 	/* Now free up subsidiary data attached to stack entry, and release it */
- 	if (edata->message)
diff --git a/projects/postgresql/build.sh b/projects/postgresql/build.sh
deleted file mode 100644
index 12fb754..0000000
--- a/projects/postgresql/build.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-cp -r $SRC/fuzzer src/backend/
-git apply ../add_fuzzers.diff
-
-useradd fuzzuser
-chown -R fuzzuser .
-cd bld
-
-CC="" CXX="" CFLAGS="" CXXFLAGS="" su fuzzuser -c ../configure
-cd src/backend/fuzzer
-su fuzzuser -c "make createdb"
-chown -R root .
-mv temp/data .
-cp -r data $OUT/
-cd ../../..
-cp -r tmp_install $OUT/
-make clean
-
-../configure
-make
-cd src/backend/fuzzer
-make fuzzer
-cp *_fuzzer $OUT/
-cp $SRC/postgresql_fuzzer_seed_corpus.zip $OUT/
diff --git a/projects/postgresql/fuzzer/Makefile b/projects/postgresql/fuzzer/Makefile
deleted file mode 100644
index 656b8d6..0000000
--- a/projects/postgresql/fuzzer/Makefile
+++ /dev/null
@@ -1,60 +0,0 @@
-#-------------------------------------------------------------------------
-#
-# Makefile for the fuzzer module
-#
-# src/backend/fuzzer/Makefile
-#
-#-------------------------------------------------------------------------
-subdir = src/backend/fuzzer
-top_builddir = ../../..
-include $(top_builddir)/src/Makefile.global
-
-subsysfilename = objfiles.txt
-
-SUBDIROBJS = $(SUBDIRS:%=%/$(subsysfilename))
-
-# make function to expand objfiles.txt contents
-expand_subsys = $(foreach file,$(1),$(if $(filter %/objfiles.txt,$(file)),$(patsubst ../../src/backend/%,%,$(addprefix $(top_builddir)/,$(shell cat $(file)))),$(file)))
-
-objfiles.txt: Makefile $(SUBDIROBJS) $(OBJS_FUZZERS)
-# Don't rebuild the list if only the OBJS have changed.
-	 $(if $(filter-out $(OBJS_FUZZERS),$?),( $(if $(SUBDIROBJS),cat $(SUBDIROBJS); )echo $(addprefix $(subdir)/,$(OBJS_FUZZERS)) ) >$@,touch $@)
-
-SUBDIRS = ../access ../bootstrap ../catalog ../parser ../commands ../executor ../foreign ../lib ../libpq \
-	../main ../nodes ../optimizer ../partitioning ../port ../postmaster \
-	../regex ../replication ../rewrite \
-	../statistics ../storage ../tcop ../tsearch ../utils $(top_builddir)/src/timezone \
-	../jit
-
-OBJS = \
-	$(LOCALOBJS) \
-	$(SUBDIROBJS) \
-	$(top_builddir)/src/common/libpgcommon_srv.a \
-	$(top_builddir)/src/port/libpgport_srv.a \
-
-OBJS_FUZZERS = $(filter-out ../main/objfiles.txt, $(OBJS))
-
-createdb: dbfuzz
-
-fuzzer: simple_query_fuzzer \
-	json_parser_fuzzer \
-	protocol_fuzzer
-
-simple_query_fuzzer json_parser_fuzzer: %: %.o fuzzer_initialize.o $(OBJS_FUZZERS)
-	$(CXX) $(CFLAGS) $(call expand_subsys,$^) -o $@ $(LIB_FUZZING_ENGINE)
-
-simple_query_fuzzer.o json_parser_fuzzer.o protocol_fuzzer.o fuzzer_initialize.o: %.o: %.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $^ 
-
-protocol_fuzzer: %: %.o $(OBJS_FUZZERS)
-	$(CXX) $(CFLAGS) $(call expand_subsys,$^) -o $@ $(LIB_FUZZING_ENGINE) -Wl,--wrap=exit -Wl,--wrap=pq_getbyte
-
-dbfuzz: dbfuzz.o | submake-libpgport temp-install
-	$(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@ \
-	&& PATH="$(abs_top_builddir)/tmp_install$(bindir):$$PATH" LD_LIBRARY_PATH="$(abs_top_builddir)/tmp_install/usr/local/pgsql/lib" ./dbfuzz
-
-dbfuzz.o: dbfuzz.c $(top_builddir)/src/port/pg_config_paths.h 
-dbfuzz.o: override CPPFLAGS := $(CPPFLAGS) -I$(top_builddir)/src/port -I$(top_builddir)/../src/test/regress '-DSHELLPROG="$(SHELL)"'
-
-$(top_builddir)/src/port/pg_config_paths.h: | submake-libpgport
-	$(MAKE) -C $(top_builddir)/src/port pg_config_paths.h
diff --git a/projects/postgresql/fuzzer/dbfuzz.c b/projects/postgresql/fuzzer/dbfuzz.c
deleted file mode 100644
index 9a9bf79..0000000
--- a/projects/postgresql/fuzzer/dbfuzz.c
+++ /dev/null
@@ -1,146 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-///////////////////////////////////////////////////////////////////////////
-
-/*-------------------------------------------------------------------------
- *
- * 
- * This code is released under the terms of the PostgreSQL License.
- *
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *-------------------------------------------------------------------------
- */
-#include "postgres_fe.h"
-
-#include <sys/stat.h>
-#include <sys/wait.h>
-
-#include "common/logging.h"
-#include "common/restricted_token.h"
-#include "libpq/pqcomm.h"
-#include "pg_config_paths.h"
-#include "pg_regress.h"
-
-const char *progname = "progname";
-static char *shellprog = SHELLPROG;
-char *outputdir = ".";
-static char *temp_instance = NULL;
-static int port = -1;
-static const char *sockdir;
-static PID_TYPE postmaster_pid = INVALID_PID;
-
-static void psql_command(const char *database, const char *query, ...) {
-  char query_formatted[1024];
-  char query_escaped[2048];
-  char psql_cmd[MAXPGPATH + 2048];
-  va_list args;
-  char *s;
-  char *d;
-
-  va_start(args, query);
-  vsnprintf(query_formatted, sizeof(query_formatted), query, args);
-  va_end(args);
-
-  d = query_escaped;
-  for (s = query_formatted; *s; s++) {
-    if (strchr("\\\"$`", *s))
-      *d++ = '\\';
-    *d++ = *s;
-  }
-  *d = '\0';
-
-  snprintf(psql_cmd, sizeof(psql_cmd), "\"%s%spsql\" -X -c \"%s\" \"%s\"",
-           "", "", query_escaped, database);
-
-  system(psql_cmd);
-}
-
-PID_TYPE
-spawn_process(const char *cmdline) {
-  pid_t pid;
-  pid = fork();
-  if (pid == 0) {
-    char *cmdline2;
-    cmdline2 = psprintf("exec %s", cmdline);
-    execl(shellprog, shellprog, "-c", cmdline2, (char *)NULL);
-    fprintf(stderr, _("%s: could not exec \"%s\": %s\n"), progname, shellprog,
-            strerror(errno));
-    _exit(1);
-  }
-
-  return pid;
-}
-
-int main() {
-  int i;
-  char buf[MAXPGPATH * 4];
-  char buf2[MAXPGPATH * 4];
-  char *db_name = "./dbfuzz";
-  int wait_seconds = 60;
-
-  pg_logging_init(db_name);
-  progname = get_progname(db_name);
-  set_pglocale_pgservice(db_name, PG_TEXTDOMAIN("pg_dbfuzz"));
-  get_restricted_token();
-
-  temp_instance = make_absolute_path("./temp");
-  port = 0xC000 | (PG_VERSION_NUM & 0x3FFF);
-  outputdir = make_absolute_path(outputdir);
-  sockdir = mkdtemp(psprintf("/tmp/pg_dbfuzz-XXXXXX"));
-  putenv(psprintf("PGHOST=%s", sockdir));
-
-  mkdir(temp_instance, S_IRWXU | S_IRWXG | S_IRWXO);
-
-  snprintf(buf, sizeof(buf), "%s/log", outputdir);
-  mkdir(buf, S_IRWXU | S_IRWXG | S_IRWXO);
-
-  snprintf(buf, sizeof(buf),
-           "\"%s%sinitdb\" -D \"%s/data\" --no-clean --no-sync > "
-           "\"%s/log/initdb.log\" 2>&1",
-           "", "", temp_instance, outputdir);
-  system(buf);
-
-  snprintf(buf, sizeof(buf), "%s/data/postgresql.conf", temp_instance);
-
-  snprintf(buf2, sizeof(buf2), "\"%s%spsql\" -X postgres <%s 2>%s", "", "",
-           DEVNULL, DEVNULL);
-
-  snprintf(buf, sizeof(buf),
-           "\"%s%spostgres\" -D \"%s/data\" -F%s "
-           "-c \"listen_addresses=%s\" -k \"%s\" "
-           "> \"%s/log/postmaster.log\" 2>&1",
-           "", "", temp_instance, "", "", sockdir, outputdir);
-
-  postmaster_pid = spawn_process(buf);
-
-  for (i = 0; i < wait_seconds; i++) {
-    if (system(buf2) == 0)
-      break;
-    waitpid(postmaster_pid, NULL, WNOHANG);
-    pg_usleep(1000000L);
-  }
-
-  psql_command("postgres", "CREATE DATABASE \"%s\" TEMPLATE=template0%s",
-               "dbfuzz", "");
-
-  snprintf(buf, sizeof(buf), "\"%s%spg_ctl\" stop -D \"%s/data\" -s", "",
-           "", temp_instance);
-  system(buf);
-
-  rmdir(sockdir);
-  return 0;
-}
diff --git a/projects/postgresql/fuzzer/fuzzer_initialize.c b/projects/postgresql/fuzzer/fuzzer_initialize.c
deleted file mode 100644
index 0ab9d7d..0000000
--- a/projects/postgresql/fuzzer/fuzzer_initialize.c
+++ /dev/null
@@ -1,109 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "postgres.h"
-
-#include "access/xlog.h"
-#include "access/xact.h"
-#include "common/username.h"
-#include "executor/spi.h"
-#include "jit/jit.h"
-#include "libpq/libpq.h"
-#include "libpq/pqsignal.h"
-#include "miscadmin.h"
-#include "optimizer/optimizer.h"
-#include "parser/analyze.h"
-#include "parser/parser.h"
-#include "storage/proc.h"
-#include "tcop/tcopprot.h"
-#include "utils/datetime.h"
-#include "utils/memutils.h"
-#include "utils/portal.h"
-#include "utils/snapmgr.h"
-#include "utils/timeout.h"
-
-#include <libgen.h>
-
-const char *progname;
-static MemoryContext row_description_context = NULL;
-static StringInfoData row_description_buf;
-static const char *username = "username";
-
-int FuzzerInitialize(char *dbname, char ***argv){
-  char *av[5];
-  char arg_path[50];
-  char path_to_db[50];
-  char untar[100];
-  char *exe_path = (*argv)[0];
-  //dirname() can modify its argument
-  char *exe_path_copy = strdup(exe_path);
-  char *dir = dirname(exe_path_copy);
-  chdir(dir);
-  free(exe_path_copy);
-
-  snprintf(arg_path, sizeof(arg_path), "/tmp/%s/data", dbname);
-  snprintf(path_to_db, sizeof(path_to_db), "-D\"/tmp/%s/data\"", dbname);
-  snprintf(untar, sizeof(untar), "rm -rf /tmp/%s; mkdir /tmp/%s; cp -r data /tmp/%s", dbname, dbname, dbname);
-
-  av[0] = "tmp_install/usr/local/pgsql/bin/postgres";
-  av[1] = path_to_db;
-  av[2] = "-F";
-  av[3] = "-k\"/tmp\"";
-  av[4] = NULL;
-
-  system(untar);
-  
-  progname = get_progname(av[0]);
-  MemoryContextInit();
-
-  InitStandaloneProcess(av[0]);
-  SetProcessingMode(InitProcessing);
-  InitializeGUCOptions();
-  process_postgres_switches(4, av, PGC_POSTMASTER, NULL);
-
-  SelectConfigFiles(arg_path, progname);
-
-  checkDataDir();
-  ChangeToDataDir();
-  CreateDataDirLockFile(false);
-  LocalProcessControlFile(false);
-  InitializeMaxBackends();
-		 
-  BaseInit();
-  InitProcess();
-  PG_SETMASK(&UnBlockSig);
-  InitPostgres("dbfuzz", InvalidOid, username, InvalidOid, NULL, false);
- 
-  SetProcessingMode(NormalProcessing);
-
-  BeginReportingGUCOptions();
-  process_session_preload_libraries();
-
-  MessageContext = AllocSetContextCreate(TopMemoryContext,
-					 "MessageContext",
-					 ALLOCSET_DEFAULT_SIZES);
-  row_description_context = AllocSetContextCreate(TopMemoryContext,
-						  "RowDescriptionContext",
-						  ALLOCSET_DEFAULT_SIZES);
-  MemoryContextSwitchTo(row_description_context);
-  initStringInfo(&row_description_buf);
-  MemoryContextSwitchTo(TopMemoryContext);
-
-  PgStartTime = GetCurrentTimestamp();
-  whereToSendOutput = DestNone;
-  Log_destination = 0;
-  return 0;
-}
diff --git a/projects/postgresql/fuzzer/json_parser_fuzzer.c b/projects/postgresql/fuzzer/json_parser_fuzzer.c
deleted file mode 100644
index 08a96fd..0000000
--- a/projects/postgresql/fuzzer/json_parser_fuzzer.c
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "postgres.h"
-
-#include "common/jsonapi.h"
-#include "mb/pg_wchar.h"
-#include "utils/memutils.h"
-#include "utils/memdebug.h"
-
-int LLVMFuzzerInitialize(int *argc, char ***argv) {
-	FuzzerInitialize("json_db", argv);
-	return 0;
-}
-
-/*
-** Main entry point.  The fuzzer invokes this function with each
-** fuzzed input.
-*/
-int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-	sigjmp_buf local_sigjmp_buf;
-	char *buffer;
-	JsonSemAction sem;
-	JsonLexContext *lex;
-
-	buffer = (char *) calloc(size+1, sizeof(char));
-	memcpy(buffer, data, size);
-
-	MemoryContextInit();
-	set_stack_base();
-	sem = nullSemAction;
-	lex = makeJsonLexContextCstringLen(buffer, size+1, PG_UTF8, true);
-
-	if(!sigsetjmp(local_sigjmp_buf,0)){
-		error_context_stack = NULL;
-		PG_exception_stack = &local_sigjmp_buf;
-		pg_parse_json(lex, &sem);
-	}
-	free(buffer);
-	FlushErrorState();
-	MemoryContextReset(TopMemoryContext);
-	TopMemoryContext->ident = NULL;
-	TopMemoryContext->methods->delete_context(TopMemoryContext);
-	VALGRIND_DESTROY_MEMPOOL(TopMemoryContext);
-	return 0;
-}
diff --git a/projects/postgresql/fuzzer/protocol_fuzzer.c b/projects/postgresql/fuzzer/protocol_fuzzer.c
deleted file mode 100644
index 7621644..0000000
--- a/projects/postgresql/fuzzer/protocol_fuzzer.c
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "postgres.h"
-
-#include "access/xlog.h"
-#include "access/xact.h"
-#include "common/ip.h"
-#include "common/username.h"
-#include "executor/spi.h"
-#include "jit/jit.h"
-#include "libpq/auth.h"
-#include "libpq/libpq.h"
-#include "libpq/pqsignal.h"
-#include "miscadmin.h"
-#include "optimizer/optimizer.h"
-#include "parser/analyze.h"
-#include "parser/parser.h"
-#include "storage/proc.h"
-#include "tcop/tcopprot.h"
-#include "utils/datetime.h"
-#include "utils/memutils.h"
-#include "utils/memdebug.h"
-#include "utils/pidfile.h"
-#include "utils/portal.h"
-#include "utils/snapmgr.h"
-#include "utils/ps_status.h"
-#include "utils/timeout.h"
-
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <libgen.h>
-
-const char *progname = "progname";
-static sigjmp_buf postgre_exit;
-static bool postgre_started;
-static char *buffer;
-static size_t buffersize;
-static char *bufferpointer;
-static char *av[6];
-
-int LLVMFuzzerInitialize(int *argc, char ***argv) {
-	char *exe_path = (*argv)[0];
-	//dirname() can modify its argument
-	char *exe_path_copy = strdup(exe_path);
-	char *dir = dirname(exe_path_copy);
-	chdir(dir);
-	free(exe_path_copy);
-	
-	av[0] = "tmp_install/usr/local/pgsql/bin/postgres";
-	av[1] = "--single";
-	av[2] = "-D/tmp/protocol_db/data";
-	av[3] = "-F";
-	av[4] = "-k\"/tmp\"";
-	av[5] = NULL;
-
-	system("rm -rf /tmp/protocol_db; mkdir /tmp/protocol_db; cp -r data /tmp/protocol_db");
-	system("cp -r tmp_install /tmp/");
-
-	MemoryContextInit();
-	if(!sigsetjmp(postgre_exit, 0)){
-		postgre_started = true;
-		PostgresMain(5, av, "dbfuzz", "fuzzuser");
-	}
-	pq_endmsgread();
-	return 0;
-}
-
-void __wrap_exit(int status){
-	if(postgre_started)
-		siglongjmp(postgre_exit, 1);
-	else
-		__real_exit(status);
-}
-
-int __wrap_pq_getbyte(void){
-	if(!buffersize) return EOF;
-	unsigned char cur = buffer[0];
-	bufferpointer++; buffersize--;
-	return cur;
-}
-
-/*
-** Main entry point.  The fuzzer invokes this function with each
-** fuzzed input.
-*/
-int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-	buffersize = size;
-	buffer = (char *) calloc(size, sizeof(char));
-	bufferpointer = buffer;
-	memcpy(buffer, data, size);
-
-	if(!sigsetjmp(postgre_exit, 0)){
-		postgre_started = true;
-		PostgresMain(5, av, "dbfuzz", "fuzzuser");
-	}
-	pq_endmsgread();
-	postgre_started = false;
-	free(buffer);
-	return 0;
-}
diff --git a/projects/postgresql/fuzzer/simple_query_fuzzer.c b/projects/postgresql/fuzzer/simple_query_fuzzer.c
deleted file mode 100644
index 29c1362..0000000
--- a/projects/postgresql/fuzzer/simple_query_fuzzer.c
+++ /dev/null
@@ -1,146 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include "postgres.h"
-
-#include "access/xlog.h"
-#include "access/xact.h"
-#include "common/username.h"
-#include "executor/spi.h"
-#include "jit/jit.h"
-#include "libpq/libpq.h"
-#include "libpq/pqsignal.h"
-#include "miscadmin.h"
-#include "optimizer/optimizer.h"
-#include "parser/analyze.h"
-#include "parser/parser.h"
-#include "storage/proc.h"
-#include "tcop/tcopprot.h"
-#include "utils/datetime.h"
-#include "utils/memutils.h"
-#include "utils/portal.h"
-#include "utils/snapmgr.h"
-#include "utils/timeout.h"
-
-static void
-exec_simple_query(const char *query_string)
-{
-  MemoryContext oldcontext;
-  List       *parsetree_list;
-  ListCell   *parsetree_item;
-  bool        use_implicit_block;
-
-  StartTransactionCommand();
-  oldcontext = MemoryContextSwitchTo(MessageContext);
-
-  parsetree_list = raw_parser(query_string, RAW_PARSE_TYPE_NAME);
-  MemoryContextSwitchTo(oldcontext);
-
-  use_implicit_block = (list_length(parsetree_list) > 1);
-
-  foreach(parsetree_item, parsetree_list)
-    {
-      RawStmt    *parsetree = lfirst_node(RawStmt, parsetree_item);
-      bool        snapshot_set = false;
-      MemoryContext per_parsetree_context = NULL;
-      List       *querytree_list,
-	*plantree_list;		
-
-      if (use_implicit_block)
-	BeginImplicitTransactionBlock();
-
-      if (analyze_requires_snapshot(parsetree))
-	{
-	  PushActiveSnapshot(GetTransactionSnapshot());
-	  snapshot_set = true;
-	}
-
-      if (lnext(parsetree_list, parsetree_item) != NULL)
-	{
-	  per_parsetree_context =
-	    AllocSetContextCreate(MessageContext,
-				  "per-parsetree message context",
-				  ALLOCSET_DEFAULT_SIZES);
-	  oldcontext = MemoryContextSwitchTo(per_parsetree_context);
-	}
-      else
-	oldcontext = MemoryContextSwitchTo(MessageContext);
-
-      querytree_list = pg_analyze_and_rewrite(parsetree, query_string,
-					      NULL, 0, NULL);
- 
-      plantree_list = pg_plan_queries(querytree_list, query_string,
-				      CURSOR_OPT_PARALLEL_OK, NULL);
-
-      if (per_parsetree_context){
-	MemoryContextDelete(per_parsetree_context);
-      }
-      CommitTransactionCommand();
-    }
-}
-
-
-int LLVMFuzzerInitialize(int *argc, char ***argv) {
-	FuzzerInitialize("query_db", argv);
-	return 0;
-}
-
-
-/*
-** Main entry point.  The fuzzer invokes this function with each
-** fuzzed input.
-*/
-int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  char* query_string;
-  sigjmp_buf local_sigjmp_buf;
-
-  query_string = (char*) calloc( (size+1), sizeof(char) );
-  memcpy(query_string, data, size);
-
-  if (!sigsetjmp(local_sigjmp_buf, 0))
-    {
-      PG_exception_stack = &local_sigjmp_buf;
-      error_context_stack = NULL;
-	  set_stack_base();
-
-      disable_all_timeouts(false);
-      QueryCancelPending = false;
-      pq_comm_reset();
-      EmitErrorReport();
-
-      AbortCurrentTransaction();
- 
-      PortalErrorCleanup();
-      SPICleanup();
-
-      jit_reset_after_error();
-
-      MemoryContextSwitchTo(TopMemoryContext);
-      FlushErrorState();
-
-      MemoryContextSwitchTo(MessageContext);
-      MemoryContextResetAndDeleteChildren(MessageContext);
-
-      InvalidateCatalogSnapshotConditionally();
-
-      SetCurrentStatementStartTimestamp();
-
-      exec_simple_query(query_string);
-    }
-
-  free(query_string);
-  return 0;
-}
diff --git a/projects/postgresql/project.yaml b/projects/postgresql/project.yaml
index 5cc7a3f..6f35108 100644
--- a/projects/postgresql/project.yaml
+++ b/projects/postgresql/project.yaml
@@ -1,14 +1,2 @@
 homepage: "https://postgresql.org"
-main_repo: "https://git.postgresql.org/git/postgresql"
 primary_contact: "sfrost@snowman.net"
-language: c
-auto_ccs:
-  - "ouyangyunshu@google.com"
-  - "frost.stephen.p@gmail.com"
-  - "aseering@google.com"
-fuzzing_engines:
-  - libfuzzer
-  - honggfuzz
-  - afl
-sanitizers:
-  - address
diff --git a/projects/powerdns/Dockerfile b/projects/powerdns/Dockerfile
index db7614c..8307ace 100644
--- a/projects/powerdns/Dockerfile
+++ b/projects/powerdns/Dockerfile
@@ -18,9 +18,10 @@
 FROM gcr.io/oss-fuzz-base/base-builder
 
 # maintainer for this file
+MAINTAINER remi.gacogne@powerdns.com
 
 # install required packages to build your project
-RUN add-apt-repository -y ppa:savoury1/boost-defaults-1.71 && apt-get update && apt-get install -y autoconf automake bison dh-autoreconf flex boost1.71-dev libluajit-5.1-dev libedit-dev libprotobuf-dev libssl-dev libtool make pkg-config protobuf-compiler ragel
+RUN apt-get update && apt-get install -y autoconf automake bison dh-autoreconf flex libboost-all-dev libluajit-5.1-dev libedit-dev libprotobuf-dev libssl-dev libtool make pkg-config protobuf-compiler ragel
 
 # checkout all sources needed to build your project
 RUN git clone https://github.com/PowerDNS/pdns.git pdns
diff --git a/projects/powerdns/project.yaml b/projects/powerdns/project.yaml
index 770519a..7ef267f 100644
--- a/projects/powerdns/project.yaml
+++ b/projects/powerdns/project.yaml
@@ -1,9 +1,7 @@
 homepage: "https://www.powerdns.com/"
-language: c++
 primary_contact: "remi.gacogne@powerdns.com"
 auto_ccs:
   - "powerdnsossfuzz@gmail.com"
 sanitizers:
   - address
   - undefined
-main_repo: 'https://github.com/PowerDNS/pdns.git'
diff --git a/projects/proj4/Dockerfile b/projects/proj4/Dockerfile
index da7263a..6e9ca2c 100644
--- a/projects/proj4/Dockerfile
+++ b/projects/proj4/Dockerfile
@@ -15,8 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && \
-    apt-get install -y make autoconf automake libtool g++ sqlite3 pkg-config wget
+MAINTAINER even.rouault@spatialys.com
+RUN dpkg --add-architecture i386 && \
+    apt-get update && \
+    apt-get install -y make autoconf automake libtool g++ sqlite3 pkg-config
 
 RUN git clone --depth 1 https://github.com/OSGeo/proj proj
 
diff --git a/projects/proj4/project.yaml b/projects/proj4/project.yaml
index bc1a49c..71bdcf8 100644
--- a/projects/proj4/project.yaml
+++ b/projects/proj4/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://proj.org/"
-language: c++
 primary_contact: "even.rouault@gmail.com"
 auto_ccs:
   - "hobu.inc@gmail.com"
diff --git a/projects/prometheus/Dockerfile b/projects/prometheus/Dockerfile
deleted file mode 100644
index 7e22750..0000000
--- a/projects/prometheus/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-ENV GO111MODULE=on
-RUN git clone https://github.com/prometheus/prometheus $GOPATH/src/github.com/prometheus/prometheus
-COPY build.sh $SRC/
-# Required to avoid 'working directory is not part of a module' error.
-WORKDIR $GOPATH/src/github.com/prometheus/prometheus
diff --git a/projects/prometheus/build.sh b/projects/prometheus/build.sh
deleted file mode 100755
index 87c393b..0000000
--- a/projects/prometheus/build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-compile_go_fuzzer github.com/prometheus/prometheus/promql FuzzParseMetric fuzzParseMetric
-compile_go_fuzzer github.com/prometheus/prometheus/promql FuzzParseOpenMetric fuzzParseOpenMetric
-compile_go_fuzzer github.com/prometheus/prometheus/promql FuzzParseMetricSelector fuzzParseMetricSelector
-compile_go_fuzzer github.com/prometheus/prometheus/promql FuzzParseExpr fuzzParseExpr
diff --git a/projects/prometheus/project.yaml b/projects/prometheus/project.yaml
deleted file mode 100644
index a753a61..0000000
--- a/projects/prometheus/project.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-homepage: "https://github.com/prometheus/prometheus"
-primary_contact: "prometheus-team@googlegroups.com"
-auto_ccs :
-  - "julius.volz@gmail.com"
-  - "beorn@grafana.com"
-  - "roidelapluie@prometheus.io"
-  - "richih@richih.org"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/prometheus/prometheus'
diff --git a/projects/protobuf-c/Dockerfile b/projects/protobuf-c/Dockerfile
deleted file mode 100644
index c4407cc..0000000
--- a/projects/protobuf-c/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-MAINTAINER guidovranken@gmail.com
-RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config
-RUN git clone --depth 1 --recursive https://github.com/protocolbuffers/protobuf.git
-RUN git clone --depth 1 https://github.com/protobuf-c/protobuf-c.git -b next
-RUN git clone --depth 1 https://github.com/guidovranken/fuzzing-headers.git
-RUN git clone --depth 1 https://github.com/guidovranken/protobuf-c-fuzzers.git
-COPY build.sh $SRC/
diff --git a/projects/protobuf-c/build.sh b/projects/protobuf-c/build.sh
deleted file mode 100755
index 8eda36a..0000000
--- a/projects/protobuf-c/build.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-export ASAN_OPTIONS=alloc_dealloc_mismatch=0
-
-if [[ $CFLAGS = *sanitize=address* ]]
-then
-    export CXXFLAGS="$CXXFLAGS -DASAN"
-fi
-
-if [[ $CFLAGS = *sanitize=memory* ]]
-then
-    export CXXFLAGS="$CXXFLAGS -DMSAN"
-fi
-
-if [[ $SANITIZER = coverage ]]
-then
-    export CXXFLAGS="$CXXFLAGS -fno-use-cxa-atexit"
-fi
-
-mkdir $SRC/protobuf-install/
-cd $SRC/protobuf/
-./autogen.sh
-./configure --prefix=$SRC/protobuf-install
-make -j$(nproc)
-make install
-
-export PROTOC="$SRC/protobuf-install/bin/protoc"
-
-cd $SRC/protobuf-c/
-./autogen.sh
-./configure --enable-static=yes --enable-shared=false PKG_CONFIG_PATH=$SRC/protobuf-install/lib/pkgconfig
-
-make -j$(nproc)
-
-cd $SRC/fuzzing-headers/
-./install.sh
-
-cd $SRC/protobuf-c-fuzzers/
-cp $SRC/protobuf-c/t/test-full.proto $SRC/protobuf-c-fuzzers/
-export PATH=$PATH:$SRC/protobuf-c/protoc-c
-$PROTOC --c_out=. test-full.proto
-$CC $CFLAGS test-full.pb-c.c -I $SRC/protobuf-install -I $SRC/protobuf-c -c -o test-full.pb-c.o
-$CXX $CXXFLAGS fuzzer.cpp -I $SRC/protobuf-install -I $SRC/protobuf-c test-full.pb-c.o $SRC/protobuf-c/protobuf-c/.libs/libprotobuf-c.a $LIB_FUZZING_ENGINE -o $OUT/fuzzer
diff --git a/projects/protobuf-c/project.yaml b/projects/protobuf-c/project.yaml
deleted file mode 100644
index 9103f1b..0000000
--- a/projects/protobuf-c/project.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-homepage: "https://github.com/protobuf-c/protobuf-c"
-language: c
-primary_contact: "guidovranken@gmail.com"
-auto_ccs:
-  - "ilya.lipnitskiy@gmail.com"
-sanitizers:
- - address
- - memory
-architectures:
- - x86_64
- - i386
-main_repo: 'https://github.com/protobuf-c/protobuf-c.git'
-coverage_extra_args: -ignore-filename-regex=.*/protobuf-install/.*
diff --git a/projects/proxygen/Dockerfile b/projects/proxygen/Dockerfile
index 7899ed2..14c3da5 100644
--- a/projects/proxygen/Dockerfile
+++ b/projects/proxygen/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mhl@fb.com
 
 # Install packages we need to build dependencies
 RUN apt-get update && \
@@ -30,8 +31,22 @@
     python \
     python-dev
 
+# We need a newer version of CMake than is available in the base builder image
+RUN wget https://github.com/Kitware/CMake/releases/download/v3.15.2/cmake-3.15.2.tar.gz && \
+    tar xzf cmake-3.15.2.tar.gz && \
+    cd cmake-3.15.2 && \
+    export CC=clang && \
+    export CXX=clang++ && \
+    CXXFLAGS="" && \
+    CFLAGS="" && \
+    ./bootstrap && \
+    make -j$(nproc) && \
+    make install && \
+    cd .. && \
+    rm -rf cmake-3.15.2
+
 # Install and build boost from source so we can have it use libc++
-RUN wget https://sourceforge.net/projects/boost/files/boost/1.70.0/boost_1_70_0.tar.gz && \
+RUN wget https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz && \
     tar xzf boost_1_70_0.tar.gz && \
     cd boost_1_70_0 && \
     ./bootstrap.sh --with-toolset=clang && \
@@ -110,24 +125,6 @@
     sudo make install && \
     cd ../.. && \
     rm -rf fmt-6.0.0
-    
-# Build and install `gperf` (>= 3.1)
-RUN wget http://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz && \
-    rm -rf gperf-3.1 | true && \
-    tar xzvf gperf-3.1.tar.gz && \
-    cd gperf-3.1 && \
-    export CC=gcc && \
-    export CXX=g++ && \
-    export CXXFLAGS="" && \
-    export CFLAGS_TMP="$CFLAGS" && \
-    unset CFLAGS && \
-    ./configure && \
-    make -j1 V=s && \
-    sudo make install && \
-    export CFLAGS="$CFLAGS_TMP" && \
-    unset CFLAGS_TMP && \
-    cd .. && \
-    rm -rf gperf-3.1
 
 # Replicate `install-dependencies` from the proxygen `build.sh` script
 RUN apt-get install -y \
@@ -140,6 +137,7 @@
     pkg-config \
     libssl-dev \
     libcap-dev \
+    gperf \
     libevent-dev \
     libtool \
     libjemalloc-dev \
@@ -158,4 +156,4 @@
 # Fetch source and copy over files
 RUN git clone --depth 1 https://github.com/facebook/proxygen.git proxygen
 WORKDIR proxygen
-COPY build.sh $SRC/
+COPY build.sh $SRC/
\ No newline at end of file
diff --git a/projects/proxygen/project.yaml b/projects/proxygen/project.yaml
index 222ed52..107b628 100644
--- a/projects/proxygen/project.yaml
+++ b/projects/proxygen/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/facebook/proxygen"
-language: c++
 primary_contact: "mhl@fb.com"
 auto_ccs:
   - "gulshan@fb.com"
@@ -21,4 +20,3 @@
 sanitizers:
   - address
   - undefined
-main_repo: 'https://github.com/facebook/proxygen.git'
diff --git a/projects/pugixml/Dockerfile b/projects/pugixml/Dockerfile
deleted file mode 100755
index 40b330d..0000000
--- a/projects/pugixml/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/zeux/pugixml
-
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/pugixml/build.sh b/projects/pugixml/build.sh
deleted file mode 100755
index e8ab206..0000000
--- a/projects/pugixml/build.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-cd pugixml
-
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE tests/fuzz_parse.cpp src/pugixml.cpp -o ${OUT}/fuzz_parse
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE tests/fuzz_xpath.cpp src/pugixml.cpp -o ${OUT}/fuzz_xpath
-
-zip -r ${OUT}/fuzz_parse_seed_corpus.zip tests/data_fuzz_parse
-zip -r ${OUT}/fuzz_xpath_seed_corpus.zip tests/data_fuzz_xpath
-
-cp tests/fuzz_parse.dict ${OUT}/fuzz_parse.dict
-cp tests/fuzz_xpath.dict ${OUT}/fuzz_xpath.dict
diff --git a/projects/pugixml/project.yaml b/projects/pugixml/project.yaml
deleted file mode 100755
index 2df1799..0000000
--- a/projects/pugixml/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/zeux/pugixml"
-primary_contact: "arseny.kapoulkine@gmail.com"
-language: c++
-auto_ccs:
-  - "david@adalogics.com"
-main_repo: 'https://github.com/zeux/pugixml'
diff --git a/projects/pycryptodome/Dockerfile b/projects/pycryptodome/Dockerfile
deleted file mode 100644
index c8702f8..0000000
--- a/projects/pycryptodome/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool
-RUN git clone --depth 1 https://github.com/Legrandin/pycryptodome.git
-WORKDIR pycryptodome/src
-COPY build.sh *_fuzzer.cc $SRC/
-COPY block_common.patch $SRC/pycryptodome/src
diff --git a/projects/pycryptodome/block_common.patch b/projects/pycryptodome/block_common.patch
deleted file mode 100644
index dd71b96..0000000
--- a/projects/pycryptodome/block_common.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/block_common.c b/src/block_common.c
-index 169200a6..c6da1f85 100644
---- a/src/block_common.c
-+++ b/src/block_common.c
-@@ -106,7 +106,7 @@ EXPORT_SYM int CIPHER_START_OPERATION(const uint8_t key[], size_t key_len, CIPHE
-     if ((key == NULL) || (pResult == NULL))
-         return ERR_NULL;
-
--    *pResult = calloc(1, sizeof(CIPHER_STATE_TYPE));
-+    *pResult = (CIPHER_STATE_TYPE *) calloc(1, sizeof(CIPHER_STATE_TYPE));
-     if (NULL == *pResult)
-         return ERR_MEMORY;
diff --git a/projects/pycryptodome/build.sh b/projects/pycryptodome/build.sh
deleted file mode 100755
index 4cdd470..0000000
--- a/projects/pycryptodome/build.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-patch block_common.c block_common.patch
-
-PCD_INTERNALS=(./*.c ./libtom/*.c)
-PCD_FLAGS=(
-  "-I $SRC/pycryptodome/src"
-  "-I $SRC/pycryptodome/src/libtom"
-  "-D HAVE_STDINT_H"
-  "-D HAVE_MEMALIGN"
-  "-D HAVE_INTRIN_H"
-  "-D SYS_BITS=$(getconf LONG_BIT)"
-  "-maes -msse2 -mpclmul"
-)
-
-$CC $CFLAGS \
-    ${PCD_FLAGS[@]} \
-    -c "${PCD_INTERNALS//'blake2.c'/}"
-ar -qc $WORK/libpycryptodome.a *.o
-
-PCD_HASH_OPTIONS=(
-  "-D HASHTYPE=md2 -D FNAME=MD2.c -D DIGEST_SIZE=16 -o $OUT/md2_fuzzer"
-  "-D HASHTYPE=md4 -D FNAME=MD4.c -D DIGEST_SIZE=16 -o $OUT/md4_fuzzer"
-  "-D HASHTYPE=MD5 -D FNAME=MD5.c -o $OUT/md5_fuzzer"
-  "-D HASHTYPE=ripemd160 -D FNAME=RIPEMD160.c -D DIGEST_SIZE=RIPEMD160_DIGEST_SIZE -o $OUT/ripemd160_fuzzer"
-  "-D HASHTYPE=SHA224 -D FNAME=SHA224.c -D DIGEST_THIRD_PARAM -o $OUT/sha224_fuzzer"
-  "-D HASHTYPE=SHA256 -D FNAME=SHA256.c -D DIGEST_THIRD_PARAM -o $OUT/sha256_fuzzer"
-  "-D HASHTYPE=SHA384 -D FNAME=SHA384.c -D DIGEST_THIRD_PARAM -o $OUT/sha384_fuzzer"
-)
-
-for ((i = 0; i < ${#PCD_HASH_OPTIONS[@]}; i++)); do
-  $CXX $CXXFLAGS ${PCD_FLAGS[@]} \
-      $SRC/pcd_hash_fuzzer.cc ${PCD_HASH_OPTIONS[i]} \
-      $LIB_FUZZING_ENGINE $WORK/libpycryptodome.a
-done
-
-$CXX $CXXFLAGS ${PCD_FLAGS[@]} \
-    $SRC/pcd_aes_fuzzer.cc -o $OUT/aes_fuzzer \
-    $LIB_FUZZING_ENGINE $WORK/libpycryptodome.a
diff --git a/projects/pycryptodome/pcd_aes_fuzzer.cc b/projects/pycryptodome/pcd_aes_fuzzer.cc
deleted file mode 100644
index 0586aa4..0000000
--- a/projects/pycryptodome/pcd_aes_fuzzer.cc
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "AES.c"
-#include "common.h"
-#include <fuzzer/FuzzedDataProvider.h>
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-
-  if (!size)
-    return 0;
-
-  enum KeySize { AES128 = 16, AES192 = 24, AES256 = 32, kMaxValue = AES256 };
-
-  FuzzedDataProvider stream(data, size);
-  const KeySize keySize = stream.ConsumeEnum<KeySize>();
-  if (stream.remaining_bytes() < keySize)
-    return 0;
-
-  std::vector<uint8_t> keyBuf = stream.ConsumeBytes<uint8_t>(keySize);
-  const uint8_t *key = keyBuf.data();
-
-  BlockBase *state;
-  if (AES_start_operation(key, keySize, reinterpret_cast<AES_State **>(&state)))
-    return 0;
-
-  uint8_t outEnc[size];
-  uint8_t outDec[size];
-
-  AES_encrypt(reinterpret_cast<BlockBase *>(state), data, outEnc, size);
-  AES_decrypt(reinterpret_cast<BlockBase *>(state), data, outDec, size);
-
-  AES_stop_operation(reinterpret_cast<BlockBase *>(state));
-
-  return 0;
-}
diff --git a/projects/pycryptodome/pcd_hash_fuzzer.cc b/projects/pycryptodome/pcd_hash_fuzzer.cc
deleted file mode 100644
index 681f834..0000000
--- a/projects/pycryptodome/pcd_hash_fuzzer.cc
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "common.h"
-#include <fuzzer/FuzzedDataProvider.h>
-
-#ifndef HASHTYPE
-#error Macro HASHTYPE must be defined.
-#endif
-
-#ifndef FNAME
-#error Macro FNAME must be defined.
-#endif
-
-#define CONCAT_TYPE(x) _PASTE2(HASHTYPE, x)
-
-#define init CONCAT_TYPE(_init)
-#define update CONCAT_TYPE(_update)
-#define digest CONCAT_TYPE(_digest)
-#define destroy CONCAT_TYPE(_destroy)
-
-#define STR(x) #x
-#define INCLUDE(x) STR(x)
-
-#include INCLUDE(FNAME)
-
-#ifndef DIGEST_SIZE
-#error Macro DIGEST_SIZE must be defined.
-#endif
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-
-  if (!size)
-    return 0;
-
-  FuzzedDataProvider stream(data, size);
-  hash_state *hs;
-  if (init(&hs))
-    return 0;
-
-  while (stream.remaining_bytes()) {
-    size_t num_bytes = stream.ConsumeIntegral<size_t>();
-    std::vector<uint8_t> buffer = stream.ConsumeBytes<uint8_t>(num_bytes);
-
-    if (update(hs, buffer.data(), buffer.size()))
-      goto error;
-  }
-
-  uint8_t result[DIGEST_SIZE];
-
-#ifndef DIGEST_THIRD_PARAM
-  digest(hs, result);
-#else
-  digest(hs, result, DIGEST_SIZE);
-#endif
-
-error:
-  destroy(hs);
-  return 0;
-}
diff --git a/projects/pycryptodome/project.yaml b/projects/pycryptodome/project.yaml
deleted file mode 100644
index 0271bd9..0000000
--- a/projects/pycryptodome/project.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-homepage: "https://www.pycryptodome.org/"
-language: c
-primary_contact: "helderijs@gmail.com"
-main_repo: 'https://github.com/Legrandin/pycryptodome.git'
diff --git a/projects/pygments/Dockerfile b/projects/pygments/Dockerfile
deleted file mode 100644
index b23fc1b..0000000
--- a/projects/pygments/Dockerfile
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone \
-	--depth 1 \
-	--branch master \
-	https://github.com/pygments/pygments.git
-
-WORKDIR pygments
-
-RUN git clone --depth 1 https://github.com/google/fuzzing
-RUN cat fuzzing/dictionaries/aff.dict \
-        fuzzing/dictionaries/bash.dict \
-        fuzzing/dictionaries/creole.dict \
-        fuzzing/dictionaries/css.dict \
-        fuzzing/dictionaries/graphviz.dict \
-        fuzzing/dictionaries/fbs.dict \
-        fuzzing/dictionaries/html.dict \
-        fuzzing/dictionaries/jinja2.dict \
-        fuzzing/dictionaries/js.dict \
-        fuzzing/dictionaries/json.dict \
-        fuzzing/dictionaries/lua.dict \
-        fuzzing/dictionaries/markdown.dict \
-        fuzzing/dictionaries/mathml.dict \
-        fuzzing/dictionaries/pdf.dict \
-        fuzzing/dictionaries/protobuf.dict \
-        fuzzing/dictionaries/ps.dict \
-        fuzzing/dictionaries/regexp.dict \
-        fuzzing/dictionaries/rst.dict \
-        fuzzing/dictionaries/rtf.dict \
-        fuzzing/dictionaries/sql.dict \
-        fuzzing/dictionaries/svg.dict \
-        fuzzing/dictionaries/tex.dict \
-        fuzzing/dictionaries/toml.dict \
-        fuzzing/dictionaries/utf8.dict \
-        fuzzing/dictionaries/vcf.dict \
-        fuzzing/dictionaries/wkt.dict \
-        fuzzing/dictionaries/x86.dict \
-        fuzzing/dictionaries/xml.dict \
-        fuzzing/dictionaries/xpath.dict \
-        fuzzing/dictionaries/xslt.dict \
-        fuzzing/dictionaries/yaml.dict \
-        fuzzing/dictionaries/yara.dict \
-      > $OUT/pygments_fuzzer.dict
-
-COPY build.sh pygments_fuzzer.py $SRC/
diff --git a/projects/pygments/build.sh b/projects/pygments/build.sh
deleted file mode 100644
index 01924b5..0000000
--- a/projects/pygments/build.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Build and install project (using current CFLAGS, CXXFLAGS).
-pip3 install .
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find $SRC -name '*_fuzzer.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
-
-zip -j $OUT/files_fuzzer_seed_corpus.zip tests/examplefiles/*
diff --git a/projects/pygments/project.yaml b/projects/pygments/project.yaml
deleted file mode 100644
index e80b605..0000000
--- a/projects/pygments/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://pygments.org/"
-main_repo: "https://github.com/pygments/pygments"
-language: python
-primary_contact: "georg.brandl@gmail.com"
-auto_ccs:
-  - "jvoisin@google.com"
-  - "ipudney@google.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
diff --git a/projects/pygments/pygments_fuzzer.py b/projects/pygments/pygments_fuzzer.py
deleted file mode 100644
index 9d21ba3..0000000
--- a/projects/pygments/pygments_fuzzer.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-import atheris
-import pygments
-import pygments.formatters
-import pygments.lexers
-
-
-def TestOneInput(input_bytes):
-  fdp = atheris.FuzzedDataProvider(input_bytes)
-  data = fdp.ConsumeUnicode(atheris.ALL_REMAINING)
-
-  try:
-    lexer = pygments.lexers.guess_lexer(data)
-  except ValueError:
-    return
-  pygments.highlight(data, lexer, pygments.formatters.HtmlFormatter())
-
-
-def main():
-  atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
-  atheris.Fuzz()
-
-
-if __name__ == "__main__":
-  main()
diff --git a/projects/python-lz4/Dockerfile b/projects/python-lz4/Dockerfile
deleted file mode 100644
index 8598ed3..0000000
--- a/projects/python-lz4/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/python-lz4/python-lz4
-
-COPY build.sh $SRC/
-COPY fuzz_* $SRC/
-
-WORKDIR $SRC/python-lz4
-
diff --git a/projects/python-lz4/build.sh b/projects/python-lz4/build.sh
deleted file mode 100644
index 66f6419..0000000
--- a/projects/python-lz4/build.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-python3 setup.py install
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find $SRC -name 'fuzz_*.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_PRELOAD=\$this_dir/sanitizer_with_fuzzer.so \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/python-lz4/fuzz_lz4.py b/projects/python-lz4/fuzz_lz4.py
deleted file mode 100644
index ff6787d..0000000
--- a/projects/python-lz4/fuzz_lz4.py
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/python3
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import sys
-import atheris
-import lz4.frame
-
-def TestOneInput(data):
-    c =lz4.frame.compress(data)
-    d = lz4.frame.decompress(c)
-    assert(data == d)
-    return
-
-def main():
-    atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
-    atheris.Fuzz()
-
-if __name__ == "__main__":
-    main()
diff --git a/projects/python-lz4/project.yaml b/projects/python-lz4/project.yaml
deleted file mode 100644
index 0f13110..0000000
--- a/projects/python-lz4/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/lz4/lz4"
-language: python
-primary_contact: "jonathan.underwood@gmail.com"
-auto_ccs:
-  - "david@adalogics.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
-main_repo: 'https://github.com/lz4/lz4'
diff --git a/projects/python3-libraries/Dockerfile b/projects/python3-libraries/Dockerfile
index 3da576e..76467e2 100644
--- a/projects/python3-libraries/Dockerfile
+++ b/projects/python3-libraries/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 RUN apt-get install -y build-essential libncursesw5-dev libreadline-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev libbz2-dev zlib1g-dev libffi-dev
 RUN git clone https://github.com/python/cpython.git cpython
 RUN git clone --depth 1 https://github.com/guidovranken/python-library-fuzzers.git
diff --git a/projects/python3-libraries/build.sh b/projects/python3-libraries/build.sh
index 3da2935..0c75c07 100755
--- a/projects/python3-libraries/build.sh
+++ b/projects/python3-libraries/build.sh
@@ -59,6 +59,7 @@
 cp -R $CPYTHON_INSTALL_PATH $OUT/
 
 cd $SRC/python-library-fuzzers
+rm $CPYTHON_INSTALL_PATH/lib/python3.9/lib-dynload/_tkinter*.so
 make
 
 cp $SRC/python-library-fuzzers/fuzzer-html $OUT/
diff --git a/projects/python3-libraries/project.yaml b/projects/python3-libraries/project.yaml
index 2be3fe3..8292f3b 100644
--- a/projects/python3-libraries/project.yaml
+++ b/projects/python3-libraries/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://python.org/"
-language: c++
 primary_contact: "guidovranken@gmail.com"
 auto_ccs:
  - "gps@google.com"
@@ -7,7 +6,6 @@
  - "ammar@ammaraskar.com"
 fuzzing_engines:
   - libfuzzer
-  - honggfuzz
 sanitizers:
  - address
  - undefined
diff --git a/projects/pyyaml/Dockerfile b/projects/pyyaml/Dockerfile
deleted file mode 100644
index 3d5bc54..0000000
--- a/projects/pyyaml/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/yaml/pyyaml
-WORKDIR $SRC
-COPY build.sh $SRC/
-COPY fuzz_* $SRC/
diff --git a/projects/pyyaml/build.sh b/projects/pyyaml/build.sh
deleted file mode 100644
index de7d84c..0000000
--- a/projects/pyyaml/build.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-cd pyyaml
-python3 ./setup.py --without-libyaml install
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find $SRC -name 'fuzz_*.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_PRELOAD=\$this_dir/sanitizer_with_fuzzer.so \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/pyyaml/fuzz_loader.py b/projects/pyyaml/fuzz_loader.py
deleted file mode 100644
index 6600d84..0000000
--- a/projects/pyyaml/fuzz_loader.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import atheris
-
-import yaml
-
-
-def TestOneInput(input_bytes):
-  try:
-    context = yaml.load(input_bytes, Loader=yaml.FullLoader)
-  except yaml.YAMLError:
-    pass
-
-def main():
-  atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
-  atheris.Fuzz()
-
-
-if __name__ == "__main__":
-  main()
diff --git a/projects/pyyaml/fuzz_reader.py b/projects/pyyaml/fuzz_reader.py
deleted file mode 100644
index d7a0e2c..0000000
--- a/projects/pyyaml/fuzz_reader.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-import sys
-import atheris
-import yaml.reader
-
-def TestOneInput(data):
-    if len(data) < 1:
-        return 
-    try:
-        stream = yaml.reader.Reader(data)
-        while stream.peek() != u'\0':
-            stream.forward()
-    except yaml.reader.ReaderError:
-        None
-
-    return 
-
-def main():
-    atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
-    atheris.Fuzz()
-
-if __name__ == "__main__":
-    main()
diff --git a/projects/pyyaml/project.yaml b/projects/pyyaml/project.yaml
deleted file mode 100644
index aa329e7..0000000
--- a/projects/pyyaml/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/yaml/pyyaml"
-language: python
-primary_contact: "pyyaml@yaml.com"
-auto_ccs:
-  - "david@adalogics.com"
-  - "p.antoine@catenacyber.fr"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: "https://github.com/yaml/pyyaml"
diff --git a/projects/qcms/Dockerfile b/projects/qcms/Dockerfile
index c124a14..3f66e5d 100644
--- a/projects/qcms/Dockerfile
+++ b/projects/qcms/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER pdknsk@gmail.com
 RUN apt-get update && apt-get install -y mercurial
 RUN hg clone --uncompressed https://hg.mozilla.org/mozilla-central/
 COPY build.sh $SRC/
diff --git a/projects/qcms/build.sh b/projects/qcms/build.sh
index 0fda343..9b56aae 100644
--- a/projects/qcms/build.sh
+++ b/projects/qcms/build.sh
@@ -15,9 +15,23 @@
 #
 ################################################################################
 
-cargo fuzz build -O
+# moz.build
+$CC $CFLAGS -c \
+  -DNDEBUG -msse -msse2 -Wno-missing-field-initializers \
+  chain.c \
+  iccread.c \
+  matrix.c \
+  transform.cpp \
+  transform-sse1.cpp \
+  transform-sse2.cpp \
+  transform_util.c
 
-find fuzz -iname "*.icc" \
+$CXX $CXXFLAGS -std=c++11 \
+  -I. *.o \
+  -DBUILD_FOR_OSSFUZZ \
+  $LIB_FUZZING_ENGINE \
+  fuzztest/qcms_fuzzer.cpp -o $OUT/fuzz
+
+find fuzztest -iname "*.icc" \
   -type f -exec zip -qju $OUT/fuzz_seed_corpus.zip "{}" \;
-cp fuzz/qcms_fuzzer.dict $OUT/fuzz.dict
-cp fuzz/target/x86_64-unknown-linux-gnu/release/fuzz_target_qcms $OUT/fuzz
+cp fuzztest/qcms_fuzzer.dict $OUT/fuzz.dict
diff --git a/projects/qcms/project.yaml b/projects/qcms/project.yaml
index fef3fb9..1a826aa 100644
--- a/projects/qcms/project.yaml
+++ b/projects/qcms/project.yaml
@@ -1,10 +1,10 @@
 homepage: "https://hg.mozilla.org/mozilla-central/file/tip/gfx/qcms/"
-language: rust
 primary_contact: "twsmith@mozilla.com"
-auto_ccs:
-  - "aosmond@mozilla.com"
-  - "jmuizelaar@mozilla.com"
-fuzzing_engines:
-  - libfuzzer
 sanitizers:
-  - address
+- address
+- undefined
+- memory
+auto_ccs:
+- "aosmond@mozilla.com"
+- "jmuizelaar@mozilla.com"
+- "cdiehl@mozilla.com"
diff --git a/projects/qemu/Dockerfile b/projects/qemu/Dockerfile
deleted file mode 100644
index 779fc39..0000000
--- a/projects/qemu/Dockerfile
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool \
-    libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev patchelf wget \
-    libattr1 libattr1-dev libcap-ng-dev
-# Ninja in the apt repos is too old. Get it directly from github
-RUN wget https://github.com/ninja-build/ninja/releases/latest/download/ninja-linux.zip \
-    && unzip ninja-linux.zip \
-    && rm ninja-linux.zip \
-    && mv ninja /usr/bin/ninja
-RUN git clone --depth 1 https://git.qemu.org/git/qemu.git qemu
-WORKDIR qemu
-RUN cp scripts/oss-fuzz/build.sh $SRC
diff --git a/projects/qemu/project.yaml b/projects/qemu/project.yaml
deleted file mode 100644
index 0974830..0000000
--- a/projects/qemu/project.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-homepage: "https://www.qemu.org/"
-language: c
-primary_contact: "alxndr@bu.edu"
-auto_ccs:
-  - "bsd@redhat.com"
-  - "pbonzini@redhat.com"
-  - "stefanha@redhat.com"
-  - "darren.kenny@oracle.com"
-  - "lichenca2020@gmail.com"
-sanitizers:
-  - address
-  - undefined
-fuzzing_engines:
-  - libfuzzer
-architectures:
-  - x86_64
-main_repo: 'https://git.qemu.org/git/qemu.git'
diff --git a/projects/qpdf/Dockerfile b/projects/qpdf/Dockerfile
index 2c48bc5..932c60a 100644
--- a/projects/qpdf/Dockerfile
+++ b/projects/qpdf/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER ejb@ql.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool cmake nasm
 RUN git clone --depth 1 https://github.com/qpdf/qpdf.git qpdf
 RUN git clone --depth 1 https://github.com/madler/zlib.git zlib
diff --git a/projects/qpdf/project.yaml b/projects/qpdf/project.yaml
index 4415052..16f9a91 100644
--- a/projects/qpdf/project.yaml
+++ b/projects/qpdf/project.yaml
@@ -1,8 +1,6 @@
 homepage: "http://qpdf.sourceforge.net/"
-language: c++
 primary_contact: "qberkenbilt@gmail.com"
 sanitizers:
   - address
   - undefined
   - memory
-main_repo: 'https://github.com/qpdf/qpdf.git'
diff --git a/projects/qpid-proton/Dockerfile b/projects/qpid-proton/Dockerfile
index ca113d8..956a659 100644
--- a/projects/qpid-proton/Dockerfile
+++ b/projects/qpid-proton/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jdanek@redhat.com
 RUN apt-get update && \
     apt-get install -y \
         cmake
diff --git a/projects/qpid-proton/project.yaml b/projects/qpid-proton/project.yaml
index e083e90..cdebcab 100644
--- a/projects/qpid-proton/project.yaml
+++ b/projects/qpid-proton/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://qpid.apache.org/proton/"
-language: c++
 primary_contact: "jross@apache.org"
 auto_ccs:
  - "security@apache.org"
@@ -9,4 +8,3 @@
  - address
  - memory
  - undefined
-main_repo: 'https://github.com/apache/qpid-proton.git'
diff --git a/projects/qt/Dockerfile b/projects/qt/Dockerfile
index 4d5e91d..7d325ca 100644
--- a/projects/qt/Dockerfile
+++ b/projects/qt/Dockerfile
@@ -15,14 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y ninja-build libc6-dev:i386
-RUN git clone --depth 1 https://github.com/AFLplusplus/AFLplusplus.git myaflplusplus && \
-    cp -r myaflplusplus/dictionaries afldictionaries && \
-    cp -r myaflplusplus/testcases afltestcases && \
-    rm -rf myaflplusplus
-RUN git clone --branch dev --depth 1 --shallow-submodules \
-        --recurse-submodules=qtbase \
-        --recurse-submodules=qtsvg \
-        git://code.qt.io/qt/qt5.git qt
-RUN git clone --branch dev --depth 1 git://code.qt.io/qt/qtqa.git
-RUN cp qtqa/fuzzing/oss-fuzz/build.sh $SRC/
+MAINTAINER rlohningqt@gmail.com
+RUN apt-get update && apt-get install -y build-essential python libxcb-xinerama0-dev && apt-get install --no-install-recommends afl-doc
+RUN git clone --branch 5.15 --depth 1 git://code.qt.io/qt/qt5.git qt
+WORKDIR qt
+RUN perl init-repository --module-subset=qtbase
+
+WORKDIR $SRC
+RUN git clone --depth 1 git://code.qt.io/qt/qtqa.git
+COPY build.sh $SRC/
diff --git a/projects/qt/build.sh b/projects/qt/build.sh
new file mode 100755
index 0000000..619cdcd
--- /dev/null
+++ b/projects/qt/build.sh
@@ -0,0 +1,65 @@
+#!/bin/bash -eu
+# Copyright 2019 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+# add the flags to Qt build, gratefully borrowed from karchive
+cd $SRC/qt/qtbase/mkspecs
+sed -i -e "s/QMAKE_CXXFLAGS    += -stdlib=libc++/QMAKE_CXXFLAGS    += -stdlib=libc++  $CXXFLAGS\nQMAKE_CFLAGS += $CFLAGS/g" linux-clang-libc++/qmake.conf
+sed -i -e "s/QMAKE_LFLAGS      += -stdlib=libc++/QMAKE_LFLAGS      += -stdlib=libc++ -lpthread $CXXFLAGS/g" linux-clang-libc++/qmake.conf
+
+# set optimization to O1
+sed -i -e "s/QMAKE_CFLAGS_OPTIMIZE      = -O2/QMAKE_CFLAGS_OPTIMIZE      = -O1/g" common/gcc-base.conf
+sed -i -e "s/QMAKE_CFLAGS_OPTIMIZE_FULL = -O3/QMAKE_CFLAGS_OPTIMIZE_FULL = -O1/g" common/gcc-base.conf
+
+# build project
+cd $WORK
+MAKEFLAGS=-j$(nproc) $SRC/qt/configure -platform linux-clang-libc++ -static -opensource -confirm-license -no-opengl -nomake tests -nomake examples -prefix $OUT
+make -j$(nproc)
+make install
+
+# prepare corpus files
+zip -j $WORK/html $SRC/qtqa/fuzzing/testcases/html/*
+zip -j $WORK/markdown $SRC/qtqa/fuzzing/testcases/markdown/*
+zip -j $WORK/xml $SRC/qtqa/fuzzing/testcases/xml/* /usr/share/afl/testcases/others/xml/*
+
+# build fuzzers
+
+build_fuzzer() {
+    local module=$1
+    local proFilePath=$2
+    local format=${3-""}
+    local dictionary=${4-""}
+    local proFileName=${proFilePath##*/}
+    local exeName=${proFileName%%.*}
+    mkdir build_fuzzer
+    cd build_fuzzer
+    $OUT/bin/qmake $SRC/qt/$module/tests/libfuzzer/$proFilePath
+    make -j$(nproc)
+    mv $exeName $OUT
+    if [ -n "$format" ]; then
+        cp $WORK/$format.zip $OUT/"$exeName"_seed_corpus.zip
+    fi
+    if [ -n "$dictionary" ]; then
+        cp $dictionary $OUT/$exeName.dict
+    fi
+    cd ..
+    rm -r build_fuzzer
+}
+
+build_fuzzer "qtbase" "corelib/serialization/qxmlstream/qxmlstreamreader/readnext/readnext.pro" "xml" "/usr/share/afl/testcases/_extras/xml.dict"
+# build_fuzzer "qtbase" "gui/text/qtextdocument/setHtml/setHtml.pro" "html" "/usr/share/afl/testcases/_extras/html_tags.dict"
+build_fuzzer "qtbase" "gui/text/qtextdocument/setMarkdown/setMarkdown.pro" "markdown"
+build_fuzzer "qtbase" "gui/text/qtextlayout/beginLayout/beginLayout.pro"
diff --git a/projects/qt/project.yaml b/projects/qt/project.yaml
index 9410067..960b3bf 100644
--- a/projects/qt/project.yaml
+++ b/projects/qt/project.yaml
@@ -1,9 +1,4 @@
 homepage: "http://qt-project.org"
-language: c++
 primary_contact: "rlohningqt@gmail.com"
-auto_ccs:
- - "shawn.t.rutledge@gmail.com"
-architectures:
- - x86_64
- - i386
-main_repo: 'git://code.qt.io/qt/qt5.git'
+sanitizers:
+ - address
diff --git a/projects/qubes-os/Dockerfile b/projects/qubes-os/Dockerfile
index a955c69..b6cd045 100644
--- a/projects/qubes-os/Dockerfile
+++ b/projects/qubes-os/Dockerfile
@@ -15,15 +15,14 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER paras.chetal@gmail.com
 
 RUN apt-get update && apt-get -y install build-essential automake libtool git python libsystemd-dev
 
 WORKDIR qubes-os
 
-RUN git clone --single-branch https://github.com/QubesOS/qubes-app-linux-input-proxy $SRC/qubes-os/app-linux-input-proxy
+RUN git        clone --single-branch https://github.com/QubesOS/qubes-app-linux-input-proxy $SRC/qubes-os/app-linux-input-proxy
 
 RUN git clone --single-branch https://github.com/QubesOS/qubes-core-qubesdb $SRC/qubes-os/qubes-core-qubesdb
 
-RUN git clone --single-branch https://github.com/QubesOS/qubes-core-qrexec $SRC/qubes-os/qubes-core-qrexec
-
 COPY build.sh *.options $SRC/
diff --git a/projects/qubes-os/build.sh b/projects/qubes-os/build.sh
index 09cb2d9..372a478 100644
--- a/projects/qubes-os/build.sh
+++ b/projects/qubes-os/build.sh
@@ -17,7 +17,7 @@
 
 if [ "$SANITIZER" != 'undefined' ]; then
 	cd $SRC/qubes-os/app-linux-input-proxy
-
+ 
 	make -C fuzz
 	cp fuzz/*_fuzzer $OUT/
 	cp fuzz/*_seed_corpus.zip $OUT/
@@ -30,10 +30,3 @@
 cp fuzz/*_fuzzer $OUT/
 cp fuzz/*_seed_corpus.zip $OUT/
 cp fuzz/*.options $OUT/
-
-cd $SRC/qubes-os/qubes-core-qrexec
-
-make -C fuzz
-cp fuzz/*_fuzzer $OUT/
-cp fuzz/*_seed_corpus.zip $OUT/
-cp fuzz/*.options $OUT/
diff --git a/projects/qubes-os/project.yaml b/projects/qubes-os/project.yaml
index b05c9d0..deab4bd 100644
--- a/projects/qubes-os/project.yaml
+++ b/projects/qubes-os/project.yaml
@@ -1,18 +1,9 @@
 homepage: "https://www.qubes-os.org/"
-language: c++
 primary_contact: "jpo@vt.edu"
 auto_ccs:
+ - "joanna@invisiblethingslab.com"
  - "marmarek@invisiblethingslab.com"
- - "pawel@invisiblethingslab.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
-sanitizers:
-  - address
-  - undefined
-  - dataflow
+ - "paras.chetal@gmail.com"
 architectures:
   - x86_64
   - i386
diff --git a/projects/quic-go/Dockerfile b/projects/quic-go/Dockerfile
deleted file mode 100644
index 9ee792c..0000000
--- a/projects/quic-go/Dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone --depth 1 https://github.com/marten-seemann/qpack/ && \
-  cd qpack && \
-  go build
-
-RUN git clone --depth 1 https://github.com/lucas-clemente/quic-go/ && \
-  cd quic-go && \
-  go build
-
-COPY build.sh .
diff --git a/projects/quic-go/build.sh b/projects/quic-go/build.sh
deleted file mode 100644
index 4ed3b62..0000000
--- a/projects/quic-go/build.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-set -ex
-
-(
-cd qpack
-# Fuzz qpack
-compile_go_fuzzer github.com/marten-seemann/qpack/fuzzing Fuzz qpack_fuzzer
-)
-
-(
-cd quic-go
-# Fuzz quic-go
-compile_go_fuzzer github.com/lucas-clemente/quic-go/fuzzing/frames Fuzz frame_fuzzer
-compile_go_fuzzer github.com/lucas-clemente/quic-go/fuzzing/header Fuzz header_fuzzer
-compile_go_fuzzer github.com/lucas-clemente/quic-go/fuzzing/transportparameters Fuzz transportparameter_fuzzer
-compile_go_fuzzer github.com/lucas-clemente/quic-go/fuzzing/tokens Fuzz token_fuzzer
-compile_go_fuzzer github.com/lucas-clemente/quic-go/fuzzing/handshake Fuzz handshake_fuzzer
-
-if [ $SANITIZER == "coverage" ]; then
-    # no need for corpuses if coverage
-    exit 0
-fi
-# generate seed corpora
-go generate ./fuzzing/...
-
-zip --quiet -r $OUT/header_fuzzer_seed_corpus.zip fuzzing/header/corpus
-zip --quiet -r $OUT/frame_fuzzer_seed_corpus.zip fuzzing/frames/corpus
-zip --quiet -r $OUT/transportparameter_fuzzer_seed_corpus.zip fuzzing/transportparameters/corpus
-zip --quiet -r $OUT/handshake_fuzzer_seed_corpus.zip fuzzing/handshake/corpus
-)
-
-# for debugging
-ls -al $OUT
diff --git a/projects/quic-go/project.yaml b/projects/quic-go/project.yaml
deleted file mode 100644
index 445b3d2..0000000
--- a/projects/quic-go/project.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-homepage: "https://github.com/lucas-clemente/quic-go"
-primary_contact: "martenseemann@gmail.com"
-language: go
-fuzzing_engines:
-- libfuzzer
-sanitizers:
-- address
-main_repo: 'https://github.com/lucas-clemente/quic-go'
diff --git a/projects/quickjs/Dockerfile b/projects/quickjs/Dockerfile
deleted file mode 100644
index 3e72ada..0000000
--- a/projects/quickjs/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make
-RUN git clone --depth 1 https://github.com/bellard/quickjs quickjs
-WORKDIR $SRC/quickjs
-COPY build.sh $SRC/
-COPY fuzz*.c $SRC/
diff --git a/projects/quickjs/build.sh b/projects/quickjs/build.sh
deleted file mode 100755
index 3ab6802..0000000
--- a/projects/quickjs/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build quickjs
-# Makefile should not override CFLAGS
-sed -i -e 's/CFLAGS=/CFLAGS+=/' Makefile
-CONFIG_CLANG=y make libquickjs.a
-zip -r $OUT/fuzz_eval_seed_corpus.zip tests/*.js
-zip -r $OUT/fuzz_eval_seed_corpus.zip examples/*.js
-zip -r $OUT/fuzz_compile_seed_corpus.zip tests/*.js
-zip -r $OUT/fuzz_compile_seed_corpus.zip examples/*.js
-
-cd ..
-FUZZ_TARGETS="fuzz_eval fuzz_compile fuzz_regexp"
-for f in $FUZZ_TARGETS; do
-    $CC $CFLAGS -Iquickjs -c $f.c -o $f.o
-    $CXX $CXXFLAGS $f.o -o $OUT/$f quickjs/libquickjs.a $LIB_FUZZING_ENGINE
-done
diff --git a/projects/quickjs/fuzz_compile.c b/projects/quickjs/fuzz_compile.c
deleted file mode 100644
index 4c1537c..0000000
--- a/projects/quickjs/fuzz_compile.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright 2020 Google Inc.
- 
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- 
- http://www.apache.org/licenses/LICENSE-2.0
- 
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-#include "quickjs-libc.h"
-#include "cutils.h"
-
-#include <stdint.h>
-#include <stdio.h>
-
-static int initialized = 0;
-JSRuntime *rt;
-JSContext *ctx;
-static int nbinterrupts = 0;
-
-// handle timeouts from infinite loops
-static int interrupt_handler(JSRuntime *rt, void *opaque)
-{
-    nbinterrupts++;
-    return (nbinterrupts > 100);
-}
-
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
-    if (initialized == 0) {
-        rt = JS_NewRuntime();
-        // 64 Mo
-        JS_SetMemoryLimit(rt, 0x4000000);
-        //TODO JS_SetMaxStackSize ?
-        ctx = JS_NewContextRaw(rt);
-        JS_SetModuleLoaderFunc(rt, NULL, js_module_loader, NULL);
-        JS_AddIntrinsicBaseObjects(ctx);
-        JS_AddIntrinsicDate(ctx);
-        JS_AddIntrinsicEval(ctx);
-        JS_AddIntrinsicStringNormalize(ctx);
-        JS_AddIntrinsicRegExp(ctx);
-        JS_AddIntrinsicJSON(ctx);
-        JS_AddIntrinsicProxy(ctx);
-        JS_AddIntrinsicMapSet(ctx);
-        JS_AddIntrinsicTypedArrays(ctx);
-        JS_AddIntrinsicPromise(ctx);
-        JS_AddIntrinsicBigInt(ctx);
-        JS_SetInterruptHandler(JS_GetRuntime(ctx), interrupt_handler, NULL);
-        js_std_add_helpers(ctx, 0, NULL);
-        initialized = 1;
-    }
-
-    if (Size > 0) {
-        if (Data[Size-1] != 0) {
-            return 0;
-        }
-        JSValue obj;
-        obj = JS_Eval(ctx, (const char *)Data, Size-1, "<none>", JS_EVAL_FLAG_COMPILE_ONLY | JS_EVAL_TYPE_GLOBAL | JS_EVAL_TYPE_MODULE);
-        //TODO target with JS_ParseJSON
-        if (JS_IsException(obj)) {
-            return 0;
-        }
-        size_t bytecode_size;
-        uint8_t* bytecode = JS_WriteObject(ctx, &bytecode_size, obj, JS_WRITE_OBJ_BYTECODE);
-        JS_FreeValue(ctx, obj);
-        if ( !bytecode ) {
-            return 0;
-        }
-        obj = JS_ReadObject(ctx, bytecode, bytecode_size, JS_READ_OBJ_BYTECODE);
-        if (JS_IsException(obj)) {
-            js_free(ctx, bytecode);
-            return 0;
-        }
-        nbinterrupts = 0;
-        /* this is based on
-         * js_std_eval_binary(ctx, bytecode, bytecode_size, 0);
-         * modified so as not to exit on JS exception
-         */
-        JSValue val;
-        if (JS_VALUE_GET_TAG(obj) == JS_TAG_MODULE) {
-            if (JS_ResolveModule(ctx, obj) < 0) {
-                JS_FreeValue(ctx, obj);
-                js_free(ctx, bytecode);
-                return 0;
-            }
-            js_module_set_import_meta(ctx, obj, FALSE, TRUE);
-        }
-        val = JS_EvalFunction(ctx, obj);
-        if (JS_IsException(val)) {
-            js_std_dump_error(ctx);
-        } else {
-            js_std_loop(ctx);
-        }
-        JS_FreeValue(ctx, val);
-        js_free(ctx, bytecode);
-    }
-
-    return 0;
-}
diff --git a/projects/quickjs/fuzz_eval.c b/projects/quickjs/fuzz_eval.c
deleted file mode 100644
index 6ba443f..0000000
--- a/projects/quickjs/fuzz_eval.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright 2020 Google Inc.
- 
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- 
- http://www.apache.org/licenses/LICENSE-2.0
- 
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-#include "quickjs-libc.h"
-
-#include <stdint.h>
-#include <stdio.h>
-
-static int initialized = 0;
-JSRuntime *rt;
-JSContext *ctx;
-static int nbinterrupts = 0;
-
-// handle timeouts from infinite loops
-static int interrupt_handler(JSRuntime *rt, void *opaque)
-{
-    nbinterrupts++;
-    return (nbinterrupts > 100);
-}
-
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
-    if (initialized == 0) {
-        rt = JS_NewRuntime();
-        // 64 Mo
-        JS_SetMemoryLimit(rt, 0x4000000);
-        //TODO JS_SetMaxStackSize ?
-        ctx = JS_NewContextRaw(rt);
-        JS_SetModuleLoaderFunc(rt, NULL, js_module_loader, NULL);
-        JS_AddIntrinsicBaseObjects(ctx);
-        JS_AddIntrinsicDate(ctx);
-        JS_AddIntrinsicEval(ctx);
-        JS_AddIntrinsicStringNormalize(ctx);
-        JS_AddIntrinsicRegExp(ctx);
-        JS_AddIntrinsicJSON(ctx);
-        JS_AddIntrinsicProxy(ctx);
-        JS_AddIntrinsicMapSet(ctx);
-        JS_AddIntrinsicTypedArrays(ctx);
-        JS_AddIntrinsicPromise(ctx);
-        JS_AddIntrinsicBigInt(ctx);
-        JS_SetInterruptHandler(JS_GetRuntime(ctx), interrupt_handler, NULL);
-        js_std_add_helpers(ctx, 0, NULL);
-        initialized = 1;
-    }
-
-    if (Size > 0) {
-        //is it more efficient to malloc(Size+1) and memcpy ?
-        if (Data[Size-1] != 0) {
-            return 0;
-        }
-        nbinterrupts = 0;
-        //the final 0 does not count (as in strlen)
-        JSValue val = JS_Eval(ctx, (const char *)Data, Size-1, "<none>", JS_EVAL_TYPE_GLOBAL);
-        //TODO targets with JS_ParseJSON, JS_ReadObject
-        if (!JS_IsException(val)) {
-            js_std_loop(ctx);
-            JS_FreeValue(ctx, val);
-        }
-    }
-
-    return 0;
-}
diff --git a/projects/quickjs/fuzz_regexp.c b/projects/quickjs/fuzz_regexp.c
deleted file mode 100644
index f404563..0000000
--- a/projects/quickjs/fuzz_regexp.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright 2020 Google Inc.
- 
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- 
- http://www.apache.org/licenses/LICENSE-2.0
- 
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-#include "libregexp.h"
-#include "quickjs-libc.h"
-
-#include <stdint.h>
-#include <stdio.h>
-
-#define CAPTURE_COUNT_MAX 255
-
-FILE *outfile=NULL;
-JSRuntime *rt;
-JSContext *ctx;
-
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
-    if (outfile == NULL) {
-        outfile = fopen("/dev/null", "w");
-        rt = JS_NewRuntime();
-        // 64 Mo
-        JS_SetMemoryLimit(rt, 0x4000000);
-        //TODO JS_SetMaxStackSize ?
-        ctx = JS_NewContextRaw(rt);
-    }
-    int len, ret, i;
-    uint8_t *bc;
-    char error_msg[64];
-    const uint8_t *input;
-    uint8_t *capture[CAPTURE_COUNT_MAX * 2];
-    int capture_count;
-    size_t Size1=Size;
-
-    //Splits buffer into 2 sub buffers delimited by null character
-    for (i=0; i<Size; i++) {
-        if (Data[i] == 0) {
-            Size1=i;
-            break;
-        }
-    }
-    if (Size1 == Size) {
-        //missing delimiter
-        return 0;
-    }
-    bc = lre_compile(&len, error_msg, sizeof(error_msg), (const char *) Data,
-                     Size1, 0, ctx);
-    if (!bc) {
-        return 0;
-    }
-    input = Data+Size1+1;
-    ret = lre_exec(capture, bc, input, 0, Size-(Size1+1), 0, ctx);
-    if (ret == 1) {
-        capture_count = lre_get_capture_count(bc);
-        for(i = 0; i < 2 * capture_count; i++) {
-            uint8_t *ptr;
-            ptr = capture[i];
-            fprintf(outfile, "%d: ", i);
-            if (!ptr)
-                fprintf(outfile, "<nil>");
-            else
-                fprintf(outfile, "%u", (int)(ptr - (uint8_t *)input));
-            fprintf(outfile, "\n");
-        }
-    }
-    free(bc);
-
-    return 0;
-}
diff --git a/projects/quickjs/project.yaml b/projects/quickjs/project.yaml
deleted file mode 100644
index 7bc6d09..0000000
--- a/projects/quickjs/project.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-homepage: "https://bellard.org/quickjs/"
-language: c
-primary_contact: "fabrice.bellard@gmail.com"
-auto_ccs :
-- "p.antoine@catenacyber.fr"
-vendor_ccs :
-- "apascovici@google.com"
-
-sanitizers:
-- address
-
-blackbox: true  # also use a blackbox fuzzer for this project.
-main_repo: 'https://github.com/horhof/quickjs'
diff --git a/projects/radare2/Dockerfile b/projects/radare2/Dockerfile
index b0140e0..c5ab9ca 100644
--- a/projects/radare2/Dockerfile
+++ b/projects/radare2/Dockerfile
@@ -1,4 +1,5 @@
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER zlowram@gmail.com
 RUN apt-get update
 RUN git clone https://github.com/radare/radare2 radare2
 RUN git clone https://github.com/radare/radare2-regressions radare2-regressions
diff --git a/projects/radare2/project.yaml b/projects/radare2/project.yaml
index 9434e18..48aebdd 100644
--- a/projects/radare2/project.yaml
+++ b/projects/radare2/project.yaml
@@ -1,9 +1,7 @@
 homepage: "https://github.com/radare/radare2"
-language: c++
 primary_contact: "pancake@nopcode.org"
 auto_ccs:
   - "zlowram@gmail.com"
 sanitizers:
   - address
 run_tests: False
-main_repo: 'https://github.com/radare/radare2'
diff --git a/projects/radon/Dockerfile b/projects/radon/Dockerfile
deleted file mode 100644
index fe4c6ca..0000000
--- a/projects/radon/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/radondb/radon
-COPY build.sh $SRC/
-WORKDIR $SRC/radon
diff --git a/projects/radon/build.sh b/projects/radon/build.sh
deleted file mode 100644
index ffc9789..0000000
--- a/projects/radon/build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-cd ./src/fuzz/sqlparser
-go mod init github.com/radondb/radon/src/fuzz/sqlparser
-compile_go_fuzzer . Fuzz fuzz
diff --git a/projects/radon/project.yaml b/projects/radon/project.yaml
deleted file mode 100644
index ae4bcfe..0000000
--- a/projects/radon/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/radondb/radon"
-primary_contact: "overred.shuttler@gmail.com"
-auto_ccs :
-  - "adam@adalogics.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/radondb/radon'
diff --git a/projects/rapidjson/Dockerfile b/projects/rapidjson/Dockerfile
index 81df5f1..afd7ea5 100644
--- a/projects/rapidjson/Dockerfile
+++ b/projects/rapidjson/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool cmake
 RUN git clone --depth 1 https://github.com/Tencent/rapidjson.git rapidjson
 RUN git clone --depth 1 https://github.com/guidovranken/rapidjson-fuzzers.git rapidjson-fuzzers
diff --git a/projects/rapidjson/build.sh b/projects/rapidjson/build.sh
index d94be1a..0dec111 100755
--- a/projects/rapidjson/build.sh
+++ b/projects/rapidjson/build.sh
@@ -28,8 +28,5 @@
 $CXX $CXXFLAGS -D_GLIBCXX_DEBUG -I $SRC/rapidjson/include fuzzer.cpp $LIB_FUZZING_ENGINE -o $OUT/fuzzer
 cp fuzzer_seed_corpus.zip $OUT
 
-# Disabled because compiliation fails for reasons unknown.
-# Using the exact same compile commands locally does not fail.
-# Try enabling again in the future.
-#cd $SRC/fuzzing-headers/tests
-#$CXX $CXXFLAGS -std=c++2a -D_GLIBCXX_DEBUG -I $SRC/rapidjson/include -I ../include rapidjson.cpp $LIB_FUZZING_ENGINE -o $OUT/fuzzer-extended
+cd $SRC/fuzzing-headers/tests
+$CXX $CXXFLAGS -std=c++2a -D_GLIBCXX_DEBUG -I $SRC/rapidjson/include -I ../include rapidjson.cpp $LIB_FUZZING_ENGINE -o $OUT/fuzzer-extended
diff --git a/projects/rapidjson/project.yaml b/projects/rapidjson/project.yaml
index 41b6cb3..573235a 100644
--- a/projects/rapidjson/project.yaml
+++ b/projects/rapidjson/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/tencent/rapidjson"
-language: c++
 primary_contact: "guidovranken@gmail.com"
 sanitizers:
  - address
@@ -9,4 +8,3 @@
 architectures:
  - x86_64
  - i386
-main_repo: 'https://github.com/Tencent/rapidjson.git'
diff --git a/projects/rdkit/Dockerfile b/projects/rdkit/Dockerfile
deleted file mode 100644
index 1dad793..0000000
--- a/projects/rdkit/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y wget libeigen3-dev
-
-RUN git clone --depth 1 https://github.com/rdkit/rdkit.git $SRC/rdkit
-WORKDIR $SRC/rdkit
-COPY build.sh $SRC/
diff --git a/projects/rdkit/build.sh b/projects/rdkit/build.sh
deleted file mode 100755
index 2ad830e..0000000
--- a/projects/rdkit/build.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Build zlib
-git clone --depth 1 -b master https://github.com/madler/zlib.git $SRC/zlib
-cd $SRC/zlib
-OLD_CFLAGS="$CFLAGS"
-export LDFLAGS="-fPIC $CFLAGS"
-export CFLAGS="-fPIC $CFLAGS"
-# Only build static libraries, so we don't accidentally link to zlib dynamically.
-./configure --static
-make -j$(nproc) clean
-make -j$(nproc) all install
-unset LDFLAGS
-export CFLAGS="$OLD_CFLAGS"
-
-# We're building `rdkit` using clang, but the boost package is built using gcc.
-# For whatever reason, linking would fail.
-# (Mismatch between libstdc++ and libc++ maybe?)
-# It works if we build `rdkit` using gcc or build boost using clang instead.
-# We've opted for building boost using clang.
-cd $SRC && \
-wget --quiet https://sourceforge.net/projects/boost/files/boost/1.69.0/boost_1_69_0.tar.bz2 && \
-tar xjf boost_1_69_0.tar.bz2 && \
-cd $SRC/boost_1_69_0 && \
-./bootstrap.sh --with-toolset=clang --with-libraries=serialization,system,iostreams,regex && \
-./b2 -q -j$(nproc) toolset=clang linkflags="-fPIC $CXXFLAGS $CXXFLAGS_EXTRA" cxxflags="-fPIC $CXXFLAGS $CXXFLAGS_EXTRA" link=static install
-
-cd $SRC/rdkit
-
-mkdir -p build && cd build
-cmake -DRDK_BUILD_PYTHON_WRAPPERS=OFF -DRDK_BUILD_FREETYPE_SUPPORT=OFF -DLIB_FUZZING_ENGINE=${LIB_FUZZING_ENGINE} -DRDK_BUILD_FUZZ_TARGETS=ON -DRDK_INSTALL_STATIC_LIBS=ON -DBoost_USE_STATIC_LIBS=ON ..
-make -j$(nproc)
-make install
-
-# Leave build directory
-cd ..
-
-# Copy the fuzzer executables, zip-ed corpora, options and dictionary files to $OUT
-find . -type f -name '*_fuzzer' -exec cp -v '{}' $OUT ';'
-find . -type f -name '*_fuzzer.dict' -exec cp -v '{}' $OUT ';'
-#find . -type f -name '*_fuzzer.options' -exec cp -v '{}' $OUT ';'
-corpora=$(find . -type d -name "*_fuzzer")
-for corpus in $corpora; do
-	corpus_basename=$(basename $corpus)
-	zip -j $OUT/${corpus_basename}_seed_corpus.zip ${corpus}/*
-done
diff --git a/projects/rdkit/project.yaml b/projects/rdkit/project.yaml
deleted file mode 100644
index dd67ad1..0000000
--- a/projects/rdkit/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/rdkit/rdkit"
-language: c++
-primary_contact: "greg.landrum@gmail.com"
-sanitizers:
-  - address
-  - undefined
-  - memory
-architectures:
-  - x86_64
-  - i386
-main_repo: 'https://github.com/rdkit/rdkit.git'
diff --git a/projects/re2/Dockerfile b/projects/re2/Dockerfile
index 5f948da..038e09c 100644
--- a/projects/re2/Dockerfile
+++ b/projects/re2/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER wrengr@chromium.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 
 RUN git clone --depth 1 https://code.googlesource.com/re2
diff --git a/projects/re2/project.yaml b/projects/re2/project.yaml
index 0fc1f83..9bb9955 100644
--- a/projects/re2/project.yaml
+++ b/projects/re2/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://code.googlesource.com/re2"
-language: c++
 primary_contact: "junyer@google.com"
 sanitizers:
   - address
@@ -8,4 +7,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://code.googlesource.com/re2'
diff --git a/projects/readstat/Dockerfile b/projects/readstat/Dockerfile
index d68a1ae..c8e4759 100644
--- a/projects/readstat/Dockerfile
+++ b/projects/readstat/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER emmiller@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake gettext libtool zip zlib1g-dev
 
 RUN git clone --depth 1 https://github.com/WizardMac/ReadStat readstat
diff --git a/projects/readstat/project.yaml b/projects/readstat/project.yaml
index d8b46b0..a171f5e 100644
--- a/projects/readstat/project.yaml
+++ b/projects/readstat/project.yaml
@@ -1,4 +1,2 @@
 homepage: "https://github.com/WizardMac/ReadStat"
-language: c++
 primary_contact: "emmiller@gmail.com"
-main_repo: 'https://github.com/WizardMac/ReadStat'
diff --git a/projects/relic/Dockerfile b/projects/relic/Dockerfile
deleted file mode 100644
index 23b426b..0000000
--- a/projects/relic/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool wget python
-RUN git clone --depth 1 https://github.com/relic-toolkit/relic.git
-RUN git clone --depth 1 https://github.com/randombit/botan.git
-RUN git clone --depth 1 https://github.com/guidovranken/cryptofuzz
-RUN wget https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2
-COPY build.sh $SRC/
diff --git a/projects/relic/build.sh b/projects/relic/build.sh
deleted file mode 100755
index 552b14f..0000000
--- a/projects/relic/build.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NO_OPENSSL"
-export LIBFUZZER_LINK="$LIB_FUZZING_ENGINE"
-
-# Install Boost headers
-cd $SRC/
-tar jxf boost_1_74_0.tar.bz2
-cd boost_1_74_0/
-CFLAGS="" CXXFLAGS="" ./bootstrap.sh
-CFLAGS="" CXXFLAGS="" ./b2 headers
-cp -R boost/ /usr/include/
-
-# Prevent Boost compilation error with -std=c++17
-export CXXFLAGS="$CXXFLAGS -D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR"
-
-# Build Relic
-cd $SRC/relic/
-mkdir build/
-cd build/
-if [[ $CFLAGS = *-m32* ]]
-then
-    export RELIC_ARCH="X86"
-else
-    export RELIC_ARCH="X64"
-fi
-cmake .. -DCOMP="$CFLAGS" -DQUIET=on -DRAND=CALL -DSHLIB=off -DSTBIN=off -DTESTS=0 -DBENCH=0 -DALLOC=DYNAMIC -DARCH=$RELIC_ARCH
-make -j$(nproc)
-cd ../..
-export RELIC_PATH=$(realpath relic)
-export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_RELIC"
-
-# Build Botan
-cd $SRC/botan
-if [[ $CFLAGS != *-m32* ]]
-then
-    ./configure.py --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator --build-targets=static --without-documentation
-else
-    ./configure.py --cpu=x86_32 --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator --build-targets=static --without-documentation
-fi
-make -j$(nproc)
-
-export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BOTAN -DCRYPTOFUZZ_BOTAN_IS_ORACLE"
-export LIBBOTAN_A_PATH="$SRC/botan/libbotan-3.a"
-export BOTAN_INCLUDE_PATH="$SRC/botan/build/include"
-
-# Build Cryptofuzz
-cd $SRC/cryptofuzz
-python gen_repository.py
-rm extra_options.h
-echo -n '"' >>extra_options.h
-echo -n '--force-module=relic ' >>extra_options.h
-echo -n '--operations=BignumCalc,ECC_PrivateToPublic,ECC_ValidatePubkey,ECDSA_Sign,ECDSA_Verify,Digest,HMAC,KDF_X963 ' >>extra_options.h
-echo -n '--curves=secp256k1,secp256r1 ' >>extra_options.h
-echo -n '--digests=NULL,SHA224,SHA256,SHA384,SHA512,BLAKE2S160,BLAKE2S256 ' >>extra_options.h
-echo -n '--calcops=Abs,Add,Bit,ClearBit,Cmp,CmpAbs,Div,ExpMod,GCD,InvMod,IsEven,IsOdd,IsZero,Jacobi,LCM,LShift1,Mod,Mul,Neg,NumBits,RShift,SetBit,Sqr,Sqrt,Sub ' >>extra_options.h
-echo -n '"' >>extra_options.h
-cd modules/relic/
-make -B -j$(nproc)
-cd ../botan/
-make -B -j$(nproc)
-cd ../../
-make -B -j$(nproc)
-
-cp cryptofuzz $OUT/cryptofuzz-relic
diff --git a/projects/relic/project.yaml b/projects/relic/project.yaml
deleted file mode 100644
index 98fb04f..0000000
--- a/projects/relic/project.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-homepage: "https://github.com/relic-toolkit/relic"
-language: c++
-primary_contact: "guidovranken@gmail.com"
-main_repo: "https://github.com/relic-toolkit/relic"
-auto_ccs:
-    - "dfaranha@gmail.com"
-sanitizers:
- - address
- - undefined
- - memory
-architectures:
- - x86_64
- - i386
diff --git a/projects/resiprocate/Dockerfile b/projects/resiprocate/Dockerfile
index 58f7a92..02a4a2f 100644
--- a/projects/resiprocate/Dockerfile
+++ b/projects/resiprocate/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER gjasny@googlemail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config
 RUN git clone --depth 1 https://github.com/resiprocate/resiprocate.git resiprocate
 WORKDIR resiprocate
diff --git a/projects/resiprocate/project.yaml b/projects/resiprocate/project.yaml
index 10053fe..b82f4a6 100644
--- a/projects/resiprocate/project.yaml
+++ b/projects/resiprocate/project.yaml
@@ -1,4 +1,2 @@
 homepage: "https://www.resiprocate.org/"
-language: c++
 primary_contact: "gjasny@googlemail.com"
-main_repo: 'https://github.com/resiprocate/resiprocate.git'
diff --git a/projects/rnp/Dockerfile b/projects/rnp/Dockerfile
deleted file mode 100755
index c82713b..0000000
--- a/projects/rnp/Dockerfile
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update
-RUN apt-get install -y \
-    make \
-    autoconf \
-    automake \
-    libtool \
-    cmake \
-    patchelf \
-    libbz2-dev \
-    zlib1g-dev \
-    libjson-c-dev \
-    build-essential \
-    python-minimal \
-    wget
-
-RUN git clone --depth 1 https://github.com/rnpgp/rnp.git rnp
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/rnp/build.sh b/projects/rnp/build.sh
deleted file mode 100755
index 1bfd8aa..0000000
--- a/projects/rnp/build.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC
-
-wget -qO- https://botan.randombit.net/releases/Botan-2.16.0.tar.xz | tar xJ
-cd Botan-2.16.0
-./configure.py --prefix=/usr --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" \
-               --disable-modules=locking_allocator \
-               --unsafe-fuzzer-mode --build-fuzzers=libfuzzer \
-               --with-fuzzer-lib='FuzzingEngine'
-make -j$(nproc)
-make install
-
-cd $SRC
-mkdir fuzzing_corpus
-
-cd $SRC/rnp/src/tests/data
-find . -type f -print0 | xargs -0 -I bob -- cp bob $SRC/fuzzing_corpus/
-
-# -DENABLE_SANITIZERS=0 because oss-fuzz will add the sanitizer flags in CFLAGS
-# See https://github.com/google/oss-fuzz/pull/4189 to explain CMAKE_C_LINK_EXECUTABLE
-
-cd $SRC
-mkdir rnp-build
-cd rnp-build
-cmake \
-    -DENABLE_SANITIZERS=0 \
-    -DENABLE_FUZZERS=1 \
-    -DCMAKE_C_COMPILER=$CC \
-    -DCMAKE_CXX_COMPILER=$CXX \
-    -DCMAKE_C_LINK_EXECUTABLE="$CXX <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>" \
-    -DCMAKE_INSTALL_PREFIX=/usr \
-    -DBUILD_SHARED_LIBS=on \
-    -DBUILD_TESTING=off \
-    -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-    $SRC/rnp
-make -j$(nproc)
-
-FUZZERS=`find src/fuzzing -maxdepth 1 -type f -name "fuzz_*" -exec basename {} \;`
-printf "Detected fuzzers: \n$FUZZERS\n"
-for f in $FUZZERS; do
-    cp src/fuzzing/$f "${OUT}/"
-    patchelf --set-rpath '$ORIGIN/lib' "${OUT}/$f" || echo "patchelf failed with $?, ignoring."
-    zip -j -r "${OUT}/${f}_seed_corpus.zip" $SRC/fuzzing_corpus/
-done
-
-mkdir -p "${OUT}/lib"
-cp src/lib/librnp.so.0 "${OUT}/lib/"
-cp /usr/lib/libbotan-2.so.16 "${OUT}/lib/"
-cp /lib/x86_64-linux-gnu/libjson-c.so.2 "${OUT}/lib/"
diff --git a/projects/rnp/project.yaml b/projects/rnp/project.yaml
deleted file mode 100755
index bf23150..0000000
--- a/projects/rnp/project.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-homepage: "https://www.rnpgp.com/"
-language: c++
-primary_contact: "tse@ribose.com"
-auto_ccs:
-  - "tom@ritter.vg"
-  - "o.nickolay@gmail.com"
-  - "daniel.wyatt@gmail.com"
-sanitizers:
-  - address
-  - undefined
-fuzzing_engines:
-  - libfuzzer
-  - honggfuzz
-  - afl
-main_repo: 'https://github.com/rnpgp/rnp.git'
diff --git a/projects/rocksdb/Dockerfile b/projects/rocksdb/Dockerfile
deleted file mode 100644
index f81d276..0000000
--- a/projects/rocksdb/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool gettext pkg-config build-essential zlib1g-dev libbz2-dev cmake ninja-build liblzma-dev libtool autoconf
-RUN git clone --depth 1 https://github.com/facebook/rocksdb
-
-WORKDIR $SRC/
-
-RUN git clone --depth 1 https://github.com/google/libprotobuf-mutator.git
-RUN (mkdir LPM && cd LPM && cmake ../libprotobuf-mutator -GNinja -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON -DLIB_PROTO_MUTATOR_TESTING=OFF -DCMAKE_BUILD_TYPE=Release && ninja && ninja install)
-
-COPY build.sh $SRC/
diff --git a/projects/rocksdb/build.sh b/projects/rocksdb/build.sh
deleted file mode 100755
index af784a2..0000000
--- a/projects/rocksdb/build.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/LPM
-export PKG_CONFIG_PATH=$PWD:$PWD/external.protobuf/lib/pkgconfig/
-export PATH=$PWD/external.protobuf/bin:$PATH
-
-cd $SRC/rocksdb
-export FUZZ_ENV=ossfuzz
-export CC=$CXX
-make static_lib
-
-cd fuzz
-make db_fuzzer
-make db_map_fuzzer
-
-cp *_fuzzer $OUT/
diff --git a/projects/rocksdb/project.yaml b/projects/rocksdb/project.yaml
deleted file mode 100644
index 94c8126..0000000
--- a/projects/rocksdb/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/facebook/rocksdb"
-primary_contact: "rocksdb.dev@gmail.com"
-language: c++
-vendor_ccs:
-  - "oss-fuzz@fb.com"
-auto_ccs:
-  - "david@adalogics.com"
-  - "mhl@fb.com"
-sanitizers:
-  - "address"
-main_repo: 'https://github.com/facebook/rocksdb'
diff --git a/projects/runc/Dockerfile b/projects/runc/Dockerfile
deleted file mode 100644
index 78616e9..0000000
--- a/projects/runc/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/opencontainers/runc
-COPY build.sh $SRC/
-WORKDIR $SRC/runc
diff --git a/projects/runc/build.sh b/projects/runc/build.sh
deleted file mode 100644
index 4f0b084..0000000
--- a/projects/runc/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-$SRC/runc/tests/fuzzing/oss_fuzz_build.sh
diff --git a/projects/runc/project.yaml b/projects/runc/project.yaml
deleted file mode 100644
index fc387c8..0000000
--- a/projects/runc/project.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-homepage: "https://github.com/opencontainers/runc"
-main_repo: "https://github.com/opencontainers/runc"
-primary_contact: "cyphar@cyphar.com"
-auto_ccs:
-  - "adam@adalogics.com"
-  - "michael@docker.com"
-  - "mpatel@redhat.com"
-  - "dqminh89@gmail.com"
-  - "h.huangqiang@huawei.com"
-  - "akihiro.suda.cz@hco.ntt.co.jp"
-  - "kolyshkin@gmail.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
diff --git a/projects/rust-regex/Dockerfile b/projects/rust-regex/Dockerfile
deleted file mode 100644
index c64a6a1..0000000
--- a/projects/rust-regex/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone --depth 1 https://github.com/rust-lang/regex regex
-WORKDIR $SRC
-
-COPY build.sh $SRC/
diff --git a/projects/rust-regex/build.sh b/projects/rust-regex/build.sh
deleted file mode 100755
index 967502e..0000000
--- a/projects/rust-regex/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-cd $SRC/regex
-cargo fuzz build -O 
-cp fuzz/target/x86_64-unknown-linux-gnu/release/fuzz_regex_match $OUT/
diff --git a/projects/rust-regex/project.yaml b/projects/rust-regex/project.yaml
deleted file mode 100644
index 7f7a934..0000000
--- a/projects/rust-regex/project.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-homepage: "https://github.com/rust-lang/regex"
-primary_contact: "jamslam@gmail.com"
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-language: rust
-auto_ccs:
-  - "david@adalogics.com"
diff --git a/projects/rustls/Dockerfile b/projects/rustls/Dockerfile
deleted file mode 100644
index 7406a47..0000000
--- a/projects/rustls/Dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool curl cmake python llvm-dev libclang-dev clang
-
-RUN git clone https://github.com/ctz/rustls
-
-WORKDIR $SRC
-
-COPY build.sh $SRC/
-COPY persist.rs $SRC/rustls/fuzz/fuzzers/persist.rs
diff --git a/projects/rustls/build.sh b/projects/rustls/build.sh
deleted file mode 100755
index d00359e..0000000
--- a/projects/rustls/build.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/rustls
-cargo fuzz build -O
-cp fuzz/target/x86_64-unknown-linux-gnu/release/client $OUT/
-cp fuzz/target/x86_64-unknown-linux-gnu/release/deframer $OUT/
-cp fuzz/target/x86_64-unknown-linux-gnu/release/fragment $OUT/
-cp fuzz/target/x86_64-unknown-linux-gnu/release/hsjoiner $OUT/
-cp fuzz/target/x86_64-unknown-linux-gnu/release/message $OUT/
-cp fuzz/target/x86_64-unknown-linux-gnu/release/server $OUT/
diff --git a/projects/rustls/persist.rs b/projects/rustls/persist.rs
deleted file mode 100644
index 186cd9a..0000000
--- a/projects/rustls/persist.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2021 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-//limitations under the License.
-//
-//################################################################################
-#![no_main]
-#[macro_use] extern crate libfuzzer_sys;
-extern crate rustls;
-
-use rustls::internal::msgs::persist;
-use rustls::internal::msgs::codec::{Reader, Codec};
-
-fn try_type<T>(data: &[u8]) where T: Codec {
-    let mut rdr = Reader::init(data);
-    T::read(&mut rdr);
-}
-
-fuzz_target!(|data: &[u8]| {
-    try_type::<persist::ServerSessionValue>(data);
-});
diff --git a/projects/rustls/project.yaml b/projects/rustls/project.yaml
deleted file mode 100644
index 73e4f27..0000000
--- a/projects/rustls/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/ctz/rustls"
-main_repo: "https://github.com/ctz/rustls"
-primary_contact: "jpixton@gmail.com"
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-language: rust
-auto_ccs:
-  - "david@adalogics.com"
diff --git a/projects/s2opc/Dockerfile b/projects/s2opc/Dockerfile
index 79d5841..3358e14 100644
--- a/projects/s2opc/Dockerfile
+++ b/projects/s2opc/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER pab.systerel@gmail.com
 RUN apt-get update && apt-get install -y make cmake git curl
 
 # Sources and dependencies
diff --git a/projects/s2opc/build.sh b/projects/s2opc/build.sh
index db32033..61d3be2 100755
--- a/projects/s2opc/build.sh
+++ b/projects/s2opc/build.sh
@@ -38,7 +38,6 @@
 mkdir -p $S2OPC_BUILD
 cd $S2OPC_BUILD
 cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-      -DS2OPC_CLIENTSERVER_ONLY=ON \
       -DCMAKE_C_COMPILER="$CC" -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_EXE_LINKER_FLAGS="$CXXFLAGS" \
       -DCMAKE_C_LINK_EXECUTABLE="$CXX <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>" \
       -DWITH_OSS_FUZZ=ON \
diff --git a/projects/s2opc/project.yaml b/projects/s2opc/project.yaml
index e0fe412..d9b9971 100644
--- a/projects/s2opc/project.yaml
+++ b/projects/s2opc/project.yaml
@@ -1,10 +1,8 @@
 homepage: "https://gitlab.com/systerel/S2OPC"
-language: c++
 primary_contact: "pab.systerel@gmail.com"
 auto_ccs:
   - "mcl.systerel@gmail.com"
-  - "vla.systerel@gmail.com"
-  - "vmo.systerel@gmail.com"
+  - "vincent.lacroix@systerel.fr"
 sanitizers:
  - address
  - memory
diff --git a/projects/samba/project.yaml b/projects/samba/project.yaml
index 6f7ea35..0d20a2a 100644
--- a/projects/samba/project.yaml
+++ b/projects/samba/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://samba.org"
-language: c
 primary_contact: "douglas.bagnall@catalyst.net.nz"
 auto_ccs:
   - "abartlet+google@catalyst.net.nz"
@@ -8,10 +7,8 @@
   - "jra@google.com"
   - "sloowfranklin@gmail.com"
   - "gdeschner@gmail.com"
-  - "volker.lendecke@gmail.com"
 fuzzing_engines:
   - libfuzzer
-  - honggfuzz
 sanitizers:
   - address
   - undefined
diff --git a/projects/scapy/Dockerfile b/projects/scapy/Dockerfile
deleted file mode 100644
index 6631b32..0000000
--- a/projects/scapy/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone \
-	--depth 1 \
-	--branch master \
-	https://github.com/secdev/scapy.git
-
-WORKDIR scapy
-
-COPY build.sh pcap_fuzzer.py $SRC/
diff --git a/projects/scapy/build.sh b/projects/scapy/build.sh
deleted file mode 100644
index b3270da..0000000
--- a/projects/scapy/build.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Build and install project (using current CFLAGS, CXXFLAGS).
-pip3 install .
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find $SRC -name '*_fuzzer.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
-
-zip -j $OUT/pcap_fuzzer_seed_corpus.zip test/pcaps/*
diff --git a/projects/scapy/pcap_fuzzer.py b/projects/scapy/pcap_fuzzer.py
deleted file mode 100644
index aaf1f5f..0000000
--- a/projects/scapy/pcap_fuzzer.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import io
-import sys
-import atheris
-
-import scapy
-import scapy.error
-import scapy.utils
-
-
-def TestOneInput(input_bytes):
-  try:
-    scapy.utils.rdpcap(io.BytesIO(input_bytes))
-  except scapy.error.Scapy_Exception:
-    pass
-
-
-def main():
-  atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
-  atheris.Fuzz()
-
-
-if __name__ == "__main__":
-  main()
diff --git a/projects/scapy/project.yaml b/projects/scapy/project.yaml
deleted file mode 100644
index 98da90f..0000000
--- a/projects/scapy/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://scapy.net"
-main_repo: "https://github.com/secdev/scapy"
-language: python
-primary_contact: "guedou@gmail.com"
-auto_ccs:
-  - "jvoisin@google.com"
-  - "ipudney@google.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
diff --git a/projects/selinux/Dockerfile b/projects/selinux/Dockerfile
deleted file mode 100644
index b62b4ae..0000000
--- a/projects/selinux/Dockerfile
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && \
-    apt-get install -y bison \
-	flex \
-	gawk \
-	gettext \
-	make \
-	libaudit-dev \
-	libbz2-dev \
-	libcap-dev \
-	libcap-ng-dev \
-	libglib2.0-dev \
-	libpcre3-dev \
-	xmlto
-RUN git clone --depth 1 https://github.com/SELinuxProject/selinux
-WORKDIR selinux
-COPY build.sh *.c $SRC/
diff --git a/projects/selinux/build.sh b/projects/selinux/build.sh
deleted file mode 100755
index e2979ad..0000000
--- a/projects/selinux/build.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash -e
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-export DESTDIR=$(pwd)/DESTDIR
-export LDFLAGS="${LDFLAGS:-} $CFLAGS"
-
-find -name Makefile | xargs sed -i 's/,-z,defs//'
-make V=1 -j$(nproc) install
-
-$CC $CFLAGS -I$DESTDIR/usr/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -c -o secilc-fuzzer.o $SRC/secilc-fuzzer.c
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE secilc-fuzzer.o $DESTDIR/usr/lib/libsepol.a -o $OUT/secilc-fuzzer
-zip -r $OUT/secilc-fuzzer_seed_corpus.zip secilc/test
diff --git a/projects/selinux/project.yaml b/projects/selinux/project.yaml
deleted file mode 100644
index 9b97863..0000000
--- a/projects/selinux/project.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-homepage: "https://github.com/SELinuxProject/selinux"
-language: c
-primary_contact: "nicolas.iooss_ossfuzzselinux@m4x.org"
-builds_per_day: 4
-sanitizers:
-  - address
-  - undefined
-  - memory
-auto_ccs:
-  - evverx@gmail.com
-  - nicolas.iooss.ossfuzz@gmail.com
-  - omosnacek@gmail.com
-  - jwcart2@gmail.com
-main_repo: 'https://github.com/SELinuxProject/selinux'
diff --git a/projects/selinux/secilc-fuzzer.c b/projects/selinux/secilc-fuzzer.c
deleted file mode 100644
index c99df95..0000000
--- a/projects/selinux/secilc-fuzzer.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <getopt.h>
-#include <sys/stat.h>
-
-#include <sepol/cil/cil.h>
-#include <sepol/policydb.h>
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-	enum cil_log_level log_level = CIL_ERR;
-	struct sepol_policy_file *pf = NULL;
-	FILE *dev_null = NULL;
-	int target = SEPOL_TARGET_SELINUX;
-	int disable_dontaudit = 0;
-	int multiple_decls = 0;
-	int disable_neverallow = 0;
-	int preserve_tunables = 0;
-	int policyvers = POLICYDB_VERSION_MAX;
-	int mls = -1;
-	int attrs_expand_generated = 0;
-	struct cil_db *db = NULL;
-	sepol_policydb_t *pdb = NULL;
-
-	cil_set_log_level(log_level);
-
-	cil_db_init(&db);
-	cil_set_disable_dontaudit(db, disable_dontaudit);
-	cil_set_multiple_decls(db, multiple_decls);
-	cil_set_disable_neverallow(db, disable_neverallow);
-	cil_set_preserve_tunables(db, preserve_tunables);
-	cil_set_mls(db, mls);
-	cil_set_target_platform(db, target);
-	cil_set_policy_version(db, policyvers);
-	cil_set_attrs_expand_generated(db, attrs_expand_generated);
-
-	if (cil_add_file(db, "fuzz", data, size) != SEPOL_OK)
-		goto exit;
-
-	if (cil_compile(db) != SEPOL_OK)
-		goto exit;
-
-	if (cil_build_policydb(db, &pdb) != SEPOL_OK)
-		goto exit;
-
-	if (sepol_policydb_optimize(pdb) != SEPOL_OK)
-		goto exit;
-
-	dev_null = fopen("/dev/null", "w");
-	if (dev_null == NULL)
-		goto exit;
-
-	if (sepol_policy_file_create(&pf) != 0)
-		goto exit;
-
-	sepol_policy_file_set_fp(pf, dev_null);
-
-	if (sepol_policydb_write(pdb, pf) != 0)
-		goto exit;
-exit:
-	if (dev_null != NULL)
-		fclose(dev_null);
-
-	cil_db_destroy(&db);
-	sepol_policydb_free(pdb);
-	sepol_policy_file_free(pf);
-	return 0;
-}
diff --git a/projects/sentencepiece/Dockerfile b/projects/sentencepiece/Dockerfile
deleted file mode 100644
index 81d7cfa..0000000
--- a/projects/sentencepiece/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool cmake build-essential pkg-config libgoogle-perftools-dev
-RUN git clone --depth 1 https://github.com/google/sentencepiece.git sentencepiece
-WORKDIR sentencepiece
-COPY build.sh *.cc $SRC/
diff --git a/projects/sentencepiece/build.sh b/projects/sentencepiece/build.sh
deleted file mode 100755
index 69d511c..0000000
--- a/projects/sentencepiece/build.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-mkdir build
-cd build
-cmake -DSPM_ENABLE_SHARED=ON ..
-make -j $(nproc)
-make install
-
-# build fuzzers
-for fuzzer in $(find $SRC -name '*_fuzzer.cc'); do
-  fuzz_basename=$(basename -s .cc $fuzzer)
-  $CXX $CXXFLAGS -std=c++11 -I. \
-        $fuzzer $LIB_FUZZING_ENGINE ./src/libsentencepiece.a \
-        -o $OUT/$fuzz_basename
-done
diff --git a/projects/sentencepiece/project.yaml b/projects/sentencepiece/project.yaml
deleted file mode 100644
index 579c703..0000000
--- a/projects/sentencepiece/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/google/sentencepiece"
-language: c++
-primary_contact: "taku@google.com"
-sanitizers:
-  - address
-  - memory
-  - undefined
-architectures:
-  - x86_64
-main_repo: 'https://github.com/google/sentencepiece.git'
diff --git a/projects/sentencepiece/sample_encode_fuzzer.cc b/projects/sentencepiece/sample_encode_fuzzer.cc
deleted file mode 100644
index 7beb06f..0000000
--- a/projects/sentencepiece/sample_encode_fuzzer.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include <cstddef>
-#include <cstdint>
-#include <string>
-#include <vector>
-
-#include "sentencepiece_processor.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  sentencepiece::SentencePieceProcessor fuzz_sp_processor;
-  FuzzedDataProvider data_provider(data, size);
-  const int nbest_size = data_provider.ConsumeIntegral<int>();
-  const float alpha = data_provider.ConsumeFloatingPoint<float>();
-  const std::string in_string = data_provider.ConsumeRemainingBytesAsString();
-
-  fuzz_sp_processor.SampleEncodeAsSerializedProto(in_string, nbest_size, alpha);
-  return 0;
-}
diff --git a/projects/serde-yaml/Dockerfile b/projects/serde-yaml/Dockerfile
deleted file mode 100644
index 42b1ce3..0000000
--- a/projects/serde-yaml/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone --depth 1 https://github.com/dtolnay/serde-yaml serde-yaml
-WORKDIR $SRC
-
-COPY build.sh $SRC/
diff --git a/projects/serde-yaml/build.sh b/projects/serde-yaml/build.sh
deleted file mode 100755
index dd128bb..0000000
--- a/projects/serde-yaml/build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/serde-yaml
-cargo fuzz build -O 
-cp fuzz/target/x86_64-unknown-linux-gnu/release/fuzz_from_slice $OUT/
diff --git a/projects/serde-yaml/project.yaml b/projects/serde-yaml/project.yaml
deleted file mode 100644
index 2f5208f..0000000
--- a/projects/serde-yaml/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/dtolnay/serde-yaml"
-primary_contact: "dtolnay@gmail.com"
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-language: rust
-auto_ccs:
-  - "david@adalogics.com"
-main_repo: 'https://github.com/dtolnay/serde-yaml'
diff --git a/projects/serde_json/Dockerfile b/projects/serde_json/Dockerfile
deleted file mode 100644
index d27ebda..0000000
--- a/projects/serde_json/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool curl cmake python llvm-dev libclang-dev clang
-
-RUN git clone --depth 1 https://github.com/serde-rs/json json
-WORKDIR $SRC
-
-COPY build.sh $SRC/
diff --git a/projects/serde_json/build.sh b/projects/serde_json/build.sh
deleted file mode 100755
index 9ae8b78..0000000
--- a/projects/serde_json/build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Note: This project creates Rust fuzz targets exclusively
-cd $SRC/json
-cargo fuzz build -O 
-cp fuzz/target/x86_64-unknown-linux-gnu/release/from_slice $OUT/
diff --git a/projects/serde_json/project.yaml b/projects/serde_json/project.yaml
deleted file mode 100644
index f7b8571..0000000
--- a/projects/serde_json/project.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-homepage: "https://github.com/serde-rs/json"
-primary_contact: "dtolnay@gmail.com"
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-language: rust
-auto_ccs:
-  - "david@adalogics.com"
diff --git a/projects/serenity/Dockerfile b/projects/serenity/Dockerfile
deleted file mode 100644
index c494759..0000000
--- a/projects/serenity/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y build-essential cmake curl e2fsprogs libmpfr-dev libmpc-dev libgmp-dev ninja-build
-RUN git clone https://github.com/SerenityOS/serenity
-COPY build.sh $SRC/
-WORKDIR $SRC/serenity/Meta/Lagom
diff --git a/projects/serenity/build.sh b/projects/serenity/build.sh
deleted file mode 100755
index fa01830..0000000
--- a/projects/serenity/build.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Now build the content
-mkdir -p build
-cd build
-cmake -GNinja \
-    -DBUILD_LAGOM=ON \
-    -DENABLE_OSS_FUZZ=ON \
-    -DCMAKE_C_COMPILER=$CC \
-    -DCMAKE_CXX_COMPILER=$CXX \
-    -DCMAKE_CXX_FLAGS="$CXXFLAGS -DOSS_FUZZ=ON" \
-    -DLINKER_FLAGS="$LIB_FUZZING_ENGINE" \
-    ..
-ninja
-cp Fuzzers/Fuzz* $OUT/
-
diff --git a/projects/serenity/project.yaml b/projects/serenity/project.yaml
deleted file mode 100644
index 70acba0..0000000
--- a/projects/serenity/project.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-homepage: "https://github.com/SerenityOS/serenity"
-language: c++
-primary_contact: "kling@serenityos.org"
-auto_ccs:
-  - "david@adalogics.com"
-  - "mail@linusgroh.de"
-  - "ali.mpfard@gmail.com"
-  - "luke.wilde@live.co.uk"
-  - "bugaevc@serenityos.org"
-  - "b.gianfo@gmail.com"
-  - "idan.horowitz@gmail.com"
-  - "~awesomekling/serenityos-dev@lists.sr.ht"
-
-# Bug reports are public by default:
-view_restrictions: none
-main_repo: 'https://github.com/SerenityOS/serenity'
diff --git a/projects/servo/Dockerfile b/projects/servo/Dockerfile
deleted file mode 100644
index a0e081d..0000000
--- a/projects/servo/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN git clone --depth 1 https://github.com/servo/html5ever
-RUN git clone --depth 1 https://github.com/servo/rust-url
-
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/servo/build.sh b/projects/servo/build.sh
deleted file mode 100755
index 78d7dea..0000000
--- a/projects/servo/build.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/html5ever/html5ever
-cargo fuzz build -O 
-cp fuzz/target/x86_64-unknown-linux-gnu/release/fuzz_document_parse $OUT/
-
-cd $SRC/rust-url/url
-cargo fuzz build -O
-cp fuzz/target/x86_64-unknown-linux-gnu/release/parse $OUT/fuzz-url-parse
diff --git a/projects/servo/project.yaml b/projects/servo/project.yaml
deleted file mode 100644
index 4b8aa5b..0000000
--- a/projects/servo/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/servo"
-primary_contact: "oss-fuzz@servo.org"
-sanitizers:
-  - address
-fuzzing_engines:
-  - libfuzzer
-language: rust
-auto_ccs:
-  - "mrlachatte@gmail.com"
-  - "vgosu@mozilla.com"
-  - "david@adalogics.com"
-main_repo: 'https://github.com/servo/servo'
diff --git a/projects/simdjson/Dockerfile b/projects/simdjson/Dockerfile
index 88ba833..882ada5 100644
--- a/projects/simdjson/Dockerfile
+++ b/projects/simdjson/Dockerfile
@@ -15,10 +15,17 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER pauldreikossfuzz@gmail.com
 
 RUN apt-get update && apt-get install -y ninja-build wget
 
-RUN git clone --depth 1 https://github.com/simdjson/simdjson.git simdjson
+# We need a modern cmake
+ENV CMAKEVER 3.15.4
+RUN wget --quiet https://github.com/Kitware/CMake/releases/download/v${CMAKEVER}/cmake-${CMAKEVER}-Linux-x86_64.sh ;\
+    chmod +x cmake-${CMAKEVER}-Linux-x86_64.sh ; \
+    ./cmake-${CMAKEVER}-Linux-x86_64.sh --skip-license --prefix="/usr/local"
+
+RUN git clone --depth 1 https://github.com/lemire/simdjson.git simdjson
 WORKDIR simdjson
 COPY build.sh $SRC/
 
diff --git a/projects/simdjson/project.yaml b/projects/simdjson/project.yaml
index 33b298a..6b2cb2d 100644
--- a/projects/simdjson/project.yaml
+++ b/projects/simdjson/project.yaml
@@ -1,7 +1,5 @@
-homepage: "https://github.com/simdjson/simdjson"
-language: c++
+homepage: "https://github.com/lemire/simdjson"
 primary_contact: "pauldreikossfuzz@gmail.com"
 auto_ccs:
  - "lemire@gmail.com"
 
-main_repo: 'https://github.com/simdjson/simdjson.git'
diff --git a/projects/skcms/Dockerfile b/projects/skcms/Dockerfile
index de7cd1c..dffd98e 100644
--- a/projects/skcms/Dockerfile
+++ b/projects/skcms/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kjlubick@chromium.org
 
 RUN apt-get update && apt-get install -y wget
 
diff --git a/projects/skcms/project.yaml b/projects/skcms/project.yaml
index c92ee3b..8401165 100644
--- a/projects/skcms/project.yaml
+++ b/projects/skcms/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://skia.googlesource.com/skcms/+/master"
-language: c++
 primary_contact: "kjlubick@chromium.org"
 auto_ccs:
   - "mtklein@google.com"
@@ -11,4 +10,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://skia.googlesource.com/skcms.git'
diff --git a/projects/skia/BUILD.gn.diff b/projects/skia/BUILD.gn.diff
new file mode 100644
index 0000000..ffa088c
--- /dev/null
+++ b/projects/skia/BUILD.gn.diff
@@ -0,0 +1,454 @@
+# Copyright 2016 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+# Append this to build.gn in the skia repo and then build the targets
+test_app("region_deserialize") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzRegionDeserialize.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("image_filter_deserialize") {
+  include_dirs = [
+    "tools",
+    "tools/fonts",
+  ]
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp",
+    "tools/Resources.cpp",
+    "tools/fonts/TestFontMgr.cpp",
+    "tools/fonts/TestSVGTypeface.cpp",
+    "tools/fonts/TestTypeface.cpp",
+  ]
+  deps = [
+    ":experimental_svg_model",
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("region_set_path") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzRegionSetPath.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("textblob_deserialize") {
+  include_dirs = [
+    "tools",
+    "tools/fonts",
+  ]
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp",
+    "tools/Resources.cpp",
+    "tools/fonts/TestFontMgr.cpp",
+    "tools/fonts/TestSVGTypeface.cpp",
+    "tools/fonts/TestTypeface.cpp",
+  ]
+  deps = [
+    ":experimental_svg_model",
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("path_deserialize") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzPathDeserialize.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("image_decode") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzImage.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("animated_image_decode") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzAnimatedImage.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("api_draw_functions") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/FuzzDrawFunctions.cpp",
+    "fuzz/oss_fuzz/FuzzDrawFunctions.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("api_gradients") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/FuzzGradients.cpp",
+    "fuzz/oss_fuzz/FuzzGradients.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("api_image_filter") {
+  include_dirs = [
+    "tools",
+    "tools/debugger",
+  ]
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCanvas.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzAPIImageFilter.cpp",
+    "tools/UrlDataManager.cpp",
+    "tools/debugger/DebugCanvas.cpp",
+    "tools/debugger/DebugLayerManager.cpp",
+    "tools/debugger/DrawCommand.cpp",
+    "tools/debugger/JsonWriteBuffer.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":gpu_tool_utils",
+    ":skia",
+    "//third_party/libpng",
+  ]
+}
+
+test_app("api_path_measure") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/FuzzPathMeasure.cpp",
+    "fuzz/oss_fuzz/FuzzPathMeasure.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("api_pathop") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/FuzzPathop.cpp",
+    "fuzz/oss_fuzz/FuzzPathop.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("api_raster_n32_canvas") {
+  include_dirs = [
+    "tools",
+    "tools/debugger",
+    "tools/fonts",
+  ]
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCanvas.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp",
+    "tools/Resources.cpp",
+    "tools/UrlDataManager.cpp",
+    "tools/debugger/DebugCanvas.cpp",
+    "tools/debugger/DebugLayerManager.cpp",
+    "tools/debugger/DrawCommand.cpp",
+    "tools/debugger/JsonWriteBuffer.cpp",
+    "tools/fonts/TestFontMgr.cpp",
+    "tools/fonts/TestSVGTypeface.cpp",
+    "tools/fonts/TestTypeface.cpp",
+  ]
+  deps = [
+    ":experimental_svg_model",
+    ":flags",
+    ":gpu_tool_utils",
+    ":skia",
+    "//third_party/libpng",
+  ]
+}
+
+test_app("api_mock_gpu_canvas") {
+  include_dirs = [
+    "tools",
+    "tools/debugger",
+    "tools/fonts",
+  ]
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCanvas.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzMockGPUCanvas.cpp",
+    "tools/LsanSuppressions.cpp",
+    "tools/Resources.cpp",
+    "tools/UrlDataManager.cpp",
+    "tools/debugger/DebugCanvas.cpp",
+    "tools/debugger/DebugLayerManager.cpp",
+    "tools/debugger/DrawCommand.cpp",
+    "tools/debugger/JsonWriteBuffer.cpp",
+    "tools/fonts/TestFontMgr.cpp",
+    "tools/fonts/TestSVGTypeface.cpp",
+    "tools/fonts/TestTypeface.cpp",
+  ]
+  deps = [
+    ":experimental_svg_model",
+    ":flags",
+    ":gpu_tool_utils",
+    ":skia",
+    "//third_party/libpng",
+  ]
+}
+
+test_app("api_null_canvas") {
+  include_dirs = [
+    "tools",
+    "tools/debugger",
+    "tools/fonts",
+  ]
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCanvas.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzNullCanvas.cpp",
+    "tools/Resources.cpp",
+    "tools/UrlDataManager.cpp",
+    "tools/debugger/DebugCanvas.cpp",
+    "tools/debugger/DebugLayerManager.cpp",
+    "tools/debugger/DrawCommand.cpp",
+    "tools/debugger/JsonWriteBuffer.cpp",
+    "tools/fonts/TestFontMgr.cpp",
+    "tools/fonts/TestSVGTypeface.cpp",
+    "tools/fonts/TestTypeface.cpp",
+  ]
+  deps = [
+    ":experimental_svg_model",
+    ":flags",
+    ":gpu_tool_utils",
+    ":skia",
+    "//third_party/libpng",
+  ]
+}
+
+test_app("png_encoder") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/FuzzEncoders.cpp",
+    "fuzz/oss_fuzz/FuzzPNGEncoder.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("jpeg_encoder") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/FuzzEncoders.cpp",
+    "fuzz/oss_fuzz/FuzzJPEGEncoder.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("webp_encoder") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/FuzzEncoders.cpp",
+    "fuzz/oss_fuzz/FuzzWEBPEncoder.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("skottie_json") {
+  deps = [
+    ":flags",
+    ":skia",
+    "modules/skottie:fuzz",
+  ]
+}
+
+test_app("skjson") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzJSON.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("api_polyutils") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/FuzzPolyUtils.cpp",
+    "fuzz/oss_fuzz/FuzzPolyUtils.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("android_codec") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzAndroidCodec.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("image_decode_incremental") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzIncrementalImage.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("sksl2glsl") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp",
+  ]
+  deps = [
+    ":gpu_tool_utils",
+    ":skia",
+  ]
+}
+
+test_app("sksl2spirv") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp",
+  ]
+  deps = [
+    ":gpu_tool_utils",
+    ":skia",
+  ]
+}
+
+test_app("sksl2metal") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzSKSL2Metal.cpp",
+  ]
+  deps = [
+    ":gpu_tool_utils",
+    ":skia",
+  ]
+}
+
+test_app("sksl2pipeline") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp",
+  ]
+  deps = [
+    ":gpu_tool_utils",
+    ":skia",
+  ]
+}
+
+test_app("api_skdescriptor") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/FuzzSkDescriptor.cpp",
+    "fuzz/oss_fuzz/FuzzAPISkDescriptor.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
+
+test_app("skdescriptor_deserialize") {
+  sources = [
+    "fuzz/Fuzz.cpp",
+    "fuzz/FuzzCommon.cpp",
+    "fuzz/oss_fuzz/FuzzSkDescriptorDeserialize.cpp",
+  ]
+  deps = [
+    ":flags",
+    ":skia",
+  ]
+}
\ No newline at end of file
diff --git a/projects/skia/Dockerfile b/projects/skia/Dockerfile
index e429088..801c543 100644
--- a/projects/skia/Dockerfile
+++ b/projects/skia/Dockerfile
@@ -15,9 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER kjlubick@chromium.org
 
-# Mesa and libz/zlib needed to build swiftshader
-RUN apt-get update && apt-get install -y python wget libglu1-mesa-dev cmake lib32z1-dev zlib1g-dev
+# Mesa needed to build swiftshader
+RUN apt-get update && apt-get install -y python wget libglu1-mesa-dev cmake
 
 RUN git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git' --depth 1
 ENV PATH="${SRC}/depot_tools:${PATH}"
@@ -29,53 +30,89 @@
 
 RUN bin/sync
 
-# Make a directory for fuzzing artifacts that won't be clobbered by CIFuzz.
-RUN mkdir $SRC/skia_data
-
-RUN wget -O $SRC/skia_data/image_filter_deserialize_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/image_filter_deserialize_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/region_set_path_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/region_set_path_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/textblob_deserialize_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/textblob_deserialize_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/path_deserialize_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/path_deserialize_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/image_decode_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/image_decode_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/animated_image_decode_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/animated_image_decode_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/api_draw_functions_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_draw_functions_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/api_gradients_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_gradients_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/api_image_filter_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_image_filter_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/api_path_measure_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_path_measure_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/api_pathop_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_pathop_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/canvas_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/canvas_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/encoder_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/encoder_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/skottie_json_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/skottie_json_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/skjson_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/skjson_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/api_polyutils_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_polyutils_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/sksl_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/sksl_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/svg_dom_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/svg_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/sksl_with_256_padding_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/sksl_with_256_padding_seed_corpus.zip
-
-RUN wget -O $SRC/skia_data/skp_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/skp_seed_corpus.zip
-
-COPY image_filter_deserialize_width.options $SRC/skia_data/image_filter_deserialize_width.options
-
-COPY json.dict $SRC/skia_data/json.dict
-
+# Setup SwiftShader
+WORKDIR $SRC/skia/third_party/externals/swiftshader/
+# TODO(metzman): Come up with a better long term solution, such as downloading
+# prebuilt libraries, than pinning swiftshader to a known working revision.
+RUN git checkout bf8fd5b5fb6892dabcc21b4b86d41cd40cb9b4b5
+RUN git submodule update --init
 WORKDIR $SRC/skia
 
+RUN wget -O $SRC/skia/image_filter_deserialize_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/image_filter_deserialize_seed_corpus.zip
+
+RUN wget -O $SRC/skia/region_set_path_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/region_set_path_seed_corpus.zip
+
+RUN wget -O $SRC/skia/textblob_deserialize_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/textblob_deserialize_seed_corpus.zip
+
+RUN wget -O $SRC/skia/path_deserialize_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/path_deserialize_seed_corpus.zip
+
+RUN wget -O $SRC/skia/image_decode_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/image_decode_seed_corpus.zip
+
+RUN wget -O $SRC/skia/animated_image_decode_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/animated_image_decode_seed_corpus.zip
+
+RUN wget -O $SRC/skia/api_draw_functions_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_draw_functions_seed_corpus.zip
+
+RUN wget -O $SRC/skia/api_gradients_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_gradients_seed_corpus.zip
+
+RUN wget -O $SRC/skia/api_image_filter_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_image_filter_seed_corpus.zip
+
+RUN wget -O $SRC/skia/api_path_measure_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_path_measure_seed_corpus.zip
+
+RUN wget -O $SRC/skia/api_pathop_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_pathop_seed_corpus.zip
+
+RUN wget -O $SRC/skia/canvas_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/canvas_seed_corpus.zip
+
+RUN wget -O $SRC/skia/encoder_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/encoder_seed_corpus.zip
+
+RUN wget -O $SRC/skia/skottie_json_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/skottie_json_seed_corpus.zip
+
+RUN wget -O $SRC/skia/skjson_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/skjson_seed_corpus.zip
+
+RUN wget -O $SRC/skia/api_polyutils_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_polyutils_seed_corpus.zip
+
+RUN wget -O $SRC/skia/sksl_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/sksl_seed_corpus.zip
+
+RUN wget -O $SRC/skia/api_skdescriptor_seed_corpus.zip https://storage.googleapis.com/skia-fuzzer/oss-fuzz/api_skdescriptor_seed_corpus.zip
+
 COPY build.sh $SRC/
+
+COPY skia.diff $SRC/skia/skia.diff
+RUN git apply skia.diff
+
+COPY region_deserialize.options $SRC/skia/region_deserialize.options
+COPY region_set_path.options $SRC/skia/region_set_path.options
+COPY image_filter_deserialize.options $SRC/skia/image_filter_deserialize.options
+COPY image_filter_deserialize_width.options $SRC/skia/image_filter_deserialize_width.options
+COPY textblob_deserialize.options $SRC/skia/textblob_deserialize.options
+COPY path_deserialize.options $SRC/skia/path_deserialize.options
+COPY encoder.options $SRC/skia/encoder.options
+COPY skdescriptor_deserialize.options $SRC/skia/skdescriptor_deserialize.options
+
+# Codec fuzzers can share options
+COPY image_codec.options $SRC/skia/android_codec.options
+COPY image_codec.options $SRC/skia/animated_image_decode.options
+COPY image_codec.options $SRC/skia/image_decode.options
+COPY image_codec.options $SRC/skia/image_decode_incremental.options
+
+# API fuzzers can share options
+COPY api_fuzzers.options $SRC/skia/api_draw_functions.options
+COPY api_fuzzers.options $SRC/skia/api_gradients.options
+COPY api_fuzzers.options $SRC/skia/api_image_filter.options
+COPY api_fuzzers.options $SRC/skia/api_mock_gpu_canvas.options
+COPY api_fuzzers.options $SRC/skia/api_null_canvas.options
+COPY api_fuzzers.options $SRC/skia/api_path_measure.options
+COPY api_fuzzers.options $SRC/skia/api_pathop.options
+COPY api_fuzzers.options $SRC/skia/api_polyutils.options
+COPY api_fuzzers.options $SRC/skia/api_raster_n32_canvas.options
+COPY api_fuzzers.options $SRC/skia/api_skdescriptor.options
+
+# SKSL fuzzers can share options
+COPY sksl.options $SRC/skia/sksl2glsl.options
+COPY sksl.options $SRC/skia/sksl2spirv.options
+COPY sksl.options $SRC/skia/sksl2metal.options
+COPY sksl.options $SRC/skia/sksl2pipeline.options
+
+COPY json.dict $SRC/skia/json.dict
+
+COPY BUILD.gn.diff $SRC/skia/BUILD.gn.diff
+RUN cat BUILD.gn.diff >> BUILD.gn
diff --git a/projects/skia/api_fuzzers.options b/projects/skia/api_fuzzers.options
new file mode 100644
index 0000000..a48b657
--- /dev/null
+++ b/projects/skia/api_fuzzers.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 4000
\ No newline at end of file
diff --git a/projects/skia/build.sh b/projects/skia/build.sh
index 0f6d73f..fbbf2ab 100644
--- a/projects/skia/build.sh
+++ b/projects/skia/build.sh
@@ -18,35 +18,27 @@
 # Build SwiftShader
 pushd third_party/externals/swiftshader/
 export SWIFTSHADER_INCLUDE_PATH=$PWD/include
-# SwiftShader already has a build/ directory, use something else
-rm -rf build_swiftshader
-mkdir build_swiftshader
+rm -rf build
+mkdir build
 
-cd build_swiftshader
-if [ $SANITIZER == "address" ]; then
-  CMAKE_SANITIZER="SWIFTSHADER_ASAN"
-elif [ $SANITIZER == "memory" ]; then
-  CMAKE_SANITIZER="SWIFTSHADER_MSAN"
-  # oss-fuzz will patch the rpath for this after compilation and linking,
-  # so we only need to set this to appease the Swiftshader build rules check.
-  export SWIFTSHADER_MSAN_INSTRUMENTED_LIBCXX_PATH="/does/not/matter"
-elif [ $SANITIZER == "undefined" ]; then
-  # The current SwiftShader build needs -fno-sanitize=vptr, but it cannot be
-  # specified here since -fsanitize=undefined will always come after any
-  # user specified flags passed to cmake. SwiftShader does not need to be
-  # built with the undefined sanitizer in order to fuzz Skia, so don't.
-  CMAKE_SANITIZER="SWIFTSHADER_UBSAN_DISABLED"
-elif [ $SANITIZER == "coverage" ]; then
-  CMAKE_SANITIZER="SWIFTSHADER_EMIT_COVERAGE"
-elif [ $SANITIZER == "thread" ]; then
-  CMAKE_SANITIZER="SWIFTSHADER_UBSAN_DISABLED"
+cd build
+if [ $SANITIZER == "coverage" ]; then
+  cmake ..
 else
-  exit 1
+  if [ $SANITIZER == "address" ]; then
+    CMAKE_SANITIZER="ASAN"
+  elif [ $SANITIZER == "memory" ]; then
+    CMAKE_SANITIZER="MSAN"
+  elif [ $SANITIZER == "undefined" ]; then
+    CMAKE_SANITIZER="UBSAN"
+  else
+    exit 1
+  fi
+  CFLAGS= CXXFLAGS="-stdlib=libc++" cmake .. -D$CMAKE_SANITIZER=1
 fi
-CFLAGS= CXXFLAGS="-stdlib=libc++" cmake .. -GNinja -DCMAKE_MAKE_PROGRAM="$SRC/depot_tools/ninja" -D$CMAKE_SANITIZER=1
 
-$SRC/depot_tools/ninja libGLESv2 libEGL
-mv libGLESv2.so libEGL.so $OUT
+make -j
+cp libGLESv2.so libEGL.so $OUT
 export SWIFTSHADER_LIB_PATH=$OUT
 
 popd
@@ -54,38 +46,28 @@
 DISABLE="-Wno-zero-as-null-pointer-constant -Wno-unused-template
          -Wno-cast-qual"
 # Disable UBSan vptr since target built with -fno-rtti.
+# TODO(metzman): Stop using gold when
+# bugs.chromium.org/p/oss-fuzz/issues/detail?id=16777 gets resolved.
 export CFLAGS="$CFLAGS $DISABLE -I$SWIFTSHADER_INCLUDE_PATH -DGR_EGL_TRY_GLES3_THEN_GLES2 -fno-sanitize=vptr"
-export CXXFLAGS="$CXXFLAGS $DISABLE -I$SWIFTSHADER_INCLUDE_PATH -DGR_EGL_TRY_GLES3_THEN_GLES2 -fno-sanitize=vptr"
-export LDFLAGS="$LIB_FUZZING_ENGINE $CXXFLAGS -L$SWIFTSHADER_LIB_PATH"
+export CXXFLAGS="$CXXFLAGS $DISABLE -I$SWIFTSHADER_INCLUDE_PATH -DGR_EGL_TRY_GLES3_THEN_GLES2 -fno-sanitize=vptr "-DIS_FUZZING_WITH_LIBFUZZER""
+export LDFLAGS="$LIB_FUZZING_ENGINE $CXXFLAGS -L$SWIFTSHADER_LIB_PATH -fuse-ld=gold"
 
 # This splits a space separated list into a quoted, comma separated list for gn.
 export CFLAGS_ARR=`echo $CFLAGS | sed -e "s/\s/\",\"/g"`
 export CXXFLAGS_ARR=`echo $CXXFLAGS | sed -e "s/\s/\",\"/g"`
 export LDFLAGS_ARR=`echo $LDFLAGS | sed -e "s/\s/\",\"/g"`
 
-$SRC/skia/bin/fetch-gn
-
-set +u
-LIMITED_LINK_POOL="link_pool_depth=1"
-if [ "$CIFUZZ" = "true" ]; then
-  echo "Not restricting linking because on CIFuzz"
-  LIMITED_LINK_POOL=""
-fi
-set -u
-
 # Even though GPU is "enabled" for all these builds, none really
 # uses the gpu except for api_mock_gpu_canvas
-$SRC/skia/bin/gn gen out/Fuzz\
+
+$SRC/depot_tools/gn gen out/Fuzz\
     --args='cc="'$CC'"
       cxx="'$CXX'"
-      '$LIMITED_LINK_POOL'
       is_debug=false
       extra_cflags_c=["'"$CFLAGS_ARR"'"]
       extra_cflags_cc=["'"$CXXFLAGS_ARR"'"]
       extra_ldflags=["'"$LDFLAGS_ARR"'"]
-      skia_build_fuzzers=true
-      skia_enable_fontmgr_custom_directory=false
-      skia_enable_fontmgr_custom_embedded=false
+      skia_enable_fontmgr_custom=false
       skia_enable_fontmgr_custom_empty=true
       skia_enable_gpu=true
       skia_enable_skottie=true
@@ -93,165 +75,163 @@
       skia_use_fontconfig=false
       skia_use_freetype=true
       skia_use_system_freetype2=false
-      skia_use_wuffs=true
-      skia_use_libfuzzer_defaults=false'
+      skia_use_wuffs=true'
 
-$SRC/depot_tools/ninja -C out/Fuzz \
-  android_codec \
-  animated_image_decode \
-  api_create_ddl \
-  api_ddl_threading \
-  api_draw_functions \
-  api_gradients \
-  api_image_filter \
-  api_mock_gpu_canvas \
-  api_null_canvas \
-  api_path_measure \
-  api_pathop \
-  api_polyutils \
-  api_raster_n32_canvas \
-  api_regionop \
-  api_skparagraph \
-  api_svg_canvas \
-  image_decode \
-  image_decode_incremental \
-  image_filter_deserialize \
-  jpeg_encoder \
-  path_deserialize \
-  png_encoder \
-  region_deserialize \
-  region_set_path \
-  skdescriptor_deserialize \
-  skjson \
-  skottie_json \
-  skp \
-  skruntimeeffect \
-  sksl2glsl \
-  sksl2metal \
-  sksl2pipeline \
-  sksl2spirv \
-  svg_dom \
-  textblob_deserialize \
-  webp_encoder
+$SRC/depot_tools/gn gen out/Fuzz_mem_constraints\
+    --args='cc="'$CC'"
+      cxx="'$CXX'"
+      is_debug=false
+      extra_cflags_c=["'"$CFLAGS_ARR"'"]
+      extra_cflags_cc=["'"$CXXFLAGS_ARR"'","-DIS_FUZZING"]
+      extra_ldflags=["'"$LDFLAGS_ARR"'"]
+      skia_enable_fontmgr_custom=false
+      skia_enable_fontmgr_custom_empty=true
+      skia_enable_gpu=true
+      skia_enable_skottie=true
+      skia_use_egl=true
+      skia_use_fontconfig=false
+      skia_use_freetype=true
+      skia_use_system_freetype2=false
+      skia_use_wuffs=true'
 
-rm -rf $OUT/data
-mkdir $OUT/data
+$SRC/depot_tools/ninja -C out/Fuzz region_deserialize region_set_path \
+                                   path_deserialize image_decode \
+                                   animated_image_decode api_draw_functions \
+                                   api_gradients api_path_measure png_encoder \
+                                   jpeg_encoder webp_encoder skottie_json \
+                                   textblob_deserialize skjson \
+                                   api_null_canvas api_image_filter api_pathop \
+                                   api_polyutils android_codec image_decode_incremental \
+                                   sksl2glsl sksl2spirv sksl2metal sksl2pipeline \
+                                   api_skdescriptor skdescriptor_deserialize
 
-mv out/Fuzz/region_deserialize $OUT/region_deserialize
+$SRC/depot_tools/ninja -C out/Fuzz_mem_constraints image_filter_deserialize \
+                                                   api_raster_n32_canvas \
+                                                   api_mock_gpu_canvas
 
-mv out/Fuzz/region_set_path $OUT/region_set_path
-mv ../skia_data/region_set_path_seed_corpus.zip $OUT/region_set_path_seed_corpus.zip
+cp out/Fuzz/region_deserialize $OUT/region_deserialize
+cp ./region_deserialize.options $OUT/region_deserialize.options
 
-mv out/Fuzz/textblob_deserialize $OUT/textblob_deserialize
-mv ../skia_data/textblob_deserialize_seed_corpus.zip $OUT/textblob_deserialize_seed_corpus.zip
+cp out/Fuzz/region_set_path $OUT/region_set_path
+cp ./region_set_path.options $OUT/region_set_path.options
+cp ./region_set_path_seed_corpus.zip $OUT/region_set_path_seed_corpus.zip
 
-mv out/Fuzz/path_deserialize $OUT/path_deserialize
-mv ../skia_data/path_deserialize_seed_corpus.zip $OUT/path_deserialize_seed_corpus.zip
+cp out/Fuzz/textblob_deserialize $OUT/textblob_deserialize
+cp ./textblob_deserialize.options $OUT/textblob_deserialize.options
+cp ./textblob_deserialize_seed_corpus.zip $OUT/textblob_deserialize_seed_corpus.zip
 
-mv out/Fuzz/animated_image_decode $OUT/animated_image_decode
-mv ../skia_data/animated_image_decode_seed_corpus.zip $OUT/animated_image_decode_seed_corpus.zip
+cp out/Fuzz/path_deserialize $OUT/path_deserialize
+cp ./path_deserialize.options $OUT/path_deserialize.options
+cp ./path_deserialize_seed_corpus.zip $OUT/path_deserialize_seed_corpus.zip
+
+cp out/Fuzz/image_decode $OUT/image_decode
+cp ./image_decode.options $OUT/image_decode.options
+cp ./image_decode_seed_corpus.zip $OUT/image_decode_seed_corpus.zip
+
+cp out/Fuzz/animated_image_decode $OUT/animated_image_decode
+cp ./animated_image_decode.options $OUT/animated_image_decode.options
+cp ./animated_image_decode_seed_corpus.zip $OUT/animated_image_decode_seed_corpus.zip
+
+cp out/Fuzz_mem_constraints/image_filter_deserialize $OUT/image_filter_deserialize
+cp ./image_filter_deserialize.options $OUT/image_filter_deserialize.options
+cp ./image_filter_deserialize_seed_corpus.zip $OUT/image_filter_deserialize_seed_corpus.zip
 
 # Only create the width version of image_filter_deserialize if building with
 # libfuzzer, since it depends on a libfuzzer specific flag.
 if [ "$FUZZING_ENGINE" == "libfuzzer" ]
 then
   # Use the same binary as image_filter_deserialize.
-  cp out/Fuzz/image_filter_deserialize $OUT/image_filter_deserialize_width
-  mv ../skia_data/image_filter_deserialize_width.options $OUT/image_filter_deserialize_width.options
+  cp out/Fuzz_mem_constraints/image_filter_deserialize $OUT/image_filter_deserialize_width
+  cp ./image_filter_deserialize_width.options $OUT/image_filter_deserialize_width.options
   # Use the same seed corpus as image_filter_deserialize.
-  cp ../skia_data/image_filter_deserialize_seed_corpus.zip $OUT/image_filter_deserialize_width_seed_corpus.zip
+  cp ./image_filter_deserialize_seed_corpus.zip $OUT/image_filter_deserialize_width_seed_corpus.zip
 fi
 
-mv out/Fuzz/image_filter_deserialize $OUT/image_filter_deserialize
-mv ../skia_data/image_filter_deserialize_seed_corpus.zip $OUT/image_filter_deserialize_seed_corpus.zip
+cp out/Fuzz/api_draw_functions $OUT/api_draw_functions
+cp ./api_draw_functions.options $OUT/api_draw_functions.options
+cp ./api_draw_functions_seed_corpus.zip $OUT/api_draw_functions_seed_corpus.zip
 
-mv out/Fuzz/api_draw_functions $OUT/api_draw_functions
-mv ../skia_data/api_draw_functions_seed_corpus.zip $OUT/api_draw_functions_seed_corpus.zip
+cp out/Fuzz/api_gradients $OUT/api_gradients
+cp ./api_gradients.options $OUT/api_gradients.options
+cp ./api_gradients_seed_corpus.zip $OUT/api_gradients_seed_corpus.zip
 
-mv out/Fuzz/api_gradients $OUT/api_gradients
-mv ../skia_data/api_gradients_seed_corpus.zip $OUT/api_gradients_seed_corpus.zip
+cp out/Fuzz/api_path_measure $OUT/api_path_measure
+cp ./api_path_measure.options $OUT/api_path_measure.options
+cp ./api_path_measure_seed_corpus.zip $OUT/api_path_measure_seed_corpus.zip
 
-mv out/Fuzz/api_path_measure $OUT/api_path_measure
-mv ../skia_data/api_path_measure_seed_corpus.zip $OUT/api_path_measure_seed_corpus.zip
+cp out/Fuzz/api_pathop $OUT/api_pathop
+cp ./api_pathop.options $OUT/api_pathop.options
+cp ./api_pathop_seed_corpus.zip $OUT/api_pathop_seed_corpus.zip
 
-mv out/Fuzz/api_pathop $OUT/api_pathop
-mv ../skia_data/api_pathop_seed_corpus.zip $OUT/api_pathop_seed_corpus.zip
+cp out/Fuzz/png_encoder $OUT/png_encoder
+cp ./encoder.options $OUT/png_encoder.options
+cp ./encoder_seed_corpus.zip $OUT/png_encoder_seed_corpus.zip
 
-# These 3 use the same corpus.
-mv out/Fuzz/png_encoder $OUT/png_encoder
-cp ../skia_data/encoder_seed_corpus.zip $OUT/png_encoder_seed_corpus.zip
+cp out/Fuzz/jpeg_encoder $OUT/jpeg_encoder
+cp ./encoder.options $OUT/jpeg_encoder.options
+cp ./encoder_seed_corpus.zip $OUT/jpeg_encoder_seed_corpus.zip
 
-mv out/Fuzz/jpeg_encoder $OUT/jpeg_encoder
-cp ../skia_data/encoder_seed_corpus.zip $OUT/jpeg_encoder_seed_corpus.zip
+cp out/Fuzz/webp_encoder $OUT/webp_encoder
+cp ./encoder.options $OUT/webp_encoder.options
+cp ./encoder_seed_corpus.zip $OUT/webp_encoder_seed_corpus.zip
 
-mv out/Fuzz/webp_encoder $OUT/webp_encoder
-mv ../skia_data/encoder_seed_corpus.zip $OUT/webp_encoder_seed_corpus.zip
+cp out/Fuzz/skottie_json $OUT/skottie_json
+cp ./skottie_json_seed_corpus.zip $OUT/skottie_json_seed_corpus.zip
 
-mv out/Fuzz/skottie_json $OUT/skottie_json
-mv ../skia_data/skottie_json_seed_corpus.zip $OUT/skottie_json_seed_corpus.zip
+cp out/Fuzz/skjson $OUT/skjson
+cp json.dict $OUT/skjson.dict
+cp ./skjson_seed_corpus.zip $OUT/skjson_seed_corpus.zip
 
-mv out/Fuzz/skjson $OUT/skjson
-mv ../skia_data/json.dict $OUT/skjson.dict
-mv ../skia_data/skjson_seed_corpus.zip $OUT/skjson_seed_corpus.zip
+cp out/Fuzz_mem_constraints/api_mock_gpu_canvas $OUT/api_mock_gpu_canvas
+cp ./api_mock_gpu_canvas.options $OUT/api_mock_gpu_canvas.options
+cp ./canvas_seed_corpus.zip $OUT/api_mock_gpu_canvas_seed_corpus.zip
 
-# These 4 use the same canvas_seed_corpus.
-mv out/Fuzz/api_mock_gpu_canvas $OUT/api_mock_gpu_canvas
-cp ../skia_data/canvas_seed_corpus.zip $OUT/api_mock_gpu_canvas_seed_corpus.zip
+cp out/Fuzz_mem_constraints/api_raster_n32_canvas $OUT/api_raster_n32_canvas
+cp ./api_raster_n32_canvas.options $OUT/api_raster_n32_canvas.options
+cp ./canvas_seed_corpus.zip $OUT/api_raster_n32_canvas_seed_corpus.zip
 
-mv out/Fuzz/api_raster_n32_canvas $OUT/api_raster_n32_canvas
-cp ../skia_data/canvas_seed_corpus.zip $OUT/api_raster_n32_canvas_seed_corpus.zip
+cp out/Fuzz/api_image_filter $OUT/api_image_filter
+cp ./api_image_filter.options $OUT/api_image_filter.options
+cp ./api_image_filter_seed_corpus.zip $OUT/api_image_filter_seed_corpus.zip
 
-mv out/Fuzz/api_svg_canvas $OUT/api_svg_canvas
-cp ../skia_data/canvas_seed_corpus.zip $OUT/api_svg_canvas_seed_corpus.zip
+cp out/Fuzz/api_null_canvas $OUT/api_null_canvas
+cp ./api_null_canvas.options $OUT/api_null_canvas.options
+cp ./canvas_seed_corpus.zip $OUT/api_null_canvas_seed_corpus.zip
 
-mv out/Fuzz/api_null_canvas $OUT/api_null_canvas
-mv ../skia_data/canvas_seed_corpus.zip $OUT/api_null_canvas_seed_corpus.zip
+cp out/Fuzz/api_polyutils $OUT/api_polyutils
+cp ./api_polyutils.options $OUT/api_polyutils.options
+cp ./api_polyutils_seed_corpus.zip $OUT/api_polyutils_seed_corpus.zip
 
-mv out/Fuzz/api_image_filter $OUT/api_image_filter
-mv ../skia_data/api_image_filter_seed_corpus.zip $OUT/api_image_filter_seed_corpus.zip
+# These 2 can use the same corpus as the (non animated) image_decode.
+cp out/Fuzz/android_codec $OUT/android_codec
+cp ./android_codec.options $OUT/android_codec.options
+cp ./image_decode_seed_corpus.zip $OUT/android_codec_seed_corpus.zip.
 
-mv out/Fuzz/api_polyutils $OUT/api_polyutils
-mv ../skia_data/api_polyutils_seed_corpus.zip $OUT/api_polyutils_seed_corpus.zip
+cp out/Fuzz/image_decode_incremental $OUT/image_decode_incremental
+cp ./image_decode_incremental.options $OUT/image_decode_incremental.options
+cp ./image_decode_seed_corpus.zip $OUT/image_decode_incremental_seed_corpus.zip
 
-# These 3 use the same corpus.
-mv out/Fuzz/image_decode $OUT/image_decode
-cp ../skia_data/image_decode_seed_corpus.zip $OUT/image_decode_seed_corpus.zip
+cp out/Fuzz/sksl2glsl $OUT/sksl2glsl
+cp ./sksl2glsl.options $OUT/sksl2glsl.options
+cp ./sksl_seed_corpus.zip $OUT/sksl2glsl_seed_corpus.zip
 
-mv out/Fuzz/android_codec $OUT/android_codec
-cp ../skia_data/image_decode_seed_corpus.zip $OUT/android_codec_seed_corpus.zip.
+cp out/Fuzz/sksl2spirv $OUT/sksl2spirv
+cp ./sksl2spirv.options $OUT/sksl2spirv.options
+cp ./sksl_seed_corpus.zip $OUT/sksl2spirv_seed_corpus.zip
 
-mv out/Fuzz/image_decode_incremental $OUT/image_decode_incremental
-mv ../skia_data/image_decode_seed_corpus.zip $OUT/image_decode_incremental_seed_corpus.zip
+cp out/Fuzz/sksl2metal $OUT/sksl2metal
+cp ./sksl2metal.options $OUT/sksl2metal.options
+cp ./sksl_seed_corpus.zip $OUT/sksl2metal_seed_corpus.zip
 
-# These 4 use the same sksl_seed_corpus.
-mv out/Fuzz/sksl2glsl $OUT/sksl2glsl
-cp ../skia_data/sksl_seed_corpus.zip $OUT/sksl2glsl_seed_corpus.zip
+cp out/Fuzz/sksl2pipeline $OUT/sksl2pipeline
+cp ./sksl2pipeline.options $OUT/sksl2pipeline.options
+cp ./sksl_seed_corpus.zip $OUT/sksl2pipeline_seed_corpus.zip
 
-mv out/Fuzz/sksl2spirv $OUT/sksl2spirv
-cp ../skia_data/sksl_seed_corpus.zip $OUT/sksl2spirv_seed_corpus.zip
+cp out/Fuzz/api_skdescriptor $OUT/api_skdescriptor
+cp ./api_skdescriptor.options $OUT/api_skdescriptor.options
+cp ./api_skdescriptor_seed_corpus.zip $OUT/api_skdescriptor_seed_corpus.zip
 
-mv out/Fuzz/sksl2metal $OUT/sksl2metal
-cp ../skia_data/sksl_seed_corpus.zip $OUT/sksl2metal_seed_corpus.zip
-
-mv out/Fuzz/sksl2pipeline $OUT/sksl2pipeline
-mv ../skia_data/sksl_seed_corpus.zip $OUT/sksl2pipeline_seed_corpus.zip
-
-mv out/Fuzz/skdescriptor_deserialize $OUT/skdescriptor_deserialize
-
-mv out/Fuzz/svg_dom $OUT/svg_dom
-mv ../skia_data/svg_dom_seed_corpus.zip $OUT/svg_dom_seed_corpus.zip
-
-
-mv out/Fuzz/skruntimeeffect $OUT/skruntimeeffect
-mv ../skia_data/sksl_with_256_padding_seed_corpus.zip $OUT/skruntimeeffect_seed_corpus.zip
-
-mv out/Fuzz/api_create_ddl $OUT/api_create_ddl
-
-mv out/Fuzz/api_ddl_threading $OUT/api_ddl_threading
-
-mv out/Fuzz/skp $OUT/skp
-mv ../skia_data/skp_seed_corpus.zip $OUT/skp_seed_corpus.zip
-
-mv out/Fuzz/api_skparagraph $OUT/api_skparagraph
-
-mv out/Fuzz/api_regionop $OUT/api_regionop
+# Don't have any examples of an SkDescriptor atm, so some random bytes is all we have.
+cp out/Fuzz/skdescriptor_deserialize $OUT/skdescriptor_deserialize
+cp ./skdescriptor_deserialize.options $OUT/skdescriptor_deserialize.options
+cp ./api_skdescriptor_seed_corpus.zip $OUT/skdescriptor_deserialize_seed_corpus.zip
\ No newline at end of file
diff --git a/projects/skia/encoder.options b/projects/skia/encoder.options
new file mode 100644
index 0000000..a360502
--- /dev/null
+++ b/projects/skia/encoder.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 262150
\ No newline at end of file
diff --git a/projects/skia/image_codec.options b/projects/skia/image_codec.options
new file mode 100644
index 0000000..4709741
--- /dev/null
+++ b/projects/skia/image_codec.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 10240
\ No newline at end of file
diff --git a/projects/skia/image_filter_deserialize.options b/projects/skia/image_filter_deserialize.options
new file mode 100644
index 0000000..0bde038
--- /dev/null
+++ b/projects/skia/image_filter_deserialize.options
@@ -0,0 +1,3 @@
+[libfuzzer]
+max_len = 10024
+timeout = 10
diff --git a/projects/skia/path_deserialize.options b/projects/skia/path_deserialize.options
new file mode 100644
index 0000000..9b7b54d
--- /dev/null
+++ b/projects/skia/path_deserialize.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 2000
\ No newline at end of file
diff --git a/projects/skia/project.yaml b/projects/skia/project.yaml
index 824ac21..c1aa459 100644
--- a/projects/skia/project.yaml
+++ b/projects/skia/project.yaml
@@ -1,15 +1,10 @@
 homepage: "https://github.com/google/skia"
-language: c++
 primary_contact: "kjlubick@chromium.org"
 auto_ccs:
-  - "hcm@google.com"
+  - "hcm@chromium.org"
   - "mtklein@google.com"
   - "reed@google.com"
   - "bsalomon@google.com"
-  - "brianosman@google.com"
-  - "johnstiles@google.com"
-  - "ethannicholas@google.com"
-  - "westont@google.com"
 vendor_ccs:
   - "lsalzman@mozilla.com"
   - "twsmith@mozilla.com"
@@ -18,5 +13,3 @@
  - undefined
  - memory
 help_url: "https://skia.org/dev/testing/fuzz"
-builds_per_day: 4
-main_repo: 'https://skia.googlesource.com/skia.git'
diff --git a/projects/skia/region_deserialize.options b/projects/skia/region_deserialize.options
new file mode 100644
index 0000000..14b7dbf
--- /dev/null
+++ b/projects/skia/region_deserialize.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 512
\ No newline at end of file
diff --git a/projects/skia/region_set_path.options b/projects/skia/region_set_path.options
new file mode 100644
index 0000000..14b7dbf
--- /dev/null
+++ b/projects/skia/region_set_path.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 512
\ No newline at end of file
diff --git a/projects/skia/skdescriptor_deserialize.options b/projects/skia/skdescriptor_deserialize.options
new file mode 100644
index 0000000..0090e8b
--- /dev/null
+++ b/projects/skia/skdescriptor_deserialize.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 1024
\ No newline at end of file
diff --git a/projects/skia/skia.diff b/projects/skia/skia.diff
new file mode 100644
index 0000000..4e0c269
--- /dev/null
+++ b/projects/skia/skia.diff
@@ -0,0 +1,278 @@
+diff --git a/fuzz/FuzzPathMeasure.cpp b/fuzz/FuzzPathMeasure.cpp
+index 8526ff8cc6..116302f5fe 100644
+--- a/fuzz/FuzzPathMeasure.cpp
++++ b/fuzz/FuzzPathMeasure.cpp
+@@ -22,6 +22,9 @@ DEF_FUZZ(PathMeasure, fuzz) {
+     FuzzEvilPath(fuzz, &path, SkPath::Verb::kDone_Verb);
+     SkRect bounds = path.getBounds();
+     SkScalar maxDim = SkTMax(bounds.width(), bounds.height());
++    if (maxDim > 10000000) {
++        return;
++    }
+     SkScalar resScale = maxDim / 1000;
+     SkPathMeasure measure(path, bits & 1, resScale);
+     SkPoint position;
+diff --git a/src/core/SkAAClip.cpp b/src/core/SkAAClip.cpp
+index c33ea9510d..a4d09c265d 100644
+--- a/src/core/SkAAClip.cpp
++++ b/src/core/SkAAClip.cpp
+@@ -1547,6 +1547,12 @@ static void operateY(SkAAClip::Builder& builder, const SkAAClip& A,
+     int topB = iterB.top();
+     int botB = iterB.bottom();
+ 
++#if defined(IS_FUZZING)
++    if ((botA - topA) > 100000 || (botB - topB) > 100000) {
++        return;
++    }
++#endif
++
+     do {
+         const uint8_t* rowA = nullptr;
+         const uint8_t* rowB = nullptr;
+diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
+index 296329a52d..9b74d50146 100644
+--- a/src/core/SkDraw.cpp
++++ b/src/core/SkDraw.cpp
+@@ -959,6 +959,12 @@ void SkDraw::drawPath(const SkPath& origSrcPath, const SkPaint& origPaint,
+     // transform the path into device space
+     pathPtr->transform(*matrix, devPathPtr);
+ 
++#if defined(IS_FUZZING)
++    if (devPathPtr->countPoints() > 1000) {
++        return;
++    }
++#endif
++
+     this->drawDevPath(*devPathPtr, *paint, drawCoverage, customBlitter, doFill);
+ }
+ 
+diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
+index 107566459b..bac5263e47 100644
+--- a/src/core/SkImageFilter.cpp
++++ b/src/core/SkImageFilter.cpp
+@@ -176,6 +176,12 @@ bool SkImageFilter_Base::Common::unflatten(SkReadBuffer& buffer, int expectedCou
+         return false;
+     }
+ 
++#if defined(IS_FUZZING)
++    if (count > 4) {
++        return false;
++    }
++#endif
++
+     SkASSERT(fInputs.empty());
+     for (int i = 0; i < count; i++) {
+         fInputs.push_back(buffer.readBool() ? buffer.readImageFilter() : nullptr);
+diff --git a/src/core/SkMallocPixelRef.cpp b/src/core/SkMallocPixelRef.cpp
+index d998029a2b..8807c1fc4d 100644
+--- a/src/core/SkMallocPixelRef.cpp
++++ b/src/core/SkMallocPixelRef.cpp
+@@ -37,6 +37,11 @@ sk_sp<SkPixelRef> SkMallocPixelRef::MakeAllocate(const SkImageInfo& info, size_t
+             return nullptr;
+         }
+     }
++#if defined(IS_FUZZING)
++    if (size > 100000) {
++        return nullptr;
++    }
++#endif
+     void* addr = sk_calloc_canfail(size);
+     if (nullptr == addr) {
+         return nullptr;
+diff --git a/src/core/SkMaskFilter.cpp b/src/core/SkMaskFilter.cpp
+index 573fe3cabb..cae96b00cc 100644
+--- a/src/core/SkMaskFilter.cpp
++++ b/src/core/SkMaskFilter.cpp
+@@ -262,6 +262,11 @@ bool SkMaskFilterBase::filterPath(const SkPath& devPath, const SkMatrix& matrix,
+ 
+     SkMask  srcM, dstM;
+ 
++#if defined(IS_FUZZING)
++    if (devPath.countVerbs() > 1000 || devPath.countPoints() > 1000) {
++        return false;
++    }
++#endif
+     if (!SkDraw::DrawToMask(devPath, &clip.getBounds(), this, &matrix, &srcM,
+                             SkMask::kComputeBoundsAndRenderImage_CreateMode,
+                             style)) {
+diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
+index f294dbe4a0..12100e1624 100644
+--- a/src/core/SkPaint.cpp
++++ b/src/core/SkPaint.cpp
+@@ -449,6 +449,13 @@ bool SkPaint::getFillPath(const SkPath& src, SkPath* dst, const SkRect* cullRect
+ 
+     SkStrokeRec rec(*this, resScale);
+ 
++#if defined(IS_FUZZING)
++    // Prevent lines with small widths from timing out.
++    if (rec.getStyle() == SkStrokeRec::Style::kStroke_Style && rec.getWidth() < 0.001) {
++        return false;
++    }
++#endif
++
+     const SkPath* srcPtr = &src;
+     SkPath tmpPath;
+ 
+diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
+index 5679a9d182..104523a6af 100644
+--- a/src/core/SkPath.cpp
++++ b/src/core/SkPath.cpp
+@@ -3120,7 +3120,11 @@ void SkPathPriv::CreateDrawArcPath(SkPath* path, const SkRect& oval, SkScalar st
+                                    SkScalar sweepAngle, bool useCenter, bool isFillNoPathEffect) {
+     SkASSERT(!oval.isEmpty());
+     SkASSERT(sweepAngle);
+-
++#if defined(IS_FUZZING)
++    if (sweepAngle > 3600.0f || sweepAngle < 3600.0f) {
++        return;
++    }
++#endif
+     path->reset();
+     path->setIsVolatile(true);
+     path->setFillType(SkPathFillType::kWinding);
+diff --git a/src/core/SkReadBuffer.cpp b/src/core/SkReadBuffer.cpp
+index ff78b74a34..ce846799a4 100644
+--- a/src/core/SkReadBuffer.cpp
++++ b/src/core/SkReadBuffer.cpp
+@@ -277,7 +277,12 @@ sk_sp<SkData> SkReadBuffer::readByteArrayAsData() {
+ uint32_t SkReadBuffer::getArrayCount() {
+     const size_t inc = sizeof(uint32_t);
+     fError = fError || !IsPtrAlign4(fReader.peek()) || !fReader.isAvailable(inc);
++#if defined(IS_FUZZING)
++    uint32_t retVal = fError ? 0 : *(uint32_t*)fReader.peek();
++    return retVal < 1000 ? retVal: 1000;
++#else
+     return fError ? 0 : *(uint32_t*)fReader.peek();
++#endif
+ }
+ 
+ /*  Format:
+diff --git a/src/core/SkScan_Hairline.cpp b/src/core/SkScan_Hairline.cpp
+index f9365cecb2..7b77341e06 100644
+--- a/src/core/SkScan_Hairline.cpp
++++ b/src/core/SkScan_Hairline.cpp
+@@ -121,7 +121,11 @@ void SkScan::HairLineRgn(const SkPoint array[], int arrayCount, const SkRegion*
+             if (ix0 == ix1) {// too short to draw
+                 continue;
+             }
+-
++#if defined(IS_FUZZING)
++            if ((ix1 - ix0) > 100000 || (ix1 - ix0) < 0) {
++                continue; // too big to draw
++            }
++#endif
+             SkFixed slope = SkFixedDiv(dy, dx);
+             SkFixed startY = SkFDot6ToFixed(y0) + (slope * ((32 - x0) & 63) >> 6);
+ 
+@@ -137,7 +141,11 @@ void SkScan::HairLineRgn(const SkPoint array[], int arrayCount, const SkRegion*
+             if (iy0 == iy1) { // too short to draw
+                 continue;
+             }
+-
++#if defined(IS_FUZZING)
++            if ((iy1 - iy0) > 100000 || (iy1 - iy0) < 0) {
++                continue; // too big to draw
++            }
++#endif
+             SkFixed slope = SkFixedDiv(dx, dy);
+             SkFixed startX = SkFDot6ToFixed(x0) + (slope * ((32 - y0) & 63) >> 6);
+ 
+diff --git a/src/effects/Sk1DPathEffect.cpp b/src/effects/Sk1DPathEffect.cpp
+index 360179d663..04df451f2a 100644
+--- a/src/effects/Sk1DPathEffect.cpp
++++ b/src/effects/Sk1DPathEffect.cpp
+@@ -19,6 +19,11 @@
+ bool Sk1DPathEffect::onFilterPath(SkPath* dst, const SkPath& src,
+                                   SkStrokeRec*, const SkRect*) const {
+     SkPathMeasure   meas(src, false);
++#if defined(IS_FUZZING)
++    if (meas.getLength() < 0 || meas.getLength() > 100) {
++        return false;
++    }
++#endif
+     do {
+         int governor = MAX_REASONABLE_ITERATIONS;
+         SkScalar    length = meas.getLength();
+diff --git a/src/effects/Sk2DPathEffect.cpp b/src/effects/Sk2DPathEffect.cpp
+index fa19bb96b8..005daff13b 100644
+--- a/src/effects/Sk2DPathEffect.cpp
++++ b/src/effects/Sk2DPathEffect.cpp
+@@ -51,6 +51,11 @@ void Sk2DPathEffect::nextSpan(int x, int y, int count, SkPath* path) const {
+     if (!fMatrixIsInvertible) {
+         return;
+     }
++#if defined(IS_FUZZING)
++    if (count > 100) {
++        return;
++    }
++#endif
+ 
+     const SkMatrix& mat = this->getMatrix();
+     SkPoint src, dst;
+diff --git a/src/effects/SkDashPathEffect.cpp b/src/effects/SkDashPathEffect.cpp
+index 913d851c04..bd4ea876c0 100644
+--- a/src/effects/SkDashPathEffect.cpp
++++ b/src/effects/SkDashPathEffect.cpp
+@@ -381,6 +381,12 @@ sk_sp<SkFlattenable> SkDashImpl::CreateProc(SkReadBuffer& buffer) {
+         return nullptr;
+     }
+ 
++#if defined(IS_FUZZING)
++    // TODO(kjlubick) Can this be removed now that we have the check above?
++    if (count > 20) {
++        return nullptr;
++    }
++#endif
+     SkAutoSTArray<32, SkScalar> intervals(count);
+     if (buffer.readScalarArray(intervals.get(), count)) {
+         return SkDashPathEffect::Make(intervals.get(), SkToInt(count), phase);
+diff --git a/src/effects/SkDiscretePathEffect.cpp b/src/effects/SkDiscretePathEffect.cpp
+index 93ea43fa29..69527725a6 100644
+--- a/src/effects/SkDiscretePathEffect.cpp
++++ b/src/effects/SkDiscretePathEffect.cpp
+@@ -97,6 +97,11 @@ bool SkDiscretePathEffect::onFilterPath(SkPath* dst, const SkPath& src,
+ 
+     do {
+         SkScalar    length = meas.getLength();
++#if defined(IS_FUZZING)
++        if (length > 1000) {
++            return false;
++        }
++#endif
+ 
+         if (fSegLength * (2 + doFill) > length) {
+             meas.getSegment(0, length, dst, true);  // to short for us to mangle
+diff --git a/src/effects/SkLayerDrawLooper.cpp b/src/effects/SkLayerDrawLooper.cpp
+index 42592211a9..3b46f632cf 100644
+--- a/src/effects/SkLayerDrawLooper.cpp
++++ b/src/effects/SkLayerDrawLooper.cpp
+@@ -213,6 +213,11 @@ void SkLayerDrawLooper::flatten(SkWriteBuffer& buffer) const {
+ sk_sp<SkFlattenable> SkLayerDrawLooper::CreateProc(SkReadBuffer& buffer) {
+     int count = buffer.readInt();
+ 
++#if defined(IS_FUZZING)
++    if (count > 100) {
++        count = 100;
++    }
++#endif
+     Builder builder;
+     for (int i = 0; i < count; i++) {
+         LayerInfo info;
+diff --git a/src/ports/SkDebug_stdio.cpp b/src/ports/SkDebug_stdio.cpp
+index 1bba63cc0a..e569514902 100644
+--- a/src/ports/SkDebug_stdio.cpp
++++ b/src/ports/SkDebug_stdio.cpp
+@@ -12,9 +12,13 @@
+ #include <stdio.h>
+ 
+ void SkDebugf(const char format[], ...) {
++#if !defined(IS_FUZZING_WITH_LIBFUZZER)
+     va_list args;
+     va_start(args, format);
+     vfprintf(stderr, format, args);
+     va_end(args);
++#else
++    (void) format;
++#endif
+ }
+ #endif//!defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_ANDROID)
diff --git a/projects/skia/sksl.options b/projects/skia/sksl.options
new file mode 100644
index 0000000..648edd4
--- /dev/null
+++ b/projects/skia/sksl.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 3000
\ No newline at end of file
diff --git a/projects/skia/textblob_deserialize.options b/projects/skia/textblob_deserialize.options
new file mode 100644
index 0000000..0090e8b
--- /dev/null
+++ b/projects/skia/textblob_deserialize.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 1024
\ No newline at end of file
diff --git a/projects/sleuthkit/Dockerfile b/projects/sleuthkit/Dockerfile
deleted file mode 100644
index cf04b56..0000000
--- a/projects/sleuthkit/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool
-RUN git clone --depth 1 https://github.com/sleuthkit/sleuthkit sleuthkit
-WORKDIR sleuthkit
-COPY build.sh sleuthkit_mem_img.h *_fuzzer.cc $SRC/
diff --git a/projects/sleuthkit/build.sh b/projects/sleuthkit/build.sh
deleted file mode 100755
index 7ed222a..0000000
--- a/projects/sleuthkit/build.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-export CFLAGS="$CFLAGS -Wno-error=non-c-typedef-for-linkage"
-export CXXFLAGS="$CXXFLAGS -Wno-error=non-c-typedef-for-linkage"
-
-./bootstrap
-./configure --enable-static --disable-shared --disable-java
-make -j$(nproc)
-
-declare -A TSK_FS_TYPES=(
-  ["ext"]="TSK_FS_TYPE_EXT_DETECT"
-  ["fat"]="TSK_FS_TYPE_FAT_DETECT"
-  ["hfs"]="TSK_FS_TYPE_HFS"
-  ["ntfs"]="TSK_FS_TYPE_NTFS"
-  ["iso9660"]="TSK_FS_TYPE_ISO9660"
-)
-
-declare -A TSK_VS_TYPES=(
-  ["dos"]="TSK_VS_TYPE_DOS"
-  ["gpt"]="TSK_VS_TYPE_GPT"
-  ["mac"]="TSK_VS_TYPE_MAC"
-  ["sun"]="TSK_VS_TYPE_SUN"
-)
-
-for type in ${!TSK_FS_TYPES[@]}; do
-  $CXX $CXXFLAGS -std=c++11 -I.. -I. -Itsk -DFSTYPE=${TSK_FS_TYPES[$type]} \
-      $SRC/sleuthkit_fls_fuzzer.cc -o $OUT/sleuthkit_fls_${type}_fuzzer \
-      $LIB_FUZZING_ENGINE $SRC/sleuthkit/tsk/.libs/libtsk.a
-done
-
-for type in ${!TSK_VS_TYPES[@]}; do
-  $CXX $CXXFLAGS -std=c++11 -I.. -I. -Itsk -DVSTYPE=${TSK_VS_TYPES[$type]} \
-      $SRC/sleuthkit_mmls_fuzzer.cc -o $OUT/sleuthkit_mmls_${type}_fuzzer \
-      $LIB_FUZZING_ENGINE $SRC/sleuthkit/tsk/.libs/libtsk.a
-done
diff --git a/projects/sleuthkit/project.yaml b/projects/sleuthkit/project.yaml
deleted file mode 100644
index 3e1295b..0000000
--- a/projects/sleuthkit/project.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-homepage: "https://sleuthkit.org"
-language: c++
-primary_contact: "carrier@sleuthkit.org"
-main_repo: 'https://github.com/sleuthkit/sleuthkit'
diff --git a/projects/sleuthkit/sleuthkit_fls_fuzzer.cc b/projects/sleuthkit/sleuthkit_fls_fuzzer.cc
deleted file mode 100644
index 83618dd..0000000
--- a/projects/sleuthkit/sleuthkit_fls_fuzzer.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "sleuthkit/tsk/tsk_tools_i.h"
-#include "sleuthkit_mem_img.h"
-
-#ifndef FSTYPE
-#error Define FSTYPE as a valid value of TSK_FS_TYPE_ENUM.
-#endif
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  TSK_IMG_INFO *img;
-  TSK_FS_INFO *fs;
-
-  img = mem_open(data, size);
-  if (img == nullptr)
-    return 0;
-
-  fs = tsk_fs_open_img(img, 0, FSTYPE);
-  if (fs != nullptr) {
-    tsk_fs_fls(fs, TSK_FS_FLS_FULL, fs->root_inum, TSK_FS_DIR_WALK_FLAG_RECURSE,
-               nullptr, 0);
-
-    fs->close(fs);
-  }
-
-  img->close(img);
-  return 0;
-}
diff --git a/projects/sleuthkit/sleuthkit_mem_img.h b/projects/sleuthkit/sleuthkit_mem_img.h
deleted file mode 100644
index e6bf3b5..0000000
--- a/projects/sleuthkit/sleuthkit_mem_img.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef MEM_IMG_H
-#define MEM_IMG_H
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "sleuthkit/tsk/tsk_tools_i.h"
-
-typedef struct {
-  TSK_IMG_INFO img_info;
-  const uint8_t *data;
-  size_t size;
-} IMG_MEM_INFO;
-
-static ssize_t mem_read(TSK_IMG_INFO *img_info, TSK_OFF_T offset, char *buf,
-                        size_t len) {
-  IMG_MEM_INFO *mem_info = reinterpret_cast<IMG_MEM_INFO *>(img_info);
-  // Bounds-checking exists in the real drivers.
-  if (offset > mem_info->size) {
-    return -1;
-  }
-  ssize_t read_len = len;
-  if (offset + len > mem_info->size) {
-    read_len = mem_info->size - offset;
-  }
-  if (memcpy(buf, mem_info->data + offset, read_len) == nullptr) {
-    return -1;
-  } else {
-    return read_len;
-  }
-}
-
-static void mem_close(TSK_IMG_INFO *img_info) {
-  IMG_MEM_INFO *mem_info = reinterpret_cast<IMG_MEM_INFO *>(img_info);
-  tsk_deinit_lock(&(img_info->cache_lock));
-  free(mem_info);
-}
-
-static void mem_imgstat(TSK_IMG_INFO *img_info, FILE *hFile) {}
-
-TSK_IMG_INFO *mem_open(const uint8_t *data, size_t size) {
-  IMG_MEM_INFO *inmemory_img =
-      reinterpret_cast<IMG_MEM_INFO *>(malloc(sizeof(IMG_MEM_INFO)));
-  TSK_IMG_INFO *img;
-  if (inmemory_img == nullptr) {
-    return nullptr;
-  }
-  img = reinterpret_cast<TSK_IMG_INFO *>(inmemory_img);
-  img->itype = TSK_IMG_TYPE_RAW;
-  img->read = mem_read;
-  img->close = mem_close;
-  img->imgstat = mem_imgstat;
-  img->size = size;
-  img->sector_size = 512;
-  tsk_init_lock(&(img->cache_lock));
-  inmemory_img->data = data;
-  inmemory_img->size = size;
-  return img;
-}
-
-#endif // # MEM_IMG_H
diff --git a/projects/sleuthkit/sleuthkit_mmls_fuzzer.cc b/projects/sleuthkit/sleuthkit_mmls_fuzzer.cc
deleted file mode 100644
index bd2b8db..0000000
--- a/projects/sleuthkit/sleuthkit_mmls_fuzzer.cc
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "sleuthkit/tsk/tsk_tools_i.h"
-#include "sleuthkit_mem_img.h"
-
-#ifndef VSTYPE
-#error Define VSTYPE as a valid value of TSK_VS_TYPE_ENUM.
-#endif
-
-static TSK_WALK_RET_ENUM part_act(TSK_VS_INFO *vs, const TSK_VS_PART_INFO *part,
-                                  void *ptr) {
-  return TSK_WALK_CONT;
-}
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  TSK_IMG_INFO *img;
-  TSK_VS_INFO *vs;
-
-  img = mem_open(data, size);
-  if (img == nullptr)
-    return 0;
-
-  vs = tsk_vs_open(img, 0, VSTYPE);
-  if (vs != nullptr) {
-    tsk_vs_part_walk(vs, 0, vs->part_count - 1, TSK_VS_PART_FLAG_ALL, part_act,
-                     nullptr);
-
-    tsk_vs_close(vs);
-  }
-
-  img->close(img);
-  return 0;
-}
diff --git a/projects/snappy/Dockerfile b/projects/snappy/Dockerfile
deleted file mode 100644
index 45e8e30..0000000
--- a/projects/snappy/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool gettext pkg-config build-essential
-RUN git clone --recurse-submodules https://github.com/google/snappy
-
-WORKDIR $SRC/
-COPY build.sh $SRC/
diff --git a/projects/snappy/build.sh b/projects/snappy/build.sh
deleted file mode 100755
index 44c059e..0000000
--- a/projects/snappy/build.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/snappy
-mkdir -p build && cd build
-cmake -DSNAPPY_FUZZING_BUILD=ON -DSNAPPY_BUILD_TESTS=0 \
-    -DSNAPPY_BUILD_BENCHMARKS=0 ../ && cmake --build .
-
-cp *_fuzzer $OUT/
diff --git a/projects/snappy/project.yaml b/projects/snappy/project.yaml
deleted file mode 100644
index 6e5338a..0000000
--- a/projects/snappy/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/google/snappy"
-language: c++
-primary_contact: "costan@google.com"
-auto_ccs:
-  - "Adam@adalogics.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-sanitizers:
-  - address
-main_repo: 'https://github.com/google/snappy'
diff --git a/projects/solidity/Dockerfile b/projects/solidity/Dockerfile
index c59136c..9bf5413 100644
--- a/projects/solidity/Dockerfile
+++ b/projects/solidity/Dockerfile
@@ -16,30 +16,32 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 RUN apt-get update && apt-get install -y make autoconf automake libtool \
-    build-essential libbz2-dev ninja-build zlib1g-dev wget python python-dev \
-    liblzma-dev uuid-dev pkg-config openjdk-8-jdk unzip mlton
+    build-essential libbz2-dev ninja-build zlib1g-dev wget python python-dev
+# Install cmake 3.14 (minimum requirement is cmake 3.10)
+RUN wget https://github.com/Kitware/CMake/releases/download/v3.14.5/cmake-3.14.5-Linux-x86_64.sh; \
+    chmod +x cmake-3.14.5-Linux-x86_64.sh; \
+    ./cmake-3.14.5-Linux-x86_64.sh --skip-license --prefix="/usr"
 
-RUN git clone --recursive -b breaking https://github.com/ethereum/solidity.git solidity
+RUN git clone --recursive https://github.com/ethereum/solidity.git solidity
 RUN git clone --depth 1 https://github.com/ethereum/solidity-fuzzing-corpus.git
+RUN git clone --recursive -b boost-1.69.0 https://github.com/boostorg/boost.git \
+    boost
 RUN git clone --depth 1 https://github.com/google/libprotobuf-mutator.git
 RUN git clone --branch="v0.4.0" --recurse-submodules \
     https://github.com/ethereum/evmone.git
+RUN git clone --branch="z3-4.8.7" https://github.com/Z3Prover/z3.git
 
 # Install statically built dependencies in "/usr" directory
 # Install boost
-RUN cd $SRC; \
-    wget -q 'https://dl.bintray.com/boostorg/release/1.73.0/source/boost_1_73_0.tar.bz2' -O boost.tar.bz2; \
-    test "$(sha256sum boost.tar.bz2)" = "4eb3b8d442b426dc35346235c8733b5ae35ba431690e38c6a8263dce9fcbb402  boost.tar.bz2"; \
-    tar -xf boost.tar.bz2; \
-    rm boost.tar.bz2; \
-    cd boost_1_73_0; \
-    CXXFLAGS="-stdlib=libc++ -pthread" LDFLAGS="-stdlib=libc++" ./bootstrap.sh --with-toolset=clang --prefix=/usr; \
-    ./b2 toolset=clang cxxflags="-stdlib=libc++ -pthread" linkflags="-stdlib=libc++ -pthread" headers; \
-    ./b2 toolset=clang cxxflags="-stdlib=libc++ -pthread" linkflags="-stdlib=libc++ -pthread" \
-        link=static variant=release runtime-link=static \
-        system filesystem unit_test_framework program_options \
-        install -j $(($(nproc)/2)); \
-    rm -rf $SRC/boost_1_73_0
+RUN cd $SRC/boost; \
+    ./bootstrap.sh --with-toolset=clang --prefix=/usr; \
+    ./b2 clean; \
+    ./b2 toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" \
+    headers; \
+    ./b2 toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" \
+    link=static variant=release runtime-link=static \
+    system regex filesystem unit_test_framework program_options \
+    install -j $(($(nproc)/2));
 
 # Install libprotobuf-mutator
 RUN mkdir $SRC/LPM; \
@@ -60,30 +62,12 @@
     ninja; \
     ninja install;
 
-# gmp
-RUN cd $SRC; \
-    # Replace system installed libgmp static library
-    # with sanitized version
-    rm -f /usr/lib/x86_64-linux-gnu/libgmp.a; \
-    wget -q 'https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz' -O gmp.tar.xz; \
-    test "$(sha256sum gmp.tar.xz)" = "fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2  gmp.tar.xz"; \
-    tar -xf gmp.tar.xz; \
-    cd gmp-6.2.1; \
-    ./configure --prefix=/usr --enable-shared=no --enable-static=yes; \
-    make -j; \
-    make install; \
-    rm -rf $SRC/gmp-6.2.1; \
-    rm -f $SRC/gmp.tar.xz
-
-# libabicoder
-RUN set -ex; \
-    cd /usr/src; \
-    git clone https://github.com/ekpyron/Yul-Isabelle; \
-    cd Yul-Isabelle; \
-    cd libabicoder; \
-    CXX=clang++ CXXFLAGS="-stdlib=libc++ -pthread" make; \
-    cp libabicoder.a /usr/lib; \
-    cp abicoder.hpp /usr/include; \
-    rm -rf /usr/src/Yul-Isabelle
+# Install Z3
+RUN cd $SRC/z3; \
+    mkdir -p build; \
+    cd build; \
+    LDFLAGS=$CXXFLAGS cmake -DZ3_BUILD_LIBZ3_SHARED=OFF -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..; \
+    make libz3 -j; \
+    make install;
 
 COPY build.sh $SRC/
diff --git a/projects/solidity/build.sh b/projects/solidity/build.sh
index ae5844c..8288180 100755
--- a/projects/solidity/build.sh
+++ b/projects/solidity/build.sh
@@ -15,81 +15,34 @@
 #
 ################################################################################
 
-#!/usr/bin/env bash
-set -ex
+# Compile proto C++ bindings
+protoc \
+    --proto_path=$SRC/solidity/test/tools/ossfuzz yulProto.proto \
+    --cpp_out=$SRC/solidity/test/tools/ossfuzz
+protoc \
+    --proto_path=$SRC/solidity/test/tools/ossfuzz abiV2Proto.proto \
+    --cpp_out=$SRC/solidity/test/tools/ossfuzz
 
-ROOTDIR="${SRC}/solidity"
-BUILDDIR="${ROOTDIR}/build"
-mkdir -p "${BUILDDIR}" && mkdir -p "$BUILDDIR/deps"
+# Build solidity
+cd $SRC/solidity
+CXXFLAGS="${CXXFLAGS} -I/usr/local/include/c++/v1"
+mkdir -p build
+cd build
+rm -rf *
 
-ANTLRJAR="${BUILDDIR}/deps/antlr4.8.jar"
-ANTLRJAR_URI="https://www.antlr.org/download/antlr-4.8-complete.jar"
+# Build solidity
+cmake -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/ossfuzz.cmake \
+      -DCMAKE_BUILD_TYPE=Release \
+      $SRC/solidity
+make ossfuzz ossfuzz_proto ossfuzz_abiv2 -j $(nproc)
 
-download_antlr4()
-{
-  if [[ ! -e "${ANTLRJAR}" ]]
-  then
-    wget -O "${ANTLRJAR}" "${ANTLRJAR_URI}"
-  fi
-}
-
-generate_protobuf_bindings()
-{
-  cd "${ROOTDIR}"/test/tools/ossfuzz
-  # Generate protobuf C++ bindings
-  for protoName in yul abiV2 sol;
-  do
-    protoc "${protoName}"Proto.proto --cpp_out .
-  done
-}
-
-generate_antlr4_bindings()
-{
-  cd "${ROOTDIR}"
-  # Replace boolean with bool to suit c++ syntax
-  sed -i 's/boolean /bool /g' docs/grammar/Solidity.g4
-  # Generate antlr4 visitor/parser/lexer c++ bindings
-  java -jar "${ANTLRJAR}" -Dlanguage=Cpp \
-    -Xexact-output-dir -package solidity::test::fuzzer -o test/tools/ossfuzz \
-    -no-listener -visitor docs/grammar/SolidityLexer.g4 docs/grammar/Solidity.g4
-  # Delete unnecessary autogen files
-  rm -f "${ROOTDIR}"/test/tools/ossfuzz/Solidity*Visitor.cpp \
-    "${ROOTDIR}"/test/tools/ossfuzz/Solidity*.interp \
-    "${ROOTDIR}"/test/tools/ossfuzz/Solidity*.tokens
-}
-
-build_fuzzers()
-{
-  cd "${BUILDDIR}"
-  CXXFLAGS="${CXXFLAGS} -I/usr/local/include/c++/v1"
-  cmake -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/ossfuzz.cmake \
-        -DCMAKE_BUILD_TYPE=Release \
-        "${ROOTDIR}"
-  make ossfuzz ossfuzz_proto ossfuzz_abiv2 -j $(nproc)
-}
-
-copy_fuzzers_and_config()
-{
-  cp "${BUILDDIR}"/test/tools/ossfuzz/*_ossfuzz "${OUT}"
-  cp "${ROOTDIR}"/test/tools/ossfuzz/config/*.options "${OUT}"
-  cp "${ROOTDIR}"/test/tools/ossfuzz/config/*.dict "${OUT}"
-}
-
-update_corpus()
-{
-  rm -f "${OUT}"/*.zip
-  cd "${SRC}"/solidity-fuzzing-corpus
-  git pull origin master
-  for dir in "${SRC}"/solidity-fuzzing-corpus/*;
-  do
-    name=$(basename $dir)
-    zip -rq "${OUT}"/$name $dir
-  done
-}
-
-download_antlr4
-generate_protobuf_bindings
-generate_antlr4_bindings
-build_fuzzers
-copy_fuzzers_and_config
-update_corpus
\ No newline at end of file
+# Copy fuzzer binary, seed corpus, fuzzer options, and dictionary
+cp test/tools/ossfuzz/*_ossfuzz $OUT/
+rm -f $OUT/*.zip
+for dir in $SRC/solidity-fuzzing-corpus/*;
+do
+	name=$(basename $dir)
+	zip -rjq $OUT/$name $dir
+done
+cp $SRC/solidity/test/tools/ossfuzz/config/*.options $OUT/
+cp $SRC/solidity/test/tools/ossfuzz/config/*.dict $OUT/
diff --git a/projects/solidity/project.yaml b/projects/solidity/project.yaml
index 248cfd6..10e0d31 100644
--- a/projects/solidity/project.yaml
+++ b/projects/solidity/project.yaml
@@ -1,8 +1,6 @@
 homepage: "https://solidity.readthedocs.io"
-language: c++
 primary_contact: "bhargava.shastry@ethereum.org"
 auto_ccs:
   - "axic@ethereum.org"
   - "christian@ethereum.org"
   - "martin.swende@ethereum.org"
-main_repo: 'https://github.com/ethereum/solidity.git'
diff --git a/projects/sound-open-firmware/Dockerfile b/projects/sound-open-firmware/Dockerfile
deleted file mode 100644
index 29bf7cd..0000000
--- a/projects/sound-open-firmware/Dockerfile
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 2020 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get -y update && \
-	    apt-get install -y \
-	    	autoconf \
-		bison \
-		build-essential \
-		flex \
-		gawk \
-		gettext \
-		git \
-		gperf \
-		help2man \
-		libncurses5-dev \
-		libssl-dev \
-		libtool \
-		libtool-bin \
-		pkg-config \
-		software-properties-common \
-		texinfo \
-		udev \
-		cmake \
-		libglib2.0-dev
-
-ARG CLONE_DEFAULTS="--depth 5"
-
-# Use ToT alsa utils for the latest topology patches.
-RUN cd /tmp && \
-git clone $CLONE_DEFAULTS https://github.com/thesofproject/alsa-lib.git && \
-git clone $CLONE_DEFAULTS https://github.com/thesofproject/alsa-utils.git && \
-cd /tmp/alsa-lib && ./gitcompile &&  make install && \
-cd /tmp/alsa-utils && ./gitcompile &&  make install
-
-ARG GITHUB_SOF=https://github.com/thesofproject
-
-RUN cd $SRC && git clone $CLONE_DEFAULTS $GITHUB_SOF/sof
-WORKDIR sof
-COPY build.sh $SRC/
diff --git a/projects/sound-open-firmware/build.sh b/projects/sound-open-firmware/build.sh
deleted file mode 100644
index 51cf278..0000000
--- a/projects/sound-open-firmware/build.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash -eux
-# Copyright 2020 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-cd $SRC/sof/tools/oss-fuzz
-cp corpus/* $OUT/
-rm -rf build_oss_fuzz
-mkdir -p build_oss_fuzz
-cd build_oss_fuzz
-
-export VERBOSE=1
-cmake -DCMAKE_INSTALL_PREFIX=install -DCMAKE_LINKER=$CXX -DCMAKE_C_LINK_EXECUTABLE="<CMAKE_LINKER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>" ..
-make install -j $(nproc)
diff --git a/projects/sound-open-firmware/project.yaml b/projects/sound-open-firmware/project.yaml
deleted file mode 100644
index 4065def..0000000
--- a/projects/sound-open-firmware/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://thesofproject.github.io"
-primary_contact: "cujomalainey@chromium.org"
-language: c
-auto_ccs:
-  - "ranjani.sridharan@intel.corp-partner.google.com"
-main_repo: "https://github.com/thesofproject/sof"
diff --git a/projects/spdlog/Dockerfile b/projects/spdlog/Dockerfile
index 9adf61f..6c2c73d 100644
--- a/projects/spdlog/Dockerfile
+++ b/projects/spdlog/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2020 Google Inc.
+# Copyright 2019 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,10 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER gmelman1@gmail.com
 
 RUN apt-get update && apt-get install --yes cmake
+
 RUN git clone --depth 1 https://github.com/gabime/spdlog.git
-RUN zip spdlog_fuzzer_seed_corpus.zip spdlog/example/*
 WORKDIR spdlog
-COPY build.sh spdlog_fuzzer.dict $SRC/
-COPY fuzz/* $SRC/
+COPY build.sh log_fuzzer.cc $SRC/
diff --git a/projects/spdlog/build.sh b/projects/spdlog/build.sh
index 60c9a97..5e9087d 100755
--- a/projects/spdlog/build.sh
+++ b/projects/spdlog/build.sh
@@ -1,5 +1,5 @@
 #!/bin/bash -eu
-# Copyright 2020 Google Inc.
+# Copyright 2019 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -25,6 +25,3 @@
     $f $LIB_FUZZING_ENGINE ./libspdlog.a \
     -o $OUT/$b
 done
-
-cp $SRC/spdlog_fuzzer_seed_corpus.zip $OUT/
-cp $SRC/*.dict $SRC/*.options $OUT/
diff --git a/projects/spdlog/fuzz/backtrace_fuzzer.cc b/projects/spdlog/fuzz/backtrace_fuzzer.cc
deleted file mode 100644
index 2964812..0000000
--- a/projects/spdlog/fuzz/backtrace_fuzzer.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include "spdlog/spdlog.h"
-#include "spdlog/sinks/basic_file_sink.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  static std::shared_ptr<spdlog::logger> my_logger;
-  if (!my_logger.get()) {
-    my_logger = spdlog::basic_logger_mt("basic_logger", "/dev/null");
-    spdlog::set_default_logger(my_logger);
-  }
-
-  if (size == 0) {
-    return 0;
-  }
-
-  FuzzedDataProvider stream(data, size);
-
-  const uint16_t size_arg = stream.ConsumeIntegral<uint16_t>();
-
-  spdlog::enable_backtrace(size_arg);
-  for(int i=0; i<size_arg; i++){
-    spdlog::debug(stream.ConsumeRandomLengthString(size));
-  }
-  spdlog::dump_backtrace();
-  return 0;
-}
diff --git a/projects/spdlog/fuzz/format_fuzzer.cc b/projects/spdlog/fuzz/format_fuzzer.cc
deleted file mode 100644
index 809fe40..0000000
--- a/projects/spdlog/fuzz/format_fuzzer.cc
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include "spdlog/spdlog.h"
-#include "spdlog/sinks/basic_file_sink.h"
-#include "spdlog/pattern_formatter.h"
-
-
-std::string my_formatter_txt = "custom-flag";
-
-class my_formatter_flag : public spdlog::custom_flag_formatter
-{
-  
-public:
-    void format(const spdlog::details::log_msg &, const std::tm &, spdlog::memory_buf_t &dest) override
-    {
-        dest.append(my_formatter_txt.data(), my_formatter_txt.data() + my_formatter_txt.size());
-    }
-
-    std::unique_ptr<custom_flag_formatter> clone() const override
-    {
-        return spdlog::details::make_unique<my_formatter_flag>();
-    }
-};
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  if (size == 0) {
-    return 0;
-  }
-
-  static std::shared_ptr<spdlog::logger> my_logger;
-  if (!my_logger.get()) {
-    my_logger = spdlog::basic_logger_mt("basic_logger", "/dev/null");
-    spdlog::set_default_logger(my_logger);
-  }
-
-  FuzzedDataProvider stream(data, size);
-
-  const unsigned long size_arg = stream.ConsumeIntegral<unsigned long>();
-  const unsigned long  int_arg = stream.ConsumeIntegral<unsigned long>();
-  const char flag = (char)(stream.ConsumeIntegral<char>());
-  const std::string pattern = stream.ConsumeRandomLengthString();
-  my_formatter_txt = stream.ConsumeRandomLengthString();
-  const std::string string_arg = stream.ConsumeRandomLengthString();
-  const std::string format_string = stream.ConsumeRemainingBytesAsString();
-
-  using spdlog::details::make_unique;
-  auto formatter = make_unique<spdlog::pattern_formatter>();
-  formatter->add_flag<my_formatter_flag>(flag).set_pattern(pattern);
-  spdlog::set_formatter(std::move(formatter));
-  
-  spdlog::info(format_string.c_str(), size_arg, int_arg, string_arg);
-
-  return 0;
-}
diff --git a/projects/spdlog/fuzz/format_fuzzer.options b/projects/spdlog/fuzz/format_fuzzer.options
deleted file mode 100644
index a1728af..0000000
--- a/projects/spdlog/fuzz/format_fuzzer.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-dict = spdlog_fuzzer.dict
\ No newline at end of file
diff --git a/projects/spdlog/fuzz/levels_fuzzer.cc b/projects/spdlog/fuzz/levels_fuzzer.cc
deleted file mode 100644
index b1bac03..0000000
--- a/projects/spdlog/fuzz/levels_fuzzer.cc
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include "spdlog/spdlog.h"
-#include "spdlog/sinks/basic_file_sink.h"
-#include "spdlog/cfg/argv.h"
-#include "spdlog/cfg/env.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  if (size == 0) {
-    return 0;
-  }
-
-  static std::shared_ptr<spdlog::logger> my_logger;
-  if (!my_logger.get()) {
-    my_logger = spdlog::basic_logger_mt("basic_logger", "/dev/null");
-    spdlog::set_default_logger(my_logger);
-  }
-
-  FuzzedDataProvider stream(data, size);
-  
-  std::vector<std::string> strings;
-  const unsigned char strsize = stream.ConsumeIntegral<unsigned char>();
-  for(unsigned char i=0; i<strsize; i++){
-    strings.push_back(stream.ConsumeRandomLengthString());
-  }
-  std::vector<char*> argvv; argvv.reserve(strsize);
-  for(unsigned char i=0; i< strsize; ++i){
-    argvv.push_back(const_cast<char*>(strings[i].c_str()));
-  }
-  
-  if(strsize==0) return 0;
-  
-  const char** argv = (const char**) &argvv[0];
-  spdlog::cfg::load_env_levels();
-  spdlog::cfg::load_argv_levels(strsize, argv);
-  spdlog::info(stream.ConsumeRemainingBytesAsString());
-  
-  return 0;
-}
diff --git a/projects/spdlog/fuzz/levels_fuzzer.options b/projects/spdlog/fuzz/levels_fuzzer.options
deleted file mode 100644
index a1728af..0000000
--- a/projects/spdlog/fuzz/levels_fuzzer.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-dict = spdlog_fuzzer.dict
\ No newline at end of file
diff --git a/projects/spdlog/fuzz/log_fuzzer.cc b/projects/spdlog/fuzz/log_fuzzer.cc
deleted file mode 100644
index e6d299d..0000000
--- a/projects/spdlog/fuzz/log_fuzzer.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include "spdlog/spdlog.h"
-#include "spdlog/sinks/basic_file_sink.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  static std::shared_ptr<spdlog::logger> my_logger;
-  if (!my_logger.get()) {
-    my_logger = spdlog::basic_logger_mt("basic_logger", "/dev/null");
-    spdlog::set_default_logger(my_logger);
-  }
-
-  if (size == 0) {
-    return 0;
-  }
-
-
-  FuzzedDataProvider stream(data, size);
-
-  const unsigned long size_arg = stream.ConsumeIntegral<unsigned long>();
-  const unsigned long int_arg = stream.ConsumeIntegral<unsigned long>();
-  const std::string string_arg = stream.ConsumeRandomLengthString(size);
-  const std::string format_string = stream.ConsumeRemainingBytesAsString();
-
-  spdlog::info(format_string.c_str(), size_arg, int_arg, string_arg);
-  spdlog::trace(format_string.c_str(), size_arg, int_arg, string_arg);
-  spdlog::debug(format_string.c_str(), size_arg, int_arg, string_arg);
-  spdlog::error(format_string.c_str(), size_arg, int_arg, string_arg);
-  spdlog::warn(format_string.c_str(), size_arg, int_arg, string_arg);
-  spdlog::critical(format_string.c_str(), size_arg, int_arg, string_arg);
-
-  SPDLOG_INFO(format_string.c_str(), size_arg, int_arg, string_arg);
-  SPDLOG_TRACE(format_string.c_str(), size_arg, int_arg, string_arg);
-  SPDLOG_DEBUG(format_string.c_str(), size_arg, int_arg, string_arg);
-  SPDLOG_ERROR(format_string.c_str(), size_arg, int_arg, string_arg);
-  SPDLOG_WARN(format_string.c_str(), size_arg, int_arg, string_arg);
-  SPDLOG_CRITICAL(format_string.c_str(), size_arg, int_arg, string_arg);
-
-  return 0;
-}
diff --git a/projects/spdlog/fuzz/log_fuzzer.options b/projects/spdlog/fuzz/log_fuzzer.options
deleted file mode 100644
index a1728af..0000000
--- a/projects/spdlog/fuzz/log_fuzzer.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-dict = spdlog_fuzzer.dict
\ No newline at end of file
diff --git a/projects/spdlog/fuzz/pattern_fuzzer.cc b/projects/spdlog/fuzz/pattern_fuzzer.cc
deleted file mode 100644
index 0a2d73b..0000000
--- a/projects/spdlog/fuzz/pattern_fuzzer.cc
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include "spdlog/spdlog.h"
-#include "spdlog/sinks/basic_file_sink.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  static std::shared_ptr<spdlog::logger> my_logger;
-  if (!my_logger.get()) {
-    my_logger = spdlog::basic_logger_mt("basic_logger", "/dev/null");
-    spdlog::set_default_logger(my_logger);
-  }
-
-  if (size == 0) {
-    return 0;
-  }
-
-  FuzzedDataProvider stream(data, size);
-  const std::string str = stream.ConsumeRemainingBytesAsString();
-  spdlog::set_pattern(str);
-
-  return 0;
-}
diff --git a/projects/spdlog/fuzz/pattern_fuzzer.options b/projects/spdlog/fuzz/pattern_fuzzer.options
deleted file mode 100644
index a1728af..0000000
--- a/projects/spdlog/fuzz/pattern_fuzzer.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-dict = spdlog_fuzzer.dict
\ No newline at end of file
diff --git a/projects/spdlog/log_fuzzer.cc b/projects/spdlog/log_fuzzer.cc
new file mode 100644
index 0000000..f512191
--- /dev/null
+++ b/projects/spdlog/log_fuzzer.cc
@@ -0,0 +1,42 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include <cstddef>
+
+#include <fuzzer/FuzzedDataProvider.h>
+
+#include "spdlog/spdlog.h"
+#include "spdlog/sinks/basic_file_sink.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+  static std::shared_ptr<spdlog::logger> my_logger;
+  if (!my_logger.get()) {
+    my_logger = spdlog::basic_logger_mt("basic_logger", "/dev/null");
+    spdlog::set_default_logger(my_logger);
+  }
+
+  if (size == 0) {
+    return 0;
+  }
+
+  FuzzedDataProvider stream(data, size);
+
+  const size_t size_arg = stream.ConsumeIntegral<size_t>();
+  const int int_arg = stream.ConsumeIntegral<int>();
+  const std::string string_arg = stream.ConsumeRandomLengthString(size);
+  const std::string format_string = stream.ConsumeRemainingBytesAsString();
+  spdlog::info(format_string.c_str(), size_arg, int_arg, string_arg);
+
+  return 0;
+}
diff --git a/projects/spdlog/project.yaml b/projects/spdlog/project.yaml
index b2a7b59..5f8c35e 100644
--- a/projects/spdlog/project.yaml
+++ b/projects/spdlog/project.yaml
@@ -1,10 +1,6 @@
-homepage: "https://github.com/gabime/spdlog"
-language: c++
+homepage: "https://github.com/google/zopfli"
 primary_contact: "gmelman1@gmail.com"
-auto_ccs:
-  - "ouyangyunshu@google.com"
 sanitizers:
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/gabime/spdlog.git'
diff --git a/projects/spdlog/spdlog_fuzzer.dict b/projects/spdlog/spdlog_fuzzer.dict
deleted file mode 100644
index dc7d1eb..0000000
--- a/projects/spdlog/spdlog_fuzzer.dict
+++ /dev/null
@@ -1,20 +0,0 @@
-"{}"
-"{:08d}"
-"{0:d}"
-"{0:x}"
-"{0:o}"
-"{0:b}"
-"{:03.2f}"
-"{1}"
-"{0}"
-"{:<8}"
-"{:<999999999999999999999999}"
-"[%H:%M:%S %z]"
-"[%^%L%$]"
-"[thread %t]"
-"%v"
-"%+"
-"{:X}"
-"{:s}"
-"{:p}"
-"{:n}"
\ No newline at end of file
diff --git a/projects/speex/Dockerfile b/projects/speex/Dockerfile
index f8d8ef6..05a4253 100644
--- a/projects/speex/Dockerfile
+++ b/projects/speex/Dockerfile
@@ -15,8 +15,9 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER tmatth@videolan.org
 RUN apt-get update && apt-get install -y make autoconf libtool pkg-config wget
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/ogg.git
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/speex.git speex
+RUN git clone https://git.xiph.org/ogg.git
+RUN git clone https://git.xiph.org/speex.git speex
 WORKDIR speex
 COPY build.sh $SRC/
diff --git a/projects/speex/project.yaml b/projects/speex/project.yaml
index e083b9f..e89b67c 100644
--- a/projects/speex/project.yaml
+++ b/projects/speex/project.yaml
@@ -1,17 +1,9 @@
 homepage: "https://speex.org/"
-language: c++
 primary_contact: "tmatth@videolan.org"
 auto_ccs:
   - "twsmith@mozilla.com"
   - "le.businessman@gmail.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
-  - undefined
   - memory
-  - dataflow
-main_repo: 'https://gitlab.xiph.org/xiph/speex.git'
+  - undefined
diff --git a/projects/spidermonkey-ufi/Dockerfile b/projects/spidermonkey-ufi/Dockerfile
index 25e4d2d..5217c06 100644
--- a/projects/spidermonkey-ufi/Dockerfile
+++ b/projects/spidermonkey-ufi/Dockerfile
@@ -15,16 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER cdiehl@mozilla.com
 RUN apt-get update && apt-get install -y --no-install-recommends \
     autoconf2.13 \
     python \
     libc++1 \
-    libc++abi1 \
-    m4
-
-# This wrapper of cargo seems to interfere with our build system.
-RUN rm -f /usr/local/bin/cargo
-
+    libc++abi1
 RUN git clone --depth=1 https://github.com/mozilla/gecko-dev mozilla-central
 WORKDIR mozilla-central/js/src/
 COPY build.sh target.c $SRC/
diff --git a/projects/spidermonkey-ufi/build.sh b/projects/spidermonkey-ufi/build.sh
index 9f70330..7356ff6 100755
--- a/projects/spidermonkey-ufi/build.sh
+++ b/projects/spidermonkey-ufi/build.sh
@@ -21,16 +21,16 @@
   Wasm
 )
 
-# Install dependencies.
+# Install dependencies. Note that bootstrap installs cargo, which must be added
+# to PATH via source. In a successive run (for a different sanitizer), the
+# cargo installation carries over, but bootstrap fails if cargo is not in PATH.
 export SHELL=/bin/bash
-../../mach --no-interactive bootstrap --application-choice browser
+[[ -f "$HOME/.cargo/env" ]] && source $HOME/.cargo/env
+../../mach bootstrap --no-interactive --application-choice browser
+source $HOME/.cargo/env
 
 autoconf2.13
 
-# Skip patches for now
-rm ../../tools/fuzzing/libfuzzer/patches/*.patch
-touch ../../tools/fuzzing/libfuzzer/patches/dummy.patch
-
 # Update internal libFuzzer.
 (cd ../../tools/fuzzing/libfuzzer && ./clone_libfuzzer.sh HEAD)
 
@@ -38,8 +38,8 @@
 cd build_OPT.OBJ
 
 ../configure \
-    --enable-debug \
-    --enable-optimize="-O2 -gline-tables-only" \
+    --enable-optimize \
+    --disable-shared-js \
     --disable-jemalloc \
     --enable-tests \
     --enable-fuzzing \
@@ -61,3 +61,4 @@
 mkdir -p $OUT/lib
 cp -L /usr/lib/x86_64-linux-gnu/libc++.so.1 $OUT/lib
 cp -L /usr/lib/x86_64-linux-gnu/libc++abi.so.1 $OUT/lib
+
diff --git a/projects/spidermonkey-ufi/project.yaml b/projects/spidermonkey-ufi/project.yaml
index 3dae682..8eb1f0e 100644
--- a/projects/spidermonkey-ufi/project.yaml
+++ b/projects/spidermonkey-ufi/project.yaml
@@ -1,5 +1,4 @@
 homepage: 'https://searchfox.org/mozilla-central/source/js/src/fuzz-tests/README'
-language: c++
 primary_contact: 'choller@mozilla.com'
 fuzzing_engines:
   - libfuzzer
diff --git a/projects/spidermonkey/Dockerfile b/projects/spidermonkey/Dockerfile
index 9c74dce..2581814 100644
--- a/projects/spidermonkey/Dockerfile
+++ b/projects/spidermonkey/Dockerfile
@@ -15,17 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get upgrade -y && apt-get install -y \
+MAINTAINER alex.gaynor@gmail.com
+RUN apt-get update && apt-get install -y \
   autoconf2.13 \
-  libc++1 \
-  libc++abi1 \
-  m4 \
   yasm \
   python
 
-# This wrapper of cargo seems to interfere with our build system.
-RUN rm -f /usr/local/bin/cargo
-
 RUN git clone --depth=1 https://github.com/mozilla/gecko-dev mozilla-central
 WORKDIR mozilla-central/js/src/
 COPY build.sh $SRC/
diff --git a/projects/spidermonkey/build.sh b/projects/spidermonkey/build.sh
index bf2e03b..8be2176 100755
--- a/projects/spidermonkey/build.sh
+++ b/projects/spidermonkey/build.sh
@@ -17,7 +17,10 @@
 
 # Install dependencies.
 export SHELL=/bin/bash
-../../mach --no-interactive bootstrap --application-choice browser
+../../mach bootstrap --no-interactive --application-choice browser
+
+# Set environment for rustc.
+source $HOME/.cargo/env
 
 autoconf2.13
 
@@ -27,7 +30,8 @@
 # Temporarily disable cranelift (see bug 1497570)
 ../configure \
     --enable-debug \
-    --enable-optimize="-O2 -gline-tables-only" \
+    --enable-optimize \
+    --disable-shared-js \
     --disable-jemalloc \
     --disable-tests \
     --enable-address-sanitizer \
@@ -36,8 +40,3 @@
 make "-j$(nproc)"
 
 cp dist/bin/js $OUT
-
-# Copy libraries.
-mkdir -p $OUT/lib
-cp -L /usr/lib/x86_64-linux-gnu/libc++.so.1 $OUT/lib
-cp -L /usr/lib/x86_64-linux-gnu/libc++abi.so.1 $OUT/lib
diff --git a/projects/spidermonkey/project.yaml b/projects/spidermonkey/project.yaml
index d7635fb..b17b35c 100644
--- a/projects/spidermonkey/project.yaml
+++ b/projects/spidermonkey/project.yaml
@@ -1,11 +1,8 @@
 homepage: "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-language: c++
 primary_contact: "choller@mozilla.com"
 auto_ccs:
   - sledru@mozilla.com
-  - twsmith@mozilla.com
 fuzzing_engines:
   - none
 sanitizers:
   - address
-blackbox: true
diff --git a/projects/spotify-json/Dockerfile b/projects/spotify-json/Dockerfile
deleted file mode 100755
index b39e5f9..0000000
--- a/projects/spotify-json/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/spotify/spotify-json
-
-WORKDIR $SRC/spotify-json
-COPY build.sh $SRC/
diff --git a/projects/spotify-json/build.sh b/projects/spotify-json/build.sh
deleted file mode 100755
index 9d15061..0000000
--- a/projects/spotify-json/build.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-mkdir build && cd build
-cmake -DSPOTIFY_JSON_BUILD_TESTS=OFF ../
-make
-
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE ../fuzzers//fuzz_decode.cpp \
-    -I../include -I../vendor/double-conversion \
-    ./libspotify-json.a ./vendor/double-conversion/libdouble-conversion.a  -lpthread -o $OUT/fuzz_decode
diff --git a/projects/spotify-json/project.yaml b/projects/spotify-json/project.yaml
deleted file mode 100755
index 134dd78..0000000
--- a/projects/spotify-json/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://github.com/spotify/spotify-json"
-main_repo: 'https://github.com/spotify/spotify-json'
-primary_contact: "johanl@spotify.com"
-language: c++
-auto_ccs:
-  - "david@adalogics.com"
diff --git a/projects/sqlite3/Dockerfile b/projects/sqlite3/Dockerfile
index cb5a83b..e25694f 100644
--- a/projects/sqlite3/Dockerfile
+++ b/projects/sqlite3/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER tanin@google.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool curl tcl zlib1g-dev
 
 # We won't be able to poll fossil for changes, so this will build
diff --git a/projects/sqlite3/project.yaml b/projects/sqlite3/project.yaml
index 56b1892..4bdb8f2 100644
--- a/projects/sqlite3/project.yaml
+++ b/projects/sqlite3/project.yaml
@@ -1,9 +1,8 @@
 homepage: "https://sqlite.org/"
-language: c++
 primary_contact: "drhsqlite@gmail.com"
 auto_ccs:
   - "sboydps@gmail.com"
-  - "twsmith@mozilla.com"
+  - "cdiehl@mozilla.com"
 sanitizers:
   - address
   - memory
diff --git a/projects/stb/Dockerfile b/projects/stb/Dockerfile
deleted file mode 100644
index d9449ea..0000000
--- a/projects/stb/Dockerfile
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && \
-    apt-get install -y wget tar
-
-
-RUN git clone --depth 1 https://github.com/nothings/stb.git
-
-RUN wget -O $SRC/stb/gif.tar.gz https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/imagetestsuite/imagetestsuite-gif-1.00.tar.gz
-RUN wget -O $SRC/stb/jpg.tar.gz https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/imagetestsuite/imagetestsuite-jpg-1.00.tar.gz
-RUN wget -O $SRC/stb/bmp.zip http://entropymine.com/jason/bmpsuite/releases/bmpsuite-2.6.zip
-RUN wget -O $SRC/stb/tga.zip https://github.com/richgel999/tga_test_files/archive/master.zip
-
-RUN wget -O $SRC/stb/tests/gif.dict https://raw.githubusercontent.com/mirrorer/afl/master/dictionaries/gif.dict &> /dev/null
-
-WORKDIR stb
-COPY build.sh $SRC/
diff --git a/projects/stb/build.sh b/projects/stb/build.sh
deleted file mode 100644
index e32e0e6..0000000
--- a/projects/stb/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-# Run the OSS-Fuzz script in the project
-$SRC/stb/tests/ossfuzz.sh
diff --git a/projects/stb/project.yaml b/projects/stb/project.yaml
deleted file mode 100644
index bae6779..0000000
--- a/projects/stb/project.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-homepage: "https://github.com/nothings/stb"
-language: c++
-primary_contact: "nothings.org@gmail.com"
-auto_ccs:
-  - "randy440088@gmail.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
-sanitizers:
-  - address
-  - undefined
-  - memory
-  - dataflow
-main_repo: 'https://github.com/nothings/stb.git'
diff --git a/projects/strongswan/Dockerfile b/projects/strongswan/Dockerfile
index ea003db..cfd1aa7 100644
--- a/projects/strongswan/Dockerfile
+++ b/projects/strongswan/Dockerfile
@@ -15,6 +15,7 @@
 ##############################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER tobias@strongswan.org
 RUN apt-get update && apt-get install -y automake autoconf libtool pkg-config gettext perl python flex bison gperf lcov libgmp3-dev
 RUN git clone --depth 1 https://github.com/strongswan/strongswan.git strongswan
 RUN git clone --depth 1 https://github.com/strongswan/fuzzing-corpora.git strongswan/fuzzing-corpora
diff --git a/projects/strongswan/project.yaml b/projects/strongswan/project.yaml
index 659631a..cf048e0 100644
--- a/projects/strongswan/project.yaml
+++ b/projects/strongswan/project.yaml
@@ -1,7 +1,5 @@
 homepage: "https://www.strongswan.org"
-language: c++
 primary_contact: "security@strongswan.org"
 auto_ccs:
   - "tobias@strongswan.org"
   - "andreas.steffen@strongswan.org"
-main_repo: 'https://github.com/strongswan/strongswan.git'
diff --git a/projects/sudoers/Dockerfile b/projects/sudoers/Dockerfile
deleted file mode 100755
index 96977ba..0000000
--- a/projects/sudoers/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone https://github.com/sudo-project/sudo
-
-WORKDIR $SRC/sudo
-COPY build.sh $SRC/
diff --git a/projects/sudoers/build.sh b/projects/sudoers/build.sh
deleted file mode 100755
index 905450c..0000000
--- a/projects/sudoers/build.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Debugging
-env
-
-# Some of the sanitizer flags cause issues with configure tests.
-# Pull them out of CFLAGS and pass them to configure instead.
-if [ $SANITIZER == "coverage" ]; then
-    CFLAGS="`echo \"$CFLAGS\" | sed \"s/ $COVERAGE_FLAGS//\"`"
-    sanitizer_opts="$COVERAGE_FLAGS"
-else
-    CFLAGS="`echo \"$CFLAGS\" | sed \"s/ $SANITIZER_FLAGS//\"`"
-    sanitizer_opts="$SANITIZER_FLAGS"
-fi
-# This is already added by --enable-fuzzer
-CFLAGS="`echo \"$CFLAGS\" | sed \"s/ -fsanitize=fuzzer-no-link//\"`"
-
-# Build sudo with static libs and enable fuzzing targets.
-# All fuzz targets are integrated into the build process.
-./configure --disable-shared --disable-shared-libutil --enable-static-sudoers \
-    --enable-sanitizer="$sanitizer_opts" --enable-fuzzer \
-    --enable-fuzzer-engine="$LIB_FUZZING_ENGINE" --enable-fuzzer-linker="$CXX" \
-    --enable-warnings --enable-werror
-make -j$(nproc) && make FUZZ_DESTDIR=$OUT install-fuzzer
diff --git a/projects/sudoers/project.yaml b/projects/sudoers/project.yaml
deleted file mode 100755
index 309a3eb..0000000
--- a/projects/sudoers/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/sudo-project"
-primary_contact: "sudo@sudo.ws"
-language: c
-fuzzing_engines:
-  - libfuzzer
-  - honggfuzz
-  - dataflow
-auto_ccs :
-  - "david@adalogics.com"
-main_repo: 'https://github.com/sudo-project/sudo'
diff --git a/projects/suricata/Dockerfile b/projects/suricata/Dockerfile
deleted file mode 100644
index 257e7fb..0000000
--- a/projects/suricata/Dockerfile
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y build-essential autoconf automake libtool make pkg-config  python flex bison zlib1g-dev libpcre3-dev libpcre2-dev cmake tshark
-
-#TODO libmagic, liblzma, pcre and other optional libraries
-ADD https://www.tcpdump.org/release/libpcap-1.9.1.tar.gz libpcap-1.9.1.tar.gz
-ADD http://www.digip.org/jansson/releases/jansson-2.12.tar.gz jansson-2.12.tar.gz
-RUN git clone --depth=1 https://github.com/yaml/libyaml
-ADD https://github.com/lz4/lz4/archive/v1.9.2.tar.gz lz4-1.9.2.tar.gz
-RUN git clone --depth=1 https://github.com/catenacyber/fuzzpcap
-
-ADD https://rules.emergingthreats.net/open/suricata/emerging.rules.zip emerging.rules.zip
-
-RUN cargo install --force cbindgen
-
-RUN git clone --depth 1 https://github.com/OISF/suricata.git suricata
-RUN git clone --depth 1 https://github.com/OISF/libhtp.git libhtp
-RUN git clone --depth 1 https://github.com/OISF/suricata-verify suricata-verify
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/suricata/build.sh b/projects/suricata/build.sh
deleted file mode 100755
index 18f2280..0000000
--- a/projects/suricata/build.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build dependencies statically
-tar -xvzf lz4-1.9.2.tar.gz
-cd lz4-1.9.2
-make liblz4.a
-cp lib/liblz4.a /usr/local/lib/
-cp lib/lz4*.h /usr/local/include/
-cd ..
-
-tar -xvzf jansson-2.12.tar.gz
-cd jansson-2.12
-./configure --disable-shared
-make -j$(nproc)
-make install
-cd ..
-
-tar -xvzf libpcap-1.9.1.tar.gz
-cd libpcap-1.9.1
-./configure --disable-shared
-make -j$(nproc)
-make install
-cd ..
-
-cd fuzzpcap
-mkdir build
-cd build
-cmake ..
-make install
-cd ../..
-
-cd libyaml
-./bootstrap
-./configure --disable-shared
-make -j$(nproc)
-make install
-cd ..
-
-export CARGO_BUILD_TARGET="x86_64-unknown-linux-gnu"
-
-#we did not put libhtp there before so that cifuzz does not remove it
-mv libhtp suricata/
-# build project
-cd suricata
-sh autogen.sh
-#run configure with right options
-if [ "$SANITIZER" = "address" ]
-then
-    export RUSTFLAGS="$RUSTFLAGS -Cpasses=sancov -Cllvm-args=-sanitizer-coverage-level=4 -Cllvm-args=-sanitizer-coverage-trace-compares -Cllvm-args=-sanitizer-coverage-inline-8bit-counters -Cllvm-args=-sanitizer-coverage-trace-geps -Cllvm-args=-sanitizer-coverage-prune-blocks=0 -Cllvm-args=-sanitizer-coverage-pc-table -Clink-dead-code -Cllvm-args=-sanitizer-coverage-stack-depth"
-fi
-./src/tests/fuzz/oss-fuzz-configure.sh
-make -j$(nproc)
-
-cp src/fuzz_* $OUT/
-
-# dictionaries
-./src/suricata --list-keywords | grep "\- " | sed 's/- //' | awk '{print "\""$0"\""}' > $OUT/fuzz_siginit.dict
-
-# build corpuses
-# default configuration file
-zip -r $OUT/fuzz_confyamlloadstring_seed_corpus.zip suricata.yaml
-# rebuilds rules corpus with only one rule by file
-unzip ../emerging.rules.zip
-cd rules
-i=0
-mkdir corpus
-# quiet output for commands
-set +x
-cat *.rules | while read l; do echo $l > corpus/$i.rule; i=$((i+1)); done
-set -x
-zip -q -r $OUT/fuzz_siginit_seed_corpus.zip corpus
-cd ../../suricata-verify
-
-# corpus with single files
-find . -name "*.pcap" | xargs zip -r $OUT/fuzz_decodepcapfile_seed_corpus.zip
-find . -name "*.yaml" | xargs zip -r $OUT/fuzz_confyamlloadstring_seed_corpus.zip
-find . -name "*.rules" | xargs zip -r $OUT/fuzz_siginit_seed_corpus.zip
-
-# corpus using both rule and pcap as in suricata-verify
-cd tests
-i=0
-mkdir corpus
-set +x
-ls | grep -v corpus | while read t; do
-cat $t/*.rules > corpus/$i || true; echo -ne '\0' >> corpus/$i; cat $t/*.pcap >> corpus/$i || true; i=$((i+1));
-done
-set -x
-zip -q -r $OUT/fuzz_sigpcap_seed_corpus.zip corpus
-rm -Rf corpus
-mkdir corpus
-set +x
-ls | grep -v corpus | while read t; do
-cat $t/*.rules > corpus/$i || true; echo -ne '\0' >> corpus/$i; fpc_bin $t/*.pcap >> corpus/$i || rm corpus/$i; i=$((i+1));
-echo -ne '\0' >> corpus/$i; python3 $SRC/fuzzpcap/tcptofpc.py $t/*.pcap >> corpus/$i || rm corpus/$i; i=$((i+1));
-done
-set -x
-zip -q -r $OUT/fuzz_sigpcap_aware_seed_corpus.zip corpus
-echo "\"FPC0\"" > $OUT/fuzz_sigpcap_aware.dict
diff --git a/projects/suricata/project.yaml b/projects/suricata/project.yaml
deleted file mode 100644
index 3babd8f..0000000
--- a/projects/suricata/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://suricata-ids.org"
-language: c++
-primary_contact: "vjulien@openinfosecfoundation.org"
-auto_ccs:
-- "jish@openinfosecfoundation.org"
-- "p.antoine@catenacyber.fr"
-sanitizers:
-  - address
-  - memory
-  - undefined
-main_repo: 'https://github.com/OISF/suricata.git'
diff --git a/projects/systemd/Dockerfile b/projects/systemd/Dockerfile
index 0705c56..b920555 100644
--- a/projects/systemd/Dockerfile
+++ b/projects/systemd/Dockerfile
@@ -15,11 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jonathan@titanous.com
 RUN apt-get update &&\
     apt-get install -y gperf m4 gettext python3-pip \
         libcap-dev libmount-dev libkmod-dev \
         pkg-config wget &&\
-    pip3 install meson==0.56.2 ninja
+    pip3 install meson ninja
 RUN git clone --depth 1 https://github.com/systemd/systemd systemd
 WORKDIR systemd
 COPY build.sh $SRC/
diff --git a/projects/systemd/project.yaml b/projects/systemd/project.yaml
index c3eb6b2..473215e 100644
--- a/projects/systemd/project.yaml
+++ b/projects/systemd/project.yaml
@@ -1,7 +1,5 @@
 homepage: "https://freedesktop.org/wiki/Software/systemd/"
-language: c++
 primary_contact: "lennart@poettering.net"
-builds_per_day: 4
 sanitizers:
   - address
   - undefined
@@ -20,6 +18,3 @@
   - ssahani@vmware.com
   - chris@chrisdown.name
   - the.anitazha@gmail.com
-  - daan.j.demeyer@gmail.com
-  - luca.boccassi@gmail.com
-main_repo: 'https://github.com/systemd/systemd'
diff --git a/projects/syzkaller/Dockerfile b/projects/syzkaller/Dockerfile
index fdef5b4..77bfde6 100644
--- a/projects/syzkaller/Dockerfile
+++ b/projects/syzkaller/Dockerfile
@@ -15,8 +15,13 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mmoroz@chromium.org
 
-RUN git clone --depth 1 https://github.com/google/syzkaller/
+RUN go get -u -d github.com/google/syzkaller/...
 
-WORKDIR $SRC/syzkaller
+# Dependency for one of the fuzz targets.
+RUN go get github.com/ianlancetaylor/demangle
+
+RUN git clone --depth 1 https://github.com/google/syzkaller.git syzkaller
+WORKDIR syzkaller
 COPY build.sh $SRC/
diff --git a/projects/syzkaller/build.sh b/projects/syzkaller/build.sh
index 0e98093..44be203 100755
--- a/projects/syzkaller/build.sh
+++ b/projects/syzkaller/build.sh
@@ -1,4 +1,4 @@
-#!/bin/bash -eux
+#!/bin/bash -eu
 # Copyright 2019 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,16 +15,23 @@
 #
 ################################################################################
 
+# Based on the function from oss-fuzz/projects/golang/build.sh script.
+function compile_fuzzer {
+  path=$1
+  function=$2
+  fuzzer=$3
 
+   # Instrument all Go files relevant to this fuzzer
+  go-fuzz-build -libfuzzer -func $function -o $fuzzer.a $path 
 
-make descriptions
+   # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary
+  $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o $OUT/$fuzzer
+}
 
-go mod tidy && go mod vendor
-
-compile_go_fuzzer github.com/google/syzkaller/pkg/compiler Fuzz compiler_fuzzer
-compile_go_fuzzer github.com/google/syzkaller/prog/test FuzzDeserialize prog_deserialize_fuzzer
-compile_go_fuzzer github.com/google/syzkaller/prog/test FuzzParseLog prog_parselog_fuzzer
-compile_go_fuzzer github.com/google/syzkaller/pkg/report Fuzz report_fuzzer
+compile_fuzzer ./pkg/compiler Fuzz compiler_fuzzer
+compile_fuzzer ./prog/test FuzzDeserialize prog_deserialize_fuzzer
+compile_fuzzer ./prog/test FuzzParseLog prog_parselog_fuzzer
+compile_fuzzer ./pkg/report Fuzz report_fuzzer
 
 # This target is way too spammy and OOMs very quickly.
-# compile_go_fuzzer ./tools/syz-trace2syz/proggen Fuzz trace2syz_fuzzer
+# compile_fuzzer ./tools/syz-trace2syz/proggen Fuzz trace2syz_fuzzer
diff --git a/projects/syzkaller/project.yaml b/projects/syzkaller/project.yaml
index 1442c04..ee6cd84 100644
--- a/projects/syzkaller/project.yaml
+++ b/projects/syzkaller/project.yaml
@@ -10,4 +10,3 @@
 sanitizers:
   - address
 view_restrictions: none
-main_repo: 'https://github.com/google/syzkaller'
diff --git a/projects/tarantool/Dockerfile b/projects/tarantool/Dockerfile
deleted file mode 100644
index 7a40b0f..0000000
--- a/projects/tarantool/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y \
-	build-essential cmake make coreutils sed \
-	autoconf automake libtool zlib1g-dev \
-	libreadline-dev libncurses5-dev libssl-dev \
-	libunwind-dev libicu-dev luajit
-RUN git clone https://github.com/tarantool/tarantool
-WORKDIR tarantool
-RUN git submodule update --init --recursive
-COPY build.sh $SRC/
diff --git a/projects/tarantool/build.sh b/projects/tarantool/build.sh
deleted file mode 100755
index 940d88a..0000000
--- a/projects/tarantool/build.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-case $SANITIZER in
-  address) SANITIZERS_ARGS="-DENABLE_ASAN=ON" ;;
-  undefined) SANITIZERS_ARGS="-DENABLE_UB_SANITIZER=ON" ;;
-  *) SANITIZERS_ARGS="" ;;
-esac
-
-: ${LD:="${CXX}"}
-: ${LDFLAGS:="${CXXFLAGS}"}  # to make sure we link with sanitizer runtime
-
-cmake_args=(
-    # Specific to Tarantool
-    -DENABLE_FUZZER=ON
-    -DOSS_FUZZ=ON
-    $SANITIZERS_ARGS
-
-    # C compiler
-    -DCMAKE_C_COMPILER="${CC}"
-    -DCMAKE_C_FLAGS="${CFLAGS}"
-
-    # C++ compiler
-    -DCMAKE_CXX_COMPILER="${CXX}"
-    -DCMAKE_CXX_FLAGS="${CXXFLAGS}"
-
-    # Linker
-    -DCMAKE_LINKER="${LD}"
-    -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}"
-    -DCMAKE_MODULE_LINKER_FLAGS="${LDFLAGS}"
-    -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}"
-)
-
-# Build the project and fuzzers.
-[[ -e build ]] && rm -rf build
-cmake "${cmake_args[@]}" -S . -B build
-make -j$(nproc) VERBOSE=1 -C build fuzzers
-
-# Archive and copy to $OUT seed corpus if the build succeeded.
-for f in $(ls build/test/fuzz/*_fuzzer);
-do
-  name=$(basename $f);
-  module=$(echo $name | sed 's/_fuzzer//')
-  corpus_dir="test/static/corpus/$module"
-  echo "Copying for $module";
-  cp $f $OUT/
-  [[ -e $corpus_dir ]] && zip -j $OUT/"$module"_fuzzer_seed_corpus.zip $corpus_dir/*
-done
diff --git a/projects/tarantool/project.yaml b/projects/tarantool/project.yaml
deleted file mode 100644
index c757a53..0000000
--- a/projects/tarantool/project.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-homepage: "https://www.tarantool.io/en/"
-language: c
-builds_per_day: 4
-primary_contact: "kirill.yukhin@gmail.com"
-auto_ccs:
-  - "estetus@gmail.com"
-  - "totktonada.ru@gmail.com"
-fuzzing_engines:
-  - libfuzzer
-  - honggfuzz
-sanitizers:
-  - address
-  - undefined
-architectures:
-  - x86_64
-main_repo: "https://github.com/tarantool/tarantool"
diff --git a/projects/teleport/Dockerfile b/projects/teleport/Dockerfile
deleted file mode 100644
index 8ffafb3..0000000
--- a/projects/teleport/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/gravitational/teleport.git
-COPY build.sh $SRC/
-WORKDIR $SRC/teleport
diff --git a/projects/teleport/build.sh b/projects/teleport/build.sh
deleted file mode 100644
index 260d479..0000000
--- a/projects/teleport/build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-make update-vendor
-
-compile_go_fuzzer github.com/gravitational/teleport/lib/fuzz FuzzParseProxyJump utils_fuzz gofuzz
-compile_go_fuzzer github.com/gravitational/teleport/lib/fuzz FuzzNewExpression parse_fuzz gofuzz
diff --git a/projects/teleport/project.yaml b/projects/teleport/project.yaml
deleted file mode 100644
index ac85d90..0000000
--- a/projects/teleport/project.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-homepage: "https://github.com/gravitational/teleport"
-primary_contact: "andrew@awly.dev"
-auto_ccs :
-  - "adam@adalogics.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
diff --git a/projects/tensorflow-py/Dockerfile b/projects/tensorflow-py/Dockerfile
deleted file mode 100644
index dea03cb..0000000
--- a/projects/tensorflow-py/Dockerfile
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2021 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
-        curl \
-        rsync \
-        vim \
-        && \
-    apt-get clean && \
-    rm -rf /var/lib/apt/lists/*
-
-# Due to Bazel bug, need to symlink python3 to python
-# See https://github.com/bazelbuild/bazel/issues/8665
-RUN ln -s /usr/local/bin/python3 /usr/local/bin/python
-
-# Install Bazelisk to keep bazel in sync with the version required by TensorFlow
-RUN curl -Lo /usr/bin/bazel \
-        https://github.com/bazelbuild/bazelisk/releases/download/v1.1.0/bazelisk-linux-amd64 \
-        && \
-    chmod +x /usr/bin/bazel
-
-RUN git clone --depth 1 https://github.com/tensorflow/tensorflow tensorflow
-WORKDIR $SRC/tensorflow
-COPY build.sh $SRC/
diff --git a/projects/tensorflow-py/build.sh b/projects/tensorflow-py/build.sh
deleted file mode 100644
index afd501b..0000000
--- a/projects/tensorflow-py/build.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-python3 -m pip install tf-nightly-cpu
-python3 -m pip install numpy
-
-# Rename to avoid the following: https://github.com/tensorflow/tensorflow/issues/40182
-mv $SRC/tensorflow/tensorflow $SRC/tensorflow/tensorflow_src
-
-# Build fuzzers into $OUT. These could be detected in other ways.
-
-for fuzzer in $(find $SRC -name '*_fuzz.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  cp /usr/local/lib/python3.8/site-packages/numpy.libs/libz-eb09ad1d.so.1.2.3 $OUT
-  cp /usr/local/lib/python3.8/site-packages/numpy.libs/libquadmath-2d0c479f.so.0.0.0 $OUT
-  cp /usr/local/lib/python3.8/site-packages/numpy.libs/libgfortran-2e0d59d6.so.5.0.0 $OUT
-  cp /usr/local/lib/python3.8/site-packages/numpy.libs/libopenblasp-r0-09e95953.3.13.so $OUT
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_PRELOAD=\"\$this_dir/sanitizer_with_fuzzer.so \$this_dir/libz-eb09ad1d.so.1.2.3 \$this_dir/libquadmath-2d0c479f.so.0.0.0 \$this_dir/libgfortran-2e0d59d6.so.5.0.0 \$this_dir/libopenblasp-r0-09e95953.3.13.so\" \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
-
-mv $SRC/tensorflow/tensorflow_src $SRC/tensorflow/tensorflow
diff --git a/projects/tensorflow-py/project.yaml b/projects/tensorflow-py/project.yaml
deleted file mode 100644
index 64c5eba..0000000
--- a/projects/tensorflow-py/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://www.tensorflow.org"
-language: python
-primary_contact: "amitpatankar@google.com"
-auto_ccs:
- - "mihaimaruseac@google.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/tensorflow/tensorflow'
diff --git a/projects/tensorflow/Dockerfile b/projects/tensorflow/Dockerfile
index 44f7d45..64100cf 100644
--- a/projects/tensorflow/Dockerfile
+++ b/projects/tensorflow/Dockerfile
@@ -15,24 +15,21 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mihaimaruseac@google.com
 
 RUN apt-get update && apt-get install -y --no-install-recommends \
         curl \
+        python-dev \
+        python-future \
         rsync \
         && \
     apt-get clean && \
     rm -rf /var/lib/apt/lists/*
-RUN python3 -m pip install numpy
 
-# Due to Bazel bug, need to symlink python3 to python
-# See https://github.com/bazelbuild/bazel/issues/8665
-RUN ln -s /usr/local/bin/python3 /usr/local/bin/python
-
-# Install Bazelisk to keep bazel in sync with the version required by TensorFlow
-RUN curl -Lo /usr/bin/bazel \
-        https://github.com/bazelbuild/bazelisk/releases/download/v1.1.0/bazelisk-linux-amd64 \
-        && \
-    chmod +x /usr/bin/bazel
+# Install Bazel from apt-get to ensure dependencies are there
+RUN echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list
+RUN curl https://bazel.build/bazel-release.pub.gpg | apt-key add -
+RUN apt-get update && apt-get install -y bazel
 
 RUN git clone --depth 1 https://github.com/tensorflow/tensorflow tensorflow
 WORKDIR $SRC/tensorflow
diff --git a/projects/tensorflow/build.sh b/projects/tensorflow/build.sh
index b59e4a5..b1589e0 100755
--- a/projects/tensorflow/build.sh
+++ b/projects/tensorflow/build.sh
@@ -15,91 +15,154 @@
 #
 ################################################################################
 
-# Force Python3, run configure.py to pick the right build config
-PYTHON=python3
-yes "" | ${PYTHON} configure.py
+# First, determine the latest Bazel we can support
+BAZEL_VERSION=$(
+  grep '_TF_MAX_BAZEL_VERSION =' configure.py | \
+  cut -d\' -f2 | tr -d '[:space:]'
+)
+if [ -z ${BAZEL_VERSION} ]; then
+  echo "Couldn't find a valid bazel version in configure.py script"
+  exit 1
+fi
 
-# Since Bazel passes flags to compilers via `--copt`, `--conlyopt` and
-# `--cxxopt`, we need to move all flags from `$CFLAGS` and `$CXXFLAGS` to these.
-# We don't use `--copt` as warnings issued by C compilers when encountering a
-# C++-only option results in errors during build.
-#
-# Note: Make sure that by this line `$CFLAGS` and `$CXXFLAGS` are properly set
-# up as further changes to them won't be visible to Bazel.
-#
-# Note: for builds using the undefined behavior sanitizer we need to link
-# `clang_rt` ubsan library. Since Bazel uses `clang` for linking instead of
-# `clang++`, we need to add the additional `--linkopt` flag.
-# See issue: https://github.com/bazelbuild/bazel/issues/8777
+# Then, install it
+curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh
+chmod +x ./bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh
+./bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh
+
+# Finally, check instalation before proceeding to compile
+INSTALLED_VERSION=$(
+  bazel version | grep 'Build label' | cut -d: -f2 | tr -d '[:space:]'
+)
+if [ ${INSTALLED_VERSION} != ${BAZEL_VERSION} ]; then
+  echo "Couldn't install required Bazel. "
+  echo "Want ${BAZEL_VERSION}. Got ${INSTALLED_VERSION}."
+  exit 1
+fi
+
+# Generate the list of fuzzers we have (only the base/op name).
+FUZZING_BUILD_FILE="tensorflow/core/kernels/fuzzing/BUILD"
+declare -r FUZZERS=$(
+  grep '^tf_ops_fuzz_target' ${FUZZING_BUILD_FILE} | cut -d'"' -f2 | head -n5
+)
+
+# Add a few more flags to make sure fuzzers build and run successfully.
+# Note the c++11/libc++ flags to build using the same toolchain as the one used
+# to build libFuzzingEngine.
+CFLAGS="${CFLAGS} -fno-sanitize=vptr"
+CXXFLAGS="${CXXFLAGS} -fno-sanitize=vptr -std=c++11 -stdlib=libc++"
+
+# Make sure we run ./configure to detect when we are using a Bazel out of range
+yes "" | ./configure
+
+# See https://github.com/bazelbuild/bazel/issues/6697
+sed '/::kM..SeedBytes/d' -i tensorflow/stream_executor/rng.cc
+
+# Due to statically linking boringssl dependency, we have to define one extra
+# flag when compiling for memory fuzzing (see the boringssl project).
+if [ "$SANITIZER" = "memory" ]
+then
+  CFLAGS="${CFLAGS} -DOPENSSL_NO_ASM=1"
+  CXXFLAGS="${CXXFLAGS} -DOPENSSL_NO_ASM=1"
+fi
+
+# All of the flags in $CFLAGS and $CXXFLAGS need to be passed to bazel too.
+# Also, pass in flags to ensure static build and to help in debugging failures.
 declare -r EXTRA_FLAGS="\
+--config=monolithic --dynamic_mode=off \
+--verbose_failures \
 $(
 for f in ${CFLAGS}; do
   echo "--conlyopt=${f}" "--linkopt=${f}"
 done
 for f in ${CXXFLAGS}; do
-    echo "--cxxopt=${f}" "--linkopt=${f}"
+  echo "--cxxopt=${f}" "--linkopt=${f}"
 done
-if [ "$SANITIZER" = "undefined" ]
-then
-  echo "--linkopt=$(find $(llvm-config --libdir) -name libclang_rt.ubsan_standalone_cxx-x86_64.a | head -1)"
-fi
 )"
 
-# Determine all fuzz targets. To control what gets fuzzed with OSSFuzz, all
-# supported fuzzers are in `//tensorflow/security/fuzzing`.
-# Ignore fuzzers tagged with `no_oss` in opensource.
-declare -r FUZZERS=$(bazel query 'kind(cc_.*, tests(//tensorflow/security/fuzzing/...)) - attr(tags, no_oss, kind(cc_.*, tests(//tensorflow/security/fuzzing/...)))')
+# We need a new bazel function to build the actual binary.
+cat >> tensorflow/core/kernels/fuzzing/tf_ops_fuzz_target_lib.bzl << END
 
-# Build the fuzzer targets.
-# Pass in `--config=libc++` to link against libc++.
-# Pass in `--verbose_failures` so it is easy to debug compile crashes.
-# Pass in `--strip=never` to ensure coverage support.
-# Pass in `$LIB_FUZZING_ENGINE` to `--copt` and `--linkopt` to ensure we have a
-# `main` symbol defined (all these fuzzers build without a `main` and by default
-# `$CFLAGS` and `CXXFLAGS` compile with `-fsanitize=fuzzer-no-link`).
-# Since we have `assert` in fuzzers, make sure `NDEBUG` is not defined
-bazel build \
-  --config=libc++ \
-  ${EXTRA_FLAGS} \
-  --verbose_failures \
-  --strip=never \
-  --copt=${LIB_FUZZING_ENGINE} \
-  --linkopt=${LIB_FUZZING_ENGINE} \
-  --copt='-UNDEBUG' \
-  -- ${FUZZERS}
+def cc_tf(name):
+    native.cc_test(
+        name = name + "_fuzz",
+        deps = [
+            "//tensorflow/core/kernels/fuzzing:fuzz_session",
+            "//tensorflow/core/kernels/fuzzing:" + name + "_fuzz_lib",
+            "//tensorflow/cc:cc_ops",
+            "//tensorflow/cc:scope",
+            "//tensorflow/core:core_cpu",
+        ],
+    )
+END
 
-# The fuzzers built above are in the `bazel-bin/` symlink. But they need to be
-# in `$OUT`, so move them accordingly.
-for bazel_target in ${FUZZERS}; do
-  colon_index=$(expr index "${bazel_target}" ":")
-  fuzz_name="${bazel_target:$colon_index}"
-  bazel_location="bazel-bin/${bazel_target/:/\/}"
-  cp ${bazel_location} ${OUT}/$fuzz_name
+# Import this function in the proper BUILD file.
+cat >> ${FUZZING_BUILD_FILE} << END
+
+load("//tensorflow/core/kernels/fuzzing:tf_ops_fuzz_target_lib.bzl", "cc_tf")
+
+END
+
+# And invoke it for all fuzzers.
+for fuzzer in ${FUZZERS}; do
+  echo cc_tf\(\"${fuzzer}\"\) >> ${FUZZING_BUILD_FILE}
 done
 
-# For coverage, we need to remap source files to correspond to the Bazel build
-# paths. We also need to resolve all symlinks that Bazel creates.
+# Since we force the environment, we expect bazel to fail during the linking of
+# each fuzzer. Hence, we will do the linking manually at the end of the process.
+# We just need to make sure we use the same invocation as bazel would use, so
+# use --verbose_failures (in ${EXTRA_FLAGS}) to get it and then encode it in the
+# following ${LINK_ARGS}.
+declare -r LINK_ARGS="\
+-pthread -fuse-ld=gold \
+-Wl,-no-as-needed -Wl,-z,relro,-z,now \
+-B/usr/local/bin -B/usr/bin -Wl,--gc-sections \
+"
+
+# This should always look as successful despite linking error mentioned above.
+bazel build --jobs=2 ${EXTRA_FLAGS} -k //tensorflow/core/kernels/fuzzing:all || true
+
+# For each fuzzer target, we only have to link it manually to get the binary.
+for fuzzer in ${FUZZERS}; do
+  fz=${fuzzer}_fuzz
+
+  # Get the file with the parameters for linking or fail if it didn't exist.
+  lfile=`ls -1 bazel-bin/tensorflow/core/kernels/fuzzing/${fz}*.params | head -n1`
+
+  # Manually link everything.
+  ${CXX} ${CXXFLAGS} $LIB_FUZZING_ENGINE -o ${OUT}/${fz} ${LINK_ARGS} -Wl,@${lfile}
+done
+
+# For coverage, we need one extra step, see the envoy and grpc projects.
 if [ "$SANITIZER" = "coverage" ]
 then
-  declare -r RSYNC_CMD="rsync -aLkR"
-  declare -r REMAP_PATH=${OUT}/proc/self/cwd/
+  declare -r REMAP_PATH=${OUT}/proc/self/cwd
   mkdir -p ${REMAP_PATH}
+  rsync -ak ${SRC}/tensorflow/tensorflow ${REMAP_PATH}
+  rsync -ak ${SRC}/tensorflow/third_party ${REMAP_PATH}
 
-  # Sync existing code.
-  ${RSYNC_CMD} tensorflow/ ${REMAP_PATH}
+  # Also copy bazel generated files (via genrules)
+  declare -r BAZEL_PREFIX=bazel-out/k8-opt
+  declare -r REMAP_BAZEL_PATH=${REMAP_PATH}/${BAZEL_PREFIX}
+  mkdir -p ${REMAP_BAZEL_PATH}
+  rsync -ak ${SRC}/tensorflow/${BAZEL_PREFIX}/genfiles ${REMAP_BAZEL_PATH}
 
-  # Sync generated proto files.
-  ${RSYNC_CMD} ./bazel-out/k8-opt/bin/tensorflow/core/protobuf ${REMAP_PATH}
-
-  # Sync external dependencies. We don't need to include `bazel-tensorflow`.
-  # Also, remove `external/org_tensorflow` which is a copy of the entire source
-  # code that Bazel creates. Not removing this would cause `rsync` to expand a
-  # symlink that ends up pointing to itself!
-  pushd bazel-tensorflow
-  [[ -e external/org_tensorflow ]] && unlink external/org_tensorflow
-  ${RSYNC_CMD} external/ ${REMAP_PATH}
-  popd
+  # Finally copy the external archives source files
+  rsync -ak ${SRC}/tensorflow/bazel-tensorflow/external ${REMAP_PATH}
 fi
 
+# Now that all is done, we just have to copy the existing corpora and
+# dictionaries to have them available in the runtime environment.
+# The tweaks to the filenames below are to make sure corpora/dictionary have
+# similar names as the fuzzer binary.
+for dict in tensorflow/core/kernels/fuzzing/dictionaries/*; do
+  name=$(basename -- $dict)
+  cp ${dict} ${OUT}/${name/.dict/_fuzz.dict}
+done
+for corpus in tensorflow/core/kernels/fuzzing/corpus/*; do
+  name=$(basename -- $corpus)
+  zip ${OUT}/${name}_fuzz_seed_corpus.zip ${corpus}/*
+done
+
 # Finally, make sure we don't accidentally run with stuff from the bazel cache.
 rm -f bazel-*
diff --git a/projects/tensorflow/project.yaml b/projects/tensorflow/project.yaml
index 4cf5d16..850296a 100644
--- a/projects/tensorflow/project.yaml
+++ b/projects/tensorflow/project.yaml
@@ -1,10 +1,9 @@
 homepage: "https://www.tensorflow.org"
-language: c++
 primary_contact: "mihaimaruseac@google.com"
 auto_ccs:
- - "amitpatankar@google.com"
+ - "dga@google.com"
+ - "frankchn@google.com"
+fuzzing_engines:
+  - libfuzzer
 sanitizers:
   - address
-  - undefined
-  - memory
-main_repo: 'https://github.com/tensorflow/tensorflow'
diff --git a/projects/tesseract-ocr/Dockerfile b/projects/tesseract-ocr/Dockerfile
index 20094e7..daf6070 100644
--- a/projects/tesseract-ocr/Dockerfile
+++ b/projects/tesseract-ocr/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 RUN apt-get update && apt-get install -y autoconf automake libtool pkg-config libpng-dev libjpeg8-dev libtiff5-dev zlib1g-dev
 RUN git clone --depth 1 https://github.com/danbloomberg/leptonica
 RUN git clone --depth 1 https://github.com/tesseract-ocr/tesseract
diff --git a/projects/tesseract-ocr/build.sh b/projects/tesseract-ocr/build.sh
index 9943c74..1847668 100755
--- a/projects/tesseract-ocr/build.sh
+++ b/projects/tesseract-ocr/build.sh
@@ -1,5 +1,5 @@
 #!/bin/bash -eu
-# Copyright 2020 Google Inc.
+# Copyright 2019 Google Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,4 +14,45 @@
 # limitations under the License.
 #
 ################################################################################
-$SRC/tesseract/unittest/fuzzers/oss-fuzz-build.sh
+
+cd $SRC/leptonica
+./autogen.sh
+./configure
+make -j$(nproc)
+make install
+ldconfig
+
+cd $SRC/tesseract
+./autogen.sh
+CXXFLAGS="$CXXFLAGS -D_GLIBCXX_DEBUG" ./configure --disable-graphics --disable-shared
+make -j$(nproc)
+
+cp -R $SRC/tessdata $OUT
+
+$CXX $CXXFLAGS \
+    -I $SRC/tesseract/include \
+     $SRC/tesseract/unittest/fuzzers/fuzzer-api.cpp -o $OUT/fuzzer-api \
+     $SRC/tesseract/.libs/libtesseract.a \
+     /usr/local/lib/liblept.a \
+     /usr/lib/x86_64-linux-gnu/libtiff.a \
+     /usr/lib/x86_64-linux-gnu/libpng.a \
+     /usr/lib/x86_64-linux-gnu/libjpeg.a \
+     /usr/lib/x86_64-linux-gnu/libjbig.a \
+     /usr/lib/x86_64-linux-gnu/liblzma.a \
+     -lz \
+     $LIB_FUZZING_ENGINE
+
+$CXX $CXXFLAGS \
+    -DTESSERACT_FUZZER_WIDTH=512 \
+    -DTESSERACT_FUZZER_HEIGHT=256 \
+    -I $SRC/tesseract/include \
+     $SRC/tesseract/unittest/fuzzers/fuzzer-api.cpp -o $OUT/fuzzer-api-512x256 \
+     $SRC/tesseract/.libs/libtesseract.a \
+     /usr/local/lib/liblept.a \
+     /usr/lib/x86_64-linux-gnu/libtiff.a \
+     /usr/lib/x86_64-linux-gnu/libpng.a \
+     /usr/lib/x86_64-linux-gnu/libjpeg.a \
+     /usr/lib/x86_64-linux-gnu/libjbig.a \
+     /usr/lib/x86_64-linux-gnu/liblzma.a \
+     -lz \
+     $LIB_FUZZING_ENGINE
diff --git a/projects/tesseract-ocr/project.yaml b/projects/tesseract-ocr/project.yaml
index 522ba2b..6e6983b 100644
--- a/projects/tesseract-ocr/project.yaml
+++ b/projects/tesseract-ocr/project.yaml
@@ -1,4 +1,4 @@
 homepage: "https://github.com/tesseract-ocr/tesseract"
-language: c++
 primary_contact: "stjoweil@googlemail.com"
-main_repo: 'https://github.com/tesseract-ocr/tesseract'
+fuzzing_engines:
+  - libfuzzer
diff --git a/projects/thrift/Dockerfile b/projects/thrift/Dockerfile
deleted file mode 100644
index 0401883..0000000
--- a/projects/thrift/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y libssl-dev pkg-config autoconf automake libtool bison flex libboost-all-dev
-RUN git clone --depth 1 https://github.com/apache/thrift
-WORKDIR $SRC/thrift
-COPY build.sh $SRC/
diff --git a/projects/thrift/build.sh b/projects/thrift/build.sh
deleted file mode 100755
index 8194063..0000000
--- a/projects/thrift/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-export ASAN_OPTIONS=detect_leaks=0
-
-./bootstrap.sh
-# rust fails compilation with clippy warnings
-./configure --with-rs=no
-make -j$(nproc)
-make install
-
-cd lib/go/test/fuzz
-thrift -r --gen go ../../../../tutorial/tutorial.thrift
-(cd ./gen-go/shared && go mod init shared)
-(cd ./gen-go/tutorial && go mod init tutorial)
-go mod tidy || true
-compile_go_fuzzer . Fuzz fuzz_go_tutorial
diff --git a/projects/thrift/project.yaml b/projects/thrift/project.yaml
deleted file mode 100644
index 586da66..0000000
--- a/projects/thrift/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://thrift.apache.org/"
-language: c++
-primary_contact: "jensg@apache.org"
-auto_ccs :
-- "p.antoine@catenacyber.fr"
-
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/apache/thrift'
diff --git a/projects/tidb/Dockerfile b/projects/tidb/Dockerfile
deleted file mode 100644
index 5c7d0fd..0000000
--- a/projects/tidb/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/pingcap/tidb
-COPY build.sh $SRC/
-WORKDIR $SRC/tidb
diff --git a/projects/tidb/build.sh b/projects/tidb/build.sh
deleted file mode 100755
index c11028f..0000000
--- a/projects/tidb/build.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Insert empty main function
-sed -i '23 i\func main(){}'\\n $SRC/tidb/plugin/conn_ip_example/conn_ip_example.go
-
-go get ./...
-
-compile_go_fuzzer github.com/pingcap/tidb/types FuzzMarshalJSON fuzzMarshalJSON
-compile_go_fuzzer github.com/pingcap/tidb/types FuzzNewBitLiteral fuzzNewBitLiteral
-compile_go_fuzzer github.com/pingcap/tidb/types FuzzNewHexLiteral fuzzNewHexLiteral
diff --git a/projects/tidb/project.yaml b/projects/tidb/project.yaml
deleted file mode 100644
index 0c5096e..0000000
--- a/projects/tidb/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/pingcap/tidb"
-primary_contact: "zhouqiang@pingcap.com"
-auto_ccs :
-  - "adam@adalogics.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/pingcap/tidb'
diff --git a/projects/tidy-html5/Dockerfile b/projects/tidy-html5/Dockerfile
index febef54..1f4cf06 100644
--- a/projects/tidy-html5/Dockerfile
+++ b/projects/tidy-html5/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER sbucur@google.com
 
 RUN apt-get update && \
     apt-get install -y --no-install-recommends \
diff --git a/projects/tidy-html5/project.yaml b/projects/tidy-html5/project.yaml
index d62facb..c0fc8f4 100644
--- a/projects/tidy-html5/project.yaml
+++ b/projects/tidy-html5/project.yaml
@@ -1,20 +1,12 @@
 homepage: "http://www.html-tidy.org/"
-language: c++
 primary_contact: "sbucur@google.com"
 auto_ccs:
   - "nmarrow@google.com"
   - "pmokati@google.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
-  - undefined
   - memory
-  - dataflow
+  - undefined
 labels:
   tidy_fuzzer:
     - sundew
-main_repo: 'https://github.com/htacg/tidy-html5.git'
diff --git a/projects/tinygltf/Dockerfile b/projects/tinygltf/Dockerfile
deleted file mode 100644
index 218baeb..0000000
--- a/projects/tinygltf/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN pip3 install meson ninja
-RUN git clone --depth 1 https://github.com/syoyo/tinygltf.git
-WORKDIR $SRC/tinygltf
-COPY build.sh $SRC/
diff --git a/projects/tinygltf/build.sh b/projects/tinygltf/build.sh
deleted file mode 100755
index 7c54294..0000000
--- a/projects/tinygltf/build.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-cd tests/fuzzer/
-meson build
-cd build
-ninja -j$(nproc)
-cp fuzz_gltf $OUT/
diff --git a/projects/tinygltf/project.yaml b/projects/tinygltf/project.yaml
deleted file mode 100644
index 1b14873..0000000
--- a/projects/tinygltf/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/syoyo/tinygltf"
-language: c++
-primary_contact: "syoyo@lighttransport.com"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
-fuzzing_engines:
-- libfuzzer
-sanitizers:
-- address
-main_repo: 'https://github.com/syoyo/tinygltf.git'
diff --git a/projects/tinyxml2/project.yaml b/projects/tinyxml2/project.yaml
index fb9884b..cba496b 100644
--- a/projects/tinyxml2/project.yaml
+++ b/projects/tinyxml2/project.yaml
@@ -1,10 +1,23 @@
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
 homepage: "www.grinninglizard.com/tinyxml2"
-language: c++
-primary_contact: "leethomason@gmail.com"
 auto_ccs:
+  - "leethomason@gmail.com"
   - "pranjal.jumde@gmail.com"
 sanitizers:
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/leethomason/tinyxml2'
diff --git a/projects/tmux/Dockerfile b/projects/tmux/Dockerfile
deleted file mode 100644
index 7407cff..0000000
--- a/projects/tmux/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y autoconf automake bison pkg-config \
-    libevent-dev ncurses-dev
-
-RUN git clone --depth 1 https://github.com/tmux/tmux.git
-RUN git clone --depth 1 https://github.com/tmux/tmux-fuzzing-corpus.git
-WORKDIR tmux
-COPY build.sh $SRC/
diff --git a/projects/tmux/build.sh b/projects/tmux/build.sh
deleted file mode 100644
index 53de126..0000000
--- a/projects/tmux/build.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-./autogen.sh
-./configure \
-    --enable-fuzzing \
-    FUZZING_LIBS="${LIB_FUZZING_ENGINE} -lc++" \
-    LIBEVENT_LIBS="-Wl,-Bstatic -levent -Wl,-Bdynamic" \
-    LIBTINFO_LIBS="-Wl,-Bstatic -ltinfo -Wl,-Bdynamic"
-
-make -j"$(nproc)" check
-find "${SRC}/tmux/fuzz/" -name '*-fuzzer' -exec cp -v '{}' "${OUT}"/ \;
-find "${SRC}/tmux/fuzz/" -name '*-fuzzer.options' -exec cp -v '{}' "${OUT}"/ \;
-find "${SRC}/tmux/fuzz/" -name '*-fuzzer.dict' -exec cp -v '{}' "${OUT}"/ \;
-
-MAXLEN=$(grep -Po 'max_len\s+=\s+\K\d+' "${OUT}/input-fuzzer.options")
-mkdir "${WORK}/fuzzing_corpus"
-cd "${WORK}/fuzzing_corpus"
-bash "${SRC}/tmux/tools/24-bit-color.sh" | \
-    split -a4 -db$MAXLEN - 24-bit-color.out.
-perl "${SRC}/tmux/tools/256colors.pl" | \
-    split -a4 -db$MAXLEN - 256colors.out.
-cat "${SRC}/tmux/tools/UTF-8-demo.txt" | \
-    split -a4 -db$MAXLEN - UTF-8-demo.txt.
-cat "${SRC}/tmux-fuzzing-corpus/alacritty"/* | \
-    split -a4 -db$MAXLEN - alacritty.
-cat "${SRC}/tmux-fuzzing-corpus/esctest"/* | \
-    split -a4 -db$MAXLEN - esctest.
-cat "${SRC}/tmux-fuzzing-corpus/iterm2"/* | \
-    split -a5 -db$MAXLEN - iterm2.
-zip -q -j -r "${OUT}/input-fuzzer_seed_corpus.zip" \
-    "${WORK}/fuzzing_corpus/"
diff --git a/projects/tmux/project.yaml b/projects/tmux/project.yaml
deleted file mode 100644
index e2a1d51..0000000
--- a/projects/tmux/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: "https://tmux.github.io/"
-language: c
-primary_contact: nicholas.marriott@gmail.com
-sanitizers:
-  - address
-  - undefined
-main_repo: 'https://github.com/tmux/tmux.git'
diff --git a/projects/tor/Dockerfile b/projects/tor/Dockerfile
index 37d9753..cc04502 100644
--- a/projects/tor/Dockerfile
+++ b/projects/tor/Dockerfile
@@ -15,6 +15,7 @@
 ##############################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER nickm@torproject.org
 RUN apt-get update && apt-get install -y autoconf automake make libtool
 RUN git clone --depth 1 https://git.torproject.org/tor.git
 RUN git clone --depth 1 https://git.torproject.org/fuzzing-corpora.git tor-fuzz-corpora
diff --git a/projects/tor/project.yaml b/projects/tor/project.yaml
index d712260..47ee404 100644
--- a/projects/tor/project.yaml
+++ b/projects/tor/project.yaml
@@ -1,13 +1,7 @@
 homepage: "https://www.torproject.org"
-language: c++
 primary_contact: "nima@torproject.org"
-auto_ccs:
-  - "nick.a.mathewson@gmail.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
+auto_ccs: "nick.a.mathewson@gmail.com"
 sanitizers:
  - address
  - memory
  - undefined
-main_repo: 'https://git.torproject.org/tor.git'
diff --git a/projects/tpm2-tss/Dockerfile b/projects/tpm2-tss/Dockerfile
index 9f74c7a..47c6c44 100644
--- a/projects/tpm2-tss/Dockerfile
+++ b/projects/tpm2-tss/Dockerfile
@@ -50,8 +50,7 @@
     python3-pip \
     libsqlite3-dev \
     python-cryptography \
-    python3-cryptography \
-    acl
+    python3-cryptography
 
 RUN pip3 install cpp-coveralls
 
diff --git a/projects/tpm2-tss/build.sh b/projects/tpm2-tss/build.sh
index ae77a2a..9e77883 100644
--- a/projects/tpm2-tss/build.sh
+++ b/projects/tpm2-tss/build.sh
@@ -23,14 +23,13 @@
 
 ./bootstrap
 ./configure \
-  CC=$CC \
-  CXX=$CXX \
+  CC=clang \
+  CXX=clang++ \
   --enable-debug \
   --with-fuzzing=ossfuzz \
   --enable-tcti-fuzzing \
-  --disable-tcti-device \
-  --disable-tcti-mssim \
-  --disable-tcti-swtpm \
+  --enable-tcti-device=no \
+  --enable-tcti-mssim=no \
   --disable-doxygen-doc \
   --disable-shared \
   --disable-fapi
diff --git a/projects/tpm2-tss/project.yaml b/projects/tpm2-tss/project.yaml
index 04af6fe..4009a71 100644
--- a/projects/tpm2-tss/project.yaml
+++ b/projects/tpm2-tss/project.yaml
@@ -1,11 +1,8 @@
 homepage: "https://github.com/tpm2-software/tpm2-tss"
-language: c++
 primary_contact: "tadeusz.struk@intel.com"
 auto_ccs:
   - "andreas.fuchs@sit.fraunhofer.de"
   - "john.s.andersen@intel.com"
-  - "william.c.roberts@intel.com"
-  - "tstruk@gmail.com"
 sanitizers:
   - address
   - memory
diff --git a/projects/tpm2/project.yaml b/projects/tpm2/project.yaml
index ecf0208..444da8d 100644
--- a/projects/tpm2/project.yaml
+++ b/projects/tpm2/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://chromium.googlesource.com/chromiumos/third_party/tpm2"
-language: c++
 # todo: delete Dockerfile from tpm2 repo.
 # Docker files change too much, it was moved to oss-fuzz repository.
 #
@@ -14,4 +13,3 @@
   - "apronin@google.com"
   - "cfir@google.com"
   - "mruthven@google.com"
-main_repo: 'https://chromium.googlesource.com/chromiumos/third_party/tpm2'
diff --git a/projects/tremor/Dockerfile b/projects/tremor/Dockerfile
index d190c22..852b99c 100644
--- a/projects/tremor/Dockerfile
+++ b/projects/tremor/Dockerfile
@@ -15,9 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER twsmith@mozilla.com
 RUN apt-get update && apt-get install -y make autoconf automake libogg-dev libtool pkg-config wget
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/ogg.git
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/tremor.git
+RUN git clone https://git.xiph.org/ogg.git
+RUN git clone https://git.xiph.org/tremor.git
 RUN svn export https://github.com/mozillasecurity/fuzzdata.git/trunk/samples/vorbis decode_corpus
 WORKDIR tremor
 COPY decode_fuzzer.cc $SRC/tremor/
diff --git a/projects/tremor/project.yaml b/projects/tremor/project.yaml
index 670647f..f9b796c 100644
--- a/projects/tremor/project.yaml
+++ b/projects/tremor/project.yaml
@@ -1,19 +1,10 @@
 homepage: "https://xiph.org/vorbis/"
-language: c++
 primary_contact: "daede003@umn.edu"
 auto_ccs:
-  - "le.businessman@gmail.com"
   - "paul.l.kehrer@gmail.com"
 vendor_ccs:
   - "twsmith@mozilla.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
-  - undefined
   - memory
-  - dataflow
-main_repo: 'https://gitlab.xiph.org/xiph/tremor.git'
+  - undefined
diff --git a/projects/ujson/Dockerfile b/projects/ujson/Dockerfile
deleted file mode 100644
index 81550c6..0000000
--- a/projects/ujson/Dockerfile
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2019 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN pip3 install hypothesis
-
-RUN git clone \
-	--depth 1 \
-	--branch master \
-	https://github.com/ultrajson/ultrajson.git
-
-WORKDIR ultrajson
-
-COPY build.sh json_differential_fuzzer.py ujson_fuzzer.py hypothesis_structured_fuzzer.py $SRC/
diff --git a/projects/ujson/build.sh b/projects/ujson/build.sh
deleted file mode 100755
index fd339d5..0000000
--- a/projects/ujson/build.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Build and install project (using current CFLAGS, CXXFLAGS).
-pip3 install .
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find $SRC -name '*_fuzzer.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_PRELOAD=\$this_dir/sanitizer_with_fuzzer.so \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/ujson/hypothesis_structured_fuzzer.py b/projects/ujson/hypothesis_structured_fuzzer.py
deleted file mode 100644
index c07a2cf..0000000
--- a/projects/ujson/hypothesis_structured_fuzzer.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2021 Zac Hatfield-Dodds
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""This fuzzer is an example harness using Hypothesis for structured inputs.
-
-It would be possible, though more difficult, to write this test in terms
-of Atheris' `FuzzedDataProvider` instead of Hypothesis strategies.
-
-As well as defining structured inputs however, the call to
-`test_ujson_roundtrip()` will replay, deduplicate, and minimize any known
-failing examples from previous runs - which is great when debugging.
-Hypothesis uses a separate cache to Atheris/LibFuzzer seeds, so this is
-strictly complementary to your traditional fuzzing workflow.
-
-For more details on Hypothesis, see:
-https://hypothesis.readthedocs.io/en/latest/data.html
-https://hypothesis.readthedocs.io/en/latest/details.html#use-with-external-fuzzers
-"""
-
-import sys
-import atheris
-import ujson
-from hypothesis import given, strategies as st
-
-# We could define all these inline within the call to @given(),
-# but it's a bit easier to read if we name them here instead.
-JSON_ATOMS = st.one_of(
-    st.none(),
-    st.booleans(),
-    st.integers(min_value=-(2 ** 63), max_value=2 ** 63 - 1),
-    st.floats(allow_nan=False, allow_infinity=False),
-    st.text(),
-)
-JSON_OBJECTS = st.recursive(
-    base=JSON_ATOMS,
-    extend=lambda inner: st.lists(inner) | st.dictionaries(st.text(), inner),
-)
-UJSON_ENCODE_KWARGS = {
-    "ensure_ascii": st.booleans(),
-    "encode_html_chars": st.booleans(),
-    "escape_forward_slashes": st.booleans(),
-    "sort_keys": st.booleans(),
-    "indent": st.integers(0, 20),
-}
-
-
-@given(obj=JSON_OBJECTS, kwargs=st.fixed_dictionaries(UJSON_ENCODE_KWARGS))
-def test_ujson_roundtrip(obj, kwargs):
-    """Check that all JSON objects round-trip regardless of other options."""
-    assert obj == ujson.decode(ujson.encode(obj, **kwargs))
-
-
-if __name__ == "__main__":
-    # Running `pytest hypothesis_structured_fuzzer.py` will replay, deduplicate,
-    # and minimize any failures discovered by earlier runs or by OSS-Fuzz, or
-    # briefly search for new failures if none are known.
-    # Or, when running via OSS-Fuzz, we'll execute it via the fuzzing hook:
-    atheris.Setup(sys.argv, test_ujson_roundtrip.hypothesis.fuzz_one_input)
-    atheris.Fuzz()
diff --git a/projects/ujson/json_differential_fuzzer.py b/projects/ujson/json_differential_fuzzer.py
deleted file mode 100755
index fd26de1..0000000
--- a/projects/ujson/json_differential_fuzzer.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-""" An example native JSON vs uJSON differential fuzzer.
-
-This fuzzer looks for differences between the built-in json library and the
-native ujson library. The ujson library should be built for coverage (see
-build_install_ujson.sh), and the Python fuzzer should be executed under ASAN.
-As an example:
-    LD_PRELOAD="/usr/lib/llvm-9/lib/clang/9.0.1/lib/linux/libclang_rt.asan-x86_64.so
-    $(python3 -c "import atheris; print(atheris.path())")" python3
-    ./json_differential_fuzzer.py -detect_leaks=0
-
-This fuzzer has found a bug with inconsistent handling of integers with
-too-high magnitude. uJSON sometimes refuses to process numbers that are too far
-from 0 with "Value is too big!" or the equivalent for values that are too
-negative. However, other times it happily processes them with two's compliment
-mod. As an example, it refuses to parse "-9223372036854775809" (the first
-integer not representable in a 64-bit signed number) with "Value is too small";
-but it will happily parse "-80888888888888888888", a significantly more negative
-number. However, it parses it as -9223372036854775808. The JSON spec
-(https://tools.ietf.org/html/rfc7159#section-6) "allows implementations to set
-limits on the range and precision of numbers accepted", so failing to parse
-values that are too big or too small is techincally fine; however,
-misinterpreting them is not.
-"""
-
-import atheris_no_libfuzzer as atheris
-import json
-import ujson
-import sys
-
-
-def ClearAllIntegers(data):
-  """Used to prevent known bug; sets all integers in data recursively to 0."""
-  if type(data) == int:
-    return 0
-  if type(data) == list:
-    for i in range(0, len(data)):
-      data[i] = ClearAllIntegers(data[i])
-  if type(data) == dict:
-    for k, v in data:
-      data[k] = ClearAllIntegers(v)
-  return data
-
-
-def TestOneInput(input_bytes):
-  fdp = atheris.FuzzedDataProvider(input_bytes)
-  original = fdp.ConsumeUnicode(sys.maxsize)
-
-  try:
-    ujson_data = ujson.loads(original)
-    json_data = json.loads(original)
-  except Exception as e:
-    # It would be interesting to enforce that if one of the libraries throws an
-    # exception, the other does too. However, uJSON accepts many invalid inputs
-    # that are uninteresting, such as "00". So, that is not done.
-    return
-
-  # Uncomment these lines to ignore the errors described in the docstring of
-  # this file.
-  # json_data = ClearAllIntegers(json_data)
-  # ujson_data = ClearAllIntegers(ujson_data)
-
-  json_dumped = json.dumps(json_data)
-  ujson_dumped = json.dumps(ujson_data)
-
-  if json_dumped != ujson_dumped:
-    raise RuntimeError(
-        "Decoding/encoding disagreement!\nInput: %s\nJSON data: %s\nuJSON data: %s\nJSON-dumped: %s\nuJSON-dumped: %s\n"
-        % (original, json_data, ujson_data, json_dumped, ujson_dumped))
-
-
-def main():
-  atheris.Setup(sys.argv, TestOneInput)
-  atheris.Fuzz()
-
-
-if __name__ == "__main__":
-  main()
diff --git a/projects/ujson/project.yaml b/projects/ujson/project.yaml
deleted file mode 100644
index 525c358..0000000
--- a/projects/ujson/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/ultrajson/ultrajson"
-language: python
-# TODO(mbarbella): Reach out to project maintainers for a better primary contact.
-primary_contact: "mbarbella@google.com"
-auto_ccs:
-  - "ipudney@google.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
diff --git a/projects/ujson/ujson_fuzzer.py b/projects/ujson/ujson_fuzzer.py
deleted file mode 100755
index c785ec6..0000000
--- a/projects/ujson/ujson_fuzzer.py
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""This fuzzer is an example of native extension fuzzing with coverage.
-
-This requires that the fuzzer be built with coverage:
-see build_install_ujson.sh.
-The fuzzer should then be executed under ASAN.
-
-As an example, this is the run command under the author's machine:
-    LD_PRELOAD="/usr/lib/llvm-9/lib/clang/9.0.1/lib/linux/libclang_rt.asan-x86_64.so
-    $(python3 -c "import atheris; print(atheris.path())")" python3
-    ./ujson_fuzzer.py -detect_leaks=0
-
-This fuzzer is provided mainly as an example for how to deal with native
-coverage.
-"""
-
-import sys
-import atheris_no_libfuzzer as atheris
-import ujson
-
-
-def TestOneInput(input_bytes):
-  fdp = atheris.FuzzedDataProvider(input_bytes)
-  original = fdp.ConsumeUnicode(sys.maxsize)
-
-  try:
-    ujson_data = ujson.loads(original)
-  except ValueError:
-    return
-
-  # We make sure there's no error in encoding, but we don't actually compare
-  # (encoded == original) because it's not entirely preserving. For example,
-  # it does not preserve whitespace.
-  encoded = ujson.dumps(ujson_data)
-  del encoded
-
-
-def main():
-  # Since everything interesting in this fuzzer is in native code, we can
-  # disable Python coverage to improve performance and reduce coverage noise.
-  atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=False)
-  atheris.Fuzz()
-
-
-if __name__ == "__main__":
-  main()
diff --git a/projects/unbound/Dockerfile b/projects/unbound/Dockerfile
index fd9223d..0bd7743 100644
--- a/projects/unbound/Dockerfile
+++ b/projects/unbound/Dockerfile
@@ -14,6 +14,7 @@
 #
 ################################################################################
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jsha@letsencrypt.org
 RUN apt-get update
 RUN apt-get install -y make libtool libssl-dev libexpat-dev wget
 RUN git clone --depth=1 https://github.com/NLnetLabs/unbound unbound
diff --git a/projects/unbound/build.sh b/projects/unbound/build.sh
index 697e457..68cda38 100755
--- a/projects/unbound/build.sh
+++ b/projects/unbound/build.sh
@@ -30,7 +30,12 @@
 # get the LIBOBJS with the replaced functions needed for linking.
 LIBOBJS=`make --eval 'echolibobjs: ; @echo "$(LIBOBJS)"' echolibobjs`
 
-OBJECTS_TO_LINK="dns.o infra.o rrset.o dname.o \
+$CXX $CXXFLAGS -std=c++11 \
+  $LIB_FUZZING_ENGINE \
+  -lssl -lcrypto -pthread \
+  -o $OUT/parse_packet_fuzzer \
+  parse_packet_fuzzer.o \
+  dns.o infra.o rrset.o dname.o \
   msgencode.o as112.o msgparse.o msgreply.o packed_rrset.o iterator.o \
   iter_delegpt.o iter_donotq.o iter_fwd.o iter_hints.o iter_priv.o \
   iter_resptype.o iter_scrub.o iter_utils.o localzone.o mesh.o modstack.o view.o \
@@ -39,17 +44,10 @@
   rbtree.o regional.o rtt.o dnstree.o lookup3.o lruhash.o slabhash.o \
   tcp_conn_limit.o timehist.o tube.o winsock_event.o autotrust.o val_anchor.o \
   validator.o val_kcache.o val_kentry.o val_neg.o val_nsec3.o val_nsec.o \
-  val_secalgo.o val_sigcrypt.o val_utils.o dns64.o authzone.o \
+  val_secalgo.o val_sigcrypt.o val_utils.o dns64.o cachedb.o redis.o authzone.o \
   respip.o netevent.o listen_dnsport.o outside_network.o ub_event.o keyraw.o \
   sbuffer.o wire2str.o parse.o parseutil.o rrdef.o str2wire.o libunbound.o \
-  libworker.o context.o rpz.o"
-
-$CXX $CXXFLAGS -std=c++11 \
-  $LIB_FUZZING_ENGINE \
-  -lssl -lcrypto -pthread \
-  -o $OUT/parse_packet_fuzzer \
-  parse_packet_fuzzer.o \
-  $OBJECTS_TO_LINK \
+  libworker.o context.o \
   $LIBOBJS
 
 $CXX $CXXFLAGS -std=c++11 \
@@ -57,7 +55,19 @@
   -lssl -lcrypto -pthread \
   -o $OUT/fuzz_1_fuzzer \
   fuzz_1.o \
-  $OBJECTS_TO_LINK \
+  dns.o infra.o rrset.o dname.o \
+  msgencode.o as112.o msgparse.o msgreply.o packed_rrset.o iterator.o \
+  iter_delegpt.o iter_donotq.o iter_fwd.o iter_hints.o iter_priv.o \
+  iter_resptype.o iter_scrub.o iter_utils.o localzone.o mesh.o modstack.o view.o \
+  outbound_list.o alloc.o config_file.o configlexer.o configparser.o \
+  fptr_wlist.o edns.o locks.o log.o mini_event.o module.o net_help.o random.o \
+  rbtree.o regional.o rtt.o dnstree.o lookup3.o lruhash.o slabhash.o \
+  tcp_conn_limit.o timehist.o tube.o winsock_event.o autotrust.o val_anchor.o \
+  validator.o val_kcache.o val_kentry.o val_neg.o val_nsec3.o val_nsec.o \
+  val_secalgo.o val_sigcrypt.o val_utils.o dns64.o cachedb.o redis.o authzone.o \
+  respip.o netevent.o listen_dnsport.o outside_network.o ub_event.o keyraw.o \
+  sbuffer.o wire2str.o parse.o parseutil.o rrdef.o str2wire.o libunbound.o \
+  libworker.o context.o \
   $LIBOBJS
 
 $CXX $CXXFLAGS -std=c++11 \
@@ -65,7 +75,19 @@
   -lssl -lcrypto -pthread \
   -o $OUT/fuzz_2_fuzzer \
   fuzz_2.o \
-  $OBJECTS_TO_LINK \
+  dns.o infra.o rrset.o dname.o \
+  msgencode.o as112.o msgparse.o msgreply.o packed_rrset.o iterator.o \
+  iter_delegpt.o iter_donotq.o iter_fwd.o iter_hints.o iter_priv.o \
+  iter_resptype.o iter_scrub.o iter_utils.o localzone.o mesh.o modstack.o view.o \
+  outbound_list.o alloc.o config_file.o configlexer.o configparser.o \
+  fptr_wlist.o edns.o locks.o log.o mini_event.o module.o net_help.o random.o \
+  rbtree.o regional.o rtt.o dnstree.o lookup3.o lruhash.o slabhash.o \
+  tcp_conn_limit.o timehist.o tube.o winsock_event.o autotrust.o val_anchor.o \
+  validator.o val_kcache.o val_kentry.o val_neg.o val_nsec3.o val_nsec.o \
+  val_secalgo.o val_sigcrypt.o val_utils.o dns64.o cachedb.o redis.o authzone.o \
+  respip.o netevent.o listen_dnsport.o outside_network.o ub_event.o keyraw.o \
+  sbuffer.o wire2str.o parse.o parseutil.o rrdef.o str2wire.o libunbound.o \
+  libworker.o context.o \
   $LIBOBJS
 
 $CXX $CXXFLAGS -std=c++11 \
@@ -73,7 +95,19 @@
   -lssl -lcrypto -pthread \
   -o $OUT/fuzz_3_fuzzer \
   fuzz_3.o \
-  $OBJECTS_TO_LINK \
+  dns.o infra.o rrset.o dname.o \
+  msgencode.o as112.o msgparse.o msgreply.o packed_rrset.o iterator.o \
+  iter_delegpt.o iter_donotq.o iter_fwd.o iter_hints.o iter_priv.o \
+  iter_resptype.o iter_scrub.o iter_utils.o localzone.o mesh.o modstack.o view.o \
+  outbound_list.o alloc.o config_file.o configlexer.o configparser.o \
+  fptr_wlist.o edns.o locks.o log.o mini_event.o module.o net_help.o random.o \
+  rbtree.o regional.o rtt.o dnstree.o lookup3.o lruhash.o slabhash.o \
+  tcp_conn_limit.o timehist.o tube.o winsock_event.o autotrust.o val_anchor.o \
+  validator.o val_kcache.o val_kentry.o val_neg.o val_nsec3.o val_nsec.o \
+  val_secalgo.o val_sigcrypt.o val_utils.o dns64.o cachedb.o redis.o authzone.o \
+  respip.o netevent.o listen_dnsport.o outside_network.o ub_event.o keyraw.o \
+  sbuffer.o wire2str.o parse.o parseutil.o rrdef.o str2wire.o libunbound.o \
+  libworker.o context.o \
   $LIBOBJS
 
 $CXX $CXXFLAGS -std=c++11 \
@@ -81,7 +115,19 @@
   -lssl -lcrypto -pthread \
   -o $OUT/fuzz_4_fuzzer \
   fuzz_4.o \
-  $OBJECTS_TO_LINK \
+  dns.o infra.o rrset.o dname.o \
+  msgencode.o as112.o msgparse.o msgreply.o packed_rrset.o iterator.o \
+  iter_delegpt.o iter_donotq.o iter_fwd.o iter_hints.o iter_priv.o \
+  iter_resptype.o iter_scrub.o iter_utils.o localzone.o mesh.o modstack.o view.o \
+  outbound_list.o alloc.o config_file.o configlexer.o configparser.o \
+  fptr_wlist.o edns.o locks.o log.o mini_event.o module.o net_help.o random.o \
+  rbtree.o regional.o rtt.o dnstree.o lookup3.o lruhash.o slabhash.o \
+  tcp_conn_limit.o timehist.o tube.o winsock_event.o autotrust.o val_anchor.o \
+  validator.o val_kcache.o val_kentry.o val_neg.o val_nsec3.o val_nsec.o \
+  val_secalgo.o val_sigcrypt.o val_utils.o dns64.o cachedb.o redis.o authzone.o \
+  respip.o netevent.o listen_dnsport.o outside_network.o ub_event.o keyraw.o \
+  sbuffer.o wire2str.o parse.o parseutil.o rrdef.o str2wire.o libunbound.o \
+  libworker.o context.o \
   $LIBOBJS
 
 wget --directory-prefix $OUT https://github.com/jsha/unbound/raw/fuzzing-corpora/testdata/parse_packet_fuzzer_seed_corpus.zip
diff --git a/projects/unbound/project.yaml b/projects/unbound/project.yaml
index 7ecaa1e..f45f481 100644
--- a/projects/unbound/project.yaml
+++ b/projects/unbound/project.yaml
@@ -1,7 +1,2 @@
 homepage: "https://nlnetlabs.nl/projects/unbound/about/"
-language: c
 primary_contact: "wouter@nlnetlabs.nl"
-auto_ccs:
-  - "ralph@nlnetlabs.nl"
-  - "george@nlnetlabs.nl"
-main_repo: 'https://github.com/NLnetLabs/unbound'
diff --git a/projects/unicorn/Dockerfile b/projects/unicorn/Dockerfile
index 1ae7e56..68a4955 100644
--- a/projects/unicorn/Dockerfile
+++ b/projects/unicorn/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER unicorn.emu@gmail.com
 RUN apt-get update && apt-get install -y make python
 RUN git clone --depth 1 https://github.com/unicorn-engine/unicorn.git
 WORKDIR $SRC
diff --git a/projects/unicorn/project.yaml b/projects/unicorn/project.yaml
index 85a546f..adf6276 100644
--- a/projects/unicorn/project.yaml
+++ b/projects/unicorn/project.yaml
@@ -1,18 +1,10 @@
 homepage: "https://www.unicorn-engine.org"
-language: c++
 primary_contact: "unicorn.emu@gmail.com"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
-  - "ch980501427@gmail.com"
-  - "stalkr@stalkr.net"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
+auto_ccs :
+- "p.antoine@catenacyber.fr"
+- "ch980501427@gmail.com"
+
 sanitizers:
-  - address
-  - undefined
-  - memory
-  - dataflow
-main_repo: 'https://github.com/unicorn-engine/unicorn.git'
+- address
+- memory
+- undefined
diff --git a/projects/unrar/Dockerfile b/projects/unrar/Dockerfile
index 8ff4b95..cc61b26 100644
--- a/projects/unrar/Dockerfile
+++ b/projects/unrar/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER vakh@chromium.org
 RUN apt-get update && apt-get install -y make build-essential
 
 RUN git clone -b oss_fuzz --depth 1 https://github.com/aawc/unrar.git
diff --git a/projects/unrar/build.sh b/projects/unrar/build.sh
index 9469682..d597942 100644
--- a/projects/unrar/build.sh
+++ b/projects/unrar/build.sh
@@ -19,10 +19,6 @@
 UNRAR_WNOS="-Wno-logical-op-parentheses -Wno-switch -Wno-dangling-else"
 UNRAR_SRC_DIR="$SRC/unrar"
 
-# See: https://crbug.com/oss-fuzz/19333#c3
-CFLAGS="$CFLAGS -fno-sanitize=enum"
-CXXFLAGS="$CXXFLAGS -fno-sanitize=enum"
-
 # build 'lib'. This builds libunrar.a and libunrar.so
 # -fPIC is required for successful compilation.
 make CXX=$CXX CXXFLAGS="$CXXFLAGS -fPIC $UNRAR_DEFINES $UNRAR_WNOS" \
diff --git a/projects/unrar/project.yaml b/projects/unrar/project.yaml
index 242c91f..2b94ca5 100644
--- a/projects/unrar/project.yaml
+++ b/projects/unrar/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.rarlab.com/"
-language: c++
 primary_contact: "roshal@rarlab.com"
 auto_ccs:
   - "vakh@chromium.org"
@@ -7,4 +6,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/aawc/unrar.git'
diff --git a/projects/upb/Dockerfile b/projects/upb/Dockerfile
deleted file mode 100644
index 7e157a1..0000000
--- a/projects/upb/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y cmake
-RUN git clone --depth 1 https://github.com/protocolbuffers/upb.git upb
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/upb/build.sh b/projects/upb/build.sh
deleted file mode 100755
index 3f5bebf..0000000
--- a/projects/upb/build.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-cd upb/cmake
-cmake .
-make -j$(nproc)
-
-# use bazel to build instead ?
-$CC $CFLAGS -I. -I.. -o descriptor.upb.o -c google/protobuf/descriptor.upb.c
-$CXX $CXXFLAGS -DHAVE_FUZZER=1 -std=c++11 -I. -I.. -o fuzz_parsenew.o -c ../tests/file_descriptor_parsenew_fuzzer.cc
-$CXX $CXXFLAGS fuzz_parsenew.o descriptor.upb.o -o $OUT/fuzz_parsenew *.a $LIB_FUZZING_ENGINE
-
-# builds corpus
-cd ..
-find . -name "*.proto" | xargs zip -r $OUT/fuzz_parsenew_seed_corpus.zip
diff --git a/projects/upb/project.yaml b/projects/upb/project.yaml
deleted file mode 100644
index b67152d..0000000
--- a/projects/upb/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/protocolbuffers/upb"
-language: c++
-primary_contact: "haberman@google.com"
-auto_ccs :
-- "p.antoine@catenacyber.fr"
-
-sanitizers:
-- address
-- memory
-- undefined
-main_repo: 'https://github.com/protocolbuffers/upb.git'
diff --git a/projects/uriparser/Dockerfile b/projects/uriparser/Dockerfile
deleted file mode 100644
index 0f6ba06..0000000
--- a/projects/uriparser/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake wget sudo libtool cmake
-RUN git clone --depth 1 https://github.com/uriparser/uriparser uriparser
-WORKDIR uriparser
-COPY build.sh *.cc $SRC/
diff --git a/projects/uriparser/build.sh b/projects/uriparser/build.sh
deleted file mode 100755
index 3b7054d..0000000
--- a/projects/uriparser/build.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# build project
-mkdir -p build
-cd build
-cmake -DCMAKE_BUILD_TYPE=Release -DURIPARSER_BUILD_DOCS:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF -DURIPARSER_BUILD_TESTS:BOOL=OFF ..
-make
-make install
-
-# build fuzzers
-for fuzzers in $(find $SRC -name '*_fuzzer.cc'); do
-  fuzz_basename=$(basename -s .cc $fuzzers)
-  $CXX $CXXFLAGS -std=c++11 -I. \
-  $fuzzers $LIB_FUZZING_ENGINE ./liburiparser.a  \
-  -o $OUT/$fuzz_basename
-done
diff --git a/projects/uriparser/project.yaml b/projects/uriparser/project.yaml
deleted file mode 100644
index 9ca2573..0000000
--- a/projects/uriparser/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "https://github.com/uriparser/uriparser"
-language: c++
-primary_contact: "webmaster@hartwork.org"
-sanitizers:
- - address
- - memory
- - undefined
-architectures:
-  - x86_64
-  - i386
-main_repo: 'https://github.com/uriparser/uriparser'
diff --git a/projects/uriparser/uri_dissect_query_malloc_fuzzer.cc b/projects/uriparser/uri_dissect_query_malloc_fuzzer.cc
deleted file mode 100644
index 3714f85..0000000
--- a/projects/uriparser/uri_dissect_query_malloc_fuzzer.cc
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Fuzz UriQuery.c:
-//   uriDissectQueryMallocA
-//   uriComposeQueryA
-
-#include <cstddef>
-#include <cstdint>
-#include <string>
-#include <utility>
-#include <vector>
-
-using std::string;
-#include "uriparser/include/uriparser/Uri.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-
-  const string query(reinterpret_cast<const char *>(data), size);
-
-  UriQueryListA *query_list = nullptr;
-  int item_count = -1;
-
-  const char *query_start = query.c_str();
-  const char *query_end = query_start + size;
-
-  // Break a query like "a=b&2=3" into key/value pairs.
-  int result =
-      uriDissectQueryMallocA(&query_list, &item_count, query_start, query_end);
-
-  if (query_list == nullptr || result != URI_SUCCESS || item_count < 0)
-    return 0;
-
-  int chars_required = 0;
-  if (uriComposeQueryCharsRequiredA(query_list, &chars_required) != URI_SUCCESS)
-    return 0;
-
-  if (!chars_required) {
-    uriFreeQueryListA(query_list);
-    return 0;
-  }
-
-  std::vector<char> buf(chars_required, 0);
-  int written = -1;
-  // Reverse the process of uriDissectQueryMallocA.
-  result = uriComposeQueryA(buf.data(), query_list, chars_required, &written);
-
-  uriFreeQueryListA(query_list);
-  return 0;
-}
diff --git a/projects/uriparser/uri_free_fuzzer.cc b/projects/uriparser/uri_free_fuzzer.cc
deleted file mode 100644
index 1ed647a..0000000
--- a/projects/uriparser/uri_free_fuzzer.cc
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-#include <cstdint>
-#include <string>
-
-#include "uriparser/include/uriparser/Uri.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-  std::basic_string<char> fuzz_uri(reinterpret_cast<const char *>(data), size);
-  UriParserStateA state;
-  UriUriA uriA;
-  state.uri = &uriA;
-  uriParseUriA(&state, fuzz_uri.c_str());
-  uriFreeUriMembersA(&uriA);
-  return 0;
-}
diff --git a/projects/uriparser/uri_parse_fuzzer.cc b/projects/uriparser/uri_parse_fuzzer.cc
deleted file mode 100644
index 4eca669..0000000
--- a/projects/uriparser/uri_parse_fuzzer.cc
+++ /dev/null
@@ -1,120 +0,0 @@
-// Copyright 2020 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <cstddef>
-#include <cstring>
-#include <string>
-#include <vector>
-#include <fuzzer/FuzzedDataProvider.h>
-
-using std::string;
-#include "uriparser/include/uriparser/Uri.h"
-#include "uriparser/include/uriparser/UriIp4.h"
-
-class UriParserA {
- public:
-  UriParserA() { memset((void *)&uri_, 0, sizeof(uri_)); }
-  ~UriParserA() { uriFreeUriMembersA(&uri_); }
-
-  UriUriA *get_mutable_uri() { return &uri_; }
-  UriUriA *get_uri() const { return const_cast<UriUriA *>(&uri_); }
-
- private:
-  UriUriA uri_;
-};
-
-void Escapes(const string &uri) {
-  const char *first = uri.c_str();
-  // A new line char takes 6 char to encode.
-  // Use a vector to make a C string.
-  std::vector<char> buf1(uri.size() * 6 + 1);
-  std::vector<char> buf2(uri.size() * 3 + 1);
-
-  char *result;
-  result = uriEscapeA(first, &buf1[0], URI_TRUE, URI_TRUE);
-  result = uriEscapeA(first, &buf1[0], URI_FALSE, URI_TRUE);
-  if (buf1.data()) uriUnescapeInPlaceA(&buf1[0]);
-
-  result = uriEscapeA(first, &buf2[0], URI_TRUE, URI_FALSE);
-  result = uriEscapeA(first, &buf2[0], URI_FALSE, URI_FALSE);
-  if (buf2.data()) uriUnescapeInPlaceA(&buf2[0]);
-}
-
-void FileNames(const string &uri) {
-  const size_t size = 8 + 3 * uri.size() + 1;
-  std::vector<char> buf(size);
-
-  uriUnixFilenameToUriStringA(uri.c_str(), &buf[0]);
-  uriWindowsFilenameToUriStringA(uri.c_str(), &buf[0]);
-  uriUriStringToUnixFilenameA(uri.c_str(), &buf[0]);
-  uriUriStringToWindowsFilenameA(uri.c_str(), &buf[0]);
-}
-
-int uriParseIpFourAddressA(unsigned char *octetOutput, const char *first,
-                           const char *afterLast);
-
-void Ipv4(const string &s) {
-  const char *cstr = s.c_str();
-  unsigned char result[4] = {};
-  uriParseIpFourAddressA(result, cstr, &cstr[s.size()]);
-}
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-
-  FuzzedDataProvider stream(data, size);
-  bool domainRelative = stream.ConsumeBool();
-  size_t uriSize = stream.remaining_bytes() / 2;
-
-  const string uri1 = stream.ConsumeBytesAsString(uriSize);
-  const string uri2 = stream.ConsumeRemainingBytesAsString();
-
-  Escapes(uri1);
-  Escapes(uri2);
-
-  FileNames(uri1);
-  FileNames(uri2);
-
-  Ipv4(uri1);
-  Ipv4(uri2);
-
-  UriParserA parser1;
-  UriParserStateA state1;
-  state1.uri = parser1.get_mutable_uri();
-  if (uriParseUriA(&state1, uri1.c_str()) != URI_SUCCESS)
-    return 0;
-
-  char buf[1024 * 8] = {0};
-  int written = 0;
-  uriToStringA(buf, state1.uri, sizeof(buf), &written);
-
-  UriParserA parser2;
-  UriParserStateA state2;
-  state2.uri = parser2.get_mutable_uri();
-  if (uriParseUriA(&state2, uri2.c_str()) != URI_SUCCESS)
-    return 0;
-
-  uriEqualsUriA(state1.uri, state2.uri);
-
-  uriNormalizeSyntaxA(state1.uri);
-
-  UriUriA absUri;
-  uriAddBaseUriA(&absUri, state1.uri, state2.uri);
-  uriFreeUriMembersA(&absUri);
-
-  UriUriA relUri;
-  uriRemoveBaseUriA(&relUri, state1.uri, state2.uri, domainRelative);
-  uriFreeUriMembersA(&relUri);
-
-  return 0;
-}
diff --git a/projects/urllib3/Dockerfile b/projects/urllib3/Dockerfile
deleted file mode 100644
index 799b8b9..0000000
--- a/projects/urllib3/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/urllib3/urllib3
-
-COPY build.sh $SRC/
-COPY fuzz_* $SRC/
-
-WORKDIR $SRC/urllib3
diff --git a/projects/urllib3/build.sh b/projects/urllib3/build.sh
deleted file mode 100644
index 66f6419..0000000
--- a/projects/urllib3/build.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-python3 setup.py install
-
-# Build fuzzers in $OUT.
-for fuzzer in $(find $SRC -name 'fuzz_*.py'); do
-  fuzzer_basename=$(basename -s .py $fuzzer)
-  fuzzer_package=${fuzzer_basename}.pkg
-  pyinstaller --distpath $OUT --onefile --name $fuzzer_package $fuzzer
-
-  # Create execution wrapper.
-  echo "#!/bin/sh
-# LLVMFuzzerTestOneInput for fuzzer detection.
-this_dir=\$(dirname \"\$0\")
-LD_PRELOAD=\$this_dir/sanitizer_with_fuzzer.so \
-ASAN_OPTIONS=\$ASAN_OPTIONS:symbolize=1:external_symbolizer_path=\$this_dir/llvm-symbolizer:detect_leaks=0 \
-\$this_dir/$fuzzer_package \$@" > $OUT/$fuzzer_basename
-  chmod u+x $OUT/$fuzzer_basename
-done
diff --git a/projects/urllib3/fuzz_urlparse.py b/projects/urllib3/fuzz_urlparse.py
deleted file mode 100644
index f2fcd9b..0000000
--- a/projects/urllib3/fuzz_urlparse.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/python3
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import os
-import sys
-import atheris
-import urllib3
-
-def TestOneInput(data):
-    fdp = atheris.FuzzedDataProvider(data)
-    original = fdp.ConsumeUnicode(sys.maxsize)
-
-    try:
-        urllib3.util.parse_url(original)
-    except urllib3.exceptions.LocationParseError:
-        None
-    return
-
-def main():
-    atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
-    atheris.Fuzz()
-
-if __name__ == "__main__":
-    main()
-
diff --git a/projects/urllib3/project.yaml b/projects/urllib3/project.yaml
deleted file mode 100644
index 76130de..0000000
--- a/projects/urllib3/project.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-homepage: "https://github.com/urllib3/urllib3"
-language: python
-primary_contact: "sethmichaellarson@gmail.com"
-auto_ccs:
-  - "quentin.pradet@gmail.com"
-  - "david@adalogics.com"
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-  - undefined
-main_repo: 'https://github.com/urllib3/urllib3'
diff --git a/projects/usbguard/Dockerfile b/projects/usbguard/Dockerfile
index 4b1759c..b3e362c 100644
--- a/projects/usbguard/Dockerfile
+++ b/projects/usbguard/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER allenwebb@google.com
 
 RUN apt-get update && apt-get install -y \
   make \
diff --git a/projects/usbguard/project.yaml b/projects/usbguard/project.yaml
index a372cd3..902bd0d 100644
--- a/projects/usbguard/project.yaml
+++ b/projects/usbguard/project.yaml
@@ -1,12 +1,8 @@
 homepage: "https://usbguard.github.io/"
-language: c++
-primary_contact: "rsroka@redhat.com"
+primary_contact: "dkopecek@redhat.com"
 sanitizers:
  - address
  - undefined
  - memory
 auto_ccs:
- - "alakatos@redhat.com"
  - "allenwebb@google.com"
- - "zfridric@redhat.com"
-main_repo: "https://github.com/USBGuard/usbguard"
diff --git a/projects/usrsctp/Dockerfile b/projects/usrsctp/Dockerfile
index 61870ea..0f98a60 100644
--- a/projects/usrsctp/Dockerfile
+++ b/projects/usrsctp/Dockerfile
@@ -15,7 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER weinrank@fh-muenster.de
 RUN apt-get update && apt-get install -y make cmake
-RUN git clone --depth 1 https://github.com/sctplab/usrsctp usrsctp
+RUN git clone --depth 1 --branch oss-fuzz https://github.com/weinrank/usrsctp usrsctp
 WORKDIR usrsctp
 COPY build.sh $SRC/
diff --git a/projects/usrsctp/build.sh b/projects/usrsctp/build.sh
index ddac900..f7bcd18 100755
--- a/projects/usrsctp/build.sh
+++ b/projects/usrsctp/build.sh
@@ -15,25 +15,17 @@
 #
 ################################################################################
 
-cmake -Dsctp_build_programs=0 -Dsctp_debug=0 -Dsctp_invariants=1 -Dsctp_build_fuzzer=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo .
+cmake -Dsctp_build_programs=0 -Dsctp_debug=0 -Dsctp_invariants=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo .
 make -j$(nproc)
 cd fuzzer
 
-TARGETS="fuzzer_connect fuzzer_listen fuzzer_fragment"
+TARGETS="fuzzer_connect fuzzer_listen"
 
-CORPUS="CORPUS_CONNECT CORPUS_LISTEN CORPUS_FRAGMENT"
-
-while [ -n "$TARGETS" ]
-do
-        target=`echo "$TARGETS" | cut -d ' ' -f 1`
-        TARGETS=`echo "$TARGETS" | sed 's/[^ ]* *\(.*\)$/\1/'`
-        corpus=`echo "$CORPUS" | cut -d ' ' -f 1`
-        CORPUS=`echo "$CORPUS" | sed 's/[^ ]* *\(.*\)$/\1/'`
-
+for target in $TARGETS; do
         $CC $CFLAGS -DFUZZING_STAGE=0 -I . -I ../usrsctplib/ -c ${target}.c -o $OUT/${target}.o
         $CXX $CXXFLAGS -o $OUT/${target} $OUT/${target}.o $LIB_FUZZING_ENGINE ../usrsctplib/libusrsctp.a
         rm -f $OUT/${target}.o
-
-        zip -jr ${target}_seed_corpus.zip ${corpus}/
-        cp ${target}_seed_corpus.zip $OUT/
 done
+
+zip -jr fuzzer_connect_seed_corpus.zip CORPUS_CONNECT/
+cp fuzzer_connect_seed_corpus.zip $OUT/
diff --git a/projects/usrsctp/project.yaml b/projects/usrsctp/project.yaml
index 54fb494..378bfe9 100644
--- a/projects/usrsctp/project.yaml
+++ b/projects/usrsctp/project.yaml
@@ -1,18 +1,9 @@
 homepage: "https://github.com/sctplab/usrsctp"
-language: c++
 primary_contact: "weinrank@fh-muenster.de"
 auto_ccs:
   - "t00fcxen@googlemail.com"
   - "markwo@google.com"
-  - "natashenka@google.com"
-  - "yuquanw@google.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
-  - undefined
   - memory
-main_repo: 'https://github.com/sctplab/usrsctp'
+  - undefined
diff --git a/projects/utf8proc/Dockerfile b/projects/utf8proc/Dockerfile
deleted file mode 100644
index b471b00..0000000
--- a/projects/utf8proc/Dockerfile
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2021 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && \
-    apt-get install -y wget tar
-
-RUN git clone --depth 1 https://github.com/JuliaStrings/utf8proc.git
-
-RUN wget -O $SRC/utf8proc/test/NormalizationTest.txt https://www.unicode.org/Public/13.0.0/ucd/NormalizationTest.txt
-RUN wget -O $SRC/utf8proc/test/GraphemeBreakTest.txt https://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakTest.txt
-
-WORKDIR $SRC/utf8proc/
-COPY build.sh $SRC/
diff --git a/projects/utf8proc/build.sh b/projects/utf8proc/build.sh
deleted file mode 100755
index 4d8e85b..0000000
--- a/projects/utf8proc/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-# Run the OSS-Fuzz script in the project
-$SRC/utf8proc/test/ossfuzz.sh
diff --git a/projects/utf8proc/project.yaml b/projects/utf8proc/project.yaml
deleted file mode 100644
index c35bcea..0000000
--- a/projects/utf8proc/project.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-homepage: "http://juliastrings.github.io/utf8proc/"
-language: c
-primary_contact: "stevenj@alum.mit.edu"
-auto_ccs:
-  - "randy440088@gmail.com"
-sanitizers:
-  - address
-  - memory
-  - undefined 
-main_repo: 'https://github.com/JuliaStrings/utf8proc'
-
diff --git a/projects/util-linux/Dockerfile b/projects/util-linux/Dockerfile
deleted file mode 100644
index 16ea63d..0000000
--- a/projects/util-linux/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y autoconf automake autopoint bison libtool pkg-config
-RUN git clone --depth 1 https://github.com/karelzak/util-linux
-WORKDIR util-linux
-COPY build.sh $SRC/
diff --git a/projects/util-linux/build.sh b/projects/util-linux/build.sh
deleted file mode 100755
index 3c4195c..0000000
--- a/projects/util-linux/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-./tools/oss-fuzz.sh
diff --git a/projects/util-linux/project.yaml b/projects/util-linux/project.yaml
index fb14609..5c8395e 100644
--- a/projects/util-linux/project.yaml
+++ b/projects/util-linux/project.yaml
@@ -1,17 +1,4 @@
 homepage: "https://github.com/karelzak/util-linux"
 primary_contact: "ruediger.meier@ga-group.nl"
-language: c
-builds_per_day: 4
 auto_ccs:
   - "kzak@redhat.com"
-  - "evvers@ya.ru"
-  - "evverx@gmail.com"
-  - "kerolasa@gmail.com"
-architectures:
-  - x86_64
-  - i386
-sanitizers:
-  - address
-  - undefined
-  - memory
-main_repo: 'https://github.com/karelzak/util-linux'
diff --git a/projects/uwebsockets/Dockerfile b/projects/uwebsockets/Dockerfile
index e8977c3..b51f3cb 100644
--- a/projects/uwebsockets/Dockerfile
+++ b/projects/uwebsockets/Dockerfile
@@ -15,6 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER alexhultman@gmail.com
+RUN apt-get update && apt-get install -y libz-dev
 RUN git clone --recursive https://github.com/uNetworking/uWebSockets.git uWebSockets
 WORKDIR uWebSockets
 COPY build.sh $SRC/
diff --git a/projects/uwebsockets/project.yaml b/projects/uwebsockets/project.yaml
index e46ea9a..b785391 100644
--- a/projects/uwebsockets/project.yaml
+++ b/projects/uwebsockets/project.yaml
@@ -1,9 +1,7 @@
 homepage: "https://github.com/uNetworking/uWebSockets"
-language: c++
 primary_contact: "alexhultman@gmail.com"
-builds_per_day: 4
 sanitizers:
   - address
-  - memory
+  - memory:
+     experimental: True
   - undefined
-main_repo: 'https://github.com/uNetworking/uWebSockets.git'
diff --git a/projects/valijson/Dockerfile b/projects/valijson/Dockerfile
deleted file mode 100644
index 2f17c03..0000000
--- a/projects/valijson/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool \
-  pkg-config cmake libcurlpp-dev libcurl4-openssl-dev
-RUN git clone --depth 1 https://github.com/tristanpenman/valijson
-WORKDIR valijson
-RUN cp $SRC/valijson/tests/fuzzing/oss-fuzz-build.sh $SRC/build.sh
diff --git a/projects/valijson/project.yaml b/projects/valijson/project.yaml
deleted file mode 100644
index 28ee208..0000000
--- a/projects/valijson/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/tristanpenman/valijson"
-main_repo: "https://github.com/tristanpenman/valijson"
-language: c++
-primary_contact: "tristan@tristanpenman.com"
-auto_ccs:
-  - "Adam@adalogics.com"
-sanitizers:
-  - address
-  - undefined
-  - memory
diff --git a/projects/vitess/Dockerfile b/projects/vitess/Dockerfile
deleted file mode 100644
index 8f066c8..0000000
--- a/projects/vitess/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/vitessio/vitess
-COPY build.sh $SRC/
-WORKDIR $SRC/vitess
diff --git a/projects/vitess/build.sh b/projects/vitess/build.sh
deleted file mode 100755
index 8a085f4..0000000
--- a/projects/vitess/build.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-chmod +x $SRC/vitess/go/test/fuzzing/oss_fuzz_build.sh
-$SRC/vitess/go/test/fuzzing/oss_fuzz_build.sh
diff --git a/projects/vitess/project.yaml b/projects/vitess/project.yaml
deleted file mode 100644
index 82d0529..0000000
--- a/projects/vitess/project.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-homepage: "https://github.com/vitessio/vitess" 
-primary_contact: "andres@planetscale.com"
-auto_ccs :
-  - "adam@adalogics.com"
-  - "team-ps-vitess@planetscale.com"
-  - "manan@planetscale.com"
-  - "harshit@planetscale.com"
-  - "florent@planetscale.com"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/vitessio/vitess'
diff --git a/projects/vorbis/Dockerfile b/projects/vorbis/Dockerfile
index 80523ce..464555d 100644
--- a/projects/vorbis/Dockerfile
+++ b/projects/vorbis/Dockerfile
@@ -15,13 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER paul.l.kehrer@mail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config wget
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/ogg.git
-RUN git clone --depth 1 https://gitlab.xiph.org/xiph/vorbis.git
+RUN git clone https://git.xiph.org/ogg.git
+RUN git clone https://git.xiph.org/vorbis.git
 RUN svn export https://github.com/mozillasecurity/fuzzdata.git/trunk/samples/ogg decode_corpus
 RUN svn export --force https://github.com/mozillasecurity/fuzzdata.git/trunk/samples/vorbis decode_corpus
-# TODO: remove `people.xiph.org` lines once upstream build script is updated
-RUN mkdir people.xiph.org/
-RUN touch people.xiph.org/dummy.ogg
+RUN wget --cut-dirs 3 --recursive --level=1 -A ".ogg" https://people.xiph.org/~xiphmont/test-vectors/vorbis/
 WORKDIR vorbis
 COPY build.sh $SRC/
diff --git a/projects/vorbis/project.yaml b/projects/vorbis/project.yaml
index a4e2ddc..45359dc 100644
--- a/projects/vorbis/project.yaml
+++ b/projects/vorbis/project.yaml
@@ -1,19 +1,17 @@
 homepage: "https://xiph.org/vorbis/"
-language: c++
 primary_contact: "daede003@umn.edu"
 auto_ccs:
   - paul.l.kehrer@gmail.com
   - alex.gaynor@gmail.com
 vendor_ccs:
+  - cdiehl@mozilla.com
   - twsmith@mozilla.com
 fuzzing_engines:
   - libfuzzer
   - afl
-  - honggfuzz
   - dataflow
 sanitizers:
   - address
   - dataflow
   - memory
   - undefined
-main_repo: 'https://gitlab.xiph.org/xiph/vorbis.git'
diff --git a/projects/w3m/Dockerfile b/projects/w3m/Dockerfile
deleted file mode 100755
index 8106344..0000000
--- a/projects/w3m/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y libgc-dev
-RUN git clone https://github.com/tats/w3m
-
-WORKDIR $SRC
-COPY build.sh $SRC/
diff --git a/projects/w3m/build.sh b/projects/w3m/build.sh
deleted file mode 100755
index eccb30c..0000000
--- a/projects/w3m/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-#export CFLAGS="${CFLAGS} -"
-#export CXXFLAGS="${CXXFLAGS} -ltinfo"
-
-cd w3m
-./configure
-
-make myctype.o
-make Str.o
-make libwc
-
-cd libwc
-$CC $CFLAGS -c ../fuzz/fuzz-conv.c -o fuzz_conv.o -I../ -I./
-static_libgc=($(find /usr/lib -name "libgc.a"))
-$CXX $CXXFLAGS $LIB_FUZZING_ENGINE fuzz_conv.o -o $OUT/fuzz_conv \
-    -I./libwc  -DUSE_UNICODE -I. -I./.. -DHAVE_CONFIG_H ../Str.o ../myctype.o libwc.a ${static_libgc}
diff --git a/projects/w3m/project.yaml b/projects/w3m/project.yaml
deleted file mode 100755
index 86409e7..0000000
--- a/projects/w3m/project.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-homepage: "https://tracker.debian.org/pkg/w3m"
-primary_contact: "tats@debian.org"
-language: c
-auto_ccs :
-  - "david@adalogics.com"
-main_repo: 'https://github.com/tats/w3m'
diff --git a/projects/wabt/Dockerfile b/projects/wabt/Dockerfile
index ac7efab..86caa31 100644
--- a/projects/wabt/Dockerfile
+++ b/projects/wabt/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER binji@chromium.org
 RUN apt-get update && apt-get install -y cmake libtool make python
 RUN git clone --recursive https://github.com/WebAssembly/wabt
 WORKDIR wabt
diff --git a/projects/wabt/project.yaml b/projects/wabt/project.yaml
index 934fb67..933f9f2 100644
--- a/projects/wabt/project.yaml
+++ b/projects/wabt/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/WebAssembly/wabt"
-language: c++
 primary_contact: "binji@chromium.org"
 sanitizers:
  - address
@@ -8,4 +7,3 @@
 architectures:
  - x86_64
  - i386
-main_repo: 'https://github.com/WebAssembly/wabt'
diff --git a/projects/wasmtime/Dockerfile b/projects/wasmtime/Dockerfile
index e310b36..a70765b 100644
--- a/projects/wasmtime/Dockerfile
+++ b/projects/wasmtime/Dockerfile
@@ -15,11 +15,12 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER foote@fastly.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool curl cmake python llvm-dev libclang-dev clang
 
-RUN git clone --depth 1 https://github.com/bytecodealliance/wasm-tools wasm-tools
-
-RUN git clone --depth 1 https://github.com/bytecodealliance/regalloc.rs regalloc.rs
+ENV CARGO_HOME=/rust RUSTUP_HOME=/rust/rustup PATH=$PATH:/rust/bin
+RUN curl https://sh.rustup.rs | sh -s -- -y --default-toolchain=nightly
+RUN cargo install cargo-fuzz
 
 RUN git clone --depth 1 https://github.com/bytecodealliance/wasmtime wasmtime
 WORKDIR wasmtime
@@ -27,4 +28,4 @@
 
 RUN git clone --depth 1 https://github.com/bytecodealliance/wasmtime-libfuzzer-corpus wasmtime-libfuzzer-corpus
 
-COPY build.sh default.options $SRC/
+COPY build.sh $SRC/
diff --git a/projects/wasmtime/build.sh b/projects/wasmtime/build.sh
index 80423e3..82fbaac 100755
--- a/projects/wasmtime/build.sh
+++ b/projects/wasmtime/build.sh
@@ -17,47 +17,24 @@
 
 # Note: This project creates Rust fuzz targets exclusively
 
-build() {
-  project=$1
-  shift
-  fuzzer_prefix=$1
-  shift
-  fuzz_targets=$1
-  shift
-  PROJECT_DIR=$SRC/$project
+export CUSTOM_LIBFUZZER_PATH="$LIB_FUZZING_ENGINE_DEPRECATED"
+export CUSTOM_LIBFUZZER_STD_CXX=c++
+PROJECT_DIR=$SRC/wasmtime
 
-  # ensure we get absolute paths for the coverage report
-  cd $PROJECT_DIR
-  crate_src_abspath=`cargo metadata --no-deps --format-version 1 | jq -r '.workspace_root'`
-  while read i; do
-    export RUSTFLAGS="$RUSTFLAGS --remap-path-prefix $i=$crate_src_abspath/$i"
-  done <<< "$(find . -name "*.rs" | cut -d/ -f2 | uniq)"
+# Because Rust does not support sanitizers via CFLAGS/CXXFLAGS, the environment
+# variables are overridden with values from base-images/base-clang only
 
-  cd $PROJECT_DIR/fuzz && cargo fuzz build -O --debug-assertions "$@"
+export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"
+export CXXFLAGS_EXTRA="-stdlib=libc++"
+export CXXFLAGS="$CFLAGS $CXXFLAGS_EXTRA"
+export RUSTFLAGS="-Cdebuginfo=1 -Cforce-frame-pointers"
 
-  FUZZ_TARGET_OUTPUT_DIR=$PROJECT_DIR/target/x86_64-unknown-linux-gnu/release
+cd $PROJECT_DIR/fuzz && cargo fuzz build -O --debug-assertions
 
-  if [ "x$fuzz_targets" = "x" ]; then
-      fuzz_targets=$PROJECT_DIR/fuzz/fuzz_targets/*.rs
-  fi
-
-  for f in $fuzz_targets; do
-      src_name=$(basename ${f%.*})
-      dst_name=$fuzzer_prefix$src_name
-      cp $FUZZ_TARGET_OUTPUT_DIR/$src_name $OUT/$dst_name
-
-      if [[ -d $SRC/wasmtime/wasmtime-libfuzzer-corpus/$dst_name/ ]]; then
-          zip -jr \
-              $OUT/${dst_name}_seed_corpus.zip \
-              $SRC/wasmtime/wasmtime-libfuzzer-corpus/$dst_name/
-      fi
-
-      cp $SRC/default.options $OUT/$dst_name.options
-  done
-}
-
-# Build with peepmatic in order to enable the related fuzz targets.
-build wasmtime "" "" --features "peepmatic-fuzzing experimental_x64"
-
-build wasm-tools wasm-tools- ""
-build regalloc.rs regalloc- bt bt
+FUZZ_TARGET_OUTPUT_DIR=$PROJECT_DIR/target/x86_64-unknown-linux-gnu/release
+for f in $SRC/wasmtime/fuzz/fuzz_targets/*.rs
+do
+    FUZZ_TARGET_NAME=$(basename ${f%.*})
+    cp $FUZZ_TARGET_OUTPUT_DIR/$FUZZ_TARGET_NAME $OUT/
+    zip -jr $OUT/${FUZZ_TARGET_NAME}_seed_corpus.zip $PROJECT_DIR/wasmtime-libfuzzer-corpus/$FUZZ_TARGET_NAME/
+done
diff --git a/projects/wasmtime/default.options b/projects/wasmtime/default.options
deleted file mode 100644
index 06422d9..0000000
--- a/projects/wasmtime/default.options
+++ /dev/null
@@ -1,4 +0,0 @@
-[asan]
-allow_user_segv_handler=1
-handle_sigill=0
-handle_segv=1
diff --git a/projects/wasmtime/project.yaml b/projects/wasmtime/project.yaml
index 01c7f46..508523f 100644
--- a/projects/wasmtime/project.yaml
+++ b/projects/wasmtime/project.yaml
@@ -1,15 +1,11 @@
 homepage: "https://wasmtime.dev/"
 primary_contact: "jonathan.foote@gmail.com"
 auto_ccs:
+  - "security@bytecodealliance.org"
   - "fitzgen@gmail.com"
   - "alex@alexcrichton.com"
-  - "till@tillschneidereit.net"
-  - "ydelendik@mozilla.com"
-  - "cfallin@gmail.com"
-  - "andrew.s.brown2@gmail.com"
 sanitizers:
   - address
 fuzzing_engines:
   - libfuzzer
 language: rust
-main_repo: 'https://github.com/bytecodealliance/wasmtime'
diff --git a/projects/wavpack/Dockerfile b/projects/wavpack/Dockerfile
index 2cee9fd..05e342c 100644
--- a/projects/wavpack/Dockerfile
+++ b/projects/wavpack/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER david@wavpack.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 https://github.com/dbry/WavPack.git wavpack
 RUN cp wavpack/fuzzing/build.sh $SRC
diff --git a/projects/wavpack/project.yaml b/projects/wavpack/project.yaml
index 08c9f4e..5e334e8 100644
--- a/projects/wavpack/project.yaml
+++ b/projects/wavpack/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.wavpack.com" 
-language: c++
 primary_contact: "david@wavpack.com" 
 auto_ccs:
 - dvbryant@gmail.com
@@ -8,4 +7,3 @@
 - address 
 - memory
 - undefined
-main_repo: 'https://github.com/dbry/WavPack.git'
diff --git a/projects/wget/Dockerfile b/projects/wget/Dockerfile
index ec20c7c..ecef1d4 100644
--- a/projects/wget/Dockerfile
+++ b/projects/wget/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER rockdaboot@gmail.com
 RUN apt-get update && apt-get install -y \
  make \
  pkg-config \
diff --git a/projects/wget/project.yaml b/projects/wget/project.yaml
index 367bda9..8bc8205 100644
--- a/projects/wget/project.yaml
+++ b/projects/wget/project.yaml
@@ -1,8 +1,6 @@
 homepage: "https://www.gnu.org/software/wget/"
-language: c++
 primary_contact: "rockdaboot@gmail.com"
 auto_ccs:
   - "tim.ruehsen@gmx.de"
   - "darnir@gmail.com"
   - "gscrivan@redhat.com"
-main_repo: 'https://git.savannah.gnu.org/git/wget.git'
diff --git a/projects/wget2/Dockerfile b/projects/wget2/Dockerfile
index bc2451e..8ccce12 100644
--- a/projects/wget2/Dockerfile
+++ b/projects/wget2/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER rockdaboot@gmail.com
 RUN apt-get update && apt-get install -y \
  make \
  pkg-config \
diff --git a/projects/wget2/project.yaml b/projects/wget2/project.yaml
index 668d2db..ef3a3e5 100644
--- a/projects/wget2/project.yaml
+++ b/projects/wget2/project.yaml
@@ -1,9 +1,7 @@
 homepage: "https://gitlab.com/gnuwget/wget2"
-language: c++
 primary_contact: "rockdaboot@gmail.com"
 auto_ccs:
   - "tim.ruehsen@gmx.de"
   - "darnir@gmail.com"
   - "gscrivan@redhat.com"
   - "ajuaristi@gmx.es"
-main_repo: 'https://gitlab.com/gnuwget/wget2.git'
diff --git a/projects/wireshark/Dockerfile b/projects/wireshark/Dockerfile
index bddbf98..a531a2e 100644
--- a/projects/wireshark/Dockerfile
+++ b/projects/wireshark/Dockerfile
@@ -15,12 +15,13 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER Jakub Zawadzki <darkjames-ws@darkjames.pl>
 
 RUN apt-get update && apt-get install -y ninja-build cmake \
                        flex bison libc-ares-dev \
                        libglib2.0-dev libgcrypt20-dev
 
-RUN git clone --depth=1 https://gitlab.com/wireshark/wireshark.git
+RUN git clone --depth=1 https://code.wireshark.org/review/wireshark
 RUN git clone --depth=1 https://bitbucket.org/jwzawadzki/wireshark-fuzzdb.git
 
 WORKDIR wireshark
diff --git a/projects/wireshark/project.yaml b/projects/wireshark/project.yaml
index d4b2afe..466a69d 100644
--- a/projects/wireshark/project.yaml
+++ b/projects/wireshark/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.wireshark.org"
-language: c++
 primary_contact: "gerald@wireshark.org"
 auto_ccs:
  - "security@wireshark.org"
@@ -14,4 +13,3 @@
   - libfuzzer
   - honggfuzz
   - afl
-main_repo: 'https://gitlab.com/wireshark/wireshark'
diff --git a/projects/woff2/Dockerfile b/projects/woff2/Dockerfile
index caccff5..fa42046 100644
--- a/projects/woff2/Dockerfile
+++ b/projects/woff2/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER mmoroz@chromium.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 
 RUN git clone --depth 1 --recursive https://github.com/google/woff2
diff --git a/projects/woff2/project.yaml b/projects/woff2/project.yaml
index f8ae2c0..df78da9 100644
--- a/projects/woff2/project.yaml
+++ b/projects/woff2/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/google/woff2"
-language: c++
 primary_contact: "rsheeter@google.com"
 auto_ccs:
   - "grieger@google.com"
@@ -11,11 +10,7 @@
   - "jmuizelaar@mozilla.com"
   - "lsalzman@mozilla.com"
   - "twsmith@mozilla.com"
-fuzzing_engines:
-  - libfuzzer
-  - afl
 sanitizers:
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/google/woff2'
diff --git a/projects/wolfmqtt/Dockerfile b/projects/wolfmqtt/Dockerfile
deleted file mode 100644
index 8f49486..0000000
--- a/projects/wolfmqtt/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make autoconf automake libtool
-RUN git clone --depth 1 https://github.com/wolfSSL/wolfssl.git
-RUN git clone --depth 1 https://github.com/wolfSSL/wolfMQTT.git wolfmqtt
-RUN git clone --depth 1 https://github.com/guidovranken/wolfmqtt-fuzzers.git
-RUN git clone --depth 1 https://github.com/guidovranken/fuzzing-headers.git
-COPY build.sh $SRC/
diff --git a/projects/wolfmqtt/build.sh b/projects/wolfmqtt/build.sh
deleted file mode 100755
index 4a341d3..0000000
--- a/projects/wolfmqtt/build.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Build wolfSSL (dependency of wolfMQTT)
-cd $SRC/wolfssl/
-autoreconf -ivf
-if [[ $CFLAGS = *sanitize=memory* ]]
-then
-    ./configure --enable-static --disable-crypttests --disable-examples --disable-asm
-elif [[ $CFLAGS = *-m32* ]]
-then
-    ./configure --enable-static --disable-crypttests --disable-examples --disable-fastmath
-else
-    ./configure --enable-static --disable-crypttests --disable-examples
-fi
-make -j$(nproc)
-export CFLAGS="$CFLAGS -I $(realpath .)"
-export LDFLAGS="-L$(realpath src/.libs/)"
-
-# Build wolfMQTT
-cd $SRC/wolfmqtt/
-./autogen.sh
-./configure --enable-static --disable-examples --enable-mqtt5
-make -j$(nproc)
-
-$CXX $CXXFLAGS \
-    -std=c++17 \
-    -I $SRC/fuzzing-headers/include/ \
-    -I $SRC/wolfssl/ \
-    -I $SRC/wolfmqtt/ \
-    $SRC/wolfmqtt-fuzzers/fuzzer.cpp \
-    $SRC/wolfmqtt/src/.libs/libwolfmqtt.a \
-    $SRC/wolfssl/src/.libs/libwolfssl.a \
-    $LIB_FUZZING_ENGINE \
-    -o $OUT/wolfmqtt-fuzzer
diff --git a/projects/wolfmqtt/project.yaml b/projects/wolfmqtt/project.yaml
deleted file mode 100644
index c0346eb..0000000
--- a/projects/wolfmqtt/project.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-homepage: "https://www.wolfssl.com/products/wolfmqtt/"
-language: c
-primary_contact: "guidovranken@gmail.com"
-main_repo: "https://github.com/wolfSSL/wolfMQTT"
-auto_ccs:
-    - "eric@wolfssl.com"
-    - "embhorn@gmail.com"
-    - "david@wolfssl.com"
-    - "dgarske80@gmail.com"
-    - "kaleb@wolfssl.com"
-    - "kaleb.himes@gmail.com"
-sanitizers:
- - address
- - undefined
- - memory
-architectures:
-  - x86_64
-  - i386
diff --git a/projects/wolfssl/Dockerfile b/projects/wolfssl/Dockerfile
index 963f5e0..3d41948 100644
--- a/projects/wolfssl/Dockerfile
+++ b/projects/wolfssl/Dockerfile
@@ -15,16 +15,10 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER levi@wolfssl.com
 
-RUN apt-get update && apt-get install -y make autoconf automake libtool zip wget python
+RUN apt-get update && apt-get install -y make autoconf automake libtool zip
 RUN git clone https://github.com/wolfssl/wolfssl --depth 1 $SRC/wolfssl
-RUN git clone --depth 1 https://github.com/wolfSSL/wolfssh.git
-RUN git clone --depth 1 https://github.com/guidovranken/fuzzing-headers.git
-RUN git clone --depth 1 https://github.com/guidovranken/wolf-ssl-ssh-fuzzers
-RUN git clone --depth 1 https://github.com/guidovranken/cryptofuzz
-RUN git clone --depth 1 https://github.com/randombit/botan.git
-RUN git clone --depth 1 https://github.com/google/wycheproof.git
-RUN wget https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2
 RUN git clone https://github.com/wolfssl/oss-fuzz-targets --depth 1 $SRC/fuzz-targets
 
 WORKDIR wolfssl
diff --git a/projects/wolfssl/build.sh b/projects/wolfssl/build.sh
index 70db453..1660612 100755
--- a/projects/wolfssl/build.sh
+++ b/projects/wolfssl/build.sh
@@ -15,215 +15,20 @@
 #
 ################################################################################
 
-if [[ $CFLAGS != *sanitize=dataflow* ]]
-then
-    WOLFCRYPT_CONFIGURE_PARAMS="--enable-static --enable-md2 --enable-md4 --enable-ripemd --enable-blake2 --enable-blake2s --enable-pwdbased --enable-scrypt --enable-hkdf --enable-cmac --enable-arc4 --enable-camellia --enable-rabbit --enable-aesccm --enable-aesctr --enable-hc128 --enable-xts --enable-des3 --enable-idea --enable-x963kdf --enable-harden --enable-aescfb --enable-aesofb --enable-aeskeywrap --enable-keygen --enable-curve25519 --enable-curve448 --enable-shake256 --disable-crypttests --disable-examples --enable-compkey --enable-ed448 --enable-ed25519 --enable-ecccustcurves --enable-xchacha --enable-cryptocb --enable-eccencrypt --enable-smallstack"
-    if [[ $CFLAGS = *sanitize=memory* ]]
-    then
-        WOLFCRYPT_CONFIGURE_PARAMS="$WOLFCRYPT_CONFIGURE_PARAMS --disable-asm"
-    fi
+# target_dir determined by Dockerfile
+target_dir="$SRC/fuzz-targets"
 
-    # Install Boost headers
-    cd $SRC/
-    tar jxf boost_1_74_0.tar.bz2
-    cd boost_1_74_0/
-    CFLAGS="" CXXFLAGS="" ./bootstrap.sh
-    CFLAGS="" CXXFLAGS="" ./b2 headers
-    cp -R boost/ /usr/include/
+# build wolfssl
+./autogen.sh
+./configure --enable-static --disable-shared --prefix=/usr CC="clang"
+make -j "$(nproc)" all
+make install
 
-    OLD_CFLAGS="$CFLAGS"
-    OLD_CXXFLAGS="$CXXFLAGS"
+# put linker arguments into the environment, appending to any existing ones
+export LDFLAGS="${LDFLAGS-""}"
+export LDLIBS="${LDLIBS-""} -lwolfssl $LIB_FUZZING_ENGINE"
 
-    # Configure Cryptofuzz
-    cp -R $SRC/cryptofuzz/ $SRC/cryptofuzz-openssl-api/
-    cd $SRC/cryptofuzz-openssl-api/
-    python gen_repository.py
-    rm extra_options.h
-    echo -n '"' >>extra_options.h
-    echo -n '--force-module=wolfCrypt-OpenSSL ' >>extra_options.h
-    echo -n '"' >>extra_options.h
-
-    # Build OpenSSL API fuzzer
-    cp -R $SRC/wolfssl/ $SRC/wolfssl-openssl-api/
-    cd $SRC/wolfssl-openssl-api/
-    autoreconf -ivf
-    CFLAGS="$CFLAGS -DHAVE_AES_ECB -DWOLFSSL_DES_ECB -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DWOLFSSL_ECDSA_SET_K -DWOLFSSL_ECDSA_SET_K_ONE_LOOP"
-    if [[ $CFLAGS = *-m32* ]]
-    then
-        ./configure $WOLFCRYPT_CONFIGURE_PARAMS --enable-opensslall --enable-opensslextra --disable-fastmath
-    else
-        ./configure $WOLFCRYPT_CONFIGURE_PARAMS --enable-opensslall --enable-opensslextra
-    fi
-    make -j$(nproc)
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NO_OPENSSL -DCRYPTOFUZZ_WOLFCRYPT_OPENSSL"
-    export WOLFCRYPT_LIBWOLFSSL_A_PATH="$SRC/wolfssl-openssl-api/src/.libs/libwolfssl.a"
-    export WOLFCRYPT_INCLUDE_PATH="$SRC/wolfssl-openssl-api/"
-    cd $SRC/cryptofuzz-openssl-api/modules/wolfcrypt-openssl
-    make -j$(nproc)
-    cd $SRC/cryptofuzz-openssl-api/
-    LIBFUZZER_LINK="$LIB_FUZZING_ENGINE" make -B -j$(nproc)
-    cp cryptofuzz $OUT/cryptofuzz-openssl-api
-    CFLAGS="$OLD_CFLAGS"
-    CXXFLAGS="$OLD_CXXFLAGS"
-    unset WOLFCRYPT_LIBWOLFSSL_A_PATH
-    unset WOLFCRYPT_INCLUDE_PATH
-
-    # Configure Cryptofuzz
-    cd $SRC/cryptofuzz/
-    python gen_repository.py
-    rm extra_options.h
-    echo -n '"' >>extra_options.h
-    echo -n '--force-module=wolfCrypt ' >>extra_options.h
-    echo -n '--digests=NULL ' >>extra_options.h
-    echo -n '--operations=BignumCalc,DH_GenerateKeyPair,DH_Derive,ECC_GenerateKeyPair,ECC_PrivateToPublic,ECC_ValidatePubkey,ECDSA_Verify,ECDSA_Sign' >>extra_options.h
-    echo -n '"' >>extra_options.h
-
-    # Build Botan
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BOTAN_IS_ORACLE"
-    cd $SRC/botan
-    if [[ $CFLAGS != *-m32* ]]
-    then
-        ./configure.py --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator --build-targets=static --without-documentation
-    else
-        ./configure.py --cpu=x86_32 --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_allocator --build-targets=static --without-documentation
-    fi
-    make -j$(nproc)
-    export LIBBOTAN_A_PATH="$SRC/botan/libbotan-3.a"
-    export BOTAN_INCLUDE_PATH="$SRC/botan/build/include"
-
-    # Build sp-math-all fuzzer
-    cp -R $SRC/cryptofuzz/ $SRC/cryptofuzz-sp-math-all/
-    cp -R $SRC/wolfssl/ $SRC/wolfssl-sp-math-all/
-    cd $SRC/wolfssl-sp-math-all/
-    autoreconf -ivf
-    CFLAGS="$CFLAGS -DHAVE_AES_ECB -DWOLFSSL_DES_ECB -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DWOLFSSL_ECDSA_SET_K -DWOLFSSL_ECDSA_SET_K_ONE_LOOP"
-    ./configure $WOLFCRYPT_CONFIGURE_PARAMS --enable-sp-math-all
-    make -j$(nproc)
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NO_OPENSSL -DCRYPTOFUZZ_WOLFCRYPT -DCRYPTOFUZZ_BOTAN"
-    export WOLFCRYPT_LIBWOLFSSL_A_PATH="$SRC/wolfssl-sp-math-all/src/.libs/libwolfssl.a"
-    export WOLFCRYPT_INCLUDE_PATH="$SRC/wolfssl-sp-math-all/"
-    cd $SRC/cryptofuzz-sp-math-all/modules/wolfcrypt
-    make -j$(nproc)
-    cd $SRC/cryptofuzz-sp-math-all/modules/botan
-    make -j$(nproc)
-    cd $SRC/cryptofuzz-sp-math-all/
-    LIBFUZZER_LINK="$LIB_FUZZING_ENGINE" make -B -j$(nproc)
-    cp cryptofuzz $OUT/cryptofuzz-sp-math-all
-    CFLAGS="$OLD_CFLAGS"
-    CXXFLAGS="$OLD_CXXFLAGS"
-    unset WOLFCRYPT_LIBWOLFSSL_A_PATH
-    unset WOLFCRYPT_INCLUDE_PATH
-
-    # Build sp-math-all 8bit fuzzer
-    cp -R $SRC/cryptofuzz/ $SRC/cryptofuzz-sp-math-all-8bit/
-    cp -R $SRC/wolfssl/ $SRC/wolfssl-sp-math-all-8bit/
-    cd $SRC/wolfssl-sp-math-all-8bit/
-    autoreconf -ivf
-    CFLAGS="$CFLAGS -DHAVE_AES_ECB -DWOLFSSL_DES_ECB -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DWOLFSSL_ECDSA_SET_K -DWOLFSSL_ECDSA_SET_K_ONE_LOOP -DSP_WORD_SIZE=8"
-    ./configure $WOLFCRYPT_CONFIGURE_PARAMS --enable-sp-math-all
-    make -j$(nproc)
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NO_OPENSSL -DCRYPTOFUZZ_WOLFCRYPT -DCRYPTOFUZZ_BOTAN"
-    export WOLFCRYPT_LIBWOLFSSL_A_PATH="$SRC/wolfssl-sp-math-all-8bit/src/.libs/libwolfssl.a"
-    export WOLFCRYPT_INCLUDE_PATH="$SRC/wolfssl-sp-math-all-8bit/"
-    cd $SRC/cryptofuzz-sp-math-all-8bit/modules/wolfcrypt
-    make -j$(nproc)
-    cd $SRC/cryptofuzz-sp-math-all-8bit/modules/botan
-    make -j$(nproc)
-    cd $SRC/cryptofuzz-sp-math-all-8bit/
-    LIBFUZZER_LINK="$LIB_FUZZING_ENGINE" make -B -j$(nproc)
-    cp cryptofuzz $OUT/cryptofuzz-sp-math-all-8bit
-    CFLAGS="$OLD_CFLAGS"
-    CXXFLAGS="$OLD_CXXFLAGS"
-    unset WOLFCRYPT_LIBWOLFSSL_A_PATH
-    unset WOLFCRYPT_INCLUDE_PATH
-
-    # Build sp-math fuzzer
-    cp -R $SRC/cryptofuzz/ $SRC/cryptofuzz-sp-math/
-    cp -R $SRC/wolfssl/ $SRC/wolfssl-sp-math/
-    cd $SRC/wolfssl-sp-math/
-    autoreconf -ivf
-    # -DHAVE_ECC_BRAINPOOL and -DHAVE_ECC_KOBLITZ are lacking from the CFLAGS; these are not supported by SP math
-    CFLAGS="$CFLAGS -DHAVE_AES_ECB -DWOLFSSL_DES_ECB -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DWOLFSSL_ECDSA_SET_K -DWOLFSSL_ECDSA_SET_K_ONE_LOOP"
-    # SP math does not support custom curves, so remove that flag
-    export WOLFCRYPT_CONFIGURE_PARAMS_SP_MATH=${WOLFCRYPT_CONFIGURE_PARAMS//"--enable-ecccustcurves"/}
-    ./configure $WOLFCRYPT_CONFIGURE_PARAMS_SP_MATH --enable-sp --enable-sp-math
-    make -j$(nproc)
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NO_OPENSSL -DCRYPTOFUZZ_WOLFCRYPT -DCRYPTOFUZZ_BOTAN"
-    export WOLFCRYPT_LIBWOLFSSL_A_PATH="$SRC/wolfssl-sp-math/src/.libs/libwolfssl.a"
-    export WOLFCRYPT_INCLUDE_PATH="$SRC/wolfssl-sp-math/"
-    cd $SRC/cryptofuzz-sp-math/modules/wolfcrypt
-    make -j$(nproc)
-    cd $SRC/cryptofuzz-sp-math/modules/botan
-    make -j$(nproc)
-    cd $SRC/cryptofuzz-sp-math/
-    LIBFUZZER_LINK="$LIB_FUZZING_ENGINE" make -B -j$(nproc)
-    cp cryptofuzz $OUT/cryptofuzz-sp-math
-    CFLAGS="$OLD_CFLAGS"
-    CXXFLAGS="$OLD_CXXFLAGS"
-    unset WOLFCRYPT_LIBWOLFSSL_A_PATH
-    unset WOLFCRYPT_INCLUDE_PATH
-
-    # Build disable-fastmath fuzzer
-    cp -R $SRC/cryptofuzz/ $SRC/cryptofuzz-disable-fastmath/
-    cp -R $SRC/wolfssl/ $SRC/wolfssl-disable-fastmath/
-    cd $SRC/wolfssl-disable-fastmath/
-    autoreconf -ivf
-    CFLAGS="$CFLAGS -DHAVE_AES_ECB -DWOLFSSL_DES_ECB -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOOL -DHAVE_ECC_KOBLITZ -DWOLFSSL_ECDSA_SET_K -DWOLFSSL_ECDSA_SET_K_ONE_LOOP"
-    ./configure $WOLFCRYPT_CONFIGURE_PARAMS --disable-fastmath
-    make -j$(nproc)
-    export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NO_OPENSSL -DCRYPTOFUZZ_WOLFCRYPT -DCRYPTOFUZZ_BOTAN"
-    export WOLFCRYPT_LIBWOLFSSL_A_PATH="$SRC/wolfssl-disable-fastmath/src/.libs/libwolfssl.a"
-    export WOLFCRYPT_INCLUDE_PATH="$SRC/wolfssl-disable-fastmath/"
-    cd $SRC/cryptofuzz-disable-fastmath/modules/wolfcrypt
-    make -j$(nproc)
-    cd $SRC/cryptofuzz-disable-fastmath/modules/botan
-    make -j$(nproc)
-    cd $SRC/cryptofuzz-disable-fastmath/
-    LIBFUZZER_LINK="$LIB_FUZZING_ENGINE" make -B -j$(nproc)
-    cp cryptofuzz $OUT/cryptofuzz-disable-fastmath
-    CFLAGS="$OLD_CFLAGS"
-    CXXFLAGS="$OLD_CXXFLAGS"
-    unset WOLFCRYPT_LIBWOLFSSL_A_PATH
-    unset WOLFCRYPT_INCLUDE_PATH
-
-    # Convert Wycheproof test vectors to Cryptofuzz corpus format
-    mkdir $SRC/corpus-cryptofuzz-wycheproof/
-    find $SRC/wycheproof/testvectors/ -type f -name 'ecdsa_*' -exec $SRC/cryptofuzz-disable-fastmath/cryptofuzz --from-wycheproof={},$SRC/corpus-cryptofuzz-wycheproof/ \;
-    # Pack it
-    zip -j $SRC/cryptofuzz_wycheproof_seed_corpus.zip $SRC/corpus-cryptofuzz-wycheproof/*
-    # Use it as the seed corpus for each Cryptofuzz-based fuzzer
-    cp $SRC/cryptofuzz_wycheproof_seed_corpus.zip $OUT/cryptofuzz-sp-math-all_seed_corpus.zip
-    cp $SRC/cryptofuzz_wycheproof_seed_corpus.zip $OUT/cryptofuzz-sp-math-all-8bit_seed_corpus.zip
-    cp $SRC/cryptofuzz_wycheproof_seed_corpus.zip $OUT/cryptofuzz-sp-math_seed_corpus.zip
-    cp $SRC/cryptofuzz_wycheproof_seed_corpus.zip $OUT/cryptofuzz-disable-fastmath_seed_corpus.zip
-
-    # Build SSL/SSH fuzzers
-    NEW_SRC=$SRC/wolf-ssl-ssh-fuzzers/oss-fuzz/projects/wolf-ssl-ssh/
-    cp -R $SRC/wolfssl/ $NEW_SRC
-    cp -R $SRC/wolfssh/ $NEW_SRC
-    cp -R $SRC/fuzzing-headers/ $NEW_SRC
-    OSS_FUZZ_BUILD=1 SRC="$NEW_SRC" $NEW_SRC/build.sh
-fi
-
-if [[ $CFLAGS != *-m32* ]]
-then
-    cd $SRC/wolfssl
-
-    # target_dir determined by Dockerfile
-    target_dir="$SRC/fuzz-targets"
-
-    # build wolfssl
-    ./autogen.sh
-    ./configure --enable-static --disable-shared --prefix=/usr CC="clang"
-    make -j "$(nproc)" all
-    make install
-
-    # put linker arguments into the environment, appending to any existing ones
-    export LDFLAGS="${LDFLAGS-""}"
-    export LDLIBS="${LDLIBS-""} -lwolfssl $LIB_FUZZING_ENGINE"
-
-    # make and export targets to $OUT; environment overridding internal variables
-    cd "${target_dir}"
-    make -e all
-    make -e export prefix="$OUT"
-fi
+# make and export targets to $OUT; environment overridding internal variables
+cd "${target_dir}"
+make -e all
+make -e export prefix="$OUT"
diff --git a/projects/wolfssl/project.yaml b/projects/wolfssl/project.yaml
index a6a31a1..cc75e08 100644
--- a/projects/wolfssl/project.yaml
+++ b/projects/wolfssl/project.yaml
@@ -1,16 +1,10 @@
 homepage: "https://www.wolfssl.com/"
-language: c++
 primary_contact: "jacob@wolfssl.com"
 auto_ccs:
   - "david@wolfssl.com"
-  - "john@wolfssl.com"
-  - "john.safranek@gmail.com"
   - "kaleb@wolfssl.com"
-  - "kaleb.himes@gmail.com"
   - "levi@wolfssl.com"
   - "testing@wolfssl.com"
-  - "dgarske80@gmail.com"
-  - "guidovranken@gmail.com"
 fuzzing_engines:
   - libfuzzer
   - afl
@@ -18,10 +12,7 @@
   - dataflow
 sanitizers:
   - address
-  - memory
+  - memory:
+     experimental: True
   - undefined
   - dataflow
-architectures:
-  - x86_64
-  - i386
-main_repo: 'https://github.com/wolfssl/wolfssl'
diff --git a/projects/wpantund/Dockerfile b/projects/wpantund/Dockerfile
index c4cbe7c..2f0efba 100644
--- a/projects/wpantund/Dockerfile
+++ b/projects/wpantund/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER rquattle@google.com
 
 RUN apt-get -y update \
 	&& DEBIAN_FRONTEND=noninteractive \
diff --git a/projects/wpantund/project.yaml b/projects/wpantund/project.yaml
index 3a0e807..9c5fb57 100644
--- a/projects/wpantund/project.yaml
+++ b/projects/wpantund/project.yaml
@@ -1,7 +1,5 @@
 homepage: "https://github.com/openthread/wpantund"
-language: c++
 primary_contact: "rquattle@google.com"
 auto_ccs:
  - "abtink@google.com"
  - "wpantund-fuzz@google.com"
-main_repo: 'https://github.com/openthread/wpantund'
diff --git a/projects/wuffs/Dockerfile b/projects/wuffs/Dockerfile
index c495515..0af0c21 100644
--- a/projects/wuffs/Dockerfile
+++ b/projects/wuffs/Dockerfile
@@ -15,36 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y wget
-
-# Get Wuffs' first-party code.
-
+MAINTAINER nigeltao@golang.org
 RUN git clone --depth 1 https://github.com/google/wuffs.git
-
-# Get third-party test corpora.
-
-RUN git clone --depth 1 https://github.com/nst/JSONTestSuite.git
-
-RUN wget -O bmpsuite.zip https://entropymine.com/jason/bmpsuite/releases/bmpsuite-2.6.zip
-RUN mkdir bmpsuite_corpus
-RUN unzip -j bmpsuite.zip -d bmpsuite_corpus
-RUN rm bmpsuite.zip
-
-RUN wget -O pngsuite.tgz http://www.schaik.com/pngsuite/PngSuite-2017jul19.tgz
-RUN mkdir pngsuite_corpus
-RUN tar xf pngsuite.tgz --one-top-level=pngsuite_corpus
-RUN rm pngsuite.tgz
-
-RUN wget -O rapidjson.zip "https://github.com/guidovranken/rapidjson-fuzzers/blob/master/fuzzer_seed_corpus.zip?raw=true"
-RUN mkdir rapidjson_corpus
-RUN unzip -j rapidjson.zip -d rapidjson_corpus
-RUN rm rapidjson.zip
-
-RUN git clone --depth 1 https://github.com/minio/simdjson-fuzz
-RUN mv simdjson-fuzz/corpus/corpus simdjson_corpus
-RUN rm -rf simdjson-fuzz
-
-# Finish.
-
 WORKDIR wuffs
 COPY build.sh $SRC/
diff --git a/projects/wuffs/build.sh b/projects/wuffs/build.sh
index b8d4f53..6177a3b 100755
--- a/projects/wuffs/build.sh
+++ b/projects/wuffs/build.sh
@@ -26,30 +26,14 @@
 
   # Make the "gzip_fuzzer" binary. First compile the (C) Wuffs code, then link
   # the (C++) fuzzing library.
-  $CC $CFLAGS -c $f -o $WORK/${b}_fuzzer.o
+  $CC $CFLAGS -c -std=c99 $f -o $WORK/${b}_fuzzer.o
   $CXX $CXXFLAGS $WORK/${b}_fuzzer.o -o $OUT/${b}_fuzzer $LIB_FUZZING_ENGINE
 
   # Make the optional "gzip_fuzzer_seed_corpus.zip" archive. This means
   # extracting the "foo/bar/*.gz" out of the matching "gzip: foo/bar/*.gz"
   # lines in fuzz/c/std/seed_corpora.txt.
-  #
-  # The seed_corpora.txt lines can contain multiple entries, combining
-  # independent corpora. A naive "zip --junk-paths" of all those files can fail
-  # if there are duplicate file names, which can easily happen if the file name
-  # is a hash of its contents and the contents are a (trivial) minimal
-  # reproducer. We use a de-duplication step of copying all of those files into
-  # a single directory. Doing that in a single "cp" or "mv" call can fail with
-  # "will not overwrite just-created 'foo/etc' with 'bar/etc'", so we make
-  # multiple calls, each copying one file at a time. Later duplicates overwrite
-  # earlier duplicates. It's OK if the contents aren't identical. The result is
-  # still a valid uber-corpus of seed files.
   seeds=$(sed -n -e "/^$b:/s/^$b: *//p" fuzz/c/std/seed_corpora.txt)
   if [ -n "$seeds" ]; then
-    mkdir ${b}_fuzzer_seed_corpus
-    for s in $seeds; do
-      cp $s ${b}_fuzzer_seed_corpus
-    done
-    zip --junk-paths --recurse-paths $OUT/${b}_fuzzer_seed_corpus.zip ${b}_fuzzer_seed_corpus
-    rm -rf ${b}_fuzzer_seed_corpus
+    zip --junk-paths $OUT/${b}_fuzzer_seed_corpus.zip $seeds
   fi
 done
diff --git a/projects/wuffs/project.yaml b/projects/wuffs/project.yaml
index 73364d9..5b09d29 100644
--- a/projects/wuffs/project.yaml
+++ b/projects/wuffs/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://github.com/google/wuffs"
-language: c++
 primary_contact: "nigeltao@golang.org"
 fuzzing_engines:
   - libfuzzer
@@ -13,4 +12,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/google/wuffs.git'
diff --git a/projects/wxwidgets/Dockerfile b/projects/wxwidgets/Dockerfile
index 9ac1e68..85a0afa 100644
--- a/projects/wxwidgets/Dockerfile
+++ b/projects/wxwidgets/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER vadim@wxwidgets.org
 RUN apt-get update && apt-get install -y make
 RUN git clone --recurse-submodules --depth 1 https://github.com/wxWidgets/wxWidgets.git wxwidgets
 WORKDIR wxwidgets
diff --git a/projects/wxwidgets/project.yaml b/projects/wxwidgets/project.yaml
index 8abf05e..17c648e 100644
--- a/projects/wxwidgets/project.yaml
+++ b/projects/wxwidgets/project.yaml
@@ -1,4 +1,2 @@
 homepage: "https://www.wxwidgets.org/"
-language: c++
 primary_contact: "vzeitlin@gmail.com"
-main_repo: 'https://github.com/wxWidgets/wxWidgets.git'
diff --git a/projects/xerces-c/Dockerfile b/projects/xerces-c/Dockerfile
index c13bd9e..9df098e 100755
--- a/projects/xerces-c/Dockerfile
+++ b/projects/xerces-c/Dockerfile
@@ -13,9 +13,8 @@
 #
 ################################################################################
 FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update -y && \
-    apt-get install -y make autoconf automake libtool wget zlib1g-dev \
-    binutils cmake subversion ninja-build liblzma-dev libz-dev pkg-config
+MAINTAINER vincent.ulitzsch@live.de
+RUN apt-get update && apt-get install -y make autoconf automake libtool wget zlib1g-dev libtool ninja-build cmake subversion
 RUN svn co https://svn.apache.org/repos/asf/xerces/c/trunk $SRC/xerces-c
 RUN git clone --depth 1 https://github.com/google/libprotobuf-mutator.git
 RUN (mkdir LPM && cd LPM && cmake ../libprotobuf-mutator -GNinja -DLIB_PROTO_MUTATOR_DOWNLOAD_PROTOBUF=ON -DLIB_PROTO_MUTATOR_TESTING=OFF -DCMAKE_BUILD_TYPE=Release && ninja)
diff --git a/projects/xerces-c/project.yaml b/projects/xerces-c/project.yaml
index 3a16f92..41da7a7 100755
--- a/projects/xerces-c/project.yaml
+++ b/projects/xerces-c/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://xerces.apache.org/"
-language: c++
 primary_contact: "vincent.ulitzsch@live.de"
 auto_ccs:
   - "vincent.ulitzsch@live.de"
diff --git a/projects/xmlsec/Dockerfile b/projects/xmlsec/Dockerfile
index 75814fc..8cd5f70 100644
--- a/projects/xmlsec/Dockerfile
+++ b/projects/xmlsec/Dockerfile
@@ -16,7 +16,7 @@
 
 FROM gcr.io/oss-fuzz-base/base-builder
 RUN apt-get update && apt-get install -y make autoconf automake libtool pkg-config \
-    libssl-dev libxslt-dev wget liblzma-dev
+    libssl-dev libxslt-dev wget
 
 RUN git clone --depth 1 https://github.com/lsh123/xmlsec
 RUN git clone --depth 1 https://gitlab.gnome.org/GNOME/libxml2.git
diff --git a/projects/xmlsec/build.sh b/projects/xmlsec/build.sh
index b2976c3..c91327c 100755
--- a/projects/xmlsec/build.sh
+++ b/projects/xmlsec/build.sh
@@ -45,7 +45,7 @@
     $CXX $CXXFLAGS $OUT/${b}_target.o ./src/.libs/libxmlsec1.a \
     ./src/openssl/.libs/libxmlsec1-openssl.a $LIB_FUZZING_ENGINE \
     "$XMLSEC_DEPS_PATH"/lib/libxslt.a "$XMLSEC_DEPS_PATH"/lib/libxml2.a \
-    -lz -llzma -o $OUT/${b}_fuzzer
+    -lz -o $OUT/${b}_fuzzer
 done
 cp $SRC/xmlsec/tests/oss-fuzz/config/*.options $OUT/
 wget -O $OUT/xml.dict https://raw.githubusercontent.com/mirrorer/afl/master/dictionaries/xml.dict
diff --git a/projects/xmlsec/project.yaml b/projects/xmlsec/project.yaml
index 12dd5a1..48cbf02 100644
--- a/projects/xmlsec/project.yaml
+++ b/projects/xmlsec/project.yaml
@@ -1,9 +1,7 @@
 homepage: "https://www.aleksey.com/xmlsec/"
-language: c++
 primary_contact: "aleksey@aleksey.com"
 auto_ccs:
   - "alekseysanin@gmail.com"
 sanitizers:
   - address
   - undefined
-main_repo: 'https://github.com/lsh123/xmlsec'
diff --git a/projects/xpdf/Dockerfile b/projects/xpdf/Dockerfile
deleted file mode 100755
index a3090f0..0000000
--- a/projects/xpdf/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN apt-get update && apt-get install -y make wget cmake libqt4-dev
-RUN wget --no-check-certificate https://dl.xpdfreader.com/xpdf-latest.tar.gz
-
-WORKDIR $SRC
-COPY fuzz_*.cc $SRC/
-COPY build.sh $SRC/
-COPY fuzz_pdfload.options $SRC/fuzz_pdfload.options
diff --git a/projects/xpdf/build.sh b/projects/xpdf/build.sh
deleted file mode 100755
index 584f504..0000000
--- a/projects/xpdf/build.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-# Unpack the file and cd into it
-tar -zxvf xpdf-latest.tar.gz
-dir_name=`tar -tzf xpdf-latest.tar.gz | head -1 | cut -f1 -d"/"`
-cd $dir_name
-
-# Make minor change in the CMakeFiles file.
-sed -i 's/#--- object files needed by XpdfWidget/add_library(testXpdfStatic STATIC $<TARGET_OBJECTS:xpdf_objs>)\n#--- object files needed by XpdfWidget/' ./xpdf/CMakeLists.txt
-
-# Build the project
-mkdir build && cd build
-export LD=$CXX
-cmake ../ -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS"
-make -i || true
-
-# Build fuzzers
-for fuzzer in zxdoc pdfload; do
-    cp ../../fuzz_$fuzzer.cc .
-    $CXX fuzz_$fuzzer.cc -o $OUT/fuzz_$fuzzer $CXXFLAGS $LIB_FUZZING_ENGINE \
-      ./xpdf/libtestXpdfStatic.a ./fofi/libfofi.a ./goo/libgoo.a \
-      -I../ -I../goo -I../fofi -I. -I../xpdf
-done
-
-# Copy over options files
-cp $SRC/fuzz_pdfload.options $OUT/
diff --git a/projects/xpdf/fuzz_pdfload.cc b/projects/xpdf/fuzz_pdfload.cc
deleted file mode 100644
index fba7a90..0000000
--- a/projects/xpdf/fuzz_pdfload.cc
+++ /dev/null
@@ -1,64 +0,0 @@
-/*  Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-#include <exception>
-#include "PDFDoc.h"
-#include "GlobalParams.h"
-#include "Zoox.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
-{
-    char filename[256];
-    sprintf(filename, "/tmp/libfuzzer.%d", getpid());
-    FILE *fp = fopen(filename, "wb");
-    if (!fp)
-        return 0;
-    fwrite(data, size, 1, fp);
-    fclose(fp);
-
-    // Main fuzzing logic
-    Object info, xfa;
-    Object *acroForm;
-    globalParams = new GlobalParams(NULL);
-    globalParams->setErrQuiet(1);
-    globalParams->setupBaseFonts(NULL);
-
-    PDFDoc *doc = NULL;
-    try {
-        doc = new PDFDoc(filename, NULL, NULL);
-        if (doc->isOk() == gTrue)
-        {
-            doc->getNumPages();
-            if ((acroForm = doc->getCatalog()->getAcroForm())->isDict()) {
-                acroForm->dictLookup("XFA", &xfa);
-                xfa.free();
-            }
-        }
-    } catch (...) {
-
-    }
-
-    // Cleanup
-    if (doc != NULL)
-        delete doc;
-    delete globalParams;
-
-    // cleanup temporary file
-    unlink(filename);
-    return 0;
-}
-
diff --git a/projects/xpdf/fuzz_pdfload.options b/projects/xpdf/fuzz_pdfload.options
deleted file mode 100644
index f9d0965..0000000
--- a/projects/xpdf/fuzz_pdfload.options
+++ /dev/null
@@ -1,2 +0,0 @@
-[libfuzzer]
-detect_leaks=0
diff --git a/projects/xpdf/fuzz_zxdoc.cc b/projects/xpdf/fuzz_zxdoc.cc
deleted file mode 100644
index 54a5514..0000000
--- a/projects/xpdf/fuzz_zxdoc.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-/*  Copyright 2020 Google Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-#include "Zoox.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
-    char *ss = (char*)malloc(size+1);
-    memcpy(ss, data, size);
-    ss[size] = '\0';
-
-    ZxDoc Z1;
-    ZxDoc *new_doc = Z1.loadMem(ss, size);
-    if (new_doc != NULL)
-        delete new_doc;
-
-    free(ss);
-
-    return 0;  
-}
diff --git a/projects/xpdf/project.yaml b/projects/xpdf/project.yaml
deleted file mode 100755
index b0956ee..0000000
--- a/projects/xpdf/project.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-homepage: "https://www.xpdfreader.com/"
-primary_contact: "xpdf@xpdfreader.com"
-language: c++
-sanitizers:
-  - address
-auto_ccs :
-  - "david@adalogics.com"
diff --git a/projects/xvid/Dockerfile b/projects/xvid/Dockerfile
index 9b76763..7ff63d7 100644
--- a/projects/xvid/Dockerfile
+++ b/projects/xvid/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER guidovranken@gmail.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool subversion
 RUN svn checkout http://svn.xvid.org/trunk --username anonymous --password "" --non-interactive --no-auth-cache
 RUN git clone --depth 1 https://github.com/guidovranken/fuzzing-headers.git
diff --git a/projects/xvid/project.yaml b/projects/xvid/project.yaml
index d1590ae..9abfe91 100644
--- a/projects/xvid/project.yaml
+++ b/projects/xvid/project.yaml
@@ -1,5 +1,4 @@
 homepage: "https://www.xvid.com/"
-language: c++
 primary_contact: "guidovranken@gmail.com"
 auto_ccs:
  - "mm@xvid.org"
diff --git a/projects/xz/Dockerfile b/projects/xz/Dockerfile
index 7e03362..7c79467 100644
--- a/projects/xz/Dockerfile
+++ b/projects/xz/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER bshas3@email.com
 RUN apt-get update && apt-get install -y make autoconf autopoint libtool zip
 RUN git clone https://git.tukaani.org/xz.git
 COPY build.sh $SRC/
diff --git a/projects/xz/build.sh b/projects/xz/build.sh
index 9886951..e1cf243 100755
--- a/projects/xz/build.sh
+++ b/projects/xz/build.sh
@@ -15,7 +15,7 @@
 #
 ################################################################################
 
-./autogen.sh --no-po4a
+./autogen.sh
 ./configure \
   --enable-static \
   --disable-debug \
diff --git a/projects/xz/project.yaml b/projects/xz/project.yaml
index e611259..8bc717e 100644
--- a/projects/xz/project.yaml
+++ b/projects/xz/project.yaml
@@ -1,16 +1,13 @@
 homepage: "https://tukaani.org/xz/"
-language: c++
 primary_contact: "lasse.collin@tukaani.org"
 auto_ccs:
   - "bshas3@gmail.com"
 fuzzing_engines:
   - libfuzzer
   - afl
-  - honggfuzz
   - dataflow
 sanitizers:
   - address
   - dataflow
   - memory
   - undefined
-main_repo: 'https://git.tukaani.org/xz.git'
diff --git a/projects/yajl-ruby/Dockerfile b/projects/yajl-ruby/Dockerfile
index 58ebe95..9cd5f99 100644
--- a/projects/yajl-ruby/Dockerfile
+++ b/projects/yajl-ruby/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER jonathan@titanous.com
 RUN git clone --depth 1 https://github.com/brianmario/yajl-ruby
 WORKDIR yajl-ruby
 COPY json_fuzzer.c $SRC/yajl-ruby/fuzz/
diff --git a/projects/yajl-ruby/project.yaml b/projects/yajl-ruby/project.yaml
index d1da04d..2fe4188 100644
--- a/projects/yajl-ruby/project.yaml
+++ b/projects/yajl-ruby/project.yaml
@@ -1,17 +1,9 @@
 homepage: https://github.com/brianmario/yajl-ruby
-language: c++
 primary_contact: seniorlopez@gmail.com
-fuzzing_engines:
-  - libfuzzer
-  - afl
-  - honggfuzz
-  - dataflow
 sanitizers:
   - address
   - undefined
   - memory
-  - dataflow
 auto_ccs:
   - aaron.patterson@gmail.com
   - jonathan@titanous.com
-main_repo: 'https://github.com/brianmario/yajl-ruby'
diff --git a/projects/yara/Dockerfile b/projects/yara/Dockerfile
index 25c91ff..ab71c69 100644
--- a/projects/yara/Dockerfile
+++ b/projects/yara/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER vmalvarez@google.com
 RUN \
   apt-get update && apt-get install -y \
   automake \
diff --git a/projects/yara/build.sh b/projects/yara/build.sh
index e19f16c..156a63a 100755
--- a/projects/yara/build.sh
+++ b/projects/yara/build.sh
@@ -16,7 +16,7 @@
 ################################################################################
 
 ./bootstrap.sh
-./configure --enable-macho --enable-debug --enable-dex --enable-dotnet --without-crypto
+./configure --enable-debug --enable-dex --enable-dotnet --without-crypto
 
 make clean
 make -j$(nproc) all
diff --git a/projects/yara/project.yaml b/projects/yara/project.yaml
index 828e176..7a2a39c 100644
--- a/projects/yara/project.yaml
+++ b/projects/yara/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://virustotal.github.io/yara/"
-language: c++
 primary_contact: "vmalvarez@google.com"
 auto_ccs:
   - "vmalvarez@virustotal.com"
@@ -8,4 +7,3 @@
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/VirusTotal/yara.git'
diff --git a/projects/ygot/Dockerfile b/projects/ygot/Dockerfile
deleted file mode 100644
index b592c30..0000000
--- a/projects/ygot/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-RUN git clone --depth 1 https://github.com/openconfig/ygot
-
-COPY build.sh $SRC/
-COPY fuzz.go $SRC/ygot/exampleoc/
-WORKDIR $SRC/ygot
diff --git a/projects/ygot/build.sh b/projects/ygot/build.sh
deleted file mode 100755
index 3a34ffc..0000000
--- a/projects/ygot/build.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-compile_go_fuzzer github.com/openconfig/ygot/exampleoc Fuzz fuzz_oc_unmarshall gofuzz
diff --git a/projects/ygot/fuzz.go b/projects/ygot/fuzz.go
deleted file mode 100644
index c9a0882..0000000
--- a/projects/ygot/fuzz.go
+++ /dev/null
@@ -1,12 +0,0 @@
-// +build gofuzz
-
-package exampleoc
-
-func Fuzz(data []byte) int {
-	nd := &Device{}
-	err := Unmarshal([]byte(data), nd)
-	if err != nil {
-		return 0
-	}
-	return 1
-}
diff --git a/projects/ygot/project.yaml b/projects/ygot/project.yaml
deleted file mode 100644
index bd4ef7a..0000000
--- a/projects/ygot/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/openconfig/ygot"
-primary_contact: "ygot-maintainers@google.com"
-auto_ccs:
-  - "p.antoine@catenacyber.fr"
-language: go
-fuzzing_engines:
-  - libfuzzer
-sanitizers:
-  - address
-main_repo: 'https://github.com/openconfig/ygot'
diff --git a/projects/zeek/Dockerfile b/projects/zeek/Dockerfile
deleted file mode 100644
index ab64826..0000000
--- a/projects/zeek/Dockerfile
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
-        patchelf \
-        cmake \
-        ninja-build \
-        flex \
-        bison \
-        libpcap-dev \
-        libssl-dev \
-        libmaxminddb-dev \
-        libkrb5-dev \
-        zlib1g-dev \
-  && rm -rf /var/lib/apt/lists/*
-
-RUN git clone --depth 1 --recursive https://github.com/zeek/zeek zeek
-WORKDIR zeek
-COPY build.sh $SRC/
diff --git a/projects/zeek/build.sh b/projects/zeek/build.sh
deleted file mode 100644
index 996fe9c..0000000
--- a/projects/zeek/build.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-CFLAGS="${CFLAGS} -pthread" CXXFLAGS="${CXXFLAGS} -pthread" \
-    ./configure --prefix=$(pwd)/build/install-root \
-                --build-type=debug \
-                --generator=Ninja \
-                --enable-fuzzers \
-                --disable-python \
-                --disable-zeekctl \
-                --disable-auxtools \
-                --disable-broker-tests
-
-
-cd build
-ninja install
-
-cp -R ./install-root/share/zeek ${OUT}/oss-fuzz-zeek-scripts
-
-fuzzers=$(find . -name 'zeek-*-fuzzer')
-fuzzer_count=1
-
-function copy_lib
-    {
-    local fuzzer_path=$1
-    local lib=$2
-    cp $(ldd ${fuzzer_path} | grep "${lib}" | awk '{ print $3 }') ${OUT}/lib
-    }
-
-for f in ${fuzzers}; do
-    fuzzer_exe=$(basename ${f})
-    fuzzer_name=$(echo ${fuzzer_exe} | sed 's/zeek-\(.*\)-fuzzer/\1/g')
-
-    cp ${f} ${OUT}/
-
-    # Set up run-time dependency libraries
-    if [[ "${fuzzer_count}" -eq "1" ]]; then
-        mkdir -p ${OUT}/lib
-        zeek_libs=$(ldd ${f} | grep 'zeek/build' | awk '{ print $1 }' )
-
-        for lib in ${zeek_libs}; do
-            copy_lib ${f} ${lib}
-        done
-
-        copy_lib ${f} libpcap
-        copy_lib ${f} libssl
-        copy_lib ${f} libcrypto
-        copy_lib ${f} libz
-        copy_lib ${f} libmaxminddb
-    fi
-
-    patchelf --set-rpath '$ORIGIN/lib' ${OUT}/${fuzzer_exe}
-
-    if [[ -e ../src/fuzzers/${fuzzer_name}.dict ]]; then
-        cp ../src/fuzzers/${fuzzer_name}.dict ${OUT}/${fuzzer_exe}.dict
-    fi
-
-    if [[ -e ../src/fuzzers/${fuzzer_name}-corpus.zip ]]; then
-        cp ../src/fuzzers/${fuzzer_name}-corpus.zip ${OUT}/${fuzzer_exe}_seed_corpus.zip
-    fi
-
-    fuzzer_count=$((fuzzer_count + 1))
-done
-
-if [ "${SANITIZER}" = "coverage" ]; then
-  # Normally, base-builder/compile copies sources for use in coverage reports,
-  # but its use of `cp -rL` omits the "zeek -> ." symlink used by #includes,
-  # causing the coverage build to fail.
-  mkdir -p $OUT/$(basename $SRC)
-  cp -r $SRC/zeek $OUT/$(basename $SRC)/zeek
-fi
diff --git a/projects/zeek/project.yaml b/projects/zeek/project.yaml
deleted file mode 100644
index b0239da..0000000
--- a/projects/zeek/project.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-homepage: "https://www.zeek.org"
-language: c++
-primary_contact: "security@zeek.org"
-auto_ccs:
-  - "jsiwek@corelight.com"
-  - "robin@corelight.com"
-  - "johanna@corelight.com"
-  - "tim@corelight.com"
-  - "seth@corelight.com"
-  - "justin@corelight.com"
-  - "vern@corelight.com"
-  - "vlad@es.net"
-  - "dominik.charousset@corelight.com"
-sanitizers:
-  - address
-main_repo: 'https://github.com/zeek/zeek'
diff --git a/projects/zlib-ng/Dockerfile b/projects/zlib-ng/Dockerfile
index d860078..4f8dbf6 100644
--- a/projects/zlib-ng/Dockerfile
+++ b/projects/zlib-ng/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER sebpop@gmail.com
 RUN apt-get update && apt-get install -y make
 
 RUN git clone --depth 1 -b develop https://github.com/zlib-ng/zlib-ng.git
diff --git a/projects/zlib-ng/build.sh b/projects/zlib-ng/build.sh
index 606c5af..10d9535 100755
--- a/projects/zlib-ng/build.sh
+++ b/projects/zlib-ng/build.sh
@@ -15,11 +15,10 @@
 #
 ################################################################################
 
-export LDSHARED=lld
+export LDSHARED=$CXX
 export LDFLAGS="$CFLAGS -stdlib=libc++"
-
 ./configure
-
+sed -i "/^LDSHARED=.*/s#=.*#=$CXX#" Makefile
 sed -i 's/$(CC) $(LDFLAGS)/$(CXX) $(LDFLAGS)/g' Makefile
 
 make -j$(nproc) clean
diff --git a/projects/zlib-ng/project.yaml b/projects/zlib-ng/project.yaml
index 688f359..26cdaa6 100644
--- a/projects/zlib-ng/project.yaml
+++ b/projects/zlib-ng/project.yaml
@@ -1,9 +1,23 @@
-homepage: "https://github.com/zlib-ng/zlib-ng"
-language: c++
+# Copyright 2018 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+homepage: "https://github.com/Dead2/zlib-ng"
 primary_contact: "zlib-ng@circlestorm.org"
 auto_ccs:
   - "sebpop@gmail.com"
-  - "nathan.moinvaziri@gmail.com"
 fuzzing_engines:
   - libfuzzer
   - afl
@@ -17,4 +31,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/zlib-ng/zlib-ng.git'
diff --git a/projects/zlib/Dockerfile b/projects/zlib/Dockerfile
index be1cb4c..ade5269 100644
--- a/projects/zlib/Dockerfile
+++ b/projects/zlib/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER inferno@chromium.org
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 -b develop https://github.com/madler/zlib.git
 WORKDIR zlib
diff --git a/projects/zlib/build.sh b/projects/zlib/build.sh
index 9b58795..dbffa1a 100755
--- a/projects/zlib/build.sh
+++ b/projects/zlib/build.sh
@@ -1,19 +1,4 @@
 #!/bin/bash -eu
-# Copyright 2016 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
 
 ./configure
 make -j$(nproc) clean
diff --git a/projects/zlib/project.yaml b/projects/zlib/project.yaml
index 27b1140..2f94692 100644
--- a/projects/zlib/project.yaml
+++ b/projects/zlib/project.yaml
@@ -1,5 +1,4 @@
 homepage: "http://www.zlib.net/"
-language: c++
 primary_contact: "glennrp@gmail.com"
 auto_ccs:
   - "sebpop@gmail.com"
@@ -7,7 +6,6 @@
 fuzzing_engines:
   - libfuzzer
   - afl
-  - honggfuzz
   - dataflow
 sanitizers:
   - address
@@ -17,4 +15,3 @@
 architectures:
   - x86_64
   - i386
-main_repo: 'https://github.com/madler/zlib.git'
diff --git a/projects/zopfli/Dockerfile b/projects/zopfli/Dockerfile
index 502c451..f4fe985 100644
--- a/projects/zopfli/Dockerfile
+++ b/projects/zopfli/Dockerfile
@@ -15,7 +15,8 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER lode@google.com
 RUN apt-get update && apt-get install -y make autoconf automake libtool
 RUN git clone --depth 1 https://github.com/google/zopfli
 WORKDIR zopfli
-COPY build.sh *.cc $SRC/
+COPY build.sh zopfli_compress_fuzzer.cc $SRC/
diff --git a/projects/zopfli/project.yaml b/projects/zopfli/project.yaml
index 33c9f31..3893aca 100644
--- a/projects/zopfli/project.yaml
+++ b/projects/zopfli/project.yaml
@@ -1,8 +1,6 @@
 homepage: "https://github.com/google/zopfli"
-language: c++
 primary_contact: "lode@google.com"
 sanitizers:
   - address
   - memory
   - undefined
-main_repo: 'https://github.com/google/zopfli'
diff --git a/projects/zopfli/zopfli_deflate_fuzzer.cc b/projects/zopfli/zopfli_deflate_fuzzer.cc
deleted file mode 100644
index 07b50c9..0000000
--- a/projects/zopfli/zopfli_deflate_fuzzer.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2019 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include <string>
-
-#include "deflate.h"
-#include "zopfli.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  ZopfliOptions options;
-  ZopfliInitOptions(&options);
-
-  FuzzedDataProvider stream(data, size);
-
-  // From documentation: valid values for btype are 0, 1, or 2.
-  const int btype = stream.PickValueInArray({0, 1, 2});
-  // The final parameter is an int but it is used as a bool.
-  const int is_final = stream.ConsumeIntegralInRange(0, 1);
-  const std::string input = stream.ConsumeRemainingBytesAsString();
-
-  unsigned char* out = nullptr;
-  size_t outsize = 0;
-  unsigned char bp = 0;  // Apparently must be zero.
-  ZopfliDeflate(&options, btype, is_final,
-                reinterpret_cast<const unsigned char*>(input.data()),
-                input.size(), &bp, &out, &outsize);
-
-  if (out != nullptr) {
-    free(out);
-  }
-
-  return 0;
-}
diff --git a/projects/zstd/Dockerfile b/projects/zstd/Dockerfile
index d8b8c5e..5e41221 100644
--- a/projects/zstd/Dockerfile
+++ b/projects/zstd/Dockerfile
@@ -15,6 +15,7 @@
 ################################################################################
 
 FROM gcr.io/oss-fuzz-base/base-builder
+MAINTAINER nickrterrell@gmail.com
 RUN apt-get update && apt-get install -y make python wget
 # Clone source
 RUN git clone --depth 1 https://github.com/facebook/zstd
diff --git a/projects/zstd/project.yaml b/projects/zstd/project.yaml
index 7e300ad..082d8d0 100644
--- a/projects/zstd/project.yaml
+++ b/projects/zstd/project.yaml
@@ -1,13 +1,12 @@
 homepage: "http://facebook.github.io/zstd/"
-language: c++
 primary_contact: "terrelln@fb.com"
 auto_ccs:
   - "NickRTerrell@gmail.com"
   - "Yann.collet.73@gmail.com"
   - "cyan@fb.com"
   - "felixh@fb.com"
-  - "senhuang96@fb.com"
   - "dpc@fb.com"
+  - "bimbashrestha@fb.com"
   - "mhl@fb.com"
   - "reed@fb.com"
 fuzzing_engines:
@@ -20,4 +19,3 @@
   - dataflow
   - memory
   - undefined
-main_repo: 'https://github.com/facebook/zstd'
diff --git a/projects/zydis/Dockerfile b/projects/zydis/Dockerfile
deleted file mode 100644
index f0b3c58..0000000
--- a/projects/zydis/Dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-FROM gcr.io/oss-fuzz-base/base-builder
-
-ADD https://github.com/zyantific/zydis/raw/master/assets/ZydisFuzz_seed_corpus.zip \
-    $SRC/ZydisFuzz_seed_corpus.zip
-
-COPY build.sh $SRC/
-
-RUN git clone --recursive https://github.com/zyantific/zydis.git
-WORKDIR zydis
diff --git a/projects/zydis/build.sh b/projects/zydis/build.sh
deleted file mode 100755
index b38ce5b..0000000
--- a/projects/zydis/build.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash -eu
-# Copyright 2020 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-################################################################################
-
-mv $SRC/ZydisFuzz_seed_corpus.zip $OUT/ZydisFuzz_seed_corpus.zip
-
-mkdir build && cd build
-
-cmake                                   \
-    -DZYDIS_BUILD_EXAMPLES=OFF          \
-    -DZYDIS_BUILD_TOOLS=OFF             \
-    -DCMAKE_BUILD_TYPE=RelWithDebInfo   \
-    -DCMAKE_C_COMPILER=$CC              \
-    -DCMAKE_CXX_COMPILER=$CXX           \
-    -DCMAKE_C_FLAGS="$CFLAGS"           \
-    -DCMAKE_CXX_FLAGS="$CXXFLAGS"       \
-    ..
-
-make -j8
-
-$CXX                                    \
-    $CXXFLAGS                           \
-    $LIB_FUZZING_ENGINE                 \
-    ../tools/ZydisFuzzIn.c              \
-    -DZYDIS_LIBFUZZER                   \
-    -o $OUT/ZydisFuzz                   \
-    -I .                                \
-    -I ./zycore                         \
-    -I ../include                       \
-    -I ../dependencies/zycore/include   \
-    ./libZydis.a
-
diff --git a/projects/zydis/project.yaml b/projects/zydis/project.yaml
deleted file mode 100644
index 55f9751..0000000
--- a/projects/zydis/project.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-homepage: "https://github.com/zyantific/zydis"
-language: c
-primary_contact: "joel.hoener@gmail.com"
-auto_ccs:
- - "flobernd90@gmail.com"
-sanitizers:
- - address
- - memory
- - undefined
-main_repo: 'https://github.com/zyantific/zydis.git'
