Merge tag '0.6.0' of https://fuchsia.googlesource.com/third_party/rust-mirrors/quiche into quiche_upgrade

quiche 0.6.0

Change-Id: I063884a1a98794eabd42f2631da3b62f116c7f3e
diff --git a/.travis.yml b/.travis.yml
index 15c6d8a..636c574 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -22,11 +22,6 @@
        apt:
          packages:
          - [*linux_deps, gcc-multilib, g++-multilib]
-     before_install:
-      # Install and use the current stable release of Go
-      - gimme --list
-      - eval "$(gimme stable)"
-      - gimme --list
      install:
       - rustup component add clippy
       - rustup target add $TARGET_32
@@ -56,11 +51,6 @@
        apt:
          packages:
          - [*linux_deps]
-     before_install:
-      # Install and use the current stable release of Go
-      - gimme --list
-      - eval "$(gimme stable)"
-      - gimme --list
      install:
       - rustup component add rustfmt
       - cargo install cargo-fuzz
@@ -106,7 +96,7 @@
        TARGET_64=x86_64-pc-windows-msvc
        TARGET_32=i686-pc-windows-msvc
      before_install:
-      - choco install golang nasm
+      - choco install nasm
       # Update $PATH
       - export PATH="$(powershell -Command '("Process", "Machine" | % { [Environment]::GetEnvironmentVariable("PATH", $_) -Split ";" -Replace "\\$", "" } | Select -Unique | % { cygpath $_ }) -Join ":"')"
      install:
@@ -117,26 +107,14 @@
       - RUSTFLAGS="-D warnings" cargo build --verbose --target=$TARGET_32
       - RUSTFLAGS="-D warnings" cargo test --verbose --target=$TARGET_32
    - name: "stable Android"
-     language: android
-     dist: trusty
+     language: rust
+     rust: stable
      env:
        NDK_VER_OLD=r13b
        NDK_VER=r21
-       CMAKE_VER=3.6.4111459
-     android:
-       components:
-        - build-tools-26.0.1
-        # Minimum API level supported
-        - android-21
      install:
-      # Install rust manually
-      - curl https://build.travis-ci.org/files/rustup-init.sh -sSf | sh -s -- -y --default-toolchain stable
-      - export PATH=$HOME/.cargo/bin:$PATH
-      - rustup default stable
       - rustup target add aarch64-linux-android arm-linux-androideabi armv7-linux-androideabi i686-linux-android
-      # Additional Android components
-      - echo y | sdkmanager "cmake;$CMAKE_VER"
-      - export PATH=$ANDROID_HOME/cmake/$CMAKE_VER/bin/:$PATH
+      - cargo install cargo-ndk
      script:
       #
       # Old NDK. Here we use 13b
@@ -148,18 +126,17 @@
       # Setup android toolchain
       - export TOOLCHAIN_DIR=$(pwd)/toolchain
       - mkdir -p $TOOLCHAIN_DIR
-      - tools/setup_android.sh
-      - tools/build_android.sh --verbose --features ndk-old-gcc
+      - tools/android/setup_android.sh
+      - tools/android/build_android.sh --verbose --features ndk-old-gcc
       - rm -fr $TOOLCHAIN_DIR && rm -f .cargo/config
+      - cargo clean
       #
       # NDK 19 or higher. Here we use 21 (long term support)
       #
       - curl -ondk.zip -q $(printf $NDK_URL $NDK_VER)
       - unzip -q ndk.zip -d $HOME
       - export ANDROID_NDK_HOME=$HOME/android-ndk-$NDK_VER
-      - cargo install cargo-ndk
-      - cargo clean
-      - tools/build_android_ndk19.sh --verbose
+      - tools/android/build_android_ndk19.sh --verbose
    - name: "NGINX"
      language: rust
      rust: stable
@@ -169,11 +146,6 @@
        apt:
          packages:
          - [*linux_deps]
-     before_install:
-      # Install and use the current stable release of Go
-      - gimme --list
-      - eval "$(gimme stable)"
-      - gimme --list
      script:
       - curl -O https://nginx.org/download/nginx-$NGINX_VER.tar.gz
       - tar xzf nginx-$NGINX_VER.tar.gz
diff --git a/Cargo.toml b/Cargo.toml
index 63d9b9b..416f466 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "quiche"
-version = "0.4.0"
+version = "0.6.0"
 authors = ["Alessandro Ghedini <alessandro@ghedini.me>"]
 edition = "2018"
 build = "src/build.rs"
@@ -11,24 +11,20 @@
 categories = ["network-programming"]
 license = "BSD-2-Clause"
 include = [
-     "/*.md",
-     "/*.toml",
-     "/CODEOWNERS",
-     "/COPYING",
-     "/benches",
-     "/deps/boringssl/**/*.[chS]",
-     "/deps/boringssl/**/*.cc",
-     "/deps/boringssl/**/*.errordata",
-     "/deps/boringssl/**/*.go",
-     "/deps/boringssl/**/*.pl",
-     "/deps/boringssl/**/CMakeLists.txt",
-     "/deps/boringssl/*.md",
-     "/deps/boringssl/LICENSE",
-     "/deps/boringssl/sources.cmake",
-     "/examples",
-     "/include",
-     "/quiche.svg",
-     "/src",
+    "/*.md",
+    "/*.toml",
+    "/CODEOWNERS",
+    "/COPYING",
+    "/benches",
+    "/deps/boringssl/**/*.[chS]",
+    "/deps/boringssl/src/**/*.cc",
+    "/deps/boringssl/**/CMakeLists.txt",
+    "/deps/boringssl/**/sources.cmake",
+    "/deps/boringssl/LICENSE",
+    "/examples",
+    "/include",
+    "/quiche.svg",
+    "/src",
 ]
 
 [features]
@@ -47,7 +43,7 @@
 ndk-old-gcc = []
 
 [package.metadata.docs.rs]
-default-features = false
+no-default-features = true
 
 [build-dependencies]
 cmake = "0.1"
diff --git a/Dockerfile b/Dockerfile
index a874a41..cc7520c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM rust:1.39 as build
+FROM rust:1.44.1 as build
 
 WORKDIR /build
 
@@ -7,7 +7,7 @@
 COPY tools/ ./tools/
 COPY Cargo.toml .
 
-RUN apt-get update && apt-get install -y cmake golang-go && \
+RUN apt-get update && apt-get install -y cmake && \
     rm -rf /var/lib/apt/lists/*
 
 RUN cargo build --manifest-path tools/apps/Cargo.toml
@@ -37,9 +37,6 @@
 
 WORKDIR /quiche
 
-# copy binaries and sample certificate for server
-COPY examples/cert.crt examples/cert.key examples/
-
 COPY --from=build \
      /build/tools/apps/target/debug/quiche-client \
      /build/tools/apps/target/debug/quiche-server \
diff --git a/Makefile b/Makefile
index c83d3f0..e86c434 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,7 @@
 QNS_REPO  = cloudflare/quiche-qns
 QNS_TAG   = latest
 
-FUZZ_REPO = kestrel.forallsecure.com:5000/ghedo/quiche-libfuzzer
+FUZZ_REPO = mayhem.cloudflare-security.com:5000/protocols/quiche-libfuzzer
 FUZZ_TAG  = latest
 
 docker-build: docker-base docker-qns
diff --git a/README.md b/README.md
index c1f3006..99e2908 100644
--- a/README.md
+++ b/README.md
@@ -15,13 +15,32 @@
 experimentation.
 
 For more information on how quiche came about and some insights into its design
-you can read a [post] on Cloudflare's (where this library is used in production)
-blog that goes into some more detail.
+you can read a [post] on Cloudflare's blog that goes into some more detail.
 
 [quiche]: https://docs.quic.tech/quiche/
 [ietf]: https://quicwg.org/
 [post]: https://blog.cloudflare.com/enjoy-a-slice-of-quic-and-rust/
 
+Who uses quiche?
+----------------
+
+### Cloudflare
+
+quiche powers Cloudflare edge network's [HTTP/3 support][cloudflare-http3].
+
+### curl
+
+quiche can be [integrated into curl][curl-http3] to provide support for HTTP/3.
+
+### NGINX (unofficial)
+
+quiche can be [integrated into NGINX][nginx-http3] using an unofficial patch to
+provide support for HTTP/3.
+
+[cloudflare-http3]: https://blog.cloudflare.com/http3-the-past-present-and-future/
+[curl-http3]: https://github.com/curl/curl/blob/master/docs/HTTP3.md#quiche-version
+[nginx-http3]: https://github.com/cloudflare/quiche/tree/master/extras/nginx
+
 Getting Started
 ---------------
 
@@ -251,11 +270,11 @@
 
 Note that [BoringSSL], which is used to implement QUIC's cryptographic handshake
 based on TLS, needs to be built and linked to quiche. This is done automatically
-when building quiche using cargo, but requires the `cmake`, `go` and `perl`
-commands to be available during the build process. On Windows you also need
-[NASM](https://www.nasm.us/). The 
-[official BoringSSL documentation](https://github.com/google/boringssl/blob/master/BUILDING.md)
-has more details.
+when building quiche using cargo, but requires the `cmake` command to be
+available during the build process. On Windows you also need
+[NASM](https://www.nasm.us/). The [official BoringSSL
+documentation](https://github.com/google/boringssl/blob/master/BUILDING.md) has
+more details.
 
 In alternative you can use your own custom build of BoringSSL by configuring
 the BoringSSL directory with the ``QUICHE_BSSL_PATH`` environment variable:
@@ -310,7 +329,7 @@
 Note that building with NDK version 18 appears to be broken.
 
 [cargo-ndk]: https://docs.rs/crate/cargo-ndk
-[build_android_ndk19.sh]: https://github.com/cloudflare/quiche/blob/master/tools/build_android_ndk19.sh
+[build_android_ndk19.sh]: https://github.com/cloudflare/quiche/blob/master/tools/android/build_android_ndk19.sh
 
 #### NDK version < 18
 
@@ -319,7 +338,7 @@
 To prepare the cross-compiling toolchain, run the following command:
 
 ```bash
- $ tools/setup_android.sh
+ $ tools/android/setup_android.sh
 ```
 
 It will create a standalone toolchain for arm64/arm/x86 architectures under the
@@ -329,7 +348,7 @@
 After it run successfully, run the following script to build libquiche:
 
 ```bash
- $ tools/build_android.sh --features ndk-old-gcc
+ $ tools/android/build_android.sh --features ndk-old-gcc
 ```
 
 It will build binaries for aarch64, armv7 and i686. You can pass parameters to
@@ -337,7 +356,7 @@
 with verbose logs, do the following:
 
 ```bash
- $ tools/build_android.sh --features ndk-old-gcc --release -vv
+ $ tools/android/build_android.sh --features ndk-old-gcc --release -vv
 ```
 
 ### Building for iOS
@@ -354,7 +373,7 @@
 - Install the Rust toolchain for iOS architectures:
 
 ```bash
- $ rustup target add aarch64-apple-ios armv7-apple-ios armv7s-apple-ios x86_64-apple-ios i386-apple-ios
+ $ rustup target add aarch64-apple-ios x86_64-apple-ios
 ```
 
 - Install `cargo-lipo`:
@@ -375,6 +394,8 @@
  $ cargo lipo --release
 ```
 
+iOS build is tested in Xcode 10.1 and Xcode 11.2.
+
 ### Building Docker images
 
 In order to build the Docker images, simply run the following command:
diff --git a/deps/boringssl b/deps/boringssl
index 239634d..597b810 160000
--- a/deps/boringssl
+++ b/deps/boringssl
@@ -1 +1 @@
-Subproject commit 239634da1be4e6c7e06f0fc28a1f5437bd6f5906
+Subproject commit 597b810379e126ae05d32c1d94b1a9464385acd0
diff --git a/examples/client.c b/examples/client.c
index 713e88f..bca9781 100644
--- a/examples/client.c
+++ b/examples/client.c
@@ -240,10 +240,10 @@
     }
 
     quiche_config_set_application_protos(config,
-        (uint8_t *) "\x05hq-27\x08http/0.9", 15);
+        (uint8_t *) "\x05hq-29\x05hq-28\x05hq-27\x08http/0.9", 27);
 
     quiche_config_set_max_idle_timeout(config, 5000);
-    quiche_config_set_max_packet_size(config, MAX_DATAGRAM_SIZE);
+    quiche_config_set_max_udp_payload_size(config, MAX_DATAGRAM_SIZE);
     quiche_config_set_initial_max_data(config, 10000000);
     quiche_config_set_initial_max_stream_data_bidi_local(config, 1000000);
     quiche_config_set_initial_max_stream_data_uni(config, 1000000);
diff --git a/examples/client.rs b/examples/client.rs
index 1e62121..2e427f6 100644
--- a/examples/client.rs
+++ b/examples/client.rs
@@ -87,11 +87,11 @@
     config.verify_peer(false);
 
     config
-        .set_application_protos(b"\x05hq-27\x08http/0.9")
+        .set_application_protos(b"\x05hq-29\x05hq-28\x05hq-27\x08http/0.9")
         .unwrap();
 
     config.set_max_idle_timeout(5000);
-    config.set_max_packet_size(MAX_DATAGRAM_SIZE as u64);
+    config.set_max_udp_payload_size(MAX_DATAGRAM_SIZE as u64);
     config.set_initial_max_data(10_000_000);
     config.set_initial_max_stream_data_bidi_local(1_000_000);
     config.set_initial_max_stream_data_bidi_remote(1_000_000);
diff --git a/examples/http3-client.c b/examples/http3-client.c
index e9132d7..8c75309 100644
--- a/examples/http3-client.c
+++ b/examples/http3-client.c
@@ -255,6 +255,14 @@
                         fprintf(stderr, "failed to close connection\n");
                     }
                     break;
+
+                case QUICHE_H3_EVENT_DATAGRAM:
+                    break;
+                    
+                case QUICHE_H3_EVENT_GOAWAY: {
+                    fprintf(stderr, "got GOAWAY\n");
+                    break;
+                }
             }
 
             quiche_h3_event_free(ev);
@@ -330,7 +338,7 @@
         sizeof(QUICHE_H3_APPLICATION_PROTOCOL) - 1);
 
     quiche_config_set_max_idle_timeout(config, 5000);
-    quiche_config_set_max_packet_size(config, MAX_DATAGRAM_SIZE);
+    quiche_config_set_max_udp_payload_size(config, MAX_DATAGRAM_SIZE);
     quiche_config_set_initial_max_data(config, 10000000);
     quiche_config_set_initial_max_stream_data_bidi_local(config, 1000000);
     quiche_config_set_initial_max_stream_data_bidi_remote(config, 1000000);
diff --git a/examples/http3-client.rs b/examples/http3-client.rs
index 7ea25d5..a93d67e 100644
--- a/examples/http3-client.rs
+++ b/examples/http3-client.rs
@@ -89,7 +89,7 @@
         .unwrap();
 
     config.set_max_idle_timeout(5000);
-    config.set_max_packet_size(MAX_DATAGRAM_SIZE as u64);
+    config.set_max_udp_payload_size(MAX_DATAGRAM_SIZE as u64);
     config.set_initial_max_data(10_000_000);
     config.set_initial_max_stream_data_bidi_local(1_000_000);
     config.set_initial_max_stream_data_bidi_remote(1_000_000);
@@ -258,6 +258,12 @@
                         conn.close(true, 0x00, b"kthxbye").unwrap();
                     },
 
+                    Ok((_flow_id, quiche::h3::Event::Datagram)) => (),
+
+                    Ok((goaway_id, quiche::h3::Event::GoAway)) => {
+                        info!("GOAWAY id={}", goaway_id);
+                    },
+
                     Err(quiche::h3::Error::Done) => {
                         break;
                     },
diff --git a/examples/http3-server.c b/examples/http3-server.c
index adf7b6c..b6b3041 100644
--- a/examples/http3-server.c
+++ b/examples/http3-server.c
@@ -156,25 +156,36 @@
     return true;
 }
 
-static struct conn_io *create_conn(uint8_t *odcid, size_t odcid_len) {
-    struct conn_io *conn_io = calloc(1, sizeof(*conn_io));
-    if (conn_io == NULL) {
-        fprintf(stderr, "failed to allocate connection IO\n");
-        return NULL;
-    }
-
+static uint8_t *gen_cid(uint8_t *cid, size_t cid_len) {
     int rng = open("/dev/urandom", O_RDONLY);
     if (rng < 0) {
         perror("failed to open /dev/urandom");
         return NULL;
     }
 
-    ssize_t rand_len = read(rng, conn_io->cid, LOCAL_CONN_ID_LEN);
+    ssize_t rand_len = read(rng, cid, cid_len);
     if (rand_len < 0) {
         perror("failed to create connection ID");
         return NULL;
     }
 
+    return cid;
+}
+
+static struct conn_io *create_conn(uint8_t *scid, size_t scid_len,
+                                   uint8_t *odcid, size_t odcid_len) {
+    struct conn_io *conn_io = calloc(1, sizeof(*conn_io));
+    if (conn_io == NULL) {
+        fprintf(stderr, "failed to allocate connection IO\n");
+        return NULL;
+    }
+
+    if (scid_len != LOCAL_CONN_ID_LEN) {
+        fprintf(stderr, "failed, scid length too short\n");
+    }
+
+    memcpy(conn_io->cid, scid, LOCAL_CONN_ID_LEN);
+
     quiche_conn *conn = quiche_accept(conn_io->cid, LOCAL_CONN_ID_LEN,
                                       odcid, odcid_len, config);
     if (conn == NULL) {
@@ -286,11 +297,17 @@
                 mint_token(dcid, dcid_len, &peer_addr, peer_addr_len,
                            token, &token_len);
 
+                uint8_t new_cid[LOCAL_CONN_ID_LEN];
+
+                if (gen_cid(new_cid, LOCAL_CONN_ID_LEN) == NULL) {
+                    continue;
+                }
+
                 ssize_t written = quiche_retry(scid, scid_len,
                                                dcid, dcid_len,
-                                               dcid, dcid_len,
+                                               new_cid, LOCAL_CONN_ID_LEN,
                                                token, token_len,
-                                               out, sizeof(out));
+                                               version, out, sizeof(out));
 
                 if (written < 0) {
                     fprintf(stderr, "failed to create retry packet: %zd\n",
@@ -317,7 +334,7 @@
                 continue;
             }
 
-            conn_io = create_conn(odcid, odcid_len);
+            conn_io = create_conn(dcid, dcid_len, odcid, odcid_len);
             if (conn_io == NULL) {
                 continue;
             }
@@ -407,6 +424,14 @@
 
                     case QUICHE_H3_EVENT_FINISHED:
                         break;
+
+                    case QUICHE_H3_EVENT_DATAGRAM:
+                        break;
+
+                    case QUICHE_H3_EVENT_GOAWAY: {
+                        fprintf(stderr, "got GOAWAY\n");
+                        break;
+                    }
                 }
 
                 quiche_h3_event_free(ev);
@@ -507,7 +532,7 @@
         sizeof(QUICHE_H3_APPLICATION_PROTOCOL) - 1);
 
     quiche_config_set_max_idle_timeout(config, 5000);
-    quiche_config_set_max_packet_size(config, MAX_DATAGRAM_SIZE);
+    quiche_config_set_max_udp_payload_size(config, MAX_DATAGRAM_SIZE);
     quiche_config_set_initial_max_data(config, 10000000);
     quiche_config_set_initial_max_stream_data_bidi_local(config, 1000000);
     quiche_config_set_initial_max_stream_data_bidi_remote(config, 1000000);
diff --git a/examples/http3-server.rs b/examples/http3-server.rs
index a785bfb..4c41cbb 100644
--- a/examples/http3-server.rs
+++ b/examples/http3-server.rs
@@ -33,6 +33,8 @@
 
 use ring::rand::*;
 
+use quiche::h3::NameValue;
+
 const MAX_DATAGRAM_SIZE: usize = 1350;
 
 struct PartialResponse {
@@ -98,7 +100,7 @@
         .unwrap();
 
     config.set_max_idle_timeout(5000);
-    config.set_max_packet_size(MAX_DATAGRAM_SIZE as u64);
+    config.set_max_udp_payload_size(MAX_DATAGRAM_SIZE as u64);
     config.set_initial_max_data(10_000_000);
     config.set_initial_max_stream_data_bidi_local(1_000_000);
     config.set_initial_max_stream_data_bidi_remote(1_000_000);
@@ -219,9 +221,15 @@
                     let new_token = mint_token(&hdr, &src);
 
                     let len = quiche::retry(
-                        &hdr.scid, &hdr.dcid, &scid, &new_token, &mut out,
+                        &hdr.scid,
+                        &hdr.dcid,
+                        &scid,
+                        &new_token,
+                        hdr.version,
+                        &mut out,
                     )
                     .unwrap();
+
                     let out = &out[..len];
 
                     if let Err(e) = socket.send_to(out, &src) {
@@ -349,6 +357,10 @@
 
                         Ok((_stream_id, quiche::h3::Event::Finished)) => (),
 
+                        Ok((_flow_id, quiche::h3::Event::Datagram)) => (),
+
+                        Ok((_goaway_id, quiche::h3::Event::GoAway)) => (),
+
                         Err(quiche::h3::Error::Done) => {
                             break;
                         },
diff --git a/examples/qpack-decode.rs b/examples/qpack-decode.rs
index 5e5c758..8468a85 100644
--- a/examples/qpack-decode.rs
+++ b/examples/qpack-decode.rs
@@ -31,6 +31,8 @@
 
 use std::io::prelude::*;
 
+use quiche::h3::NameValue;
+
 use quiche::h3::qpack;
 
 fn main() {
diff --git a/examples/server.c b/examples/server.c
index 0e1e09a..025e1d5 100644
--- a/examples/server.c
+++ b/examples/server.c
@@ -153,25 +153,32 @@
     return true;
 }
 
-static struct conn_io *create_conn(uint8_t *odcid, size_t odcid_len) {
-    struct conn_io *conn_io = malloc(sizeof(*conn_io));
-    if (conn_io == NULL) {
-        fprintf(stderr, "failed to allocate connection IO\n");
-        return NULL;
-    }
-
+static uint8_t *gen_cid(uint8_t *cid, size_t cid_len) {
     int rng = open("/dev/urandom", O_RDONLY);
     if (rng < 0) {
         perror("failed to open /dev/urandom");
         return NULL;
     }
 
-    ssize_t rand_len = read(rng, conn_io->cid, LOCAL_CONN_ID_LEN);
+    ssize_t rand_len = read(rng, cid, cid_len);
     if (rand_len < 0) {
         perror("failed to create connection ID");
         return NULL;
     }
 
+    return cid;
+}
+
+static struct conn_io *create_conn(uint8_t *dcid, size_t dcid_len, uint8_t *odcid,
+                                   size_t odcid_len) {
+    struct conn_io *conn_io = malloc(sizeof(*conn_io));
+    if (conn_io == NULL) {
+        fprintf(stderr, "failed to allocate connection IO\n");
+        return NULL;
+    }
+
+    memcpy(conn_io->cid, dcid, LOCAL_CONN_ID_LEN);
+
     quiche_conn *conn = quiche_accept(conn_io->cid, LOCAL_CONN_ID_LEN,
                                       odcid, odcid_len, config);
     if (conn == NULL) {
@@ -274,11 +281,17 @@
                 mint_token(dcid, dcid_len, &peer_addr, peer_addr_len,
                            token, &token_len);
 
+                uint8_t new_cid[LOCAL_CONN_ID_LEN];
+
+                if (gen_cid(new_cid, LOCAL_CONN_ID_LEN) == NULL) {
+                    continue;
+                }
+
                 ssize_t written = quiche_retry(scid, scid_len,
                                                dcid, dcid_len,
-                                               dcid, dcid_len,
+                                               new_cid, LOCAL_CONN_ID_LEN,
                                                token, token_len,
-                                               out, sizeof(out));
+                                               version, out, sizeof(out));
 
                 if (written < 0) {
                     fprintf(stderr, "failed to create retry packet: %zd\n",
@@ -305,7 +318,7 @@
                 continue;
             }
 
-            conn_io = create_conn(odcid, odcid_len);
+            conn_io = create_conn(dcid, dcid_len, odcid, odcid_len);
             if (conn_io == NULL) {
                 continue;
             }
@@ -438,10 +451,10 @@
     quiche_config_load_priv_key_from_pem_file(config, "./cert.key");
 
     quiche_config_set_application_protos(config,
-        (uint8_t *) "\x05hq-27\x08http/0.9", 15);
+        (uint8_t *) "\x05hq-29\x05hq-28\x05hq-27\x08http/0.9", 27);
 
     quiche_config_set_max_idle_timeout(config, 5000);
-    quiche_config_set_max_packet_size(config, MAX_DATAGRAM_SIZE);
+    quiche_config_set_max_udp_payload_size(config, MAX_DATAGRAM_SIZE);
     quiche_config_set_initial_max_data(config, 10000000);
     quiche_config_set_initial_max_stream_data_bidi_local(config, 1000000);
     quiche_config_set_initial_max_stream_data_bidi_remote(config, 1000000);
diff --git a/examples/server.rs b/examples/server.rs
index f2fa39d..8213d95 100644
--- a/examples/server.rs
+++ b/examples/server.rs
@@ -90,11 +90,11 @@
         .unwrap();
 
     config
-        .set_application_protos(b"\x05hq-27\x08http/0.9")
+        .set_application_protos(b"\x05hq-29\x05hq-28\x05hq-27\x08http/0.9")
         .unwrap();
 
     config.set_max_idle_timeout(5000);
-    config.set_max_packet_size(MAX_DATAGRAM_SIZE as u64);
+    config.set_max_udp_payload_size(MAX_DATAGRAM_SIZE as u64);
     config.set_initial_max_data(10_000_000);
     config.set_initial_max_stream_data_bidi_local(1_000_000);
     config.set_initial_max_stream_data_bidi_remote(1_000_000);
@@ -213,7 +213,12 @@
                     let new_token = mint_token(&hdr, &src);
 
                     let len = quiche::retry(
-                        &hdr.scid, &hdr.dcid, &scid, &new_token, &mut out,
+                        &hdr.scid,
+                        &hdr.dcid,
+                        &scid,
+                        &new_token,
+                        hdr.version,
+                        &mut out,
                     )
                     .unwrap();
 
diff --git a/extras/nginx/README.md b/extras/nginx/README.md
index 6836c98..505c028 100644
--- a/extras/nginx/README.md
+++ b/extras/nginx/README.md
@@ -92,7 +92,7 @@
         proxy_request_buffering off;
 
         # Add Alt-Svc header to negotiate HTTP/3.
-        add_header alt-svc 'h3-27=":443"; ma=86400';
+        add_header alt-svc 'h3-29=":443"; ma=86400';
     }
 }
 ```
diff --git a/extras/nginx/nginx-1.16.patch b/extras/nginx/nginx-1.16.patch
index a93bbe0..62b54fc 100644
--- a/extras/nginx/nginx-1.16.patch
+++ b/extras/nginx/nginx-1.16.patch
@@ -1,6 +1,6 @@
-From efb37c5c76ab31451590374138de8bfbc6429940 Mon Sep 17 00:00:00 2001
+From d736db24826262e2c9887c610818532d3b6e19c1 Mon Sep 17 00:00:00 2001
 From: Alessandro Ghedini <alessandro@cloudflare.com>
-Date: Thu, 10 Oct 2019 17:06:08 +0100
+Date: Thu, 22 Oct 2020 12:28:02 +0100
 Subject: [PATCH] Initial QUIC and HTTP/3 implementation using quiche
 
 ---
@@ -14,7 +14,7 @@
  auto/options                            |    9 +
  src/core/ngx_connection.h               |    7 +
  src/core/ngx_core.h                     |    3 +
- src/event/ngx_event_quic.c              |  589 ++++++
+ src/event/ngx_event_quic.c              |  575 ++++++
  src/event/ngx_event_quic.h              |   49 +
  src/event/ngx_event_udp.c               |    8 +
  src/http/modules/ngx_http_ssl_module.c  |   13 +-
@@ -26,12 +26,12 @@
  src/http/ngx_http_request.h             |    3 +
  src/http/ngx_http_request_body.c        |   29 +
  src/http/ngx_http_upstream.c            |   13 +
- src/http/v3/ngx_http_v3.c               | 2206 +++++++++++++++++++++++
+ src/http/v3/ngx_http_v3.c               | 2234 +++++++++++++++++++++++
  src/http/v3/ngx_http_v3.h               |   77 +
  src/http/v3/ngx_http_v3_filter_module.c |   68 +
  src/http/v3/ngx_http_v3_module.c        |  286 +++
  src/http/v3/ngx_http_v3_module.h        |   34 +
- 27 files changed, 3686 insertions(+), 11 deletions(-)
+ 27 files changed, 3700 insertions(+), 11 deletions(-)
  create mode 100644 auto/lib/quiche/conf
  create mode 100644 auto/lib/quiche/make
  create mode 100644 src/event/ngx_event_quic.c
@@ -73,7 +73,7 @@
      . auto/lib/zlib/make
  fi
 diff --git a/auto/lib/openssl/make b/auto/lib/openssl/make
-index 126a23875..3af2ae557 100644
+index 126a23875..139008207 100644
 --- a/auto/lib/openssl/make
 +++ b/auto/lib/openssl/make
 @@ -49,11 +49,13 @@ END
@@ -90,8 +90,8 @@
 +	&& cmake -DCMAKE_C_FLAGS="$OPENSSL_OPT" -DCMAKE_CXX_FLAGS="$OPENSSL_OPT" .. \\
 +	&& \$(MAKE) VERBOSE=1 \\
 +	&& cd .. \\
-+	&& cp -r include/openssl/*.h .openssl/include/openssl \\
-+	&& cp build/ssl/libssl.a build/crypto/libcrypto.a .openssl/lib
++	&& cp -r src/include/openssl/*.h .openssl/include/openssl \\
++	&& cp build/libssl.a build/libcrypto.a .openssl/lib
  
  END
  
@@ -126,7 +126,7 @@
 +fi
 diff --git a/auto/lib/quiche/make b/auto/lib/quiche/make
 new file mode 100644
-index 000000000..bd1bec8b7
+index 000000000..1e8f8a9c0
 --- /dev/null
 +++ b/auto/lib/quiche/make
 @@ -0,0 +1,22 @@
@@ -149,7 +149,7 @@
 +$QUICHE/target/$QUICHE_BUILD_TARGET/libquiche.a: \\
 +		$OPENSSL/.openssl/include/openssl/ssl.h \\
 +		$NGX_MAKEFILE
-+	cd $QUICHE && cargo build $QUICHE_BUILD_FLAGS
++	cd $QUICHE && cargo build $QUICHE_BUILD_FLAGS $QUICHE_OPT
 +
 +END
 diff --git a/auto/make b/auto/make
@@ -338,10 +338,10 @@
  #include <ngx_module.h>
 diff --git a/src/event/ngx_event_quic.c b/src/event/ngx_event_quic.c
 new file mode 100644
-index 000000000..9f8b2cb98
+index 000000000..d9fc0b57a
 --- /dev/null
 +++ b/src/event/ngx_event_quic.c
-@@ -0,0 +1,589 @@
+@@ -0,0 +1,575 @@
 +
 +/*
 + * Copyright (C) Cloudflare, Inc.
@@ -556,10 +556,6 @@
 +        return NGX_ERROR;
 +    }
 +
-+    if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
-+        return NGX_ERROR;
-+    }
-+
 +    c->read->handler = ngx_quic_read_handler;
 +    c->write->handler = ngx_quic_write_handler;
 +
@@ -632,11 +628,6 @@
 +
 +    ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "quic done reading");
 +
-+    if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
-+        ngx_quic_finalize_connection(c, NGX_QUIC_INTERNAL_ERROR);
-+        return;
-+    }
-+
 +    ngx_post_event(c->write, &ngx_posted_events);
 +}
 +
@@ -645,7 +636,7 @@
 +ngx_quic_write_handler(ngx_event_t *wev)
 +{
 +    ngx_connection_t   *c;
-+    ngx_msec_t          expiry;
++    uint64_t            expiry;
 +    static uint8_t      out[MAX_DATAGRAM_SIZE];
 +
 +    c = wev->data;
@@ -693,11 +684,6 @@
 +        }
 +    }
 +
-+    if (ngx_handle_write_event(c->write, 0) != NGX_OK) {
-+        ngx_quic_finalize_connection(c, NGX_QUIC_INTERNAL_ERROR);
-+        return;
-+    }
-+
 +    expiry = quiche_conn_timeout_as_millis(c->quic->conn);
 +    expiry = ngx_max(expiry, 1);
 +
@@ -709,7 +695,7 @@
 +     * should be unset (this would be equvalent to returning Option::None in
 +     * Rust). To avoid overflow we need to explicitly check for this value. */
 +    if (expiry != UINT64_MAX) {
-+        ngx_add_timer(wev, expiry);
++        ngx_add_timer(wev, (ngx_msec_t)expiry);
 +    }
 +}
 +
@@ -1570,10 +1556,10 @@
      if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) {
 diff --git a/src/http/v3/ngx_http_v3.c b/src/http/v3/ngx_http_v3.c
 new file mode 100644
-index 000000000..7e44e2f07
+index 000000000..b14af1570
 --- /dev/null
 +++ b/src/http/v3/ngx_http_v3.c
-@@ -0,0 +1,2206 @@
+@@ -0,0 +1,2234 @@
 +
 +/*
 + * Copyright (C) Cloudflare, Inc.
@@ -2033,6 +2019,12 @@
 +
 +                break;
 +            }
++
++            case QUICHE_H3_EVENT_DATAGRAM:
++                break;
++
++            case QUICHE_H3_EVENT_GOAWAY:
++                break;
 +        }
 +
 +        quiche_h3_event_free(ev);
@@ -2454,7 +2446,10 @@
 +static ngx_int_t
 +ngx_http_v3_parse_scheme(ngx_http_request_t *r, ngx_str_t *value)
 +{
-+    if (r->schema_start) {
++    u_char      c, ch;
++    ngx_uint_t  i;
++
++    if (r->schema.len) {
 +        ngx_log_error(NGX_LOG_INFO, r->connection->log, 0,
 +                      "client sent duplicate :scheme header");
 +
@@ -2468,8 +2463,27 @@
 +        return NGX_DECLINED;
 +    }
 +
-+    r->schema_start = value->data;
-+    r->schema_end = value->data + value->len;
++    for (i = 0; i < value->len; i++) {
++        ch = value->data[i];
++
++        c = (u_char) (ch | 0x20);
++        if (c >= 'a' && c <= 'z') {
++            continue;
++        }
++
++        if (((ch >= '0' && ch <= '9') || ch == '+' || ch == '-' || ch == '.')
++            && i > 0)
++        {
++            continue;
++        }
++
++        ngx_log_error(NGX_LOG_INFO, r->connection->log, 0,
++                      "client sent invalid :scheme header: \"%V\"", value);
++
++        return NGX_DECLINED;
++    }
++
++    r->schema = *value;
 +
 +    return NGX_OK;
 +}
@@ -2532,14 +2546,14 @@
 +    static const u_char ending[] = " HTTP/3";
 +
 +    if (r->method_name.len == 0
-+        || r->schema_start == NULL
++        || r->schema.len == 0
 +        || r->unparsed_uri.len == 0)
 +    {
 +        if (r->method_name.len == 0) {
 +            ngx_log_error(NGX_LOG_INFO, r->connection->log, 0,
 +                          "client sent no :method header");
 +
-+        } else if (r->schema_start == NULL) {
++        } else if (r->schema.len == 0) {
 +            ngx_log_error(NGX_LOG_INFO, r->connection->log, 0,
 +                          "client sent no :scheme header");
 +
@@ -4270,5 +4284,5 @@
 +
 +#endif /* _NGX_HTTP_V3_MODULE_H_INCLUDED_ */
 -- 
-2.26.2
+2.28.0
 
diff --git a/fuzz/corpus/packet_recv_client/0103506a633d5ef2418f39c0e78430e7dbd17c73 b/fuzz/corpus/packet_recv_client/0103506a633d5ef2418f39c0e78430e7dbd17c73
new file mode 100644
index 0000000..e7d5564
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/0103506a633d5ef2418f39c0e78430e7dbd17c73
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/019391ffb154f7f9a859128a3e8c511788b450ba b/fuzz/corpus/packet_recv_client/019391ffb154f7f9a859128a3e8c511788b450ba
deleted file mode 100644
index 437fcd7..0000000
--- a/fuzz/corpus/packet_recv_client/019391ffb154f7f9a859128a3e8c511788b450ba
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/023d2c4b0176284b82cf49c0e5aeaa17ae700e16 b/fuzz/corpus/packet_recv_client/023d2c4b0176284b82cf49c0e5aeaa17ae700e16
new file mode 100644
index 0000000..92d53cc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/023d2c4b0176284b82cf49c0e5aeaa17ae700e16
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/025d3f7ab954dbcf5e011b47242379855a40e803 b/fuzz/corpus/packet_recv_client/025d3f7ab954dbcf5e011b47242379855a40e803
new file mode 100644
index 0000000..158f22c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/025d3f7ab954dbcf5e011b47242379855a40e803
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/02a4c21b13a91a1d3736dfeef5743057f160e303 b/fuzz/corpus/packet_recv_client/02a4c21b13a91a1d3736dfeef5743057f160e303
new file mode 100644
index 0000000..dafd82a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/02a4c21b13a91a1d3736dfeef5743057f160e303
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/03034badc3765c26fc555091e4399a09ca2af920 b/fuzz/corpus/packet_recv_client/03034badc3765c26fc555091e4399a09ca2af920
new file mode 100644
index 0000000..e80c53d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/03034badc3765c26fc555091e4399a09ca2af920
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/03334a4d754afde9b6f8f4b5549f2b0124f3dfeb b/fuzz/corpus/packet_recv_client/03334a4d754afde9b6f8f4b5549f2b0124f3dfeb
deleted file mode 100644
index 0283953..0000000
--- a/fuzz/corpus/packet_recv_client/03334a4d754afde9b6f8f4b5549f2b0124f3dfeb
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/03c2aca44f547ff127388f10094f3eb3b093086c b/fuzz/corpus/packet_recv_client/03c2aca44f547ff127388f10094f3eb3b093086c
new file mode 100644
index 0000000..93e0ddd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/03c2aca44f547ff127388f10094f3eb3b093086c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/03fa9de1646b973a0575f4875f099fe237fea49e b/fuzz/corpus/packet_recv_client/03fa9de1646b973a0575f4875f099fe237fea49e
new file mode 100644
index 0000000..dff071c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/03fa9de1646b973a0575f4875f099fe237fea49e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/04251394601878d6d4d59f24e8b9c3476f280143 b/fuzz/corpus/packet_recv_client/04251394601878d6d4d59f24e8b9c3476f280143
new file mode 100644
index 0000000..57e3dbe
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/04251394601878d6d4d59f24e8b9c3476f280143
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/04daa81a0a9cfea18898d9f1d83d547bc94b5809 b/fuzz/corpus/packet_recv_client/04daa81a0a9cfea18898d9f1d83d547bc94b5809
new file mode 100644
index 0000000..18e53b2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/04daa81a0a9cfea18898d9f1d83d547bc94b5809
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/05bba4194a3d7dced020d97ebebb8121cfbc41be b/fuzz/corpus/packet_recv_client/05bba4194a3d7dced020d97ebebb8121cfbc41be
new file mode 100644
index 0000000..75a1b08
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/05bba4194a3d7dced020d97ebebb8121cfbc41be
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/06d23447fdfe01a3978f07fa29d4391592bdd0a4 b/fuzz/corpus/packet_recv_client/06d23447fdfe01a3978f07fa29d4391592bdd0a4
new file mode 100644
index 0000000..b741ee6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/06d23447fdfe01a3978f07fa29d4391592bdd0a4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/070f950e469a03d1580090a7577de0dd071065d1 b/fuzz/corpus/packet_recv_client/070f950e469a03d1580090a7577de0dd071065d1
new file mode 100644
index 0000000..732fa4b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/070f950e469a03d1580090a7577de0dd071065d1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/07d07581ce26c5ba9bdb1f4e6fa2ec9a83348e91 b/fuzz/corpus/packet_recv_client/07d07581ce26c5ba9bdb1f4e6fa2ec9a83348e91
new file mode 100644
index 0000000..5b44dfe
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/07d07581ce26c5ba9bdb1f4e6fa2ec9a83348e91
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/084bffc9de32faaf9393b182302147823e9563de b/fuzz/corpus/packet_recv_client/084bffc9de32faaf9393b182302147823e9563de
deleted file mode 100644
index 7a9669e..0000000
--- a/fuzz/corpus/packet_recv_client/084bffc9de32faaf9393b182302147823e9563de
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/088681fea552eee761a109c6cbae6910250ff41f b/fuzz/corpus/packet_recv_client/088681fea552eee761a109c6cbae6910250ff41f
new file mode 100644
index 0000000..b738bab
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/088681fea552eee761a109c6cbae6910250ff41f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/089440e967b4ca7e9af7e05a0492468618550ae8 b/fuzz/corpus/packet_recv_client/089440e967b4ca7e9af7e05a0492468618550ae8
new file mode 100644
index 0000000..19a27f1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/089440e967b4ca7e9af7e05a0492468618550ae8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/0a98edfb1ec7b41cf5fed7bc49cf02b50270de29 b/fuzz/corpus/packet_recv_client/0a98edfb1ec7b41cf5fed7bc49cf02b50270de29
new file mode 100644
index 0000000..30b7345
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/0a98edfb1ec7b41cf5fed7bc49cf02b50270de29
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/0b21ca139fbcf08de750784ba7fab25971ec3279 b/fuzz/corpus/packet_recv_client/0b21ca139fbcf08de750784ba7fab25971ec3279
new file mode 100644
index 0000000..295bb7e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/0b21ca139fbcf08de750784ba7fab25971ec3279
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/0b36cd5e5b2047e7e75b89432b5753732dff44c3 b/fuzz/corpus/packet_recv_client/0b36cd5e5b2047e7e75b89432b5753732dff44c3
new file mode 100644
index 0000000..737ffa2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/0b36cd5e5b2047e7e75b89432b5753732dff44c3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/0c89b5dd36d98c6b91d983e8ace951a54fd97bc4 b/fuzz/corpus/packet_recv_client/0c89b5dd36d98c6b91d983e8ace951a54fd97bc4
new file mode 100644
index 0000000..097f1c9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/0c89b5dd36d98c6b91d983e8ace951a54fd97bc4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/0d5f9847fd7f879669302c73324e1277f94dcd17 b/fuzz/corpus/packet_recv_client/0d5f9847fd7f879669302c73324e1277f94dcd17
new file mode 100644
index 0000000..264bc27
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/0d5f9847fd7f879669302c73324e1277f94dcd17
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/0da47d378948322b9cfc8a6c1479c856b55e1f81 b/fuzz/corpus/packet_recv_client/0da47d378948322b9cfc8a6c1479c856b55e1f81
new file mode 100644
index 0000000..dc6ff93
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/0da47d378948322b9cfc8a6c1479c856b55e1f81
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/0e202da755c8306830a36dbfebcfc86693c93d5d b/fuzz/corpus/packet_recv_client/0e202da755c8306830a36dbfebcfc86693c93d5d
new file mode 100644
index 0000000..a7ada2e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/0e202da755c8306830a36dbfebcfc86693c93d5d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/0f1209d7b2f0f91fdac5fdb0fa6087bcb90ccdee b/fuzz/corpus/packet_recv_client/0f1209d7b2f0f91fdac5fdb0fa6087bcb90ccdee
new file mode 100644
index 0000000..604ebff
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/0f1209d7b2f0f91fdac5fdb0fa6087bcb90ccdee
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/10948b00564e725e4834e3f2f766e4239b3be22b b/fuzz/corpus/packet_recv_client/10948b00564e725e4834e3f2f766e4239b3be22b
new file mode 100644
index 0000000..857d657
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/10948b00564e725e4834e3f2f766e4239b3be22b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/10e531b3654e4e00ca63d6f9661aec31bbdd13d1 b/fuzz/corpus/packet_recv_client/10e531b3654e4e00ca63d6f9661aec31bbdd13d1
new file mode 100644
index 0000000..f42a5cc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/10e531b3654e4e00ca63d6f9661aec31bbdd13d1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/11811504be543aaafd56005bc3ae1c80f2c86b34 b/fuzz/corpus/packet_recv_client/11811504be543aaafd56005bc3ae1c80f2c86b34
new file mode 100644
index 0000000..6b86392
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/11811504be543aaafd56005bc3ae1c80f2c86b34
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/11813ec9cd70e42a58b1eceeb270d524b270c5dc b/fuzz/corpus/packet_recv_client/11813ec9cd70e42a58b1eceeb270d524b270c5dc
new file mode 100644
index 0000000..72cbe34
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/11813ec9cd70e42a58b1eceeb270d524b270c5dc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/11973ce418463e9d1831215fdcfcc24856f61b23 b/fuzz/corpus/packet_recv_client/11973ce418463e9d1831215fdcfcc24856f61b23
deleted file mode 100644
index a591e5c..0000000
--- a/fuzz/corpus/packet_recv_client/11973ce418463e9d1831215fdcfcc24856f61b23
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/11d92068ed7bb230bfc2620d039e291c64d2db93 b/fuzz/corpus/packet_recv_client/11d92068ed7bb230bfc2620d039e291c64d2db93
new file mode 100644
index 0000000..498cf23
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/11d92068ed7bb230bfc2620d039e291c64d2db93
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/11e2087da5456cded0daed3e0243afcf2fbad0c0 b/fuzz/corpus/packet_recv_client/11e2087da5456cded0daed3e0243afcf2fbad0c0
new file mode 100644
index 0000000..a0a198a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/11e2087da5456cded0daed3e0243afcf2fbad0c0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1202d2e6c6e79dd3c08f4962ddecf645cecca174 b/fuzz/corpus/packet_recv_client/1202d2e6c6e79dd3c08f4962ddecf645cecca174
new file mode 100644
index 0000000..5448b7f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1202d2e6c6e79dd3c08f4962ddecf645cecca174
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/12b1a38ca8dcee2a31a58274dc0d6a6e466b2036 b/fuzz/corpus/packet_recv_client/12b1a38ca8dcee2a31a58274dc0d6a6e466b2036
new file mode 100644
index 0000000..ebc4874
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/12b1a38ca8dcee2a31a58274dc0d6a6e466b2036
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/12d1bbc118fefb7998425e7b8a1fe096ec8ada2d b/fuzz/corpus/packet_recv_client/12d1bbc118fefb7998425e7b8a1fe096ec8ada2d
new file mode 100644
index 0000000..7ee144b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/12d1bbc118fefb7998425e7b8a1fe096ec8ada2d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/12f28cf238eb8bc4e07174df29de41d6051bf5d4 b/fuzz/corpus/packet_recv_client/12f28cf238eb8bc4e07174df29de41d6051bf5d4
new file mode 100644
index 0000000..ccdd3f2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/12f28cf238eb8bc4e07174df29de41d6051bf5d4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/139d4ceb7b62d5a17a253c4f11c00e4379e826f0 b/fuzz/corpus/packet_recv_client/139d4ceb7b62d5a17a253c4f11c00e4379e826f0
new file mode 100644
index 0000000..f1d316b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/139d4ceb7b62d5a17a253c4f11c00e4379e826f0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/13b0a1b734c9f0d6f1c207300655f98c6a9ca553 b/fuzz/corpus/packet_recv_client/13b0a1b734c9f0d6f1c207300655f98c6a9ca553
new file mode 100644
index 0000000..14ec5f4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/13b0a1b734c9f0d6f1c207300655f98c6a9ca553
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/14e2d4801c173653fb7399f777a9eb46fed82ce7 b/fuzz/corpus/packet_recv_client/14e2d4801c173653fb7399f777a9eb46fed82ce7
new file mode 100644
index 0000000..de3b102
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/14e2d4801c173653fb7399f777a9eb46fed82ce7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/151cde3019d73f77b00deb9413a30372561659b2 b/fuzz/corpus/packet_recv_client/151cde3019d73f77b00deb9413a30372561659b2
new file mode 100644
index 0000000..fc709f5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/151cde3019d73f77b00deb9413a30372561659b2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/15d16880869fd032111bf8bb046d7cdad2d4a3f6 b/fuzz/corpus/packet_recv_client/15d16880869fd032111bf8bb046d7cdad2d4a3f6
new file mode 100644
index 0000000..04bfc2a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/15d16880869fd032111bf8bb046d7cdad2d4a3f6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/15d229517b4c7a676488972fd62a4c48d6dea0ac b/fuzz/corpus/packet_recv_client/15d229517b4c7a676488972fd62a4c48d6dea0ac
new file mode 100644
index 0000000..e8f3f65
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/15d229517b4c7a676488972fd62a4c48d6dea0ac
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/160fba41dccce7b6ee0a2550418c89c94565fa92 b/fuzz/corpus/packet_recv_client/160fba41dccce7b6ee0a2550418c89c94565fa92
new file mode 100644
index 0000000..0f18a6b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/160fba41dccce7b6ee0a2550418c89c94565fa92
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/16693b9004fdb94ede242026e79f94792b1257c1 b/fuzz/corpus/packet_recv_client/16693b9004fdb94ede242026e79f94792b1257c1
new file mode 100644
index 0000000..78c0b3d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/16693b9004fdb94ede242026e79f94792b1257c1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/175f571547ff814f04950f7a97e0ed3c84d9b65a b/fuzz/corpus/packet_recv_client/175f571547ff814f04950f7a97e0ed3c84d9b65a
new file mode 100644
index 0000000..b34382c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/175f571547ff814f04950f7a97e0ed3c84d9b65a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1770537d802b784fd406e72d30fda2703c02e000 b/fuzz/corpus/packet_recv_client/1770537d802b784fd406e72d30fda2703c02e000
new file mode 100644
index 0000000..aa0da13
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1770537d802b784fd406e72d30fda2703c02e000
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/178d0fe752fc6a3298a164f3c67e8dab3dfaf609 b/fuzz/corpus/packet_recv_client/178d0fe752fc6a3298a164f3c67e8dab3dfaf609
new file mode 100644
index 0000000..b8177cc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/178d0fe752fc6a3298a164f3c67e8dab3dfaf609
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/184dc8c3195f4475f019e158ff34e953e883fda7 b/fuzz/corpus/packet_recv_client/184dc8c3195f4475f019e158ff34e953e883fda7
new file mode 100644
index 0000000..aafd846
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/184dc8c3195f4475f019e158ff34e953e883fda7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/19a877fc71eb9cf68c4248e41f6bdc506e151c5e b/fuzz/corpus/packet_recv_client/19a877fc71eb9cf68c4248e41f6bdc506e151c5e
new file mode 100644
index 0000000..30f1a1f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/19a877fc71eb9cf68c4248e41f6bdc506e151c5e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/19d89334f6ca6eff953d132266735c6c9ea5b018 b/fuzz/corpus/packet_recv_client/19d89334f6ca6eff953d132266735c6c9ea5b018
new file mode 100644
index 0000000..27cc993
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/19d89334f6ca6eff953d132266735c6c9ea5b018
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1a4bc80af87e303842228e6a9f2023761478f350 b/fuzz/corpus/packet_recv_client/1a4bc80af87e303842228e6a9f2023761478f350
new file mode 100644
index 0000000..ac727ce
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1a4bc80af87e303842228e6a9f2023761478f350
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1a9f6a552b168cd8748983b76414d9a3f020859a b/fuzz/corpus/packet_recv_client/1a9f6a552b168cd8748983b76414d9a3f020859a
new file mode 100644
index 0000000..a454736
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1a9f6a552b168cd8748983b76414d9a3f020859a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1c06dbf0b4ed00e756728625c9104c86ae698ac6 b/fuzz/corpus/packet_recv_client/1c06dbf0b4ed00e756728625c9104c86ae698ac6
new file mode 100644
index 0000000..f050fae
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1c06dbf0b4ed00e756728625c9104c86ae698ac6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1c176b492126b7e3538f60dbf4704e5c4668966f b/fuzz/corpus/packet_recv_client/1c176b492126b7e3538f60dbf4704e5c4668966f
new file mode 100644
index 0000000..963d50e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1c176b492126b7e3538f60dbf4704e5c4668966f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1cbc96efb4ab5604e96b79592bc9dca1de26d2d8 b/fuzz/corpus/packet_recv_client/1cbc96efb4ab5604e96b79592bc9dca1de26d2d8
new file mode 100644
index 0000000..c2defea
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1cbc96efb4ab5604e96b79592bc9dca1de26d2d8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1d3882f2d96ce077ee5b2657ab0efa3208f30a0b b/fuzz/corpus/packet_recv_client/1d3882f2d96ce077ee5b2657ab0efa3208f30a0b
new file mode 100644
index 0000000..0acd8c6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1d3882f2d96ce077ee5b2657ab0efa3208f30a0b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1d3c380629073f02c4ed151a5e374289b7e78e0c b/fuzz/corpus/packet_recv_client/1d3c380629073f02c4ed151a5e374289b7e78e0c
deleted file mode 100644
index 5f8ff55..0000000
--- a/fuzz/corpus/packet_recv_client/1d3c380629073f02c4ed151a5e374289b7e78e0c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1d5ab013fd3cdf48bac31e2a9c4640c51eec9444 b/fuzz/corpus/packet_recv_client/1d5ab013fd3cdf48bac31e2a9c4640c51eec9444
new file mode 100644
index 0000000..d07a82e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1d5ab013fd3cdf48bac31e2a9c4640c51eec9444
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1d743cdc0d523a18f80127f7ee6b8f920a7263d3 b/fuzz/corpus/packet_recv_client/1d743cdc0d523a18f80127f7ee6b8f920a7263d3
new file mode 100644
index 0000000..bf1926b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1d743cdc0d523a18f80127f7ee6b8f920a7263d3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1df92687535b1c1e07300ed8765826813e92272e b/fuzz/corpus/packet_recv_client/1df92687535b1c1e07300ed8765826813e92272e
new file mode 100644
index 0000000..e57a5a0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1df92687535b1c1e07300ed8765826813e92272e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1e08a722f2a2ef1c2e2b7a89a886e57ce56ed995 b/fuzz/corpus/packet_recv_client/1e08a722f2a2ef1c2e2b7a89a886e57ce56ed995
new file mode 100644
index 0000000..39a4f48
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1e08a722f2a2ef1c2e2b7a89a886e57ce56ed995
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1ee86d13e579fb3af89a956b89f8a9e9b52b7285 b/fuzz/corpus/packet_recv_client/1ee86d13e579fb3af89a956b89f8a9e9b52b7285
new file mode 100644
index 0000000..d1bd942
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1ee86d13e579fb3af89a956b89f8a9e9b52b7285
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1effb002e117fec5e66074cf454fc63335e62d3b b/fuzz/corpus/packet_recv_client/1effb002e117fec5e66074cf454fc63335e62d3b
new file mode 100644
index 0000000..50ddf6c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1effb002e117fec5e66074cf454fc63335e62d3b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1f4eee629126c14cb63e2396b9e34b1787dc7651 b/fuzz/corpus/packet_recv_client/1f4eee629126c14cb63e2396b9e34b1787dc7651
new file mode 100644
index 0000000..c0c0d00
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1f4eee629126c14cb63e2396b9e34b1787dc7651
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1f803e4fe3880152c32afbb39578bd1c13d2d668 b/fuzz/corpus/packet_recv_client/1f803e4fe3880152c32afbb39578bd1c13d2d668
new file mode 100644
index 0000000..ae89959
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1f803e4fe3880152c32afbb39578bd1c13d2d668
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/1fcef644cefa2634f4bfc19e67f7fd6cbea1de49 b/fuzz/corpus/packet_recv_client/1fcef644cefa2634f4bfc19e67f7fd6cbea1de49
new file mode 100644
index 0000000..de73062
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/1fcef644cefa2634f4bfc19e67f7fd6cbea1de49
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/20cc48a8aad703880b0c1d4277140cf5e1ab18e8 b/fuzz/corpus/packet_recv_client/20cc48a8aad703880b0c1d4277140cf5e1ab18e8
new file mode 100644
index 0000000..abd6106
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/20cc48a8aad703880b0c1d4277140cf5e1ab18e8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/220c2a6e732a2b5efd5a1bfbdf72ad2eceb1ef56 b/fuzz/corpus/packet_recv_client/220c2a6e732a2b5efd5a1bfbdf72ad2eceb1ef56
new file mode 100644
index 0000000..0d98701
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/220c2a6e732a2b5efd5a1bfbdf72ad2eceb1ef56
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/22cb7984682bc09bcd5e44b2a02b3b91d2a3a4a9 b/fuzz/corpus/packet_recv_client/22cb7984682bc09bcd5e44b2a02b3b91d2a3a4a9
new file mode 100644
index 0000000..8a8141b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/22cb7984682bc09bcd5e44b2a02b3b91d2a3a4a9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/238d9536e6a52acfc5293e356a79b6b1a9858998 b/fuzz/corpus/packet_recv_client/238d9536e6a52acfc5293e356a79b6b1a9858998
new file mode 100644
index 0000000..d750674
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/238d9536e6a52acfc5293e356a79b6b1a9858998
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/23afdc20eab104723ef35b80baa2069da2f325ec b/fuzz/corpus/packet_recv_client/23afdc20eab104723ef35b80baa2069da2f325ec
new file mode 100644
index 0000000..dc1840c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/23afdc20eab104723ef35b80baa2069da2f325ec
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2430675b9cdce03d60c79f18781b2127838567bf b/fuzz/corpus/packet_recv_client/2430675b9cdce03d60c79f18781b2127838567bf
new file mode 100644
index 0000000..61f7fd1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2430675b9cdce03d60c79f18781b2127838567bf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2454a64a6a04b10749e949e03cebb29b15a0c9b9 b/fuzz/corpus/packet_recv_client/2454a64a6a04b10749e949e03cebb29b15a0c9b9
new file mode 100644
index 0000000..404589d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2454a64a6a04b10749e949e03cebb29b15a0c9b9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/249a037b1aaf9e5ddbc40c324cbafe26efccb8b5 b/fuzz/corpus/packet_recv_client/249a037b1aaf9e5ddbc40c324cbafe26efccb8b5
new file mode 100644
index 0000000..4b360f6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/249a037b1aaf9e5ddbc40c324cbafe26efccb8b5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/24db1234abc5e2b95523a865f4bf178f71cbae48 b/fuzz/corpus/packet_recv_client/24db1234abc5e2b95523a865f4bf178f71cbae48
new file mode 100644
index 0000000..d3c5721
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/24db1234abc5e2b95523a865f4bf178f71cbae48
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/254bb3a6988b02ed7e4d75384505bf47b35c5c74 b/fuzz/corpus/packet_recv_client/254bb3a6988b02ed7e4d75384505bf47b35c5c74
new file mode 100644
index 0000000..6c394c7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/254bb3a6988b02ed7e4d75384505bf47b35c5c74
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2618645e78bd6179af4050faba664682891be816 b/fuzz/corpus/packet_recv_client/2618645e78bd6179af4050faba664682891be816
new file mode 100644
index 0000000..26479b2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2618645e78bd6179af4050faba664682891be816
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/26e0714f742879fe9a491c9cfc770c887fe9e5d9 b/fuzz/corpus/packet_recv_client/26e0714f742879fe9a491c9cfc770c887fe9e5d9
new file mode 100644
index 0000000..33e6561
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/26e0714f742879fe9a491c9cfc770c887fe9e5d9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/26f3092fe10395acbe62397f2dd4bd2cb7b5eb1f b/fuzz/corpus/packet_recv_client/26f3092fe10395acbe62397f2dd4bd2cb7b5eb1f
new file mode 100644
index 0000000..f37b7f7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/26f3092fe10395acbe62397f2dd4bd2cb7b5eb1f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/26f761bb1a86dae49879faacca34be8043072028 b/fuzz/corpus/packet_recv_client/26f761bb1a86dae49879faacca34be8043072028
new file mode 100644
index 0000000..10454a9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/26f761bb1a86dae49879faacca34be8043072028
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/274af0bc150983e1356b4a9bc4308d22df194a5f b/fuzz/corpus/packet_recv_client/274af0bc150983e1356b4a9bc4308d22df194a5f
new file mode 100644
index 0000000..cc3de53
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/274af0bc150983e1356b4a9bc4308d22df194a5f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/278918ec561923de1a9be66772940ba4cbf9f05a b/fuzz/corpus/packet_recv_client/278918ec561923de1a9be66772940ba4cbf9f05a
new file mode 100644
index 0000000..bea812d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/278918ec561923de1a9be66772940ba4cbf9f05a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/278c44c73fa645384094163712be8738ca07ba27 b/fuzz/corpus/packet_recv_client/278c44c73fa645384094163712be8738ca07ba27
new file mode 100644
index 0000000..26875b4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/278c44c73fa645384094163712be8738ca07ba27
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/27dbddda7dfc74e53948efb4387d9710080b301f b/fuzz/corpus/packet_recv_client/27dbddda7dfc74e53948efb4387d9710080b301f
new file mode 100644
index 0000000..03af695
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/27dbddda7dfc74e53948efb4387d9710080b301f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2892b590359f428ad658a951ca335e3c359e4d6e b/fuzz/corpus/packet_recv_client/2892b590359f428ad658a951ca335e3c359e4d6e
new file mode 100644
index 0000000..4f447dd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2892b590359f428ad658a951ca335e3c359e4d6e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/28ddf88d9cfd6307729fe0db8c2b52dafaa0a821 b/fuzz/corpus/packet_recv_client/28ddf88d9cfd6307729fe0db8c2b52dafaa0a821
new file mode 100644
index 0000000..37c14bc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/28ddf88d9cfd6307729fe0db8c2b52dafaa0a821
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/28edda5262cff4047be41cd19a3a9fdb4dcc79bd b/fuzz/corpus/packet_recv_client/28edda5262cff4047be41cd19a3a9fdb4dcc79bd
new file mode 100644
index 0000000..eaabf2a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/28edda5262cff4047be41cd19a3a9fdb4dcc79bd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/293974efbbe2594a74e9ab8822d64147edfb5948 b/fuzz/corpus/packet_recv_client/293974efbbe2594a74e9ab8822d64147edfb5948
new file mode 100644
index 0000000..cd200e9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/293974efbbe2594a74e9ab8822d64147edfb5948
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/29f8f7e728d4c26f9248754a0266f07478a1175a b/fuzz/corpus/packet_recv_client/29f8f7e728d4c26f9248754a0266f07478a1175a
new file mode 100644
index 0000000..83f3935
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/29f8f7e728d4c26f9248754a0266f07478a1175a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2a163a08b534c7fd57b8e309bccdee41f59f3c3d b/fuzz/corpus/packet_recv_client/2a163a08b534c7fd57b8e309bccdee41f59f3c3d
new file mode 100644
index 0000000..cd6edb0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2a163a08b534c7fd57b8e309bccdee41f59f3c3d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2a49031527ab818384d2eaec6935c143d8590fdb b/fuzz/corpus/packet_recv_client/2a49031527ab818384d2eaec6935c143d8590fdb
new file mode 100644
index 0000000..9cf7908
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2a49031527ab818384d2eaec6935c143d8590fdb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2a6a95b35aac30970fc5fd1926f7332309aaba03 b/fuzz/corpus/packet_recv_client/2a6a95b35aac30970fc5fd1926f7332309aaba03
new file mode 100644
index 0000000..58f96b5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2a6a95b35aac30970fc5fd1926f7332309aaba03
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2a87ca1d30903256e661dab5a8764e175b9fa71e b/fuzz/corpus/packet_recv_client/2a87ca1d30903256e661dab5a8764e175b9fa71e
deleted file mode 100644
index da1eaf4..0000000
--- a/fuzz/corpus/packet_recv_client/2a87ca1d30903256e661dab5a8764e175b9fa71e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2afa75e2c013ede33bdcdf128dad3f15618df9f1 b/fuzz/corpus/packet_recv_client/2afa75e2c013ede33bdcdf128dad3f15618df9f1
new file mode 100644
index 0000000..b2cf079
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2afa75e2c013ede33bdcdf128dad3f15618df9f1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2b070a575a0b438e1e985a2f503b936a64d3e867 b/fuzz/corpus/packet_recv_client/2b070a575a0b438e1e985a2f503b936a64d3e867
new file mode 100644
index 0000000..157c9f4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2b070a575a0b438e1e985a2f503b936a64d3e867
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2b2acfff8b0e6f23fbfc1f441cffa299aede3a89 b/fuzz/corpus/packet_recv_client/2b2acfff8b0e6f23fbfc1f441cffa299aede3a89
new file mode 100644
index 0000000..adcc39d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2b2acfff8b0e6f23fbfc1f441cffa299aede3a89
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2bf809711fe7ff3b06d578a99c2be1291d515dbc b/fuzz/corpus/packet_recv_client/2bf809711fe7ff3b06d578a99c2be1291d515dbc
new file mode 100644
index 0000000..c9ccb7c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2bf809711fe7ff3b06d578a99c2be1291d515dbc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2d44e4d02490b9e33638fb5edcc94fb186644f47 b/fuzz/corpus/packet_recv_client/2d44e4d02490b9e33638fb5edcc94fb186644f47
new file mode 100644
index 0000000..61a515e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2d44e4d02490b9e33638fb5edcc94fb186644f47
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2daae60ef0ae84be5243a479bea196cd27a2c14a b/fuzz/corpus/packet_recv_client/2daae60ef0ae84be5243a479bea196cd27a2c14a
new file mode 100644
index 0000000..9847990
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2daae60ef0ae84be5243a479bea196cd27a2c14a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2e1a1a490b345e574feae3bf4c8df07c033cbdf0 b/fuzz/corpus/packet_recv_client/2e1a1a490b345e574feae3bf4c8df07c033cbdf0
new file mode 100644
index 0000000..30cfe5b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2e1a1a490b345e574feae3bf4c8df07c033cbdf0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2e6440caa36d963972614e5241dd38144e2e3396 b/fuzz/corpus/packet_recv_client/2e6440caa36d963972614e5241dd38144e2e3396
new file mode 100644
index 0000000..b85d98e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2e6440caa36d963972614e5241dd38144e2e3396
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2ea27078a747bb352543bf6f0f276b6503f3f0f1 b/fuzz/corpus/packet_recv_client/2ea27078a747bb352543bf6f0f276b6503f3f0f1
new file mode 100644
index 0000000..eb11a4a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2ea27078a747bb352543bf6f0f276b6503f3f0f1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2eb82fb46240a171234b405e5b985dca538acb14 b/fuzz/corpus/packet_recv_client/2eb82fb46240a171234b405e5b985dca538acb14
new file mode 100644
index 0000000..6cbd831
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2eb82fb46240a171234b405e5b985dca538acb14
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2f1b1a27fc52ed945783a7469c5315bf1e13722c b/fuzz/corpus/packet_recv_client/2f1b1a27fc52ed945783a7469c5315bf1e13722c
new file mode 100644
index 0000000..518d058
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2f1b1a27fc52ed945783a7469c5315bf1e13722c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2f3395a6790904fd7a2dd60fc44e86ffb6db8a59 b/fuzz/corpus/packet_recv_client/2f3395a6790904fd7a2dd60fc44e86ffb6db8a59
new file mode 100644
index 0000000..2929ff3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2f3395a6790904fd7a2dd60fc44e86ffb6db8a59
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2f3d1ee5ecd7274caa7e088cb25087f93bbd0453 b/fuzz/corpus/packet_recv_client/2f3d1ee5ecd7274caa7e088cb25087f93bbd0453
new file mode 100644
index 0000000..083ea7b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2f3d1ee5ecd7274caa7e088cb25087f93bbd0453
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/2fb87c40aecf1fbe99de619292b8016576d6ef13 b/fuzz/corpus/packet_recv_client/2fb87c40aecf1fbe99de619292b8016576d6ef13
new file mode 100644
index 0000000..dbe9233
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/2fb87c40aecf1fbe99de619292b8016576d6ef13
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/315987bd119683ce3d3aa7fbebdbdc8162355f88 b/fuzz/corpus/packet_recv_client/315987bd119683ce3d3aa7fbebdbdc8162355f88
new file mode 100644
index 0000000..2166845
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/315987bd119683ce3d3aa7fbebdbdc8162355f88
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/316b827a9e55172f244eef8f815f66b4155d92a8 b/fuzz/corpus/packet_recv_client/316b827a9e55172f244eef8f815f66b4155d92a8
deleted file mode 100644
index 7cc70c0..0000000
--- a/fuzz/corpus/packet_recv_client/316b827a9e55172f244eef8f815f66b4155d92a8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/318e42c75e78d670b7ce09ced77a3987c4dfe79f b/fuzz/corpus/packet_recv_client/318e42c75e78d670b7ce09ced77a3987c4dfe79f
new file mode 100644
index 0000000..ad11228
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/318e42c75e78d670b7ce09ced77a3987c4dfe79f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3269c57f6e3ae2443c7254fbee3c1f8566c4d8a1 b/fuzz/corpus/packet_recv_client/3269c57f6e3ae2443c7254fbee3c1f8566c4d8a1
new file mode 100644
index 0000000..79b346d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3269c57f6e3ae2443c7254fbee3c1f8566c4d8a1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/328bdb1c681e2b26ba89c94369ece6fe5d9a2658 b/fuzz/corpus/packet_recv_client/328bdb1c681e2b26ba89c94369ece6fe5d9a2658
new file mode 100644
index 0000000..40034d8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/328bdb1c681e2b26ba89c94369ece6fe5d9a2658
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/32f36cb3c90863b560535189e41c3a7cace2f417 b/fuzz/corpus/packet_recv_client/32f36cb3c90863b560535189e41c3a7cace2f417
new file mode 100644
index 0000000..ec345c0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/32f36cb3c90863b560535189e41c3a7cace2f417
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/331e488f5a5bb2cbd7a716019aae9ecbeebb9a4d b/fuzz/corpus/packet_recv_client/331e488f5a5bb2cbd7a716019aae9ecbeebb9a4d
deleted file mode 100644
index 55c3b52..0000000
--- a/fuzz/corpus/packet_recv_client/331e488f5a5bb2cbd7a716019aae9ecbeebb9a4d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3469b842042dc336707d3e6f3398b69787fa2456 b/fuzz/corpus/packet_recv_client/3469b842042dc336707d3e6f3398b69787fa2456
new file mode 100644
index 0000000..60fbaea
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3469b842042dc336707d3e6f3398b69787fa2456
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/349ce57d79fa576530d6c4cb058917a3099e2f65 b/fuzz/corpus/packet_recv_client/349ce57d79fa576530d6c4cb058917a3099e2f65
new file mode 100644
index 0000000..96c929d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/349ce57d79fa576530d6c4cb058917a3099e2f65
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/34d971a9232d2d6606beeaa500b35b04337990f6 b/fuzz/corpus/packet_recv_client/34d971a9232d2d6606beeaa500b35b04337990f6
new file mode 100644
index 0000000..ebd4db4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/34d971a9232d2d6606beeaa500b35b04337990f6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/35234a85d54bd1a8e24e88571bf1c6e4e5b020a9 b/fuzz/corpus/packet_recv_client/35234a85d54bd1a8e24e88571bf1c6e4e5b020a9
new file mode 100644
index 0000000..90a62ae
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/35234a85d54bd1a8e24e88571bf1c6e4e5b020a9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/359d151d55290dd47220b4029112a80274c43e20 b/fuzz/corpus/packet_recv_client/359d151d55290dd47220b4029112a80274c43e20
new file mode 100644
index 0000000..62bc141
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/359d151d55290dd47220b4029112a80274c43e20
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/36c6e39252574cc2ed9aa780314146d348a25a83 b/fuzz/corpus/packet_recv_client/36c6e39252574cc2ed9aa780314146d348a25a83
new file mode 100644
index 0000000..eca3fec
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/36c6e39252574cc2ed9aa780314146d348a25a83
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/374eb7395e0e322cbe87664aa742b71ef6b2e466 b/fuzz/corpus/packet_recv_client/374eb7395e0e322cbe87664aa742b71ef6b2e466
new file mode 100644
index 0000000..95ec1f6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/374eb7395e0e322cbe87664aa742b71ef6b2e466
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/37ed7edf31becc143f26742f488d1be96391ef84 b/fuzz/corpus/packet_recv_client/37ed7edf31becc143f26742f488d1be96391ef84
new file mode 100644
index 0000000..8f92b11
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/37ed7edf31becc143f26742f488d1be96391ef84
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3845c5526ef0bafbc05780972253e45d4321546a b/fuzz/corpus/packet_recv_client/3845c5526ef0bafbc05780972253e45d4321546a
new file mode 100644
index 0000000..4fcc7e5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3845c5526ef0bafbc05780972253e45d4321546a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/385228aa14be32f04e0263446043630b46d69e68 b/fuzz/corpus/packet_recv_client/385228aa14be32f04e0263446043630b46d69e68
new file mode 100644
index 0000000..d505de5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/385228aa14be32f04e0263446043630b46d69e68
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3a7885343257c4daad268f5b1934a826a1c53c68 b/fuzz/corpus/packet_recv_client/3a7885343257c4daad268f5b1934a826a1c53c68
new file mode 100644
index 0000000..e3a969c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3a7885343257c4daad268f5b1934a826a1c53c68
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3a98446abbafe1dafdf6467105e39b4b3ece3eef b/fuzz/corpus/packet_recv_client/3a98446abbafe1dafdf6467105e39b4b3ece3eef
new file mode 100644
index 0000000..7702e63
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3a98446abbafe1dafdf6467105e39b4b3ece3eef
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3a988be490d6c0c9925c3eecf972f0edb8908ebd b/fuzz/corpus/packet_recv_client/3a988be490d6c0c9925c3eecf972f0edb8908ebd
new file mode 100644
index 0000000..d77a67c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3a988be490d6c0c9925c3eecf972f0edb8908ebd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3af0c6973a7cbd8a4bb1b2e7001f6fbb585e42e2 b/fuzz/corpus/packet_recv_client/3af0c6973a7cbd8a4bb1b2e7001f6fbb585e42e2
new file mode 100644
index 0000000..049275e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3af0c6973a7cbd8a4bb1b2e7001f6fbb585e42e2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3b2488e418acc1be9a5c4b8adf1c15c33a3d97f2 b/fuzz/corpus/packet_recv_client/3b2488e418acc1be9a5c4b8adf1c15c33a3d97f2
new file mode 100644
index 0000000..8da0b52
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3b2488e418acc1be9a5c4b8adf1c15c33a3d97f2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3ba637db7b962d15913173b5ee8131998d9367da b/fuzz/corpus/packet_recv_client/3ba637db7b962d15913173b5ee8131998d9367da
new file mode 100644
index 0000000..6cb9fc9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3ba637db7b962d15913173b5ee8131998d9367da
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3bcacfb0c5b2c76882209f3e4bb38ef2e3000827 b/fuzz/corpus/packet_recv_client/3bcacfb0c5b2c76882209f3e4bb38ef2e3000827
new file mode 100644
index 0000000..c60cb49
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3bcacfb0c5b2c76882209f3e4bb38ef2e3000827
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3bf7360fd9ee47612eadaa3440bbc226c6bcded4 b/fuzz/corpus/packet_recv_client/3bf7360fd9ee47612eadaa3440bbc226c6bcded4
new file mode 100644
index 0000000..7a2fdf7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3bf7360fd9ee47612eadaa3440bbc226c6bcded4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3c0aaace1f593519f1532ed3c17a4c468389251d b/fuzz/corpus/packet_recv_client/3c0aaace1f593519f1532ed3c17a4c468389251d
new file mode 100644
index 0000000..bc54f65
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3c0aaace1f593519f1532ed3c17a4c468389251d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3c80aa63dce1fca651f1dd06a083d6dbe7bbbc3e b/fuzz/corpus/packet_recv_client/3c80aa63dce1fca651f1dd06a083d6dbe7bbbc3e
new file mode 100644
index 0000000..f146a03
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3c80aa63dce1fca651f1dd06a083d6dbe7bbbc3e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3ca68a95d3813ed2035591f37346f1fdda15f46f b/fuzz/corpus/packet_recv_client/3ca68a95d3813ed2035591f37346f1fdda15f46f
new file mode 100644
index 0000000..82fc80d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3ca68a95d3813ed2035591f37346f1fdda15f46f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3cd645ccbe57d62bf35c2fbe022cd2541524355a b/fuzz/corpus/packet_recv_client/3cd645ccbe57d62bf35c2fbe022cd2541524355a
new file mode 100644
index 0000000..50c5336
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3cd645ccbe57d62bf35c2fbe022cd2541524355a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3d2109ff88af291b0a0d7c3e68f5203b7855584e b/fuzz/corpus/packet_recv_client/3d2109ff88af291b0a0d7c3e68f5203b7855584e
new file mode 100644
index 0000000..cf6ea8f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3d2109ff88af291b0a0d7c3e68f5203b7855584e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3e023e5df0d59d64f42ab9f5ad89ecd2a0ab38b7 b/fuzz/corpus/packet_recv_client/3e023e5df0d59d64f42ab9f5ad89ecd2a0ab38b7
new file mode 100644
index 0000000..c38bd07
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3e023e5df0d59d64f42ab9f5ad89ecd2a0ab38b7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3e8cc801163437b8604f023b7621a1bedd6d630a b/fuzz/corpus/packet_recv_client/3e8cc801163437b8604f023b7621a1bedd6d630a
new file mode 100644
index 0000000..664e2ed
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3e8cc801163437b8604f023b7621a1bedd6d630a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3e9ca5caa45a245adc47cdc4cd9b3deb372722e3 b/fuzz/corpus/packet_recv_client/3e9ca5caa45a245adc47cdc4cd9b3deb372722e3
new file mode 100644
index 0000000..bb158d1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3e9ca5caa45a245adc47cdc4cd9b3deb372722e3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/3f01a5c999bd87a65126a846fb4d7f5d83f7d942 b/fuzz/corpus/packet_recv_client/3f01a5c999bd87a65126a846fb4d7f5d83f7d942
new file mode 100644
index 0000000..725c2d0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/3f01a5c999bd87a65126a846fb4d7f5d83f7d942
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/403e804bf16faa52652136e86850db4ec0d55ad1 b/fuzz/corpus/packet_recv_client/403e804bf16faa52652136e86850db4ec0d55ad1
new file mode 100644
index 0000000..c3b552f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/403e804bf16faa52652136e86850db4ec0d55ad1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4059b6688e9a13a870ff659cb1fba98144aeec8c b/fuzz/corpus/packet_recv_client/4059b6688e9a13a870ff659cb1fba98144aeec8c
new file mode 100644
index 0000000..7daa7d7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4059b6688e9a13a870ff659cb1fba98144aeec8c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4072a44b17469f11cf1119579e549d95adb60695 b/fuzz/corpus/packet_recv_client/4072a44b17469f11cf1119579e549d95adb60695
new file mode 100644
index 0000000..9f2f08a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4072a44b17469f11cf1119579e549d95adb60695
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/409acb7e900a673fbec0147317efc50c4e5ad84d b/fuzz/corpus/packet_recv_client/409acb7e900a673fbec0147317efc50c4e5ad84d
new file mode 100644
index 0000000..023aaae
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/409acb7e900a673fbec0147317efc50c4e5ad84d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/40af7ba9ae807131c6a673ad3f60d22e2ea6d2ff b/fuzz/corpus/packet_recv_client/40af7ba9ae807131c6a673ad3f60d22e2ea6d2ff
new file mode 100644
index 0000000..4b3a3fa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/40af7ba9ae807131c6a673ad3f60d22e2ea6d2ff
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/41272d43573e39949773d6be636ff044cbee99a2 b/fuzz/corpus/packet_recv_client/41272d43573e39949773d6be636ff044cbee99a2
new file mode 100644
index 0000000..c786ca5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/41272d43573e39949773d6be636ff044cbee99a2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/416ac1af8ee2f4835cd41847f74f4e0778ba22a8 b/fuzz/corpus/packet_recv_client/416ac1af8ee2f4835cd41847f74f4e0778ba22a8
new file mode 100644
index 0000000..ea017c3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/416ac1af8ee2f4835cd41847f74f4e0778ba22a8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/41791c2f52b79b106c912a3285d52158e6a4fac9 b/fuzz/corpus/packet_recv_client/41791c2f52b79b106c912a3285d52158e6a4fac9
new file mode 100644
index 0000000..d6131b9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/41791c2f52b79b106c912a3285d52158e6a4fac9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/425ea0b924e28c7f25c32716e6c1ea53eab36b79 b/fuzz/corpus/packet_recv_client/425ea0b924e28c7f25c32716e6c1ea53eab36b79
new file mode 100644
index 0000000..3561ab8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/425ea0b924e28c7f25c32716e6c1ea53eab36b79
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/428687cfe9b68ea27db5119cc894e2044d06a147 b/fuzz/corpus/packet_recv_client/428687cfe9b68ea27db5119cc894e2044d06a147
new file mode 100644
index 0000000..874a2f4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/428687cfe9b68ea27db5119cc894e2044d06a147
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4343b884910b654e61b4761183ae5c1620f19dd8 b/fuzz/corpus/packet_recv_client/4343b884910b654e61b4761183ae5c1620f19dd8
new file mode 100644
index 0000000..40d47ef
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4343b884910b654e61b4761183ae5c1620f19dd8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4365d989b40b165ccaf43774cba34b5c87bfe177 b/fuzz/corpus/packet_recv_client/4365d989b40b165ccaf43774cba34b5c87bfe177
new file mode 100644
index 0000000..6d323dc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4365d989b40b165ccaf43774cba34b5c87bfe177
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4484610519385525119244bc65f7209a012eb1d7 b/fuzz/corpus/packet_recv_client/4484610519385525119244bc65f7209a012eb1d7
new file mode 100644
index 0000000..38dd29e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4484610519385525119244bc65f7209a012eb1d7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/448e4cdb7e93d6f6d32d1d39ccca52e2c7eb4013 b/fuzz/corpus/packet_recv_client/448e4cdb7e93d6f6d32d1d39ccca52e2c7eb4013
new file mode 100644
index 0000000..06dce77
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/448e4cdb7e93d6f6d32d1d39ccca52e2c7eb4013
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/44dc92a0cea4259200a82d65afc1380ff818ced6 b/fuzz/corpus/packet_recv_client/44dc92a0cea4259200a82d65afc1380ff818ced6
new file mode 100644
index 0000000..e665ff2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/44dc92a0cea4259200a82d65afc1380ff818ced6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/456ab042c69a63f4a63992ee04aefd9cd0c0664c b/fuzz/corpus/packet_recv_client/456ab042c69a63f4a63992ee04aefd9cd0c0664c
new file mode 100644
index 0000000..002706e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/456ab042c69a63f4a63992ee04aefd9cd0c0664c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/45959618cda72db2f0debbc40b6dbaa62a5d8145 b/fuzz/corpus/packet_recv_client/45959618cda72db2f0debbc40b6dbaa62a5d8145
new file mode 100644
index 0000000..da4f149
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/45959618cda72db2f0debbc40b6dbaa62a5d8145
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4642a158d2c8c4133d92c7fc01d1b75cee701977 b/fuzz/corpus/packet_recv_client/4642a158d2c8c4133d92c7fc01d1b75cee701977
new file mode 100644
index 0000000..fb1eea2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4642a158d2c8c4133d92c7fc01d1b75cee701977
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/46743dd67930246341e1b5d5b4be1eac8c32b088 b/fuzz/corpus/packet_recv_client/46743dd67930246341e1b5d5b4be1eac8c32b088
new file mode 100644
index 0000000..261fcf5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/46743dd67930246341e1b5d5b4be1eac8c32b088
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/468b83d5b4aebb7390a837678a0b00bfbbfafe6a b/fuzz/corpus/packet_recv_client/468b83d5b4aebb7390a837678a0b00bfbbfafe6a
new file mode 100644
index 0000000..5121270
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/468b83d5b4aebb7390a837678a0b00bfbbfafe6a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/472641dc82df0ccbdee2205329d6b8209f28910c b/fuzz/corpus/packet_recv_client/472641dc82df0ccbdee2205329d6b8209f28910c
new file mode 100644
index 0000000..0c46513
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/472641dc82df0ccbdee2205329d6b8209f28910c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/47ab176031bea850bbf075bc339dc967a3a8db6c b/fuzz/corpus/packet_recv_client/47ab176031bea850bbf075bc339dc967a3a8db6c
new file mode 100644
index 0000000..c6030f5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/47ab176031bea850bbf075bc339dc967a3a8db6c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/47b79467ac1eae901e26f292916782e748c491a6 b/fuzz/corpus/packet_recv_client/47b79467ac1eae901e26f292916782e748c491a6
new file mode 100644
index 0000000..746adb9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/47b79467ac1eae901e26f292916782e748c491a6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4819d7fc9f7d485cfe09402dfc85d71005980934 b/fuzz/corpus/packet_recv_client/4819d7fc9f7d485cfe09402dfc85d71005980934
new file mode 100644
index 0000000..221e520
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4819d7fc9f7d485cfe09402dfc85d71005980934
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/485684aa4b074327bc72eb2b9b341333e6b633e6 b/fuzz/corpus/packet_recv_client/485684aa4b074327bc72eb2b9b341333e6b633e6
new file mode 100644
index 0000000..846ab86
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/485684aa4b074327bc72eb2b9b341333e6b633e6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/488f25cf823bd15f58412abfae65742bd711455c b/fuzz/corpus/packet_recv_client/488f25cf823bd15f58412abfae65742bd711455c
new file mode 100644
index 0000000..2f40cff
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/488f25cf823bd15f58412abfae65742bd711455c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/49566259433f2ce147728dce4b7c648d326e16c4 b/fuzz/corpus/packet_recv_client/49566259433f2ce147728dce4b7c648d326e16c4
new file mode 100644
index 0000000..1d0d577
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/49566259433f2ce147728dce4b7c648d326e16c4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/49b919876e3e523539f40f2453da9ac87aaa2b4e b/fuzz/corpus/packet_recv_client/49b919876e3e523539f40f2453da9ac87aaa2b4e
new file mode 100644
index 0000000..e0f3ef1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/49b919876e3e523539f40f2453da9ac87aaa2b4e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4a6d5a39850737485fde4de3bfd15690da5134f2 b/fuzz/corpus/packet_recv_client/4a6d5a39850737485fde4de3bfd15690da5134f2
new file mode 100644
index 0000000..e69c985
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4a6d5a39850737485fde4de3bfd15690da5134f2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4b04f909eb2b5a2d652931368e0aab127bdc096e b/fuzz/corpus/packet_recv_client/4b04f909eb2b5a2d652931368e0aab127bdc096e
new file mode 100644
index 0000000..e8c0e83
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4b04f909eb2b5a2d652931368e0aab127bdc096e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4b2d04f98f0775ca2bf72a97d3e489346324883d b/fuzz/corpus/packet_recv_client/4b2d04f98f0775ca2bf72a97d3e489346324883d
new file mode 100644
index 0000000..da77ee0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4b2d04f98f0775ca2bf72a97d3e489346324883d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4ba4c35a2d19e6ae9cdb6efb2ad8df1a4b511878 b/fuzz/corpus/packet_recv_client/4ba4c35a2d19e6ae9cdb6efb2ad8df1a4b511878
new file mode 100644
index 0000000..cceb983
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4ba4c35a2d19e6ae9cdb6efb2ad8df1a4b511878
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4bac36242b2ce4c348e5005b6eb8013a0fefa889 b/fuzz/corpus/packet_recv_client/4bac36242b2ce4c348e5005b6eb8013a0fefa889
new file mode 100644
index 0000000..d99ad06
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4bac36242b2ce4c348e5005b6eb8013a0fefa889
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4c4142a6f861e634528466667425ceca70fe99d2 b/fuzz/corpus/packet_recv_client/4c4142a6f861e634528466667425ceca70fe99d2
new file mode 100644
index 0000000..b6044ae
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4c4142a6f861e634528466667425ceca70fe99d2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4c41c984d4de360bfa386953e5131012f3577c51 b/fuzz/corpus/packet_recv_client/4c41c984d4de360bfa386953e5131012f3577c51
new file mode 100644
index 0000000..3afd89a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4c41c984d4de360bfa386953e5131012f3577c51
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4cb0778dd9f7d68af3e36ffbb122963109de77f7 b/fuzz/corpus/packet_recv_client/4cb0778dd9f7d68af3e36ffbb122963109de77f7
new file mode 100644
index 0000000..e7f7c80
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4cb0778dd9f7d68af3e36ffbb122963109de77f7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4ddef18c7cb9429af1490ed76b54acfbf18f0147 b/fuzz/corpus/packet_recv_client/4ddef18c7cb9429af1490ed76b54acfbf18f0147
new file mode 100644
index 0000000..8de8af1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4ddef18c7cb9429af1490ed76b54acfbf18f0147
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4e16e05830fe65aaeff682cf1565272e67400ddf b/fuzz/corpus/packet_recv_client/4e16e05830fe65aaeff682cf1565272e67400ddf
new file mode 100644
index 0000000..e29251d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4e16e05830fe65aaeff682cf1565272e67400ddf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4e8d95440892aa60e471d2cd766e01100a18db6f b/fuzz/corpus/packet_recv_client/4e8d95440892aa60e471d2cd766e01100a18db6f
new file mode 100644
index 0000000..bdf5937
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4e8d95440892aa60e471d2cd766e01100a18db6f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4e9cdb7e9f8fe897957c83fe52fadbbc8cb5133c b/fuzz/corpus/packet_recv_client/4e9cdb7e9f8fe897957c83fe52fadbbc8cb5133c
new file mode 100644
index 0000000..dc8e234
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4e9cdb7e9f8fe897957c83fe52fadbbc8cb5133c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4ed7acb284c14c7935d7cf0c71b72dc43503de8a b/fuzz/corpus/packet_recv_client/4ed7acb284c14c7935d7cf0c71b72dc43503de8a
new file mode 100644
index 0000000..3ce211d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4ed7acb284c14c7935d7cf0c71b72dc43503de8a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4edd14db97c30c360312300ad4d5f18504445724 b/fuzz/corpus/packet_recv_client/4edd14db97c30c360312300ad4d5f18504445724
new file mode 100644
index 0000000..b2bb3ad
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4edd14db97c30c360312300ad4d5f18504445724
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4f1243d6877ce0c7ea79da3c7b7cf9361141cf06 b/fuzz/corpus/packet_recv_client/4f1243d6877ce0c7ea79da3c7b7cf9361141cf06
new file mode 100644
index 0000000..a3df0a2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4f1243d6877ce0c7ea79da3c7b7cf9361141cf06
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/4f86b133e9ce5eda2d0e45acafdd5dc92bc7610b b/fuzz/corpus/packet_recv_client/4f86b133e9ce5eda2d0e45acafdd5dc92bc7610b
new file mode 100644
index 0000000..4217047
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/4f86b133e9ce5eda2d0e45acafdd5dc92bc7610b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/504b66a24912f5d5d3c6d220f16e2460c365d21e b/fuzz/corpus/packet_recv_client/504b66a24912f5d5d3c6d220f16e2460c365d21e
new file mode 100644
index 0000000..5eb99a9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/504b66a24912f5d5d3c6d220f16e2460c365d21e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/50710fcef08b2ab5ae470abe1b352933c4d92369 b/fuzz/corpus/packet_recv_client/50710fcef08b2ab5ae470abe1b352933c4d92369
new file mode 100644
index 0000000..68dfa34
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/50710fcef08b2ab5ae470abe1b352933c4d92369
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/51d12a9c630b922e0374c988eec79eb5ed2d3375 b/fuzz/corpus/packet_recv_client/51d12a9c630b922e0374c988eec79eb5ed2d3375
new file mode 100644
index 0000000..0d8f75e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/51d12a9c630b922e0374c988eec79eb5ed2d3375
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/5231417202a205b24609fc36fb9d05ed845144a1 b/fuzz/corpus/packet_recv_client/5231417202a205b24609fc36fb9d05ed845144a1
new file mode 100644
index 0000000..c0af3c0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/5231417202a205b24609fc36fb9d05ed845144a1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/536db18480fd7122812bd85e36de9a9fa37a9e75 b/fuzz/corpus/packet_recv_client/536db18480fd7122812bd85e36de9a9fa37a9e75
new file mode 100644
index 0000000..d80224b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/536db18480fd7122812bd85e36de9a9fa37a9e75
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/5396a7c1ae7b75a52e7631954cbaeabd1bda87a4 b/fuzz/corpus/packet_recv_client/5396a7c1ae7b75a52e7631954cbaeabd1bda87a4
new file mode 100644
index 0000000..338fd75
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/5396a7c1ae7b75a52e7631954cbaeabd1bda87a4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/53e6e4202a36a0154c4454ce1fe8fe3352f7904e b/fuzz/corpus/packet_recv_client/53e6e4202a36a0154c4454ce1fe8fe3352f7904e
new file mode 100644
index 0000000..b7d6950
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/53e6e4202a36a0154c4454ce1fe8fe3352f7904e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/53e752d9470d5af48c11894ebb7a105f660c5f74 b/fuzz/corpus/packet_recv_client/53e752d9470d5af48c11894ebb7a105f660c5f74
new file mode 100644
index 0000000..1c94ac3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/53e752d9470d5af48c11894ebb7a105f660c5f74
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/5595c1914328e580cc20d83cdad7a19ba2980fea b/fuzz/corpus/packet_recv_client/5595c1914328e580cc20d83cdad7a19ba2980fea
new file mode 100644
index 0000000..c0074ab
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/5595c1914328e580cc20d83cdad7a19ba2980fea
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/55b6d664fc0f04c5f4144eb299d44f39d5b959f8 b/fuzz/corpus/packet_recv_client/55b6d664fc0f04c5f4144eb299d44f39d5b959f8
new file mode 100644
index 0000000..b45853f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/55b6d664fc0f04c5f4144eb299d44f39d5b959f8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/566e04266d16eeef3ec477e10b6b153e17653d23 b/fuzz/corpus/packet_recv_client/566e04266d16eeef3ec477e10b6b153e17653d23
new file mode 100644
index 0000000..955c1b3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/566e04266d16eeef3ec477e10b6b153e17653d23
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/56a3bf487e89414ce5fe0318609a5cabb59070f6 b/fuzz/corpus/packet_recv_client/56a3bf487e89414ce5fe0318609a5cabb59070f6
new file mode 100644
index 0000000..090a8f4f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/56a3bf487e89414ce5fe0318609a5cabb59070f6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/56a7c03ae9cf31bb237848a4ae8ef36bc40e3b30 b/fuzz/corpus/packet_recv_client/56a7c03ae9cf31bb237848a4ae8ef36bc40e3b30
new file mode 100644
index 0000000..3c8da3a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/56a7c03ae9cf31bb237848a4ae8ef36bc40e3b30
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/56c9fcd9bf53e0a04c76186133b07344590bacaf b/fuzz/corpus/packet_recv_client/56c9fcd9bf53e0a04c76186133b07344590bacaf
new file mode 100644
index 0000000..537cffe
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/56c9fcd9bf53e0a04c76186133b07344590bacaf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/570e7f9995253e0257e0d26a98d2717c37cafd1e b/fuzz/corpus/packet_recv_client/570e7f9995253e0257e0d26a98d2717c37cafd1e
new file mode 100644
index 0000000..1b9d569
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/570e7f9995253e0257e0d26a98d2717c37cafd1e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/57287827583cbb5a52b5fd74b1af2a299ceadb44 b/fuzz/corpus/packet_recv_client/57287827583cbb5a52b5fd74b1af2a299ceadb44
new file mode 100644
index 0000000..5e8da5c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/57287827583cbb5a52b5fd74b1af2a299ceadb44
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/57314d84a38a4c053a0f10c15e9dc65f8ebaa22b b/fuzz/corpus/packet_recv_client/57314d84a38a4c053a0f10c15e9dc65f8ebaa22b
new file mode 100644
index 0000000..d1e5886
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/57314d84a38a4c053a0f10c15e9dc65f8ebaa22b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/58ced5813e4de791f85a6d4a542bac948fc03695 b/fuzz/corpus/packet_recv_client/58ced5813e4de791f85a6d4a542bac948fc03695
new file mode 100644
index 0000000..c81a068
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/58ced5813e4de791f85a6d4a542bac948fc03695
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/590f60da8434e0f0879b60ee8afc036b6c1b9ede b/fuzz/corpus/packet_recv_client/590f60da8434e0f0879b60ee8afc036b6c1b9ede
new file mode 100644
index 0000000..515d313
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/590f60da8434e0f0879b60ee8afc036b6c1b9ede
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/59298b9be985b4587baae4aa06d4c2f2f3330e80 b/fuzz/corpus/packet_recv_client/59298b9be985b4587baae4aa06d4c2f2f3330e80
new file mode 100644
index 0000000..65a309c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/59298b9be985b4587baae4aa06d4c2f2f3330e80
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/593df556ac23369806336cde300f9a9b1f52c13e b/fuzz/corpus/packet_recv_client/593df556ac23369806336cde300f9a9b1f52c13e
new file mode 100644
index 0000000..446f1c9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/593df556ac23369806336cde300f9a9b1f52c13e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/59bb934d4bba9714911b103647bca9b6a7ba5a7a b/fuzz/corpus/packet_recv_client/59bb934d4bba9714911b103647bca9b6a7ba5a7a
new file mode 100644
index 0000000..00e99d9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/59bb934d4bba9714911b103647bca9b6a7ba5a7a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/5b078bca9db71bc5557f8be292a1205703192128 b/fuzz/corpus/packet_recv_client/5b078bca9db71bc5557f8be292a1205703192128
new file mode 100644
index 0000000..4aa8360
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/5b078bca9db71bc5557f8be292a1205703192128
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/5ba244b929d47fcea5c9cec7ae133ea415710201 b/fuzz/corpus/packet_recv_client/5ba244b929d47fcea5c9cec7ae133ea415710201
new file mode 100644
index 0000000..a88a800
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/5ba244b929d47fcea5c9cec7ae133ea415710201
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/5d20b24eb414a5d47230d330ad3671df029386a0 b/fuzz/corpus/packet_recv_client/5d20b24eb414a5d47230d330ad3671df029386a0
new file mode 100644
index 0000000..1dd3676
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/5d20b24eb414a5d47230d330ad3671df029386a0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/5d5c2bfc7f2fbdcff88bfa0248a6cfcb70465852 b/fuzz/corpus/packet_recv_client/5d5c2bfc7f2fbdcff88bfa0248a6cfcb70465852
new file mode 100644
index 0000000..31e9cc7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/5d5c2bfc7f2fbdcff88bfa0248a6cfcb70465852
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/5e703759e10db4800fcdc987bedfcda66f2d2157 b/fuzz/corpus/packet_recv_client/5e703759e10db4800fcdc987bedfcda66f2d2157
new file mode 100644
index 0000000..9ea3e36
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/5e703759e10db4800fcdc987bedfcda66f2d2157
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/5f8ad03d6c2e7fcac5dee314475b01ee6365a261 b/fuzz/corpus/packet_recv_client/5f8ad03d6c2e7fcac5dee314475b01ee6365a261
new file mode 100644
index 0000000..55b738d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/5f8ad03d6c2e7fcac5dee314475b01ee6365a261
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/5fe5fb49ee824cf170e021be6de1507e2e3c0c8f b/fuzz/corpus/packet_recv_client/5fe5fb49ee824cf170e021be6de1507e2e3c0c8f
new file mode 100644
index 0000000..136b562
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/5fe5fb49ee824cf170e021be6de1507e2e3c0c8f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/609c9ca729a080c9030f957c52da57d1c1f91328 b/fuzz/corpus/packet_recv_client/609c9ca729a080c9030f957c52da57d1c1f91328
new file mode 100644
index 0000000..2538577
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/609c9ca729a080c9030f957c52da57d1c1f91328
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/609e156c1f9ea364b6c70c1e00930ab0908b449c b/fuzz/corpus/packet_recv_client/609e156c1f9ea364b6c70c1e00930ab0908b449c
new file mode 100644
index 0000000..d6f37c2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/609e156c1f9ea364b6c70c1e00930ab0908b449c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/60b513a3560b63b31c3fe967b2f703435a9a3d29 b/fuzz/corpus/packet_recv_client/60b513a3560b63b31c3fe967b2f703435a9a3d29
new file mode 100644
index 0000000..7314047
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/60b513a3560b63b31c3fe967b2f703435a9a3d29
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/60e135d2399e6db8f45057d67ee9915f0b1bb32a b/fuzz/corpus/packet_recv_client/60e135d2399e6db8f45057d67ee9915f0b1bb32a
new file mode 100644
index 0000000..4e908b0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/60e135d2399e6db8f45057d67ee9915f0b1bb32a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/62c3e8d54c5d25fee0171fbc0ab3cfaf4fb722f1 b/fuzz/corpus/packet_recv_client/62c3e8d54c5d25fee0171fbc0ab3cfaf4fb722f1
new file mode 100644
index 0000000..19f2409
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/62c3e8d54c5d25fee0171fbc0ab3cfaf4fb722f1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6457e7d0cb4dc904eb517035ecf505cf02a89873 b/fuzz/corpus/packet_recv_client/6457e7d0cb4dc904eb517035ecf505cf02a89873
new file mode 100644
index 0000000..06e530f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/6457e7d0cb4dc904eb517035ecf505cf02a89873
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/649f76705de5d474b169fc1e432b44fde4029567 b/fuzz/corpus/packet_recv_client/649f76705de5d474b169fc1e432b44fde4029567
new file mode 100644
index 0000000..7421b55
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/649f76705de5d474b169fc1e432b44fde4029567
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/65513e1b51ac28119595531aa2e940aa0b26f5dd b/fuzz/corpus/packet_recv_client/65513e1b51ac28119595531aa2e940aa0b26f5dd
new file mode 100644
index 0000000..48f7e89
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/65513e1b51ac28119595531aa2e940aa0b26f5dd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/65d65ccc16bcb5f9cdd30159cdcad748ce47b8c2 b/fuzz/corpus/packet_recv_client/65d65ccc16bcb5f9cdd30159cdcad748ce47b8c2
new file mode 100644
index 0000000..b129db4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/65d65ccc16bcb5f9cdd30159cdcad748ce47b8c2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/65fbdbf196a6e94413aa6581f4f7e23cc886a470 b/fuzz/corpus/packet_recv_client/65fbdbf196a6e94413aa6581f4f7e23cc886a470
new file mode 100644
index 0000000..d53bd79
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/65fbdbf196a6e94413aa6581f4f7e23cc886a470
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6623e29ca9e3731af93d3329e9ae1b6179a5aec1 b/fuzz/corpus/packet_recv_client/6623e29ca9e3731af93d3329e9ae1b6179a5aec1
new file mode 100644
index 0000000..426c247
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/6623e29ca9e3731af93d3329e9ae1b6179a5aec1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/664a7be06ffcb21adbf10861f5ce34af659c1718 b/fuzz/corpus/packet_recv_client/664a7be06ffcb21adbf10861f5ce34af659c1718
new file mode 100644
index 0000000..a366ae3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/664a7be06ffcb21adbf10861f5ce34af659c1718
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6715c64e0d76c8fcd988b87f14b8afe35533cf9f b/fuzz/corpus/packet_recv_client/6715c64e0d76c8fcd988b87f14b8afe35533cf9f
new file mode 100644
index 0000000..e7986a8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/6715c64e0d76c8fcd988b87f14b8afe35533cf9f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6722ea1e84c1fba7f4e6e3ee9ba43f9630382881 b/fuzz/corpus/packet_recv_client/6722ea1e84c1fba7f4e6e3ee9ba43f9630382881
new file mode 100644
index 0000000..c2d8723
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/6722ea1e84c1fba7f4e6e3ee9ba43f9630382881
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/681de1350146c2b6ef612457fc0e559c9af92540 b/fuzz/corpus/packet_recv_client/681de1350146c2b6ef612457fc0e559c9af92540
new file mode 100644
index 0000000..04d03c8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/681de1350146c2b6ef612457fc0e559c9af92540
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/68dcb6bfce4a84a58ea17326523b925fb371354e b/fuzz/corpus/packet_recv_client/68dcb6bfce4a84a58ea17326523b925fb371354e
new file mode 100644
index 0000000..618e05d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/68dcb6bfce4a84a58ea17326523b925fb371354e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6968fa030f18002afcb74349cc36da06cbe7fa1c b/fuzz/corpus/packet_recv_client/6968fa030f18002afcb74349cc36da06cbe7fa1c
new file mode 100644
index 0000000..d8e8d05
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/6968fa030f18002afcb74349cc36da06cbe7fa1c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6985fe8b88bba4d35dc9f590433aec77889cb9a8 b/fuzz/corpus/packet_recv_client/6985fe8b88bba4d35dc9f590433aec77889cb9a8
deleted file mode 100644
index 6561d95..0000000
--- a/fuzz/corpus/packet_recv_client/6985fe8b88bba4d35dc9f590433aec77889cb9a8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6a2509432b4ee6834d4b7862c0d0634cabc9cdd6 b/fuzz/corpus/packet_recv_client/6a2509432b4ee6834d4b7862c0d0634cabc9cdd6
new file mode 100644
index 0000000..eb1fa30
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/6a2509432b4ee6834d4b7862c0d0634cabc9cdd6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6a52fcb0ad6fb1781b18cc205d7e77f9d6df36c3 b/fuzz/corpus/packet_recv_client/6a52fcb0ad6fb1781b18cc205d7e77f9d6df36c3
new file mode 100644
index 0000000..69d55fa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/6a52fcb0ad6fb1781b18cc205d7e77f9d6df36c3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6ca6a257c3b2e032eef5ad70becc6cac187545ca b/fuzz/corpus/packet_recv_client/6ca6a257c3b2e032eef5ad70becc6cac187545ca
new file mode 100644
index 0000000..1a633e7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/6ca6a257c3b2e032eef5ad70becc6cac187545ca
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6decd0d75d4ebd18131cffece494687c152b2d23 b/fuzz/corpus/packet_recv_client/6decd0d75d4ebd18131cffece494687c152b2d23
new file mode 100644
index 0000000..def7a92
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/6decd0d75d4ebd18131cffece494687c152b2d23
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/6f8d08d390615d68dc359498bc4de297628856a0 b/fuzz/corpus/packet_recv_client/6f8d08d390615d68dc359498bc4de297628856a0
new file mode 100644
index 0000000..c657766
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/6f8d08d390615d68dc359498bc4de297628856a0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7063755ab1ee680a6d3d52450cd12b1e4a651a70 b/fuzz/corpus/packet_recv_client/7063755ab1ee680a6d3d52450cd12b1e4a651a70
new file mode 100644
index 0000000..2c31e36
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7063755ab1ee680a6d3d52450cd12b1e4a651a70
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7084c77693211dd27cce1a604873f5c92f9ca55f b/fuzz/corpus/packet_recv_client/7084c77693211dd27cce1a604873f5c92f9ca55f
new file mode 100644
index 0000000..72f8b8c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7084c77693211dd27cce1a604873f5c92f9ca55f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/713eb2087d8134bc252bc4205e41a1f4c0fa88f3 b/fuzz/corpus/packet_recv_client/713eb2087d8134bc252bc4205e41a1f4c0fa88f3
new file mode 100644
index 0000000..abb50a2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/713eb2087d8134bc252bc4205e41a1f4c0fa88f3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/73364f5524345953e70958fcb1a386fcc9d651eb b/fuzz/corpus/packet_recv_client/73364f5524345953e70958fcb1a386fcc9d651eb
new file mode 100644
index 0000000..f9b2a82
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/73364f5524345953e70958fcb1a386fcc9d651eb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/736e9a66d196ef004702bc6ace3c2af3cdd4717d b/fuzz/corpus/packet_recv_client/736e9a66d196ef004702bc6ace3c2af3cdd4717d
new file mode 100644
index 0000000..8c274bf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/736e9a66d196ef004702bc6ace3c2af3cdd4717d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/737913d551cd5814600cbfed86d7d0bded47f017 b/fuzz/corpus/packet_recv_client/737913d551cd5814600cbfed86d7d0bded47f017
new file mode 100644
index 0000000..253330e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/737913d551cd5814600cbfed86d7d0bded47f017
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/73ddf4c4aa40d87246d557fd31f2bba9b45c3f3d b/fuzz/corpus/packet_recv_client/73ddf4c4aa40d87246d557fd31f2bba9b45c3f3d
new file mode 100644
index 0000000..492c440
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/73ddf4c4aa40d87246d557fd31f2bba9b45c3f3d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7420a950957313ec64aa70c22ad4ef2e01662fc0 b/fuzz/corpus/packet_recv_client/7420a950957313ec64aa70c22ad4ef2e01662fc0
new file mode 100644
index 0000000..83f29e7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7420a950957313ec64aa70c22ad4ef2e01662fc0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7439a83cd69ed7fed85226dbed9e56c8a08e2b9f b/fuzz/corpus/packet_recv_client/7439a83cd69ed7fed85226dbed9e56c8a08e2b9f
new file mode 100644
index 0000000..2ad301e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7439a83cd69ed7fed85226dbed9e56c8a08e2b9f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/74513fa7e55a9396e1841ec4ac84f7fad0c57e16 b/fuzz/corpus/packet_recv_client/74513fa7e55a9396e1841ec4ac84f7fad0c57e16
new file mode 100644
index 0000000..a53339a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/74513fa7e55a9396e1841ec4ac84f7fad0c57e16
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/74af68434c7403217adfbf9ed19e859a855039b6 b/fuzz/corpus/packet_recv_client/74af68434c7403217adfbf9ed19e859a855039b6
new file mode 100644
index 0000000..f3b6b77
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/74af68434c7403217adfbf9ed19e859a855039b6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/74d02d04f36d237acb9ce40bd4e77b18ed8c522e b/fuzz/corpus/packet_recv_client/74d02d04f36d237acb9ce40bd4e77b18ed8c522e
new file mode 100644
index 0000000..8399a6e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/74d02d04f36d237acb9ce40bd4e77b18ed8c522e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/763ee21fae80516f625e0d77b6d823570b845b4f b/fuzz/corpus/packet_recv_client/763ee21fae80516f625e0d77b6d823570b845b4f
new file mode 100644
index 0000000..3a2db13
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/763ee21fae80516f625e0d77b6d823570b845b4f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/76542563ce892480ed27db53c39148cb81f2e084 b/fuzz/corpus/packet_recv_client/76542563ce892480ed27db53c39148cb81f2e084
new file mode 100644
index 0000000..adaec31
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/76542563ce892480ed27db53c39148cb81f2e084
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/773b297817ea5921527a25da52ed2192a90beb71 b/fuzz/corpus/packet_recv_client/773b297817ea5921527a25da52ed2192a90beb71
new file mode 100644
index 0000000..68ba7aa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/773b297817ea5921527a25da52ed2192a90beb71
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/77631318ac56501ea9e4f941b32109adb4fabd09 b/fuzz/corpus/packet_recv_client/77631318ac56501ea9e4f941b32109adb4fabd09
new file mode 100644
index 0000000..bff42ee
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/77631318ac56501ea9e4f941b32109adb4fabd09
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/794c803fdde6d9ff2e24e210c934775e9b50ccff b/fuzz/corpus/packet_recv_client/794c803fdde6d9ff2e24e210c934775e9b50ccff
new file mode 100644
index 0000000..5f2bda0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/794c803fdde6d9ff2e24e210c934775e9b50ccff
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7964bd479e49a66768e0f0d34b049f11af55261b b/fuzz/corpus/packet_recv_client/7964bd479e49a66768e0f0d34b049f11af55261b
new file mode 100644
index 0000000..89cb658
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7964bd479e49a66768e0f0d34b049f11af55261b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/797f599a44410aa47ee165b8af60b79e8061be8f b/fuzz/corpus/packet_recv_client/797f599a44410aa47ee165b8af60b79e8061be8f
new file mode 100644
index 0000000..a2fd922
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/797f599a44410aa47ee165b8af60b79e8061be8f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7a9540e591a6281268cec6b49427e9aedf55ce9a b/fuzz/corpus/packet_recv_client/7a9540e591a6281268cec6b49427e9aedf55ce9a
new file mode 100644
index 0000000..111fa64
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7a9540e591a6281268cec6b49427e9aedf55ce9a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7c1a4079eaefd48dcbd489adaf65a09fe2eecb9d b/fuzz/corpus/packet_recv_client/7c1a4079eaefd48dcbd489adaf65a09fe2eecb9d
new file mode 100644
index 0000000..c597fe9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7c1a4079eaefd48dcbd489adaf65a09fe2eecb9d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7c4d8cd5d347c223e74efde6f289eebe794c72d3 b/fuzz/corpus/packet_recv_client/7c4d8cd5d347c223e74efde6f289eebe794c72d3
new file mode 100644
index 0000000..5944918
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7c4d8cd5d347c223e74efde6f289eebe794c72d3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7c75415424ba05fd29312f177093d9ea6c7d2b61 b/fuzz/corpus/packet_recv_client/7c75415424ba05fd29312f177093d9ea6c7d2b61
new file mode 100644
index 0000000..9eeccfa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7c75415424ba05fd29312f177093d9ea6c7d2b61
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7d8ffcd284242079e16106284fa7529d7ff018af b/fuzz/corpus/packet_recv_client/7d8ffcd284242079e16106284fa7529d7ff018af
deleted file mode 100644
index 1d7c80b..0000000
--- a/fuzz/corpus/packet_recv_client/7d8ffcd284242079e16106284fa7529d7ff018af
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7dddb2defd001eaf54dbd9639273c73a5b43bfed b/fuzz/corpus/packet_recv_client/7dddb2defd001eaf54dbd9639273c73a5b43bfed
new file mode 100644
index 0000000..fdcbf4a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7dddb2defd001eaf54dbd9639273c73a5b43bfed
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7e347d6285ddc0eabe757fb323aa8fe0c399a66a b/fuzz/corpus/packet_recv_client/7e347d6285ddc0eabe757fb323aa8fe0c399a66a
new file mode 100644
index 0000000..9747128
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7e347d6285ddc0eabe757fb323aa8fe0c399a66a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7eb5cb06ffb6fa6eb86f0b61d275fb778c164410 b/fuzz/corpus/packet_recv_client/7eb5cb06ffb6fa6eb86f0b61d275fb778c164410
new file mode 100644
index 0000000..632a89c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7eb5cb06ffb6fa6eb86f0b61d275fb778c164410
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7eeed7fc052f725793153f24fd560d7e53a479f2 b/fuzz/corpus/packet_recv_client/7eeed7fc052f725793153f24fd560d7e53a479f2
new file mode 100644
index 0000000..1c2cd99
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7eeed7fc052f725793153f24fd560d7e53a479f2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7f2a4c94ee9ada76c9361f5f820c532a3e500cd6 b/fuzz/corpus/packet_recv_client/7f2a4c94ee9ada76c9361f5f820c532a3e500cd6
new file mode 100644
index 0000000..d025a7f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/7f2a4c94ee9ada76c9361f5f820c532a3e500cd6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/7fcf22b97cd6646959daca92f25d3713c05bd2c2 b/fuzz/corpus/packet_recv_client/7fcf22b97cd6646959daca92f25d3713c05bd2c2
deleted file mode 100644
index 168ccb9..0000000
--- a/fuzz/corpus/packet_recv_client/7fcf22b97cd6646959daca92f25d3713c05bd2c2
+++ /dev/null
@@ -1 +0,0 @@
-ˆ____
\ No newline at end of file
diff --git a/fuzz/corpus/packet_recv_client/80947be4353aeed2c39b1ed06d9012c9ff16dc88 b/fuzz/corpus/packet_recv_client/80947be4353aeed2c39b1ed06d9012c9ff16dc88
new file mode 100644
index 0000000..13b7156
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/80947be4353aeed2c39b1ed06d9012c9ff16dc88
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8098fb9cfd8ffa4ac016317c248c93aa72f9b74c b/fuzz/corpus/packet_recv_client/8098fb9cfd8ffa4ac016317c248c93aa72f9b74c
new file mode 100644
index 0000000..508383f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8098fb9cfd8ffa4ac016317c248c93aa72f9b74c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/81c24c6e253139c748a92d619e39508d023ffc66 b/fuzz/corpus/packet_recv_client/81c24c6e253139c748a92d619e39508d023ffc66
new file mode 100644
index 0000000..77375b8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/81c24c6e253139c748a92d619e39508d023ffc66
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/81e36cc226769da1c8c9636e9a874276c9b08629 b/fuzz/corpus/packet_recv_client/81e36cc226769da1c8c9636e9a874276c9b08629
new file mode 100644
index 0000000..28c28ae
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/81e36cc226769da1c8c9636e9a874276c9b08629
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/82d3cde30539a9feaa68f7f5972a2a5f60cdaba6 b/fuzz/corpus/packet_recv_client/82d3cde30539a9feaa68f7f5972a2a5f60cdaba6
new file mode 100644
index 0000000..f2ad7a7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/82d3cde30539a9feaa68f7f5972a2a5f60cdaba6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/82fe9e9e784995dafcf8bba22e61f8eb16755c35 b/fuzz/corpus/packet_recv_client/82fe9e9e784995dafcf8bba22e61f8eb16755c35
new file mode 100644
index 0000000..03fb2a2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/82fe9e9e784995dafcf8bba22e61f8eb16755c35
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8346edb99f7bea30b51771e04abc35a6bf1e2619 b/fuzz/corpus/packet_recv_client/8346edb99f7bea30b51771e04abc35a6bf1e2619
new file mode 100644
index 0000000..eab8827
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8346edb99f7bea30b51771e04abc35a6bf1e2619
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/837aa8fc35f7e6f10bbcd9f9facffd96320ce88e b/fuzz/corpus/packet_recv_client/837aa8fc35f7e6f10bbcd9f9facffd96320ce88e
new file mode 100644
index 0000000..9d361d7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/837aa8fc35f7e6f10bbcd9f9facffd96320ce88e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/83f3d8f8ceb5732d961c42894a61e4c6fbb4745c b/fuzz/corpus/packet_recv_client/83f3d8f8ceb5732d961c42894a61e4c6fbb4745c
deleted file mode 100644
index 60827a1..0000000
--- a/fuzz/corpus/packet_recv_client/83f3d8f8ceb5732d961c42894a61e4c6fbb4745c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/85747673973d39f33f4cbe4d2b760dd7e67f9341 b/fuzz/corpus/packet_recv_client/85747673973d39f33f4cbe4d2b760dd7e67f9341
new file mode 100644
index 0000000..23b6670
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/85747673973d39f33f4cbe4d2b760dd7e67f9341
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/859366bbd30ea84562c37faf4af3ba3b4bbed3a2 b/fuzz/corpus/packet_recv_client/859366bbd30ea84562c37faf4af3ba3b4bbed3a2
new file mode 100644
index 0000000..fc227ea
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/859366bbd30ea84562c37faf4af3ba3b4bbed3a2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/85d2fe1a56cd82eaf3b2271924e71cf67f3955f7 b/fuzz/corpus/packet_recv_client/85d2fe1a56cd82eaf3b2271924e71cf67f3955f7
new file mode 100644
index 0000000..694b28a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/85d2fe1a56cd82eaf3b2271924e71cf67f3955f7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/86339125aeb1df7ed224e648ec177c0431c66547 b/fuzz/corpus/packet_recv_client/86339125aeb1df7ed224e648ec177c0431c66547
new file mode 100644
index 0000000..d3b8778
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/86339125aeb1df7ed224e648ec177c0431c66547
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/86875bb9309fe67a067775f61b78bf1d2c298997 b/fuzz/corpus/packet_recv_client/86875bb9309fe67a067775f61b78bf1d2c298997
deleted file mode 100644
index 06d7030..0000000
--- a/fuzz/corpus/packet_recv_client/86875bb9309fe67a067775f61b78bf1d2c298997
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/86c8575b09c75db54e9a42f69cbbe6a0dc093cd4 b/fuzz/corpus/packet_recv_client/86c8575b09c75db54e9a42f69cbbe6a0dc093cd4
new file mode 100644
index 0000000..0136f39
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/86c8575b09c75db54e9a42f69cbbe6a0dc093cd4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8704939d94d2a3b4362d8055b39be35589e0b032 b/fuzz/corpus/packet_recv_client/8704939d94d2a3b4362d8055b39be35589e0b032
new file mode 100644
index 0000000..82abf9a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8704939d94d2a3b4362d8055b39be35589e0b032
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/87b4b32dfe9bbac844f89bce6e122eb49b6d5909 b/fuzz/corpus/packet_recv_client/87b4b32dfe9bbac844f89bce6e122eb49b6d5909
new file mode 100644
index 0000000..a1ecaac
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/87b4b32dfe9bbac844f89bce6e122eb49b6d5909
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/87fdf54916056e2e89257243381dc8a4d901719e b/fuzz/corpus/packet_recv_client/87fdf54916056e2e89257243381dc8a4d901719e
new file mode 100644
index 0000000..843e672
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/87fdf54916056e2e89257243381dc8a4d901719e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8813bf01e4948f3b9756f32425e60301625ddc4a b/fuzz/corpus/packet_recv_client/8813bf01e4948f3b9756f32425e60301625ddc4a
new file mode 100644
index 0000000..abf822d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8813bf01e4948f3b9756f32425e60301625ddc4a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/88331498a9984f544ae5e55f83713a0a0f14cbe9 b/fuzz/corpus/packet_recv_client/88331498a9984f544ae5e55f83713a0a0f14cbe9
new file mode 100644
index 0000000..493f708
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/88331498a9984f544ae5e55f83713a0a0f14cbe9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8839bc05aa20451df060f4f5842865638f7b130a b/fuzz/corpus/packet_recv_client/8839bc05aa20451df060f4f5842865638f7b130a
new file mode 100644
index 0000000..fb4539d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8839bc05aa20451df060f4f5842865638f7b130a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/88c4492acfd24ea3a852f75628304b190b8626f7 b/fuzz/corpus/packet_recv_client/88c4492acfd24ea3a852f75628304b190b8626f7
new file mode 100644
index 0000000..d845260
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/88c4492acfd24ea3a852f75628304b190b8626f7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/892303cd889c6b00c19e0cd91abe0161318214ed b/fuzz/corpus/packet_recv_client/892303cd889c6b00c19e0cd91abe0161318214ed
new file mode 100644
index 0000000..4b7f437
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/892303cd889c6b00c19e0cd91abe0161318214ed
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/89e496bd09082394b37f2aee4cf18699b6680118 b/fuzz/corpus/packet_recv_client/89e496bd09082394b37f2aee4cf18699b6680118
new file mode 100644
index 0000000..6ccaaf7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/89e496bd09082394b37f2aee4cf18699b6680118
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8b6ce570667c4c7be2881c4cd16c0b65ad895256 b/fuzz/corpus/packet_recv_client/8b6ce570667c4c7be2881c4cd16c0b65ad895256
new file mode 100644
index 0000000..71b1af8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8b6ce570667c4c7be2881c4cd16c0b65ad895256
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8c50bf6e2191f8bf4906fe3dc42f7253dc549a57 b/fuzz/corpus/packet_recv_client/8c50bf6e2191f8bf4906fe3dc42f7253dc549a57
deleted file mode 100644
index 63e0c53..0000000
--- a/fuzz/corpus/packet_recv_client/8c50bf6e2191f8bf4906fe3dc42f7253dc549a57
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8c961c647706946bd42e899bedc0f812f9e2ede5 b/fuzz/corpus/packet_recv_client/8c961c647706946bd42e899bedc0f812f9e2ede5
new file mode 100644
index 0000000..8c7b8a1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8c961c647706946bd42e899bedc0f812f9e2ede5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8d9c5acec8525c97fd2320de5f52366019a7dc40 b/fuzz/corpus/packet_recv_client/8d9c5acec8525c97fd2320de5f52366019a7dc40
new file mode 100644
index 0000000..a3a691f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8d9c5acec8525c97fd2320de5f52366019a7dc40
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8de8f1225ae6266c3484c65d92d322a842e58b5a b/fuzz/corpus/packet_recv_client/8de8f1225ae6266c3484c65d92d322a842e58b5a
new file mode 100644
index 0000000..b8edf8e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8de8f1225ae6266c3484c65d92d322a842e58b5a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8e49cef8eac79b4d9316d016ab00474506975369 b/fuzz/corpus/packet_recv_client/8e49cef8eac79b4d9316d016ab00474506975369
new file mode 100644
index 0000000..dea782b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8e49cef8eac79b4d9316d016ab00474506975369
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8e9774faccd71983c83a67dd04459f6ff68bde52 b/fuzz/corpus/packet_recv_client/8e9774faccd71983c83a67dd04459f6ff68bde52
new file mode 100644
index 0000000..05a4c7f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8e9774faccd71983c83a67dd04459f6ff68bde52
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8f28256e5bf988c439d2dd8e0536af244b660f91 b/fuzz/corpus/packet_recv_client/8f28256e5bf988c439d2dd8e0536af244b660f91
new file mode 100644
index 0000000..72f6d1c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8f28256e5bf988c439d2dd8e0536af244b660f91
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/8fbb3580750961997876bc1b7df3037257236343 b/fuzz/corpus/packet_recv_client/8fbb3580750961997876bc1b7df3037257236343
new file mode 100644
index 0000000..4ebad12
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/8fbb3580750961997876bc1b7df3037257236343
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/900feb2bab24c9ac5dcb9468bf3f893296edb615 b/fuzz/corpus/packet_recv_client/900feb2bab24c9ac5dcb9468bf3f893296edb615
new file mode 100644
index 0000000..4870cff
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/900feb2bab24c9ac5dcb9468bf3f893296edb615
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/91026cee6f8073fd21d88910fc404b730dc3b33e b/fuzz/corpus/packet_recv_client/91026cee6f8073fd21d88910fc404b730dc3b33e
new file mode 100644
index 0000000..502f4d2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/91026cee6f8073fd21d88910fc404b730dc3b33e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/91a391fc789522fea22bf3a1345dc6770be831d9 b/fuzz/corpus/packet_recv_client/91a391fc789522fea22bf3a1345dc6770be831d9
new file mode 100644
index 0000000..0697d50
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/91a391fc789522fea22bf3a1345dc6770be831d9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/91d2582b335bf3c6e3819f36351deb125dff08ff b/fuzz/corpus/packet_recv_client/91d2582b335bf3c6e3819f36351deb125dff08ff
new file mode 100644
index 0000000..c367d27
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/91d2582b335bf3c6e3819f36351deb125dff08ff
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/91d618903921618d1f414c2394b6a0f5a1dcaf18 b/fuzz/corpus/packet_recv_client/91d618903921618d1f414c2394b6a0f5a1dcaf18
new file mode 100644
index 0000000..b6afd1c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/91d618903921618d1f414c2394b6a0f5a1dcaf18
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/91f07bfbbae5fd2a98962537c252c65204bc3bb3 b/fuzz/corpus/packet_recv_client/91f07bfbbae5fd2a98962537c252c65204bc3bb3
new file mode 100644
index 0000000..bae4d11
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/91f07bfbbae5fd2a98962537c252c65204bc3bb3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/927f8136349990ac11de665e25426d81583bcc7b b/fuzz/corpus/packet_recv_client/927f8136349990ac11de665e25426d81583bcc7b
new file mode 100644
index 0000000..88e98da
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/927f8136349990ac11de665e25426d81583bcc7b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9369732cf07a285cfe74d8e0ff3a84d1ae3c9b5f b/fuzz/corpus/packet_recv_client/9369732cf07a285cfe74d8e0ff3a84d1ae3c9b5f
new file mode 100644
index 0000000..21d2d34
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9369732cf07a285cfe74d8e0ff3a84d1ae3c9b5f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/943d48e6fe85a67bbb245ca4b2cba558558e4310 b/fuzz/corpus/packet_recv_client/943d48e6fe85a67bbb245ca4b2cba558558e4310
new file mode 100644
index 0000000..91902dc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/943d48e6fe85a67bbb245ca4b2cba558558e4310
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/946227f9940731f4b1ab8bec1798f7151f2a58fd b/fuzz/corpus/packet_recv_client/946227f9940731f4b1ab8bec1798f7151f2a58fd
new file mode 100644
index 0000000..cbf2a0d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/946227f9940731f4b1ab8bec1798f7151f2a58fd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/94a1560a35fa565e903b01ad1c4d492341b4ac66 b/fuzz/corpus/packet_recv_client/94a1560a35fa565e903b01ad1c4d492341b4ac66
new file mode 100644
index 0000000..89ef62e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/94a1560a35fa565e903b01ad1c4d492341b4ac66
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/94d232cc8ec6525fdcfea979388d001e45a4766a b/fuzz/corpus/packet_recv_client/94d232cc8ec6525fdcfea979388d001e45a4766a
new file mode 100644
index 0000000..9cdcda4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/94d232cc8ec6525fdcfea979388d001e45a4766a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/955a15be8737346a678e931a26220147c508941c b/fuzz/corpus/packet_recv_client/955a15be8737346a678e931a26220147c508941c
new file mode 100644
index 0000000..540559b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/955a15be8737346a678e931a26220147c508941c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/956ca91652eed430229a9af9c7f3f27ed2967a73 b/fuzz/corpus/packet_recv_client/956ca91652eed430229a9af9c7f3f27ed2967a73
new file mode 100644
index 0000000..eadec2d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/956ca91652eed430229a9af9c7f3f27ed2967a73
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/95de48340b59cf0b049bdadc2caaf75a3ccb65bb b/fuzz/corpus/packet_recv_client/95de48340b59cf0b049bdadc2caaf75a3ccb65bb
new file mode 100644
index 0000000..7e030e9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/95de48340b59cf0b049bdadc2caaf75a3ccb65bb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/95f86710364a1bdbbafd44537e714ed7f007146f b/fuzz/corpus/packet_recv_client/95f86710364a1bdbbafd44537e714ed7f007146f
new file mode 100644
index 0000000..ee2fda7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/95f86710364a1bdbbafd44537e714ed7f007146f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/96534fd4acd476f7f97d577aeb0bed2d28c5f1e0 b/fuzz/corpus/packet_recv_client/96534fd4acd476f7f97d577aeb0bed2d28c5f1e0
new file mode 100644
index 0000000..4edceb8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/96534fd4acd476f7f97d577aeb0bed2d28c5f1e0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/97b97b124e09bcff2cff885c920e9c054416352b b/fuzz/corpus/packet_recv_client/97b97b124e09bcff2cff885c920e9c054416352b
new file mode 100644
index 0000000..8b14019
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/97b97b124e09bcff2cff885c920e9c054416352b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/989e4bd3fd7a2a47a81a6d28b79e653371010f4a b/fuzz/corpus/packet_recv_client/989e4bd3fd7a2a47a81a6d28b79e653371010f4a
new file mode 100644
index 0000000..63e266a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/989e4bd3fd7a2a47a81a6d28b79e653371010f4a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/99c78313f87aa7d3d318400a0298f2c5bdd64dd3 b/fuzz/corpus/packet_recv_client/99c78313f87aa7d3d318400a0298f2c5bdd64dd3
new file mode 100644
index 0000000..c9855d6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/99c78313f87aa7d3d318400a0298f2c5bdd64dd3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9a2dea55eec9465dacc86f6bc3c10e7edec24c38 b/fuzz/corpus/packet_recv_client/9a2dea55eec9465dacc86f6bc3c10e7edec24c38
new file mode 100644
index 0000000..6234dd2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9a2dea55eec9465dacc86f6bc3c10e7edec24c38
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9a7432e69a2a55d882017cb4246fe50640f53b9d b/fuzz/corpus/packet_recv_client/9a7432e69a2a55d882017cb4246fe50640f53b9d
new file mode 100644
index 0000000..3e4e308
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9a7432e69a2a55d882017cb4246fe50640f53b9d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9acd69ed47e2c8ac3717ae8149e6bcd0f7aad6f4 b/fuzz/corpus/packet_recv_client/9acd69ed47e2c8ac3717ae8149e6bcd0f7aad6f4
new file mode 100644
index 0000000..dcda3b6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9acd69ed47e2c8ac3717ae8149e6bcd0f7aad6f4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9b24358c08afeddbb3a24f07141f1e8f1991c11b b/fuzz/corpus/packet_recv_client/9b24358c08afeddbb3a24f07141f1e8f1991c11b
new file mode 100644
index 0000000..faca507
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9b24358c08afeddbb3a24f07141f1e8f1991c11b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9b4ff7c7690bc769c732e535da041fd97b321ef4 b/fuzz/corpus/packet_recv_client/9b4ff7c7690bc769c732e535da041fd97b321ef4
new file mode 100644
index 0000000..fb377d2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9b4ff7c7690bc769c732e535da041fd97b321ef4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9bebbf238842e8374c958c86dac8a4b2405c49e6 b/fuzz/corpus/packet_recv_client/9bebbf238842e8374c958c86dac8a4b2405c49e6
new file mode 100644
index 0000000..73cf827
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9bebbf238842e8374c958c86dac8a4b2405c49e6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9c45b3c99b882814318a9351ff36af27cbc95cb3 b/fuzz/corpus/packet_recv_client/9c45b3c99b882814318a9351ff36af27cbc95cb3
new file mode 100644
index 0000000..0270608
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9c45b3c99b882814318a9351ff36af27cbc95cb3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9cb5954a4033b46446b0fe543aa13cc63f2272f7 b/fuzz/corpus/packet_recv_client/9cb5954a4033b46446b0fe543aa13cc63f2272f7
new file mode 100644
index 0000000..4382ca1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9cb5954a4033b46446b0fe543aa13cc63f2272f7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9ce1a4ccc9b38cc4d2ebb300c1af37aa06c7ecf3 b/fuzz/corpus/packet_recv_client/9ce1a4ccc9b38cc4d2ebb300c1af37aa06c7ecf3
new file mode 100644
index 0000000..4da601e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9ce1a4ccc9b38cc4d2ebb300c1af37aa06c7ecf3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9cf95eee7b3fdaceabd177304294a45b9ccbf901 b/fuzz/corpus/packet_recv_client/9cf95eee7b3fdaceabd177304294a45b9ccbf901
new file mode 100644
index 0000000..2932f34
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9cf95eee7b3fdaceabd177304294a45b9ccbf901
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9de6c03d6069399d64b37189d17a70527e0acfb2 b/fuzz/corpus/packet_recv_client/9de6c03d6069399d64b37189d17a70527e0acfb2
new file mode 100644
index 0000000..3daf800
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9de6c03d6069399d64b37189d17a70527e0acfb2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9e274418d86f267e9a4bf459aded615c27c589c6 b/fuzz/corpus/packet_recv_client/9e274418d86f267e9a4bf459aded615c27c589c6
new file mode 100644
index 0000000..c600a51
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9e274418d86f267e9a4bf459aded615c27c589c6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9e46dc5d65c47e78e1041e5884828cac543dc278 b/fuzz/corpus/packet_recv_client/9e46dc5d65c47e78e1041e5884828cac543dc278
deleted file mode 100644
index b26492b..0000000
--- a/fuzz/corpus/packet_recv_client/9e46dc5d65c47e78e1041e5884828cac543dc278
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9e631742e81ce9f72ea6fdfd8091357e980d18cd b/fuzz/corpus/packet_recv_client/9e631742e81ce9f72ea6fdfd8091357e980d18cd
new file mode 100644
index 0000000..5c23454
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9e631742e81ce9f72ea6fdfd8091357e980d18cd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9e7413c3fc03af6b29df3cfce4c72ba94cf5f370 b/fuzz/corpus/packet_recv_client/9e7413c3fc03af6b29df3cfce4c72ba94cf5f370
new file mode 100644
index 0000000..b6ed36c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9e7413c3fc03af6b29df3cfce4c72ba94cf5f370
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9ef4d49322226b775152110473f325d0e594d384 b/fuzz/corpus/packet_recv_client/9ef4d49322226b775152110473f325d0e594d384
new file mode 100644
index 0000000..808e795
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9ef4d49322226b775152110473f325d0e594d384
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/9f4e3fb68dde98c64dff8172d93126a15bfbeeda b/fuzz/corpus/packet_recv_client/9f4e3fb68dde98c64dff8172d93126a15bfbeeda
new file mode 100644
index 0000000..22a6894
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/9f4e3fb68dde98c64dff8172d93126a15bfbeeda
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a0b72a2da45e211cd9770a4f29c609d69795424c b/fuzz/corpus/packet_recv_client/a0b72a2da45e211cd9770a4f29c609d69795424c
new file mode 100644
index 0000000..813c2d6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a0b72a2da45e211cd9770a4f29c609d69795424c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a0c2272823beeb933268b3663f74d2893dc2c4ef b/fuzz/corpus/packet_recv_client/a0c2272823beeb933268b3663f74d2893dc2c4ef
new file mode 100644
index 0000000..0bc72c5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a0c2272823beeb933268b3663f74d2893dc2c4ef
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a189d05a01c606413ec55f7931c77a641a41b4c6 b/fuzz/corpus/packet_recv_client/a189d05a01c606413ec55f7931c77a641a41b4c6
new file mode 100644
index 0000000..c626467
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a189d05a01c606413ec55f7931c77a641a41b4c6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a3011c0e5d0575aeaaf36002a0e022c86148f33a b/fuzz/corpus/packet_recv_client/a3011c0e5d0575aeaaf36002a0e022c86148f33a
new file mode 100644
index 0000000..f173085
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a3011c0e5d0575aeaaf36002a0e022c86148f33a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a49f600d31c8dd2117ee4c6d05402e647ea0dfff b/fuzz/corpus/packet_recv_client/a49f600d31c8dd2117ee4c6d05402e647ea0dfff
new file mode 100644
index 0000000..a52599b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a49f600d31c8dd2117ee4c6d05402e647ea0dfff
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a7bf883bc0cb76338c211b135e59218f04c51ff8 b/fuzz/corpus/packet_recv_client/a7bf883bc0cb76338c211b135e59218f04c51ff8
new file mode 100644
index 0000000..e262bb5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a7bf883bc0cb76338c211b135e59218f04c51ff8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a7c00395b2d0f3b7fe9ee068d25d44e1cedf1301 b/fuzz/corpus/packet_recv_client/a7c00395b2d0f3b7fe9ee068d25d44e1cedf1301
deleted file mode 100644
index 3ce9a27..0000000
--- a/fuzz/corpus/packet_recv_client/a7c00395b2d0f3b7fe9ee068d25d44e1cedf1301
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a7e31ce12c38d71f0d95545281559fb75dd5e2f6 b/fuzz/corpus/packet_recv_client/a7e31ce12c38d71f0d95545281559fb75dd5e2f6
new file mode 100644
index 0000000..e2753a4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a7e31ce12c38d71f0d95545281559fb75dd5e2f6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a8479591a2c1d3a52e9c5635b300008084101682 b/fuzz/corpus/packet_recv_client/a8479591a2c1d3a52e9c5635b300008084101682
new file mode 100644
index 0000000..cd54854
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a8479591a2c1d3a52e9c5635b300008084101682
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a86b12967b153bac32c09005e16f0687f41dc97b b/fuzz/corpus/packet_recv_client/a86b12967b153bac32c09005e16f0687f41dc97b
new file mode 100644
index 0000000..edc44b2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a86b12967b153bac32c09005e16f0687f41dc97b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a87d835330196f3a243d004bb7d186f616551f2a b/fuzz/corpus/packet_recv_client/a87d835330196f3a243d004bb7d186f616551f2a
new file mode 100644
index 0000000..e006c58
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a87d835330196f3a243d004bb7d186f616551f2a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a8cd542328d6208430b597711374f98910b32a08 b/fuzz/corpus/packet_recv_client/a8cd542328d6208430b597711374f98910b32a08
new file mode 100644
index 0000000..f166e38
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a8cd542328d6208430b597711374f98910b32a08
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a900df5d3fd47fd965130bfa68e77bd5738cac6f b/fuzz/corpus/packet_recv_client/a900df5d3fd47fd965130bfa68e77bd5738cac6f
new file mode 100644
index 0000000..d0b2b78
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a900df5d3fd47fd965130bfa68e77bd5738cac6f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a939fb8eaf7eb4a1b7f7b88fb9cabeceac54717f b/fuzz/corpus/packet_recv_client/a939fb8eaf7eb4a1b7f7b88fb9cabeceac54717f
new file mode 100644
index 0000000..0b94fdc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a939fb8eaf7eb4a1b7f7b88fb9cabeceac54717f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a943ce9cbce688350177f60b880765890f0d444c b/fuzz/corpus/packet_recv_client/a943ce9cbce688350177f60b880765890f0d444c
new file mode 100644
index 0000000..5a5c313
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a943ce9cbce688350177f60b880765890f0d444c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/a9edc456171402508564d18166105fdfe07bd923 b/fuzz/corpus/packet_recv_client/a9edc456171402508564d18166105fdfe07bd923
new file mode 100644
index 0000000..1401978
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/a9edc456171402508564d18166105fdfe07bd923
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/aaeaec41ff2c2e6ad482b7999d48b75e5aae34bb b/fuzz/corpus/packet_recv_client/aaeaec41ff2c2e6ad482b7999d48b75e5aae34bb
deleted file mode 100644
index 4571cdf..0000000
--- a/fuzz/corpus/packet_recv_client/aaeaec41ff2c2e6ad482b7999d48b75e5aae34bb
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ac7e2a47618c4c50eb42f8cc1f167b02c84345e5 b/fuzz/corpus/packet_recv_client/ac7e2a47618c4c50eb42f8cc1f167b02c84345e5
new file mode 100644
index 0000000..f64ba2e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ac7e2a47618c4c50eb42f8cc1f167b02c84345e5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ace94bc2da511a62a7659546d35998ceb0b6c5a0 b/fuzz/corpus/packet_recv_client/ace94bc2da511a62a7659546d35998ceb0b6c5a0
new file mode 100644
index 0000000..5f4bd55
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ace94bc2da511a62a7659546d35998ceb0b6c5a0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ada6f48b8cadfbdd2f9a5370673af8d88a5f8ba6 b/fuzz/corpus/packet_recv_client/ada6f48b8cadfbdd2f9a5370673af8d88a5f8ba6
new file mode 100644
index 0000000..696d0e4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ada6f48b8cadfbdd2f9a5370673af8d88a5f8ba6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ae98de71ba6b3871864f0d5dccc2966064d39408 b/fuzz/corpus/packet_recv_client/ae98de71ba6b3871864f0d5dccc2966064d39408
new file mode 100644
index 0000000..142234b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ae98de71ba6b3871864f0d5dccc2966064d39408
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/aecb642aa973ffca73946962b885ecf02555e030 b/fuzz/corpus/packet_recv_client/aecb642aa973ffca73946962b885ecf02555e030
new file mode 100644
index 0000000..6c8e1e9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/aecb642aa973ffca73946962b885ecf02555e030
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/afdc3f9e80a405164fe08822bd22e2a202388074 b/fuzz/corpus/packet_recv_client/afdc3f9e80a405164fe08822bd22e2a202388074
new file mode 100644
index 0000000..93f61c8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/afdc3f9e80a405164fe08822bd22e2a202388074
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b08508829fa5a6a0495db428324ee60f0c66a103 b/fuzz/corpus/packet_recv_client/b08508829fa5a6a0495db428324ee60f0c66a103
new file mode 100644
index 0000000..81feab5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b08508829fa5a6a0495db428324ee60f0c66a103
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b098fcb03b10b9ad803b6a66153c741f8d3ca373 b/fuzz/corpus/packet_recv_client/b098fcb03b10b9ad803b6a66153c741f8d3ca373
new file mode 100644
index 0000000..02e0633
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b098fcb03b10b9ad803b6a66153c741f8d3ca373
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b156edc32c038d6ec10a446916165fd3ae4a8da4 b/fuzz/corpus/packet_recv_client/b156edc32c038d6ec10a446916165fd3ae4a8da4
new file mode 100644
index 0000000..ca5777a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b156edc32c038d6ec10a446916165fd3ae4a8da4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b1660d60f253be4290974956024dae924b2959cd b/fuzz/corpus/packet_recv_client/b1660d60f253be4290974956024dae924b2959cd
new file mode 100644
index 0000000..ff87732
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b1660d60f253be4290974956024dae924b2959cd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b1c998b19cfc88458b68f54aa54c72f0981983fa b/fuzz/corpus/packet_recv_client/b1c998b19cfc88458b68f54aa54c72f0981983fa
new file mode 100644
index 0000000..f13483e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b1c998b19cfc88458b68f54aa54c72f0981983fa
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b2276f89583f7d7e5bd602fa87a9199acf768687 b/fuzz/corpus/packet_recv_client/b2276f89583f7d7e5bd602fa87a9199acf768687
new file mode 100644
index 0000000..64b7151
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b2276f89583f7d7e5bd602fa87a9199acf768687
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b33d6c2e2bc3830ac3a03f3d4c84fc57791820e9 b/fuzz/corpus/packet_recv_client/b33d6c2e2bc3830ac3a03f3d4c84fc57791820e9
new file mode 100644
index 0000000..e762209
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b33d6c2e2bc3830ac3a03f3d4c84fc57791820e9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b35dbe7543199334d179c24ad450b59a83cf6345 b/fuzz/corpus/packet_recv_client/b35dbe7543199334d179c24ad450b59a83cf6345
new file mode 100644
index 0000000..dca758b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b35dbe7543199334d179c24ad450b59a83cf6345
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b3980af80612fbb76c351728e65edfb4e477bcf9 b/fuzz/corpus/packet_recv_client/b3980af80612fbb76c351728e65edfb4e477bcf9
new file mode 100644
index 0000000..341bb8f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b3980af80612fbb76c351728e65edfb4e477bcf9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b3b7fccc125a66236d994528732fae327e19c50b b/fuzz/corpus/packet_recv_client/b3b7fccc125a66236d994528732fae327e19c50b
new file mode 100644
index 0000000..99ac5e3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b3b7fccc125a66236d994528732fae327e19c50b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b41a9289be7e5215b00cce1a91aeae890da431c2 b/fuzz/corpus/packet_recv_client/b41a9289be7e5215b00cce1a91aeae890da431c2
new file mode 100644
index 0000000..b97bb17
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b41a9289be7e5215b00cce1a91aeae890da431c2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b5f444a820e67d8cbbc8daacf51129a32daa447a b/fuzz/corpus/packet_recv_client/b5f444a820e67d8cbbc8daacf51129a32daa447a
new file mode 100644
index 0000000..b635a37
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b5f444a820e67d8cbbc8daacf51129a32daa447a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b5fcf9be844498bcbb28194096bbce575c0d7c43 b/fuzz/corpus/packet_recv_client/b5fcf9be844498bcbb28194096bbce575c0d7c43
new file mode 100644
index 0000000..75f951e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b5fcf9be844498bcbb28194096bbce575c0d7c43
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b6e2624d013a1443c76919127eefab976f084b11 b/fuzz/corpus/packet_recv_client/b6e2624d013a1443c76919127eefab976f084b11
deleted file mode 100644
index 8d37612..0000000
--- a/fuzz/corpus/packet_recv_client/b6e2624d013a1443c76919127eefab976f084b11
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b73f799495c99f8fc2e8dcf90ae1fbe22a721251 b/fuzz/corpus/packet_recv_client/b73f799495c99f8fc2e8dcf90ae1fbe22a721251
new file mode 100644
index 0000000..e831a5d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b73f799495c99f8fc2e8dcf90ae1fbe22a721251
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b784b8d1608a82833f3e83feef78d944f9aefa7a b/fuzz/corpus/packet_recv_client/b784b8d1608a82833f3e83feef78d944f9aefa7a
new file mode 100644
index 0000000..e099b2d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b784b8d1608a82833f3e83feef78d944f9aefa7a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b7dbeb9ab334b19e32ae1f7901a1a1d6017da61e b/fuzz/corpus/packet_recv_client/b7dbeb9ab334b19e32ae1f7901a1a1d6017da61e
new file mode 100644
index 0000000..9cd6bdd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b7dbeb9ab334b19e32ae1f7901a1a1d6017da61e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b88002381964743d7670b9c81f5511b3fc15da71 b/fuzz/corpus/packet_recv_client/b88002381964743d7670b9c81f5511b3fc15da71
new file mode 100644
index 0000000..7bbdef9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b88002381964743d7670b9c81f5511b3fc15da71
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/b8e73559fff2c607e9fce726d731c0fc9a86cae5 b/fuzz/corpus/packet_recv_client/b8e73559fff2c607e9fce726d731c0fc9a86cae5
new file mode 100644
index 0000000..e1f74db
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/b8e73559fff2c607e9fce726d731c0fc9a86cae5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/bb0827aeebcd50bcd342585cee7643f61cefd7c5 b/fuzz/corpus/packet_recv_client/bb0827aeebcd50bcd342585cee7643f61cefd7c5
new file mode 100644
index 0000000..a0579f2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/bb0827aeebcd50bcd342585cee7643f61cefd7c5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/bba95c99463526b1ba5299b5a2df52a70e9cd81d b/fuzz/corpus/packet_recv_client/bba95c99463526b1ba5299b5a2df52a70e9cd81d
new file mode 100644
index 0000000..0a1b18a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/bba95c99463526b1ba5299b5a2df52a70e9cd81d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/bc0326e172b563d17708644dba31dae5819cc9f9 b/fuzz/corpus/packet_recv_client/bc0326e172b563d17708644dba31dae5819cc9f9
new file mode 100644
index 0000000..cd9128d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/bc0326e172b563d17708644dba31dae5819cc9f9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/bc4c2c86309011b7f73611611f37da66317b5720 b/fuzz/corpus/packet_recv_client/bc4c2c86309011b7f73611611f37da66317b5720
new file mode 100644
index 0000000..4a1a0dd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/bc4c2c86309011b7f73611611f37da66317b5720
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/bc7842c2655cf689366651bf9b955b28ad6f31ec b/fuzz/corpus/packet_recv_client/bc7842c2655cf689366651bf9b955b28ad6f31ec
new file mode 100644
index 0000000..e715615
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/bc7842c2655cf689366651bf9b955b28ad6f31ec
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/bcf0fbafd6bb1b604f17076f10692cc31b8f56f3 b/fuzz/corpus/packet_recv_client/bcf0fbafd6bb1b604f17076f10692cc31b8f56f3
new file mode 100644
index 0000000..e71334f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/bcf0fbafd6bb1b604f17076f10692cc31b8f56f3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/bea3a64d61b9230d96d99d2413ece89a4fa0580c b/fuzz/corpus/packet_recv_client/bea3a64d61b9230d96d99d2413ece89a4fa0580c
new file mode 100644
index 0000000..08136d5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/bea3a64d61b9230d96d99d2413ece89a4fa0580c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/beafca6899a43b0acda546d30122a89376183455 b/fuzz/corpus/packet_recv_client/beafca6899a43b0acda546d30122a89376183455
new file mode 100644
index 0000000..49d487f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/beafca6899a43b0acda546d30122a89376183455
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/becd41a137e665a83c401607a0dec091849e3106 b/fuzz/corpus/packet_recv_client/becd41a137e665a83c401607a0dec091849e3106
new file mode 100644
index 0000000..60180ab
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/becd41a137e665a83c401607a0dec091849e3106
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/bf53692a004f3b67a550d7d927cf9ec0ee188377 b/fuzz/corpus/packet_recv_client/bf53692a004f3b67a550d7d927cf9ec0ee188377
new file mode 100644
index 0000000..70846c6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/bf53692a004f3b67a550d7d927cf9ec0ee188377
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/bf9556af2c3585a3d3180c38f2150a6c18e64c5a b/fuzz/corpus/packet_recv_client/bf9556af2c3585a3d3180c38f2150a6c18e64c5a
new file mode 100644
index 0000000..53de6af
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/bf9556af2c3585a3d3180c38f2150a6c18e64c5a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c029530489337917e1904a99e1a6c832db12055f b/fuzz/corpus/packet_recv_client/c029530489337917e1904a99e1a6c832db12055f
new file mode 100644
index 0000000..aa50dd3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c029530489337917e1904a99e1a6c832db12055f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c055f83bb6ba13e6ce7d7a1d6876369c409a27d9 b/fuzz/corpus/packet_recv_client/c055f83bb6ba13e6ce7d7a1d6876369c409a27d9
new file mode 100644
index 0000000..b82575b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c055f83bb6ba13e6ce7d7a1d6876369c409a27d9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c0a57673598a057f6fa51f2319c2ab93253e7d30 b/fuzz/corpus/packet_recv_client/c0a57673598a057f6fa51f2319c2ab93253e7d30
new file mode 100644
index 0000000..15f12ec
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c0a57673598a057f6fa51f2319c2ab93253e7d30
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c16815b5933b8bd847e6a79328c92c1ae6caee24 b/fuzz/corpus/packet_recv_client/c16815b5933b8bd847e6a79328c92c1ae6caee24
new file mode 100644
index 0000000..8185e55
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c16815b5933b8bd847e6a79328c92c1ae6caee24
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c1ec1fc2ec4c20ce219b4ac44ccd0715e43f5224 b/fuzz/corpus/packet_recv_client/c1ec1fc2ec4c20ce219b4ac44ccd0715e43f5224
new file mode 100644
index 0000000..d2ca397
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c1ec1fc2ec4c20ce219b4ac44ccd0715e43f5224
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c1ff45d5b129fc9fadf049ca66d7f0a42de686e9 b/fuzz/corpus/packet_recv_client/c1ff45d5b129fc9fadf049ca66d7f0a42de686e9
new file mode 100644
index 0000000..9fe8b61
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c1ff45d5b129fc9fadf049ca66d7f0a42de686e9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c2ad5674c5ceea9394b352524c84d29e1e50c1d4 b/fuzz/corpus/packet_recv_client/c2ad5674c5ceea9394b352524c84d29e1e50c1d4
deleted file mode 100644
index 94f094c..0000000
--- a/fuzz/corpus/packet_recv_client/c2ad5674c5ceea9394b352524c84d29e1e50c1d4
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c39a62d97703489161616d552c38b3d507f9dc99 b/fuzz/corpus/packet_recv_client/c39a62d97703489161616d552c38b3d507f9dc99
new file mode 100644
index 0000000..5bbf16c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c39a62d97703489161616d552c38b3d507f9dc99
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c3e73ec79ceb235f231b895d75bbd8bc66a58a49 b/fuzz/corpus/packet_recv_client/c3e73ec79ceb235f231b895d75bbd8bc66a58a49
new file mode 100644
index 0000000..0e2650c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c3e73ec79ceb235f231b895d75bbd8bc66a58a49
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c407a29433e4c906c363f7cefd3635893a135798 b/fuzz/corpus/packet_recv_client/c407a29433e4c906c363f7cefd3635893a135798
new file mode 100644
index 0000000..7c5086f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c407a29433e4c906c363f7cefd3635893a135798
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c4249b457490a0ef8e7760e846e8b94159bc0d31 b/fuzz/corpus/packet_recv_client/c4249b457490a0ef8e7760e846e8b94159bc0d31
deleted file mode 100644
index 93c000f..0000000
--- a/fuzz/corpus/packet_recv_client/c4249b457490a0ef8e7760e846e8b94159bc0d31
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c42d435e3e88aa769c6c21c376901caf49189037 b/fuzz/corpus/packet_recv_client/c42d435e3e88aa769c6c21c376901caf49189037
new file mode 100644
index 0000000..fac0e08
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c42d435e3e88aa769c6c21c376901caf49189037
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c5624f4f795e93cc2665a0455b30e3eee9f6359f b/fuzz/corpus/packet_recv_client/c5624f4f795e93cc2665a0455b30e3eee9f6359f
new file mode 100644
index 0000000..837ce6b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c5624f4f795e93cc2665a0455b30e3eee9f6359f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c5b4d22666888afe0ef24a174e3c3a76b0f0648b b/fuzz/corpus/packet_recv_client/c5b4d22666888afe0ef24a174e3c3a76b0f0648b
new file mode 100644
index 0000000..5d4deba
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c5b4d22666888afe0ef24a174e3c3a76b0f0648b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c63dee070ffae220997c0b5080d4ae907b502b7d b/fuzz/corpus/packet_recv_client/c63dee070ffae220997c0b5080d4ae907b502b7d
new file mode 100644
index 0000000..d70717f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c63dee070ffae220997c0b5080d4ae907b502b7d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c6dc3bdd865d7d92ffcfdd9f239b2b3ed0387ace b/fuzz/corpus/packet_recv_client/c6dc3bdd865d7d92ffcfdd9f239b2b3ed0387ace
new file mode 100644
index 0000000..c91cd51
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c6dc3bdd865d7d92ffcfdd9f239b2b3ed0387ace
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c6edc46c243eefd5e97fb61a24d71b11572bf6dc b/fuzz/corpus/packet_recv_client/c6edc46c243eefd5e97fb61a24d71b11572bf6dc
new file mode 100644
index 0000000..1f2711f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c6edc46c243eefd5e97fb61a24d71b11572bf6dc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/c802df77265c33498ff9da57793c00c85caf46c4 b/fuzz/corpus/packet_recv_client/c802df77265c33498ff9da57793c00c85caf46c4
new file mode 100644
index 0000000..0b4da37
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/c802df77265c33498ff9da57793c00c85caf46c4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ca8525e8bac05469e95b5f9d88da2ae996f8c413 b/fuzz/corpus/packet_recv_client/ca8525e8bac05469e95b5f9d88da2ae996f8c413
new file mode 100644
index 0000000..7223f89
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ca8525e8bac05469e95b5f9d88da2ae996f8c413
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/cbe6e2b7994238785b7e0fcefa1cf97e78a8bc53 b/fuzz/corpus/packet_recv_client/cbe6e2b7994238785b7e0fcefa1cf97e78a8bc53
new file mode 100644
index 0000000..fe38bcd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/cbe6e2b7994238785b7e0fcefa1cf97e78a8bc53
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/cbe8699e9fa44858f4ec03e27b9100c29935cee5 b/fuzz/corpus/packet_recv_client/cbe8699e9fa44858f4ec03e27b9100c29935cee5
new file mode 100644
index 0000000..ebdd958
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/cbe8699e9fa44858f4ec03e27b9100c29935cee5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/cc296af6041d87cc3c7804a0e9da19f5f0972234 b/fuzz/corpus/packet_recv_client/cc296af6041d87cc3c7804a0e9da19f5f0972234
new file mode 100644
index 0000000..9789b71
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/cc296af6041d87cc3c7804a0e9da19f5f0972234
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/cd032000137faf302fd4a76310546d49e6a3dd46 b/fuzz/corpus/packet_recv_client/cd032000137faf302fd4a76310546d49e6a3dd46
deleted file mode 100644
index 50ff3bc..0000000
--- a/fuzz/corpus/packet_recv_client/cd032000137faf302fd4a76310546d49e6a3dd46
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ce401aae0926ddd5f0cd833639217448a047b79d b/fuzz/corpus/packet_recv_client/ce401aae0926ddd5f0cd833639217448a047b79d
new file mode 100644
index 0000000..bf5882c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ce401aae0926ddd5f0cd833639217448a047b79d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/cedb60df920dae7d15acbab1e3ac067c2760bf34 b/fuzz/corpus/packet_recv_client/cedb60df920dae7d15acbab1e3ac067c2760bf34
new file mode 100644
index 0000000..b6dd6af
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/cedb60df920dae7d15acbab1e3ac067c2760bf34
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/cee25f782307da6345822d204675d390f51bcd7b b/fuzz/corpus/packet_recv_client/cee25f782307da6345822d204675d390f51bcd7b
new file mode 100644
index 0000000..b2752a3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/cee25f782307da6345822d204675d390f51bcd7b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/cfbf7b2b4a22f6e3b7a9165d755cdde9cc27a67b b/fuzz/corpus/packet_recv_client/cfbf7b2b4a22f6e3b7a9165d755cdde9cc27a67b
new file mode 100644
index 0000000..533549c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/cfbf7b2b4a22f6e3b7a9165d755cdde9cc27a67b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d011c59a517c0daa0143e1c766d8b87a41a7fa12 b/fuzz/corpus/packet_recv_client/d011c59a517c0daa0143e1c766d8b87a41a7fa12
new file mode 100644
index 0000000..72fe184
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d011c59a517c0daa0143e1c766d8b87a41a7fa12
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d06578becfc03e0d53bb29db0b644ab2b65e1d74 b/fuzz/corpus/packet_recv_client/d06578becfc03e0d53bb29db0b644ab2b65e1d74
new file mode 100644
index 0000000..4cd60e5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d06578becfc03e0d53bb29db0b644ab2b65e1d74
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d15e0e3978fc076e1778eb4be29330f17d183b22 b/fuzz/corpus/packet_recv_client/d15e0e3978fc076e1778eb4be29330f17d183b22
new file mode 100644
index 0000000..40e45a8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d15e0e3978fc076e1778eb4be29330f17d183b22
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d3e1cce0f0bd89c603640135a3c4545789308c04 b/fuzz/corpus/packet_recv_client/d3e1cce0f0bd89c603640135a3c4545789308c04
new file mode 100644
index 0000000..ec721f9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d3e1cce0f0bd89c603640135a3c4545789308c04
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d429c16bdaba0df1958e6df4324976c76c043d09 b/fuzz/corpus/packet_recv_client/d429c16bdaba0df1958e6df4324976c76c043d09
new file mode 100644
index 0000000..520ceaf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d429c16bdaba0df1958e6df4324976c76c043d09
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d4eef6ca9dbabc98fe68f1dfe1742a3423274b21 b/fuzz/corpus/packet_recv_client/d4eef6ca9dbabc98fe68f1dfe1742a3423274b21
new file mode 100644
index 0000000..37f12f3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d4eef6ca9dbabc98fe68f1dfe1742a3423274b21
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d5dbe59aa8979228c5af553d99b3d3a67add92de b/fuzz/corpus/packet_recv_client/d5dbe59aa8979228c5af553d99b3d3a67add92de
new file mode 100644
index 0000000..e96ed6b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d5dbe59aa8979228c5af553d99b3d3a67add92de
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d5ef79a94faa952c47189bdb4e76a1d766528f3c b/fuzz/corpus/packet_recv_client/d5ef79a94faa952c47189bdb4e76a1d766528f3c
new file mode 100644
index 0000000..be1215b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d5ef79a94faa952c47189bdb4e76a1d766528f3c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d63559e1668e83852cb73b418d04cbc041475e12 b/fuzz/corpus/packet_recv_client/d63559e1668e83852cb73b418d04cbc041475e12
new file mode 100644
index 0000000..63b9ffc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d63559e1668e83852cb73b418d04cbc041475e12
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d6441477b92812e841f497d019dbf795444a950d b/fuzz/corpus/packet_recv_client/d6441477b92812e841f497d019dbf795444a950d
new file mode 100644
index 0000000..47d3836
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d6441477b92812e841f497d019dbf795444a950d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d9923766254039e4fc34d8e3756e6eea88c59d96 b/fuzz/corpus/packet_recv_client/d9923766254039e4fc34d8e3756e6eea88c59d96
new file mode 100644
index 0000000..70d622d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d9923766254039e4fc34d8e3756e6eea88c59d96
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/d9deaa8eb1eb639f2680ba42c888c061cb1c494b b/fuzz/corpus/packet_recv_client/d9deaa8eb1eb639f2680ba42c888c061cb1c494b
new file mode 100644
index 0000000..d52db5c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/d9deaa8eb1eb639f2680ba42c888c061cb1c494b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/da46722b72c365170b58580fd17bd0ee805cc006 b/fuzz/corpus/packet_recv_client/da46722b72c365170b58580fd17bd0ee805cc006
new file mode 100644
index 0000000..741f872
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/da46722b72c365170b58580fd17bd0ee805cc006
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/dab742352d0d72f641609d2fec62b5c07d5cf23c b/fuzz/corpus/packet_recv_client/dab742352d0d72f641609d2fec62b5c07d5cf23c
new file mode 100644
index 0000000..4fa7ac3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/dab742352d0d72f641609d2fec62b5c07d5cf23c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/db0525aae4cf73539ac8229daa337f3dcbd0bb31 b/fuzz/corpus/packet_recv_client/db0525aae4cf73539ac8229daa337f3dcbd0bb31
new file mode 100644
index 0000000..2186dd5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/db0525aae4cf73539ac8229daa337f3dcbd0bb31
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/db3d3c5322f3db7b1927a6e96af694af5b21a207 b/fuzz/corpus/packet_recv_client/db3d3c5322f3db7b1927a6e96af694af5b21a207
new file mode 100644
index 0000000..4150c15
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/db3d3c5322f3db7b1927a6e96af694af5b21a207
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/db621f7125ed256f866dae1a3e67a3483df18e55 b/fuzz/corpus/packet_recv_client/db621f7125ed256f866dae1a3e67a3483df18e55
new file mode 100644
index 0000000..bd8ea2f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/db621f7125ed256f866dae1a3e67a3483df18e55
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/dbb3ba627b891fdd76b728ccd5a3cdb6eb31e134 b/fuzz/corpus/packet_recv_client/dbb3ba627b891fdd76b728ccd5a3cdb6eb31e134
new file mode 100644
index 0000000..22fc0dd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/dbb3ba627b891fdd76b728ccd5a3cdb6eb31e134
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/dc164c90f197e2932a220cbd629f4acbacf035dc b/fuzz/corpus/packet_recv_client/dc164c90f197e2932a220cbd629f4acbacf035dc
new file mode 100644
index 0000000..90e6f47
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/dc164c90f197e2932a220cbd629f4acbacf035dc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/dd768aef149f3357373d5e19b1f7a0f2bf41da92 b/fuzz/corpus/packet_recv_client/dd768aef149f3357373d5e19b1f7a0f2bf41da92
new file mode 100644
index 0000000..491747e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/dd768aef149f3357373d5e19b1f7a0f2bf41da92
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/de384b33313bca7fd43336443d43951a7f423caf b/fuzz/corpus/packet_recv_client/de384b33313bca7fd43336443d43951a7f423caf
new file mode 100644
index 0000000..f1af435
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/de384b33313bca7fd43336443d43951a7f423caf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/df0fee6d5d125c8a80ce24c4bf4dd372b69a97b3 b/fuzz/corpus/packet_recv_client/df0fee6d5d125c8a80ce24c4bf4dd372b69a97b3
new file mode 100644
index 0000000..cad8990
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/df0fee6d5d125c8a80ce24c4bf4dd372b69a97b3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e00617b88eac286e186cc98d08f9f85eecad3bc2 b/fuzz/corpus/packet_recv_client/e00617b88eac286e186cc98d08f9f85eecad3bc2
new file mode 100644
index 0000000..2ff2a6b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e00617b88eac286e186cc98d08f9f85eecad3bc2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e02ab975dcc05ac55e1864e633c03e94e2d80f36 b/fuzz/corpus/packet_recv_client/e02ab975dcc05ac55e1864e633c03e94e2d80f36
new file mode 100644
index 0000000..25ce53f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e02ab975dcc05ac55e1864e633c03e94e2d80f36
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e0fadefc0b12814f22b62d73d2dc563533e55d98 b/fuzz/corpus/packet_recv_client/e0fadefc0b12814f22b62d73d2dc563533e55d98
new file mode 100644
index 0000000..87e5af1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e0fadefc0b12814f22b62d73d2dc563533e55d98
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e342526ac844e8275ad01e8a1f35e7b823f8775d b/fuzz/corpus/packet_recv_client/e342526ac844e8275ad01e8a1f35e7b823f8775d
new file mode 100644
index 0000000..181ce7e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e342526ac844e8275ad01e8a1f35e7b823f8775d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e38365c6f09daf4f46d72005a5a2898f07d34d10 b/fuzz/corpus/packet_recv_client/e38365c6f09daf4f46d72005a5a2898f07d34d10
new file mode 100644
index 0000000..710609f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e38365c6f09daf4f46d72005a5a2898f07d34d10
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e40b23c61f2c7439f720ba3cfe179b598a96ff3e b/fuzz/corpus/packet_recv_client/e40b23c61f2c7439f720ba3cfe179b598a96ff3e
new file mode 100644
index 0000000..88211b7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e40b23c61f2c7439f720ba3cfe179b598a96ff3e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e54f40c0bf0a4ba81354e3997ff58622e98d1ff3 b/fuzz/corpus/packet_recv_client/e54f40c0bf0a4ba81354e3997ff58622e98d1ff3
new file mode 100644
index 0000000..e81aa3f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e54f40c0bf0a4ba81354e3997ff58622e98d1ff3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e5e00af7cc4f5325c2c8f0de9b9b5fe88bc5e7f2 b/fuzz/corpus/packet_recv_client/e5e00af7cc4f5325c2c8f0de9b9b5fe88bc5e7f2
new file mode 100644
index 0000000..acd57d2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e5e00af7cc4f5325c2c8f0de9b9b5fe88bc5e7f2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e74df735626c1ed40eaa6559ef8db8a092b6d973 b/fuzz/corpus/packet_recv_client/e74df735626c1ed40eaa6559ef8db8a092b6d973
new file mode 100644
index 0000000..66238d8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e74df735626c1ed40eaa6559ef8db8a092b6d973
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e84cffab25042ca36d1d352ade3b9bb3dee539a1 b/fuzz/corpus/packet_recv_client/e84cffab25042ca36d1d352ade3b9bb3dee539a1
new file mode 100644
index 0000000..e659042
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e84cffab25042ca36d1d352ade3b9bb3dee539a1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e9bad59bda4318678ec0d41e6e9e454c67ca82b3 b/fuzz/corpus/packet_recv_client/e9bad59bda4318678ec0d41e6e9e454c67ca82b3
new file mode 100644
index 0000000..7c0eaaa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e9bad59bda4318678ec0d41e6e9e454c67ca82b3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/e9cfb9fc9ba54fd16707559b43360e6ef6865ae9 b/fuzz/corpus/packet_recv_client/e9cfb9fc9ba54fd16707559b43360e6ef6865ae9
new file mode 100644
index 0000000..42cc016
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/e9cfb9fc9ba54fd16707559b43360e6ef6865ae9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ea54dd18fc3cbc930508280419389fdb0fb6dcab b/fuzz/corpus/packet_recv_client/ea54dd18fc3cbc930508280419389fdb0fb6dcab
new file mode 100644
index 0000000..d120109
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ea54dd18fc3cbc930508280419389fdb0fb6dcab
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ea8b5e7208dbed91a6e549568d5ae6865a3b64a8 b/fuzz/corpus/packet_recv_client/ea8b5e7208dbed91a6e549568d5ae6865a3b64a8
new file mode 100644
index 0000000..e2e1d6b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ea8b5e7208dbed91a6e549568d5ae6865a3b64a8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ea8d8b5d3aa618e15ecd5a6af188c87a9a1872ad b/fuzz/corpus/packet_recv_client/ea8d8b5d3aa618e15ecd5a6af188c87a9a1872ad
new file mode 100644
index 0000000..1eecb60
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ea8d8b5d3aa618e15ecd5a6af188c87a9a1872ad
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/eaeca33ae6a5414285bb521349377907f9c2afbd b/fuzz/corpus/packet_recv_client/eaeca33ae6a5414285bb521349377907f9c2afbd
new file mode 100644
index 0000000..9ee7748
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/eaeca33ae6a5414285bb521349377907f9c2afbd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/eb7adfe7e08c94b16f9cce0d6e42a437ef63c998 b/fuzz/corpus/packet_recv_client/eb7adfe7e08c94b16f9cce0d6e42a437ef63c998
new file mode 100644
index 0000000..d898fef
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/eb7adfe7e08c94b16f9cce0d6e42a437ef63c998
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/eba756583f4026932e9ec9f14a0ea54cc1783b62 b/fuzz/corpus/packet_recv_client/eba756583f4026932e9ec9f14a0ea54cc1783b62
deleted file mode 100644
index e32f2ec..0000000
--- a/fuzz/corpus/packet_recv_client/eba756583f4026932e9ec9f14a0ea54cc1783b62
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ebbfaabe2e2b04b2db9f986779d08da22dedc5e4 b/fuzz/corpus/packet_recv_client/ebbfaabe2e2b04b2db9f986779d08da22dedc5e4
new file mode 100644
index 0000000..08042f6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ebbfaabe2e2b04b2db9f986779d08da22dedc5e4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ec251f7780b91da6e0d91962cca8db282dbce787 b/fuzz/corpus/packet_recv_client/ec251f7780b91da6e0d91962cca8db282dbce787
new file mode 100644
index 0000000..2ed6d19
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ec251f7780b91da6e0d91962cca8db282dbce787
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/eda95713c6e71b88232e2b61df3a9bfa78b9d51e b/fuzz/corpus/packet_recv_client/eda95713c6e71b88232e2b61df3a9bfa78b9d51e
new file mode 100644
index 0000000..49de92f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/eda95713c6e71b88232e2b61df3a9bfa78b9d51e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ede8bfe4bf194dcb36686a8f4bffbb49850b9fc4 b/fuzz/corpus/packet_recv_client/ede8bfe4bf194dcb36686a8f4bffbb49850b9fc4
new file mode 100644
index 0000000..0045e68
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ede8bfe4bf194dcb36686a8f4bffbb49850b9fc4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ee5c15e823591d9b81aff5b8375e5ca333b528a3 b/fuzz/corpus/packet_recv_client/ee5c15e823591d9b81aff5b8375e5ca333b528a3
new file mode 100644
index 0000000..299456b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ee5c15e823591d9b81aff5b8375e5ca333b528a3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ef57119f4a3a61b1254680756c7b18f6e34ac3b4 b/fuzz/corpus/packet_recv_client/ef57119f4a3a61b1254680756c7b18f6e34ac3b4
new file mode 100644
index 0000000..de57c6e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ef57119f4a3a61b1254680756c7b18f6e34ac3b4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ef67ddcf4ad77c1cd3c1b1081204048cc7cf4f7f b/fuzz/corpus/packet_recv_client/ef67ddcf4ad77c1cd3c1b1081204048cc7cf4f7f
new file mode 100644
index 0000000..7425aff
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ef67ddcf4ad77c1cd3c1b1081204048cc7cf4f7f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f0562cd2ed04bd502ca78163c04f910343fba509 b/fuzz/corpus/packet_recv_client/f0562cd2ed04bd502ca78163c04f910343fba509
new file mode 100644
index 0000000..05d44d4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f0562cd2ed04bd502ca78163c04f910343fba509
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f0ac0440e7d5556eb1abe9c14d638e7cd71a69e3 b/fuzz/corpus/packet_recv_client/f0ac0440e7d5556eb1abe9c14d638e7cd71a69e3
new file mode 100644
index 0000000..6af9f64
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f0ac0440e7d5556eb1abe9c14d638e7cd71a69e3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f107be8dfe1524b7dcf6ac42700865f5ce641253 b/fuzz/corpus/packet_recv_client/f107be8dfe1524b7dcf6ac42700865f5ce641253
new file mode 100644
index 0000000..df9573f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f107be8dfe1524b7dcf6ac42700865f5ce641253
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f2fbaaca81582ed764b1b6ee352524435f5d2fcd b/fuzz/corpus/packet_recv_client/f2fbaaca81582ed764b1b6ee352524435f5d2fcd
new file mode 100644
index 0000000..1a2514b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f2fbaaca81582ed764b1b6ee352524435f5d2fcd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f319b6efcb193601ea60b3afcb01560873105b6d b/fuzz/corpus/packet_recv_client/f319b6efcb193601ea60b3afcb01560873105b6d
new file mode 100644
index 0000000..f818047
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f319b6efcb193601ea60b3afcb01560873105b6d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f351dfebd4af4dbbcdb4dcb991b52ae57fc39b46 b/fuzz/corpus/packet_recv_client/f351dfebd4af4dbbcdb4dcb991b52ae57fc39b46
new file mode 100644
index 0000000..d3b810b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f351dfebd4af4dbbcdb4dcb991b52ae57fc39b46
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f37149e4359740e150eb0eaa5d77b8e8fb016067 b/fuzz/corpus/packet_recv_client/f37149e4359740e150eb0eaa5d77b8e8fb016067
new file mode 100644
index 0000000..ca3b27a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f37149e4359740e150eb0eaa5d77b8e8fb016067
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f46ef550cd95a4cc3e15bdfcc474602c3ba1bf0e b/fuzz/corpus/packet_recv_client/f46ef550cd95a4cc3e15bdfcc474602c3ba1bf0e
new file mode 100644
index 0000000..55b2362
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f46ef550cd95a4cc3e15bdfcc474602c3ba1bf0e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f4a01768090d97a8011fd742282fa5b06d0e85c8 b/fuzz/corpus/packet_recv_client/f4a01768090d97a8011fd742282fa5b06d0e85c8
new file mode 100644
index 0000000..6506b85
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f4a01768090d97a8011fd742282fa5b06d0e85c8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f5da04a158d7357cff7a3a68f8f0f3197669c335 b/fuzz/corpus/packet_recv_client/f5da04a158d7357cff7a3a68f8f0f3197669c335
new file mode 100644
index 0000000..96b9f1e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f5da04a158d7357cff7a3a68f8f0f3197669c335
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f657ce4d0ee702450558248c3722660819bb7c62 b/fuzz/corpus/packet_recv_client/f657ce4d0ee702450558248c3722660819bb7c62
new file mode 100644
index 0000000..61e7937
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f657ce4d0ee702450558248c3722660819bb7c62
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f66635409ac4ee7a115da99ba65453dc59a72385 b/fuzz/corpus/packet_recv_client/f66635409ac4ee7a115da99ba65453dc59a72385
new file mode 100644
index 0000000..452b4bd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f66635409ac4ee7a115da99ba65453dc59a72385
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f6a62e60e53e5bfea2640202a0ca012ce579a793 b/fuzz/corpus/packet_recv_client/f6a62e60e53e5bfea2640202a0ca012ce579a793
new file mode 100644
index 0000000..5760557
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f6a62e60e53e5bfea2640202a0ca012ce579a793
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f6ad51ec5962471288f33f2f5002e5c5ddc38a4c b/fuzz/corpus/packet_recv_client/f6ad51ec5962471288f33f2f5002e5c5ddc38a4c
new file mode 100644
index 0000000..c8d9de1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f6ad51ec5962471288f33f2f5002e5c5ddc38a4c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f6ca834d5ac1e3b6985b7b8f0177ea2512c0f932 b/fuzz/corpus/packet_recv_client/f6ca834d5ac1e3b6985b7b8f0177ea2512c0f932
deleted file mode 100644
index 7c8861c..0000000
--- a/fuzz/corpus/packet_recv_client/f6ca834d5ac1e3b6985b7b8f0177ea2512c0f932
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f7a934209d013d7efd6e0c1a6a3608832a940641 b/fuzz/corpus/packet_recv_client/f7a934209d013d7efd6e0c1a6a3608832a940641
new file mode 100644
index 0000000..76aee8b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f7a934209d013d7efd6e0c1a6a3608832a940641
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f8042d8ca425d983cfd29c51270c1bf822f5004e b/fuzz/corpus/packet_recv_client/f8042d8ca425d983cfd29c51270c1bf822f5004e
new file mode 100644
index 0000000..fae57ba
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f8042d8ca425d983cfd29c51270c1bf822f5004e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f836bfef88ae68404d5fd8f98ab72f0cbaa59740 b/fuzz/corpus/packet_recv_client/f836bfef88ae68404d5fd8f98ab72f0cbaa59740
new file mode 100644
index 0000000..0b22032
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f836bfef88ae68404d5fd8f98ab72f0cbaa59740
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/f9c35c3e5e74b8e3e7f1011930d77bae0f9a65ad b/fuzz/corpus/packet_recv_client/f9c35c3e5e74b8e3e7f1011930d77bae0f9a65ad
new file mode 100644
index 0000000..239b55f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/f9c35c3e5e74b8e3e7f1011930d77bae0f9a65ad
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/faa9ce969be5ec5be78ece5c846dee28bb1e5f00 b/fuzz/corpus/packet_recv_client/faa9ce969be5ec5be78ece5c846dee28bb1e5f00
new file mode 100644
index 0000000..a381b15
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/faa9ce969be5ec5be78ece5c846dee28bb1e5f00
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/faf1c58d278331d10d6e8f664ce221ea0df6d3aa b/fuzz/corpus/packet_recv_client/faf1c58d278331d10d6e8f664ce221ea0df6d3aa
new file mode 100644
index 0000000..e2a63fe
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/faf1c58d278331d10d6e8f664ce221ea0df6d3aa
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/fbbeddcf4092bbbf8f3e0fae6645f53dfc371e44 b/fuzz/corpus/packet_recv_client/fbbeddcf4092bbbf8f3e0fae6645f53dfc371e44
new file mode 100644
index 0000000..a7b700b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/fbbeddcf4092bbbf8f3e0fae6645f53dfc371e44
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/fbd273f2633b4280de5e144c4e71c10ed83596b2 b/fuzz/corpus/packet_recv_client/fbd273f2633b4280de5e144c4e71c10ed83596b2
new file mode 100644
index 0000000..ecc887d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/fbd273f2633b4280de5e144c4e71c10ed83596b2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/fcb9114c84108b50427c0b1c91cc66aaaeca8373 b/fuzz/corpus/packet_recv_client/fcb9114c84108b50427c0b1c91cc66aaaeca8373
new file mode 100644
index 0000000..bcf54c2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/fcb9114c84108b50427c0b1c91cc66aaaeca8373
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/fd0790b14c0c43e6fc7c516d06370a3117e001ec b/fuzz/corpus/packet_recv_client/fd0790b14c0c43e6fc7c516d06370a3117e001ec
new file mode 100644
index 0000000..9fa77d3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/fd0790b14c0c43e6fc7c516d06370a3117e001ec
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/fdc81df6ea2b148ee3881cac6e4ddb8771493727 b/fuzz/corpus/packet_recv_client/fdc81df6ea2b148ee3881cac6e4ddb8771493727
new file mode 100644
index 0000000..594f528
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/fdc81df6ea2b148ee3881cac6e4ddb8771493727
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/fde93c06905d8091e809f9dcd45d5f2b220e3de8 b/fuzz/corpus/packet_recv_client/fde93c06905d8091e809f9dcd45d5f2b220e3de8
new file mode 100644
index 0000000..a089b5f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/fde93c06905d8091e809f9dcd45d5f2b220e3de8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/fe1b619033929807abdead42396d33493e38fe1c b/fuzz/corpus/packet_recv_client/fe1b619033929807abdead42396d33493e38fe1c
new file mode 100644
index 0000000..94ca2a5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/fe1b619033929807abdead42396d33493e38fe1c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_client/ffd5ce52614962f418b8c2878a69cac2d2e6b8ff b/fuzz/corpus/packet_recv_client/ffd5ce52614962f418b8c2878a69cac2d2e6b8ff
new file mode 100644
index 0000000..27562e8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_client/ffd5ce52614962f418b8c2878a69cac2d2e6b8ff
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/006f733fdd4beeb77737153d604aa39ee3ed7e01 b/fuzz/corpus/packet_recv_server/006f733fdd4beeb77737153d604aa39ee3ed7e01
deleted file mode 100644
index 1ff1150..0000000
--- a/fuzz/corpus/packet_recv_server/006f733fdd4beeb77737153d604aa39ee3ed7e01
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0099c3528789477605c9bfe0693c411216311703 b/fuzz/corpus/packet_recv_server/0099c3528789477605c9bfe0693c411216311703
new file mode 100644
index 0000000..ec22ca0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0099c3528789477605c9bfe0693c411216311703
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/00c36135472d0fcdf265dbd8baf13dad01467adc b/fuzz/corpus/packet_recv_server/00c36135472d0fcdf265dbd8baf13dad01467adc
new file mode 100644
index 0000000..6780f75
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/00c36135472d0fcdf265dbd8baf13dad01467adc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/015ae96fdc7fc1abd58aa9cf1f994a6fd3364860 b/fuzz/corpus/packet_recv_server/015ae96fdc7fc1abd58aa9cf1f994a6fd3364860
new file mode 100644
index 0000000..be5a536
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/015ae96fdc7fc1abd58aa9cf1f994a6fd3364860
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/01a37f66320fe361ac93ce72ff0a733f6d71b4d5 b/fuzz/corpus/packet_recv_server/01a37f66320fe361ac93ce72ff0a733f6d71b4d5
new file mode 100644
index 0000000..33b0130
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/01a37f66320fe361ac93ce72ff0a733f6d71b4d5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/01dacebde0baac12eadc76b2642d55554a3295f8 b/fuzz/corpus/packet_recv_server/01dacebde0baac12eadc76b2642d55554a3295f8
new file mode 100644
index 0000000..e7c2466
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/01dacebde0baac12eadc76b2642d55554a3295f8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/02005da57df0cf7588b86059408cb8f31432d9af b/fuzz/corpus/packet_recv_server/02005da57df0cf7588b86059408cb8f31432d9af
deleted file mode 100644
index 3c5dee7..0000000
--- a/fuzz/corpus/packet_recv_server/02005da57df0cf7588b86059408cb8f31432d9af
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/025c89f987bd324971140acdded22549e1b5016c b/fuzz/corpus/packet_recv_server/025c89f987bd324971140acdded22549e1b5016c
new file mode 100644
index 0000000..2036c31
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/025c89f987bd324971140acdded22549e1b5016c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/02772c9108a2600a74c7778dfd61d7804b438917 b/fuzz/corpus/packet_recv_server/02772c9108a2600a74c7778dfd61d7804b438917
deleted file mode 100644
index 488e28b..0000000
--- a/fuzz/corpus/packet_recv_server/02772c9108a2600a74c7778dfd61d7804b438917
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/02872bdec735fb1c7b17e8224fdb191a9d3bf6aa b/fuzz/corpus/packet_recv_server/02872bdec735fb1c7b17e8224fdb191a9d3bf6aa
new file mode 100644
index 0000000..d2013d1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/02872bdec735fb1c7b17e8224fdb191a9d3bf6aa
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/03af1f88cbb38ba604d6f5b6f4611089b488c568 b/fuzz/corpus/packet_recv_server/03af1f88cbb38ba604d6f5b6f4611089b488c568
new file mode 100644
index 0000000..7d5cf98
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/03af1f88cbb38ba604d6f5b6f4611089b488c568
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/03fee22f9ad121e98e02b5d43f690801fc6f683e b/fuzz/corpus/packet_recv_server/03fee22f9ad121e98e02b5d43f690801fc6f683e
deleted file mode 100644
index 847912a..0000000
--- a/fuzz/corpus/packet_recv_server/03fee22f9ad121e98e02b5d43f690801fc6f683e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/042fd25f270068b6ce6d9a3482fd3bc27c69f29d b/fuzz/corpus/packet_recv_server/042fd25f270068b6ce6d9a3482fd3bc27c69f29d
new file mode 100644
index 0000000..12507a8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/042fd25f270068b6ce6d9a3482fd3bc27c69f29d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/046c33791f3850d90b625d37db8d751ad6fc2664 b/fuzz/corpus/packet_recv_server/046c33791f3850d90b625d37db8d751ad6fc2664
deleted file mode 100644
index bc9e0d9..0000000
--- a/fuzz/corpus/packet_recv_server/046c33791f3850d90b625d37db8d751ad6fc2664
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/05898581dcbae633c1ff25a359a9c11d9252ad34 b/fuzz/corpus/packet_recv_server/05898581dcbae633c1ff25a359a9c11d9252ad34
new file mode 100644
index 0000000..5e26b7d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/05898581dcbae633c1ff25a359a9c11d9252ad34
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/05975d643fa1bc73d3e5f01ffc1b1dbc52ec5037 b/fuzz/corpus/packet_recv_server/05975d643fa1bc73d3e5f01ffc1b1dbc52ec5037
deleted file mode 100644
index e1e833e..0000000
--- a/fuzz/corpus/packet_recv_server/05975d643fa1bc73d3e5f01ffc1b1dbc52ec5037
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/061b42b34c84a3614bd3e45b98fb4d0666e5fc2f b/fuzz/corpus/packet_recv_server/061b42b34c84a3614bd3e45b98fb4d0666e5fc2f
new file mode 100644
index 0000000..a04daf4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/061b42b34c84a3614bd3e45b98fb4d0666e5fc2f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0642ce8f8213908c3bca18c34c8f93411904cb20 b/fuzz/corpus/packet_recv_server/0642ce8f8213908c3bca18c34c8f93411904cb20
new file mode 100644
index 0000000..8cf5390
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0642ce8f8213908c3bca18c34c8f93411904cb20
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/06639cb89f27d9da25cfc2e1ac66664af6176212 b/fuzz/corpus/packet_recv_server/06639cb89f27d9da25cfc2e1ac66664af6176212
deleted file mode 100644
index 73394fb..0000000
--- a/fuzz/corpus/packet_recv_server/06639cb89f27d9da25cfc2e1ac66664af6176212
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/06c68f039283b90598d91bfee557e4aee39cfb1d b/fuzz/corpus/packet_recv_server/06c68f039283b90598d91bfee557e4aee39cfb1d
deleted file mode 100644
index 45d9ba1..0000000
--- a/fuzz/corpus/packet_recv_server/06c68f039283b90598d91bfee557e4aee39cfb1d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/06db51daff604fea4da23171737de42e59891aac b/fuzz/corpus/packet_recv_server/06db51daff604fea4da23171737de42e59891aac
deleted file mode 100644
index 440c6bf..0000000
--- a/fuzz/corpus/packet_recv_server/06db51daff604fea4da23171737de42e59891aac
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/06e03d2b43122fb68f2986fc242afa24d1d07f22 b/fuzz/corpus/packet_recv_server/06e03d2b43122fb68f2986fc242afa24d1d07f22
new file mode 100644
index 0000000..03eefee
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/06e03d2b43122fb68f2986fc242afa24d1d07f22
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/06f495ddffc8c87bc434dfa37c174f5848a3353e b/fuzz/corpus/packet_recv_server/06f495ddffc8c87bc434dfa37c174f5848a3353e
new file mode 100644
index 0000000..02cb9e9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/06f495ddffc8c87bc434dfa37c174f5848a3353e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/07000afd32cc07246f29f2ce8d8e4c8c2ca10814 b/fuzz/corpus/packet_recv_server/07000afd32cc07246f29f2ce8d8e4c8c2ca10814
new file mode 100644
index 0000000..266fd55
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/07000afd32cc07246f29f2ce8d8e4c8c2ca10814
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0750f156f7df8b3bbafe9bdce40fc0ffbb8e17d2 b/fuzz/corpus/packet_recv_server/0750f156f7df8b3bbafe9bdce40fc0ffbb8e17d2
new file mode 100644
index 0000000..4ed7f3b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0750f156f7df8b3bbafe9bdce40fc0ffbb8e17d2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/07a0bd27660a1c3b33e5d74b2702b8ccb5a1d4c4 b/fuzz/corpus/packet_recv_server/07a0bd27660a1c3b33e5d74b2702b8ccb5a1d4c4
new file mode 100644
index 0000000..81dc075
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/07a0bd27660a1c3b33e5d74b2702b8ccb5a1d4c4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/07b6c928694ff2a26f1a7b99ead99c4944b4487b b/fuzz/corpus/packet_recv_server/07b6c928694ff2a26f1a7b99ead99c4944b4487b
new file mode 100644
index 0000000..3f96d56
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/07b6c928694ff2a26f1a7b99ead99c4944b4487b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0804c843b634ae7703c1cfa16219b20eb20abb4c b/fuzz/corpus/packet_recv_server/0804c843b634ae7703c1cfa16219b20eb20abb4c
deleted file mode 100644
index c8d911c..0000000
--- a/fuzz/corpus/packet_recv_server/0804c843b634ae7703c1cfa16219b20eb20abb4c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/08258de39e9894f7b7a772ad09c5b333f055b156 b/fuzz/corpus/packet_recv_server/08258de39e9894f7b7a772ad09c5b333f055b156
deleted file mode 100644
index 58b7db0..0000000
--- a/fuzz/corpus/packet_recv_server/08258de39e9894f7b7a772ad09c5b333f055b156
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/082d0902f2e56a89b56b22665c6dd83ff1b264a5 b/fuzz/corpus/packet_recv_server/082d0902f2e56a89b56b22665c6dd83ff1b264a5
deleted file mode 100644
index c613957..0000000
--- a/fuzz/corpus/packet_recv_server/082d0902f2e56a89b56b22665c6dd83ff1b264a5
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0848c8d39100f752e76830c4c39f507209bafe96 b/fuzz/corpus/packet_recv_server/0848c8d39100f752e76830c4c39f507209bafe96
new file mode 100644
index 0000000..e935b67
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0848c8d39100f752e76830c4c39f507209bafe96
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0896bc525a51613d49bfba5817187a32c32d57cc b/fuzz/corpus/packet_recv_server/0896bc525a51613d49bfba5817187a32c32d57cc
new file mode 100644
index 0000000..3719e23
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0896bc525a51613d49bfba5817187a32c32d57cc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/08ac11a43cb77d29119f6d0b8332f2ae7a16200a b/fuzz/corpus/packet_recv_server/08ac11a43cb77d29119f6d0b8332f2ae7a16200a
deleted file mode 100644
index 2e7c359..0000000
--- a/fuzz/corpus/packet_recv_server/08ac11a43cb77d29119f6d0b8332f2ae7a16200a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/08cb3911bbb7b54cc56b01e87c40400e3fed9372 b/fuzz/corpus/packet_recv_server/08cb3911bbb7b54cc56b01e87c40400e3fed9372
deleted file mode 100644
index 89ee9f7..0000000
--- a/fuzz/corpus/packet_recv_server/08cb3911bbb7b54cc56b01e87c40400e3fed9372
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0903b18234b8ca5e67fdf1cac533a3379a471aee b/fuzz/corpus/packet_recv_server/0903b18234b8ca5e67fdf1cac533a3379a471aee
new file mode 100644
index 0000000..534bd6f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0903b18234b8ca5e67fdf1cac533a3379a471aee
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/096b01f583fcd8730f61a37ba38e52d8784305b2 b/fuzz/corpus/packet_recv_server/096b01f583fcd8730f61a37ba38e52d8784305b2
new file mode 100644
index 0000000..8c5ca75
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/096b01f583fcd8730f61a37ba38e52d8784305b2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0986b2755ed1dd8fd0b0574cfd0e5d3b2099fa21 b/fuzz/corpus/packet_recv_server/0986b2755ed1dd8fd0b0574cfd0e5d3b2099fa21
new file mode 100644
index 0000000..8b5f8ab
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0986b2755ed1dd8fd0b0574cfd0e5d3b2099fa21
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0a06353a1ba4b785895f2eaddbc62b751a25f695 b/fuzz/corpus/packet_recv_server/0a06353a1ba4b785895f2eaddbc62b751a25f695
new file mode 100644
index 0000000..c18352a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0a06353a1ba4b785895f2eaddbc62b751a25f695
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0a48410634aa1bff1ea1fd29750bfd76c7ce0128 b/fuzz/corpus/packet_recv_server/0a48410634aa1bff1ea1fd29750bfd76c7ce0128
new file mode 100644
index 0000000..7d450e6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0a48410634aa1bff1ea1fd29750bfd76c7ce0128
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0a6448b6ee1256596f1e7efd589f5dc6fb54c95a b/fuzz/corpus/packet_recv_server/0a6448b6ee1256596f1e7efd589f5dc6fb54c95a
deleted file mode 100644
index 79f2e5c..0000000
--- a/fuzz/corpus/packet_recv_server/0a6448b6ee1256596f1e7efd589f5dc6fb54c95a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0a7e17c319df951287e8a214e26b86cc439c88bb b/fuzz/corpus/packet_recv_server/0a7e17c319df951287e8a214e26b86cc439c88bb
new file mode 100644
index 0000000..2a50661
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0a7e17c319df951287e8a214e26b86cc439c88bb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0aa77077b18bb202398f3318c7cc1189c4614522 b/fuzz/corpus/packet_recv_server/0aa77077b18bb202398f3318c7cc1189c4614522
new file mode 100644
index 0000000..3ed7c2c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0aa77077b18bb202398f3318c7cc1189c4614522
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0ae32550eb145b6bdac1fffdccd10e4294d1b547 b/fuzz/corpus/packet_recv_server/0ae32550eb145b6bdac1fffdccd10e4294d1b547
deleted file mode 100644
index 16753be..0000000
--- a/fuzz/corpus/packet_recv_server/0ae32550eb145b6bdac1fffdccd10e4294d1b547
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0b089878987200868eff77974550ff97ab7027c4 b/fuzz/corpus/packet_recv_server/0b089878987200868eff77974550ff97ab7027c4
new file mode 100644
index 0000000..48f766e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0b089878987200868eff77974550ff97ab7027c4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0b8df50b441c6c78cc785695760c2b3029cb901f b/fuzz/corpus/packet_recv_server/0b8df50b441c6c78cc785695760c2b3029cb901f
deleted file mode 100644
index 50f07f8..0000000
--- a/fuzz/corpus/packet_recv_server/0b8df50b441c6c78cc785695760c2b3029cb901f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0b9b46c9e7b4ace8e2cd136c0e80b69187cc52be b/fuzz/corpus/packet_recv_server/0b9b46c9e7b4ace8e2cd136c0e80b69187cc52be
new file mode 100644
index 0000000..c7c111c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0b9b46c9e7b4ace8e2cd136c0e80b69187cc52be
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0b9e93b485e40df594789bfb48e570252ffd28b5 b/fuzz/corpus/packet_recv_server/0b9e93b485e40df594789bfb48e570252ffd28b5
new file mode 100644
index 0000000..ef9473b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0b9e93b485e40df594789bfb48e570252ffd28b5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0c1ac8bba16e0e5cbc1751762b31fde300cabe95 b/fuzz/corpus/packet_recv_server/0c1ac8bba16e0e5cbc1751762b31fde300cabe95
deleted file mode 100644
index bb4c562..0000000
--- a/fuzz/corpus/packet_recv_server/0c1ac8bba16e0e5cbc1751762b31fde300cabe95
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0c329c00b601fbe9be4608c75d36b5171b826df8 b/fuzz/corpus/packet_recv_server/0c329c00b601fbe9be4608c75d36b5171b826df8
deleted file mode 100644
index 2a1fcf5..0000000
--- a/fuzz/corpus/packet_recv_server/0c329c00b601fbe9be4608c75d36b5171b826df8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0cd3abeb33f1ce0f95a4e70a9ed137b9cec546bd b/fuzz/corpus/packet_recv_server/0cd3abeb33f1ce0f95a4e70a9ed137b9cec546bd
new file mode 100644
index 0000000..29a6844
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0cd3abeb33f1ce0f95a4e70a9ed137b9cec546bd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0cf745986c2e915c94a477ef5ca9f408976caa1a b/fuzz/corpus/packet_recv_server/0cf745986c2e915c94a477ef5ca9f408976caa1a
new file mode 100644
index 0000000..7d59de0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0cf745986c2e915c94a477ef5ca9f408976caa1a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0db1c2634829c84cfd498338574a40fe60f58506 b/fuzz/corpus/packet_recv_server/0db1c2634829c84cfd498338574a40fe60f58506
new file mode 100644
index 0000000..4e1c6ab
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0db1c2634829c84cfd498338574a40fe60f58506
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0dc0d0d8eee71027e5918b25d1666740c40a2626 b/fuzz/corpus/packet_recv_server/0dc0d0d8eee71027e5918b25d1666740c40a2626
deleted file mode 100644
index 3e1fd31..0000000
--- a/fuzz/corpus/packet_recv_server/0dc0d0d8eee71027e5918b25d1666740c40a2626
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0e2bbcd5a9895bcadd24c621320dbcd7b60207de b/fuzz/corpus/packet_recv_server/0e2bbcd5a9895bcadd24c621320dbcd7b60207de
deleted file mode 100644
index a056afb..0000000
--- a/fuzz/corpus/packet_recv_server/0e2bbcd5a9895bcadd24c621320dbcd7b60207de
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0e4917841b4658b48a7a5e3ab113cf9b83684a96 b/fuzz/corpus/packet_recv_server/0e4917841b4658b48a7a5e3ab113cf9b83684a96
new file mode 100644
index 0000000..2ef555e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0e4917841b4658b48a7a5e3ab113cf9b83684a96
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0e5ce5721285d603ab00245eb795b1564f5c6d50 b/fuzz/corpus/packet_recv_server/0e5ce5721285d603ab00245eb795b1564f5c6d50
deleted file mode 100644
index a8e9938..0000000
--- a/fuzz/corpus/packet_recv_server/0e5ce5721285d603ab00245eb795b1564f5c6d50
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0e7bf0865e6159ea977225b4c76ba1bf4144c778 b/fuzz/corpus/packet_recv_server/0e7bf0865e6159ea977225b4c76ba1bf4144c778
new file mode 100644
index 0000000..9794556
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0e7bf0865e6159ea977225b4c76ba1bf4144c778
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0f338e6fe2342f5d3b98acffd5189b85effd3d27 b/fuzz/corpus/packet_recv_server/0f338e6fe2342f5d3b98acffd5189b85effd3d27
new file mode 100644
index 0000000..960137b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0f338e6fe2342f5d3b98acffd5189b85effd3d27
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0f463d038b3944222ac1eb017267c21bf6b9d9dd b/fuzz/corpus/packet_recv_server/0f463d038b3944222ac1eb017267c21bf6b9d9dd
deleted file mode 100644
index c13160d..0000000
--- a/fuzz/corpus/packet_recv_server/0f463d038b3944222ac1eb017267c21bf6b9d9dd
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0f4ce849e432b51ae1e532975626f621d9874269 b/fuzz/corpus/packet_recv_server/0f4ce849e432b51ae1e532975626f621d9874269
deleted file mode 100644
index 773e390..0000000
--- a/fuzz/corpus/packet_recv_server/0f4ce849e432b51ae1e532975626f621d9874269
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0f5adec6447bfac28ad3a4da234bc3692f7ddc15 b/fuzz/corpus/packet_recv_server/0f5adec6447bfac28ad3a4da234bc3692f7ddc15
new file mode 100644
index 0000000..2d49353
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0f5adec6447bfac28ad3a4da234bc3692f7ddc15
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/0f8ef6ceeb4575960e48768d1922b8edf6e3fa32 b/fuzz/corpus/packet_recv_server/0f8ef6ceeb4575960e48768d1922b8edf6e3fa32
new file mode 100644
index 0000000..c823794
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/0f8ef6ceeb4575960e48768d1922b8edf6e3fa32
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/10064ab28b1e42f31cb56035b4da8a8380d4eea2 b/fuzz/corpus/packet_recv_server/10064ab28b1e42f31cb56035b4da8a8380d4eea2
deleted file mode 100644
index b80bc69..0000000
--- a/fuzz/corpus/packet_recv_server/10064ab28b1e42f31cb56035b4da8a8380d4eea2
+++ /dev/null
@@ -1 +0,0 @@
-ýýýˆ_
\ No newline at end of file
diff --git a/fuzz/corpus/packet_recv_server/101a24e45f09c2d077f8e817032a190cd6ae3d9a b/fuzz/corpus/packet_recv_server/101a24e45f09c2d077f8e817032a190cd6ae3d9a
new file mode 100644
index 0000000..cecce7d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/101a24e45f09c2d077f8e817032a190cd6ae3d9a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1055f709442e8190da77676531a888f9e5e66797 b/fuzz/corpus/packet_recv_server/1055f709442e8190da77676531a888f9e5e66797
deleted file mode 100644
index a9ac0c3..0000000
--- a/fuzz/corpus/packet_recv_server/1055f709442e8190da77676531a888f9e5e66797
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/10af208e7ab8dd2f4d3c29e5c2a35d84bc2db486 b/fuzz/corpus/packet_recv_server/10af208e7ab8dd2f4d3c29e5c2a35d84bc2db486
new file mode 100644
index 0000000..a820510
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/10af208e7ab8dd2f4d3c29e5c2a35d84bc2db486
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/10fd1ba8ee9c775efbb6d9014221e5a9ad3f9dcb b/fuzz/corpus/packet_recv_server/10fd1ba8ee9c775efbb6d9014221e5a9ad3f9dcb
new file mode 100644
index 0000000..0548847
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/10fd1ba8ee9c775efbb6d9014221e5a9ad3f9dcb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/113eca7ffd5b14e067bca9bcf37ead1473768a20 b/fuzz/corpus/packet_recv_server/113eca7ffd5b14e067bca9bcf37ead1473768a20
deleted file mode 100644
index dd073cc..0000000
--- a/fuzz/corpus/packet_recv_server/113eca7ffd5b14e067bca9bcf37ead1473768a20
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1154e21f9b2c9ce472a65d1413d087df6139c9fa b/fuzz/corpus/packet_recv_server/1154e21f9b2c9ce472a65d1413d087df6139c9fa
deleted file mode 100644
index f08381a..0000000
--- a/fuzz/corpus/packet_recv_server/1154e21f9b2c9ce472a65d1413d087df6139c9fa
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/115637d44df9f0554ff4e08039ba2bcdd59639ec b/fuzz/corpus/packet_recv_server/115637d44df9f0554ff4e08039ba2bcdd59639ec
new file mode 100644
index 0000000..7d11466
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/115637d44df9f0554ff4e08039ba2bcdd59639ec
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/11753bd6f2c47bf942a83e927d8423b4d980a0e3 b/fuzz/corpus/packet_recv_server/11753bd6f2c47bf942a83e927d8423b4d980a0e3
new file mode 100644
index 0000000..8c540c6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/11753bd6f2c47bf942a83e927d8423b4d980a0e3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1178feae65ee331456c00a98d639bdb44784b9ac b/fuzz/corpus/packet_recv_server/1178feae65ee331456c00a98d639bdb44784b9ac
new file mode 100644
index 0000000..be7708f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1178feae65ee331456c00a98d639bdb44784b9ac
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1181e75ccfc2eb1d25ba0477a74e7883b2d7379c b/fuzz/corpus/packet_recv_server/1181e75ccfc2eb1d25ba0477a74e7883b2d7379c
new file mode 100644
index 0000000..e61367a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1181e75ccfc2eb1d25ba0477a74e7883b2d7379c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/11dd1d23aedd66551f69ab5acc3ad4cdb32a98ad b/fuzz/corpus/packet_recv_server/11dd1d23aedd66551f69ab5acc3ad4cdb32a98ad
new file mode 100644
index 0000000..872ab67
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/11dd1d23aedd66551f69ab5acc3ad4cdb32a98ad
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/122c86de48fba44c550a8178e8d259012eedd6f3 b/fuzz/corpus/packet_recv_server/122c86de48fba44c550a8178e8d259012eedd6f3
new file mode 100644
index 0000000..c6b28ed
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/122c86de48fba44c550a8178e8d259012eedd6f3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1261c02479cd5e2c121c61177e46e946e26ce6d2 b/fuzz/corpus/packet_recv_server/1261c02479cd5e2c121c61177e46e946e26ce6d2
deleted file mode 100644
index 48bb355..0000000
--- a/fuzz/corpus/packet_recv_server/1261c02479cd5e2c121c61177e46e946e26ce6d2
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1299cd120fe46b8855675448dc7203e89b89516b b/fuzz/corpus/packet_recv_server/1299cd120fe46b8855675448dc7203e89b89516b
new file mode 100644
index 0000000..f7e98de
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1299cd120fe46b8855675448dc7203e89b89516b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/12dfe4e2371f5f2b16c33f35ca573a935cce1e87 b/fuzz/corpus/packet_recv_server/12dfe4e2371f5f2b16c33f35ca573a935cce1e87
deleted file mode 100644
index dadec21..0000000
--- a/fuzz/corpus/packet_recv_server/12dfe4e2371f5f2b16c33f35ca573a935cce1e87
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/13016453c3b0b81164ef60d8772f44f999be1caf b/fuzz/corpus/packet_recv_server/13016453c3b0b81164ef60d8772f44f999be1caf
new file mode 100644
index 0000000..0d141b0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/13016453c3b0b81164ef60d8772f44f999be1caf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/132eaec54fd5e8f6ee9ab6429666e3b5ce5c8005 b/fuzz/corpus/packet_recv_server/132eaec54fd5e8f6ee9ab6429666e3b5ce5c8005
new file mode 100644
index 0000000..f4d51af
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/132eaec54fd5e8f6ee9ab6429666e3b5ce5c8005
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/133a6fd527d3c3aefe7b2c679fab086d9b074081 b/fuzz/corpus/packet_recv_server/133a6fd527d3c3aefe7b2c679fab086d9b074081
new file mode 100644
index 0000000..9a0177a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/133a6fd527d3c3aefe7b2c679fab086d9b074081
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1375f81f20767791a854472ca1f300022ec77f01 b/fuzz/corpus/packet_recv_server/1375f81f20767791a854472ca1f300022ec77f01
new file mode 100644
index 0000000..0fab385
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1375f81f20767791a854472ca1f300022ec77f01
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/13eac251776cc9f2ab42358832f11904c1329d3c b/fuzz/corpus/packet_recv_server/13eac251776cc9f2ab42358832f11904c1329d3c
deleted file mode 100644
index 721894a..0000000
--- a/fuzz/corpus/packet_recv_server/13eac251776cc9f2ab42358832f11904c1329d3c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/142371932b8209b133d14d200945c5063597827f b/fuzz/corpus/packet_recv_server/142371932b8209b133d14d200945c5063597827f
new file mode 100644
index 0000000..ddc794b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/142371932b8209b133d14d200945c5063597827f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1487659760fdd79a85f9340aa934e2bc6a818c3d b/fuzz/corpus/packet_recv_server/1487659760fdd79a85f9340aa934e2bc6a818c3d
new file mode 100644
index 0000000..4449261
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1487659760fdd79a85f9340aa934e2bc6a818c3d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/14aa55df09e3106cc2f4b151c1a81fdc80850855 b/fuzz/corpus/packet_recv_server/14aa55df09e3106cc2f4b151c1a81fdc80850855
new file mode 100644
index 0000000..c9a640c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/14aa55df09e3106cc2f4b151c1a81fdc80850855
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/14f0e4ad7a542a254548e8db1d58eceb8e2cd191 b/fuzz/corpus/packet_recv_server/14f0e4ad7a542a254548e8db1d58eceb8e2cd191
deleted file mode 100644
index b96f9f8..0000000
--- a/fuzz/corpus/packet_recv_server/14f0e4ad7a542a254548e8db1d58eceb8e2cd191
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1516a3ca8afca13cc8e215950205b98438436263 b/fuzz/corpus/packet_recv_server/1516a3ca8afca13cc8e215950205b98438436263
new file mode 100644
index 0000000..958f263
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1516a3ca8afca13cc8e215950205b98438436263
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/152836c6c9fc498fcd96a6ea2f74a699686d946d b/fuzz/corpus/packet_recv_server/152836c6c9fc498fcd96a6ea2f74a699686d946d
new file mode 100644
index 0000000..2521d53
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/152836c6c9fc498fcd96a6ea2f74a699686d946d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/15638a597caec7ff19a2cad9f5afb1662867a81f b/fuzz/corpus/packet_recv_server/15638a597caec7ff19a2cad9f5afb1662867a81f
new file mode 100644
index 0000000..30aae1f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/15638a597caec7ff19a2cad9f5afb1662867a81f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/15e46c7efc031ed5c6fceccd12fde67ac9633fe2 b/fuzz/corpus/packet_recv_server/15e46c7efc031ed5c6fceccd12fde67ac9633fe2
deleted file mode 100644
index ab2ced5..0000000
--- a/fuzz/corpus/packet_recv_server/15e46c7efc031ed5c6fceccd12fde67ac9633fe2
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/15f391c1a9c9318f33e6a143339a1494cbf2e034 b/fuzz/corpus/packet_recv_server/15f391c1a9c9318f33e6a143339a1494cbf2e034
new file mode 100644
index 0000000..0fd606c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/15f391c1a9c9318f33e6a143339a1494cbf2e034
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/163272157232c2a1c90bd60bc5c17e27623bdb8a b/fuzz/corpus/packet_recv_server/163272157232c2a1c90bd60bc5c17e27623bdb8a
new file mode 100644
index 0000000..0ffacb8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/163272157232c2a1c90bd60bc5c17e27623bdb8a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/16349b7af619a65fc828562ef2b70b8b179f2213 b/fuzz/corpus/packet_recv_server/16349b7af619a65fc828562ef2b70b8b179f2213
new file mode 100644
index 0000000..8472557
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/16349b7af619a65fc828562ef2b70b8b179f2213
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/16c3368c8f0a406079ed53539fd9fa895298d4f7 b/fuzz/corpus/packet_recv_server/16c3368c8f0a406079ed53539fd9fa895298d4f7
new file mode 100644
index 0000000..7668a91
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/16c3368c8f0a406079ed53539fd9fa895298d4f7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/174e31b6df552523b24aa600019a0bfbbc42576d b/fuzz/corpus/packet_recv_server/174e31b6df552523b24aa600019a0bfbbc42576d
new file mode 100644
index 0000000..8ec6586
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/174e31b6df552523b24aa600019a0bfbbc42576d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/17839c6c74e2e311050b97858fd41ae734104098 b/fuzz/corpus/packet_recv_server/17839c6c74e2e311050b97858fd41ae734104098
deleted file mode 100644
index 1ec0fa0..0000000
--- a/fuzz/corpus/packet_recv_server/17839c6c74e2e311050b97858fd41ae734104098
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/17e65e8fa03c59a8e68aae3e55fe10c5d1ff70a7 b/fuzz/corpus/packet_recv_server/17e65e8fa03c59a8e68aae3e55fe10c5d1ff70a7
new file mode 100644
index 0000000..a76b65b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/17e65e8fa03c59a8e68aae3e55fe10c5d1ff70a7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/18039e354f61dc2f1eed282b281c444ac29eb638 b/fuzz/corpus/packet_recv_server/18039e354f61dc2f1eed282b281c444ac29eb638
new file mode 100644
index 0000000..6848c21
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/18039e354f61dc2f1eed282b281c444ac29eb638
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/186836d6a131aa41c990258101e9f247a36707fe b/fuzz/corpus/packet_recv_server/186836d6a131aa41c990258101e9f247a36707fe
new file mode 100644
index 0000000..969e106
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/186836d6a131aa41c990258101e9f247a36707fe
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/18a252d9b2a024421dc94003a02e3e7350394ce0 b/fuzz/corpus/packet_recv_server/18a252d9b2a024421dc94003a02e3e7350394ce0
deleted file mode 100644
index c18d19f..0000000
--- a/fuzz/corpus/packet_recv_server/18a252d9b2a024421dc94003a02e3e7350394ce0
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/19130d4b7e1e08a3290012986a6c547e25c712b4 b/fuzz/corpus/packet_recv_server/19130d4b7e1e08a3290012986a6c547e25c712b4
new file mode 100644
index 0000000..555b0dd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/19130d4b7e1e08a3290012986a6c547e25c712b4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/19db231447046ef71f81fbf2c2ae5d36c1b19232 b/fuzz/corpus/packet_recv_server/19db231447046ef71f81fbf2c2ae5d36c1b19232
new file mode 100644
index 0000000..bdbe01b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/19db231447046ef71f81fbf2c2ae5d36c1b19232
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/19dda3e2310ded1d934bfa6a7749a52bbaaa4fc1 b/fuzz/corpus/packet_recv_server/19dda3e2310ded1d934bfa6a7749a52bbaaa4fc1
new file mode 100644
index 0000000..01649f4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/19dda3e2310ded1d934bfa6a7749a52bbaaa4fc1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1a1578c6a122c1e0fbc383cb0d3f0119e239aa49 b/fuzz/corpus/packet_recv_server/1a1578c6a122c1e0fbc383cb0d3f0119e239aa49
deleted file mode 100644
index d0bf521..0000000
--- a/fuzz/corpus/packet_recv_server/1a1578c6a122c1e0fbc383cb0d3f0119e239aa49
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1a1dd102dfb83cf044c4586d289d780c1180c16f b/fuzz/corpus/packet_recv_server/1a1dd102dfb83cf044c4586d289d780c1180c16f
new file mode 100644
index 0000000..0367fdf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1a1dd102dfb83cf044c4586d289d780c1180c16f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1a42b79d5bba6c8d7395c04bf5bb7bd381caa211 b/fuzz/corpus/packet_recv_server/1a42b79d5bba6c8d7395c04bf5bb7bd381caa211
new file mode 100644
index 0000000..50d8d49
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1a42b79d5bba6c8d7395c04bf5bb7bd381caa211
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1a760d23cfa399fc75572419aed1feaa338b846a b/fuzz/corpus/packet_recv_server/1a760d23cfa399fc75572419aed1feaa338b846a
deleted file mode 100644
index a2eb133..0000000
--- a/fuzz/corpus/packet_recv_server/1a760d23cfa399fc75572419aed1feaa338b846a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1a9cc462b41ea1c711759f657bdef68be22f9d0f b/fuzz/corpus/packet_recv_server/1a9cc462b41ea1c711759f657bdef68be22f9d0f
deleted file mode 100644
index 698cf50..0000000
--- a/fuzz/corpus/packet_recv_server/1a9cc462b41ea1c711759f657bdef68be22f9d0f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1ac3e09d0678655dbda317adc98638dc78863bd8 b/fuzz/corpus/packet_recv_server/1ac3e09d0678655dbda317adc98638dc78863bd8
deleted file mode 100644
index 076224a..0000000
--- a/fuzz/corpus/packet_recv_server/1ac3e09d0678655dbda317adc98638dc78863bd8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1af8b9d5bde10915a830a609ad9cff90774913c1 b/fuzz/corpus/packet_recv_server/1af8b9d5bde10915a830a609ad9cff90774913c1
new file mode 100644
index 0000000..747c135
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1af8b9d5bde10915a830a609ad9cff90774913c1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1bd96986a901ba84bbaef75dfdd331e7a20c5242 b/fuzz/corpus/packet_recv_server/1bd96986a901ba84bbaef75dfdd331e7a20c5242
new file mode 100644
index 0000000..12f0c69
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1bd96986a901ba84bbaef75dfdd331e7a20c5242
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1cf0bbfb938b47576d4d1da56af9869e72e9ea1f b/fuzz/corpus/packet_recv_server/1cf0bbfb938b47576d4d1da56af9869e72e9ea1f
new file mode 100644
index 0000000..365aa5e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1cf0bbfb938b47576d4d1da56af9869e72e9ea1f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1d1c8e9e8f92f534a689b747e6b7a50e0ea9f783 b/fuzz/corpus/packet_recv_server/1d1c8e9e8f92f534a689b747e6b7a50e0ea9f783
new file mode 100644
index 0000000..80be03e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1d1c8e9e8f92f534a689b747e6b7a50e0ea9f783
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1d22eb7a31e0c2c83fcd8dd8cda7b97f6e0011e2 b/fuzz/corpus/packet_recv_server/1d22eb7a31e0c2c83fcd8dd8cda7b97f6e0011e2
new file mode 100644
index 0000000..d37de01
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1d22eb7a31e0c2c83fcd8dd8cda7b97f6e0011e2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1dc554aff644c9978432cfe3f8e40768fefe8871 b/fuzz/corpus/packet_recv_server/1dc554aff644c9978432cfe3f8e40768fefe8871
new file mode 100644
index 0000000..1fbe9ca
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1dc554aff644c9978432cfe3f8e40768fefe8871
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1e0a7133826b9ee1373f63de43630fe5f8954341 b/fuzz/corpus/packet_recv_server/1e0a7133826b9ee1373f63de43630fe5f8954341
new file mode 100644
index 0000000..7019f35
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1e0a7133826b9ee1373f63de43630fe5f8954341
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1ea0b5a2aa861221434edc367debd95fd493aa25 b/fuzz/corpus/packet_recv_server/1ea0b5a2aa861221434edc367debd95fd493aa25
deleted file mode 100644
index 13684dd..0000000
--- a/fuzz/corpus/packet_recv_server/1ea0b5a2aa861221434edc367debd95fd493aa25
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1ea61c903a56bfd127d187e8ab333f985f6c93cf b/fuzz/corpus/packet_recv_server/1ea61c903a56bfd127d187e8ab333f985f6c93cf
new file mode 100644
index 0000000..e7073f5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1ea61c903a56bfd127d187e8ab333f985f6c93cf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1ee08740311d5bc46756c8b04041f34c7d3e6d50 b/fuzz/corpus/packet_recv_server/1ee08740311d5bc46756c8b04041f34c7d3e6d50
new file mode 100644
index 0000000..103b9eb
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1ee08740311d5bc46756c8b04041f34c7d3e6d50
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1f0fbcecf12d37194c29e9c2fb5b6649c2e59ed0 b/fuzz/corpus/packet_recv_server/1f0fbcecf12d37194c29e9c2fb5b6649c2e59ed0
new file mode 100644
index 0000000..98067ea
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1f0fbcecf12d37194c29e9c2fb5b6649c2e59ed0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1f404dace01207669e4932766f9f30e1dfcf2dcd b/fuzz/corpus/packet_recv_server/1f404dace01207669e4932766f9f30e1dfcf2dcd
deleted file mode 100644
index 92a12b3..0000000
--- a/fuzz/corpus/packet_recv_server/1f404dace01207669e4932766f9f30e1dfcf2dcd
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/1fc55e786c21c02858f0057e1556cc2b0d13b6e9 b/fuzz/corpus/packet_recv_server/1fc55e786c21c02858f0057e1556cc2b0d13b6e9
new file mode 100644
index 0000000..26fef1c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/1fc55e786c21c02858f0057e1556cc2b0d13b6e9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/200f669ce94e2054aca74dfdcc6d9bbc1aab6379 b/fuzz/corpus/packet_recv_server/200f669ce94e2054aca74dfdcc6d9bbc1aab6379
new file mode 100644
index 0000000..452a04d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/200f669ce94e2054aca74dfdcc6d9bbc1aab6379
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/201a99e976cbf0329411850a1e93a0f2829c29c2 b/fuzz/corpus/packet_recv_server/201a99e976cbf0329411850a1e93a0f2829c29c2
new file mode 100644
index 0000000..36e16fd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/201a99e976cbf0329411850a1e93a0f2829c29c2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/204c5fcb6714445764674fe046fd3133775a836e b/fuzz/corpus/packet_recv_server/204c5fcb6714445764674fe046fd3133775a836e
new file mode 100644
index 0000000..3d85c35
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/204c5fcb6714445764674fe046fd3133775a836e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2068a7d669b6272b450a91ceb1e5278a07a4473c b/fuzz/corpus/packet_recv_server/2068a7d669b6272b450a91ceb1e5278a07a4473c
new file mode 100644
index 0000000..0d7108b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2068a7d669b6272b450a91ceb1e5278a07a4473c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/20db895f7cec60afd2ce4907a8aac4ea8a333d83 b/fuzz/corpus/packet_recv_server/20db895f7cec60afd2ce4907a8aac4ea8a333d83
new file mode 100644
index 0000000..72f6378
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/20db895f7cec60afd2ce4907a8aac4ea8a333d83
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/21999c1a171338de3b7ad3f186785699f09df2fe b/fuzz/corpus/packet_recv_server/21999c1a171338de3b7ad3f186785699f09df2fe
new file mode 100644
index 0000000..2fcb4f5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/21999c1a171338de3b7ad3f186785699f09df2fe
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/219fee6669ab353f6fdf0b4ef3c4eda4772c58bb b/fuzz/corpus/packet_recv_server/219fee6669ab353f6fdf0b4ef3c4eda4772c58bb
new file mode 100644
index 0000000..1ec2dc3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/219fee6669ab353f6fdf0b4ef3c4eda4772c58bb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/21c48732aa5252c9b8de46de4fa9a0f0bc30e9ff b/fuzz/corpus/packet_recv_server/21c48732aa5252c9b8de46de4fa9a0f0bc30e9ff
new file mode 100644
index 0000000..86e3b08
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/21c48732aa5252c9b8de46de4fa9a0f0bc30e9ff
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/22c86be5ddc079d6cecc9a9ee763ea4eb3d8914a b/fuzz/corpus/packet_recv_server/22c86be5ddc079d6cecc9a9ee763ea4eb3d8914a
deleted file mode 100644
index 51e6347..0000000
--- a/fuzz/corpus/packet_recv_server/22c86be5ddc079d6cecc9a9ee763ea4eb3d8914a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/23083a621ef61f8c962d4db60275230383d15a05 b/fuzz/corpus/packet_recv_server/23083a621ef61f8c962d4db60275230383d15a05
new file mode 100644
index 0000000..a3e6b13
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/23083a621ef61f8c962d4db60275230383d15a05
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/234eebc2e4a70a5a54f8c004cdeb23706b850b73 b/fuzz/corpus/packet_recv_server/234eebc2e4a70a5a54f8c004cdeb23706b850b73
new file mode 100644
index 0000000..7499846
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/234eebc2e4a70a5a54f8c004cdeb23706b850b73
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/23b9c5becfb0f74e4c23ae99ac296bd2154450f7 b/fuzz/corpus/packet_recv_server/23b9c5becfb0f74e4c23ae99ac296bd2154450f7
new file mode 100644
index 0000000..03de3c2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/23b9c5becfb0f74e4c23ae99ac296bd2154450f7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/23fee94f835efde2163f8c76e7955148b577c687 b/fuzz/corpus/packet_recv_server/23fee94f835efde2163f8c76e7955148b577c687
new file mode 100644
index 0000000..e9f5ebd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/23fee94f835efde2163f8c76e7955148b577c687
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2416b12c35a58e5f6cf2bc0d33ad4119f8208714 b/fuzz/corpus/packet_recv_server/2416b12c35a58e5f6cf2bc0d33ad4119f8208714
new file mode 100644
index 0000000..75a9703
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2416b12c35a58e5f6cf2bc0d33ad4119f8208714
@@ -0,0 +1 @@
+ýýýˆ_
\ No newline at end of file
diff --git a/fuzz/corpus/packet_recv_server/242c714026ad6c66024cc5b851b6c369a11ac749 b/fuzz/corpus/packet_recv_server/242c714026ad6c66024cc5b851b6c369a11ac749
new file mode 100644
index 0000000..ca88583
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/242c714026ad6c66024cc5b851b6c369a11ac749
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/243dcf3b6bad2a9a22f69825fa551abba12b475b b/fuzz/corpus/packet_recv_server/243dcf3b6bad2a9a22f69825fa551abba12b475b
new file mode 100644
index 0000000..38fbd06
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/243dcf3b6bad2a9a22f69825fa551abba12b475b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2457982aa1d19a3bcd868aeefdfb6667f742b755 b/fuzz/corpus/packet_recv_server/2457982aa1d19a3bcd868aeefdfb6667f742b755
new file mode 100644
index 0000000..17c8a74
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2457982aa1d19a3bcd868aeefdfb6667f742b755
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/24cc630ce43965156ca9efefd480502b02637691 b/fuzz/corpus/packet_recv_server/24cc630ce43965156ca9efefd480502b02637691
deleted file mode 100644
index 646326d..0000000
--- a/fuzz/corpus/packet_recv_server/24cc630ce43965156ca9efefd480502b02637691
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/24e8e0964d25ac94d3a039c1ee215feeab19c9f6 b/fuzz/corpus/packet_recv_server/24e8e0964d25ac94d3a039c1ee215feeab19c9f6
new file mode 100644
index 0000000..6eb10e5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/24e8e0964d25ac94d3a039c1ee215feeab19c9f6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/25a84b2f2ec0acea7353a7bd88141d9833fda2be b/fuzz/corpus/packet_recv_server/25a84b2f2ec0acea7353a7bd88141d9833fda2be
deleted file mode 100644
index 23ccc86..0000000
--- a/fuzz/corpus/packet_recv_server/25a84b2f2ec0acea7353a7bd88141d9833fda2be
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/25c61aa7721a91064102818fde255d2b4cd7b74e b/fuzz/corpus/packet_recv_server/25c61aa7721a91064102818fde255d2b4cd7b74e
new file mode 100644
index 0000000..2fa7807
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/25c61aa7721a91064102818fde255d2b4cd7b74e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/260fc55abc18c7844145643a63f307702480a212 b/fuzz/corpus/packet_recv_server/260fc55abc18c7844145643a63f307702480a212
deleted file mode 100644
index 87ed40c..0000000
--- a/fuzz/corpus/packet_recv_server/260fc55abc18c7844145643a63f307702480a212
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2647cbe22de8ca2dbcac1cb83231e6c93c3ed76d b/fuzz/corpus/packet_recv_server/2647cbe22de8ca2dbcac1cb83231e6c93c3ed76d
new file mode 100644
index 0000000..aa73f93
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2647cbe22de8ca2dbcac1cb83231e6c93c3ed76d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/26557fdc4ac3acd50eb6e2494a08cdf12ea516ab b/fuzz/corpus/packet_recv_server/26557fdc4ac3acd50eb6e2494a08cdf12ea516ab
new file mode 100644
index 0000000..5418608
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/26557fdc4ac3acd50eb6e2494a08cdf12ea516ab
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/26cb6c35433c9839dc2ff343fcee2b14209569dd b/fuzz/corpus/packet_recv_server/26cb6c35433c9839dc2ff343fcee2b14209569dd
deleted file mode 100644
index fde64b9..0000000
--- a/fuzz/corpus/packet_recv_server/26cb6c35433c9839dc2ff343fcee2b14209569dd
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/270f4cf968e60210bb2037474ebbc4d1783c7fba b/fuzz/corpus/packet_recv_server/270f4cf968e60210bb2037474ebbc4d1783c7fba
new file mode 100644
index 0000000..20e7acb
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/270f4cf968e60210bb2037474ebbc4d1783c7fba
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2732171f11ea6ffcefe292e65313701f5128d5d6 b/fuzz/corpus/packet_recv_server/2732171f11ea6ffcefe292e65313701f5128d5d6
new file mode 100644
index 0000000..3d9f99c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2732171f11ea6ffcefe292e65313701f5128d5d6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/273ab1abd2226e1f71080413bf1d185f37024c6b b/fuzz/corpus/packet_recv_server/273ab1abd2226e1f71080413bf1d185f37024c6b
deleted file mode 100644
index c02b636..0000000
--- a/fuzz/corpus/packet_recv_server/273ab1abd2226e1f71080413bf1d185f37024c6b
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/27526b9fc332f312b3fd740f0691fdbf853760b4 b/fuzz/corpus/packet_recv_server/27526b9fc332f312b3fd740f0691fdbf853760b4
deleted file mode 100644
index a8ae427..0000000
--- a/fuzz/corpus/packet_recv_server/27526b9fc332f312b3fd740f0691fdbf853760b4
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/276ee70c11ce7605f450bef72ebf7b30d4ef39f0 b/fuzz/corpus/packet_recv_server/276ee70c11ce7605f450bef72ebf7b30d4ef39f0
deleted file mode 100644
index 2c849c1..0000000
--- a/fuzz/corpus/packet_recv_server/276ee70c11ce7605f450bef72ebf7b30d4ef39f0
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/27d60415ea72b29b568ccac386d516c91facc553 b/fuzz/corpus/packet_recv_server/27d60415ea72b29b568ccac386d516c91facc553
deleted file mode 100644
index 209fe78..0000000
--- a/fuzz/corpus/packet_recv_server/27d60415ea72b29b568ccac386d516c91facc553
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/27eb4e4f516301d284cf071fcc9915bc4019ee35 b/fuzz/corpus/packet_recv_server/27eb4e4f516301d284cf071fcc9915bc4019ee35
deleted file mode 100644
index 74caaf5..0000000
--- a/fuzz/corpus/packet_recv_server/27eb4e4f516301d284cf071fcc9915bc4019ee35
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2802e1a53c369b9365cd148029cfba37ad289a4f b/fuzz/corpus/packet_recv_server/2802e1a53c369b9365cd148029cfba37ad289a4f
deleted file mode 100644
index 7677545..0000000
--- a/fuzz/corpus/packet_recv_server/2802e1a53c369b9365cd148029cfba37ad289a4f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/285765b35ccc36e349f2f43d97d6017aee7b1c1c b/fuzz/corpus/packet_recv_server/285765b35ccc36e349f2f43d97d6017aee7b1c1c
new file mode 100644
index 0000000..a83b24f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/285765b35ccc36e349f2f43d97d6017aee7b1c1c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/28a9d71c89f79e3335a75221fd5eab3deed2b52e b/fuzz/corpus/packet_recv_server/28a9d71c89f79e3335a75221fd5eab3deed2b52e
new file mode 100644
index 0000000..82fe7ee
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/28a9d71c89f79e3335a75221fd5eab3deed2b52e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/28a9e257bdc5336457512233ebabcc8c017337c0 b/fuzz/corpus/packet_recv_server/28a9e257bdc5336457512233ebabcc8c017337c0
new file mode 100644
index 0000000..318b78b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/28a9e257bdc5336457512233ebabcc8c017337c0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/28b348966a361410bf7c59a5bcfec31d2f0e649e b/fuzz/corpus/packet_recv_server/28b348966a361410bf7c59a5bcfec31d2f0e649e
deleted file mode 100644
index 089482d..0000000
--- a/fuzz/corpus/packet_recv_server/28b348966a361410bf7c59a5bcfec31d2f0e649e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/28fe1fbae57e6757cd09b71b0cd405e56f3652db b/fuzz/corpus/packet_recv_server/28fe1fbae57e6757cd09b71b0cd405e56f3652db
new file mode 100644
index 0000000..ae9408b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/28fe1fbae57e6757cd09b71b0cd405e56f3652db
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/293309099567cc636b74b458c03d1cb2c0d6f13c b/fuzz/corpus/packet_recv_server/293309099567cc636b74b458c03d1cb2c0d6f13c
new file mode 100644
index 0000000..556062d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/293309099567cc636b74b458c03d1cb2c0d6f13c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/29c6d0d31fa88eb806afd65a1cbbb720ad47a0f0 b/fuzz/corpus/packet_recv_server/29c6d0d31fa88eb806afd65a1cbbb720ad47a0f0
new file mode 100644
index 0000000..deb4bc3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/29c6d0d31fa88eb806afd65a1cbbb720ad47a0f0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/29e05b13743dd8c7ba45d3ed4378c1f0a5564884 b/fuzz/corpus/packet_recv_server/29e05b13743dd8c7ba45d3ed4378c1f0a5564884
deleted file mode 100644
index b0b0295..0000000
--- a/fuzz/corpus/packet_recv_server/29e05b13743dd8c7ba45d3ed4378c1f0a5564884
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2a488173a1ad57b605d0f4b0909910d97dbd4dc2 b/fuzz/corpus/packet_recv_server/2a488173a1ad57b605d0f4b0909910d97dbd4dc2
deleted file mode 100644
index 81e673f..0000000
--- a/fuzz/corpus/packet_recv_server/2a488173a1ad57b605d0f4b0909910d97dbd4dc2
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2a6c212f2724754d14b24ad63fb88a462a1dbedc b/fuzz/corpus/packet_recv_server/2a6c212f2724754d14b24ad63fb88a462a1dbedc
new file mode 100644
index 0000000..b502106
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2a6c212f2724754d14b24ad63fb88a462a1dbedc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2aec8ea8aef5faef6248181acc7630d5c4061d29 b/fuzz/corpus/packet_recv_server/2aec8ea8aef5faef6248181acc7630d5c4061d29
new file mode 100644
index 0000000..38780f4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2aec8ea8aef5faef6248181acc7630d5c4061d29
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2b15ca79bc4397e15f1f1e86448cec04271631c4 b/fuzz/corpus/packet_recv_server/2b15ca79bc4397e15f1f1e86448cec04271631c4
deleted file mode 100644
index 3070c25..0000000
--- a/fuzz/corpus/packet_recv_server/2b15ca79bc4397e15f1f1e86448cec04271631c4
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2c52c204303453d9a68541e9f900c8ea936178c7 b/fuzz/corpus/packet_recv_server/2c52c204303453d9a68541e9f900c8ea936178c7
new file mode 100644
index 0000000..5881ab5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2c52c204303453d9a68541e9f900c8ea936178c7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2c614fbc7be171cf97fc348c10219c02c2cce526 b/fuzz/corpus/packet_recv_server/2c614fbc7be171cf97fc348c10219c02c2cce526
new file mode 100644
index 0000000..d6a78c9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2c614fbc7be171cf97fc348c10219c02c2cce526
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2cb44ce105695dab21b3039c88a129151477f346 b/fuzz/corpus/packet_recv_server/2cb44ce105695dab21b3039c88a129151477f346
new file mode 100644
index 0000000..87a7159
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2cb44ce105695dab21b3039c88a129151477f346
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2cffaf7a90a86b0aade651cc87a7e74bc6396282 b/fuzz/corpus/packet_recv_server/2cffaf7a90a86b0aade651cc87a7e74bc6396282
deleted file mode 100644
index 52516f6..0000000
--- a/fuzz/corpus/packet_recv_server/2cffaf7a90a86b0aade651cc87a7e74bc6396282
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2d2b3c186947fa405183cf8a1ba75660d8674363 b/fuzz/corpus/packet_recv_server/2d2b3c186947fa405183cf8a1ba75660d8674363
new file mode 100644
index 0000000..e4ff9ff
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2d2b3c186947fa405183cf8a1ba75660d8674363
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2d724fc813879dab496e2e0631f0dcd5e243556b b/fuzz/corpus/packet_recv_server/2d724fc813879dab496e2e0631f0dcd5e243556b
new file mode 100644
index 0000000..9f97a65
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2d724fc813879dab496e2e0631f0dcd5e243556b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2d79201ccb92b513128d0f61b717094ce0d77143 b/fuzz/corpus/packet_recv_server/2d79201ccb92b513128d0f61b717094ce0d77143
new file mode 100644
index 0000000..7473dce
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2d79201ccb92b513128d0f61b717094ce0d77143
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2dcb1f8ba1ef482071c96e326b05f6c10a879294 b/fuzz/corpus/packet_recv_server/2dcb1f8ba1ef482071c96e326b05f6c10a879294
deleted file mode 100644
index e2cf6bb..0000000
--- a/fuzz/corpus/packet_recv_server/2dcb1f8ba1ef482071c96e326b05f6c10a879294
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2de98b23fdbb5aa07f951e3b72413bea6297c3ac b/fuzz/corpus/packet_recv_server/2de98b23fdbb5aa07f951e3b72413bea6297c3ac
deleted file mode 100644
index 7e5e6c5..0000000
--- a/fuzz/corpus/packet_recv_server/2de98b23fdbb5aa07f951e3b72413bea6297c3ac
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2e4af6d271fa52fcd65e333062df1cfdd46b060f b/fuzz/corpus/packet_recv_server/2e4af6d271fa52fcd65e333062df1cfdd46b060f
new file mode 100644
index 0000000..6753c4d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2e4af6d271fa52fcd65e333062df1cfdd46b060f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2e8592dc8bdea279eddd81e1edaf520839e83dd7 b/fuzz/corpus/packet_recv_server/2e8592dc8bdea279eddd81e1edaf520839e83dd7
deleted file mode 100644
index 2d66c51..0000000
--- a/fuzz/corpus/packet_recv_server/2e8592dc8bdea279eddd81e1edaf520839e83dd7
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2ec1477151d57dbfcaadc39088a1693217662d89 b/fuzz/corpus/packet_recv_server/2ec1477151d57dbfcaadc39088a1693217662d89
new file mode 100644
index 0000000..458db5b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2ec1477151d57dbfcaadc39088a1693217662d89
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2ef83dea4538e34c9b6b9e11add459b048db6ba1 b/fuzz/corpus/packet_recv_server/2ef83dea4538e34c9b6b9e11add459b048db6ba1
new file mode 100644
index 0000000..799e15f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2ef83dea4538e34c9b6b9e11add459b048db6ba1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2f22292b1e4988e29d5e894833cef40aa1484084 b/fuzz/corpus/packet_recv_server/2f22292b1e4988e29d5e894833cef40aa1484084
deleted file mode 100644
index 1888252..0000000
--- a/fuzz/corpus/packet_recv_server/2f22292b1e4988e29d5e894833cef40aa1484084
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2f44c0579e1fe62dbb89ba44dc6b59a3760af84a b/fuzz/corpus/packet_recv_server/2f44c0579e1fe62dbb89ba44dc6b59a3760af84a
deleted file mode 100644
index 4c9292d..0000000
--- a/fuzz/corpus/packet_recv_server/2f44c0579e1fe62dbb89ba44dc6b59a3760af84a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2f65903b8f37fc61537ab20f4f885825ca47a701 b/fuzz/corpus/packet_recv_server/2f65903b8f37fc61537ab20f4f885825ca47a701
new file mode 100644
index 0000000..1861f26
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2f65903b8f37fc61537ab20f4f885825ca47a701
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2f82a8ce161b9ec15308e19dcc9a3362e4c93a43 b/fuzz/corpus/packet_recv_server/2f82a8ce161b9ec15308e19dcc9a3362e4c93a43
deleted file mode 100644
index f00f438..0000000
--- a/fuzz/corpus/packet_recv_server/2f82a8ce161b9ec15308e19dcc9a3362e4c93a43
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2fbd0b44fddea8e977a281c7d43573fcc0141967 b/fuzz/corpus/packet_recv_server/2fbd0b44fddea8e977a281c7d43573fcc0141967
deleted file mode 100644
index 61309c2..0000000
--- a/fuzz/corpus/packet_recv_server/2fbd0b44fddea8e977a281c7d43573fcc0141967
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/2ff68c7dcc2109ab710b15e8f97d70cd0bedf285 b/fuzz/corpus/packet_recv_server/2ff68c7dcc2109ab710b15e8f97d70cd0bedf285
new file mode 100644
index 0000000..158ec17
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/2ff68c7dcc2109ab710b15e8f97d70cd0bedf285
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/30e12c0270f92f270b0569dd1ea79e8df928b7c4 b/fuzz/corpus/packet_recv_server/30e12c0270f92f270b0569dd1ea79e8df928b7c4
new file mode 100644
index 0000000..c11c717
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/30e12c0270f92f270b0569dd1ea79e8df928b7c4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/310137e13079637acfe74af376846bb657dfebe7 b/fuzz/corpus/packet_recv_server/310137e13079637acfe74af376846bb657dfebe7
new file mode 100644
index 0000000..b2f55ac
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/310137e13079637acfe74af376846bb657dfebe7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/31289fb8b42cef18e6b856b4394e8b343b475e9b b/fuzz/corpus/packet_recv_server/31289fb8b42cef18e6b856b4394e8b343b475e9b
new file mode 100644
index 0000000..100798e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/31289fb8b42cef18e6b856b4394e8b343b475e9b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/313508b0d326f4359788e807ec5a716894035d55 b/fuzz/corpus/packet_recv_server/313508b0d326f4359788e807ec5a716894035d55
new file mode 100644
index 0000000..8e68e80
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/313508b0d326f4359788e807ec5a716894035d55
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/31c32c4089d590101660a1ce24a23da4bb4cb76e b/fuzz/corpus/packet_recv_server/31c32c4089d590101660a1ce24a23da4bb4cb76e
new file mode 100644
index 0000000..da75c62
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/31c32c4089d590101660a1ce24a23da4bb4cb76e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/31e5c037530607bcbf917a8cd5a28975544f45b0 b/fuzz/corpus/packet_recv_server/31e5c037530607bcbf917a8cd5a28975544f45b0
new file mode 100644
index 0000000..4676948
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/31e5c037530607bcbf917a8cd5a28975544f45b0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/31ffbf3a3edd87e89551f57833c51ddd1fc703ba b/fuzz/corpus/packet_recv_server/31ffbf3a3edd87e89551f57833c51ddd1fc703ba
new file mode 100644
index 0000000..96b43c5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/31ffbf3a3edd87e89551f57833c51ddd1fc703ba
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/32276ff24c79ddd7a244187a671f3333d1aff8f2 b/fuzz/corpus/packet_recv_server/32276ff24c79ddd7a244187a671f3333d1aff8f2
new file mode 100644
index 0000000..76274f2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/32276ff24c79ddd7a244187a671f3333d1aff8f2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/323ae51aaa7002cc4d28c82473d402d3e87076d7 b/fuzz/corpus/packet_recv_server/323ae51aaa7002cc4d28c82473d402d3e87076d7
new file mode 100644
index 0000000..1e75297
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/323ae51aaa7002cc4d28c82473d402d3e87076d7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3253cb473932654936b3de17e39d83e91c508090 b/fuzz/corpus/packet_recv_server/3253cb473932654936b3de17e39d83e91c508090
new file mode 100644
index 0000000..e909d7f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3253cb473932654936b3de17e39d83e91c508090
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/329722ae4615053eab5e2e828caefe7d7207c21b b/fuzz/corpus/packet_recv_server/329722ae4615053eab5e2e828caefe7d7207c21b
new file mode 100644
index 0000000..10858c3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/329722ae4615053eab5e2e828caefe7d7207c21b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/32bcd9fd35258b0c369e73c84059fc4640a2127f b/fuzz/corpus/packet_recv_server/32bcd9fd35258b0c369e73c84059fc4640a2127f
new file mode 100644
index 0000000..f5e422d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/32bcd9fd35258b0c369e73c84059fc4640a2127f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/32efd1eed046720e7d9bbfe2242b8997f94073ed b/fuzz/corpus/packet_recv_server/32efd1eed046720e7d9bbfe2242b8997f94073ed
deleted file mode 100644
index fa7be0c..0000000
--- a/fuzz/corpus/packet_recv_server/32efd1eed046720e7d9bbfe2242b8997f94073ed
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3333e86c3636bb0231e547c80ac42bfba3f44a48 b/fuzz/corpus/packet_recv_server/3333e86c3636bb0231e547c80ac42bfba3f44a48
deleted file mode 100644
index 71a8a90..0000000
--- a/fuzz/corpus/packet_recv_server/3333e86c3636bb0231e547c80ac42bfba3f44a48
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3411eef39f6574aac852c58b25ba0822f9277f1b b/fuzz/corpus/packet_recv_server/3411eef39f6574aac852c58b25ba0822f9277f1b
new file mode 100644
index 0000000..6142a2e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3411eef39f6574aac852c58b25ba0822f9277f1b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/345335e0f6209ab0c0facc9210f80a8695c135b3 b/fuzz/corpus/packet_recv_server/345335e0f6209ab0c0facc9210f80a8695c135b3
new file mode 100644
index 0000000..ed04123
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/345335e0f6209ab0c0facc9210f80a8695c135b3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/349ff9743e44d01fb777c95352671efcd3d70621 b/fuzz/corpus/packet_recv_server/349ff9743e44d01fb777c95352671efcd3d70621
deleted file mode 100644
index c300ab9..0000000
--- a/fuzz/corpus/packet_recv_server/349ff9743e44d01fb777c95352671efcd3d70621
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/34e9c616d9d878af7c4e28654596bba51e870379 b/fuzz/corpus/packet_recv_server/34e9c616d9d878af7c4e28654596bba51e870379
new file mode 100644
index 0000000..df9dc8e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/34e9c616d9d878af7c4e28654596bba51e870379
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3543e917e5462422c7a5057fc71fd1f03b7cfa7b b/fuzz/corpus/packet_recv_server/3543e917e5462422c7a5057fc71fd1f03b7cfa7b
new file mode 100644
index 0000000..425e2be
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3543e917e5462422c7a5057fc71fd1f03b7cfa7b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3589e0dd2becbde3794697702d766cdeef397df1 b/fuzz/corpus/packet_recv_server/3589e0dd2becbde3794697702d766cdeef397df1
new file mode 100644
index 0000000..b72c6e6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3589e0dd2becbde3794697702d766cdeef397df1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/35ebca2f9ef21fc8eac8b3e528ececbf6bf4cb2b b/fuzz/corpus/packet_recv_server/35ebca2f9ef21fc8eac8b3e528ececbf6bf4cb2b
deleted file mode 100644
index f3aa9a3..0000000
--- a/fuzz/corpus/packet_recv_server/35ebca2f9ef21fc8eac8b3e528ececbf6bf4cb2b
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/361214e9f59e82f778f56f77fb0a9162cd293d88 b/fuzz/corpus/packet_recv_server/361214e9f59e82f778f56f77fb0a9162cd293d88
deleted file mode 100644
index 602c827..0000000
--- a/fuzz/corpus/packet_recv_server/361214e9f59e82f778f56f77fb0a9162cd293d88
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3661b53bd24a0945a0a29e4d8311aa85385db283 b/fuzz/corpus/packet_recv_server/3661b53bd24a0945a0a29e4d8311aa85385db283
new file mode 100644
index 0000000..3f3967b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3661b53bd24a0945a0a29e4d8311aa85385db283
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/36696e28cba218dd40e998a708ea32cc3d966b1b b/fuzz/corpus/packet_recv_server/36696e28cba218dd40e998a708ea32cc3d966b1b
new file mode 100644
index 0000000..b97c112
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/36696e28cba218dd40e998a708ea32cc3d966b1b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3689067e6365adecc0e03d1b1b54d93116bcc758 b/fuzz/corpus/packet_recv_server/3689067e6365adecc0e03d1b1b54d93116bcc758
deleted file mode 100644
index 4e1f28e..0000000
--- a/fuzz/corpus/packet_recv_server/3689067e6365adecc0e03d1b1b54d93116bcc758
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/370bd9ade9aa2b99ca781ad8148b247e6799969c b/fuzz/corpus/packet_recv_server/370bd9ade9aa2b99ca781ad8148b247e6799969c
new file mode 100644
index 0000000..5b04e49
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/370bd9ade9aa2b99ca781ad8148b247e6799969c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3713cd501794f61230fa4922a26415379064c46a b/fuzz/corpus/packet_recv_server/3713cd501794f61230fa4922a26415379064c46a
deleted file mode 100644
index 23a5ff0..0000000
--- a/fuzz/corpus/packet_recv_server/3713cd501794f61230fa4922a26415379064c46a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/371aaf96e84892d46a9700867f928ab349d78881 b/fuzz/corpus/packet_recv_server/371aaf96e84892d46a9700867f928ab349d78881
deleted file mode 100644
index 0106eae..0000000
--- a/fuzz/corpus/packet_recv_server/371aaf96e84892d46a9700867f928ab349d78881
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/373893fd9bc456ea590fb89e033a3f517ada08c3 b/fuzz/corpus/packet_recv_server/373893fd9bc456ea590fb89e033a3f517ada08c3
new file mode 100644
index 0000000..78d0f2c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/373893fd9bc456ea590fb89e033a3f517ada08c3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/374ba3e36a63abe229f42ad83a0cf0039e340a4a b/fuzz/corpus/packet_recv_server/374ba3e36a63abe229f42ad83a0cf0039e340a4a
new file mode 100644
index 0000000..4c65694
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/374ba3e36a63abe229f42ad83a0cf0039e340a4a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3785d1e78ac755773701a30e22353558a65f9a4d b/fuzz/corpus/packet_recv_server/3785d1e78ac755773701a30e22353558a65f9a4d
deleted file mode 100644
index 81574cb..0000000
--- a/fuzz/corpus/packet_recv_server/3785d1e78ac755773701a30e22353558a65f9a4d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/379af09cb4d04356f3a9cf6633e445f137b5cf3a b/fuzz/corpus/packet_recv_server/379af09cb4d04356f3a9cf6633e445f137b5cf3a
deleted file mode 100644
index a158a47..0000000
--- a/fuzz/corpus/packet_recv_server/379af09cb4d04356f3a9cf6633e445f137b5cf3a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/38d5764437b21c9df76865ae260d63abdf3af555 b/fuzz/corpus/packet_recv_server/38d5764437b21c9df76865ae260d63abdf3af555
new file mode 100644
index 0000000..e1d30e0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/38d5764437b21c9df76865ae260d63abdf3af555
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/39070e9bf9a9da8a84c65e2db2f595f853a05d8f b/fuzz/corpus/packet_recv_server/39070e9bf9a9da8a84c65e2db2f595f853a05d8f
deleted file mode 100644
index 2e0134c..0000000
--- a/fuzz/corpus/packet_recv_server/39070e9bf9a9da8a84c65e2db2f595f853a05d8f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/394dcffbc8288abe808894f32036d503eaf213cf b/fuzz/corpus/packet_recv_server/394dcffbc8288abe808894f32036d503eaf213cf
new file mode 100644
index 0000000..fafb197
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/394dcffbc8288abe808894f32036d503eaf213cf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/39bcee5e0bd5e6f8b0242b935653a50288f599f5 b/fuzz/corpus/packet_recv_server/39bcee5e0bd5e6f8b0242b935653a50288f599f5
new file mode 100644
index 0000000..f4c29ef
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/39bcee5e0bd5e6f8b0242b935653a50288f599f5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3a8e5e1e57738632c5b2bfbf8c6368b845b657e8 b/fuzz/corpus/packet_recv_server/3a8e5e1e57738632c5b2bfbf8c6368b845b657e8
new file mode 100644
index 0000000..2b25091
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3a8e5e1e57738632c5b2bfbf8c6368b845b657e8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3ad24100ca54213e02ea78664ec681d4229e4524 b/fuzz/corpus/packet_recv_server/3ad24100ca54213e02ea78664ec681d4229e4524
new file mode 100644
index 0000000..45af4b3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3ad24100ca54213e02ea78664ec681d4229e4524
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3b72f2c7fa5ec41e9cd5491b892e7d9f954f5cb7 b/fuzz/corpus/packet_recv_server/3b72f2c7fa5ec41e9cd5491b892e7d9f954f5cb7
new file mode 100644
index 0000000..10ead7a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3b72f2c7fa5ec41e9cd5491b892e7d9f954f5cb7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3b7ea41191991d62e37a293f35cd60ced88726e9 b/fuzz/corpus/packet_recv_server/3b7ea41191991d62e37a293f35cd60ced88726e9
deleted file mode 100644
index b5b7a5b..0000000
--- a/fuzz/corpus/packet_recv_server/3b7ea41191991d62e37a293f35cd60ced88726e9
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3b8e94c9b2e1c59a7d529ecce7cd4555522c40e8 b/fuzz/corpus/packet_recv_server/3b8e94c9b2e1c59a7d529ecce7cd4555522c40e8
new file mode 100644
index 0000000..24262fc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3b8e94c9b2e1c59a7d529ecce7cd4555522c40e8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3bdfad778b595e0661dacbfd19692775145171e3 b/fuzz/corpus/packet_recv_server/3bdfad778b595e0661dacbfd19692775145171e3
new file mode 100644
index 0000000..cd8b161
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3bdfad778b595e0661dacbfd19692775145171e3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3be22dd72f02d7fbad3b1869359541b6c4390b87 b/fuzz/corpus/packet_recv_server/3be22dd72f02d7fbad3b1869359541b6c4390b87
new file mode 100644
index 0000000..bce2af2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3be22dd72f02d7fbad3b1869359541b6c4390b87
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3c11bd9fca415e6860542f7759a3de9f8ba5fb21 b/fuzz/corpus/packet_recv_server/3c11bd9fca415e6860542f7759a3de9f8ba5fb21
deleted file mode 100644
index d224f8a..0000000
--- a/fuzz/corpus/packet_recv_server/3c11bd9fca415e6860542f7759a3de9f8ba5fb21
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3c2316eb9123907a2454fcc1d27a07cd19daf06c b/fuzz/corpus/packet_recv_server/3c2316eb9123907a2454fcc1d27a07cd19daf06c
new file mode 100644
index 0000000..fe87a32
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3c2316eb9123907a2454fcc1d27a07cd19daf06c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3c3a6588bf4366190909bba9e15cb8ddb53e54da b/fuzz/corpus/packet_recv_server/3c3a6588bf4366190909bba9e15cb8ddb53e54da
new file mode 100644
index 0000000..905f810
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3c3a6588bf4366190909bba9e15cb8ddb53e54da
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3cda2031fb38b216e1ddc5de973f4f2166d64454 b/fuzz/corpus/packet_recv_server/3cda2031fb38b216e1ddc5de973f4f2166d64454
new file mode 100644
index 0000000..8c1840d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3cda2031fb38b216e1ddc5de973f4f2166d64454
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3cde95fad147de37b40964f81e61e60922b6dddf b/fuzz/corpus/packet_recv_server/3cde95fad147de37b40964f81e61e60922b6dddf
new file mode 100644
index 0000000..1835030
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3cde95fad147de37b40964f81e61e60922b6dddf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3d0aa0efb6b28e02f35e9c9fc8fc695cb8bf7fb0 b/fuzz/corpus/packet_recv_server/3d0aa0efb6b28e02f35e9c9fc8fc695cb8bf7fb0
new file mode 100644
index 0000000..f30b592
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3d0aa0efb6b28e02f35e9c9fc8fc695cb8bf7fb0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3d0de53e253af82c6de0beb5259359b1a27f1542 b/fuzz/corpus/packet_recv_server/3d0de53e253af82c6de0beb5259359b1a27f1542
new file mode 100644
index 0000000..230524c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3d0de53e253af82c6de0beb5259359b1a27f1542
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3d99c7dd80b7be116a708f0f597d46bc8019a88d b/fuzz/corpus/packet_recv_server/3d99c7dd80b7be116a708f0f597d46bc8019a88d
new file mode 100644
index 0000000..b5e24de
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3d99c7dd80b7be116a708f0f597d46bc8019a88d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3dd15a7e2d1bc5ad80bb5d0cc8d01c9d41541d21 b/fuzz/corpus/packet_recv_server/3dd15a7e2d1bc5ad80bb5d0cc8d01c9d41541d21
new file mode 100644
index 0000000..7dc7578
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3dd15a7e2d1bc5ad80bb5d0cc8d01c9d41541d21
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3df07db8d04f6a0d04be6565509091dbbd41df45 b/fuzz/corpus/packet_recv_server/3df07db8d04f6a0d04be6565509091dbbd41df45
new file mode 100644
index 0000000..2831bd3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3df07db8d04f6a0d04be6565509091dbbd41df45
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3e05230ff3955be31ebe1d4db1b027ecfa4bc296 b/fuzz/corpus/packet_recv_server/3e05230ff3955be31ebe1d4db1b027ecfa4bc296
new file mode 100644
index 0000000..5720bc4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3e05230ff3955be31ebe1d4db1b027ecfa4bc296
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3e5ada3e3e0e2d19b8decb3b4c7983cfc57ed6e1 b/fuzz/corpus/packet_recv_server/3e5ada3e3e0e2d19b8decb3b4c7983cfc57ed6e1
new file mode 100644
index 0000000..e8f170b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3e5ada3e3e0e2d19b8decb3b4c7983cfc57ed6e1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3e9a3281b72732af6635b4fb2fc33679536805e6 b/fuzz/corpus/packet_recv_server/3e9a3281b72732af6635b4fb2fc33679536805e6
new file mode 100644
index 0000000..9803fcf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3e9a3281b72732af6635b4fb2fc33679536805e6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3ec0e4087dae8373e8aea93609fb42343298aa67 b/fuzz/corpus/packet_recv_server/3ec0e4087dae8373e8aea93609fb42343298aa67
new file mode 100644
index 0000000..ffaaa32
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3ec0e4087dae8373e8aea93609fb42343298aa67
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3eceb8945fa9a235b91832bc9502b0e6ebef1165 b/fuzz/corpus/packet_recv_server/3eceb8945fa9a235b91832bc9502b0e6ebef1165
deleted file mode 100644
index d4b8989..0000000
--- a/fuzz/corpus/packet_recv_server/3eceb8945fa9a235b91832bc9502b0e6ebef1165
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3ee77111b517d1e5bf17ead9f9f4a657b1afa726 b/fuzz/corpus/packet_recv_server/3ee77111b517d1e5bf17ead9f9f4a657b1afa726
new file mode 100644
index 0000000..37c9118
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3ee77111b517d1e5bf17ead9f9f4a657b1afa726
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3f1fc9a22bd4fe2e6e550d0f028fca9fb557d41f b/fuzz/corpus/packet_recv_server/3f1fc9a22bd4fe2e6e550d0f028fca9fb557d41f
new file mode 100644
index 0000000..4e1558d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3f1fc9a22bd4fe2e6e550d0f028fca9fb557d41f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3f3b8488efe024710beff77abe1c43fb3f65863b b/fuzz/corpus/packet_recv_server/3f3b8488efe024710beff77abe1c43fb3f65863b
new file mode 100644
index 0000000..d65d843
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3f3b8488efe024710beff77abe1c43fb3f65863b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3f40478e17fe07736f6cecb01bc81615f76ec653 b/fuzz/corpus/packet_recv_server/3f40478e17fe07736f6cecb01bc81615f76ec653
new file mode 100644
index 0000000..5815bab
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3f40478e17fe07736f6cecb01bc81615f76ec653
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3f4655f0663b7d5daccf27178c70966ad9c4924f b/fuzz/corpus/packet_recv_server/3f4655f0663b7d5daccf27178c70966ad9c4924f
new file mode 100644
index 0000000..18f79cc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/3f4655f0663b7d5daccf27178c70966ad9c4924f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3f60738d93e54a30dfa908fe423df39db22ff1a8 b/fuzz/corpus/packet_recv_server/3f60738d93e54a30dfa908fe423df39db22ff1a8
deleted file mode 100644
index 60a74d5..0000000
--- a/fuzz/corpus/packet_recv_server/3f60738d93e54a30dfa908fe423df39db22ff1a8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/3ff29d38069d2a61cfd465445f91d04758d61e88 b/fuzz/corpus/packet_recv_server/3ff29d38069d2a61cfd465445f91d04758d61e88
deleted file mode 100644
index b5db846..0000000
--- a/fuzz/corpus/packet_recv_server/3ff29d38069d2a61cfd465445f91d04758d61e88
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/405152cba163aeb15e90cebe2ed07f8f27b8f001 b/fuzz/corpus/packet_recv_server/405152cba163aeb15e90cebe2ed07f8f27b8f001
deleted file mode 100644
index fe0f193..0000000
--- a/fuzz/corpus/packet_recv_server/405152cba163aeb15e90cebe2ed07f8f27b8f001
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/405e94575423e683fc20de969d979f2e6b775407 b/fuzz/corpus/packet_recv_server/405e94575423e683fc20de969d979f2e6b775407
deleted file mode 100644
index d529fce..0000000
--- a/fuzz/corpus/packet_recv_server/405e94575423e683fc20de969d979f2e6b775407
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/407de11f62fc0bd991889e4ff0f1db7e243780ae b/fuzz/corpus/packet_recv_server/407de11f62fc0bd991889e4ff0f1db7e243780ae
new file mode 100644
index 0000000..e7525cc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/407de11f62fc0bd991889e4ff0f1db7e243780ae
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/408886530194d975bef6ca2853ea97917cc9bde3 b/fuzz/corpus/packet_recv_server/408886530194d975bef6ca2853ea97917cc9bde3
deleted file mode 100644
index f226952..0000000
--- a/fuzz/corpus/packet_recv_server/408886530194d975bef6ca2853ea97917cc9bde3
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/409d27c57ee42f8991f3cbae119e070de19bd27d b/fuzz/corpus/packet_recv_server/409d27c57ee42f8991f3cbae119e070de19bd27d
new file mode 100644
index 0000000..6413e23
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/409d27c57ee42f8991f3cbae119e070de19bd27d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/40ae93f81dc6ca8733d6fe551864e457abf7188e b/fuzz/corpus/packet_recv_server/40ae93f81dc6ca8733d6fe551864e457abf7188e
new file mode 100644
index 0000000..a0d527b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/40ae93f81dc6ca8733d6fe551864e457abf7188e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/41036db666ab22bfde8fa83b6b0e969a80908747 b/fuzz/corpus/packet_recv_server/41036db666ab22bfde8fa83b6b0e969a80908747
deleted file mode 100644
index dd83b40..0000000
--- a/fuzz/corpus/packet_recv_server/41036db666ab22bfde8fa83b6b0e969a80908747
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/410be57d561a6c730ee01643649caee122ca7c46 b/fuzz/corpus/packet_recv_server/410be57d561a6c730ee01643649caee122ca7c46
deleted file mode 100644
index 0053cc6..0000000
--- a/fuzz/corpus/packet_recv_server/410be57d561a6c730ee01643649caee122ca7c46
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4135dde094c12d3591d71734bb4e566a6bf22613 b/fuzz/corpus/packet_recv_server/4135dde094c12d3591d71734bb4e566a6bf22613
new file mode 100644
index 0000000..241ff94
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4135dde094c12d3591d71734bb4e566a6bf22613
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/413899f700f8b0a17a0e0f7f3167eb2933c791c8 b/fuzz/corpus/packet_recv_server/413899f700f8b0a17a0e0f7f3167eb2933c791c8
new file mode 100644
index 0000000..e1b3163
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/413899f700f8b0a17a0e0f7f3167eb2933c791c8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/422f4257042b2f95b9b9d3765dbb7344ae7f0c39 b/fuzz/corpus/packet_recv_server/422f4257042b2f95b9b9d3765dbb7344ae7f0c39
deleted file mode 100644
index d13f77c..0000000
--- a/fuzz/corpus/packet_recv_server/422f4257042b2f95b9b9d3765dbb7344ae7f0c39
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4235b57a8910fc6acd8469d2e42842b045317891 b/fuzz/corpus/packet_recv_server/4235b57a8910fc6acd8469d2e42842b045317891
new file mode 100644
index 0000000..1bf8c06
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4235b57a8910fc6acd8469d2e42842b045317891
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/43a9bc36b0672481b29411f5fae892627073eb97 b/fuzz/corpus/packet_recv_server/43a9bc36b0672481b29411f5fae892627073eb97
deleted file mode 100644
index ed70e7e..0000000
--- a/fuzz/corpus/packet_recv_server/43a9bc36b0672481b29411f5fae892627073eb97
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/43c1fc669e0ab26f0237e6a9ebe4cdd120b2d0aa b/fuzz/corpus/packet_recv_server/43c1fc669e0ab26f0237e6a9ebe4cdd120b2d0aa
deleted file mode 100644
index d0677af..0000000
--- a/fuzz/corpus/packet_recv_server/43c1fc669e0ab26f0237e6a9ebe4cdd120b2d0aa
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/43db091b796abcde18ab4e17316543d16510eeb8 b/fuzz/corpus/packet_recv_server/43db091b796abcde18ab4e17316543d16510eeb8
deleted file mode 100644
index 350304c..0000000
--- a/fuzz/corpus/packet_recv_server/43db091b796abcde18ab4e17316543d16510eeb8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/445cf118e844a54b6faff4b57968e36d5517239a b/fuzz/corpus/packet_recv_server/445cf118e844a54b6faff4b57968e36d5517239a
new file mode 100644
index 0000000..7037107
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/445cf118e844a54b6faff4b57968e36d5517239a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/446ccf182127557ff99eff62daeb6f07358b10b0 b/fuzz/corpus/packet_recv_server/446ccf182127557ff99eff62daeb6f07358b10b0
new file mode 100644
index 0000000..fee9425
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/446ccf182127557ff99eff62daeb6f07358b10b0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/449a14b52ddac6234f42f0a57afeaebb91e16f8a b/fuzz/corpus/packet_recv_server/449a14b52ddac6234f42f0a57afeaebb91e16f8a
new file mode 100644
index 0000000..edfff54
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/449a14b52ddac6234f42f0a57afeaebb91e16f8a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/44b8a9ceb17ab73f5c2cc4ed5ea9d413e34bb62c b/fuzz/corpus/packet_recv_server/44b8a9ceb17ab73f5c2cc4ed5ea9d413e34bb62c
new file mode 100644
index 0000000..6ea99ac
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/44b8a9ceb17ab73f5c2cc4ed5ea9d413e34bb62c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/44c775d19176937bdcc011e792fb2023e658faba b/fuzz/corpus/packet_recv_server/44c775d19176937bdcc011e792fb2023e658faba
new file mode 100644
index 0000000..676a891
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/44c775d19176937bdcc011e792fb2023e658faba
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/44ed341d4ae814581854e03a4eb59027e6d1d009 b/fuzz/corpus/packet_recv_server/44ed341d4ae814581854e03a4eb59027e6d1d009
new file mode 100644
index 0000000..f160e8f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/44ed341d4ae814581854e03a4eb59027e6d1d009
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/457e1628bc608ba3f42d2a1fc05fa73c97a69e41 b/fuzz/corpus/packet_recv_server/457e1628bc608ba3f42d2a1fc05fa73c97a69e41
new file mode 100644
index 0000000..fe25841
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/457e1628bc608ba3f42d2a1fc05fa73c97a69e41
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/45b2676cddf53e4f4e00bfd6f2f2c6749ccf4666 b/fuzz/corpus/packet_recv_server/45b2676cddf53e4f4e00bfd6f2f2c6749ccf4666
new file mode 100644
index 0000000..5785916
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/45b2676cddf53e4f4e00bfd6f2f2c6749ccf4666
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/45da56f358da462d63f12192515a35a78fe74a12 b/fuzz/corpus/packet_recv_server/45da56f358da462d63f12192515a35a78fe74a12
new file mode 100644
index 0000000..8356541
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/45da56f358da462d63f12192515a35a78fe74a12
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/45ea99b17df76d97ac2d78c1eab97195733c57f1 b/fuzz/corpus/packet_recv_server/45ea99b17df76d97ac2d78c1eab97195733c57f1
new file mode 100644
index 0000000..3ab2fb4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/45ea99b17df76d97ac2d78c1eab97195733c57f1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/461fb1a1c61b1417d216c2f55d63200f1a70b4a6 b/fuzz/corpus/packet_recv_server/461fb1a1c61b1417d216c2f55d63200f1a70b4a6
deleted file mode 100644
index c917c44..0000000
--- a/fuzz/corpus/packet_recv_server/461fb1a1c61b1417d216c2f55d63200f1a70b4a6
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/466742830d8cb957ad1eb80d37f363ab8e4f6e59 b/fuzz/corpus/packet_recv_server/466742830d8cb957ad1eb80d37f363ab8e4f6e59
new file mode 100644
index 0000000..37ed83a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/466742830d8cb957ad1eb80d37f363ab8e4f6e59
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/46b2e0f175cae0b218c227684c3233431ae39809 b/fuzz/corpus/packet_recv_server/46b2e0f175cae0b218c227684c3233431ae39809
deleted file mode 100644
index 4e119ba..0000000
--- a/fuzz/corpus/packet_recv_server/46b2e0f175cae0b218c227684c3233431ae39809
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/46b4efcf46c052ea282a29f16da948727acdcc60 b/fuzz/corpus/packet_recv_server/46b4efcf46c052ea282a29f16da948727acdcc60
new file mode 100644
index 0000000..1782540
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/46b4efcf46c052ea282a29f16da948727acdcc60
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/46c001064cf47291cb4fd80fd5540879df113772 b/fuzz/corpus/packet_recv_server/46c001064cf47291cb4fd80fd5540879df113772
new file mode 100644
index 0000000..542c76d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/46c001064cf47291cb4fd80fd5540879df113772
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/46cf4950882e52c66993401d9d1cc9ef494ca980 b/fuzz/corpus/packet_recv_server/46cf4950882e52c66993401d9d1cc9ef494ca980
deleted file mode 100644
index 376a82f..0000000
--- a/fuzz/corpus/packet_recv_server/46cf4950882e52c66993401d9d1cc9ef494ca980
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4700916bdc8f1a37984bb21e019411ddbc6122bc b/fuzz/corpus/packet_recv_server/4700916bdc8f1a37984bb21e019411ddbc6122bc
new file mode 100644
index 0000000..277c117
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4700916bdc8f1a37984bb21e019411ddbc6122bc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/470b75f5f561222025f5fa513bcfeaa16b482df4 b/fuzz/corpus/packet_recv_server/470b75f5f561222025f5fa513bcfeaa16b482df4
new file mode 100644
index 0000000..238f8e6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/470b75f5f561222025f5fa513bcfeaa16b482df4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/474cf2995b0e73b0f86ac33ea409b84b1fa6f089 b/fuzz/corpus/packet_recv_server/474cf2995b0e73b0f86ac33ea409b84b1fa6f089
new file mode 100644
index 0000000..9c6dac3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/474cf2995b0e73b0f86ac33ea409b84b1fa6f089
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4783d49b348fd710dc5dbb4ce1c7ef4ce808b287 b/fuzz/corpus/packet_recv_server/4783d49b348fd710dc5dbb4ce1c7ef4ce808b287
new file mode 100644
index 0000000..6e250b1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4783d49b348fd710dc5dbb4ce1c7ef4ce808b287
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/47e8d073626ad373833672473a89a0d2d473eb91 b/fuzz/corpus/packet_recv_server/47e8d073626ad373833672473a89a0d2d473eb91
deleted file mode 100644
index f7eee29..0000000
--- a/fuzz/corpus/packet_recv_server/47e8d073626ad373833672473a89a0d2d473eb91
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4865db29087eae4d3fa49486e1eeb40ffc676be3 b/fuzz/corpus/packet_recv_server/4865db29087eae4d3fa49486e1eeb40ffc676be3
new file mode 100644
index 0000000..1f5e225
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4865db29087eae4d3fa49486e1eeb40ffc676be3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/48c5dd7a7d1a17558491d57a9045a9dd1b674a1d b/fuzz/corpus/packet_recv_server/48c5dd7a7d1a17558491d57a9045a9dd1b674a1d
new file mode 100644
index 0000000..4bb855e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/48c5dd7a7d1a17558491d57a9045a9dd1b674a1d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/48d02832895c19c3fb38b0599973f9e783b7fe8a b/fuzz/corpus/packet_recv_server/48d02832895c19c3fb38b0599973f9e783b7fe8a
new file mode 100644
index 0000000..4b35c9d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/48d02832895c19c3fb38b0599973f9e783b7fe8a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/48eec85f0a3dd0c73714550e88577480f8f3ffd3 b/fuzz/corpus/packet_recv_server/48eec85f0a3dd0c73714550e88577480f8f3ffd3
new file mode 100644
index 0000000..a6a6b5e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/48eec85f0a3dd0c73714550e88577480f8f3ffd3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/48ff3a67d2e4c620d8f113acacdc88e8036ed8dc b/fuzz/corpus/packet_recv_server/48ff3a67d2e4c620d8f113acacdc88e8036ed8dc
deleted file mode 100644
index 109a17d..0000000
--- a/fuzz/corpus/packet_recv_server/48ff3a67d2e4c620d8f113acacdc88e8036ed8dc
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4920bbe1d2411072ea1fff48b94523c281b4508f b/fuzz/corpus/packet_recv_server/4920bbe1d2411072ea1fff48b94523c281b4508f
deleted file mode 100644
index 833fa6c..0000000
--- a/fuzz/corpus/packet_recv_server/4920bbe1d2411072ea1fff48b94523c281b4508f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/492773e8a0a2fe61ef9e481adc48f11321bbe565 b/fuzz/corpus/packet_recv_server/492773e8a0a2fe61ef9e481adc48f11321bbe565
deleted file mode 100644
index bf239dc..0000000
--- a/fuzz/corpus/packet_recv_server/492773e8a0a2fe61ef9e481adc48f11321bbe565
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/49520c54c3d1ef41c530458d68dcb52a367720d3 b/fuzz/corpus/packet_recv_server/49520c54c3d1ef41c530458d68dcb52a367720d3
new file mode 100644
index 0000000..699c575
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/49520c54c3d1ef41c530458d68dcb52a367720d3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/498623b6ba2164cc16fee77d1792dca965144e28 b/fuzz/corpus/packet_recv_server/498623b6ba2164cc16fee77d1792dca965144e28
new file mode 100644
index 0000000..806f299
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/498623b6ba2164cc16fee77d1792dca965144e28
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/49b73a86994a9292f93653392eba5cf9a28e7211 b/fuzz/corpus/packet_recv_server/49b73a86994a9292f93653392eba5cf9a28e7211
deleted file mode 100644
index da7705d..0000000
--- a/fuzz/corpus/packet_recv_server/49b73a86994a9292f93653392eba5cf9a28e7211
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4aff48be66deb3be82371de48e0b17000deca13c b/fuzz/corpus/packet_recv_server/4aff48be66deb3be82371de48e0b17000deca13c
new file mode 100644
index 0000000..f140dfa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4aff48be66deb3be82371de48e0b17000deca13c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4b37ad81fbc6c1d3c73ed668214a087636cc9437 b/fuzz/corpus/packet_recv_server/4b37ad81fbc6c1d3c73ed668214a087636cc9437
new file mode 100644
index 0000000..198c402
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4b37ad81fbc6c1d3c73ed668214a087636cc9437
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4b3a742623f6c360ee6856a0277b2a67d69b8474 b/fuzz/corpus/packet_recv_server/4b3a742623f6c360ee6856a0277b2a67d69b8474
new file mode 100644
index 0000000..df15200
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4b3a742623f6c360ee6856a0277b2a67d69b8474
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4bb333cd4ce665dbb989081816e601ae1380de47 b/fuzz/corpus/packet_recv_server/4bb333cd4ce665dbb989081816e601ae1380de47
deleted file mode 100644
index 8f67a43..0000000
--- a/fuzz/corpus/packet_recv_server/4bb333cd4ce665dbb989081816e601ae1380de47
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4bd05e3be666bec3198bae527fdc374ac968258e b/fuzz/corpus/packet_recv_server/4bd05e3be666bec3198bae527fdc374ac968258e
new file mode 100644
index 0000000..546cfa2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4bd05e3be666bec3198bae527fdc374ac968258e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4c015181cd977ee5581112161046fe50163d5949 b/fuzz/corpus/packet_recv_server/4c015181cd977ee5581112161046fe50163d5949
new file mode 100644
index 0000000..09c1679
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4c015181cd977ee5581112161046fe50163d5949
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4c046c681aab58e2e663301a4cbfbeb43d2e11b9 b/fuzz/corpus/packet_recv_server/4c046c681aab58e2e663301a4cbfbeb43d2e11b9
deleted file mode 100644
index 04625b7..0000000
--- a/fuzz/corpus/packet_recv_server/4c046c681aab58e2e663301a4cbfbeb43d2e11b9
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4c212902d4553cf528a9b31c40c254aa44aa2826 b/fuzz/corpus/packet_recv_server/4c212902d4553cf528a9b31c40c254aa44aa2826
deleted file mode 100644
index 4203530..0000000
--- a/fuzz/corpus/packet_recv_server/4c212902d4553cf528a9b31c40c254aa44aa2826
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4c2e14436cedf9628cc3d165400df044dd287c37 b/fuzz/corpus/packet_recv_server/4c2e14436cedf9628cc3d165400df044dd287c37
deleted file mode 100644
index 56c776c..0000000
--- a/fuzz/corpus/packet_recv_server/4c2e14436cedf9628cc3d165400df044dd287c37
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4c40878ab9efe31350f2d335941d667615bd73e7 b/fuzz/corpus/packet_recv_server/4c40878ab9efe31350f2d335941d667615bd73e7
new file mode 100644
index 0000000..cf91769
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4c40878ab9efe31350f2d335941d667615bd73e7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4ce847da5450ce9c4a8137709e7ba677f265bb5b b/fuzz/corpus/packet_recv_server/4ce847da5450ce9c4a8137709e7ba677f265bb5b
deleted file mode 100644
index 76ac4d9..0000000
--- a/fuzz/corpus/packet_recv_server/4ce847da5450ce9c4a8137709e7ba677f265bb5b
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4d095e7642ca2cc7c33a0501a8be594cc914d02b b/fuzz/corpus/packet_recv_server/4d095e7642ca2cc7c33a0501a8be594cc914d02b
new file mode 100644
index 0000000..25cb106
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4d095e7642ca2cc7c33a0501a8be594cc914d02b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4d6ad5cea9c02cceba576ac895ff184cdfe293e3 b/fuzz/corpus/packet_recv_server/4d6ad5cea9c02cceba576ac895ff184cdfe293e3
deleted file mode 100644
index a972eb0..0000000
--- a/fuzz/corpus/packet_recv_server/4d6ad5cea9c02cceba576ac895ff184cdfe293e3
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4d82a1daad8da71e4bd4a48a495bbb88b6ad5a75 b/fuzz/corpus/packet_recv_server/4d82a1daad8da71e4bd4a48a495bbb88b6ad5a75
new file mode 100644
index 0000000..a9643bf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4d82a1daad8da71e4bd4a48a495bbb88b6ad5a75
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4d8b93a510332ea0ecf566891cea7d2b17829335 b/fuzz/corpus/packet_recv_server/4d8b93a510332ea0ecf566891cea7d2b17829335
new file mode 100644
index 0000000..319d387
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4d8b93a510332ea0ecf566891cea7d2b17829335
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4d923874b583eafe1ac5d8e4ee3e87de73079ae5 b/fuzz/corpus/packet_recv_server/4d923874b583eafe1ac5d8e4ee3e87de73079ae5
new file mode 100644
index 0000000..0826af4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4d923874b583eafe1ac5d8e4ee3e87de73079ae5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4e2448b98518be4a772271e80220b8b428595acc b/fuzz/corpus/packet_recv_server/4e2448b98518be4a772271e80220b8b428595acc
new file mode 100644
index 0000000..b5daf93
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4e2448b98518be4a772271e80220b8b428595acc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4e2a15e052b6e0f566d766828731abf9e4b0c324 b/fuzz/corpus/packet_recv_server/4e2a15e052b6e0f566d766828731abf9e4b0c324
deleted file mode 100644
index 70756b4..0000000
--- a/fuzz/corpus/packet_recv_server/4e2a15e052b6e0f566d766828731abf9e4b0c324
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4ed335e559a630d9b0a05e4c29c092c335d3350d b/fuzz/corpus/packet_recv_server/4ed335e559a630d9b0a05e4c29c092c335d3350d
deleted file mode 100644
index c354424..0000000
--- a/fuzz/corpus/packet_recv_server/4ed335e559a630d9b0a05e4c29c092c335d3350d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4f01a81f952374fcd64c3603aaeeae96b6642726 b/fuzz/corpus/packet_recv_server/4f01a81f952374fcd64c3603aaeeae96b6642726
new file mode 100644
index 0000000..77d2c44
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4f01a81f952374fcd64c3603aaeeae96b6642726
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4f2aef6fd4e91d5af3960aff76723d1212b9c9ff b/fuzz/corpus/packet_recv_server/4f2aef6fd4e91d5af3960aff76723d1212b9c9ff
new file mode 100644
index 0000000..755d7c4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4f2aef6fd4e91d5af3960aff76723d1212b9c9ff
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4f7d64dc5bd5c9ab04dd85564015cd4e7205b819 b/fuzz/corpus/packet_recv_server/4f7d64dc5bd5c9ab04dd85564015cd4e7205b819
new file mode 100644
index 0000000..26ad584
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4f7d64dc5bd5c9ab04dd85564015cd4e7205b819
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4fbcc4be528a31adf048a1d5bb283c9209fbb0f7 b/fuzz/corpus/packet_recv_server/4fbcc4be528a31adf048a1d5bb283c9209fbb0f7
deleted file mode 100644
index 0d26713..0000000
--- a/fuzz/corpus/packet_recv_server/4fbcc4be528a31adf048a1d5bb283c9209fbb0f7
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4fc96d8886de5538f0e0b4f5f356f3e7277511cd b/fuzz/corpus/packet_recv_server/4fc96d8886de5538f0e0b4f5f356f3e7277511cd
new file mode 100644
index 0000000..6e84e3c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4fc96d8886de5538f0e0b4f5f356f3e7277511cd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/4ff65c35cd2a4c07e1ddeec09a50bdf1dd1b6563 b/fuzz/corpus/packet_recv_server/4ff65c35cd2a4c07e1ddeec09a50bdf1dd1b6563
new file mode 100644
index 0000000..8159fb9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/4ff65c35cd2a4c07e1ddeec09a50bdf1dd1b6563
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/500ff2542d79cf020c59245af847342b3fe43693 b/fuzz/corpus/packet_recv_server/500ff2542d79cf020c59245af847342b3fe43693
new file mode 100644
index 0000000..867d700
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/500ff2542d79cf020c59245af847342b3fe43693
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/50133bb897fc183685fc57d235746d419431307a b/fuzz/corpus/packet_recv_server/50133bb897fc183685fc57d235746d419431307a
new file mode 100644
index 0000000..ca0c2ec
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/50133bb897fc183685fc57d235746d419431307a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/505095d8653cfadeeb02547a1f55af45b5b3aa24 b/fuzz/corpus/packet_recv_server/505095d8653cfadeeb02547a1f55af45b5b3aa24
new file mode 100644
index 0000000..d5f226b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/505095d8653cfadeeb02547a1f55af45b5b3aa24
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5050efe2a5f981721f896a9da007f536d7669e17 b/fuzz/corpus/packet_recv_server/5050efe2a5f981721f896a9da007f536d7669e17
deleted file mode 100644
index 826c54d..0000000
--- a/fuzz/corpus/packet_recv_server/5050efe2a5f981721f896a9da007f536d7669e17
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/505103cbef08f310c29f110f4275618961030807 b/fuzz/corpus/packet_recv_server/505103cbef08f310c29f110f4275618961030807
new file mode 100644
index 0000000..f889c76
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/505103cbef08f310c29f110f4275618961030807
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/50606e55618d8edb569a80ebf3f7f886eed97d20 b/fuzz/corpus/packet_recv_server/50606e55618d8edb569a80ebf3f7f886eed97d20
new file mode 100644
index 0000000..325d2c0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/50606e55618d8edb569a80ebf3f7f886eed97d20
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/507a15ea494d0f33f36f73093dd7e800bd6a9832 b/fuzz/corpus/packet_recv_server/507a15ea494d0f33f36f73093dd7e800bd6a9832
deleted file mode 100644
index 2255346..0000000
--- a/fuzz/corpus/packet_recv_server/507a15ea494d0f33f36f73093dd7e800bd6a9832
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/50a33fb7c1f07198ebc62ad70a0ec665a48fc985 b/fuzz/corpus/packet_recv_server/50a33fb7c1f07198ebc62ad70a0ec665a48fc985
new file mode 100644
index 0000000..6b8bef8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/50a33fb7c1f07198ebc62ad70a0ec665a48fc985
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/50fc38d4ed126f387f74e531ae1c101b4ad6e568 b/fuzz/corpus/packet_recv_server/50fc38d4ed126f387f74e531ae1c101b4ad6e568
new file mode 100644
index 0000000..d8575a5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/50fc38d4ed126f387f74e531ae1c101b4ad6e568
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5180947bb7269f97c0b475f50fc21be196af7587 b/fuzz/corpus/packet_recv_server/5180947bb7269f97c0b475f50fc21be196af7587
new file mode 100644
index 0000000..dbf6922
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5180947bb7269f97c0b475f50fc21be196af7587
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/51c1805cbcaaf036f842085327e381ae385ff5ea b/fuzz/corpus/packet_recv_server/51c1805cbcaaf036f842085327e381ae385ff5ea
deleted file mode 100644
index b9538ec..0000000
--- a/fuzz/corpus/packet_recv_server/51c1805cbcaaf036f842085327e381ae385ff5ea
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/51c6657b2fa3f9257a60fc6e151a2e3c6f3ea0b2 b/fuzz/corpus/packet_recv_server/51c6657b2fa3f9257a60fc6e151a2e3c6f3ea0b2
new file mode 100644
index 0000000..de3ac30
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/51c6657b2fa3f9257a60fc6e151a2e3c6f3ea0b2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/52a9336e9e71fa6d9e8ba74b35f08692007d0462 b/fuzz/corpus/packet_recv_server/52a9336e9e71fa6d9e8ba74b35f08692007d0462
new file mode 100644
index 0000000..9c0febe
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/52a9336e9e71fa6d9e8ba74b35f08692007d0462
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/52ba512ddaf73aba4c5b477c54e38e0b0ee65b1c b/fuzz/corpus/packet_recv_server/52ba512ddaf73aba4c5b477c54e38e0b0ee65b1c
deleted file mode 100644
index f87a3ce..0000000
--- a/fuzz/corpus/packet_recv_server/52ba512ddaf73aba4c5b477c54e38e0b0ee65b1c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/52d088d1a1251273e0460da53fc4f2571db897ad b/fuzz/corpus/packet_recv_server/52d088d1a1251273e0460da53fc4f2571db897ad
new file mode 100644
index 0000000..d7ae2dc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/52d088d1a1251273e0460da53fc4f2571db897ad
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/52f7c32198b43950e5b34dad5bccd55bd47aee3b b/fuzz/corpus/packet_recv_server/52f7c32198b43950e5b34dad5bccd55bd47aee3b
new file mode 100644
index 0000000..4bf63c0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/52f7c32198b43950e5b34dad5bccd55bd47aee3b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/53168c1452823771b600d319ee12f045e0d7614f b/fuzz/corpus/packet_recv_server/53168c1452823771b600d319ee12f045e0d7614f
deleted file mode 100644
index a8cb3e1..0000000
--- a/fuzz/corpus/packet_recv_server/53168c1452823771b600d319ee12f045e0d7614f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/535598f20a60b71608b6410be7c582f27c73b803 b/fuzz/corpus/packet_recv_server/535598f20a60b71608b6410be7c582f27c73b803
new file mode 100644
index 0000000..c261499
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/535598f20a60b71608b6410be7c582f27c73b803
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5367b7bf6355ada0d42a5e8ae99003d4b2915b00 b/fuzz/corpus/packet_recv_server/5367b7bf6355ada0d42a5e8ae99003d4b2915b00
new file mode 100644
index 0000000..456459d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5367b7bf6355ada0d42a5e8ae99003d4b2915b00
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/54411626ef6b8f6bbfac880b4c6597877606491d b/fuzz/corpus/packet_recv_server/54411626ef6b8f6bbfac880b4c6597877606491d
new file mode 100644
index 0000000..889313d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/54411626ef6b8f6bbfac880b4c6597877606491d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/544cae39b520687e38c10642d49b8a86ef18af97 b/fuzz/corpus/packet_recv_server/544cae39b520687e38c10642d49b8a86ef18af97
new file mode 100644
index 0000000..b62c819
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/544cae39b520687e38c10642d49b8a86ef18af97
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/54b0bb6274aa653324ba8fcdfab5514a1a9eb748 b/fuzz/corpus/packet_recv_server/54b0bb6274aa653324ba8fcdfab5514a1a9eb748
new file mode 100644
index 0000000..230b555
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/54b0bb6274aa653324ba8fcdfab5514a1a9eb748
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/54db4926a7ff6aa06edfae74e206c4ad9594cd28 b/fuzz/corpus/packet_recv_server/54db4926a7ff6aa06edfae74e206c4ad9594cd28
new file mode 100644
index 0000000..6e71e25
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/54db4926a7ff6aa06edfae74e206c4ad9594cd28
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/54f4563e3c30d531bdf3dd9e566d81adc868b492 b/fuzz/corpus/packet_recv_server/54f4563e3c30d531bdf3dd9e566d81adc868b492
new file mode 100644
index 0000000..8f222ef
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/54f4563e3c30d531bdf3dd9e566d81adc868b492
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/553c23872bd287583ee7d0ad63e2fde894b465e0 b/fuzz/corpus/packet_recv_server/553c23872bd287583ee7d0ad63e2fde894b465e0
new file mode 100644
index 0000000..3fe81f0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/553c23872bd287583ee7d0ad63e2fde894b465e0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/553ca34d2b97602d9201e829377916bc0430f76f b/fuzz/corpus/packet_recv_server/553ca34d2b97602d9201e829377916bc0430f76f
deleted file mode 100644
index b80fb60..0000000
--- a/fuzz/corpus/packet_recv_server/553ca34d2b97602d9201e829377916bc0430f76f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/556f917afb99b7ad017813312182c432142ae217 b/fuzz/corpus/packet_recv_server/556f917afb99b7ad017813312182c432142ae217
deleted file mode 100644
index 5151a6b..0000000
--- a/fuzz/corpus/packet_recv_server/556f917afb99b7ad017813312182c432142ae217
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/558b658e5f1583241da2f6a810d729c688770d80 b/fuzz/corpus/packet_recv_server/558b658e5f1583241da2f6a810d729c688770d80
deleted file mode 100644
index 3a7fa98..0000000
--- a/fuzz/corpus/packet_recv_server/558b658e5f1583241da2f6a810d729c688770d80
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/559a9daadfc1a867f7fa6d047aeea98880877162 b/fuzz/corpus/packet_recv_server/559a9daadfc1a867f7fa6d047aeea98880877162
new file mode 100644
index 0000000..b81733d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/559a9daadfc1a867f7fa6d047aeea98880877162
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/55c7679d29243a9c4b5f1414614956374ffdee7d b/fuzz/corpus/packet_recv_server/55c7679d29243a9c4b5f1414614956374ffdee7d
new file mode 100644
index 0000000..0ae5520
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/55c7679d29243a9c4b5f1414614956374ffdee7d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5620b1bf8b711c564227176d4ca3e6c35843de33 b/fuzz/corpus/packet_recv_server/5620b1bf8b711c564227176d4ca3e6c35843de33
new file mode 100644
index 0000000..8cddb35
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5620b1bf8b711c564227176d4ca3e6c35843de33
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/56572a087cf0a0e8f637b7af9fa864319c9e663d b/fuzz/corpus/packet_recv_server/56572a087cf0a0e8f637b7af9fa864319c9e663d
new file mode 100644
index 0000000..b7e4e77
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/56572a087cf0a0e8f637b7af9fa864319c9e663d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/56a819f5e6a8310c6fa91dde4dcab7e84e77c4be b/fuzz/corpus/packet_recv_server/56a819f5e6a8310c6fa91dde4dcab7e84e77c4be
new file mode 100644
index 0000000..dec7c59
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/56a819f5e6a8310c6fa91dde4dcab7e84e77c4be
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/56e74c950af3ab0bfe2057fd1d8b6a1a2f505f14 b/fuzz/corpus/packet_recv_server/56e74c950af3ab0bfe2057fd1d8b6a1a2f505f14
deleted file mode 100644
index 0e59391..0000000
--- a/fuzz/corpus/packet_recv_server/56e74c950af3ab0bfe2057fd1d8b6a1a2f505f14
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5726661413d11f5d46484cfd34a4050dd7640908 b/fuzz/corpus/packet_recv_server/5726661413d11f5d46484cfd34a4050dd7640908
new file mode 100644
index 0000000..9c8588c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5726661413d11f5d46484cfd34a4050dd7640908
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5734e21abda07028db885f238a57ce82a1ecad78 b/fuzz/corpus/packet_recv_server/5734e21abda07028db885f238a57ce82a1ecad78
new file mode 100644
index 0000000..5a28543
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5734e21abda07028db885f238a57ce82a1ecad78
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/573b3be0c233a4f77006fd2b47c08cc1c0c9ceea b/fuzz/corpus/packet_recv_server/573b3be0c233a4f77006fd2b47c08cc1c0c9ceea
new file mode 100644
index 0000000..cbfabfa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/573b3be0c233a4f77006fd2b47c08cc1c0c9ceea
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/57495b188f3d6dd05bfdb1cb241aaa15ff8aabec b/fuzz/corpus/packet_recv_server/57495b188f3d6dd05bfdb1cb241aaa15ff8aabec
new file mode 100644
index 0000000..8285148
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/57495b188f3d6dd05bfdb1cb241aaa15ff8aabec
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5780872aeef5ff7302561a1cd4b2cbdc436bc265 b/fuzz/corpus/packet_recv_server/5780872aeef5ff7302561a1cd4b2cbdc436bc265
new file mode 100644
index 0000000..0127687
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5780872aeef5ff7302561a1cd4b2cbdc436bc265
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5800bebce1dd0e7074149e9afcdf20e9d25d9bc3 b/fuzz/corpus/packet_recv_server/5800bebce1dd0e7074149e9afcdf20e9d25d9bc3
deleted file mode 100644
index 0ef2183..0000000
--- a/fuzz/corpus/packet_recv_server/5800bebce1dd0e7074149e9afcdf20e9d25d9bc3
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5807122e5838cc544a4e37aaa726bad778f18906 b/fuzz/corpus/packet_recv_server/5807122e5838cc544a4e37aaa726bad778f18906
deleted file mode 100644
index e9f1087..0000000
--- a/fuzz/corpus/packet_recv_server/5807122e5838cc544a4e37aaa726bad778f18906
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5892795022783a7e459092a47db89df38c473de8 b/fuzz/corpus/packet_recv_server/5892795022783a7e459092a47db89df38c473de8
new file mode 100644
index 0000000..8a83624
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5892795022783a7e459092a47db89df38c473de8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/58a569fabcfaf6f8716ed12936c2c43130271280 b/fuzz/corpus/packet_recv_server/58a569fabcfaf6f8716ed12936c2c43130271280
new file mode 100644
index 0000000..42173ae
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/58a569fabcfaf6f8716ed12936c2c43130271280
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/58f3caf20ef213658e42dd029abf29c4a9c48b1b b/fuzz/corpus/packet_recv_server/58f3caf20ef213658e42dd029abf29c4a9c48b1b
new file mode 100644
index 0000000..1d2f7b0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/58f3caf20ef213658e42dd029abf29c4a9c48b1b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5940ebe3dfb0beee799fe88df3ea57c7625c5d27 b/fuzz/corpus/packet_recv_server/5940ebe3dfb0beee799fe88df3ea57c7625c5d27
new file mode 100644
index 0000000..33972c5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5940ebe3dfb0beee799fe88df3ea57c7625c5d27
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5979ae8430e50fea0dd9ee171ca4eea4e9d2930f b/fuzz/corpus/packet_recv_server/5979ae8430e50fea0dd9ee171ca4eea4e9d2930f
new file mode 100644
index 0000000..fb8905d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5979ae8430e50fea0dd9ee171ca4eea4e9d2930f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/599540bcd8ec202c68763cb0bb12a8b18b462d5a b/fuzz/corpus/packet_recv_server/599540bcd8ec202c68763cb0bb12a8b18b462d5a
new file mode 100644
index 0000000..b9996f8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/599540bcd8ec202c68763cb0bb12a8b18b462d5a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/59eb6f5472456e239b530469fbde37d98123e826 b/fuzz/corpus/packet_recv_server/59eb6f5472456e239b530469fbde37d98123e826
new file mode 100644
index 0000000..39f5581
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/59eb6f5472456e239b530469fbde37d98123e826
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5a433a0e284131a12e8b3350df9dfa8264bac9a1 b/fuzz/corpus/packet_recv_server/5a433a0e284131a12e8b3350df9dfa8264bac9a1
new file mode 100644
index 0000000..c588b31
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5a433a0e284131a12e8b3350df9dfa8264bac9a1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5a4d0d43d6ddaab7e54d194e4f0752a71abc589b b/fuzz/corpus/packet_recv_server/5a4d0d43d6ddaab7e54d194e4f0752a71abc589b
deleted file mode 100644
index e5d06d2..0000000
--- a/fuzz/corpus/packet_recv_server/5a4d0d43d6ddaab7e54d194e4f0752a71abc589b
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5a80cd8c2959106d9d6311f9ea116f0f16351630 b/fuzz/corpus/packet_recv_server/5a80cd8c2959106d9d6311f9ea116f0f16351630
new file mode 100644
index 0000000..22aba87
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5a80cd8c2959106d9d6311f9ea116f0f16351630
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5accf74d98ec0923e92a9ea49b87d08445f0c7c9 b/fuzz/corpus/packet_recv_server/5accf74d98ec0923e92a9ea49b87d08445f0c7c9
new file mode 100644
index 0000000..4911cdf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5accf74d98ec0923e92a9ea49b87d08445f0c7c9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5b9ab9492339ae1aa0c24f99516df7b7addcc408 b/fuzz/corpus/packet_recv_server/5b9ab9492339ae1aa0c24f99516df7b7addcc408
new file mode 100644
index 0000000..8628664
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5b9ab9492339ae1aa0c24f99516df7b7addcc408
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5ba5b1fb5ad38fd5469ba12d43bdb056291da7cf b/fuzz/corpus/packet_recv_server/5ba5b1fb5ad38fd5469ba12d43bdb056291da7cf
new file mode 100644
index 0000000..0ee8c47
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5ba5b1fb5ad38fd5469ba12d43bdb056291da7cf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5c312005b71abcfa2eba111bb0de76f04a125a12 b/fuzz/corpus/packet_recv_server/5c312005b71abcfa2eba111bb0de76f04a125a12
new file mode 100644
index 0000000..7c873dd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5c312005b71abcfa2eba111bb0de76f04a125a12
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5ca9d2eee4bd51d5375e16ec1910df228feaf7f1 b/fuzz/corpus/packet_recv_server/5ca9d2eee4bd51d5375e16ec1910df228feaf7f1
deleted file mode 100644
index 5537fdb..0000000
--- a/fuzz/corpus/packet_recv_server/5ca9d2eee4bd51d5375e16ec1910df228feaf7f1
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5d05a8a6c392a79f3eea6033fd1d1109c9ffd5b4 b/fuzz/corpus/packet_recv_server/5d05a8a6c392a79f3eea6033fd1d1109c9ffd5b4
new file mode 100644
index 0000000..56a001c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5d05a8a6c392a79f3eea6033fd1d1109c9ffd5b4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5da06381cdde89cf81211077bbdfb31744722bc8 b/fuzz/corpus/packet_recv_server/5da06381cdde89cf81211077bbdfb31744722bc8
deleted file mode 100644
index 38d5e8d..0000000
--- a/fuzz/corpus/packet_recv_server/5da06381cdde89cf81211077bbdfb31744722bc8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5dbb15ed404fe9badfdd6d96cb5c605e42b2b490 b/fuzz/corpus/packet_recv_server/5dbb15ed404fe9badfdd6d96cb5c605e42b2b490
new file mode 100644
index 0000000..c46ed85
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5dbb15ed404fe9badfdd6d96cb5c605e42b2b490
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5dcb1218a497b273be557f3d85f2c220c8817e27 b/fuzz/corpus/packet_recv_server/5dcb1218a497b273be557f3d85f2c220c8817e27
deleted file mode 100644
index d4600be..0000000
--- a/fuzz/corpus/packet_recv_server/5dcb1218a497b273be557f3d85f2c220c8817e27
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5ddbd81a7626cc17eb761fc449be8ddfed5cc055 b/fuzz/corpus/packet_recv_server/5ddbd81a7626cc17eb761fc449be8ddfed5cc055
new file mode 100644
index 0000000..532b57a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5ddbd81a7626cc17eb761fc449be8ddfed5cc055
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5dee03fc2d6beffa77666f4f99eda020de3c9cb6 b/fuzz/corpus/packet_recv_server/5dee03fc2d6beffa77666f4f99eda020de3c9cb6
new file mode 100644
index 0000000..49df2c6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5dee03fc2d6beffa77666f4f99eda020de3c9cb6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5e1da251e72e1d34a8c67880b95582886aaec63c b/fuzz/corpus/packet_recv_server/5e1da251e72e1d34a8c67880b95582886aaec63c
new file mode 100644
index 0000000..2ef2e00
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5e1da251e72e1d34a8c67880b95582886aaec63c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5e55e09ed4e8a26c7ab17355e264a4a4b5ad48ab b/fuzz/corpus/packet_recv_server/5e55e09ed4e8a26c7ab17355e264a4a4b5ad48ab
new file mode 100644
index 0000000..090ea82
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5e55e09ed4e8a26c7ab17355e264a4a4b5ad48ab
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5eb3c8c21fb8623392cf0ac151dc01f1acbc481b b/fuzz/corpus/packet_recv_server/5eb3c8c21fb8623392cf0ac151dc01f1acbc481b
new file mode 100644
index 0000000..6f21899
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5eb3c8c21fb8623392cf0ac151dc01f1acbc481b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5ee6f3e6f6354e7c4eeb34769006f6cd81f3ffc1 b/fuzz/corpus/packet_recv_server/5ee6f3e6f6354e7c4eeb34769006f6cd81f3ffc1
new file mode 100644
index 0000000..c5395c7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5ee6f3e6f6354e7c4eeb34769006f6cd81f3ffc1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5f6e71a4be6a4937fc2d29e93ab2d901fe4dbe8d b/fuzz/corpus/packet_recv_server/5f6e71a4be6a4937fc2d29e93ab2d901fe4dbe8d
deleted file mode 100644
index 19d52de..0000000
--- a/fuzz/corpus/packet_recv_server/5f6e71a4be6a4937fc2d29e93ab2d901fe4dbe8d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5f773fde7e93c4c9d137a6fdcfa4e20676ccef1e b/fuzz/corpus/packet_recv_server/5f773fde7e93c4c9d137a6fdcfa4e20676ccef1e
deleted file mode 100644
index 7fc0a6c..0000000
--- a/fuzz/corpus/packet_recv_server/5f773fde7e93c4c9d137a6fdcfa4e20676ccef1e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5f883f508e373ea1ccccf03a4507c16ce894c2f2 b/fuzz/corpus/packet_recv_server/5f883f508e373ea1ccccf03a4507c16ce894c2f2
deleted file mode 100644
index 12f3c32..0000000
--- a/fuzz/corpus/packet_recv_server/5f883f508e373ea1ccccf03a4507c16ce894c2f2
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5fcb90043594f16b64d46c3b4a05a2d69ff2a693 b/fuzz/corpus/packet_recv_server/5fcb90043594f16b64d46c3b4a05a2d69ff2a693
deleted file mode 100644
index 5566bc3..0000000
--- a/fuzz/corpus/packet_recv_server/5fcb90043594f16b64d46c3b4a05a2d69ff2a693
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/5fd4125a17850d9b23313e764cf0f14da843bc62 b/fuzz/corpus/packet_recv_server/5fd4125a17850d9b23313e764cf0f14da843bc62
new file mode 100644
index 0000000..90fe401
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/5fd4125a17850d9b23313e764cf0f14da843bc62
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/60470de953bb642b6be125227d96ff3c4e9507a5 b/fuzz/corpus/packet_recv_server/60470de953bb642b6be125227d96ff3c4e9507a5
new file mode 100644
index 0000000..50ce4f4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/60470de953bb642b6be125227d96ff3c4e9507a5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/609005a5155eb1a87bd8b7e5426b0182ba8fe807 b/fuzz/corpus/packet_recv_server/609005a5155eb1a87bd8b7e5426b0182ba8fe807
deleted file mode 100644
index 4874ee1..0000000
--- a/fuzz/corpus/packet_recv_server/609005a5155eb1a87bd8b7e5426b0182ba8fe807
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/60aa03d9f09656e9cd85822e8b09ae0452406321 b/fuzz/corpus/packet_recv_server/60aa03d9f09656e9cd85822e8b09ae0452406321
deleted file mode 100644
index 7fba6cd..0000000
--- a/fuzz/corpus/packet_recv_server/60aa03d9f09656e9cd85822e8b09ae0452406321
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/60bc5ed665b84f62f9ae094f1435e29ebb2a29ac b/fuzz/corpus/packet_recv_server/60bc5ed665b84f62f9ae094f1435e29ebb2a29ac
deleted file mode 100644
index 70c7ae6..0000000
--- a/fuzz/corpus/packet_recv_server/60bc5ed665b84f62f9ae094f1435e29ebb2a29ac
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/612fb61409f75f74565a6fb089ef82f489c76a91 b/fuzz/corpus/packet_recv_server/612fb61409f75f74565a6fb089ef82f489c76a91
new file mode 100644
index 0000000..1ed1ac5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/612fb61409f75f74565a6fb089ef82f489c76a91
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/613ebe4a73dc148b38a75f799f9fbc50634de962 b/fuzz/corpus/packet_recv_server/613ebe4a73dc148b38a75f799f9fbc50634de962
new file mode 100644
index 0000000..30972ae
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/613ebe4a73dc148b38a75f799f9fbc50634de962
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/613f8c2c46e0321d9a1e810b74396448c7edaaea b/fuzz/corpus/packet_recv_server/613f8c2c46e0321d9a1e810b74396448c7edaaea
new file mode 100644
index 0000000..97bb5bc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/613f8c2c46e0321d9a1e810b74396448c7edaaea
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/616156ae5cce9ccee53b4dc05097f7e64be77b13 b/fuzz/corpus/packet_recv_server/616156ae5cce9ccee53b4dc05097f7e64be77b13
new file mode 100644
index 0000000..6451eeb
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/616156ae5cce9ccee53b4dc05097f7e64be77b13
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/617b0f75d4a2012b1a0b197e0e8e3dfb1bdbf361 b/fuzz/corpus/packet_recv_server/617b0f75d4a2012b1a0b197e0e8e3dfb1bdbf361
new file mode 100644
index 0000000..6fa9106
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/617b0f75d4a2012b1a0b197e0e8e3dfb1bdbf361
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/61f5a6ac2d7f561818e3a3ae4686335f481f8b30 b/fuzz/corpus/packet_recv_server/61f5a6ac2d7f561818e3a3ae4686335f481f8b30
new file mode 100644
index 0000000..8d83c57
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/61f5a6ac2d7f561818e3a3ae4686335f481f8b30
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/621031a58e63f390f59aed217ac9a987aeab8284 b/fuzz/corpus/packet_recv_server/621031a58e63f390f59aed217ac9a987aeab8284
deleted file mode 100644
index f5084c8..0000000
--- a/fuzz/corpus/packet_recv_server/621031a58e63f390f59aed217ac9a987aeab8284
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/62696d8dfd09ed3db87191e0e60d216c23a1e06a b/fuzz/corpus/packet_recv_server/62696d8dfd09ed3db87191e0e60d216c23a1e06a
new file mode 100644
index 0000000..74c6111
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/62696d8dfd09ed3db87191e0e60d216c23a1e06a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/633295d2c7262380fcd33fd0639ce0e426bfc3e4 b/fuzz/corpus/packet_recv_server/633295d2c7262380fcd33fd0639ce0e426bfc3e4
new file mode 100644
index 0000000..970b58e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/633295d2c7262380fcd33fd0639ce0e426bfc3e4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/634d034522008e82dfe16904f4cff1bdbbd75aaf b/fuzz/corpus/packet_recv_server/634d034522008e82dfe16904f4cff1bdbbd75aaf
new file mode 100644
index 0000000..3d45aad
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/634d034522008e82dfe16904f4cff1bdbbd75aaf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/635b9fc5a9002db5c2ebc696a85fdad87034a114 b/fuzz/corpus/packet_recv_server/635b9fc5a9002db5c2ebc696a85fdad87034a114
deleted file mode 100644
index 0ec0789..0000000
--- a/fuzz/corpus/packet_recv_server/635b9fc5a9002db5c2ebc696a85fdad87034a114
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/63eb202f8b5b609ed8049dfe576e71c5c7c141be b/fuzz/corpus/packet_recv_server/63eb202f8b5b609ed8049dfe576e71c5c7c141be
deleted file mode 100644
index 0f84aa1..0000000
--- a/fuzz/corpus/packet_recv_server/63eb202f8b5b609ed8049dfe576e71c5c7c141be
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6406b081d9621b8f7ba30519d4950e914e536e9f b/fuzz/corpus/packet_recv_server/6406b081d9621b8f7ba30519d4950e914e536e9f
new file mode 100644
index 0000000..9a50cd6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6406b081d9621b8f7ba30519d4950e914e536e9f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6457c73af5921c71612373510e62a383006b99e5 b/fuzz/corpus/packet_recv_server/6457c73af5921c71612373510e62a383006b99e5
deleted file mode 100644
index 810e1f1..0000000
--- a/fuzz/corpus/packet_recv_server/6457c73af5921c71612373510e62a383006b99e5
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/645c4faeeb0ffbc9de3be51c8e28eeaba3fc7fdb b/fuzz/corpus/packet_recv_server/645c4faeeb0ffbc9de3be51c8e28eeaba3fc7fdb
new file mode 100644
index 0000000..ab230da
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/645c4faeeb0ffbc9de3be51c8e28eeaba3fc7fdb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/647f16d9d0117472a8523f9b7d91e72724bf5167 b/fuzz/corpus/packet_recv_server/647f16d9d0117472a8523f9b7d91e72724bf5167
new file mode 100644
index 0000000..3327721
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/647f16d9d0117472a8523f9b7d91e72724bf5167
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/64fb35844be9ac05ca56582b044000fcaa7fe62f b/fuzz/corpus/packet_recv_server/64fb35844be9ac05ca56582b044000fcaa7fe62f
new file mode 100644
index 0000000..e710ae8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/64fb35844be9ac05ca56582b044000fcaa7fe62f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6569f13bf05023568eab6c3cab566de46c3c381f b/fuzz/corpus/packet_recv_server/6569f13bf05023568eab6c3cab566de46c3c381f
new file mode 100644
index 0000000..4fff3db
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6569f13bf05023568eab6c3cab566de46c3c381f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/65a4003601de2648fd5ddfc31272d5afc9ebbef3 b/fuzz/corpus/packet_recv_server/65a4003601de2648fd5ddfc31272d5afc9ebbef3
new file mode 100644
index 0000000..db05631
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/65a4003601de2648fd5ddfc31272d5afc9ebbef3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/65bce8e04c6faa30ce43108f38d7e76a3d179fef b/fuzz/corpus/packet_recv_server/65bce8e04c6faa30ce43108f38d7e76a3d179fef
new file mode 100644
index 0000000..b73cbdd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/65bce8e04c6faa30ce43108f38d7e76a3d179fef
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/65c49a525750dab1d6f4709966b725b8aeac31d7 b/fuzz/corpus/packet_recv_server/65c49a525750dab1d6f4709966b725b8aeac31d7
new file mode 100644
index 0000000..c9c59ba
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/65c49a525750dab1d6f4709966b725b8aeac31d7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6603b077a5a9c2713692d153f65ff1b0b29c1f86 b/fuzz/corpus/packet_recv_server/6603b077a5a9c2713692d153f65ff1b0b29c1f86
deleted file mode 100644
index ae6ffac..0000000
--- a/fuzz/corpus/packet_recv_server/6603b077a5a9c2713692d153f65ff1b0b29c1f86
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6625911e5982a4eee67135865fd1e2c16af352df b/fuzz/corpus/packet_recv_server/6625911e5982a4eee67135865fd1e2c16af352df
new file mode 100644
index 0000000..310dd11
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6625911e5982a4eee67135865fd1e2c16af352df
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/666a5269ecc93b24ea9e869085081ee1c912ac02 b/fuzz/corpus/packet_recv_server/666a5269ecc93b24ea9e869085081ee1c912ac02
new file mode 100644
index 0000000..45e013c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/666a5269ecc93b24ea9e869085081ee1c912ac02
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/668095d41834b5fd85f85571c547f52f5b57aca2 b/fuzz/corpus/packet_recv_server/668095d41834b5fd85f85571c547f52f5b57aca2
new file mode 100644
index 0000000..7b49bbd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/668095d41834b5fd85f85571c547f52f5b57aca2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/66e1d0a7b5160c39001ed8822103d244ee5e47fd b/fuzz/corpus/packet_recv_server/66e1d0a7b5160c39001ed8822103d244ee5e47fd
deleted file mode 100644
index 6aa55bb..0000000
--- a/fuzz/corpus/packet_recv_server/66e1d0a7b5160c39001ed8822103d244ee5e47fd
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/66e29b6e14de6d9f774eaa541b25582dd5151c56 b/fuzz/corpus/packet_recv_server/66e29b6e14de6d9f774eaa541b25582dd5151c56
new file mode 100644
index 0000000..a223a95
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/66e29b6e14de6d9f774eaa541b25582dd5151c56
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/66ea397d002282beefbb89ba3b4c64b0aeaa32af b/fuzz/corpus/packet_recv_server/66ea397d002282beefbb89ba3b4c64b0aeaa32af
new file mode 100644
index 0000000..faeb3d8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/66ea397d002282beefbb89ba3b4c64b0aeaa32af
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/675c098893e9352f4a11c6625dbbc6b1c3b334e4 b/fuzz/corpus/packet_recv_server/675c098893e9352f4a11c6625dbbc6b1c3b334e4
new file mode 100644
index 0000000..347344e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/675c098893e9352f4a11c6625dbbc6b1c3b334e4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/67c143c198302cd4047176939a7c07bed044d37b b/fuzz/corpus/packet_recv_server/67c143c198302cd4047176939a7c07bed044d37b
new file mode 100644
index 0000000..c54f242
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/67c143c198302cd4047176939a7c07bed044d37b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/67dacf5946822a33b65fac57712c196c28f50cf8 b/fuzz/corpus/packet_recv_server/67dacf5946822a33b65fac57712c196c28f50cf8
new file mode 100644
index 0000000..4b3794d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/67dacf5946822a33b65fac57712c196c28f50cf8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/67ea2ec5216b0064aa3586c6b1e6570add812cc3 b/fuzz/corpus/packet_recv_server/67ea2ec5216b0064aa3586c6b1e6570add812cc3
new file mode 100644
index 0000000..1d44675
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/67ea2ec5216b0064aa3586c6b1e6570add812cc3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/682701c87fcc60aa2ae406e780c7aad74bfd7ad6 b/fuzz/corpus/packet_recv_server/682701c87fcc60aa2ae406e780c7aad74bfd7ad6
new file mode 100644
index 0000000..9d13afa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/682701c87fcc60aa2ae406e780c7aad74bfd7ad6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6836daf0066d848b0be5d29d1b94e8e66389a350 b/fuzz/corpus/packet_recv_server/6836daf0066d848b0be5d29d1b94e8e66389a350
deleted file mode 100644
index 1bb061e..0000000
--- a/fuzz/corpus/packet_recv_server/6836daf0066d848b0be5d29d1b94e8e66389a350
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/685404206b2af63e77d3d202f87a02a9aeb3f20c b/fuzz/corpus/packet_recv_server/685404206b2af63e77d3d202f87a02a9aeb3f20c
new file mode 100644
index 0000000..bc622b3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/685404206b2af63e77d3d202f87a02a9aeb3f20c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/69722c6e5b467fbbc0a03d5245523d413a2904b6 b/fuzz/corpus/packet_recv_server/69722c6e5b467fbbc0a03d5245523d413a2904b6
new file mode 100644
index 0000000..7153a34
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/69722c6e5b467fbbc0a03d5245523d413a2904b6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6972b96a204b5acb32e802841321ab3d4840771b b/fuzz/corpus/packet_recv_server/6972b96a204b5acb32e802841321ab3d4840771b
new file mode 100644
index 0000000..51718f2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6972b96a204b5acb32e802841321ab3d4840771b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6985fe8b88bba4d35dc9f590433aec77889cb9a8 b/fuzz/corpus/packet_recv_server/6985fe8b88bba4d35dc9f590433aec77889cb9a8
deleted file mode 100644
index 6561d95..0000000
--- a/fuzz/corpus/packet_recv_server/6985fe8b88bba4d35dc9f590433aec77889cb9a8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6992fd6a01d00f7cc4657e018bfe57955978c0a8 b/fuzz/corpus/packet_recv_server/6992fd6a01d00f7cc4657e018bfe57955978c0a8
deleted file mode 100644
index 7513199..0000000
--- a/fuzz/corpus/packet_recv_server/6992fd6a01d00f7cc4657e018bfe57955978c0a8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6a24f141ec2d9ba219c81e8899cea59e9d2d2d9a b/fuzz/corpus/packet_recv_server/6a24f141ec2d9ba219c81e8899cea59e9d2d2d9a
new file mode 100644
index 0000000..1e81f5b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6a24f141ec2d9ba219c81e8899cea59e9d2d2d9a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6a2845fbabfc19e1face037397938c60a899bc07 b/fuzz/corpus/packet_recv_server/6a2845fbabfc19e1face037397938c60a899bc07
deleted file mode 100644
index 16e69f6..0000000
--- a/fuzz/corpus/packet_recv_server/6a2845fbabfc19e1face037397938c60a899bc07
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6a46431750bd466d0f7e18829534012589f28817 b/fuzz/corpus/packet_recv_server/6a46431750bd466d0f7e18829534012589f28817
new file mode 100644
index 0000000..e3b7361
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6a46431750bd466d0f7e18829534012589f28817
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6a914278c53e1a7c33bc85b7928b7b379f931841 b/fuzz/corpus/packet_recv_server/6a914278c53e1a7c33bc85b7928b7b379f931841
new file mode 100644
index 0000000..aac2311
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6a914278c53e1a7c33bc85b7928b7b379f931841
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6b066782d55aba2546957a3b8fa24a5acef25afe b/fuzz/corpus/packet_recv_server/6b066782d55aba2546957a3b8fa24a5acef25afe
new file mode 100644
index 0000000..99f65db
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6b066782d55aba2546957a3b8fa24a5acef25afe
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6b1380329265e84eff8ea9c6a95443f055dc6438 b/fuzz/corpus/packet_recv_server/6b1380329265e84eff8ea9c6a95443f055dc6438
deleted file mode 100644
index 55337df..0000000
--- a/fuzz/corpus/packet_recv_server/6b1380329265e84eff8ea9c6a95443f055dc6438
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6ba1a7c9c93bfe64823f58759011587164f1e5eb b/fuzz/corpus/packet_recv_server/6ba1a7c9c93bfe64823f58759011587164f1e5eb
new file mode 100644
index 0000000..65fe675
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6ba1a7c9c93bfe64823f58759011587164f1e5eb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6ba3a807dc67fafe65aadb3b541355e2b5b6c9bb b/fuzz/corpus/packet_recv_server/6ba3a807dc67fafe65aadb3b541355e2b5b6c9bb
new file mode 100644
index 0000000..dfc44e1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6ba3a807dc67fafe65aadb3b541355e2b5b6c9bb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6bcdd5b84d6e023a956f9ae41b9247a716610d56 b/fuzz/corpus/packet_recv_server/6bcdd5b84d6e023a956f9ae41b9247a716610d56
new file mode 100644
index 0000000..7df93c5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6bcdd5b84d6e023a956f9ae41b9247a716610d56
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6c45fce14e51092a3f0b9f051a4ec746a80ed9ed b/fuzz/corpus/packet_recv_server/6c45fce14e51092a3f0b9f051a4ec746a80ed9ed
new file mode 100644
index 0000000..7ad5014
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6c45fce14e51092a3f0b9f051a4ec746a80ed9ed
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6c72df5af98d2a17d8d2bde5c190b8fcda2d592e b/fuzz/corpus/packet_recv_server/6c72df5af98d2a17d8d2bde5c190b8fcda2d592e
deleted file mode 100644
index 7faed30..0000000
--- a/fuzz/corpus/packet_recv_server/6c72df5af98d2a17d8d2bde5c190b8fcda2d592e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6c7e9db69ed0bae3901f726dba774360ef5db906 b/fuzz/corpus/packet_recv_server/6c7e9db69ed0bae3901f726dba774360ef5db906
deleted file mode 100644
index a92b89e..0000000
--- a/fuzz/corpus/packet_recv_server/6c7e9db69ed0bae3901f726dba774360ef5db906
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6ccc26607993639851b768e6967d6c6798ca9e6a b/fuzz/corpus/packet_recv_server/6ccc26607993639851b768e6967d6c6798ca9e6a
new file mode 100644
index 0000000..438c29c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6ccc26607993639851b768e6967d6c6798ca9e6a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6d00c8fc9514d9497a609530397a177c91ae79b0 b/fuzz/corpus/packet_recv_server/6d00c8fc9514d9497a609530397a177c91ae79b0
new file mode 100644
index 0000000..872b5d9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6d00c8fc9514d9497a609530397a177c91ae79b0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6d2bdfab2b01dfc5d72d5c4bf8ca24fceaca7f87 b/fuzz/corpus/packet_recv_server/6d2bdfab2b01dfc5d72d5c4bf8ca24fceaca7f87
deleted file mode 100644
index 3553408..0000000
--- a/fuzz/corpus/packet_recv_server/6d2bdfab2b01dfc5d72d5c4bf8ca24fceaca7f87
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6d75f00de5b7308556ec689a83d3252071b6ebf0 b/fuzz/corpus/packet_recv_server/6d75f00de5b7308556ec689a83d3252071b6ebf0
new file mode 100644
index 0000000..bb4e13c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6d75f00de5b7308556ec689a83d3252071b6ebf0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6d8dfe22b26553322c9abaf47aaf0e2f4cf12098 b/fuzz/corpus/packet_recv_server/6d8dfe22b26553322c9abaf47aaf0e2f4cf12098
new file mode 100644
index 0000000..2bcd70e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6d8dfe22b26553322c9abaf47aaf0e2f4cf12098
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6dac4da957639d3026b1db5d088ca95bf7fbc84e b/fuzz/corpus/packet_recv_server/6dac4da957639d3026b1db5d088ca95bf7fbc84e
new file mode 100644
index 0000000..fee5461
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6dac4da957639d3026b1db5d088ca95bf7fbc84e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6dc3a37070c7037b510aa5b441b5db96d8e6467e b/fuzz/corpus/packet_recv_server/6dc3a37070c7037b510aa5b441b5db96d8e6467e
new file mode 100644
index 0000000..ad1b7b5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6dc3a37070c7037b510aa5b441b5db96d8e6467e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6e96938e65665999900f76cf7bb8fc2fa7f4e52e b/fuzz/corpus/packet_recv_server/6e96938e65665999900f76cf7bb8fc2fa7f4e52e
new file mode 100644
index 0000000..6dab155
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6e96938e65665999900f76cf7bb8fc2fa7f4e52e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6eb770f75b20366346fe5e3a9a3579d22622ec75 b/fuzz/corpus/packet_recv_server/6eb770f75b20366346fe5e3a9a3579d22622ec75
new file mode 100644
index 0000000..2edbb5f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6eb770f75b20366346fe5e3a9a3579d22622ec75
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6f2b03db40ae9ed617f12fe9a2a93e240495cfcd b/fuzz/corpus/packet_recv_server/6f2b03db40ae9ed617f12fe9a2a93e240495cfcd
new file mode 100644
index 0000000..43cfdda
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6f2b03db40ae9ed617f12fe9a2a93e240495cfcd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6f3235914b1982e503bf2c3ce1c73fa016d5cba0 b/fuzz/corpus/packet_recv_server/6f3235914b1982e503bf2c3ce1c73fa016d5cba0
new file mode 100644
index 0000000..b7307c1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6f3235914b1982e503bf2c3ce1c73fa016d5cba0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6f3e6d6910bff620c3742dfdd8b08ef00930c63d b/fuzz/corpus/packet_recv_server/6f3e6d6910bff620c3742dfdd8b08ef00930c63d
new file mode 100644
index 0000000..eebf7eb
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6f3e6d6910bff620c3742dfdd8b08ef00930c63d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6f4a5e379d274f6bd84d2c58d98ed05b281093fc b/fuzz/corpus/packet_recv_server/6f4a5e379d274f6bd84d2c58d98ed05b281093fc
new file mode 100644
index 0000000..c200e5a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/6f4a5e379d274f6bd84d2c58d98ed05b281093fc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/6fb225e5e21fcaf48117f849a4a56c7d07b4a388 b/fuzz/corpus/packet_recv_server/6fb225e5e21fcaf48117f849a4a56c7d07b4a388
deleted file mode 100644
index 1cee196..0000000
--- a/fuzz/corpus/packet_recv_server/6fb225e5e21fcaf48117f849a4a56c7d07b4a388
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/70cbfd288a54ccfac511bb1fd069b4b240624a83 b/fuzz/corpus/packet_recv_server/70cbfd288a54ccfac511bb1fd069b4b240624a83
new file mode 100644
index 0000000..782ae64
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/70cbfd288a54ccfac511bb1fd069b4b240624a83
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/71ca0df1abb97bd2c223acc260340e93935c14b5 b/fuzz/corpus/packet_recv_server/71ca0df1abb97bd2c223acc260340e93935c14b5
new file mode 100644
index 0000000..f80085e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/71ca0df1abb97bd2c223acc260340e93935c14b5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/720f3352de4e89b2bb6206244d50cae1f7d337e6 b/fuzz/corpus/packet_recv_server/720f3352de4e89b2bb6206244d50cae1f7d337e6
new file mode 100644
index 0000000..f2e37a8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/720f3352de4e89b2bb6206244d50cae1f7d337e6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/72ad8af45d544edbde62b72fb711825943786b32 b/fuzz/corpus/packet_recv_server/72ad8af45d544edbde62b72fb711825943786b32
new file mode 100644
index 0000000..401d597
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/72ad8af45d544edbde62b72fb711825943786b32
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/72af230c6098b8e6634b0cbb488a9bcb1ccf378a b/fuzz/corpus/packet_recv_server/72af230c6098b8e6634b0cbb488a9bcb1ccf378a
new file mode 100644
index 0000000..1ec6c4d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/72af230c6098b8e6634b0cbb488a9bcb1ccf378a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/72d8c5ff7fe4c1597d4cfaed551e56aea62690b9 b/fuzz/corpus/packet_recv_server/72d8c5ff7fe4c1597d4cfaed551e56aea62690b9
deleted file mode 100644
index c85d830..0000000
--- a/fuzz/corpus/packet_recv_server/72d8c5ff7fe4c1597d4cfaed551e56aea62690b9
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/730df3f903f61ad31795f5e14f485af239fb4c90 b/fuzz/corpus/packet_recv_server/730df3f903f61ad31795f5e14f485af239fb4c90
new file mode 100644
index 0000000..47ea1da
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/730df3f903f61ad31795f5e14f485af239fb4c90
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/73185e7dad36ddbc553db92471f39320f3bc5696 b/fuzz/corpus/packet_recv_server/73185e7dad36ddbc553db92471f39320f3bc5696
new file mode 100644
index 0000000..3caaa2a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/73185e7dad36ddbc553db92471f39320f3bc5696
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/731cb98e2ca24a9fb0af89ef082a8ae7b4a8c506 b/fuzz/corpus/packet_recv_server/731cb98e2ca24a9fb0af89ef082a8ae7b4a8c506
deleted file mode 100644
index 31a6d4e..0000000
--- a/fuzz/corpus/packet_recv_server/731cb98e2ca24a9fb0af89ef082a8ae7b4a8c506
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/732b203dd1bd3ca577f5b0d910f07bebdc8264db b/fuzz/corpus/packet_recv_server/732b203dd1bd3ca577f5b0d910f07bebdc8264db
new file mode 100644
index 0000000..032dd4f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/732b203dd1bd3ca577f5b0d910f07bebdc8264db
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/738bb8d3049312e2d9dab2e13e5554b0864a4ec2 b/fuzz/corpus/packet_recv_server/738bb8d3049312e2d9dab2e13e5554b0864a4ec2
new file mode 100644
index 0000000..13461ae
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/738bb8d3049312e2d9dab2e13e5554b0864a4ec2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/73f98eb8a13ce356a9f269948e72d4417802c63b b/fuzz/corpus/packet_recv_server/73f98eb8a13ce356a9f269948e72d4417802c63b
new file mode 100644
index 0000000..3c1f5d4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/73f98eb8a13ce356a9f269948e72d4417802c63b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/74b8e1b366845dc630cded1da382292dd26d928f b/fuzz/corpus/packet_recv_server/74b8e1b366845dc630cded1da382292dd26d928f
new file mode 100644
index 0000000..072a392
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/74b8e1b366845dc630cded1da382292dd26d928f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/74c9932189c3481f2dddc14e42311b7364b8fa54 b/fuzz/corpus/packet_recv_server/74c9932189c3481f2dddc14e42311b7364b8fa54
new file mode 100644
index 0000000..e6428b9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/74c9932189c3481f2dddc14e42311b7364b8fa54
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/74d68721b5a7fb51c213cb944324a3b54c9b5b7c b/fuzz/corpus/packet_recv_server/74d68721b5a7fb51c213cb944324a3b54c9b5b7c
new file mode 100644
index 0000000..19bb029
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/74d68721b5a7fb51c213cb944324a3b54c9b5b7c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/74efd1f507e6927ea036eb486c009a713266ed26 b/fuzz/corpus/packet_recv_server/74efd1f507e6927ea036eb486c009a713266ed26
new file mode 100644
index 0000000..1f05a31
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/74efd1f507e6927ea036eb486c009a713266ed26
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/753da640b89796087adf771e48c9c5d27e861e5c b/fuzz/corpus/packet_recv_server/753da640b89796087adf771e48c9c5d27e861e5c
new file mode 100644
index 0000000..fe6faa9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/753da640b89796087adf771e48c9c5d27e861e5c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/75482232b1892169557c6242e38b10011a8bb4f6 b/fuzz/corpus/packet_recv_server/75482232b1892169557c6242e38b10011a8bb4f6
new file mode 100644
index 0000000..99af8c7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/75482232b1892169557c6242e38b10011a8bb4f6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/75785ad1cd5580f5cc8354c56522aaef9cac3ea8 b/fuzz/corpus/packet_recv_server/75785ad1cd5580f5cc8354c56522aaef9cac3ea8
new file mode 100644
index 0000000..9a17228
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/75785ad1cd5580f5cc8354c56522aaef9cac3ea8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/75b7684af517be277ba628f739c438c31198ce28 b/fuzz/corpus/packet_recv_server/75b7684af517be277ba628f739c438c31198ce28
new file mode 100644
index 0000000..712e092
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/75b7684af517be277ba628f739c438c31198ce28
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/75d14c6a174e39d85bd64373b211555cfd1fb9ef b/fuzz/corpus/packet_recv_server/75d14c6a174e39d85bd64373b211555cfd1fb9ef
deleted file mode 100644
index d781adc..0000000
--- a/fuzz/corpus/packet_recv_server/75d14c6a174e39d85bd64373b211555cfd1fb9ef
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7624e79c5c665b5acd2533302eec2f147eee65da b/fuzz/corpus/packet_recv_server/7624e79c5c665b5acd2533302eec2f147eee65da
new file mode 100644
index 0000000..f4db578
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7624e79c5c665b5acd2533302eec2f147eee65da
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7650ca00d90e616f1472ea0bd8b1835c459f156d b/fuzz/corpus/packet_recv_server/7650ca00d90e616f1472ea0bd8b1835c459f156d
new file mode 100644
index 0000000..10aa618
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7650ca00d90e616f1472ea0bd8b1835c459f156d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/766d1a30bb1f1845862b761d655d2b0746d312d5 b/fuzz/corpus/packet_recv_server/766d1a30bb1f1845862b761d655d2b0746d312d5
deleted file mode 100644
index 4b01ec8..0000000
--- a/fuzz/corpus/packet_recv_server/766d1a30bb1f1845862b761d655d2b0746d312d5
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/76aebe7346ce60500933bc23187158c9c0a054c1 b/fuzz/corpus/packet_recv_server/76aebe7346ce60500933bc23187158c9c0a054c1
deleted file mode 100644
index 727955b..0000000
--- a/fuzz/corpus/packet_recv_server/76aebe7346ce60500933bc23187158c9c0a054c1
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/76d10b0ec1ef3273cad2977d7346703c8e877b52 b/fuzz/corpus/packet_recv_server/76d10b0ec1ef3273cad2977d7346703c8e877b52
deleted file mode 100644
index bddfc87..0000000
--- a/fuzz/corpus/packet_recv_server/76d10b0ec1ef3273cad2977d7346703c8e877b52
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/76fc345a915d74c44d5ef590cd03bfbb5592433f b/fuzz/corpus/packet_recv_server/76fc345a915d74c44d5ef590cd03bfbb5592433f
deleted file mode 100644
index 62f4909..0000000
--- a/fuzz/corpus/packet_recv_server/76fc345a915d74c44d5ef590cd03bfbb5592433f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7700120d43a4757701f207b3c444c41f6239111d b/fuzz/corpus/packet_recv_server/7700120d43a4757701f207b3c444c41f6239111d
deleted file mode 100644
index 19c5648..0000000
--- a/fuzz/corpus/packet_recv_server/7700120d43a4757701f207b3c444c41f6239111d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/772206293f93f3a47178c977e8770335de0b603b b/fuzz/corpus/packet_recv_server/772206293f93f3a47178c977e8770335de0b603b
deleted file mode 100644
index 90cd3b3..0000000
--- a/fuzz/corpus/packet_recv_server/772206293f93f3a47178c977e8770335de0b603b
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/77322d89949216fdbab83b74b3b8ebb2f1236647 b/fuzz/corpus/packet_recv_server/77322d89949216fdbab83b74b3b8ebb2f1236647
new file mode 100644
index 0000000..a1bb05f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/77322d89949216fdbab83b74b3b8ebb2f1236647
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7834138747c4e4e8ab305f6d7d92d4cc55daece3 b/fuzz/corpus/packet_recv_server/7834138747c4e4e8ab305f6d7d92d4cc55daece3
new file mode 100644
index 0000000..9a4e579
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7834138747c4e4e8ab305f6d7d92d4cc55daece3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/784266a161a52b7b93286b9fc7273eff9969cb6f b/fuzz/corpus/packet_recv_server/784266a161a52b7b93286b9fc7273eff9969cb6f
new file mode 100644
index 0000000..6a4c2c3f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/784266a161a52b7b93286b9fc7273eff9969cb6f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/784b7574b9eedc3ca95b002dec48e340814895ae b/fuzz/corpus/packet_recv_server/784b7574b9eedc3ca95b002dec48e340814895ae
new file mode 100644
index 0000000..8c0b533
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/784b7574b9eedc3ca95b002dec48e340814895ae
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7863f7050359f85b0b8efa8869b9c41bdbe4e9e7 b/fuzz/corpus/packet_recv_server/7863f7050359f85b0b8efa8869b9c41bdbe4e9e7
deleted file mode 100644
index de01b8d..0000000
--- a/fuzz/corpus/packet_recv_server/7863f7050359f85b0b8efa8869b9c41bdbe4e9e7
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/78761a3ad0d84bf4228fb76edafcc754675886df b/fuzz/corpus/packet_recv_server/78761a3ad0d84bf4228fb76edafcc754675886df
new file mode 100644
index 0000000..e26bb51
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/78761a3ad0d84bf4228fb76edafcc754675886df
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/789f38b1c6f73efd58af15c06333cd4c48fa6989 b/fuzz/corpus/packet_recv_server/789f38b1c6f73efd58af15c06333cd4c48fa6989
new file mode 100644
index 0000000..9b2ad8a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/789f38b1c6f73efd58af15c06333cd4c48fa6989
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/78aa5dbebc9d36b134619ab2d8daa7e53193d6ad b/fuzz/corpus/packet_recv_server/78aa5dbebc9d36b134619ab2d8daa7e53193d6ad
new file mode 100644
index 0000000..dd3caae
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/78aa5dbebc9d36b134619ab2d8daa7e53193d6ad
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/78b79ab1693d409bef08d451fe49d0a786021ca4 b/fuzz/corpus/packet_recv_server/78b79ab1693d409bef08d451fe49d0a786021ca4
new file mode 100644
index 0000000..0e0e3bb
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/78b79ab1693d409bef08d451fe49d0a786021ca4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/78bac4da3d24d32c16b3d23b973acc5676eb5f4a b/fuzz/corpus/packet_recv_server/78bac4da3d24d32c16b3d23b973acc5676eb5f4a
new file mode 100644
index 0000000..8cae0d0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/78bac4da3d24d32c16b3d23b973acc5676eb5f4a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/78c0254664e15a9345f08a8996b2f49cf7cb66db b/fuzz/corpus/packet_recv_server/78c0254664e15a9345f08a8996b2f49cf7cb66db
new file mode 100644
index 0000000..19ff917
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/78c0254664e15a9345f08a8996b2f49cf7cb66db
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/78d6e8b8660e704f2f39af49ed46ac87cc286d9f b/fuzz/corpus/packet_recv_server/78d6e8b8660e704f2f39af49ed46ac87cc286d9f
deleted file mode 100644
index 66ce538..0000000
--- a/fuzz/corpus/packet_recv_server/78d6e8b8660e704f2f39af49ed46ac87cc286d9f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/79a398856f315360e4ec54beff48bd2c6a130de4 b/fuzz/corpus/packet_recv_server/79a398856f315360e4ec54beff48bd2c6a130de4
new file mode 100644
index 0000000..4729516
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/79a398856f315360e4ec54beff48bd2c6a130de4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/79e6937512f55b9e2bd2c2461d171a0f6e8f66ce b/fuzz/corpus/packet_recv_server/79e6937512f55b9e2bd2c2461d171a0f6e8f66ce
new file mode 100644
index 0000000..f6f7fad
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/79e6937512f55b9e2bd2c2461d171a0f6e8f66ce
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/79fe774cc14a60b3c8a898f3021beaac4654ff0a b/fuzz/corpus/packet_recv_server/79fe774cc14a60b3c8a898f3021beaac4654ff0a
deleted file mode 100644
index b7b6f4e..0000000
--- a/fuzz/corpus/packet_recv_server/79fe774cc14a60b3c8a898f3021beaac4654ff0a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7a51bb8aadd6f58e1de65b85f718db288bcee982 b/fuzz/corpus/packet_recv_server/7a51bb8aadd6f58e1de65b85f718db288bcee982
deleted file mode 100644
index ce7c1e8..0000000
--- a/fuzz/corpus/packet_recv_server/7a51bb8aadd6f58e1de65b85f718db288bcee982
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7add1416d43e333d5e5287dd4a2d949f68d27be7 b/fuzz/corpus/packet_recv_server/7add1416d43e333d5e5287dd4a2d949f68d27be7
new file mode 100644
index 0000000..2e5f8dd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7add1416d43e333d5e5287dd4a2d949f68d27be7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7b8b407b05c75f0d36c11a5b535e1291f560aee4 b/fuzz/corpus/packet_recv_server/7b8b407b05c75f0d36c11a5b535e1291f560aee4
new file mode 100644
index 0000000..890920f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7b8b407b05c75f0d36c11a5b535e1291f560aee4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7ba76873d1ed59effe43474440642d79c4122067 b/fuzz/corpus/packet_recv_server/7ba76873d1ed59effe43474440642d79c4122067
new file mode 100644
index 0000000..a0a31c1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7ba76873d1ed59effe43474440642d79c4122067
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7bfebdba2c2e7b1746d57b86d21c9094ac320792 b/fuzz/corpus/packet_recv_server/7bfebdba2c2e7b1746d57b86d21c9094ac320792
deleted file mode 100644
index ccdca64..0000000
--- a/fuzz/corpus/packet_recv_server/7bfebdba2c2e7b1746d57b86d21c9094ac320792
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7bfef11e8bea820d77c85414282fbab4e42615d6 b/fuzz/corpus/packet_recv_server/7bfef11e8bea820d77c85414282fbab4e42615d6
new file mode 100644
index 0000000..6a36af1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7bfef11e8bea820d77c85414282fbab4e42615d6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7c02ac945d57d90f99adbbcff766719caf14676b b/fuzz/corpus/packet_recv_server/7c02ac945d57d90f99adbbcff766719caf14676b
new file mode 100644
index 0000000..280b680
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7c02ac945d57d90f99adbbcff766719caf14676b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7c0436244690f1230e45e8f74f8685f68808d516 b/fuzz/corpus/packet_recv_server/7c0436244690f1230e45e8f74f8685f68808d516
new file mode 100644
index 0000000..492e59a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7c0436244690f1230e45e8f74f8685f68808d516
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7c5aaace4d8535160e4f5e1492adf44ba94d2a30 b/fuzz/corpus/packet_recv_server/7c5aaace4d8535160e4f5e1492adf44ba94d2a30
deleted file mode 100644
index 4105c22..0000000
--- a/fuzz/corpus/packet_recv_server/7c5aaace4d8535160e4f5e1492adf44ba94d2a30
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7cdfe9c1f2bd103225125427958695bbf519049b b/fuzz/corpus/packet_recv_server/7cdfe9c1f2bd103225125427958695bbf519049b
new file mode 100644
index 0000000..f6f1c1c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7cdfe9c1f2bd103225125427958695bbf519049b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7cf63e52fc39da115bbfe7f45603ad360a93e3a6 b/fuzz/corpus/packet_recv_server/7cf63e52fc39da115bbfe7f45603ad360a93e3a6
new file mode 100644
index 0000000..7452c69
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7cf63e52fc39da115bbfe7f45603ad360a93e3a6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7cfd8065e6dfa763e9332b79660f74e8ecb3aded b/fuzz/corpus/packet_recv_server/7cfd8065e6dfa763e9332b79660f74e8ecb3aded
deleted file mode 100644
index b1355db..0000000
--- a/fuzz/corpus/packet_recv_server/7cfd8065e6dfa763e9332b79660f74e8ecb3aded
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7d62e0a431b911e35b07df7fd3a1ddc7c8f8f228 b/fuzz/corpus/packet_recv_server/7d62e0a431b911e35b07df7fd3a1ddc7c8f8f228
new file mode 100644
index 0000000..007cbaa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7d62e0a431b911e35b07df7fd3a1ddc7c8f8f228
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7dbd7ba4ef1fe98ce6b73e7e17a44caaf7e7d9ee b/fuzz/corpus/packet_recv_server/7dbd7ba4ef1fe98ce6b73e7e17a44caaf7e7d9ee
new file mode 100644
index 0000000..a9bad35
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7dbd7ba4ef1fe98ce6b73e7e17a44caaf7e7d9ee
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7ddc21fdcdaefbf285095f011512b753466710e6 b/fuzz/corpus/packet_recv_server/7ddc21fdcdaefbf285095f011512b753466710e6
new file mode 100644
index 0000000..5cda682
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7ddc21fdcdaefbf285095f011512b753466710e6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7de14dc2730de2c7458bf9036d04e06d550d3f4b b/fuzz/corpus/packet_recv_server/7de14dc2730de2c7458bf9036d04e06d550d3f4b
new file mode 100644
index 0000000..0f7189c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7de14dc2730de2c7458bf9036d04e06d550d3f4b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7e0ad1d78cfeff5220f48cc0d0a2661b4a9bdb8e b/fuzz/corpus/packet_recv_server/7e0ad1d78cfeff5220f48cc0d0a2661b4a9bdb8e
deleted file mode 100644
index 0b24f70..0000000
--- a/fuzz/corpus/packet_recv_server/7e0ad1d78cfeff5220f48cc0d0a2661b4a9bdb8e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7ee8652c9b0714adadf1b8fbea9aca6c99643769 b/fuzz/corpus/packet_recv_server/7ee8652c9b0714adadf1b8fbea9aca6c99643769
new file mode 100644
index 0000000..43a898e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7ee8652c9b0714adadf1b8fbea9aca6c99643769
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7eea42489e03c5e5031dd9b85b009ead6aa2fa38 b/fuzz/corpus/packet_recv_server/7eea42489e03c5e5031dd9b85b009ead6aa2fa38
new file mode 100644
index 0000000..173e66d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7eea42489e03c5e5031dd9b85b009ead6aa2fa38
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7efb4bb98088f54987f7b8ae3baed6c31209fcad b/fuzz/corpus/packet_recv_server/7efb4bb98088f54987f7b8ae3baed6c31209fcad
new file mode 100644
index 0000000..fd388e4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7efb4bb98088f54987f7b8ae3baed6c31209fcad
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7f0bac99bb20468e591d41cd1a80e030bc8a23d4 b/fuzz/corpus/packet_recv_server/7f0bac99bb20468e591d41cd1a80e030bc8a23d4
new file mode 100644
index 0000000..36f33df
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7f0bac99bb20468e591d41cd1a80e030bc8a23d4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7f2b8ceca2cbb61d9605930feba1d74f01dfcc29 b/fuzz/corpus/packet_recv_server/7f2b8ceca2cbb61d9605930feba1d74f01dfcc29
new file mode 100644
index 0000000..7fac294
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7f2b8ceca2cbb61d9605930feba1d74f01dfcc29
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7f3227da62ea0245fc8cfa6c0c22a2967d94b819 b/fuzz/corpus/packet_recv_server/7f3227da62ea0245fc8cfa6c0c22a2967d94b819
new file mode 100644
index 0000000..f205221
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7f3227da62ea0245fc8cfa6c0c22a2967d94b819
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7f3fb4d3e40877d9ebfe9e21493f8d4919759199 b/fuzz/corpus/packet_recv_server/7f3fb4d3e40877d9ebfe9e21493f8d4919759199
new file mode 100644
index 0000000..1ce391d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7f3fb4d3e40877d9ebfe9e21493f8d4919759199
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7f4533d864cb5d5efb8f659f6f8f0046d91e010b b/fuzz/corpus/packet_recv_server/7f4533d864cb5d5efb8f659f6f8f0046d91e010b
new file mode 100644
index 0000000..32f3bab
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7f4533d864cb5d5efb8f659f6f8f0046d91e010b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7f851d2b4f747906307fbef1a31f20f564cf5f0e b/fuzz/corpus/packet_recv_server/7f851d2b4f747906307fbef1a31f20f564cf5f0e
new file mode 100644
index 0000000..e15e07b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7f851d2b4f747906307fbef1a31f20f564cf5f0e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/7fbc45ba6a4297d2f03d315382cf45717d36da70 b/fuzz/corpus/packet_recv_server/7fbc45ba6a4297d2f03d315382cf45717d36da70
new file mode 100644
index 0000000..e153ba7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/7fbc45ba6a4297d2f03d315382cf45717d36da70
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8043db4829d482c9053318d81102a7f5768c623a b/fuzz/corpus/packet_recv_server/8043db4829d482c9053318d81102a7f5768c623a
deleted file mode 100644
index 577a5ae..0000000
--- a/fuzz/corpus/packet_recv_server/8043db4829d482c9053318d81102a7f5768c623a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8097a0c543d413668ec1a7cfc52199a0b6fdb1b7 b/fuzz/corpus/packet_recv_server/8097a0c543d413668ec1a7cfc52199a0b6fdb1b7
new file mode 100644
index 0000000..199f06e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8097a0c543d413668ec1a7cfc52199a0b6fdb1b7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/809ec68fd54adeb3bd272fb5e51404388cfbc52f b/fuzz/corpus/packet_recv_server/809ec68fd54adeb3bd272fb5e51404388cfbc52f
new file mode 100644
index 0000000..2b5f42a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/809ec68fd54adeb3bd272fb5e51404388cfbc52f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/80c2e08d2148dfdefcf90125478b836b5fe5107f b/fuzz/corpus/packet_recv_server/80c2e08d2148dfdefcf90125478b836b5fe5107f
deleted file mode 100644
index 4e998e3..0000000
--- a/fuzz/corpus/packet_recv_server/80c2e08d2148dfdefcf90125478b836b5fe5107f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/80ea8e0f5cde1dc7ce73db72116ee97def767bd3 b/fuzz/corpus/packet_recv_server/80ea8e0f5cde1dc7ce73db72116ee97def767bd3
new file mode 100644
index 0000000..2de8b73
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/80ea8e0f5cde1dc7ce73db72116ee97def767bd3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/81099db5e4dd5a9c297d5bcdad953daf658ea2d0 b/fuzz/corpus/packet_recv_server/81099db5e4dd5a9c297d5bcdad953daf658ea2d0
deleted file mode 100644
index 67c40c4..0000000
--- a/fuzz/corpus/packet_recv_server/81099db5e4dd5a9c297d5bcdad953daf658ea2d0
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/813a1f54a3d098a4de5d225efb51281ac68843f2 b/fuzz/corpus/packet_recv_server/813a1f54a3d098a4de5d225efb51281ac68843f2
new file mode 100644
index 0000000..ea84c8b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/813a1f54a3d098a4de5d225efb51281ac68843f2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/81d30ca2480f584e4e73424732e86ab901c73a27 b/fuzz/corpus/packet_recv_server/81d30ca2480f584e4e73424732e86ab901c73a27
new file mode 100644
index 0000000..206c98d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/81d30ca2480f584e4e73424732e86ab901c73a27
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/81dedccb9e2114df083228757d6b2fba32b5cec4 b/fuzz/corpus/packet_recv_server/81dedccb9e2114df083228757d6b2fba32b5cec4
new file mode 100644
index 0000000..c5259ff
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/81dedccb9e2114df083228757d6b2fba32b5cec4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/826ed12fcbcd65940d3dfa66c75f118c41f7d692 b/fuzz/corpus/packet_recv_server/826ed12fcbcd65940d3dfa66c75f118c41f7d692
new file mode 100644
index 0000000..3bddedd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/826ed12fcbcd65940d3dfa66c75f118c41f7d692
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/82a82acbebf3050a00e53e64f518c32dd485c776 b/fuzz/corpus/packet_recv_server/82a82acbebf3050a00e53e64f518c32dd485c776
deleted file mode 100644
index cd73490..0000000
--- a/fuzz/corpus/packet_recv_server/82a82acbebf3050a00e53e64f518c32dd485c776
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/82c7882f1b9e92bdbe3836c04376344a72cb2df1 b/fuzz/corpus/packet_recv_server/82c7882f1b9e92bdbe3836c04376344a72cb2df1
new file mode 100644
index 0000000..7dfaf1a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/82c7882f1b9e92bdbe3836c04376344a72cb2df1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/832225e701940df70f3f8414e5017ef5f81acaa9 b/fuzz/corpus/packet_recv_server/832225e701940df70f3f8414e5017ef5f81acaa9
new file mode 100644
index 0000000..edfd447
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/832225e701940df70f3f8414e5017ef5f81acaa9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/834aed8bfd866daa6e2f38b3f60a0f849cd736c7 b/fuzz/corpus/packet_recv_server/834aed8bfd866daa6e2f38b3f60a0f849cd736c7
new file mode 100644
index 0000000..5b79351
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/834aed8bfd866daa6e2f38b3f60a0f849cd736c7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/83cf1d699d5b37e76df9ce87d2fa3b5d3d86af35 b/fuzz/corpus/packet_recv_server/83cf1d699d5b37e76df9ce87d2fa3b5d3d86af35
new file mode 100644
index 0000000..b012024
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/83cf1d699d5b37e76df9ce87d2fa3b5d3d86af35
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8405f906472c0a29732cb4cad269be653e5be962 b/fuzz/corpus/packet_recv_server/8405f906472c0a29732cb4cad269be653e5be962
new file mode 100644
index 0000000..08052ff
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8405f906472c0a29732cb4cad269be653e5be962
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/840766fa634053b4026fbcc310633fb3e9783f6f b/fuzz/corpus/packet_recv_server/840766fa634053b4026fbcc310633fb3e9783f6f
new file mode 100644
index 0000000..c082c88
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/840766fa634053b4026fbcc310633fb3e9783f6f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/842a0389ab466b177222757496e679ecc4eac8ce b/fuzz/corpus/packet_recv_server/842a0389ab466b177222757496e679ecc4eac8ce
new file mode 100644
index 0000000..9e233b7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/842a0389ab466b177222757496e679ecc4eac8ce
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/842e61f9fd51b26cc9d07641ac6cbb8b46a2f107 b/fuzz/corpus/packet_recv_server/842e61f9fd51b26cc9d07641ac6cbb8b46a2f107
deleted file mode 100644
index 2c977b0..0000000
--- a/fuzz/corpus/packet_recv_server/842e61f9fd51b26cc9d07641ac6cbb8b46a2f107
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/843d87736083ec1a679808414387f2f7ab0a8726 b/fuzz/corpus/packet_recv_server/843d87736083ec1a679808414387f2f7ab0a8726
new file mode 100644
index 0000000..46616ef
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/843d87736083ec1a679808414387f2f7ab0a8726
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/84a90a31db8f5f2f95d895d38c7ec71e4d1a94ea b/fuzz/corpus/packet_recv_server/84a90a31db8f5f2f95d895d38c7ec71e4d1a94ea
new file mode 100644
index 0000000..64c5800
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/84a90a31db8f5f2f95d895d38c7ec71e4d1a94ea
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/84ac6e6b0de5a33488348f767ac4f49530d243e1 b/fuzz/corpus/packet_recv_server/84ac6e6b0de5a33488348f767ac4f49530d243e1
deleted file mode 100644
index dbeea17..0000000
--- a/fuzz/corpus/packet_recv_server/84ac6e6b0de5a33488348f767ac4f49530d243e1
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/84c5349f702dde7622ca66f073c8e0d414a95924 b/fuzz/corpus/packet_recv_server/84c5349f702dde7622ca66f073c8e0d414a95924
new file mode 100644
index 0000000..57f8e1c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/84c5349f702dde7622ca66f073c8e0d414a95924
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/84ebb8d1710e0f0e23c6293b13a57eb128e042fe b/fuzz/corpus/packet_recv_server/84ebb8d1710e0f0e23c6293b13a57eb128e042fe
deleted file mode 100644
index b0ef210..0000000
--- a/fuzz/corpus/packet_recv_server/84ebb8d1710e0f0e23c6293b13a57eb128e042fe
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/84ef6618fb59091cdcc8dd2f1f64f079e35d8eed b/fuzz/corpus/packet_recv_server/84ef6618fb59091cdcc8dd2f1f64f079e35d8eed
deleted file mode 100644
index 161c27a..0000000
--- a/fuzz/corpus/packet_recv_server/84ef6618fb59091cdcc8dd2f1f64f079e35d8eed
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/851a26c8603238784d7f5bd1a0b51b46962c26a9 b/fuzz/corpus/packet_recv_server/851a26c8603238784d7f5bd1a0b51b46962c26a9
deleted file mode 100644
index 5d1c95b..0000000
--- a/fuzz/corpus/packet_recv_server/851a26c8603238784d7f5bd1a0b51b46962c26a9
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/851f2debefd3e7148632a3ac55cd46ea85a182f6 b/fuzz/corpus/packet_recv_server/851f2debefd3e7148632a3ac55cd46ea85a182f6
new file mode 100644
index 0000000..c4a5a1b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/851f2debefd3e7148632a3ac55cd46ea85a182f6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/85a7e15dae4eff017c5b99a82507ca34004872eb b/fuzz/corpus/packet_recv_server/85a7e15dae4eff017c5b99a82507ca34004872eb
deleted file mode 100644
index 7be9e6f..0000000
--- a/fuzz/corpus/packet_recv_server/85a7e15dae4eff017c5b99a82507ca34004872eb
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/85f97f963c82e0dc608691f3ed23f034051d5e9d b/fuzz/corpus/packet_recv_server/85f97f963c82e0dc608691f3ed23f034051d5e9d
deleted file mode 100644
index ae3ac1a..0000000
--- a/fuzz/corpus/packet_recv_server/85f97f963c82e0dc608691f3ed23f034051d5e9d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/863d1efb8881bf8d0f716597fb44952c4cfdfc92 b/fuzz/corpus/packet_recv_server/863d1efb8881bf8d0f716597fb44952c4cfdfc92
deleted file mode 100644
index ee417a8..0000000
--- a/fuzz/corpus/packet_recv_server/863d1efb8881bf8d0f716597fb44952c4cfdfc92
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/86d21b07052b58f7884e454df4168dc097a3d0a7 b/fuzz/corpus/packet_recv_server/86d21b07052b58f7884e454df4168dc097a3d0a7
deleted file mode 100644
index 152956a..0000000
--- a/fuzz/corpus/packet_recv_server/86d21b07052b58f7884e454df4168dc097a3d0a7
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/870104af3cad232c754292a1f22c61effb2a92ae b/fuzz/corpus/packet_recv_server/870104af3cad232c754292a1f22c61effb2a92ae
new file mode 100644
index 0000000..5884639
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/870104af3cad232c754292a1f22c61effb2a92ae
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/872cfe4db521710b92cf3bbc86cc027e2c6d4435 b/fuzz/corpus/packet_recv_server/872cfe4db521710b92cf3bbc86cc027e2c6d4435
deleted file mode 100644
index df14fb4..0000000
--- a/fuzz/corpus/packet_recv_server/872cfe4db521710b92cf3bbc86cc027e2c6d4435
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8731599c2aadee3654222bc86c728b353581d0d8 b/fuzz/corpus/packet_recv_server/8731599c2aadee3654222bc86c728b353581d0d8
deleted file mode 100644
index f8ba1ee..0000000
--- a/fuzz/corpus/packet_recv_server/8731599c2aadee3654222bc86c728b353581d0d8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/87573eea8dbeb68880ac7c2ab5bc0925514193d0 b/fuzz/corpus/packet_recv_server/87573eea8dbeb68880ac7c2ab5bc0925514193d0
new file mode 100644
index 0000000..ebb2d0b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/87573eea8dbeb68880ac7c2ab5bc0925514193d0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/876ed6fc351053a1c8bdaf29bfe224c77a14174b b/fuzz/corpus/packet_recv_server/876ed6fc351053a1c8bdaf29bfe224c77a14174b
new file mode 100644
index 0000000..d9427d1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/876ed6fc351053a1c8bdaf29bfe224c77a14174b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8774e64910e8b3a2c26ede81844b46c025c3dd7c b/fuzz/corpus/packet_recv_server/8774e64910e8b3a2c26ede81844b46c025c3dd7c
new file mode 100644
index 0000000..39d651e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8774e64910e8b3a2c26ede81844b46c025c3dd7c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8781ec0560c9423f557be890098f339de185f66f b/fuzz/corpus/packet_recv_server/8781ec0560c9423f557be890098f339de185f66f
deleted file mode 100644
index 149cd01..0000000
--- a/fuzz/corpus/packet_recv_server/8781ec0560c9423f557be890098f339de185f66f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8796a38ce7f73210c0cda247538f22f7d40986bd b/fuzz/corpus/packet_recv_server/8796a38ce7f73210c0cda247538f22f7d40986bd
deleted file mode 100644
index 222ffdc..0000000
--- a/fuzz/corpus/packet_recv_server/8796a38ce7f73210c0cda247538f22f7d40986bd
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/87a703c104f7bf2e5c54b60caa76293d7ec5be6e b/fuzz/corpus/packet_recv_server/87a703c104f7bf2e5c54b60caa76293d7ec5be6e
new file mode 100644
index 0000000..193ec96
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/87a703c104f7bf2e5c54b60caa76293d7ec5be6e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/87c14e0f61cbe532a342ebd07a3f7c280c277ff7 b/fuzz/corpus/packet_recv_server/87c14e0f61cbe532a342ebd07a3f7c280c277ff7
new file mode 100644
index 0000000..09872e0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/87c14e0f61cbe532a342ebd07a3f7c280c277ff7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/881c721cf49047f51b1a8ab8ebb9ad5a0acacb5d b/fuzz/corpus/packet_recv_server/881c721cf49047f51b1a8ab8ebb9ad5a0acacb5d
deleted file mode 100644
index cdff219..0000000
--- a/fuzz/corpus/packet_recv_server/881c721cf49047f51b1a8ab8ebb9ad5a0acacb5d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8824fd6e41072bbc8167cfcb209d7e3a1141f25e b/fuzz/corpus/packet_recv_server/8824fd6e41072bbc8167cfcb209d7e3a1141f25e
deleted file mode 100644
index 38621d1..0000000
--- a/fuzz/corpus/packet_recv_server/8824fd6e41072bbc8167cfcb209d7e3a1141f25e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/88292178c1bb4d7d4ed11ed35d88e230e42e0687 b/fuzz/corpus/packet_recv_server/88292178c1bb4d7d4ed11ed35d88e230e42e0687
new file mode 100644
index 0000000..da2113e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/88292178c1bb4d7d4ed11ed35d88e230e42e0687
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/88b0d02fed0c59e5e4c03447dc896f75fdd7b03c b/fuzz/corpus/packet_recv_server/88b0d02fed0c59e5e4c03447dc896f75fdd7b03c
new file mode 100644
index 0000000..c4f120c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/88b0d02fed0c59e5e4c03447dc896f75fdd7b03c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/88b4677693b46c303c4e876b60251c243758b7a7 b/fuzz/corpus/packet_recv_server/88b4677693b46c303c4e876b60251c243758b7a7
new file mode 100644
index 0000000..3e5fb26
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/88b4677693b46c303c4e876b60251c243758b7a7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8902bd2ba50c26dae529b3e4d1f78c8ccbab8d89 b/fuzz/corpus/packet_recv_server/8902bd2ba50c26dae529b3e4d1f78c8ccbab8d89
new file mode 100644
index 0000000..623e3f8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8902bd2ba50c26dae529b3e4d1f78c8ccbab8d89
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/896064ce7508ff75c69d38e30edb04b3fd464d8a b/fuzz/corpus/packet_recv_server/896064ce7508ff75c69d38e30edb04b3fd464d8a
new file mode 100644
index 0000000..123729b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/896064ce7508ff75c69d38e30edb04b3fd464d8a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8993ebf59a571d26e748bc5e12877a9401efbbeb b/fuzz/corpus/packet_recv_server/8993ebf59a571d26e748bc5e12877a9401efbbeb
deleted file mode 100644
index 898bf82..0000000
--- a/fuzz/corpus/packet_recv_server/8993ebf59a571d26e748bc5e12877a9401efbbeb
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8a30a316242c0537bf51177d22b3204894691ab2 b/fuzz/corpus/packet_recv_server/8a30a316242c0537bf51177d22b3204894691ab2
deleted file mode 100644
index 780269e..0000000
--- a/fuzz/corpus/packet_recv_server/8a30a316242c0537bf51177d22b3204894691ab2
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8a3e3168f8d122e633977d3ae65e077ab572dda5 b/fuzz/corpus/packet_recv_server/8a3e3168f8d122e633977d3ae65e077ab572dda5
new file mode 100644
index 0000000..0a78a54
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8a3e3168f8d122e633977d3ae65e077ab572dda5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8a67357fc794661660e955f4628a97cada387b6c b/fuzz/corpus/packet_recv_server/8a67357fc794661660e955f4628a97cada387b6c
deleted file mode 100644
index 15af850..0000000
--- a/fuzz/corpus/packet_recv_server/8a67357fc794661660e955f4628a97cada387b6c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8a7dc8e70e96f80750e40f7e5298170e78c4caf3 b/fuzz/corpus/packet_recv_server/8a7dc8e70e96f80750e40f7e5298170e78c4caf3
new file mode 100644
index 0000000..513ce20
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8a7dc8e70e96f80750e40f7e5298170e78c4caf3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8a9bcda5f17c5739b80b33f105fe6a1878efbec6 b/fuzz/corpus/packet_recv_server/8a9bcda5f17c5739b80b33f105fe6a1878efbec6
deleted file mode 100644
index f35eb35..0000000
--- a/fuzz/corpus/packet_recv_server/8a9bcda5f17c5739b80b33f105fe6a1878efbec6
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8b277746bfffc99e789141878bc55113f4ca3f0e b/fuzz/corpus/packet_recv_server/8b277746bfffc99e789141878bc55113f4ca3f0e
new file mode 100644
index 0000000..adbd25c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8b277746bfffc99e789141878bc55113f4ca3f0e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8b2cb19545df6080dc49d829fc7209cd02f89d8f b/fuzz/corpus/packet_recv_server/8b2cb19545df6080dc49d829fc7209cd02f89d8f
new file mode 100644
index 0000000..5f3fd5f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8b2cb19545df6080dc49d829fc7209cd02f89d8f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8b32eda9eb6dd2703d7e3c040327d497e69b0558 b/fuzz/corpus/packet_recv_server/8b32eda9eb6dd2703d7e3c040327d497e69b0558
new file mode 100644
index 0000000..c4194b9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8b32eda9eb6dd2703d7e3c040327d497e69b0558
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8b7eaf7e2b72e737ee7b9f434c52ae4ba55c673e b/fuzz/corpus/packet_recv_server/8b7eaf7e2b72e737ee7b9f434c52ae4ba55c673e
new file mode 100644
index 0000000..cfebee7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8b7eaf7e2b72e737ee7b9f434c52ae4ba55c673e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8b8574d7bdf17c70d85f9fa0b3bbde82ea060e1f b/fuzz/corpus/packet_recv_server/8b8574d7bdf17c70d85f9fa0b3bbde82ea060e1f
new file mode 100644
index 0000000..f24ac34
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8b8574d7bdf17c70d85f9fa0b3bbde82ea060e1f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8ba4a7461dd0f80439fb6207a069aa8d24f169b0 b/fuzz/corpus/packet_recv_server/8ba4a7461dd0f80439fb6207a069aa8d24f169b0
new file mode 100644
index 0000000..ee73fed
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8ba4a7461dd0f80439fb6207a069aa8d24f169b0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8bb659146cf112d3c53d928af87494d41c6d51f9 b/fuzz/corpus/packet_recv_server/8bb659146cf112d3c53d928af87494d41c6d51f9
deleted file mode 100644
index 9b7cf15..0000000
--- a/fuzz/corpus/packet_recv_server/8bb659146cf112d3c53d928af87494d41c6d51f9
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8c06e5ec3d21f0c1f27015b8b64b03132c447530 b/fuzz/corpus/packet_recv_server/8c06e5ec3d21f0c1f27015b8b64b03132c447530
new file mode 100644
index 0000000..0ee18d6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8c06e5ec3d21f0c1f27015b8b64b03132c447530
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8c3aeb237b053e74a8553608a34d2c879cdb10f1 b/fuzz/corpus/packet_recv_server/8c3aeb237b053e74a8553608a34d2c879cdb10f1
new file mode 100644
index 0000000..28a2242
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8c3aeb237b053e74a8553608a34d2c879cdb10f1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8c747671bf99cfa0aee85d8db525baad80fdce8f b/fuzz/corpus/packet_recv_server/8c747671bf99cfa0aee85d8db525baad80fdce8f
new file mode 100644
index 0000000..7619780
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8c747671bf99cfa0aee85d8db525baad80fdce8f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8caa1c02b3eb83a6876cd786c63e5996b99d7b20 b/fuzz/corpus/packet_recv_server/8caa1c02b3eb83a6876cd786c63e5996b99d7b20
new file mode 100644
index 0000000..ac3fda7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8caa1c02b3eb83a6876cd786c63e5996b99d7b20
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8cbb8fb253236ec7d6092820417e3a4c138568ea b/fuzz/corpus/packet_recv_server/8cbb8fb253236ec7d6092820417e3a4c138568ea
new file mode 100644
index 0000000..33a5012
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8cbb8fb253236ec7d6092820417e3a4c138568ea
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8ccd7e2944ba0bdbebd41bcf7931a15d943a8462 b/fuzz/corpus/packet_recv_server/8ccd7e2944ba0bdbebd41bcf7931a15d943a8462
new file mode 100644
index 0000000..82e3c7a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8ccd7e2944ba0bdbebd41bcf7931a15d943a8462
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8d16921257af53dcdc40904ca258bf18dd9c5caa b/fuzz/corpus/packet_recv_server/8d16921257af53dcdc40904ca258bf18dd9c5caa
new file mode 100644
index 0000000..013ca89
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8d16921257af53dcdc40904ca258bf18dd9c5caa
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8d16f7a5c07b07e2d6c84cbe3e272b533a0d2531 b/fuzz/corpus/packet_recv_server/8d16f7a5c07b07e2d6c84cbe3e272b533a0d2531
new file mode 100644
index 0000000..d16a059
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8d16f7a5c07b07e2d6c84cbe3e272b533a0d2531
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8daacc5c126564a944b9f1ae374aac09f48e1b3f b/fuzz/corpus/packet_recv_server/8daacc5c126564a944b9f1ae374aac09f48e1b3f
deleted file mode 100644
index 3619ea9..0000000
--- a/fuzz/corpus/packet_recv_server/8daacc5c126564a944b9f1ae374aac09f48e1b3f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8dbe05f8d4982a2468b6fc7ad60731e4301c9e3a b/fuzz/corpus/packet_recv_server/8dbe05f8d4982a2468b6fc7ad60731e4301c9e3a
new file mode 100644
index 0000000..97532f8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8dbe05f8d4982a2468b6fc7ad60731e4301c9e3a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8dd48176a3d50ccf3c5eac71f32efddedc973699 b/fuzz/corpus/packet_recv_server/8dd48176a3d50ccf3c5eac71f32efddedc973699
new file mode 100644
index 0000000..5820011
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8dd48176a3d50ccf3c5eac71f32efddedc973699
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8e082e23d0a5ddf97752403378067baca6bd6792 b/fuzz/corpus/packet_recv_server/8e082e23d0a5ddf97752403378067baca6bd6792
new file mode 100644
index 0000000..4b6c002
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8e082e23d0a5ddf97752403378067baca6bd6792
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8e5bf11f2ba99fcc8d1d2b3e8ebcb38c4aa7858a b/fuzz/corpus/packet_recv_server/8e5bf11f2ba99fcc8d1d2b3e8ebcb38c4aa7858a
deleted file mode 100644
index 866c2a6..0000000
--- a/fuzz/corpus/packet_recv_server/8e5bf11f2ba99fcc8d1d2b3e8ebcb38c4aa7858a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8e7082c5547dadbe71976d833727d973dc9e0b9d b/fuzz/corpus/packet_recv_server/8e7082c5547dadbe71976d833727d973dc9e0b9d
new file mode 100644
index 0000000..443c4cc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8e7082c5547dadbe71976d833727d973dc9e0b9d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8e9185fba1787a185ccb27979356442e3440f0fe b/fuzz/corpus/packet_recv_server/8e9185fba1787a185ccb27979356442e3440f0fe
deleted file mode 100644
index cec577d..0000000
--- a/fuzz/corpus/packet_recv_server/8e9185fba1787a185ccb27979356442e3440f0fe
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8ebca63e8df4efe0e311d2916d3758796988fcbe b/fuzz/corpus/packet_recv_server/8ebca63e8df4efe0e311d2916d3758796988fcbe
new file mode 100644
index 0000000..98f7ccf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8ebca63e8df4efe0e311d2916d3758796988fcbe
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8ecd7b33a9ad1fbc2aa1af912e69c9c806ab8760 b/fuzz/corpus/packet_recv_server/8ecd7b33a9ad1fbc2aa1af912e69c9c806ab8760
new file mode 100644
index 0000000..971354e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8ecd7b33a9ad1fbc2aa1af912e69c9c806ab8760
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8ed50d6c416f254591fa982de323beddfe4f358f b/fuzz/corpus/packet_recv_server/8ed50d6c416f254591fa982de323beddfe4f358f
new file mode 100644
index 0000000..c4e81d7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8ed50d6c416f254591fa982de323beddfe4f358f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8f1e4b15f312247ed04aef70786551cde40de512 b/fuzz/corpus/packet_recv_server/8f1e4b15f312247ed04aef70786551cde40de512
new file mode 100644
index 0000000..788aedb
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8f1e4b15f312247ed04aef70786551cde40de512
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8f50e427649f0db37cc074d7a5d39222bf8b19e5 b/fuzz/corpus/packet_recv_server/8f50e427649f0db37cc074d7a5d39222bf8b19e5
new file mode 100644
index 0000000..8f0b636
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8f50e427649f0db37cc074d7a5d39222bf8b19e5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/8fd1623a74b7e677105f4bb5bb4ea533184a621a b/fuzz/corpus/packet_recv_server/8fd1623a74b7e677105f4bb5bb4ea533184a621a
new file mode 100644
index 0000000..d1d4d15
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/8fd1623a74b7e677105f4bb5bb4ea533184a621a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/901ac8d2ea412a42948ce8c7d3f75197c20a3453 b/fuzz/corpus/packet_recv_server/901ac8d2ea412a42948ce8c7d3f75197c20a3453
deleted file mode 100644
index 3daedcd..0000000
--- a/fuzz/corpus/packet_recv_server/901ac8d2ea412a42948ce8c7d3f75197c20a3453
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9049aab31056824bf1d4c7350a7c30b91e861f0d b/fuzz/corpus/packet_recv_server/9049aab31056824bf1d4c7350a7c30b91e861f0d
new file mode 100644
index 0000000..560bb59
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9049aab31056824bf1d4c7350a7c30b91e861f0d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/905612d4b75d7b4856996c31923d640bce228131 b/fuzz/corpus/packet_recv_server/905612d4b75d7b4856996c31923d640bce228131
deleted file mode 100644
index cf8ee0b..0000000
--- a/fuzz/corpus/packet_recv_server/905612d4b75d7b4856996c31923d640bce228131
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9086689a4807efcebedd4922fecb9630ad27db34 b/fuzz/corpus/packet_recv_server/9086689a4807efcebedd4922fecb9630ad27db34
new file mode 100644
index 0000000..29426a5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9086689a4807efcebedd4922fecb9630ad27db34
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9093f1635f4636f8f4ea5aef766e67d22f0dff48 b/fuzz/corpus/packet_recv_server/9093f1635f4636f8f4ea5aef766e67d22f0dff48
new file mode 100644
index 0000000..5c60d33
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9093f1635f4636f8f4ea5aef766e67d22f0dff48
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/90c0a9acd581fa8b7ced19449c30b16617fc4a9e b/fuzz/corpus/packet_recv_server/90c0a9acd581fa8b7ced19449c30b16617fc4a9e
deleted file mode 100644
index e61df46..0000000
--- a/fuzz/corpus/packet_recv_server/90c0a9acd581fa8b7ced19449c30b16617fc4a9e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/90c5d2b86a44e58855d13dc4843d292690ae9a8f b/fuzz/corpus/packet_recv_server/90c5d2b86a44e58855d13dc4843d292690ae9a8f
new file mode 100644
index 0000000..b767195
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/90c5d2b86a44e58855d13dc4843d292690ae9a8f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/90d02d23a3411df31c91b5ead2644c7c6332b6b3 b/fuzz/corpus/packet_recv_server/90d02d23a3411df31c91b5ead2644c7c6332b6b3
deleted file mode 100644
index c4978a7..0000000
--- a/fuzz/corpus/packet_recv_server/90d02d23a3411df31c91b5ead2644c7c6332b6b3
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9105bbf68b549c00a0c72f9fef481ad785c92004 b/fuzz/corpus/packet_recv_server/9105bbf68b549c00a0c72f9fef481ad785c92004
deleted file mode 100644
index 20fd41c..0000000
--- a/fuzz/corpus/packet_recv_server/9105bbf68b549c00a0c72f9fef481ad785c92004
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/91612716a93670dd667701b4dcd71bbd9cb48020 b/fuzz/corpus/packet_recv_server/91612716a93670dd667701b4dcd71bbd9cb48020
new file mode 100644
index 0000000..efcad71
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/91612716a93670dd667701b4dcd71bbd9cb48020
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/91641f164de7764068ee217df98acefa4db4332a b/fuzz/corpus/packet_recv_server/91641f164de7764068ee217df98acefa4db4332a
deleted file mode 100644
index eb7b525..0000000
--- a/fuzz/corpus/packet_recv_server/91641f164de7764068ee217df98acefa4db4332a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9174de4e1244c842d3a525f3b6e0ad4dec6a6bbf b/fuzz/corpus/packet_recv_server/9174de4e1244c842d3a525f3b6e0ad4dec6a6bbf
new file mode 100644
index 0000000..85bc08b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9174de4e1244c842d3a525f3b6e0ad4dec6a6bbf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/91895bda002ac1ab8d3a25202fb6d4cd611d678b b/fuzz/corpus/packet_recv_server/91895bda002ac1ab8d3a25202fb6d4cd611d678b
new file mode 100644
index 0000000..8645956
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/91895bda002ac1ab8d3a25202fb6d4cd611d678b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/91d56c07a9e9fb906f92843a947fc2c0cc647ede b/fuzz/corpus/packet_recv_server/91d56c07a9e9fb906f92843a947fc2c0cc647ede
deleted file mode 100644
index ac30653..0000000
--- a/fuzz/corpus/packet_recv_server/91d56c07a9e9fb906f92843a947fc2c0cc647ede
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/91e92555ce00dd2fc2a863c6f00ab36ecc2c676f b/fuzz/corpus/packet_recv_server/91e92555ce00dd2fc2a863c6f00ab36ecc2c676f
new file mode 100644
index 0000000..f697369
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/91e92555ce00dd2fc2a863c6f00ab36ecc2c676f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9201d4728d3abde60feaf3d1c8cc62eabb73677f b/fuzz/corpus/packet_recv_server/9201d4728d3abde60feaf3d1c8cc62eabb73677f
deleted file mode 100644
index 3ef7ea0..0000000
--- a/fuzz/corpus/packet_recv_server/9201d4728d3abde60feaf3d1c8cc62eabb73677f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/926719544b60c3de7ac0ace23107e9a38d172651 b/fuzz/corpus/packet_recv_server/926719544b60c3de7ac0ace23107e9a38d172651
new file mode 100644
index 0000000..c031c4c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/926719544b60c3de7ac0ace23107e9a38d172651
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9272241e05fada3514d0408dbb6a48b5ba694aae b/fuzz/corpus/packet_recv_server/9272241e05fada3514d0408dbb6a48b5ba694aae
new file mode 100644
index 0000000..fbf1a3b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9272241e05fada3514d0408dbb6a48b5ba694aae
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/92d0f8f9967751a626eb29cbd781f8560b9eba00 b/fuzz/corpus/packet_recv_server/92d0f8f9967751a626eb29cbd781f8560b9eba00
new file mode 100644
index 0000000..f923ab2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/92d0f8f9967751a626eb29cbd781f8560b9eba00
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9345f8c4ec1bc61c0dee5a3bd6c96e670e60f103 b/fuzz/corpus/packet_recv_server/9345f8c4ec1bc61c0dee5a3bd6c96e670e60f103
deleted file mode 100644
index a5a19cc..0000000
--- a/fuzz/corpus/packet_recv_server/9345f8c4ec1bc61c0dee5a3bd6c96e670e60f103
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/938505065c86a689df7b296d8106382f6f30fc18 b/fuzz/corpus/packet_recv_server/938505065c86a689df7b296d8106382f6f30fc18
new file mode 100644
index 0000000..5ed0bf3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/938505065c86a689df7b296d8106382f6f30fc18
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/93b3c89ac5563e506d174ccdd2885954b8c01d80 b/fuzz/corpus/packet_recv_server/93b3c89ac5563e506d174ccdd2885954b8c01d80
deleted file mode 100644
index ee5ea34..0000000
--- a/fuzz/corpus/packet_recv_server/93b3c89ac5563e506d174ccdd2885954b8c01d80
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9426ab68f1eeb1daaeac39c7243d4f7e6aaaa6fe b/fuzz/corpus/packet_recv_server/9426ab68f1eeb1daaeac39c7243d4f7e6aaaa6fe
deleted file mode 100644
index 43a536f..0000000
--- a/fuzz/corpus/packet_recv_server/9426ab68f1eeb1daaeac39c7243d4f7e6aaaa6fe
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9453b7968eee6b56f12a50f97469fee8b3765e3b b/fuzz/corpus/packet_recv_server/9453b7968eee6b56f12a50f97469fee8b3765e3b
new file mode 100644
index 0000000..5bf2757
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9453b7968eee6b56f12a50f97469fee8b3765e3b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/94792fa95a19a9279f91c30648c2414aeeb33549 b/fuzz/corpus/packet_recv_server/94792fa95a19a9279f91c30648c2414aeeb33549
deleted file mode 100644
index 4d70689..0000000
--- a/fuzz/corpus/packet_recv_server/94792fa95a19a9279f91c30648c2414aeeb33549
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/94c7f5c90b4e06d256051b0d9f3760720f42c6c5 b/fuzz/corpus/packet_recv_server/94c7f5c90b4e06d256051b0d9f3760720f42c6c5
new file mode 100644
index 0000000..d9a77c3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/94c7f5c90b4e06d256051b0d9f3760720f42c6c5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/94d07ad261d4f3683e95d087db9fefa9783edc70 b/fuzz/corpus/packet_recv_server/94d07ad261d4f3683e95d087db9fefa9783edc70
new file mode 100644
index 0000000..ae91bc7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/94d07ad261d4f3683e95d087db9fefa9783edc70
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9568c5e3001d844205fd53fb20feee93ac7e5847 b/fuzz/corpus/packet_recv_server/9568c5e3001d844205fd53fb20feee93ac7e5847
deleted file mode 100644
index f858de4..0000000
--- a/fuzz/corpus/packet_recv_server/9568c5e3001d844205fd53fb20feee93ac7e5847
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/95a1d087361c6d2555144da6a9af7537f651e011 b/fuzz/corpus/packet_recv_server/95a1d087361c6d2555144da6a9af7537f651e011
new file mode 100644
index 0000000..61ece91
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/95a1d087361c6d2555144da6a9af7537f651e011
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/95aa5e51304127431891d2a9d3d9830d1220276a b/fuzz/corpus/packet_recv_server/95aa5e51304127431891d2a9d3d9830d1220276a
new file mode 100644
index 0000000..82cd270
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/95aa5e51304127431891d2a9d3d9830d1220276a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/96247505d18e1eb832fdb156739b6d5ad71ae634 b/fuzz/corpus/packet_recv_server/96247505d18e1eb832fdb156739b6d5ad71ae634
new file mode 100644
index 0000000..6110c21
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/96247505d18e1eb832fdb156739b6d5ad71ae634
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/96a7d6ce91ee813fe6726f081bc79edebffe8712 b/fuzz/corpus/packet_recv_server/96a7d6ce91ee813fe6726f081bc79edebffe8712
new file mode 100644
index 0000000..9ff6fb7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/96a7d6ce91ee813fe6726f081bc79edebffe8712
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/972eef0973b8766f28cdce067b29d60d75b1e458 b/fuzz/corpus/packet_recv_server/972eef0973b8766f28cdce067b29d60d75b1e458
new file mode 100644
index 0000000..6513996
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/972eef0973b8766f28cdce067b29d60d75b1e458
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/972f8d7804b6b4758933d36f387ce7d310a6acb5 b/fuzz/corpus/packet_recv_server/972f8d7804b6b4758933d36f387ce7d310a6acb5
new file mode 100644
index 0000000..48da1a3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/972f8d7804b6b4758933d36f387ce7d310a6acb5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/97c90e317b305a7b508505b4fb7e8868b917bde3 b/fuzz/corpus/packet_recv_server/97c90e317b305a7b508505b4fb7e8868b917bde3
new file mode 100644
index 0000000..579c2ea
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/97c90e317b305a7b508505b4fb7e8868b917bde3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/97fe24277f0ee178cf7cf9fab6c0ecfd1ae832dc b/fuzz/corpus/packet_recv_server/97fe24277f0ee178cf7cf9fab6c0ecfd1ae832dc
deleted file mode 100644
index 6efdcad..0000000
--- a/fuzz/corpus/packet_recv_server/97fe24277f0ee178cf7cf9fab6c0ecfd1ae832dc
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/982735930a271a88fd882a227eabbe913fdb24a9 b/fuzz/corpus/packet_recv_server/982735930a271a88fd882a227eabbe913fdb24a9
new file mode 100644
index 0000000..0155e5c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/982735930a271a88fd882a227eabbe913fdb24a9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9830e94db4b98eea9ae2f520973a965da38b3f91 b/fuzz/corpus/packet_recv_server/9830e94db4b98eea9ae2f520973a965da38b3f91
new file mode 100644
index 0000000..e90dbcf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9830e94db4b98eea9ae2f520973a965da38b3f91
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/98721fe4b08fb83794965524b09dad10634d3915 b/fuzz/corpus/packet_recv_server/98721fe4b08fb83794965524b09dad10634d3915
new file mode 100644
index 0000000..b3d7033
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/98721fe4b08fb83794965524b09dad10634d3915
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/989cedd2e3b00aa3a6b40a142c752700fe1788f8 b/fuzz/corpus/packet_recv_server/989cedd2e3b00aa3a6b40a142c752700fe1788f8
new file mode 100644
index 0000000..a86c4ab
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/989cedd2e3b00aa3a6b40a142c752700fe1788f8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/98eb6ad8ea4961d03ab834d4e1bf2a82714cb82e b/fuzz/corpus/packet_recv_server/98eb6ad8ea4961d03ab834d4e1bf2a82714cb82e
deleted file mode 100644
index d2b02c9..0000000
--- a/fuzz/corpus/packet_recv_server/98eb6ad8ea4961d03ab834d4e1bf2a82714cb82e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/99acab69568f42b9a001ac5494422eb6e692d0bf b/fuzz/corpus/packet_recv_server/99acab69568f42b9a001ac5494422eb6e692d0bf
new file mode 100644
index 0000000..9047211
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/99acab69568f42b9a001ac5494422eb6e692d0bf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9a14d12a2916cbdda3f7a76e499d8a19adc386d1 b/fuzz/corpus/packet_recv_server/9a14d12a2916cbdda3f7a76e499d8a19adc386d1
new file mode 100644
index 0000000..a4aaf96
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9a14d12a2916cbdda3f7a76e499d8a19adc386d1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9a5b5f318c07838ec3acbf90a629c8c5ce4b042b b/fuzz/corpus/packet_recv_server/9a5b5f318c07838ec3acbf90a629c8c5ce4b042b
new file mode 100644
index 0000000..30e1ff0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9a5b5f318c07838ec3acbf90a629c8c5ce4b042b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9a6fed57291617283dc985bacc3ba3e1f953b8a3 b/fuzz/corpus/packet_recv_server/9a6fed57291617283dc985bacc3ba3e1f953b8a3
deleted file mode 100644
index 12a2519..0000000
--- a/fuzz/corpus/packet_recv_server/9a6fed57291617283dc985bacc3ba3e1f953b8a3
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9a8c321b0fe48ccc8c5499f08e9e15e81529a6be b/fuzz/corpus/packet_recv_server/9a8c321b0fe48ccc8c5499f08e9e15e81529a6be
new file mode 100644
index 0000000..890f3d5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9a8c321b0fe48ccc8c5499f08e9e15e81529a6be
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9aa8c9cfe7bfc44ebb4952ad118cc522a1113d98 b/fuzz/corpus/packet_recv_server/9aa8c9cfe7bfc44ebb4952ad118cc522a1113d98
new file mode 100644
index 0000000..045921e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9aa8c9cfe7bfc44ebb4952ad118cc522a1113d98
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9ae084248591ddbe3bd1b2191f30713babbc0039 b/fuzz/corpus/packet_recv_server/9ae084248591ddbe3bd1b2191f30713babbc0039
new file mode 100644
index 0000000..f12ecf3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9ae084248591ddbe3bd1b2191f30713babbc0039
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9af16ae37e6812353fdf086ab21ba1e72a6c0c62 b/fuzz/corpus/packet_recv_server/9af16ae37e6812353fdf086ab21ba1e72a6c0c62
deleted file mode 100644
index cc0dde8..0000000
--- a/fuzz/corpus/packet_recv_server/9af16ae37e6812353fdf086ab21ba1e72a6c0c62
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9b4434ad2c96a6d7570576b12008753639490350 b/fuzz/corpus/packet_recv_server/9b4434ad2c96a6d7570576b12008753639490350
deleted file mode 100644
index 71dade3..0000000
--- a/fuzz/corpus/packet_recv_server/9b4434ad2c96a6d7570576b12008753639490350
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9ba748764ea5b456f7b670455d5d7df89f22ecea b/fuzz/corpus/packet_recv_server/9ba748764ea5b456f7b670455d5d7df89f22ecea
new file mode 100644
index 0000000..eef943f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9ba748764ea5b456f7b670455d5d7df89f22ecea
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9c033edd67f0f92c6fb088b7b297e7089ba62adf b/fuzz/corpus/packet_recv_server/9c033edd67f0f92c6fb088b7b297e7089ba62adf
new file mode 100644
index 0000000..eb53182
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9c033edd67f0f92c6fb088b7b297e7089ba62adf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9c5196d8754957924d0a90e0b72dafa4382aa472 b/fuzz/corpus/packet_recv_server/9c5196d8754957924d0a90e0b72dafa4382aa472
new file mode 100644
index 0000000..1b98b81
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9c5196d8754957924d0a90e0b72dafa4382aa472
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9c566044c81285c95303d3a717aa3ddf8ea85486 b/fuzz/corpus/packet_recv_server/9c566044c81285c95303d3a717aa3ddf8ea85486
new file mode 100644
index 0000000..802ee3d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9c566044c81285c95303d3a717aa3ddf8ea85486
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9c68d68453cdbd3f094410f2124319009ee7fa8b b/fuzz/corpus/packet_recv_server/9c68d68453cdbd3f094410f2124319009ee7fa8b
deleted file mode 100644
index a124e94..0000000
--- a/fuzz/corpus/packet_recv_server/9c68d68453cdbd3f094410f2124319009ee7fa8b
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9d75b0acda499798130e5c4f5d9527e8ddf1547a b/fuzz/corpus/packet_recv_server/9d75b0acda499798130e5c4f5d9527e8ddf1547a
new file mode 100644
index 0000000..45242a3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9d75b0acda499798130e5c4f5d9527e8ddf1547a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9dbe7532d588b527bf67e78a3c9ccfa16396b964 b/fuzz/corpus/packet_recv_server/9dbe7532d588b527bf67e78a3c9ccfa16396b964
new file mode 100644
index 0000000..454ea25
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9dbe7532d588b527bf67e78a3c9ccfa16396b964
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9dde6a9bd3406796aa540556b931a4e603a428c4 b/fuzz/corpus/packet_recv_server/9dde6a9bd3406796aa540556b931a4e603a428c4
new file mode 100644
index 0000000..99ae3a9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9dde6a9bd3406796aa540556b931a4e603a428c4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9e3b54ac1d1d79bb3a310e415a8293e45cdf0837 b/fuzz/corpus/packet_recv_server/9e3b54ac1d1d79bb3a310e415a8293e45cdf0837
new file mode 100644
index 0000000..3c86d6c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9e3b54ac1d1d79bb3a310e415a8293e45cdf0837
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9e5513b380ccb1befd5a53f2cc5a4ba5d5a24ccd b/fuzz/corpus/packet_recv_server/9e5513b380ccb1befd5a53f2cc5a4ba5d5a24ccd
new file mode 100644
index 0000000..094e1f2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9e5513b380ccb1befd5a53f2cc5a4ba5d5a24ccd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9e90ca8d3474cfe50fa35ce3a3a2b955e6a31a6c b/fuzz/corpus/packet_recv_server/9e90ca8d3474cfe50fa35ce3a3a2b955e6a31a6c
deleted file mode 100644
index 3991ef5..0000000
--- a/fuzz/corpus/packet_recv_server/9e90ca8d3474cfe50fa35ce3a3a2b955e6a31a6c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9e988f79b574e594caf8aeaee455cc3af6672f85 b/fuzz/corpus/packet_recv_server/9e988f79b574e594caf8aeaee455cc3af6672f85
new file mode 100644
index 0000000..8f3dbef
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9e988f79b574e594caf8aeaee455cc3af6672f85
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9eb2b15f64fb89990aa027688f0630a641b1ee93 b/fuzz/corpus/packet_recv_server/9eb2b15f64fb89990aa027688f0630a641b1ee93
new file mode 100644
index 0000000..33b20d5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9eb2b15f64fb89990aa027688f0630a641b1ee93
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9eff3c234a8b8da00fa49ff3fefb16c3312b058d b/fuzz/corpus/packet_recv_server/9eff3c234a8b8da00fa49ff3fefb16c3312b058d
new file mode 100644
index 0000000..1069bf9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9eff3c234a8b8da00fa49ff3fefb16c3312b058d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9fee20a0e63480ce8805dcc2e7994b0d389b1706 b/fuzz/corpus/packet_recv_server/9fee20a0e63480ce8805dcc2e7994b0d389b1706
new file mode 100644
index 0000000..58b5c62
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9fee20a0e63480ce8805dcc2e7994b0d389b1706
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/9ff1e30f4ee58c125481ac13a84dcf8e36f14af9 b/fuzz/corpus/packet_recv_server/9ff1e30f4ee58c125481ac13a84dcf8e36f14af9
new file mode 100644
index 0000000..c4907f0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/9ff1e30f4ee58c125481ac13a84dcf8e36f14af9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a01e59cd46cca30f6336ad919bc2d56ddbf4dbf7 b/fuzz/corpus/packet_recv_server/a01e59cd46cca30f6336ad919bc2d56ddbf4dbf7
new file mode 100644
index 0000000..4fc4fd4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a01e59cd46cca30f6336ad919bc2d56ddbf4dbf7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a07951f516e98109ad188ecb89364e9d0c98f435 b/fuzz/corpus/packet_recv_server/a07951f516e98109ad188ecb89364e9d0c98f435
new file mode 100644
index 0000000..8ee85d0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a07951f516e98109ad188ecb89364e9d0c98f435
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a08e4b77c2863a50cbb386c24a389cc68d398ac0 b/fuzz/corpus/packet_recv_server/a08e4b77c2863a50cbb386c24a389cc68d398ac0
deleted file mode 100644
index 8754e23..0000000
--- a/fuzz/corpus/packet_recv_server/a08e4b77c2863a50cbb386c24a389cc68d398ac0
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a0bfca41bfd8db8c038037c4ea436acce355c69f b/fuzz/corpus/packet_recv_server/a0bfca41bfd8db8c038037c4ea436acce355c69f
new file mode 100644
index 0000000..5b2b80f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a0bfca41bfd8db8c038037c4ea436acce355c69f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a0e108c5cf94de28e5d239a21875a21a59df37b9 b/fuzz/corpus/packet_recv_server/a0e108c5cf94de28e5d239a21875a21a59df37b9
deleted file mode 100644
index 432ad0b..0000000
--- a/fuzz/corpus/packet_recv_server/a0e108c5cf94de28e5d239a21875a21a59df37b9
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a0f6779938ea7f89bca905264b4aee6bc495ac38 b/fuzz/corpus/packet_recv_server/a0f6779938ea7f89bca905264b4aee6bc495ac38
new file mode 100644
index 0000000..21ad009
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a0f6779938ea7f89bca905264b4aee6bc495ac38
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a136a47b6eea7bdf760b45c5a7b6c440f898fa90 b/fuzz/corpus/packet_recv_server/a136a47b6eea7bdf760b45c5a7b6c440f898fa90
deleted file mode 100644
index 6c374a6..0000000
--- a/fuzz/corpus/packet_recv_server/a136a47b6eea7bdf760b45c5a7b6c440f898fa90
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a23416f6d0645b6872e200f0bb6bc97c42d99bee b/fuzz/corpus/packet_recv_server/a23416f6d0645b6872e200f0bb6bc97c42d99bee
new file mode 100644
index 0000000..4f88614
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a23416f6d0645b6872e200f0bb6bc97c42d99bee
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a23d05d3549859266f175664b158c718be9784c3 b/fuzz/corpus/packet_recv_server/a23d05d3549859266f175664b158c718be9784c3
deleted file mode 100644
index a484068..0000000
--- a/fuzz/corpus/packet_recv_server/a23d05d3549859266f175664b158c718be9784c3
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a2aed5c8fe6c6fca17e21495231113f1b5698939 b/fuzz/corpus/packet_recv_server/a2aed5c8fe6c6fca17e21495231113f1b5698939
new file mode 100644
index 0000000..779c319
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a2aed5c8fe6c6fca17e21495231113f1b5698939
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a2f9a1e57808f9a089a97bb48b0c8d93775d09a5 b/fuzz/corpus/packet_recv_server/a2f9a1e57808f9a089a97bb48b0c8d93775d09a5
new file mode 100644
index 0000000..c045076
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a2f9a1e57808f9a089a97bb48b0c8d93775d09a5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a322545963800630636a75e5f8084c586b54aa8d b/fuzz/corpus/packet_recv_server/a322545963800630636a75e5f8084c586b54aa8d
new file mode 100644
index 0000000..61820f9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a322545963800630636a75e5f8084c586b54aa8d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a3237854e97058cd2e83af20dd1cdb87b7718eac b/fuzz/corpus/packet_recv_server/a3237854e97058cd2e83af20dd1cdb87b7718eac
new file mode 100644
index 0000000..61e2cb1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a3237854e97058cd2e83af20dd1cdb87b7718eac
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a32c42ea7be625c612271890909f6c246433cac3 b/fuzz/corpus/packet_recv_server/a32c42ea7be625c612271890909f6c246433cac3
new file mode 100644
index 0000000..29c0eb8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a32c42ea7be625c612271890909f6c246433cac3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a33c9e2c61785a30edc551a2591b77ca3a1534e7 b/fuzz/corpus/packet_recv_server/a33c9e2c61785a30edc551a2591b77ca3a1534e7
new file mode 100644
index 0000000..0590d8a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a33c9e2c61785a30edc551a2591b77ca3a1534e7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a465f9efeebf0f746160d98feb286144f8382083 b/fuzz/corpus/packet_recv_server/a465f9efeebf0f746160d98feb286144f8382083
deleted file mode 100644
index 2e94565..0000000
--- a/fuzz/corpus/packet_recv_server/a465f9efeebf0f746160d98feb286144f8382083
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a4c0a81358e111f37df7eba581f104cae57cd23d b/fuzz/corpus/packet_recv_server/a4c0a81358e111f37df7eba581f104cae57cd23d
deleted file mode 100644
index 0e99e4c..0000000
--- a/fuzz/corpus/packet_recv_server/a4c0a81358e111f37df7eba581f104cae57cd23d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a4c5a9f2058b6a1bddff17faf1d72e9c1336c314 b/fuzz/corpus/packet_recv_server/a4c5a9f2058b6a1bddff17faf1d72e9c1336c314
new file mode 100644
index 0000000..1b3d77e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a4c5a9f2058b6a1bddff17faf1d72e9c1336c314
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a4c6923b8a03f1cf340d91ac4e23a45c74d6ad08 b/fuzz/corpus/packet_recv_server/a4c6923b8a03f1cf340d91ac4e23a45c74d6ad08
new file mode 100644
index 0000000..1f84b83
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a4c6923b8a03f1cf340d91ac4e23a45c74d6ad08
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a4dbb2f0b59e1a6338594cfcdff57b5e03210e1a b/fuzz/corpus/packet_recv_server/a4dbb2f0b59e1a6338594cfcdff57b5e03210e1a
new file mode 100644
index 0000000..db91aaa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a4dbb2f0b59e1a6338594cfcdff57b5e03210e1a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a4f5a5019dd6aa6bfe610f63cae953295d403c9a b/fuzz/corpus/packet_recv_server/a4f5a5019dd6aa6bfe610f63cae953295d403c9a
deleted file mode 100644
index b7342ac..0000000
--- a/fuzz/corpus/packet_recv_server/a4f5a5019dd6aa6bfe610f63cae953295d403c9a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a50c0675dafcc8276e2966446e5c5a3a4720e3f7 b/fuzz/corpus/packet_recv_server/a50c0675dafcc8276e2966446e5c5a3a4720e3f7
deleted file mode 100644
index 6c7db54..0000000
--- a/fuzz/corpus/packet_recv_server/a50c0675dafcc8276e2966446e5c5a3a4720e3f7
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a51f34b46069cf3bab23b1488e782c104a2e2024 b/fuzz/corpus/packet_recv_server/a51f34b46069cf3bab23b1488e782c104a2e2024
new file mode 100644
index 0000000..b4d9259
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a51f34b46069cf3bab23b1488e782c104a2e2024
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a52eb5bc9e9ef3fc46a78a1a61282b68d5ce5817 b/fuzz/corpus/packet_recv_server/a52eb5bc9e9ef3fc46a78a1a61282b68d5ce5817
deleted file mode 100644
index e3ec2ab..0000000
--- a/fuzz/corpus/packet_recv_server/a52eb5bc9e9ef3fc46a78a1a61282b68d5ce5817
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a5578ba1abda796b1915f7f72c733364c17568c1 b/fuzz/corpus/packet_recv_server/a5578ba1abda796b1915f7f72c733364c17568c1
new file mode 100644
index 0000000..c32ee8d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a5578ba1abda796b1915f7f72c733364c17568c1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a5859c226b64f69641487336c5bcb1e2f3bc1c60 b/fuzz/corpus/packet_recv_server/a5859c226b64f69641487336c5bcb1e2f3bc1c60
deleted file mode 100644
index 9509e43..0000000
--- a/fuzz/corpus/packet_recv_server/a5859c226b64f69641487336c5bcb1e2f3bc1c60
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a58ad90785ea2f84f51a93aba2a4e6d6f9487610 b/fuzz/corpus/packet_recv_server/a58ad90785ea2f84f51a93aba2a4e6d6f9487610
new file mode 100644
index 0000000..58ea897
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a58ad90785ea2f84f51a93aba2a4e6d6f9487610
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a5a6526f0a5690676c3a1ce2f537532343c31128 b/fuzz/corpus/packet_recv_server/a5a6526f0a5690676c3a1ce2f537532343c31128
deleted file mode 100644
index f0f5509..0000000
--- a/fuzz/corpus/packet_recv_server/a5a6526f0a5690676c3a1ce2f537532343c31128
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a5d56444d392b5ad06219872fbcd8cdc2c1170b4 b/fuzz/corpus/packet_recv_server/a5d56444d392b5ad06219872fbcd8cdc2c1170b4
new file mode 100644
index 0000000..9ab35a0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a5d56444d392b5ad06219872fbcd8cdc2c1170b4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a5df6f77c8c758641489cdc28e598184bb441b97 b/fuzz/corpus/packet_recv_server/a5df6f77c8c758641489cdc28e598184bb441b97
new file mode 100644
index 0000000..904b3cb
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a5df6f77c8c758641489cdc28e598184bb441b97
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a5f697968b734c4cd2c898d049a681960b6f7ce5 b/fuzz/corpus/packet_recv_server/a5f697968b734c4cd2c898d049a681960b6f7ce5
deleted file mode 100644
index 8f56653..0000000
--- a/fuzz/corpus/packet_recv_server/a5f697968b734c4cd2c898d049a681960b6f7ce5
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a643885583858b65956d4c079e9729aa0badc2eb b/fuzz/corpus/packet_recv_server/a643885583858b65956d4c079e9729aa0badc2eb
new file mode 100644
index 0000000..659e649
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a643885583858b65956d4c079e9729aa0badc2eb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a6444d4fe95abab2050e9cb1d032d04a9feb65c0 b/fuzz/corpus/packet_recv_server/a6444d4fe95abab2050e9cb1d032d04a9feb65c0
new file mode 100644
index 0000000..9f516db
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a6444d4fe95abab2050e9cb1d032d04a9feb65c0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a65699c36349e4a348ac3676b2cd40ab3831d7bd b/fuzz/corpus/packet_recv_server/a65699c36349e4a348ac3676b2cd40ab3831d7bd
new file mode 100644
index 0000000..9520d59
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a65699c36349e4a348ac3676b2cd40ab3831d7bd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a66a37938fcd970d608c69e8043f47e1f6afdd9c b/fuzz/corpus/packet_recv_server/a66a37938fcd970d608c69e8043f47e1f6afdd9c
deleted file mode 100644
index a22056b..0000000
--- a/fuzz/corpus/packet_recv_server/a66a37938fcd970d608c69e8043f47e1f6afdd9c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a709fa249acf2c6be2b56aa7d79f1eed1d156e6b b/fuzz/corpus/packet_recv_server/a709fa249acf2c6be2b56aa7d79f1eed1d156e6b
new file mode 100644
index 0000000..00f6856
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a709fa249acf2c6be2b56aa7d79f1eed1d156e6b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a70dc849454e23d29c75c1eecb40619057ee1f59 b/fuzz/corpus/packet_recv_server/a70dc849454e23d29c75c1eecb40619057ee1f59
new file mode 100644
index 0000000..7f88e03
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a70dc849454e23d29c75c1eecb40619057ee1f59
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a784034aa69ad69779fdfb7542b8f80eac86135f b/fuzz/corpus/packet_recv_server/a784034aa69ad69779fdfb7542b8f80eac86135f
new file mode 100644
index 0000000..9b60cc8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a784034aa69ad69779fdfb7542b8f80eac86135f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a7bf0d3f57d444bf94a06a34e808dfe609142da2 b/fuzz/corpus/packet_recv_server/a7bf0d3f57d444bf94a06a34e808dfe609142da2
new file mode 100644
index 0000000..fccb709
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a7bf0d3f57d444bf94a06a34e808dfe609142da2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a81a299a478eb722f46da55bd87bfae195060353 b/fuzz/corpus/packet_recv_server/a81a299a478eb722f46da55bd87bfae195060353
deleted file mode 100644
index 6330790..0000000
--- a/fuzz/corpus/packet_recv_server/a81a299a478eb722f46da55bd87bfae195060353
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a879fe77c01768ff156cf7e185df2a25ee8ef909 b/fuzz/corpus/packet_recv_server/a879fe77c01768ff156cf7e185df2a25ee8ef909
deleted file mode 100644
index 5e33857..0000000
--- a/fuzz/corpus/packet_recv_server/a879fe77c01768ff156cf7e185df2a25ee8ef909
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a8c48cda4b2ea0ecc178a8a0aebea8c8daf6de0f b/fuzz/corpus/packet_recv_server/a8c48cda4b2ea0ecc178a8a0aebea8c8daf6de0f
deleted file mode 100644
index dd475cc..0000000
--- a/fuzz/corpus/packet_recv_server/a8c48cda4b2ea0ecc178a8a0aebea8c8daf6de0f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a8d721c824fac38e3217ad052e2095e46ff60d8c b/fuzz/corpus/packet_recv_server/a8d721c824fac38e3217ad052e2095e46ff60d8c
deleted file mode 100644
index 77e3ec9..0000000
--- a/fuzz/corpus/packet_recv_server/a8d721c824fac38e3217ad052e2095e46ff60d8c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a9276378040d78d36fca6d28ad1a986f4c012448 b/fuzz/corpus/packet_recv_server/a9276378040d78d36fca6d28ad1a986f4c012448
new file mode 100644
index 0000000..eee2155
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a9276378040d78d36fca6d28ad1a986f4c012448
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a9315b65f60e43a4dd18b3d05fd528bbefd764cd b/fuzz/corpus/packet_recv_server/a9315b65f60e43a4dd18b3d05fd528bbefd764cd
new file mode 100644
index 0000000..871e359
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a9315b65f60e43a4dd18b3d05fd528bbefd764cd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a94ee56fad58b1f6960f1e343f9382569e2bbc95 b/fuzz/corpus/packet_recv_server/a94ee56fad58b1f6960f1e343f9382569e2bbc95
new file mode 100644
index 0000000..3b16b2f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a94ee56fad58b1f6960f1e343f9382569e2bbc95
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a9545f76382f741a70b0d459e0e84d2598dbd915 b/fuzz/corpus/packet_recv_server/a9545f76382f741a70b0d459e0e84d2598dbd915
deleted file mode 100644
index 43a57d9..0000000
--- a/fuzz/corpus/packet_recv_server/a9545f76382f741a70b0d459e0e84d2598dbd915
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a96546286ac443c5aa705f8184e55c2119cbb627 b/fuzz/corpus/packet_recv_server/a96546286ac443c5aa705f8184e55c2119cbb627
deleted file mode 100644
index 3c75c60..0000000
--- a/fuzz/corpus/packet_recv_server/a96546286ac443c5aa705f8184e55c2119cbb627
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a97ce1310ea83fd0de7aaf4fa5e18ecb76e53143 b/fuzz/corpus/packet_recv_server/a97ce1310ea83fd0de7aaf4fa5e18ecb76e53143
new file mode 100644
index 0000000..06baa8b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a97ce1310ea83fd0de7aaf4fa5e18ecb76e53143
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a9a9dc1933be1ac1bb2cc02fde054e53feafa6e2 b/fuzz/corpus/packet_recv_server/a9a9dc1933be1ac1bb2cc02fde054e53feafa6e2
new file mode 100644
index 0000000..3f913e4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a9a9dc1933be1ac1bb2cc02fde054e53feafa6e2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/a9dc5a17fd90a29bad997baf8f9829f3199345e8 b/fuzz/corpus/packet_recv_server/a9dc5a17fd90a29bad997baf8f9829f3199345e8
new file mode 100644
index 0000000..ac0c1c9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/a9dc5a17fd90a29bad997baf8f9829f3199345e8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/aa262476e258f2b720382618bd9e0acf10dffdda b/fuzz/corpus/packet_recv_server/aa262476e258f2b720382618bd9e0acf10dffdda
deleted file mode 100644
index 6edff68..0000000
--- a/fuzz/corpus/packet_recv_server/aa262476e258f2b720382618bd9e0acf10dffdda
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/aa921392065710187d725a9851077b59841b9768 b/fuzz/corpus/packet_recv_server/aa921392065710187d725a9851077b59841b9768
new file mode 100644
index 0000000..53719c5
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/aa921392065710187d725a9851077b59841b9768
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/aaf3cff93f7a25199a11885b6e5f098468d76676 b/fuzz/corpus/packet_recv_server/aaf3cff93f7a25199a11885b6e5f098468d76676
new file mode 100644
index 0000000..2155bcd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/aaf3cff93f7a25199a11885b6e5f098468d76676
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/aafc59e95bd4163fb70277abf006fb0614387f6d b/fuzz/corpus/packet_recv_server/aafc59e95bd4163fb70277abf006fb0614387f6d
deleted file mode 100644
index 9681346..0000000
--- a/fuzz/corpus/packet_recv_server/aafc59e95bd4163fb70277abf006fb0614387f6d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/aba35426de87a39f9f7c1d7c95bb02f8590819b1 b/fuzz/corpus/packet_recv_server/aba35426de87a39f9f7c1d7c95bb02f8590819b1
new file mode 100644
index 0000000..eaa8039
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/aba35426de87a39f9f7c1d7c95bb02f8590819b1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/aba88e511e34365fb257edb45fc2f8d91aa6528f b/fuzz/corpus/packet_recv_server/aba88e511e34365fb257edb45fc2f8d91aa6528f
new file mode 100644
index 0000000..573a270
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/aba88e511e34365fb257edb45fc2f8d91aa6528f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/abe2581057fafe90b7d8eeae8e8f3fbbd6f1a6bb b/fuzz/corpus/packet_recv_server/abe2581057fafe90b7d8eeae8e8f3fbbd6f1a6bb
new file mode 100644
index 0000000..abd30c4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/abe2581057fafe90b7d8eeae8e8f3fbbd6f1a6bb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ac8cc434d23274c9ed92c5b415118d8143fc893a b/fuzz/corpus/packet_recv_server/ac8cc434d23274c9ed92c5b415118d8143fc893a
deleted file mode 100644
index d33c868..0000000
--- a/fuzz/corpus/packet_recv_server/ac8cc434d23274c9ed92c5b415118d8143fc893a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/acd94c3700bd57b26db5e8e42ec0d5d230f76453 b/fuzz/corpus/packet_recv_server/acd94c3700bd57b26db5e8e42ec0d5d230f76453
new file mode 100644
index 0000000..b2f24f3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/acd94c3700bd57b26db5e8e42ec0d5d230f76453
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/acf0a1444aa952d5d1d4d93e527b4d99dedb6ae4 b/fuzz/corpus/packet_recv_server/acf0a1444aa952d5d1d4d93e527b4d99dedb6ae4
new file mode 100644
index 0000000..4d98fce
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/acf0a1444aa952d5d1d4d93e527b4d99dedb6ae4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/acfc44ff5d0c9631aac4b227a4262f7e2f9c0897 b/fuzz/corpus/packet_recv_server/acfc44ff5d0c9631aac4b227a4262f7e2f9c0897
deleted file mode 100644
index 73c3ab9..0000000
--- a/fuzz/corpus/packet_recv_server/acfc44ff5d0c9631aac4b227a4262f7e2f9c0897
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/acfeb1f703288370062c5c980d6b3aa69b92e8f0 b/fuzz/corpus/packet_recv_server/acfeb1f703288370062c5c980d6b3aa69b92e8f0
new file mode 100644
index 0000000..f8021d2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/acfeb1f703288370062c5c980d6b3aa69b92e8f0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ad19aa9c61286595f87f5842a0bc8a99da3daa6c b/fuzz/corpus/packet_recv_server/ad19aa9c61286595f87f5842a0bc8a99da3daa6c
new file mode 100644
index 0000000..a1df91a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ad19aa9c61286595f87f5842a0bc8a99da3daa6c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ad267e2336d62bb768b141b4b890efa77b30259c b/fuzz/corpus/packet_recv_server/ad267e2336d62bb768b141b4b890efa77b30259c
deleted file mode 100644
index 8a5cb04..0000000
--- a/fuzz/corpus/packet_recv_server/ad267e2336d62bb768b141b4b890efa77b30259c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ad552d3cdc6414b3adc4cb884ac5133cbfc25d49 b/fuzz/corpus/packet_recv_server/ad552d3cdc6414b3adc4cb884ac5133cbfc25d49
new file mode 100644
index 0000000..1aa85cf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ad552d3cdc6414b3adc4cb884ac5133cbfc25d49
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/adaa6c05bd040fab096b8bd28fc68d2387929593 b/fuzz/corpus/packet_recv_server/adaa6c05bd040fab096b8bd28fc68d2387929593
deleted file mode 100644
index 0fd0216..0000000
--- a/fuzz/corpus/packet_recv_server/adaa6c05bd040fab096b8bd28fc68d2387929593
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ae2f567f4ce5a6a19c454c16e7e5cb4053b55877 b/fuzz/corpus/packet_recv_server/ae2f567f4ce5a6a19c454c16e7e5cb4053b55877
deleted file mode 100644
index 0b497de..0000000
--- a/fuzz/corpus/packet_recv_server/ae2f567f4ce5a6a19c454c16e7e5cb4053b55877
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ae32f33bc72b5c6c567ed7162f7810e82cfb146d b/fuzz/corpus/packet_recv_server/ae32f33bc72b5c6c567ed7162f7810e82cfb146d
new file mode 100644
index 0000000..b03a80c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ae32f33bc72b5c6c567ed7162f7810e82cfb146d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ae4b167d010a9dadbdb9d296d65fc9ab5dab155c b/fuzz/corpus/packet_recv_server/ae4b167d010a9dadbdb9d296d65fc9ab5dab155c
new file mode 100644
index 0000000..0bc39cd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ae4b167d010a9dadbdb9d296d65fc9ab5dab155c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ae5e16785229a1e23270c86951a9f1cc22318f00 b/fuzz/corpus/packet_recv_server/ae5e16785229a1e23270c86951a9f1cc22318f00
new file mode 100644
index 0000000..d509ead
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ae5e16785229a1e23270c86951a9f1cc22318f00
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ae61f5527661a08f9add0d160686d2e8501634ad b/fuzz/corpus/packet_recv_server/ae61f5527661a08f9add0d160686d2e8501634ad
deleted file mode 100644
index 1854eaa..0000000
--- a/fuzz/corpus/packet_recv_server/ae61f5527661a08f9add0d160686d2e8501634ad
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/aebae8c52f0a8ad8c42c95c086bfe3c8f869b3e5 b/fuzz/corpus/packet_recv_server/aebae8c52f0a8ad8c42c95c086bfe3c8f869b3e5
new file mode 100644
index 0000000..779731a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/aebae8c52f0a8ad8c42c95c086bfe3c8f869b3e5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/aed580bcaf4ab50a756f4098cf004600d5305728 b/fuzz/corpus/packet_recv_server/aed580bcaf4ab50a756f4098cf004600d5305728
deleted file mode 100644
index 151762a..0000000
--- a/fuzz/corpus/packet_recv_server/aed580bcaf4ab50a756f4098cf004600d5305728
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/afa1f7baa59e0be6fa2a1bd7d75ce8be0c1f068f b/fuzz/corpus/packet_recv_server/afa1f7baa59e0be6fa2a1bd7d75ce8be0c1f068f
new file mode 100644
index 0000000..ef2705e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/afa1f7baa59e0be6fa2a1bd7d75ce8be0c1f068f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b04cb571bed27d5854fc685a8a31da27434a17db b/fuzz/corpus/packet_recv_server/b04cb571bed27d5854fc685a8a31da27434a17db
new file mode 100644
index 0000000..a0cfa88
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b04cb571bed27d5854fc685a8a31da27434a17db
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b0a7dd742cd4ff2a12f806b05bc04fcdacf33d07 b/fuzz/corpus/packet_recv_server/b0a7dd742cd4ff2a12f806b05bc04fcdacf33d07
new file mode 100644
index 0000000..acc2f0d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b0a7dd742cd4ff2a12f806b05bc04fcdacf33d07
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b0e40b990814fc0b07f34e17689e527357cd547a b/fuzz/corpus/packet_recv_server/b0e40b990814fc0b07f34e17689e527357cd547a
deleted file mode 100644
index 3e31f13..0000000
--- a/fuzz/corpus/packet_recv_server/b0e40b990814fc0b07f34e17689e527357cd547a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b1142897dacb64c94148b2bf1e7e0339768a1f4d b/fuzz/corpus/packet_recv_server/b1142897dacb64c94148b2bf1e7e0339768a1f4d
new file mode 100644
index 0000000..675b9a3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b1142897dacb64c94148b2bf1e7e0339768a1f4d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b116373f5e9f5f5c3b2b2cbbdcfcaa84da0ec1d7 b/fuzz/corpus/packet_recv_server/b116373f5e9f5f5c3b2b2cbbdcfcaa84da0ec1d7
new file mode 100644
index 0000000..960cb59
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b116373f5e9f5f5c3b2b2cbbdcfcaa84da0ec1d7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b1613e415a9a49eb0dfeaee4b66655d5630e8ce0 b/fuzz/corpus/packet_recv_server/b1613e415a9a49eb0dfeaee4b66655d5630e8ce0
new file mode 100644
index 0000000..2898f49
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b1613e415a9a49eb0dfeaee4b66655d5630e8ce0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b1c71836709af3d9201efd4ebdecdbe32a17d79a b/fuzz/corpus/packet_recv_server/b1c71836709af3d9201efd4ebdecdbe32a17d79a
new file mode 100644
index 0000000..1142148
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b1c71836709af3d9201efd4ebdecdbe32a17d79a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b201cdb9a2c0364916f6840033f6a1d5daf40722 b/fuzz/corpus/packet_recv_server/b201cdb9a2c0364916f6840033f6a1d5daf40722
new file mode 100644
index 0000000..3205012
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b201cdb9a2c0364916f6840033f6a1d5daf40722
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b21206ef8692c9d940ec2ff7a25a86bf8364d736 b/fuzz/corpus/packet_recv_server/b21206ef8692c9d940ec2ff7a25a86bf8364d736
deleted file mode 100644
index 6d29769..0000000
--- a/fuzz/corpus/packet_recv_server/b21206ef8692c9d940ec2ff7a25a86bf8364d736
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b231eca6e702fa198a10e92902385eb7dc02a552 b/fuzz/corpus/packet_recv_server/b231eca6e702fa198a10e92902385eb7dc02a552
new file mode 100644
index 0000000..0b6b1d2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b231eca6e702fa198a10e92902385eb7dc02a552
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b24142d86c991c026e7244728b6ac833704e303c b/fuzz/corpus/packet_recv_server/b24142d86c991c026e7244728b6ac833704e303c
new file mode 100644
index 0000000..c70f4b8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b24142d86c991c026e7244728b6ac833704e303c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b2532ad94f2275fe927c387a1148fdc54ac9a288 b/fuzz/corpus/packet_recv_server/b2532ad94f2275fe927c387a1148fdc54ac9a288
new file mode 100644
index 0000000..533ca9c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b2532ad94f2275fe927c387a1148fdc54ac9a288
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b259d2099877d7ba0c7eb8ce2e58afb2ccd06bbf b/fuzz/corpus/packet_recv_server/b259d2099877d7ba0c7eb8ce2e58afb2ccd06bbf
deleted file mode 100644
index c7e398b..0000000
--- a/fuzz/corpus/packet_recv_server/b259d2099877d7ba0c7eb8ce2e58afb2ccd06bbf
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b2981a11d7d92ce4c18c9fe6706665c5f6b858a4 b/fuzz/corpus/packet_recv_server/b2981a11d7d92ce4c18c9fe6706665c5f6b858a4
deleted file mode 100644
index 6d24f79..0000000
--- a/fuzz/corpus/packet_recv_server/b2981a11d7d92ce4c18c9fe6706665c5f6b858a4
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b31877bf83d1b3bff6970022bc62ffbb28d0dbc3 b/fuzz/corpus/packet_recv_server/b31877bf83d1b3bff6970022bc62ffbb28d0dbc3
new file mode 100644
index 0000000..f4a6c74
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b31877bf83d1b3bff6970022bc62ffbb28d0dbc3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b323e648760bb268a61b3046cd25e4f81fd2fc82 b/fuzz/corpus/packet_recv_server/b323e648760bb268a61b3046cd25e4f81fd2fc82
new file mode 100644
index 0000000..8271c43
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b323e648760bb268a61b3046cd25e4f81fd2fc82
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b341b80ad1a41867ea32dd9074db12f90b9363a4 b/fuzz/corpus/packet_recv_server/b341b80ad1a41867ea32dd9074db12f90b9363a4
new file mode 100644
index 0000000..01f8565
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b341b80ad1a41867ea32dd9074db12f90b9363a4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b34f3e7861d9fc48e349d55057e506da82fffb0a b/fuzz/corpus/packet_recv_server/b34f3e7861d9fc48e349d55057e506da82fffb0a
new file mode 100644
index 0000000..386c102
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b34f3e7861d9fc48e349d55057e506da82fffb0a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b35ce5ede02269a6e6f5921949298719bdf1f6f2 b/fuzz/corpus/packet_recv_server/b35ce5ede02269a6e6f5921949298719bdf1f6f2
new file mode 100644
index 0000000..257c8b9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b35ce5ede02269a6e6f5921949298719bdf1f6f2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b3e41ece839c4b82a2814e31395e2168ba42ff0c b/fuzz/corpus/packet_recv_server/b3e41ece839c4b82a2814e31395e2168ba42ff0c
new file mode 100644
index 0000000..7e70927
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b3e41ece839c4b82a2814e31395e2168ba42ff0c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b484e56997e6cbcaea44b5d8c8ca434f7959de64 b/fuzz/corpus/packet_recv_server/b484e56997e6cbcaea44b5d8c8ca434f7959de64
new file mode 100644
index 0000000..271e22d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b484e56997e6cbcaea44b5d8c8ca434f7959de64
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b493b16558c9f8a49d4a25e0beb3d15a547be218 b/fuzz/corpus/packet_recv_server/b493b16558c9f8a49d4a25e0beb3d15a547be218
new file mode 100644
index 0000000..4ef4709
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b493b16558c9f8a49d4a25e0beb3d15a547be218
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b4e8125eb1543a577d86c7df7bcea3e597fa518d b/fuzz/corpus/packet_recv_server/b4e8125eb1543a577d86c7df7bcea3e597fa518d
deleted file mode 100644
index 916419b..0000000
--- a/fuzz/corpus/packet_recv_server/b4e8125eb1543a577d86c7df7bcea3e597fa518d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b5c1b0eef8061beee43f958e66373020b113992c b/fuzz/corpus/packet_recv_server/b5c1b0eef8061beee43f958e66373020b113992c
deleted file mode 100644
index e9169f2..0000000
--- a/fuzz/corpus/packet_recv_server/b5c1b0eef8061beee43f958e66373020b113992c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b5c5024ba25d0e3ec74189c3b610dee90d2a9cdc b/fuzz/corpus/packet_recv_server/b5c5024ba25d0e3ec74189c3b610dee90d2a9cdc
new file mode 100644
index 0000000..0fe2207
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b5c5024ba25d0e3ec74189c3b610dee90d2a9cdc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b5c50507263b33c547a671ab03215931c35255b5 b/fuzz/corpus/packet_recv_server/b5c50507263b33c547a671ab03215931c35255b5
new file mode 100644
index 0000000..7502a6e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b5c50507263b33c547a671ab03215931c35255b5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b6134c49d065b40de64fbe790fcb2f075d8cc639 b/fuzz/corpus/packet_recv_server/b6134c49d065b40de64fbe790fcb2f075d8cc639
new file mode 100644
index 0000000..5a7f0c2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b6134c49d065b40de64fbe790fcb2f075d8cc639
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b618187387d9643de4d3988bdb5b929438765cdb b/fuzz/corpus/packet_recv_server/b618187387d9643de4d3988bdb5b929438765cdb
new file mode 100644
index 0000000..58c2c4f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b618187387d9643de4d3988bdb5b929438765cdb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b68c4a92453a2dd33941883d452d6d4fe1aa8a9f b/fuzz/corpus/packet_recv_server/b68c4a92453a2dd33941883d452d6d4fe1aa8a9f
new file mode 100644
index 0000000..db8d90b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b68c4a92453a2dd33941883d452d6d4fe1aa8a9f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b6b569cce1519ea01438c9d004da07e4fa80cf3a b/fuzz/corpus/packet_recv_server/b6b569cce1519ea01438c9d004da07e4fa80cf3a
new file mode 100644
index 0000000..8af03fe
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b6b569cce1519ea01438c9d004da07e4fa80cf3a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b6c773e9ea0cfb95ecd413b24e1cf043ea22b5a4 b/fuzz/corpus/packet_recv_server/b6c773e9ea0cfb95ecd413b24e1cf043ea22b5a4
new file mode 100644
index 0000000..2a9ce26
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b6c773e9ea0cfb95ecd413b24e1cf043ea22b5a4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b6d7cf907246f505ec858063b97fa37f3247ece7 b/fuzz/corpus/packet_recv_server/b6d7cf907246f505ec858063b97fa37f3247ece7
deleted file mode 100644
index b90b75c..0000000
--- a/fuzz/corpus/packet_recv_server/b6d7cf907246f505ec858063b97fa37f3247ece7
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b784fef841731ed3175887c6ef1db207f1f79f3a b/fuzz/corpus/packet_recv_server/b784fef841731ed3175887c6ef1db207f1f79f3a
new file mode 100644
index 0000000..5466fec
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b784fef841731ed3175887c6ef1db207f1f79f3a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b78e9ac54d704cb97b5e18031954724911a7b639 b/fuzz/corpus/packet_recv_server/b78e9ac54d704cb97b5e18031954724911a7b639
deleted file mode 100644
index 46361c2..0000000
--- a/fuzz/corpus/packet_recv_server/b78e9ac54d704cb97b5e18031954724911a7b639
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b812c3bc6adf9895c4c1f2c80e31f4297a08d2d7 b/fuzz/corpus/packet_recv_server/b812c3bc6adf9895c4c1f2c80e31f4297a08d2d7
new file mode 100644
index 0000000..019ea1e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b812c3bc6adf9895c4c1f2c80e31f4297a08d2d7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b88a8c0b42d5c5c34284f2e087346f284551413f b/fuzz/corpus/packet_recv_server/b88a8c0b42d5c5c34284f2e087346f284551413f
new file mode 100644
index 0000000..4b49a8a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b88a8c0b42d5c5c34284f2e087346f284551413f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b89ba44eddb46457e0014f00dead74016edb467d b/fuzz/corpus/packet_recv_server/b89ba44eddb46457e0014f00dead74016edb467d
deleted file mode 100644
index c0da912..0000000
--- a/fuzz/corpus/packet_recv_server/b89ba44eddb46457e0014f00dead74016edb467d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b8a0015ef976e3e2b12412c9d3f62af979cc462b b/fuzz/corpus/packet_recv_server/b8a0015ef976e3e2b12412c9d3f62af979cc462b
deleted file mode 100644
index b3ac58b..0000000
--- a/fuzz/corpus/packet_recv_server/b8a0015ef976e3e2b12412c9d3f62af979cc462b
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b8a7576b0a129f9bea5b0753649b6d2dba23821a b/fuzz/corpus/packet_recv_server/b8a7576b0a129f9bea5b0753649b6d2dba23821a
new file mode 100644
index 0000000..897c671
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b8a7576b0a129f9bea5b0753649b6d2dba23821a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b91fe13cc30850d56cb556ad5c7a58492dd5ff97 b/fuzz/corpus/packet_recv_server/b91fe13cc30850d56cb556ad5c7a58492dd5ff97
new file mode 100644
index 0000000..1266ec6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b91fe13cc30850d56cb556ad5c7a58492dd5ff97
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b97ba31166c47f7b260ac2f1ea850a3af80c9170 b/fuzz/corpus/packet_recv_server/b97ba31166c47f7b260ac2f1ea850a3af80c9170
deleted file mode 100644
index f8642b1..0000000
--- a/fuzz/corpus/packet_recv_server/b97ba31166c47f7b260ac2f1ea850a3af80c9170
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b984ecaa85a3f2e288c6a4bc84f09883dc40a797 b/fuzz/corpus/packet_recv_server/b984ecaa85a3f2e288c6a4bc84f09883dc40a797
new file mode 100644
index 0000000..a5ece70
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b984ecaa85a3f2e288c6a4bc84f09883dc40a797
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b99c52b107d5b635bb11ef000a23f0a63378bd5c b/fuzz/corpus/packet_recv_server/b99c52b107d5b635bb11ef000a23f0a63378bd5c
new file mode 100644
index 0000000..f5f9ca0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/b99c52b107d5b635bb11ef000a23f0a63378bd5c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b9bfd6c40058578baf6b7f7697b85dbf83cf8d49 b/fuzz/corpus/packet_recv_server/b9bfd6c40058578baf6b7f7697b85dbf83cf8d49
deleted file mode 100644
index 94751b2..0000000
--- a/fuzz/corpus/packet_recv_server/b9bfd6c40058578baf6b7f7697b85dbf83cf8d49
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b9f8023f7b8e83433df0c357eeb8e4ddda79851f b/fuzz/corpus/packet_recv_server/b9f8023f7b8e83433df0c357eeb8e4ddda79851f
deleted file mode 100644
index b468976..0000000
--- a/fuzz/corpus/packet_recv_server/b9f8023f7b8e83433df0c357eeb8e4ddda79851f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/b9fb265b958eced2627da3ae8e5c43ab6741e99c b/fuzz/corpus/packet_recv_server/b9fb265b958eced2627da3ae8e5c43ab6741e99c
deleted file mode 100644
index c91d38c..0000000
--- a/fuzz/corpus/packet_recv_server/b9fb265b958eced2627da3ae8e5c43ab6741e99c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ba0dcf65580814da6cb87a1020c201156bfb6667 b/fuzz/corpus/packet_recv_server/ba0dcf65580814da6cb87a1020c201156bfb6667
new file mode 100644
index 0000000..5019b4d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ba0dcf65580814da6cb87a1020c201156bfb6667
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ba3c92d658a714a09aef03a350397c950f730f26 b/fuzz/corpus/packet_recv_server/ba3c92d658a714a09aef03a350397c950f730f26
new file mode 100644
index 0000000..4be6fef
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ba3c92d658a714a09aef03a350397c950f730f26
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ba41e84c42725b3c44349877707e67d8762ed942 b/fuzz/corpus/packet_recv_server/ba41e84c42725b3c44349877707e67d8762ed942
deleted file mode 100644
index 3751358..0000000
--- a/fuzz/corpus/packet_recv_server/ba41e84c42725b3c44349877707e67d8762ed942
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ba70b97920cafb63d094f87ae211ecc7610faa0c b/fuzz/corpus/packet_recv_server/ba70b97920cafb63d094f87ae211ecc7610faa0c
deleted file mode 100644
index 57dd7bd..0000000
--- a/fuzz/corpus/packet_recv_server/ba70b97920cafb63d094f87ae211ecc7610faa0c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ba792a25166cfd4fce671cae149d9efa328eea65 b/fuzz/corpus/packet_recv_server/ba792a25166cfd4fce671cae149d9efa328eea65
new file mode 100644
index 0000000..398f7bd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ba792a25166cfd4fce671cae149d9efa328eea65
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/baebb4792e3a251aa81a11f69726a836e078d973 b/fuzz/corpus/packet_recv_server/baebb4792e3a251aa81a11f69726a836e078d973
deleted file mode 100644
index 42a9f8b..0000000
--- a/fuzz/corpus/packet_recv_server/baebb4792e3a251aa81a11f69726a836e078d973
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bb1205da4ecd0e1224e79730f808e5f818659c7a b/fuzz/corpus/packet_recv_server/bb1205da4ecd0e1224e79730f808e5f818659c7a
deleted file mode 100644
index 6ff0238..0000000
--- a/fuzz/corpus/packet_recv_server/bb1205da4ecd0e1224e79730f808e5f818659c7a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bb241a7236dc5872181d584aa2f6c18eb9aaa49c b/fuzz/corpus/packet_recv_server/bb241a7236dc5872181d584aa2f6c18eb9aaa49c
new file mode 100644
index 0000000..a829e23
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bb241a7236dc5872181d584aa2f6c18eb9aaa49c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bb52e2a3b839cd13e3d2d3df3c5936d420092f43 b/fuzz/corpus/packet_recv_server/bb52e2a3b839cd13e3d2d3df3c5936d420092f43
new file mode 100644
index 0000000..bdfce78
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bb52e2a3b839cd13e3d2d3df3c5936d420092f43
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bbb5dc07a941177c70b21596ae5c0a131d8047bf b/fuzz/corpus/packet_recv_server/bbb5dc07a941177c70b21596ae5c0a131d8047bf
new file mode 100644
index 0000000..6edd473
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bbb5dc07a941177c70b21596ae5c0a131d8047bf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bbc48f0257de1d372bce1e3b24f268a90fca3524 b/fuzz/corpus/packet_recv_server/bbc48f0257de1d372bce1e3b24f268a90fca3524
new file mode 100644
index 0000000..d1d2a85
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bbc48f0257de1d372bce1e3b24f268a90fca3524
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bc20b515009a24172ecda95841a00bfe3934200d b/fuzz/corpus/packet_recv_server/bc20b515009a24172ecda95841a00bfe3934200d
deleted file mode 100644
index d82abde..0000000
--- a/fuzz/corpus/packet_recv_server/bc20b515009a24172ecda95841a00bfe3934200d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bcc9614b19e9d55ddad07e59aad1054724767c9d b/fuzz/corpus/packet_recv_server/bcc9614b19e9d55ddad07e59aad1054724767c9d
deleted file mode 100644
index 09cd465..0000000
--- a/fuzz/corpus/packet_recv_server/bcc9614b19e9d55ddad07e59aad1054724767c9d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bcc9fffe69fe4369bcaf8063aaddf050bfc0bd0f b/fuzz/corpus/packet_recv_server/bcc9fffe69fe4369bcaf8063aaddf050bfc0bd0f
new file mode 100644
index 0000000..e685fed
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bcc9fffe69fe4369bcaf8063aaddf050bfc0bd0f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bcfadf94c406fb525b247ec6a8c13d448326e053 b/fuzz/corpus/packet_recv_server/bcfadf94c406fb525b247ec6a8c13d448326e053
new file mode 100644
index 0000000..7ecaa73
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bcfadf94c406fb525b247ec6a8c13d448326e053
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bd0a5b4440753b5a166a3e82751bc00fd2edeb79 b/fuzz/corpus/packet_recv_server/bd0a5b4440753b5a166a3e82751bc00fd2edeb79
new file mode 100644
index 0000000..082f5ef
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bd0a5b4440753b5a166a3e82751bc00fd2edeb79
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bd1e7aeac8f23d89804f6998037c26ecabe1f349 b/fuzz/corpus/packet_recv_server/bd1e7aeac8f23d89804f6998037c26ecabe1f349
deleted file mode 100644
index 558385b..0000000
--- a/fuzz/corpus/packet_recv_server/bd1e7aeac8f23d89804f6998037c26ecabe1f349
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bd913b695bc42a69da686413be54b29c9ca9b2a1 b/fuzz/corpus/packet_recv_server/bd913b695bc42a69da686413be54b29c9ca9b2a1
deleted file mode 100644
index bc64576..0000000
--- a/fuzz/corpus/packet_recv_server/bd913b695bc42a69da686413be54b29c9ca9b2a1
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bda65383d27ba765d136ba12cfe4e8038a321848 b/fuzz/corpus/packet_recv_server/bda65383d27ba765d136ba12cfe4e8038a321848
new file mode 100644
index 0000000..de5183d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bda65383d27ba765d136ba12cfe4e8038a321848
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bdbf3d7e4dd30918dce2eb8a87a1e2bf42b2968c b/fuzz/corpus/packet_recv_server/bdbf3d7e4dd30918dce2eb8a87a1e2bf42b2968c
new file mode 100644
index 0000000..cb967ac
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bdbf3d7e4dd30918dce2eb8a87a1e2bf42b2968c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/be28e2c76fa3e9eccfe666bfe13813299ac0ee46 b/fuzz/corpus/packet_recv_server/be28e2c76fa3e9eccfe666bfe13813299ac0ee46
new file mode 100644
index 0000000..256dcf1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/be28e2c76fa3e9eccfe666bfe13813299ac0ee46
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/be3f3dffc5208c05ab52c187c21b0ac6ae96d2fc b/fuzz/corpus/packet_recv_server/be3f3dffc5208c05ab52c187c21b0ac6ae96d2fc
new file mode 100644
index 0000000..66888da
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/be3f3dffc5208c05ab52c187c21b0ac6ae96d2fc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/be6dd3b2cfcba7bcb2dab4da11f9c5b34a0cfa5c b/fuzz/corpus/packet_recv_server/be6dd3b2cfcba7bcb2dab4da11f9c5b34a0cfa5c
new file mode 100644
index 0000000..b99bc5e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/be6dd3b2cfcba7bcb2dab4da11f9c5b34a0cfa5c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bea56863a081bcf6d487ffc44320230a4bd894f8 b/fuzz/corpus/packet_recv_server/bea56863a081bcf6d487ffc44320230a4bd894f8
new file mode 100644
index 0000000..7a30f00
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bea56863a081bcf6d487ffc44320230a4bd894f8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bee8833afaaed0678ca521456efbddf7c6e66af9 b/fuzz/corpus/packet_recv_server/bee8833afaaed0678ca521456efbddf7c6e66af9
new file mode 100644
index 0000000..f9a11ca
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bee8833afaaed0678ca521456efbddf7c6e66af9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bf0e0e2588848cf5d071ca073a9450d778c923b1 b/fuzz/corpus/packet_recv_server/bf0e0e2588848cf5d071ca073a9450d778c923b1
new file mode 100644
index 0000000..39e043e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bf0e0e2588848cf5d071ca073a9450d778c923b1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bf2c45c8c32e4e9f12fcc7021b0088948e2e55da b/fuzz/corpus/packet_recv_server/bf2c45c8c32e4e9f12fcc7021b0088948e2e55da
new file mode 100644
index 0000000..e34576a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bf2c45c8c32e4e9f12fcc7021b0088948e2e55da
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bf3fc1b3e8d394928f4befac7b260abc0aaed2aa b/fuzz/corpus/packet_recv_server/bf3fc1b3e8d394928f4befac7b260abc0aaed2aa
new file mode 100644
index 0000000..3c17d18
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bf3fc1b3e8d394928f4befac7b260abc0aaed2aa
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bf6662acfc4febf6e3ecee5254fa6ffe44191b75 b/fuzz/corpus/packet_recv_server/bf6662acfc4febf6e3ecee5254fa6ffe44191b75
deleted file mode 100644
index bde73b0..0000000
--- a/fuzz/corpus/packet_recv_server/bf6662acfc4febf6e3ecee5254fa6ffe44191b75
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bf6c0b9148e72be6db17a2e415d5edfc442da84e b/fuzz/corpus/packet_recv_server/bf6c0b9148e72be6db17a2e415d5edfc442da84e
deleted file mode 100644
index b0f5ff8..0000000
--- a/fuzz/corpus/packet_recv_server/bf6c0b9148e72be6db17a2e415d5edfc442da84e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bf6ee8c15c967ccd04886a3b89f9cc392e79c156 b/fuzz/corpus/packet_recv_server/bf6ee8c15c967ccd04886a3b89f9cc392e79c156
new file mode 100644
index 0000000..25e8fe7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bf6ee8c15c967ccd04886a3b89f9cc392e79c156
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/bfce3eedf336c7aa13bef9b97a831885ae0e5219 b/fuzz/corpus/packet_recv_server/bfce3eedf336c7aa13bef9b97a831885ae0e5219
new file mode 100644
index 0000000..7105be7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/bfce3eedf336c7aa13bef9b97a831885ae0e5219
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c07b4b13a9d94dc079733f779197c936534afd13 b/fuzz/corpus/packet_recv_server/c07b4b13a9d94dc079733f779197c936534afd13
deleted file mode 100644
index e772949..0000000
--- a/fuzz/corpus/packet_recv_server/c07b4b13a9d94dc079733f779197c936534afd13
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c0d8c850707d268c7e09ce2a9bd2908620befe0b b/fuzz/corpus/packet_recv_server/c0d8c850707d268c7e09ce2a9bd2908620befe0b
deleted file mode 100644
index 268b83f..0000000
--- a/fuzz/corpus/packet_recv_server/c0d8c850707d268c7e09ce2a9bd2908620befe0b
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c0f776ec85bd86901d7f2c8b21acf0c4315bc7b7 b/fuzz/corpus/packet_recv_server/c0f776ec85bd86901d7f2c8b21acf0c4315bc7b7
new file mode 100644
index 0000000..4381d2c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c0f776ec85bd86901d7f2c8b21acf0c4315bc7b7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c0fd24b0f0c7bc026c56d726564c5fd0c98ecd76 b/fuzz/corpus/packet_recv_server/c0fd24b0f0c7bc026c56d726564c5fd0c98ecd76
new file mode 100644
index 0000000..3386fff
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c0fd24b0f0c7bc026c56d726564c5fd0c98ecd76
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c16a34624f1162c54d428cf65688b41e03242e8f b/fuzz/corpus/packet_recv_server/c16a34624f1162c54d428cf65688b41e03242e8f
deleted file mode 100644
index d09a5f6..0000000
--- a/fuzz/corpus/packet_recv_server/c16a34624f1162c54d428cf65688b41e03242e8f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c199773221a7fa1dcfd46b003d41344f0408c042 b/fuzz/corpus/packet_recv_server/c199773221a7fa1dcfd46b003d41344f0408c042
deleted file mode 100644
index 32d4e0c..0000000
--- a/fuzz/corpus/packet_recv_server/c199773221a7fa1dcfd46b003d41344f0408c042
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c1bc1a514e304f80c27eee040f116e9ced17e1e4 b/fuzz/corpus/packet_recv_server/c1bc1a514e304f80c27eee040f116e9ced17e1e4
new file mode 100644
index 0000000..803e988
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c1bc1a514e304f80c27eee040f116e9ced17e1e4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c1de9adc106df9bfc247719e8510011bba0a64a9 b/fuzz/corpus/packet_recv_server/c1de9adc106df9bfc247719e8510011bba0a64a9
new file mode 100644
index 0000000..6653189
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c1de9adc106df9bfc247719e8510011bba0a64a9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c267408b23ecea94e3b4ce06228d2f9441419b3c b/fuzz/corpus/packet_recv_server/c267408b23ecea94e3b4ce06228d2f9441419b3c
new file mode 100644
index 0000000..fe74a16
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c267408b23ecea94e3b4ce06228d2f9441419b3c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c28a56f1abfc7c7f4657935add83d515d5fb74be b/fuzz/corpus/packet_recv_server/c28a56f1abfc7c7f4657935add83d515d5fb74be
new file mode 100644
index 0000000..d2e0e6e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c28a56f1abfc7c7f4657935add83d515d5fb74be
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c2b5615f0b323f5809a97f5f8420682411124980 b/fuzz/corpus/packet_recv_server/c2b5615f0b323f5809a97f5f8420682411124980
deleted file mode 100644
index 5bb86cd..0000000
--- a/fuzz/corpus/packet_recv_server/c2b5615f0b323f5809a97f5f8420682411124980
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c2f10a5274af3ce5faf9b5cb4431162648840f55 b/fuzz/corpus/packet_recv_server/c2f10a5274af3ce5faf9b5cb4431162648840f55
new file mode 100644
index 0000000..24d5667
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c2f10a5274af3ce5faf9b5cb4431162648840f55
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c3134b69980df23fd8a37a2bf2163e80d6f2bb97 b/fuzz/corpus/packet_recv_server/c3134b69980df23fd8a37a2bf2163e80d6f2bb97
new file mode 100644
index 0000000..8adc3cf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c3134b69980df23fd8a37a2bf2163e80d6f2bb97
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c357ea6c86e830a432488acc59655cf3f69b1c16 b/fuzz/corpus/packet_recv_server/c357ea6c86e830a432488acc59655cf3f69b1c16
new file mode 100644
index 0000000..6403607
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c357ea6c86e830a432488acc59655cf3f69b1c16
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c3cc8f4fa0b11fd8d34ccc750714ed00cba9407c b/fuzz/corpus/packet_recv_server/c3cc8f4fa0b11fd8d34ccc750714ed00cba9407c
new file mode 100644
index 0000000..24a258d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c3cc8f4fa0b11fd8d34ccc750714ed00cba9407c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c3ddc4758cb2356031d9623a28977ab01b504bfe b/fuzz/corpus/packet_recv_server/c3ddc4758cb2356031d9623a28977ab01b504bfe
new file mode 100644
index 0000000..6039279
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c3ddc4758cb2356031d9623a28977ab01b504bfe
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c4b010a3b5ba9a4809d69f6a29d53af96b1d59ed b/fuzz/corpus/packet_recv_server/c4b010a3b5ba9a4809d69f6a29d53af96b1d59ed
new file mode 100644
index 0000000..4ae1e34
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c4b010a3b5ba9a4809d69f6a29d53af96b1d59ed
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c4edcbdc42960b466f29932e0b628fffc8fe6427 b/fuzz/corpus/packet_recv_server/c4edcbdc42960b466f29932e0b628fffc8fe6427
new file mode 100644
index 0000000..f8b7101
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c4edcbdc42960b466f29932e0b628fffc8fe6427
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c4f69e8f2211ea24a082f64572149412af8f9b6c b/fuzz/corpus/packet_recv_server/c4f69e8f2211ea24a082f64572149412af8f9b6c
new file mode 100644
index 0000000..804fb9b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c4f69e8f2211ea24a082f64572149412af8f9b6c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c4f775c53eee56f6c016854a729d22af1ee5bb0f b/fuzz/corpus/packet_recv_server/c4f775c53eee56f6c016854a729d22af1ee5bb0f
new file mode 100644
index 0000000..6ed4ace
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c4f775c53eee56f6c016854a729d22af1ee5bb0f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c51653e6d001f7a023623682e3cbde0a9e2b4e6c b/fuzz/corpus/packet_recv_server/c51653e6d001f7a023623682e3cbde0a9e2b4e6c
deleted file mode 100644
index 0c82c81..0000000
--- a/fuzz/corpus/packet_recv_server/c51653e6d001f7a023623682e3cbde0a9e2b4e6c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c62bbb5323647ea8b74c3f9a00af12caf7468def b/fuzz/corpus/packet_recv_server/c62bbb5323647ea8b74c3f9a00af12caf7468def
deleted file mode 100644
index 657cb34..0000000
--- a/fuzz/corpus/packet_recv_server/c62bbb5323647ea8b74c3f9a00af12caf7468def
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c68bb76e5873bd26c2509b8016602f3ff10e7427 b/fuzz/corpus/packet_recv_server/c68bb76e5873bd26c2509b8016602f3ff10e7427
new file mode 100644
index 0000000..8ba69ef
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c68bb76e5873bd26c2509b8016602f3ff10e7427
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c6ae784da530b4e89d2675d49db8a5529484f752 b/fuzz/corpus/packet_recv_server/c6ae784da530b4e89d2675d49db8a5529484f752
deleted file mode 100644
index fe8ac7c..0000000
--- a/fuzz/corpus/packet_recv_server/c6ae784da530b4e89d2675d49db8a5529484f752
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c706295ebec8860666f76a857be58c6c8cf610b0 b/fuzz/corpus/packet_recv_server/c706295ebec8860666f76a857be58c6c8cf610b0
new file mode 100644
index 0000000..d63f22a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c706295ebec8860666f76a857be58c6c8cf610b0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c766a56eeeb7fff0be4509a9a1576a4d4ab70b85 b/fuzz/corpus/packet_recv_server/c766a56eeeb7fff0be4509a9a1576a4d4ab70b85
new file mode 100644
index 0000000..cd5a232
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c766a56eeeb7fff0be4509a9a1576a4d4ab70b85
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c77890518978f06f67c5102f000f772bc3729780 b/fuzz/corpus/packet_recv_server/c77890518978f06f67c5102f000f772bc3729780
new file mode 100644
index 0000000..4a8f603
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c77890518978f06f67c5102f000f772bc3729780
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c77bf39e698689f185bbf6cb9ac5826bea299002 b/fuzz/corpus/packet_recv_server/c77bf39e698689f185bbf6cb9ac5826bea299002
new file mode 100644
index 0000000..c3d5216
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c77bf39e698689f185bbf6cb9ac5826bea299002
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c808c0e77caba835fa207ed67f37dd7b445eba85 b/fuzz/corpus/packet_recv_server/c808c0e77caba835fa207ed67f37dd7b445eba85
new file mode 100644
index 0000000..f682042
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c808c0e77caba835fa207ed67f37dd7b445eba85
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c817314e7b5a521f81311e29a36cd0f424a4ba9d b/fuzz/corpus/packet_recv_server/c817314e7b5a521f81311e29a36cd0f424a4ba9d
deleted file mode 100644
index 2dcc6c3..0000000
--- a/fuzz/corpus/packet_recv_server/c817314e7b5a521f81311e29a36cd0f424a4ba9d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c823a66882310adde12d44ae7ec477254b0980ac b/fuzz/corpus/packet_recv_server/c823a66882310adde12d44ae7ec477254b0980ac
new file mode 100644
index 0000000..4f59894
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c823a66882310adde12d44ae7ec477254b0980ac
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c8c73938742555c9a1b721505a38ac2ac687d9ac b/fuzz/corpus/packet_recv_server/c8c73938742555c9a1b721505a38ac2ac687d9ac
new file mode 100644
index 0000000..55ddf96
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c8c73938742555c9a1b721505a38ac2ac687d9ac
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c8cac8a94b91f7070a848a0d1f7ee99cbce28bb2 b/fuzz/corpus/packet_recv_server/c8cac8a94b91f7070a848a0d1f7ee99cbce28bb2
new file mode 100644
index 0000000..334c64b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c8cac8a94b91f7070a848a0d1f7ee99cbce28bb2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c937cd0ffe840f4e09545a11202215e17572005e b/fuzz/corpus/packet_recv_server/c937cd0ffe840f4e09545a11202215e17572005e
deleted file mode 100644
index 20631b9..0000000
--- a/fuzz/corpus/packet_recv_server/c937cd0ffe840f4e09545a11202215e17572005e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c9ca445850432762b4fec6202ff549b79bde364f b/fuzz/corpus/packet_recv_server/c9ca445850432762b4fec6202ff549b79bde364f
deleted file mode 100644
index c2b9f36..0000000
--- a/fuzz/corpus/packet_recv_server/c9ca445850432762b4fec6202ff549b79bde364f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c9d488035c1afb2d902f6a3830c82c89be8ca95e b/fuzz/corpus/packet_recv_server/c9d488035c1afb2d902f6a3830c82c89be8ca95e
new file mode 100644
index 0000000..a193c69
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c9d488035c1afb2d902f6a3830c82c89be8ca95e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c9d5dc14c3976f1493d73b8828644511307822fe b/fuzz/corpus/packet_recv_server/c9d5dc14c3976f1493d73b8828644511307822fe
new file mode 100644
index 0000000..091b403
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c9d5dc14c3976f1493d73b8828644511307822fe
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/c9f1e947eac7e485ebe21005580d33a931e73e0a b/fuzz/corpus/packet_recv_server/c9f1e947eac7e485ebe21005580d33a931e73e0a
new file mode 100644
index 0000000..80ac768
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/c9f1e947eac7e485ebe21005580d33a931e73e0a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ca22c8b8af2a76bb1f364eff9445247ce9522a20 b/fuzz/corpus/packet_recv_server/ca22c8b8af2a76bb1f364eff9445247ce9522a20
deleted file mode 100644
index dd5939f..0000000
--- a/fuzz/corpus/packet_recv_server/ca22c8b8af2a76bb1f364eff9445247ce9522a20
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ca9408d328d003264d115270865d72de9ee72109 b/fuzz/corpus/packet_recv_server/ca9408d328d003264d115270865d72de9ee72109
new file mode 100644
index 0000000..30b6a3b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ca9408d328d003264d115270865d72de9ee72109
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cab969adf5f876534889a677666b258725a46ad5 b/fuzz/corpus/packet_recv_server/cab969adf5f876534889a677666b258725a46ad5
new file mode 100644
index 0000000..4925906
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cab969adf5f876534889a677666b258725a46ad5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/caea2a7a65d043e186cf6aa5a3f2b0cfd5a1a87b b/fuzz/corpus/packet_recv_server/caea2a7a65d043e186cf6aa5a3f2b0cfd5a1a87b
new file mode 100644
index 0000000..e16042d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/caea2a7a65d043e186cf6aa5a3f2b0cfd5a1a87b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cb4de0ee26b38c02db52713a737ef92f384d3b1e b/fuzz/corpus/packet_recv_server/cb4de0ee26b38c02db52713a737ef92f384d3b1e
deleted file mode 100644
index d14fc12..0000000
--- a/fuzz/corpus/packet_recv_server/cb4de0ee26b38c02db52713a737ef92f384d3b1e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cb82179af367e7d319773181144fba1c151d2946 b/fuzz/corpus/packet_recv_server/cb82179af367e7d319773181144fba1c151d2946
new file mode 100644
index 0000000..84bdfa9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cb82179af367e7d319773181144fba1c151d2946
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cbbe97acef71f7ad6306134e0b2952039f43a39b b/fuzz/corpus/packet_recv_server/cbbe97acef71f7ad6306134e0b2952039f43a39b
new file mode 100644
index 0000000..50291d2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cbbe97acef71f7ad6306134e0b2952039f43a39b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cbe0c1ac62b82184776417b72d5a8395980298dd b/fuzz/corpus/packet_recv_server/cbe0c1ac62b82184776417b72d5a8395980298dd
new file mode 100644
index 0000000..ab234fa
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cbe0c1ac62b82184776417b72d5a8395980298dd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cbee5f4fe445cb86795ad00615986f3fdf5e403f b/fuzz/corpus/packet_recv_server/cbee5f4fe445cb86795ad00615986f3fdf5e403f
deleted file mode 100644
index cd1105e..0000000
--- a/fuzz/corpus/packet_recv_server/cbee5f4fe445cb86795ad00615986f3fdf5e403f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cc052762af05e898f2b39266f2de01654452ce92 b/fuzz/corpus/packet_recv_server/cc052762af05e898f2b39266f2de01654452ce92
new file mode 100644
index 0000000..cbb6d49
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cc052762af05e898f2b39266f2de01654452ce92
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cc10dc4b29b22056f3ba4d8862ae3882044260aa b/fuzz/corpus/packet_recv_server/cc10dc4b29b22056f3ba4d8862ae3882044260aa
new file mode 100644
index 0000000..2ba5a29
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cc10dc4b29b22056f3ba4d8862ae3882044260aa
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cc3ec2360744143b8870f7c40e303875ebc40f84 b/fuzz/corpus/packet_recv_server/cc3ec2360744143b8870f7c40e303875ebc40f84
new file mode 100644
index 0000000..29917ad
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cc3ec2360744143b8870f7c40e303875ebc40f84
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ccc12e45965372efea833187ddb1bd1ec0fe8f44 b/fuzz/corpus/packet_recv_server/ccc12e45965372efea833187ddb1bd1ec0fe8f44
deleted file mode 100644
index e3bcc9c..0000000
--- a/fuzz/corpus/packet_recv_server/ccc12e45965372efea833187ddb1bd1ec0fe8f44
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cd2d3a551b86826768af1c2fe8b9de2925c8591e b/fuzz/corpus/packet_recv_server/cd2d3a551b86826768af1c2fe8b9de2925c8591e
deleted file mode 100644
index 94e4f5a..0000000
--- a/fuzz/corpus/packet_recv_server/cd2d3a551b86826768af1c2fe8b9de2925c8591e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cd3992d5545652be7d2abb86cdde68f2d4c2003b b/fuzz/corpus/packet_recv_server/cd3992d5545652be7d2abb86cdde68f2d4c2003b
new file mode 100644
index 0000000..b94e6d3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cd3992d5545652be7d2abb86cdde68f2d4c2003b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cd523087d5078c9d6ab59d852d1e98306c82ca41 b/fuzz/corpus/packet_recv_server/cd523087d5078c9d6ab59d852d1e98306c82ca41
new file mode 100644
index 0000000..5ebdf1c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cd523087d5078c9d6ab59d852d1e98306c82ca41
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cd53898f2b044fe593caba851dd28f982270139d b/fuzz/corpus/packet_recv_server/cd53898f2b044fe593caba851dd28f982270139d
new file mode 100644
index 0000000..a2f29a7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cd53898f2b044fe593caba851dd28f982270139d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cd9c7553939c60ef34e2efa83ae584c26f0cfb15 b/fuzz/corpus/packet_recv_server/cd9c7553939c60ef34e2efa83ae584c26f0cfb15
deleted file mode 100644
index 318a89d..0000000
--- a/fuzz/corpus/packet_recv_server/cd9c7553939c60ef34e2efa83ae584c26f0cfb15
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cdb9d803a1eb38c5e5bb0a6a93cf301af4d76495 b/fuzz/corpus/packet_recv_server/cdb9d803a1eb38c5e5bb0a6a93cf301af4d76495
new file mode 100644
index 0000000..86b849c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cdb9d803a1eb38c5e5bb0a6a93cf301af4d76495
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ce287f2253adc41c9b59275ebb3ff7b5331cc78e b/fuzz/corpus/packet_recv_server/ce287f2253adc41c9b59275ebb3ff7b5331cc78e
new file mode 100644
index 0000000..d521f06
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ce287f2253adc41c9b59275ebb3ff7b5331cc78e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ce2bf09f1ed91468b58e207f49cdb30d4139abdb b/fuzz/corpus/packet_recv_server/ce2bf09f1ed91468b58e207f49cdb30d4139abdb
new file mode 100644
index 0000000..b5449b3
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ce2bf09f1ed91468b58e207f49cdb30d4139abdb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ce790c282e7f929805af3d154e9877a12ccf8548 b/fuzz/corpus/packet_recv_server/ce790c282e7f929805af3d154e9877a12ccf8548
deleted file mode 100644
index beaf654..0000000
--- a/fuzz/corpus/packet_recv_server/ce790c282e7f929805af3d154e9877a12ccf8548
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cf61f2c3d45c25bf354788ed4cd229c339625546 b/fuzz/corpus/packet_recv_server/cf61f2c3d45c25bf354788ed4cd229c339625546
deleted file mode 100644
index 67463ae..0000000
--- a/fuzz/corpus/packet_recv_server/cf61f2c3d45c25bf354788ed4cd229c339625546
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cf6bf2ef0e8d07ee126b746bf86874c3b8fdef69 b/fuzz/corpus/packet_recv_server/cf6bf2ef0e8d07ee126b746bf86874c3b8fdef69
new file mode 100644
index 0000000..5217ba1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cf6bf2ef0e8d07ee126b746bf86874c3b8fdef69
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cf73c3148087ea0ba593b234eac826053b462b58 b/fuzz/corpus/packet_recv_server/cf73c3148087ea0ba593b234eac826053b462b58
new file mode 100644
index 0000000..fb70be8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cf73c3148087ea0ba593b234eac826053b462b58
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/cfa2d20bc84bc985f6a54dd5032b75d42a127a00 b/fuzz/corpus/packet_recv_server/cfa2d20bc84bc985f6a54dd5032b75d42a127a00
new file mode 100644
index 0000000..1387e27
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/cfa2d20bc84bc985f6a54dd5032b75d42a127a00
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d1596e525f687ec3c58d806069ba16d083c963f3 b/fuzz/corpus/packet_recv_server/d1596e525f687ec3c58d806069ba16d083c963f3
new file mode 100644
index 0000000..c710481
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d1596e525f687ec3c58d806069ba16d083c963f3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d187e6e3ffc349b09176074202029a5ccf220fdf b/fuzz/corpus/packet_recv_server/d187e6e3ffc349b09176074202029a5ccf220fdf
new file mode 100644
index 0000000..311c2a2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d187e6e3ffc349b09176074202029a5ccf220fdf
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d191178abab6ea26ff0958896232ac5ed85ad57d b/fuzz/corpus/packet_recv_server/d191178abab6ea26ff0958896232ac5ed85ad57d
new file mode 100644
index 0000000..d848d3e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d191178abab6ea26ff0958896232ac5ed85ad57d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d19a14edbceba4656fa56a4299a350e8385c1aec b/fuzz/corpus/packet_recv_server/d19a14edbceba4656fa56a4299a350e8385c1aec
new file mode 100644
index 0000000..0595408
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d19a14edbceba4656fa56a4299a350e8385c1aec
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d19c95d427add30a2b385b9223fbc457e3e28f4c b/fuzz/corpus/packet_recv_server/d19c95d427add30a2b385b9223fbc457e3e28f4c
deleted file mode 100644
index d7faa50..0000000
--- a/fuzz/corpus/packet_recv_server/d19c95d427add30a2b385b9223fbc457e3e28f4c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d1a75322cae494d27d2039ed8ad036db97e643a0 b/fuzz/corpus/packet_recv_server/d1a75322cae494d27d2039ed8ad036db97e643a0
deleted file mode 100644
index e97b8e0..0000000
--- a/fuzz/corpus/packet_recv_server/d1a75322cae494d27d2039ed8ad036db97e643a0
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d1e9a7ffdf389bf034f0cf3fd2894905f8e2b91c b/fuzz/corpus/packet_recv_server/d1e9a7ffdf389bf034f0cf3fd2894905f8e2b91c
new file mode 100644
index 0000000..970c191
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d1e9a7ffdf389bf034f0cf3fd2894905f8e2b91c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d1f52fa64078bb865f4c12569841d62d1857673a b/fuzz/corpus/packet_recv_server/d1f52fa64078bb865f4c12569841d62d1857673a
deleted file mode 100644
index 77f5892..0000000
--- a/fuzz/corpus/packet_recv_server/d1f52fa64078bb865f4c12569841d62d1857673a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d25fcfd691d3b77d496308138b671e771e37a2a5 b/fuzz/corpus/packet_recv_server/d25fcfd691d3b77d496308138b671e771e37a2a5
new file mode 100644
index 0000000..ebaf589
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d25fcfd691d3b77d496308138b671e771e37a2a5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d2ce50e9e658bb4999d42822cc2506fce65d4784 b/fuzz/corpus/packet_recv_server/d2ce50e9e658bb4999d42822cc2506fce65d4784
new file mode 100644
index 0000000..d82fff0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d2ce50e9e658bb4999d42822cc2506fce65d4784
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d35ec0259f957f5fe19ace9f3e9973db208878d6 b/fuzz/corpus/packet_recv_server/d35ec0259f957f5fe19ace9f3e9973db208878d6
new file mode 100644
index 0000000..43158bc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d35ec0259f957f5fe19ace9f3e9973db208878d6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d3c798f6f962628d07a0335da13de1e972dc9eec b/fuzz/corpus/packet_recv_server/d3c798f6f962628d07a0335da13de1e972dc9eec
new file mode 100644
index 0000000..3761a17
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d3c798f6f962628d07a0335da13de1e972dc9eec
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d3d786c6329ed30c525445821f5b7fda74598ec1 b/fuzz/corpus/packet_recv_server/d3d786c6329ed30c525445821f5b7fda74598ec1
deleted file mode 100644
index 170616b..0000000
--- a/fuzz/corpus/packet_recv_server/d3d786c6329ed30c525445821f5b7fda74598ec1
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d479904e9b0d3c984938276066114e7fcfc24e16 b/fuzz/corpus/packet_recv_server/d479904e9b0d3c984938276066114e7fcfc24e16
new file mode 100644
index 0000000..2faa25f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d479904e9b0d3c984938276066114e7fcfc24e16
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d4a6407fc53a268372e25a94cba3237c034ac350 b/fuzz/corpus/packet_recv_server/d4a6407fc53a268372e25a94cba3237c034ac350
deleted file mode 100644
index ab5c160..0000000
--- a/fuzz/corpus/packet_recv_server/d4a6407fc53a268372e25a94cba3237c034ac350
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d4c1d78d795c43f85becd7aa48c2ed54da7ccf5f b/fuzz/corpus/packet_recv_server/d4c1d78d795c43f85becd7aa48c2ed54da7ccf5f
new file mode 100644
index 0000000..4bedc5a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d4c1d78d795c43f85becd7aa48c2ed54da7ccf5f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d4c3a0580a365e1e06dabbc8a444490a0e386230 b/fuzz/corpus/packet_recv_server/d4c3a0580a365e1e06dabbc8a444490a0e386230
new file mode 100644
index 0000000..2bf0939
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d4c3a0580a365e1e06dabbc8a444490a0e386230
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d4e0c327ef378205ca841366ad9d036fc1655cb4 b/fuzz/corpus/packet_recv_server/d4e0c327ef378205ca841366ad9d036fc1655cb4
new file mode 100644
index 0000000..c5aecf8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d4e0c327ef378205ca841366ad9d036fc1655cb4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d5170fcfe0cb3003e256ecc6bd4caea3cf46569f b/fuzz/corpus/packet_recv_server/d5170fcfe0cb3003e256ecc6bd4caea3cf46569f
new file mode 100644
index 0000000..514d3cd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d5170fcfe0cb3003e256ecc6bd4caea3cf46569f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d521ba68a89b0705f1cff1e36dc1d01012444d2f b/fuzz/corpus/packet_recv_server/d521ba68a89b0705f1cff1e36dc1d01012444d2f
deleted file mode 100644
index 526953a..0000000
--- a/fuzz/corpus/packet_recv_server/d521ba68a89b0705f1cff1e36dc1d01012444d2f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d5252fad8b46fa5c35ac1df834bc1e2f37ca0ba8 b/fuzz/corpus/packet_recv_server/d5252fad8b46fa5c35ac1df834bc1e2f37ca0ba8
new file mode 100644
index 0000000..ba96c9b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d5252fad8b46fa5c35ac1df834bc1e2f37ca0ba8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d54d010638279b69b2eb3c52efd0744df23da0f4 b/fuzz/corpus/packet_recv_server/d54d010638279b69b2eb3c52efd0744df23da0f4
new file mode 100644
index 0000000..15216c7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d54d010638279b69b2eb3c52efd0744df23da0f4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d5c40744bd9274c746eaf830a5dbdf4923ab6124 b/fuzz/corpus/packet_recv_server/d5c40744bd9274c746eaf830a5dbdf4923ab6124
new file mode 100644
index 0000000..00c1adf
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d5c40744bd9274c746eaf830a5dbdf4923ab6124
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d62c2d7bb6aceab09ad8006ffd565c32787f9028 b/fuzz/corpus/packet_recv_server/d62c2d7bb6aceab09ad8006ffd565c32787f9028
new file mode 100644
index 0000000..0f7963f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d62c2d7bb6aceab09ad8006ffd565c32787f9028
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d6382d3e69f1a94a4b9cb10fac4c845bf318706a b/fuzz/corpus/packet_recv_server/d6382d3e69f1a94a4b9cb10fac4c845bf318706a
deleted file mode 100644
index 6808e85..0000000
--- a/fuzz/corpus/packet_recv_server/d6382d3e69f1a94a4b9cb10fac4c845bf318706a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d68f05a4a1e79b7a0c48885be64a7aead2ecdc35 b/fuzz/corpus/packet_recv_server/d68f05a4a1e79b7a0c48885be64a7aead2ecdc35
new file mode 100644
index 0000000..43ecc62
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d68f05a4a1e79b7a0c48885be64a7aead2ecdc35
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d6b0958a5e3fcc3c2bb99a1c79873c7c27ad94ba b/fuzz/corpus/packet_recv_server/d6b0958a5e3fcc3c2bb99a1c79873c7c27ad94ba
new file mode 100644
index 0000000..358f95a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d6b0958a5e3fcc3c2bb99a1c79873c7c27ad94ba
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d796bfc2480bbb12b733f0024dfa1511e3bc9568 b/fuzz/corpus/packet_recv_server/d796bfc2480bbb12b733f0024dfa1511e3bc9568
new file mode 100644
index 0000000..a06be11
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d796bfc2480bbb12b733f0024dfa1511e3bc9568
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d7ba27a441725930706fc6b14939fe1fbcd6a5aa b/fuzz/corpus/packet_recv_server/d7ba27a441725930706fc6b14939fe1fbcd6a5aa
new file mode 100644
index 0000000..5389bda
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d7ba27a441725930706fc6b14939fe1fbcd6a5aa
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d7f0d317136254667d9ee0ce477a545668315104 b/fuzz/corpus/packet_recv_server/d7f0d317136254667d9ee0ce477a545668315104
new file mode 100644
index 0000000..4a2fba6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d7f0d317136254667d9ee0ce477a545668315104
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d823cb76d5c9e459add88d09e1606cdb5fcc5ef1 b/fuzz/corpus/packet_recv_server/d823cb76d5c9e459add88d09e1606cdb5fcc5ef1
new file mode 100644
index 0000000..7a9f854
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d823cb76d5c9e459add88d09e1606cdb5fcc5ef1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d84110c1072f7d1d85974449a80e825e53e12373 b/fuzz/corpus/packet_recv_server/d84110c1072f7d1d85974449a80e825e53e12373
new file mode 100644
index 0000000..d97b771
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d84110c1072f7d1d85974449a80e825e53e12373
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d8c567501b8249af7828bdc0ac89c8f0f5f39c0c b/fuzz/corpus/packet_recv_server/d8c567501b8249af7828bdc0ac89c8f0f5f39c0c
new file mode 100644
index 0000000..f92652d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d8c567501b8249af7828bdc0ac89c8f0f5f39c0c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d90c83a018125891d25493a140d40d2f88a04f2d b/fuzz/corpus/packet_recv_server/d90c83a018125891d25493a140d40d2f88a04f2d
deleted file mode 100644
index beebb2d..0000000
--- a/fuzz/corpus/packet_recv_server/d90c83a018125891d25493a140d40d2f88a04f2d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d93014bdf93f724ab4c71d5f06a2f4e139d6bba8 b/fuzz/corpus/packet_recv_server/d93014bdf93f724ab4c71d5f06a2f4e139d6bba8
new file mode 100644
index 0000000..a3e9394
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d93014bdf93f724ab4c71d5f06a2f4e139d6bba8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d959c515e69a614967c63fe3562441266ad33583 b/fuzz/corpus/packet_recv_server/d959c515e69a614967c63fe3562441266ad33583
new file mode 100644
index 0000000..c43e04c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d959c515e69a614967c63fe3562441266ad33583
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/d99e6100fe572b92085f1ea061c6637b53af8aba b/fuzz/corpus/packet_recv_server/d99e6100fe572b92085f1ea061c6637b53af8aba
new file mode 100644
index 0000000..b08a1b4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/d99e6100fe572b92085f1ea061c6637b53af8aba
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/da083fe3104aa3028b557790d1374921a4fffbc3 b/fuzz/corpus/packet_recv_server/da083fe3104aa3028b557790d1374921a4fffbc3
new file mode 100644
index 0000000..273f2cd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/da083fe3104aa3028b557790d1374921a4fffbc3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/da9c3d1ef90ec40309a10d55cf20030ac99ab056 b/fuzz/corpus/packet_recv_server/da9c3d1ef90ec40309a10d55cf20030ac99ab056
new file mode 100644
index 0000000..221d890
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/da9c3d1ef90ec40309a10d55cf20030ac99ab056
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/daf4ac78ada8566ab526fdf65824196d4a93e4d3 b/fuzz/corpus/packet_recv_server/daf4ac78ada8566ab526fdf65824196d4a93e4d3
new file mode 100644
index 0000000..ff51dfb
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/daf4ac78ada8566ab526fdf65824196d4a93e4d3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/dbad43f1d28913e9679f0eb3d0e5d036254f1d4c b/fuzz/corpus/packet_recv_server/dbad43f1d28913e9679f0eb3d0e5d036254f1d4c
deleted file mode 100644
index 369e450..0000000
--- a/fuzz/corpus/packet_recv_server/dbad43f1d28913e9679f0eb3d0e5d036254f1d4c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/dbb2f70cb7db5687a1a155ae5b78787b6a714277 b/fuzz/corpus/packet_recv_server/dbb2f70cb7db5687a1a155ae5b78787b6a714277
deleted file mode 100644
index 0193b3d..0000000
--- a/fuzz/corpus/packet_recv_server/dbb2f70cb7db5687a1a155ae5b78787b6a714277
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/dc3cfb6cddbfa463fbef2e142903c65ce657b817 b/fuzz/corpus/packet_recv_server/dc3cfb6cddbfa463fbef2e142903c65ce657b817
new file mode 100644
index 0000000..1e4f6a8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/dc3cfb6cddbfa463fbef2e142903c65ce657b817
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/dc7908ee0cf58de5de818fcf7ef6a5a9d1d5db57 b/fuzz/corpus/packet_recv_server/dc7908ee0cf58de5de818fcf7ef6a5a9d1d5db57
new file mode 100644
index 0000000..59145f7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/dc7908ee0cf58de5de818fcf7ef6a5a9d1d5db57
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/dd07b8d63b1972292db83834104c48147dc0116f b/fuzz/corpus/packet_recv_server/dd07b8d63b1972292db83834104c48147dc0116f
new file mode 100644
index 0000000..b794ad6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/dd07b8d63b1972292db83834104c48147dc0116f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/dd7ed8eade7a6c9f1cd96cef872f448826bd90bd b/fuzz/corpus/packet_recv_server/dd7ed8eade7a6c9f1cd96cef872f448826bd90bd
new file mode 100644
index 0000000..50419e1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/dd7ed8eade7a6c9f1cd96cef872f448826bd90bd
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/dd82369876d9bb41b83273192befd9e1c14e10f1 b/fuzz/corpus/packet_recv_server/dd82369876d9bb41b83273192befd9e1c14e10f1
new file mode 100644
index 0000000..773fd30
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/dd82369876d9bb41b83273192befd9e1c14e10f1
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ddc53e9b183a590648d994872d5b5d550e562678 b/fuzz/corpus/packet_recv_server/ddc53e9b183a590648d994872d5b5d550e562678
new file mode 100644
index 0000000..aa54962
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ddc53e9b183a590648d994872d5b5d550e562678
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ddd0aab0456410a6658f5597cd43ef6108688a1a b/fuzz/corpus/packet_recv_server/ddd0aab0456410a6658f5597cd43ef6108688a1a
new file mode 100644
index 0000000..b76f56f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ddd0aab0456410a6658f5597cd43ef6108688a1a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ddef447a739c1bf39e58fb8b5df024e041a74510 b/fuzz/corpus/packet_recv_server/ddef447a739c1bf39e58fb8b5df024e041a74510
deleted file mode 100644
index 0a61a14..0000000
--- a/fuzz/corpus/packet_recv_server/ddef447a739c1bf39e58fb8b5df024e041a74510
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/de0d8f69c4634b20b3829753e906f1928b8d63c8 b/fuzz/corpus/packet_recv_server/de0d8f69c4634b20b3829753e906f1928b8d63c8
deleted file mode 100644
index 6f242a6..0000000
--- a/fuzz/corpus/packet_recv_server/de0d8f69c4634b20b3829753e906f1928b8d63c8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/debb61016b501e45dab6bb16b99e06cccd358cb5 b/fuzz/corpus/packet_recv_server/debb61016b501e45dab6bb16b99e06cccd358cb5
deleted file mode 100644
index 2c2a68b..0000000
--- a/fuzz/corpus/packet_recv_server/debb61016b501e45dab6bb16b99e06cccd358cb5
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/debf52eb1d99fa9f6f1dcc02fc64cfaac3258ae2 b/fuzz/corpus/packet_recv_server/debf52eb1d99fa9f6f1dcc02fc64cfaac3258ae2
new file mode 100644
index 0000000..64a4516
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/debf52eb1d99fa9f6f1dcc02fc64cfaac3258ae2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/dee893ceaa8bbaa827f1c45e2e3795f82a62d407 b/fuzz/corpus/packet_recv_server/dee893ceaa8bbaa827f1c45e2e3795f82a62d407
new file mode 100644
index 0000000..4a8987c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/dee893ceaa8bbaa827f1c45e2e3795f82a62d407
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/df00e2cac5133c5bdeea3facc71ba8fe4dd3d2f3 b/fuzz/corpus/packet_recv_server/df00e2cac5133c5bdeea3facc71ba8fe4dd3d2f3
deleted file mode 100644
index 9365ce6..0000000
--- a/fuzz/corpus/packet_recv_server/df00e2cac5133c5bdeea3facc71ba8fe4dd3d2f3
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/df1158fc38b948c48f3195e4e99df95e15ff051c b/fuzz/corpus/packet_recv_server/df1158fc38b948c48f3195e4e99df95e15ff051c
new file mode 100644
index 0000000..ff4378b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/df1158fc38b948c48f3195e4e99df95e15ff051c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/df47b238656ce898ca9c81ab77014f4af0a411b0 b/fuzz/corpus/packet_recv_server/df47b238656ce898ca9c81ab77014f4af0a411b0
new file mode 100644
index 0000000..bb1c159
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/df47b238656ce898ca9c81ab77014f4af0a411b0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/df8425f25eb5818b584a9bc4805e66dadcda0e41 b/fuzz/corpus/packet_recv_server/df8425f25eb5818b584a9bc4805e66dadcda0e41
new file mode 100644
index 0000000..f1b2f14
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/df8425f25eb5818b584a9bc4805e66dadcda0e41
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/dfcaf448d61ecc347d007a63b15bf01076745818 b/fuzz/corpus/packet_recv_server/dfcaf448d61ecc347d007a63b15bf01076745818
new file mode 100644
index 0000000..5c62246
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/dfcaf448d61ecc347d007a63b15bf01076745818
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/dfd4e1782bdb27bc39947bff4bd6d07b7b44ae9e b/fuzz/corpus/packet_recv_server/dfd4e1782bdb27bc39947bff4bd6d07b7b44ae9e
new file mode 100644
index 0000000..65de934
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/dfd4e1782bdb27bc39947bff4bd6d07b7b44ae9e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e00496408daca68d8b932b553d48674ccaa4e1b6 b/fuzz/corpus/packet_recv_server/e00496408daca68d8b932b553d48674ccaa4e1b6
deleted file mode 100644
index 4f716ff..0000000
--- a/fuzz/corpus/packet_recv_server/e00496408daca68d8b932b553d48674ccaa4e1b6
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e0c46405569bf24aabda8f2a4253aec1f63a5e7d b/fuzz/corpus/packet_recv_server/e0c46405569bf24aabda8f2a4253aec1f63a5e7d
deleted file mode 100644
index 1aad594..0000000
--- a/fuzz/corpus/packet_recv_server/e0c46405569bf24aabda8f2a4253aec1f63a5e7d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e11dea13acc9b22ee2ac78fbd986de951713b8a9 b/fuzz/corpus/packet_recv_server/e11dea13acc9b22ee2ac78fbd986de951713b8a9
new file mode 100644
index 0000000..dff2ccd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e11dea13acc9b22ee2ac78fbd986de951713b8a9
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e1287d5fd82667f98626bc85f781be4b3d7fed0e b/fuzz/corpus/packet_recv_server/e1287d5fd82667f98626bc85f781be4b3d7fed0e
new file mode 100644
index 0000000..32b93ab
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e1287d5fd82667f98626bc85f781be4b3d7fed0e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e13f0ea303ddfc9aafdb8477687c549bd19f1d8f b/fuzz/corpus/packet_recv_server/e13f0ea303ddfc9aafdb8477687c549bd19f1d8f
new file mode 100644
index 0000000..52aa462
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e13f0ea303ddfc9aafdb8477687c549bd19f1d8f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e151054bdcf119f79b1ad776adfde39ed7ac01e2 b/fuzz/corpus/packet_recv_server/e151054bdcf119f79b1ad776adfde39ed7ac01e2
new file mode 100644
index 0000000..c084ea2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e151054bdcf119f79b1ad776adfde39ed7ac01e2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e1cdc3d89d1006de597d798b17c7f7d1f23b1986 b/fuzz/corpus/packet_recv_server/e1cdc3d89d1006de597d798b17c7f7d1f23b1986
new file mode 100644
index 0000000..14e0ded
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e1cdc3d89d1006de597d798b17c7f7d1f23b1986
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e1ff67e2f4343fe732767921869446b6fe7a0eea b/fuzz/corpus/packet_recv_server/e1ff67e2f4343fe732767921869446b6fe7a0eea
new file mode 100644
index 0000000..59d6031
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e1ff67e2f4343fe732767921869446b6fe7a0eea
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e27caa7570ed155cd74a53258c1b24c3f1afa32e b/fuzz/corpus/packet_recv_server/e27caa7570ed155cd74a53258c1b24c3f1afa32e
deleted file mode 100644
index c5af8f0..0000000
--- a/fuzz/corpus/packet_recv_server/e27caa7570ed155cd74a53258c1b24c3f1afa32e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e29b825721218eec71e3ee33a71a25fb9993deb6 b/fuzz/corpus/packet_recv_server/e29b825721218eec71e3ee33a71a25fb9993deb6
deleted file mode 100644
index 40f4f84..0000000
--- a/fuzz/corpus/packet_recv_server/e29b825721218eec71e3ee33a71a25fb9993deb6
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e2b1cfaea76038b27127bf3bf6dacefc63161607 b/fuzz/corpus/packet_recv_server/e2b1cfaea76038b27127bf3bf6dacefc63161607
new file mode 100644
index 0000000..2a45e6f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e2b1cfaea76038b27127bf3bf6dacefc63161607
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e2b755180905ac23f71a06979d487fa18bed7f0e b/fuzz/corpus/packet_recv_server/e2b755180905ac23f71a06979d487fa18bed7f0e
deleted file mode 100644
index 32b7e77..0000000
--- a/fuzz/corpus/packet_recv_server/e2b755180905ac23f71a06979d487fa18bed7f0e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e30719c3befab26fed1410cf7a81adf157c0570b b/fuzz/corpus/packet_recv_server/e30719c3befab26fed1410cf7a81adf157c0570b
new file mode 100644
index 0000000..55aa982
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e30719c3befab26fed1410cf7a81adf157c0570b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e36a38738b267db47a94c03f6f1b9b1b3a433482 b/fuzz/corpus/packet_recv_server/e36a38738b267db47a94c03f6f1b9b1b3a433482
new file mode 100644
index 0000000..4e0d281
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e36a38738b267db47a94c03f6f1b9b1b3a433482
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e3ca82beb56ec8f80f179b01589c4c965b540695 b/fuzz/corpus/packet_recv_server/e3ca82beb56ec8f80f179b01589c4c965b540695
new file mode 100644
index 0000000..be6cc3d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e3ca82beb56ec8f80f179b01589c4c965b540695
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e4290bcb6df39585594d524e9a95b38192300a09 b/fuzz/corpus/packet_recv_server/e4290bcb6df39585594d524e9a95b38192300a09
new file mode 100644
index 0000000..ddc5029
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e4290bcb6df39585594d524e9a95b38192300a09
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e4294641052ab89ef2cf074e324e608efcde26e7 b/fuzz/corpus/packet_recv_server/e4294641052ab89ef2cf074e324e608efcde26e7
new file mode 100644
index 0000000..27ea539
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e4294641052ab89ef2cf074e324e608efcde26e7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e46d202698d60d71f76fb2f483c40b53a2d9a354 b/fuzz/corpus/packet_recv_server/e46d202698d60d71f76fb2f483c40b53a2d9a354
new file mode 100644
index 0000000..144638b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e46d202698d60d71f76fb2f483c40b53a2d9a354
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e48fb7b5d96fd0a6e7b06876f9a04188117bda4d b/fuzz/corpus/packet_recv_server/e48fb7b5d96fd0a6e7b06876f9a04188117bda4d
deleted file mode 100644
index ba47839..0000000
--- a/fuzz/corpus/packet_recv_server/e48fb7b5d96fd0a6e7b06876f9a04188117bda4d
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e4d7c096f48b94b1cff2d02abc58d64a09a92c38 b/fuzz/corpus/packet_recv_server/e4d7c096f48b94b1cff2d02abc58d64a09a92c38
new file mode 100644
index 0000000..ebcb649
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e4d7c096f48b94b1cff2d02abc58d64a09a92c38
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e4ef59e9ab00a53c25a805cd85f5063ba8213d2c b/fuzz/corpus/packet_recv_server/e4ef59e9ab00a53c25a805cd85f5063ba8213d2c
deleted file mode 100644
index 676088a..0000000
--- a/fuzz/corpus/packet_recv_server/e4ef59e9ab00a53c25a805cd85f5063ba8213d2c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e526142935a205a7127fccdab829fac62aae0050 b/fuzz/corpus/packet_recv_server/e526142935a205a7127fccdab829fac62aae0050
new file mode 100644
index 0000000..426f202
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e526142935a205a7127fccdab829fac62aae0050
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e5f2af5e9d67409ee011620f528514237ab62a59 b/fuzz/corpus/packet_recv_server/e5f2af5e9d67409ee011620f528514237ab62a59
deleted file mode 100644
index 8ec1bd0..0000000
--- a/fuzz/corpus/packet_recv_server/e5f2af5e9d67409ee011620f528514237ab62a59
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e60b99d23f0693ee9203fbf737b8707b47e178ca b/fuzz/corpus/packet_recv_server/e60b99d23f0693ee9203fbf737b8707b47e178ca
new file mode 100644
index 0000000..1cc9aba
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e60b99d23f0693ee9203fbf737b8707b47e178ca
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e636fba0f5824603bfab3d43967c48a65f926caf b/fuzz/corpus/packet_recv_server/e636fba0f5824603bfab3d43967c48a65f926caf
deleted file mode 100644
index 6fb1a2f..0000000
--- a/fuzz/corpus/packet_recv_server/e636fba0f5824603bfab3d43967c48a65f926caf
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e6428a01cb7ef948f18d96c4589ca6ce0fe2ad92 b/fuzz/corpus/packet_recv_server/e6428a01cb7ef948f18d96c4589ca6ce0fe2ad92
new file mode 100644
index 0000000..6a3786e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e6428a01cb7ef948f18d96c4589ca6ce0fe2ad92
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e64dcbc393656d7c0d76a4093f2441132e576d6f b/fuzz/corpus/packet_recv_server/e64dcbc393656d7c0d76a4093f2441132e576d6f
new file mode 100644
index 0000000..ecc6312
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e64dcbc393656d7c0d76a4093f2441132e576d6f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e65e7fd5c15f1e3a3d536cf68d4bfd35fe928858 b/fuzz/corpus/packet_recv_server/e65e7fd5c15f1e3a3d536cf68d4bfd35fe928858
new file mode 100644
index 0000000..52725f7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e65e7fd5c15f1e3a3d536cf68d4bfd35fe928858
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e6f23a3b57871122e6b7b89de04b5c675492b9db b/fuzz/corpus/packet_recv_server/e6f23a3b57871122e6b7b89de04b5c675492b9db
new file mode 100644
index 0000000..a7bbc96
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e6f23a3b57871122e6b7b89de04b5c675492b9db
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e72abb1a6dd7f8523cda8832125fcfb6553c6dbb b/fuzz/corpus/packet_recv_server/e72abb1a6dd7f8523cda8832125fcfb6553c6dbb
new file mode 100644
index 0000000..bed002a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e72abb1a6dd7f8523cda8832125fcfb6553c6dbb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e73993f7f5ba8c26001d2d04a55ecf3d68403788 b/fuzz/corpus/packet_recv_server/e73993f7f5ba8c26001d2d04a55ecf3d68403788
deleted file mode 100644
index b81f428..0000000
--- a/fuzz/corpus/packet_recv_server/e73993f7f5ba8c26001d2d04a55ecf3d68403788
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e744617337dd0f32ba6aaf68620184ff106952fb b/fuzz/corpus/packet_recv_server/e744617337dd0f32ba6aaf68620184ff106952fb
new file mode 100644
index 0000000..7da0b82
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e744617337dd0f32ba6aaf68620184ff106952fb
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e75e08da0d0a009e5bd8b6e66f0ba9ad5e1f9801 b/fuzz/corpus/packet_recv_server/e75e08da0d0a009e5bd8b6e66f0ba9ad5e1f9801
new file mode 100644
index 0000000..0f3bde1
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e75e08da0d0a009e5bd8b6e66f0ba9ad5e1f9801
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e77f6dcb0f6d58ac9883f346e9e8e599f98387d2 b/fuzz/corpus/packet_recv_server/e77f6dcb0f6d58ac9883f346e9e8e599f98387d2
new file mode 100644
index 0000000..a413c75
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e77f6dcb0f6d58ac9883f346e9e8e599f98387d2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e7a5eb01d0a8b75f7b0e90c2afc64b797f79ef58 b/fuzz/corpus/packet_recv_server/e7a5eb01d0a8b75f7b0e90c2afc64b797f79ef58
new file mode 100644
index 0000000..6972d69
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e7a5eb01d0a8b75f7b0e90c2afc64b797f79ef58
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e7eacb79766b7e1112e1e5393f22a10b514dcc13 b/fuzz/corpus/packet_recv_server/e7eacb79766b7e1112e1e5393f22a10b514dcc13
new file mode 100644
index 0000000..f4317b7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e7eacb79766b7e1112e1e5393f22a10b514dcc13
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e7f10cec7141dc770dde11545daa1ae243d85fbe b/fuzz/corpus/packet_recv_server/e7f10cec7141dc770dde11545daa1ae243d85fbe
new file mode 100644
index 0000000..b956884
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e7f10cec7141dc770dde11545daa1ae243d85fbe
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e7fe8575736c8dd5e5fade90b2ca530e6681ab94 b/fuzz/corpus/packet_recv_server/e7fe8575736c8dd5e5fade90b2ca530e6681ab94
new file mode 100644
index 0000000..643a3ee
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e7fe8575736c8dd5e5fade90b2ca530e6681ab94
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e8297d345099ef99a754179917624beba4f3de1e b/fuzz/corpus/packet_recv_server/e8297d345099ef99a754179917624beba4f3de1e
new file mode 100644
index 0000000..2cb7ef9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e8297d345099ef99a754179917624beba4f3de1e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e8303dd9be02c35e36b75aff2359ed3295add25f b/fuzz/corpus/packet_recv_server/e8303dd9be02c35e36b75aff2359ed3295add25f
new file mode 100644
index 0000000..8904851
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e8303dd9be02c35e36b75aff2359ed3295add25f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e84bea34a33337a665acec66553720587f8d1ab2 b/fuzz/corpus/packet_recv_server/e84bea34a33337a665acec66553720587f8d1ab2
new file mode 100644
index 0000000..3efa686
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e84bea34a33337a665acec66553720587f8d1ab2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e85024da0068b8165f465c3d235b10f5257b5e31 b/fuzz/corpus/packet_recv_server/e85024da0068b8165f465c3d235b10f5257b5e31
new file mode 100644
index 0000000..f77f30d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e85024da0068b8165f465c3d235b10f5257b5e31
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e8c5d0dd734c75eb930c624b8c281b7fda6b8aad b/fuzz/corpus/packet_recv_server/e8c5d0dd734c75eb930c624b8c281b7fda6b8aad
deleted file mode 100644
index 40a09f7..0000000
--- a/fuzz/corpus/packet_recv_server/e8c5d0dd734c75eb930c624b8c281b7fda6b8aad
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e8e239d5501ede9399e75fff542df161b66fcb82 b/fuzz/corpus/packet_recv_server/e8e239d5501ede9399e75fff542df161b66fcb82
new file mode 100644
index 0000000..6d3d305
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e8e239d5501ede9399e75fff542df161b66fcb82
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e8ed982ffcf890e75f88182b41e0331ac983a8a1 b/fuzz/corpus/packet_recv_server/e8ed982ffcf890e75f88182b41e0331ac983a8a1
deleted file mode 100644
index 8a4ea85..0000000
--- a/fuzz/corpus/packet_recv_server/e8ed982ffcf890e75f88182b41e0331ac983a8a1
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e9a0e749c03220c91810629be013be4aee47cb90 b/fuzz/corpus/packet_recv_server/e9a0e749c03220c91810629be013be4aee47cb90
new file mode 100644
index 0000000..143bd58
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e9a0e749c03220c91810629be013be4aee47cb90
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/e9e5164e139a528312981108ee7a26f795c5ad0f b/fuzz/corpus/packet_recv_server/e9e5164e139a528312981108ee7a26f795c5ad0f
new file mode 100644
index 0000000..eea2812
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/e9e5164e139a528312981108ee7a26f795c5ad0f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ea2ca3f72f0657645e61761fce077cb9dcdc123f b/fuzz/corpus/packet_recv_server/ea2ca3f72f0657645e61761fce077cb9dcdc123f
new file mode 100644
index 0000000..e8f697f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ea2ca3f72f0657645e61761fce077cb9dcdc123f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ea4f75aadf38e500646beacedbad466894b83a58 b/fuzz/corpus/packet_recv_server/ea4f75aadf38e500646beacedbad466894b83a58
new file mode 100644
index 0000000..b9bd06b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ea4f75aadf38e500646beacedbad466894b83a58
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ea6a3b9f019e5274b31a64d227f44f0b0db38e15 b/fuzz/corpus/packet_recv_server/ea6a3b9f019e5274b31a64d227f44f0b0db38e15
deleted file mode 100644
index 2f575e9..0000000
--- a/fuzz/corpus/packet_recv_server/ea6a3b9f019e5274b31a64d227f44f0b0db38e15
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ea9616ec8fd8298d8ccb18fd4552e66f86502670 b/fuzz/corpus/packet_recv_server/ea9616ec8fd8298d8ccb18fd4552e66f86502670
new file mode 100644
index 0000000..09c6041
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ea9616ec8fd8298d8ccb18fd4552e66f86502670
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ea9e259b1ceab79438784c373b3768d90332e008 b/fuzz/corpus/packet_recv_server/ea9e259b1ceab79438784c373b3768d90332e008
deleted file mode 100644
index d70c312..0000000
--- a/fuzz/corpus/packet_recv_server/ea9e259b1ceab79438784c373b3768d90332e008
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eaab3b0ca6122785520c6e0c62e23f3c94061831 b/fuzz/corpus/packet_recv_server/eaab3b0ca6122785520c6e0c62e23f3c94061831
new file mode 100644
index 0000000..72ed7e8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eaab3b0ca6122785520c6e0c62e23f3c94061831
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eaf96e33d7d72f56648bb585535bfc5e37a04402 b/fuzz/corpus/packet_recv_server/eaf96e33d7d72f56648bb585535bfc5e37a04402
deleted file mode 100644
index 476b860..0000000
--- a/fuzz/corpus/packet_recv_server/eaf96e33d7d72f56648bb585535bfc5e37a04402
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eb2503ff2b5db244d682d6b03ba654683b87f65a b/fuzz/corpus/packet_recv_server/eb2503ff2b5db244d682d6b03ba654683b87f65a
new file mode 100644
index 0000000..1445b9a
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eb2503ff2b5db244d682d6b03ba654683b87f65a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eb2d65f245fd7ed52333b4c4047581f663232d9c b/fuzz/corpus/packet_recv_server/eb2d65f245fd7ed52333b4c4047581f663232d9c
new file mode 100644
index 0000000..639e89c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eb2d65f245fd7ed52333b4c4047581f663232d9c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eb366f58fe3f9d8303cd0ff89ecc0244100dfa43 b/fuzz/corpus/packet_recv_server/eb366f58fe3f9d8303cd0ff89ecc0244100dfa43
new file mode 100644
index 0000000..91b558d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eb366f58fe3f9d8303cd0ff89ecc0244100dfa43
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eb4c9671f9d72d96991fe4c20be541045c400dfa b/fuzz/corpus/packet_recv_server/eb4c9671f9d72d96991fe4c20be541045c400dfa
new file mode 100644
index 0000000..525edbe
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eb4c9671f9d72d96991fe4c20be541045c400dfa
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eb4dd067e814e08ebfd722d668894499c769307c b/fuzz/corpus/packet_recv_server/eb4dd067e814e08ebfd722d668894499c769307c
new file mode 100644
index 0000000..7408202
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eb4dd067e814e08ebfd722d668894499c769307c
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eb726bed0aedd3a09939c30b1a98bcc9845f8f07 b/fuzz/corpus/packet_recv_server/eb726bed0aedd3a09939c30b1a98bcc9845f8f07
deleted file mode 100644
index 230e2f8..0000000
--- a/fuzz/corpus/packet_recv_server/eb726bed0aedd3a09939c30b1a98bcc9845f8f07
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eb82108f8b24a2a55853122aa6b6c3a9770002f7 b/fuzz/corpus/packet_recv_server/eb82108f8b24a2a55853122aa6b6c3a9770002f7
new file mode 100644
index 0000000..2acf153
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eb82108f8b24a2a55853122aa6b6c3a9770002f7
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eb976a2cb82e24c6a09c6300743c5f165985bd80 b/fuzz/corpus/packet_recv_server/eb976a2cb82e24c6a09c6300743c5f165985bd80
new file mode 100644
index 0000000..84c12ea
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eb976a2cb82e24c6a09c6300743c5f165985bd80
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ebd3733beef5ede97fe42657050ae0e39c25d5d0 b/fuzz/corpus/packet_recv_server/ebd3733beef5ede97fe42657050ae0e39c25d5d0
deleted file mode 100644
index cd98762..0000000
--- a/fuzz/corpus/packet_recv_server/ebd3733beef5ede97fe42657050ae0e39c25d5d0
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ec8aa684fc6c90d884d5fae6f2891c7854602e12 b/fuzz/corpus/packet_recv_server/ec8aa684fc6c90d884d5fae6f2891c7854602e12
new file mode 100644
index 0000000..9ae92f6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ec8aa684fc6c90d884d5fae6f2891c7854602e12
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eca553438f20b26c405619d1e0acaf44b6c78449 b/fuzz/corpus/packet_recv_server/eca553438f20b26c405619d1e0acaf44b6c78449
new file mode 100644
index 0000000..c4f97f7
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eca553438f20b26c405619d1e0acaf44b6c78449
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ecc9928ced516610601d3474c4191fdf74d0df13 b/fuzz/corpus/packet_recv_server/ecc9928ced516610601d3474c4191fdf74d0df13
deleted file mode 100644
index 7d1c3a8..0000000
--- a/fuzz/corpus/packet_recv_server/ecc9928ced516610601d3474c4191fdf74d0df13
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ed13c42439fec3371c42de51dc71fe78967097ac b/fuzz/corpus/packet_recv_server/ed13c42439fec3371c42de51dc71fe78967097ac
new file mode 100644
index 0000000..6cf6a4c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ed13c42439fec3371c42de51dc71fe78967097ac
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ed26f6473d9b05c669cc7eb6af4853a3c709c98b b/fuzz/corpus/packet_recv_server/ed26f6473d9b05c669cc7eb6af4853a3c709c98b
new file mode 100644
index 0000000..017d454
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ed26f6473d9b05c669cc7eb6af4853a3c709c98b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ed435ce92d254d0a465078ccc39542786804d565 b/fuzz/corpus/packet_recv_server/ed435ce92d254d0a465078ccc39542786804d565
new file mode 100644
index 0000000..c3ebd62
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ed435ce92d254d0a465078ccc39542786804d565
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ed4ab0d0233f9cc5b8ede35f4b25e8d6bfbaaf3a b/fuzz/corpus/packet_recv_server/ed4ab0d0233f9cc5b8ede35f4b25e8d6bfbaaf3a
new file mode 100644
index 0000000..2f47e53
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ed4ab0d0233f9cc5b8ede35f4b25e8d6bfbaaf3a
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ed56efd3941df2edbec1b270b50f1a6c83b935c5 b/fuzz/corpus/packet_recv_server/ed56efd3941df2edbec1b270b50f1a6c83b935c5
deleted file mode 100644
index b67a26f..0000000
--- a/fuzz/corpus/packet_recv_server/ed56efd3941df2edbec1b270b50f1a6c83b935c5
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ed7aa76b2203a20e639caf7c5ece1a22119762a3 b/fuzz/corpus/packet_recv_server/ed7aa76b2203a20e639caf7c5ece1a22119762a3
new file mode 100644
index 0000000..1612f58
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ed7aa76b2203a20e639caf7c5ece1a22119762a3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/edca53139c3a83558779cf94e177ad7c5c0d0438 b/fuzz/corpus/packet_recv_server/edca53139c3a83558779cf94e177ad7c5c0d0438
new file mode 100644
index 0000000..fe73859
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/edca53139c3a83558779cf94e177ad7c5c0d0438
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/edf3963717a185e01116eb23779cece0ae80751d b/fuzz/corpus/packet_recv_server/edf3963717a185e01116eb23779cece0ae80751d
new file mode 100644
index 0000000..2be7e17
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/edf3963717a185e01116eb23779cece0ae80751d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ee06d822e5394143060a17bf31d40555b88a4189 b/fuzz/corpus/packet_recv_server/ee06d822e5394143060a17bf31d40555b88a4189
new file mode 100644
index 0000000..fc90356
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ee06d822e5394143060a17bf31d40555b88a4189
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ee30909e647f524e3521d488537d0a1ae9db7750 b/fuzz/corpus/packet_recv_server/ee30909e647f524e3521d488537d0a1ae9db7750
deleted file mode 100644
index f058743..0000000
--- a/fuzz/corpus/packet_recv_server/ee30909e647f524e3521d488537d0a1ae9db7750
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ee7c4a01ec357907d2055dd09eaa2303b33a6c10 b/fuzz/corpus/packet_recv_server/ee7c4a01ec357907d2055dd09eaa2303b33a6c10
new file mode 100644
index 0000000..dc49d3c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ee7c4a01ec357907d2055dd09eaa2303b33a6c10
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eeab636892aed62079b6fb8d24902ef4d70834a8 b/fuzz/corpus/packet_recv_server/eeab636892aed62079b6fb8d24902ef4d70834a8
new file mode 100644
index 0000000..63a361b
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eeab636892aed62079b6fb8d24902ef4d70834a8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/eed657e5b4dee31f17a8a87359d411c5cc2d1cf6 b/fuzz/corpus/packet_recv_server/eed657e5b4dee31f17a8a87359d411c5cc2d1cf6
new file mode 100644
index 0000000..a47f8cc
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/eed657e5b4dee31f17a8a87359d411c5cc2d1cf6
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ef01d68875b8a956c01b2d3aa45d7eb2c45e252b b/fuzz/corpus/packet_recv_server/ef01d68875b8a956c01b2d3aa45d7eb2c45e252b
deleted file mode 100644
index b99713a..0000000
--- a/fuzz/corpus/packet_recv_server/ef01d68875b8a956c01b2d3aa45d7eb2c45e252b
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ef20f808aa4563c1a2962646e627015bbef7b469 b/fuzz/corpus/packet_recv_server/ef20f808aa4563c1a2962646e627015bbef7b469
new file mode 100644
index 0000000..1f49a99
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ef20f808aa4563c1a2962646e627015bbef7b469
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ef2456bceacfa2ce86878052b2c74e5e2818f803 b/fuzz/corpus/packet_recv_server/ef2456bceacfa2ce86878052b2c74e5e2818f803
new file mode 100644
index 0000000..fc56c95
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ef2456bceacfa2ce86878052b2c74e5e2818f803
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ef51bc5f5595723286432ac9f723b99a242917e8 b/fuzz/corpus/packet_recv_server/ef51bc5f5595723286432ac9f723b99a242917e8
new file mode 100644
index 0000000..1146148
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ef51bc5f5595723286432ac9f723b99a242917e8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ef8e05c22bb2c4cdaa46833b6885ed96f5e5b936 b/fuzz/corpus/packet_recv_server/ef8e05c22bb2c4cdaa46833b6885ed96f5e5b936
new file mode 100644
index 0000000..d79f505
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ef8e05c22bb2c4cdaa46833b6885ed96f5e5b936
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f02c211953199505cf3e0bfeed6fa9c112d53abd b/fuzz/corpus/packet_recv_server/f02c211953199505cf3e0bfeed6fa9c112d53abd
deleted file mode 100644
index 8661625..0000000
--- a/fuzz/corpus/packet_recv_server/f02c211953199505cf3e0bfeed6fa9c112d53abd
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f063fb026936ef4fb941767155bb333a9dc42ba3 b/fuzz/corpus/packet_recv_server/f063fb026936ef4fb941767155bb333a9dc42ba3
new file mode 100644
index 0000000..e4e2f66
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f063fb026936ef4fb941767155bb333a9dc42ba3
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f07c719506a69347e65e66fcf07904751747ce1d b/fuzz/corpus/packet_recv_server/f07c719506a69347e65e66fcf07904751747ce1d
new file mode 100644
index 0000000..7b1a2ab
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f07c719506a69347e65e66fcf07904751747ce1d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f094ab1c535e2db3a2453d566ab8eb8b3fbac721 b/fuzz/corpus/packet_recv_server/f094ab1c535e2db3a2453d566ab8eb8b3fbac721
new file mode 100644
index 0000000..d237a3c
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f094ab1c535e2db3a2453d566ab8eb8b3fbac721
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f0a5a52facd4c9321d9628423dd9a9be47fd76c0 b/fuzz/corpus/packet_recv_server/f0a5a52facd4c9321d9628423dd9a9be47fd76c0
new file mode 100644
index 0000000..b506bf8
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f0a5a52facd4c9321d9628423dd9a9be47fd76c0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f0ecb2aad9ffea41388397e70fc6077f5b6abb1e b/fuzz/corpus/packet_recv_server/f0ecb2aad9ffea41388397e70fc6077f5b6abb1e
deleted file mode 100644
index 128f067..0000000
--- a/fuzz/corpus/packet_recv_server/f0ecb2aad9ffea41388397e70fc6077f5b6abb1e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f131a3ae47fd461784d8112064fe669b265be7f4 b/fuzz/corpus/packet_recv_server/f131a3ae47fd461784d8112064fe669b265be7f4
deleted file mode 100644
index d5dca06..0000000
--- a/fuzz/corpus/packet_recv_server/f131a3ae47fd461784d8112064fe669b265be7f4
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f1e50e72fd2429d473a216e58253e23b09c88a0b b/fuzz/corpus/packet_recv_server/f1e50e72fd2429d473a216e58253e23b09c88a0b
new file mode 100644
index 0000000..607d6d0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f1e50e72fd2429d473a216e58253e23b09c88a0b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f1fae1acc7d8ddadcc8f1720cc2d142cadbc967a b/fuzz/corpus/packet_recv_server/f1fae1acc7d8ddadcc8f1720cc2d142cadbc967a
deleted file mode 100644
index cc4eace..0000000
--- a/fuzz/corpus/packet_recv_server/f1fae1acc7d8ddadcc8f1720cc2d142cadbc967a
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f297dd9e329757a53385826df7e6813ab380e4c3 b/fuzz/corpus/packet_recv_server/f297dd9e329757a53385826df7e6813ab380e4c3
deleted file mode 100644
index 35943cd..0000000
--- a/fuzz/corpus/packet_recv_server/f297dd9e329757a53385826df7e6813ab380e4c3
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f2c52bca0fb78cefa82cac33970e36c9ad37dd6f b/fuzz/corpus/packet_recv_server/f2c52bca0fb78cefa82cac33970e36c9ad37dd6f
deleted file mode 100644
index 0563c66..0000000
--- a/fuzz/corpus/packet_recv_server/f2c52bca0fb78cefa82cac33970e36c9ad37dd6f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f2d5a9601e06173bb6b0e587cdb72cb268582519 b/fuzz/corpus/packet_recv_server/f2d5a9601e06173bb6b0e587cdb72cb268582519
new file mode 100644
index 0000000..446d7cb
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f2d5a9601e06173bb6b0e587cdb72cb268582519
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f35f076395c6a1701bcbb939e67319c4d8b42bbd b/fuzz/corpus/packet_recv_server/f35f076395c6a1701bcbb939e67319c4d8b42bbd
deleted file mode 100644
index f11a645..0000000
--- a/fuzz/corpus/packet_recv_server/f35f076395c6a1701bcbb939e67319c4d8b42bbd
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f38e3f7d2fd2d59cb1ec775e1f8e23747042d05c b/fuzz/corpus/packet_recv_server/f38e3f7d2fd2d59cb1ec775e1f8e23747042d05c
deleted file mode 100644
index 70e3d1e..0000000
--- a/fuzz/corpus/packet_recv_server/f38e3f7d2fd2d59cb1ec775e1f8e23747042d05c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f40b5b9dbc811cf1fcd7763b7e6a1503308b7e40 b/fuzz/corpus/packet_recv_server/f40b5b9dbc811cf1fcd7763b7e6a1503308b7e40
deleted file mode 100644
index 49080e8..0000000
--- a/fuzz/corpus/packet_recv_server/f40b5b9dbc811cf1fcd7763b7e6a1503308b7e40
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f42d6dd1000f437a01959cc2ec741e2f0117e62f b/fuzz/corpus/packet_recv_server/f42d6dd1000f437a01959cc2ec741e2f0117e62f
new file mode 100644
index 0000000..c697033
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f42d6dd1000f437a01959cc2ec741e2f0117e62f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f430d7b7fdf701c030718d40cc9eb3b7852e21a6 b/fuzz/corpus/packet_recv_server/f430d7b7fdf701c030718d40cc9eb3b7852e21a6
deleted file mode 100644
index 9ac2632..0000000
--- a/fuzz/corpus/packet_recv_server/f430d7b7fdf701c030718d40cc9eb3b7852e21a6
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f452d3533c1c3fc0ee57aef4eb825aa52107415d b/fuzz/corpus/packet_recv_server/f452d3533c1c3fc0ee57aef4eb825aa52107415d
new file mode 100644
index 0000000..d4b1fc2
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f452d3533c1c3fc0ee57aef4eb825aa52107415d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f4810ec0ec4369691633a7d378a1a925e6844206 b/fuzz/corpus/packet_recv_server/f4810ec0ec4369691633a7d378a1a925e6844206
new file mode 100644
index 0000000..17854c0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f4810ec0ec4369691633a7d378a1a925e6844206
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f4d19a9fe14bfa91e8583299ed7839551e0612c8 b/fuzz/corpus/packet_recv_server/f4d19a9fe14bfa91e8583299ed7839551e0612c8
new file mode 100644
index 0000000..5c1af25
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f4d19a9fe14bfa91e8583299ed7839551e0612c8
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f4ea17596086625f700f2df5fb029627bb44db43 b/fuzz/corpus/packet_recv_server/f4ea17596086625f700f2df5fb029627bb44db43
deleted file mode 100644
index b6a9f09..0000000
--- a/fuzz/corpus/packet_recv_server/f4ea17596086625f700f2df5fb029627bb44db43
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f4f22812741312469b0b4a6fecbe60526ac27711 b/fuzz/corpus/packet_recv_server/f4f22812741312469b0b4a6fecbe60526ac27711
new file mode 100644
index 0000000..8702969
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f4f22812741312469b0b4a6fecbe60526ac27711
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f4f2ce3b694af6291badbf56e8f686cb8e337ed7 b/fuzz/corpus/packet_recv_server/f4f2ce3b694af6291badbf56e8f686cb8e337ed7
deleted file mode 100644
index 0f10503..0000000
--- a/fuzz/corpus/packet_recv_server/f4f2ce3b694af6291badbf56e8f686cb8e337ed7
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f57ad8774f8511e9d36cd5a9c1c0bf639b363677 b/fuzz/corpus/packet_recv_server/f57ad8774f8511e9d36cd5a9c1c0bf639b363677
new file mode 100644
index 0000000..c4feed0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f57ad8774f8511e9d36cd5a9c1c0bf639b363677
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f7033a66613d158fe9422e76f49011e7171dbb64 b/fuzz/corpus/packet_recv_server/f7033a66613d158fe9422e76f49011e7171dbb64
new file mode 100644
index 0000000..ddc578d
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f7033a66613d158fe9422e76f49011e7171dbb64
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f72f55f99ac10f85d44dce8b78d71084f93de9f5 b/fuzz/corpus/packet_recv_server/f72f55f99ac10f85d44dce8b78d71084f93de9f5
new file mode 100644
index 0000000..1051c33
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f72f55f99ac10f85d44dce8b78d71084f93de9f5
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f740de37c4c231d26211d52f2e9fc06b68ef717d b/fuzz/corpus/packet_recv_server/f740de37c4c231d26211d52f2e9fc06b68ef717d
new file mode 100644
index 0000000..5bcb928
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f740de37c4c231d26211d52f2e9fc06b68ef717d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f74c91911dcc2c7a75777d6ee0ffe9a39b2366ef b/fuzz/corpus/packet_recv_server/f74c91911dcc2c7a75777d6ee0ffe9a39b2366ef
new file mode 100644
index 0000000..c9d726e
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f74c91911dcc2c7a75777d6ee0ffe9a39b2366ef
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f7d30dfa50bad479acd3d47d2a2ba5eec3605168 b/fuzz/corpus/packet_recv_server/f7d30dfa50bad479acd3d47d2a2ba5eec3605168
deleted file mode 100644
index b48150f..0000000
--- a/fuzz/corpus/packet_recv_server/f7d30dfa50bad479acd3d47d2a2ba5eec3605168
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f83e4f1553bdc0b5f785424030c7ffab997d69d4 b/fuzz/corpus/packet_recv_server/f83e4f1553bdc0b5f785424030c7ffab997d69d4
new file mode 100644
index 0000000..e85aa64
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f83e4f1553bdc0b5f785424030c7ffab997d69d4
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f87d4f1e3bb2daa77d775e235dffb9498ad2d3f0 b/fuzz/corpus/packet_recv_server/f87d4f1e3bb2daa77d775e235dffb9498ad2d3f0
new file mode 100644
index 0000000..5355310
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f87d4f1e3bb2daa77d775e235dffb9498ad2d3f0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f8ccbfbaa7061bc3c2835bdb4218ab2c2acaf502 b/fuzz/corpus/packet_recv_server/f8ccbfbaa7061bc3c2835bdb4218ab2c2acaf502
new file mode 100644
index 0000000..4cbeafe
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f8ccbfbaa7061bc3c2835bdb4218ab2c2acaf502
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f8d06a8648fa30cb76adc13fcbf3cd14fc0e17aa b/fuzz/corpus/packet_recv_server/f8d06a8648fa30cb76adc13fcbf3cd14fc0e17aa
deleted file mode 100644
index 60501a2..0000000
--- a/fuzz/corpus/packet_recv_server/f8d06a8648fa30cb76adc13fcbf3cd14fc0e17aa
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f909c340f67dc6c5cf163039661f59277bccd24d b/fuzz/corpus/packet_recv_server/f909c340f67dc6c5cf163039661f59277bccd24d
new file mode 100644
index 0000000..5ae045f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f909c340f67dc6c5cf163039661f59277bccd24d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/f9b430160d320124ea4e2fa082bfa841b9fc9599 b/fuzz/corpus/packet_recv_server/f9b430160d320124ea4e2fa082bfa841b9fc9599
new file mode 100644
index 0000000..57cf188
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/f9b430160d320124ea4e2fa082bfa841b9fc9599
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fa4ed9cad5bec82cfc4943388b69c3a7a3f2f10c b/fuzz/corpus/packet_recv_server/fa4ed9cad5bec82cfc4943388b69c3a7a3f2f10c
deleted file mode 100644
index a9bf05a..0000000
--- a/fuzz/corpus/packet_recv_server/fa4ed9cad5bec82cfc4943388b69c3a7a3f2f10c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fa646f9f359a1aba0374e9e2f4e614a6ffdd6ef0 b/fuzz/corpus/packet_recv_server/fa646f9f359a1aba0374e9e2f4e614a6ffdd6ef0
new file mode 100644
index 0000000..f6614dd
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fa646f9f359a1aba0374e9e2f4e614a6ffdd6ef0
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fa8ccd95952731fb1e5e0051aec875dc05d8e2b5 b/fuzz/corpus/packet_recv_server/fa8ccd95952731fb1e5e0051aec875dc05d8e2b5
deleted file mode 100644
index 16c9996..0000000
--- a/fuzz/corpus/packet_recv_server/fa8ccd95952731fb1e5e0051aec875dc05d8e2b5
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fb279bd1c5bf79882fdf4a8c5629d2ccffe19348 b/fuzz/corpus/packet_recv_server/fb279bd1c5bf79882fdf4a8c5629d2ccffe19348
deleted file mode 100644
index ebbb8ae..0000000
--- a/fuzz/corpus/packet_recv_server/fb279bd1c5bf79882fdf4a8c5629d2ccffe19348
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fba02e1266241bf862884c055d1c497fe7155e6b b/fuzz/corpus/packet_recv_server/fba02e1266241bf862884c055d1c497fe7155e6b
new file mode 100644
index 0000000..004371f
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fba02e1266241bf862884c055d1c497fe7155e6b
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fbe424a7957cee26b237258e43145c89c5ff8cbb b/fuzz/corpus/packet_recv_server/fbe424a7957cee26b237258e43145c89c5ff8cbb
deleted file mode 100644
index c478415..0000000
--- a/fuzz/corpus/packet_recv_server/fbe424a7957cee26b237258e43145c89c5ff8cbb
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fbe6b699b869203039e2ffce37b2d9a81b08a343 b/fuzz/corpus/packet_recv_server/fbe6b699b869203039e2ffce37b2d9a81b08a343
deleted file mode 100644
index 8c08205..0000000
--- a/fuzz/corpus/packet_recv_server/fbe6b699b869203039e2ffce37b2d9a81b08a343
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fc182b4d620db62d08e548d5c1b7a9fe01b9716c b/fuzz/corpus/packet_recv_server/fc182b4d620db62d08e548d5c1b7a9fe01b9716c
deleted file mode 100644
index c179242..0000000
--- a/fuzz/corpus/packet_recv_server/fc182b4d620db62d08e548d5c1b7a9fe01b9716c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fc56226619aab9d80b5557a2ec4be81ad3ad50d2 b/fuzz/corpus/packet_recv_server/fc56226619aab9d80b5557a2ec4be81ad3ad50d2
new file mode 100644
index 0000000..68934d9
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fc56226619aab9d80b5557a2ec4be81ad3ad50d2
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fc57f5d18921c6d16132749c3796ffddf1e235bd b/fuzz/corpus/packet_recv_server/fc57f5d18921c6d16132749c3796ffddf1e235bd
deleted file mode 100644
index 3f0e792..0000000
--- a/fuzz/corpus/packet_recv_server/fc57f5d18921c6d16132749c3796ffddf1e235bd
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fc711e084ccdac3df90c205e23ef4e33fb5929d4 b/fuzz/corpus/packet_recv_server/fc711e084ccdac3df90c205e23ef4e33fb5929d4
deleted file mode 100644
index eecea36..0000000
--- a/fuzz/corpus/packet_recv_server/fc711e084ccdac3df90c205e23ef4e33fb5929d4
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fc90b0987d5e8dbcad20c0dc1ba573ada88fe505 b/fuzz/corpus/packet_recv_server/fc90b0987d5e8dbcad20c0dc1ba573ada88fe505
new file mode 100644
index 0000000..3945ee4
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fc90b0987d5e8dbcad20c0dc1ba573ada88fe505
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fcadea0b2faf7ee963ea9769006f9e9d8b519cfc b/fuzz/corpus/packet_recv_server/fcadea0b2faf7ee963ea9769006f9e9d8b519cfc
new file mode 100644
index 0000000..1266a54
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fcadea0b2faf7ee963ea9769006f9e9d8b519cfc
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fcd26c08afddac694b100ce35002a3c695a73e41 b/fuzz/corpus/packet_recv_server/fcd26c08afddac694b100ce35002a3c695a73e41
new file mode 100644
index 0000000..8bc2a38
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fcd26c08afddac694b100ce35002a3c695a73e41
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fd18c8f9a4371f2bdb66a0bf73167bb1c61da887 b/fuzz/corpus/packet_recv_server/fd18c8f9a4371f2bdb66a0bf73167bb1c61da887
deleted file mode 100644
index 8735af1..0000000
--- a/fuzz/corpus/packet_recv_server/fd18c8f9a4371f2bdb66a0bf73167bb1c61da887
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fd4ddfda490f1ac39735b1467c4246a84b234197 b/fuzz/corpus/packet_recv_server/fd4ddfda490f1ac39735b1467c4246a84b234197
new file mode 100644
index 0000000..44a3140
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fd4ddfda490f1ac39735b1467c4246a84b234197
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fd4ed26c8937830fa0b6ba56a2747f4c2b262e93 b/fuzz/corpus/packet_recv_server/fd4ed26c8937830fa0b6ba56a2747f4c2b262e93
new file mode 100644
index 0000000..fc529f0
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fd4ed26c8937830fa0b6ba56a2747f4c2b262e93
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fd54567dce80d6a21fc95ff0e3602fad8267b73c b/fuzz/corpus/packet_recv_server/fd54567dce80d6a21fc95ff0e3602fad8267b73c
deleted file mode 100644
index e31ee8d..0000000
--- a/fuzz/corpus/packet_recv_server/fd54567dce80d6a21fc95ff0e3602fad8267b73c
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fdf77005c3f10fc0094917466ff074ff89f83322 b/fuzz/corpus/packet_recv_server/fdf77005c3f10fc0094917466ff074ff89f83322
new file mode 100644
index 0000000..b6993ba
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fdf77005c3f10fc0094917466ff074ff89f83322
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fe0f736f3bb8138e5f79727b4683936d7f5b448d b/fuzz/corpus/packet_recv_server/fe0f736f3bb8138e5f79727b4683936d7f5b448d
new file mode 100644
index 0000000..2344e71
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fe0f736f3bb8138e5f79727b4683936d7f5b448d
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fe972725218022ed89e04be8366de648cdec4383 b/fuzz/corpus/packet_recv_server/fe972725218022ed89e04be8366de648cdec4383
new file mode 100644
index 0000000..83a69d6
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fe972725218022ed89e04be8366de648cdec4383
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fea193272370e242d1039e157f3eef9f6a97c37e b/fuzz/corpus/packet_recv_server/fea193272370e242d1039e157f3eef9f6a97c37e
new file mode 100644
index 0000000..879cb00
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fea193272370e242d1039e157f3eef9f6a97c37e
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fec0c5647091d6f3c2e5250812ff3abe26304263 b/fuzz/corpus/packet_recv_server/fec0c5647091d6f3c2e5250812ff3abe26304263
new file mode 100644
index 0000000..d01f030
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fec0c5647091d6f3c2e5250812ff3abe26304263
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fec4f181c5edc908617e4f19b5a2ccd17814366f b/fuzz/corpus/packet_recv_server/fec4f181c5edc908617e4f19b5a2ccd17814366f
new file mode 100644
index 0000000..2737f21
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/fec4f181c5edc908617e4f19b5a2ccd17814366f
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ff157c62deb39c54db14845b7e62b35b82d194df b/fuzz/corpus/packet_recv_server/ff157c62deb39c54db14845b7e62b35b82d194df
new file mode 100644
index 0000000..2ef06eb
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ff157c62deb39c54db14845b7e62b35b82d194df
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/ff4ebfc4959c2e5cfbb299532222d50693172940 b/fuzz/corpus/packet_recv_server/ff4ebfc4959c2e5cfbb299532222d50693172940
new file mode 100644
index 0000000..7175e73
--- /dev/null
+++ b/fuzz/corpus/packet_recv_server/ff4ebfc4959c2e5cfbb299532222d50693172940
Binary files differ
diff --git a/fuzz/corpus/packet_recv_server/fff388f9908b3738cff09f0e200bb3efdc60aff0 b/fuzz/corpus/packet_recv_server/fff388f9908b3738cff09f0e200bb3efdc60aff0
deleted file mode 100644
index 18d30b6..0000000
--- a/fuzz/corpus/packet_recv_server/fff388f9908b3738cff09f0e200bb3efdc60aff0
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/0069ef101e969db5aac00a2c6e02c2d14aa83d3a b/fuzz/corpus/qpack_decode/0069ef101e969db5aac00a2c6e02c2d14aa83d3a
new file mode 100644
index 0000000..cb3bcf6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0069ef101e969db5aac00a2c6e02c2d14aa83d3a
@@ -0,0 +1 @@
+P$ìÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/00787d188094602e8001f7bb1761a467c280d98f b/fuzz/corpus/qpack_decode/00787d188094602e8001f7bb1761a467c280d98f
new file mode 100644
index 0000000..f9c1a82
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/00787d188094602e8001f7bb1761a467c280d98f
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/008a8b7ab9e6734de1ee7181d035687b6b484402 b/fuzz/corpus/qpack_decode/008a8b7ab9e6734de1ee7181d035687b6b484402
new file mode 100644
index 0000000..d959026
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/008a8b7ab9e6734de1ee7181d035687b6b484402
@@ -0,0 +1 @@
+÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/008cf1268adf52a8328c1ddf8ceff7a88e2bcc15 b/fuzz/corpus/qpack_decode/008cf1268adf52a8328c1ddf8ceff7a88e2bcc15
new file mode 100644
index 0000000..35b1cac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/008cf1268adf52a8328c1ddf8ceff7a88e2bcc15
@@ -0,0 +1 @@
+?ø/€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/00c72f936eabf3be837a33051e6d1885d9918588 b/fuzz/corpus/qpack_decode/00c72f936eabf3be837a33051e6d1885d9918588
new file mode 100644
index 0000000..9f7fb65
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/00c72f936eabf3be837a33051e6d1885d9918588
@@ -0,0 +1 @@
+ù!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/00f8492a6e854b5d136f37f7f0ff29178e32aee8 b/fuzz/corpus/qpack_decode/00f8492a6e854b5d136f37f7f0ff29178e32aee8
new file mode 100644
index 0000000..d9b7696
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/00f8492a6e854b5d136f37f7f0ff29178e32aee8
@@ -0,0 +1 @@
+ÆÆîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/00fddbdfb9aef8f049260857015dc59154a2d5eb b/fuzz/corpus/qpack_decode/00fddbdfb9aef8f049260857015dc59154a2d5eb
new file mode 100644
index 0000000..cd92fc5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/00fddbdfb9aef8f049260857015dc59154a2d5eb
@@ -0,0 +1 @@
+òòR€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0100adf8c198ae86434e98a7941132cd768efaa6 b/fuzz/corpus/qpack_decode/0100adf8c198ae86434e98a7941132cd768efaa6
new file mode 100644
index 0000000..154246b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0100adf8c198ae86434e98a7941132cd768efaa6
@@ -0,0 +1 @@
+/€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0121293e1d4313fb4068f63bfe39661aeabca8bf b/fuzz/corpus/qpack_decode/0121293e1d4313fb4068f63bfe39661aeabca8bf
new file mode 100644
index 0000000..4daf4d9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0121293e1d4313fb4068f63bfe39661aeabca8bf
@@ -0,0 +1 @@
+íÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/01454c0e825c322b874b4e78475c90657b531240 b/fuzz/corpus/qpack_decode/01454c0e825c322b874b4e78475c90657b531240
new file mode 100644
index 0000000..5b18a28
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/01454c0e825c322b874b4e78475c90657b531240
@@ -0,0 +1 @@
+Ëúúúúúúúúú
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0154abff820a887e0d2c33fa39f60bfe9fbe791a b/fuzz/corpus/qpack_decode/0154abff820a887e0d2c33fa39f60bfe9fbe791a
new file mode 100644
index 0000000..7bac3fd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0154abff820a887e0d2c33fa39f60bfe9fbe791a
@@ -0,0 +1 @@
+ ééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/01ae1f5369c1fb5afb964af58668bfe310d717ca b/fuzz/corpus/qpack_decode/01ae1f5369c1fb5afb964af58668bfe310d717ca
new file mode 100644
index 0000000..77a2413
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/01ae1f5369c1fb5afb964af58668bfe310d717ca
@@ -0,0 +1 @@
+++ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/01bc7b79df2a7c073b31f811769e3349999cf725 b/fuzz/corpus/qpack_decode/01bc7b79df2a7c073b31f811769e3349999cf725
deleted file mode 100644
index daf73cd..0000000
--- a/fuzz/corpus/qpack_decode/01bc7b79df2a7c073b31f811769e3349999cf725
+++ /dev/null
@@ -1 +0,0 @@
-ÿÿÆÆöööö
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/01f3f9f1f47037a917ecd36edf6776a6fefe5bed b/fuzz/corpus/qpack_decode/01f3f9f1f47037a917ecd36edf6776a6fefe5bed
new file mode 100644
index 0000000..bbdcac1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/01f3f9f1f47037a917ecd36edf6776a6fefe5bed
@@ -0,0 +1 @@
+ììÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/01ff9f26a500d80f41e752fbe28a92c6e9dc23e2 b/fuzz/corpus/qpack_decode/01ff9f26a500d80f41e752fbe28a92c6e9dc23e2
new file mode 100644
index 0000000..6abffc6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/01ff9f26a500d80f41e752fbe28a92c6e9dc23e2
@@ -0,0 +1 @@
+ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/022e963341ee94598c1c6a5c9a5d82f797d621e7 b/fuzz/corpus/qpack_decode/022e963341ee94598c1c6a5c9a5d82f797d621e7
new file mode 100644
index 0000000..c3f7190
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/022e963341ee94598c1c6a5c9a5d82f797d621e7
@@ -0,0 +1 @@
+ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/02b17413ca224ce5a711bf4b62e81c410e50c6a2 b/fuzz/corpus/qpack_decode/02b17413ca224ce5a711bf4b62e81c410e50c6a2
new file mode 100644
index 0000000..2f8da70
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/02b17413ca224ce5a711bf4b62e81c410e50c6a2
@@ -0,0 +1 @@
+h=B€B€B€B€B€B€B€B€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/032a1cb2fcd288debaf3756cf02cc8e9d365ae77 b/fuzz/corpus/qpack_decode/032a1cb2fcd288debaf3756cf02cc8e9d365ae77
new file mode 100644
index 0000000..c9f5813
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/032a1cb2fcd288debaf3756cf02cc8e9d365ae77
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/03cc2d403f621fe7bd468bd83281675c9c54ebb4 b/fuzz/corpus/qpack_decode/03cc2d403f621fe7bd468bd83281675c9c54ebb4
new file mode 100644
index 0000000..bd89921
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/03cc2d403f621fe7bd468bd83281675c9c54ebb4
@@ -0,0 +1,2 @@

+ø(
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/03e7f0967c988471257650929ef849fabe84126c b/fuzz/corpus/qpack_decode/03e7f0967c988471257650929ef849fabe84126c
new file mode 100644
index 0000000..e93df47
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/03e7f0967c988471257650929ef849fabe84126c
@@ -0,0 +1 @@
+==óóóóóóóó
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/03f2d8e147dc3073eacfe66d8b2fbc8f2de52bc8 b/fuzz/corpus/qpack_decode/03f2d8e147dc3073eacfe66d8b2fbc8f2de52bc8
new file mode 100644
index 0000000..c9af986
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/03f2d8e147dc3073eacfe66d8b2fbc8f2de52bc8
@@ -0,0 +1 @@
+åççç
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/040b354b2a69514cf376619dd1da38fb14bcb039 b/fuzz/corpus/qpack_decode/040b354b2a69514cf376619dd1da38fb14bcb039
new file mode 100644
index 0000000..1cef4f6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/040b354b2a69514cf376619dd1da38fb14bcb039
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/043128a98984354361b60c2781cc18239e8ef885 b/fuzz/corpus/qpack_decode/043128a98984354361b60c2781cc18239e8ef885
new file mode 100644
index 0000000..9ddc5e8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/043128a98984354361b60c2781cc18239e8ef885
@@ -0,0 +1 @@
+Äÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0469160ea0cc47c6b50c01cd5d039f76774a0b3d b/fuzz/corpus/qpack_decode/0469160ea0cc47c6b50c01cd5d039f76774a0b3d
new file mode 100644
index 0000000..61c3ecf
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0469160ea0cc47c6b50c01cd5d039f76774a0b3d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/0500b2fe7bac4c10d40ddd8973168b3887f1d2e9 b/fuzz/corpus/qpack_decode/0500b2fe7bac4c10d40ddd8973168b3887f1d2e9
new file mode 100644
index 0000000..ed4221e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0500b2fe7bac4c10d40ddd8973168b3887f1d2e9
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/0522557e63dec609b4147e4ff20cb6b4fa7493a3 b/fuzz/corpus/qpack_decode/0522557e63dec609b4147e4ff20cb6b4fa7493a3
new file mode 100644
index 0000000..4663cab
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0522557e63dec609b4147e4ff20cb6b4fa7493a3
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/0568374d68dad3b1671c1e463d8b844596a486b1 b/fuzz/corpus/qpack_decode/0568374d68dad3b1671c1e463d8b844596a486b1
new file mode 100644
index 0000000..224b8c2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0568374d68dad3b1671c1e463d8b844596a486b1
@@ -0,0 +1 @@
+íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/05cd4511dcd4ac800ce250ec67e92a83a923e1ad b/fuzz/corpus/qpack_decode/05cd4511dcd4ac800ce250ec67e92a83a923e1ad
new file mode 100644
index 0000000..a12b958
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/05cd4511dcd4ac800ce250ec67e92a83a923e1ad
@@ -0,0 +1 @@
+ëëëëëëëëëëëëëëëëëë
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0622da7e438a02c93cd64110483defca01954414 b/fuzz/corpus/qpack_decode/0622da7e438a02c93cd64110483defca01954414
new file mode 100644
index 0000000..cd9f65a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0622da7e438a02c93cd64110483defca01954414
@@ -0,0 +1 @@
+'TTÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/064facce6b1af8cbb63c3488c0325d632048d847 b/fuzz/corpus/qpack_decode/064facce6b1af8cbb63c3488c0325d632048d847
new file mode 100644
index 0000000..dbadcd4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/064facce6b1af8cbb63c3488c0325d632048d847
@@ -0,0 +1 @@
+ÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/06cd3faeb25e424e6255528ee42e62ad130ac59e b/fuzz/corpus/qpack_decode/06cd3faeb25e424e6255528ee42e62ad130ac59e
deleted file mode 100644
index 53b41e5..0000000
--- a/fuzz/corpus/qpack_decode/06cd3faeb25e424e6255528ee42e62ad130ac59e
+++ /dev/null
@@ -1 +0,0 @@
-1ÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/070becf9ffe01b38516c4e92113b18f805954db8 b/fuzz/corpus/qpack_decode/070becf9ffe01b38516c4e92113b18f805954db8
new file mode 100644
index 0000000..b27452f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/070becf9ffe01b38516c4e92113b18f805954db8
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/07122378114e09f853f230335274a7ad2ef16435 b/fuzz/corpus/qpack_decode/07122378114e09f853f230335274a7ad2ef16435
new file mode 100644
index 0000000..c3eec2a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/07122378114e09f853f230335274a7ad2ef16435
@@ -0,0 +1 @@
+ötÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/07694fe8c25967841ce6bf4d38e3ac22fe8c61fb b/fuzz/corpus/qpack_decode/07694fe8c25967841ce6bf4d38e3ac22fe8c61fb
new file mode 100644
index 0000000..8e17507
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/07694fe8c25967841ce6bf4d38e3ac22fe8c61fb
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/07c727d46aabff0b9955970c5c8413b3b133c5b0 b/fuzz/corpus/qpack_decode/07c727d46aabff0b9955970c5c8413b3b133c5b0
new file mode 100644
index 0000000..6903c57
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/07c727d46aabff0b9955970c5c8413b3b133c5b0
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/07f5c4d254461fd62db7a4b1f96a46e7bf9b2bd3 b/fuzz/corpus/qpack_decode/07f5c4d254461fd62db7a4b1f96a46e7bf9b2bd3
new file mode 100644
index 0000000..c1daeb4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/07f5c4d254461fd62db7a4b1f96a46e7bf9b2bd3
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/0855609f99558b7411704f2241382555b02a09f1 b/fuzz/corpus/qpack_decode/0855609f99558b7411704f2241382555b02a09f1
new file mode 100644
index 0000000..961723f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0855609f99558b7411704f2241382555b02a09f1
@@ -0,0 +1 @@
+?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/088d462dcb749f7bad8bd2ed0f90cd9153235d29 b/fuzz/corpus/qpack_decode/088d462dcb749f7bad8bd2ed0f90cd9153235d29
new file mode 100644
index 0000000..4fff34c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/088d462dcb749f7bad8bd2ed0f90cd9153235d29
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/08e54fcabf1e145ee2843b3b2dab822b575ddc59 b/fuzz/corpus/qpack_decode/08e54fcabf1e145ee2843b3b2dab822b575ddc59
new file mode 100644
index 0000000..fcb2ff1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/08e54fcabf1e145ee2843b3b2dab822b575ddc59
@@ -0,0 +1 @@
+ óÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/092775d3ffa871d9c6c77369306cc704c0237654 b/fuzz/corpus/qpack_decode/092775d3ffa871d9c6c77369306cc704c0237654
new file mode 100644
index 0000000..9726d32
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/092775d3ffa871d9c6c77369306cc704c0237654
@@ -0,0 +1 @@
+ÈÌÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/09a5cae5582c1bdbc7360e42ddabc4f0a9a2688f b/fuzz/corpus/qpack_decode/09a5cae5582c1bdbc7360e42ddabc4f0a9a2688f
new file mode 100644
index 0000000..2a6f9aa
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/09a5cae5582c1bdbc7360e42ddabc4f0a9a2688f
@@ -0,0 +1 @@
+ù!ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/09fe610f295bb71c7d9ef8b3605e56cc46149aba b/fuzz/corpus/qpack_decode/09fe610f295bb71c7d9ef8b3605e56cc46149aba
new file mode 100644
index 0000000..6867128
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/09fe610f295bb71c7d9ef8b3605e56cc46149aba
@@ -0,0 +1 @@
+*Ïÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ 
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0a1187a0b2982360f49d9cec5d62f3f1576d8fd4 b/fuzz/corpus/qpack_decode/0a1187a0b2982360f49d9cec5d62f3f1576d8fd4
new file mode 100644
index 0000000..bf2b942
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0a1187a0b2982360f49d9cec5d62f3f1576d8fd4
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/0a20a4520a030180c1755446e242158522fa3dab b/fuzz/corpus/qpack_decode/0a20a4520a030180c1755446e242158522fa3dab
new file mode 100644
index 0000000..30cf53f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0a20a4520a030180c1755446e242158522fa3dab
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/0a408806d57ad769a1f5bdb454300457e6a408bd b/fuzz/corpus/qpack_decode/0a408806d57ad769a1f5bdb454300457e6a408bd
new file mode 100644
index 0000000..1a5cbc3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0a408806d57ad769a1f5bdb454300457e6a408bd
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0abdfd09fd12576ea913addfe91b0eee23c010e1 b/fuzz/corpus/qpack_decode/0abdfd09fd12576ea913addfe91b0eee23c010e1
new file mode 100644
index 0000000..f9e4149
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0abdfd09fd12576ea913addfe91b0eee23c010e1
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/0bb583264288c89823ed78471a06c1d942b55a82 b/fuzz/corpus/qpack_decode/0bb583264288c89823ed78471a06c1d942b55a82
new file mode 100644
index 0000000..aeb5fc5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0bb583264288c89823ed78471a06c1d942b55a82
@@ -0,0 +1 @@
+ììÏÏÏh
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0bcd0768202e2e99e3e7e8ef5eba8734795cdb76 b/fuzz/corpus/qpack_decode/0bcd0768202e2e99e3e7e8ef5eba8734795cdb76
deleted file mode 100644
index ab96e87..0000000
--- a/fuzz/corpus/qpack_decode/0bcd0768202e2e99e3e7e8ef5eba8734795cdb76
+++ /dev/null
@@ -1 +0,0 @@
-ÅÅ<ÿÿÿÿË
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0bcf5fe2041ecd25f0f288d8c99c9bfe102cd0a3 b/fuzz/corpus/qpack_decode/0bcf5fe2041ecd25f0f288d8c99c9bfe102cd0a3
new file mode 100644
index 0000000..7358b81
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0bcf5fe2041ecd25f0f288d8c99c9bfe102cd0a3
@@ -0,0 +1 @@
+€ÝR€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0c2705a25e7fc33b9e8cb9449f84f0480e40f5c5 b/fuzz/corpus/qpack_decode/0c2705a25e7fc33b9e8cb9449f84f0480e40f5c5
new file mode 100644
index 0000000..b863857
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0c2705a25e7fc33b9e8cb9449f84f0480e40f5c5
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/0c359f44c1e87125f83a7dbd80c8605f1212fa5e b/fuzz/corpus/qpack_decode/0c359f44c1e87125f83a7dbd80c8605f1212fa5e
new file mode 100644
index 0000000..595b50a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0c359f44c1e87125f83a7dbd80c8605f1212fa5e
@@ -0,0 +1 @@
+î<$$($$$$"$$$"$$
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0c55df3c612d22fb13e991cafc0bf2cf41f37ec3 b/fuzz/corpus/qpack_decode/0c55df3c612d22fb13e991cafc0bf2cf41f37ec3
new file mode 100644
index 0000000..e8ebb56
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0c55df3c612d22fb13e991cafc0bf2cf41f37ec3
@@ -0,0 +1 @@
+ANÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0c5c11aca0181ff3d05f5231e0dc8fbf94446ce0 b/fuzz/corpus/qpack_decode/0c5c11aca0181ff3d05f5231e0dc8fbf94446ce0
new file mode 100644
index 0000000..6a611bb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0c5c11aca0181ff3d05f5231e0dc8fbf94446ce0
@@ -0,0 +1 @@
+ÈÈÈÈÈÈÈÈÈÈÈÈÈ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0c6e0693487c6e03696e0aec13f8b62bb52bac08 b/fuzz/corpus/qpack_decode/0c6e0693487c6e03696e0aec13f8b62bb52bac08
new file mode 100644
index 0000000..8ef27ef
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0c6e0693487c6e03696e0aec13f8b62bb52bac08
@@ -0,0 +1 @@
+€ÝL€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0c904f0c783e05729b761038953a6a664f9e90b8 b/fuzz/corpus/qpack_decode/0c904f0c783e05729b761038953a6a664f9e90b8
new file mode 100644
index 0000000..0e28535
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0c904f0c783e05729b761038953a6a664f9e90b8
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0cab8dbb9128418198d9b7c5f66ff4f86e6ca354 b/fuzz/corpus/qpack_decode/0cab8dbb9128418198d9b7c5f66ff4f86e6ca354
new file mode 100644
index 0000000..fcdd403
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0cab8dbb9128418198d9b7c5f66ff4f86e6ca354
@@ -0,0 +1 @@
+ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0ce066ef8310f97276bfc3d3d6cd4194bc33cf77 b/fuzz/corpus/qpack_decode/0ce066ef8310f97276bfc3d3d6cd4194bc33cf77
new file mode 100644
index 0000000..93c5196
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0ce066ef8310f97276bfc3d3d6cd4194bc33cf77
@@ -0,0 +1 @@
+ÀìÂÂÂ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0d5056e027428f5f2c97a6597d844f2e51619bff b/fuzz/corpus/qpack_decode/0d5056e027428f5f2c97a6597d844f2e51619bff
new file mode 100644
index 0000000..0c8b9ae
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0d5056e027428f5f2c97a6597d844f2e51619bff
@@ -0,0 +1 @@
+			ÿ	ÿ	ÿ	ÿ%ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ÷	ÿ	ÿ	ÿ	ÿ	ÿ		ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ		ÿÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	H	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0d538ebcbcef6a6056474a1cb0d4654d10d4e58c b/fuzz/corpus/qpack_decode/0d538ebcbcef6a6056474a1cb0d4654d10d4e58c
new file mode 100644
index 0000000..20ffe19
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0d538ebcbcef6a6056474a1cb0d4654d10d4e58c
@@ -0,0 +1 @@
+Gÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0d876660c427c626cb48d9cb7cb27e3dc4273aaf b/fuzz/corpus/qpack_decode/0d876660c427c626cb48d9cb7cb27e3dc4273aaf
new file mode 100644
index 0000000..3951142
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0d876660c427c626cb48d9cb7cb27e3dc4273aaf
@@ -0,0 +1 @@
+×ååååååååååååååååååååååååååååååååå
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0e356169b2e9f2e07bc353613c864b5bdf1a299e b/fuzz/corpus/qpack_decode/0e356169b2e9f2e07bc353613c864b5bdf1a299e
new file mode 100644
index 0000000..07be85d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0e356169b2e9f2e07bc353613c864b5bdf1a299e
@@ -0,0 +1 @@
+ÝÝ/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0e4c42802d75b692b45d53c3b4bafa3c85336dfc b/fuzz/corpus/qpack_decode/0e4c42802d75b692b45d53c3b4bafa3c85336dfc
new file mode 100644
index 0000000..9742c22
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0e4c42802d75b692b45d53c3b4bafa3c85336dfc
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/0e5983e7d689aee970ef2ddc1e1e5e34fd017c62 b/fuzz/corpus/qpack_decode/0e5983e7d689aee970ef2ddc1e1e5e34fd017c62
new file mode 100644
index 0000000..c0bbaf9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0e5983e7d689aee970ef2ddc1e1e5e34fd017c62
@@ -0,0 +1 @@
+ Òÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ 
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0e5bbef53dbd32fe5221e41c26cfbb2ffc50c513 b/fuzz/corpus/qpack_decode/0e5bbef53dbd32fe5221e41c26cfbb2ffc50c513
new file mode 100644
index 0000000..baabb33
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0e5bbef53dbd32fe5221e41c26cfbb2ffc50c513
@@ -0,0 +1 @@
+$õõ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0eb9a1e5a485905c9152da3436d3570af60bed28 b/fuzz/corpus/qpack_decode/0eb9a1e5a485905c9152da3436d3570af60bed28
new file mode 100644
index 0000000..8aa1db1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0eb9a1e5a485905c9152da3436d3570af60bed28
@@ -0,0 +1 @@
+yÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0ebf87e99f2585f844687adbe4a8b8153d2f88c3 b/fuzz/corpus/qpack_decode/0ebf87e99f2585f844687adbe4a8b8153d2f88c3
new file mode 100644
index 0000000..50a844a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0ebf87e99f2585f844687adbe4a8b8153d2f88c3
@@ -0,0 +1 @@
+($1*‚*€1*‚*€1*‚*€1*‚*€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0f38ab792aac21670fe4aa32de1b066f5bfcbabb b/fuzz/corpus/qpack_decode/0f38ab792aac21670fe4aa32de1b066f5bfcbabb
new file mode 100644
index 0000000..f9fb52e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0f38ab792aac21670fe4aa32de1b066f5bfcbabb
@@ -0,0 +1 @@
+ˆÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/0fcd2148e8bdf4ade99133e80759a58f50a23faf b/fuzz/corpus/qpack_decode/0fcd2148e8bdf4ade99133e80759a58f50a23faf
new file mode 100644
index 0000000..1991d6b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/0fcd2148e8bdf4ade99133e80759a58f50a23faf
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1054f5510bbaf706e8933efe245f9656aadb76f9 b/fuzz/corpus/qpack_decode/1054f5510bbaf706e8933efe245f9656aadb76f9
new file mode 100644
index 0000000..b2d00ea
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1054f5510bbaf706e8933efe245f9656aadb76f9
@@ -0,0 +1 @@
+;ÿ1
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/10656dabce4af8924ad72f3a8d48c476ea888627 b/fuzz/corpus/qpack_decode/10656dabce4af8924ad72f3a8d48c476ea888627
new file mode 100644
index 0000000..e1d6718
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/10656dabce4af8924ad72f3a8d48c476ea888627
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/10661fbbbddad24fac3c610328683771f2104702 b/fuzz/corpus/qpack_decode/10661fbbbddad24fac3c610328683771f2104702
new file mode 100644
index 0000000..fe291ba
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/10661fbbbddad24fac3c610328683771f2104702
@@ -0,0 +1 @@
+ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/10690dd9861d625b921d539932854aa71416e7a7 b/fuzz/corpus/qpack_decode/10690dd9861d625b921d539932854aa71416e7a7
new file mode 100644
index 0000000..96a5fa3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/10690dd9861d625b921d539932854aa71416e7a7
@@ -0,0 +1 @@
+ì*ÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/108effac1a0c7cc77903ffba7470e838613b5190 b/fuzz/corpus/qpack_decode/108effac1a0c7cc77903ffba7470e838613b5190
new file mode 100644
index 0000000..3469f0d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/108effac1a0c7cc77903ffba7470e838613b5190
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/10e20e10783c747dcdd684b3c63ff0be7ff829c1 b/fuzz/corpus/qpack_decode/10e20e10783c747dcdd684b3c63ff0be7ff829c1
new file mode 100644
index 0000000..2a896d9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/10e20e10783c747dcdd684b3c63ff0be7ff829c1
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/110eabde7360bb02d365df328e399b15c67eac23 b/fuzz/corpus/qpack_decode/110eabde7360bb02d365df328e399b15c67eac23
new file mode 100644
index 0000000..34ede5a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/110eabde7360bb02d365df328e399b15c67eac23
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/114dcb7e502f406a3b48f3230cc94a07aac40299 b/fuzz/corpus/qpack_decode/114dcb7e502f406a3b48f3230cc94a07aac40299
deleted file mode 100644
index 8219b95..0000000
--- a/fuzz/corpus/qpack_decode/114dcb7e502f406a3b48f3230cc94a07aac40299
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/114ec4a9e63f1911abd7772f2a6cbe4e46f2e4a6 b/fuzz/corpus/qpack_decode/114ec4a9e63f1911abd7772f2a6cbe4e46f2e4a6
new file mode 100644
index 0000000..82e1273
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/114ec4a9e63f1911abd7772f2a6cbe4e46f2e4a6
@@ -0,0 +1 @@
+*€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/11d5354f059afbd6b8c301e5215045e600f11d41 b/fuzz/corpus/qpack_decode/11d5354f059afbd6b8c301e5215045e600f11d41
new file mode 100644
index 0000000..8dc6092
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/11d5354f059afbd6b8c301e5215045e600f11d41
@@ -0,0 +1 @@
+î<$$$$$
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/11ec7e960533968cb7b1256b051ddefd357d5443 b/fuzz/corpus/qpack_decode/11ec7e960533968cb7b1256b051ddefd357d5443
new file mode 100644
index 0000000..b4c1e35
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/11ec7e960533968cb7b1256b051ddefd357d5443
@@ -0,0 +1 @@
+ì*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/11ecbe1da5de40c08d75cec0f4713c29971bf50f b/fuzz/corpus/qpack_decode/11ecbe1da5de40c08d75cec0f4713c29971bf50f
new file mode 100644
index 0000000..d433305
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/11ecbe1da5de40c08d75cec0f4713c29971bf50f
@@ -0,0 +1 @@
+ì*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/12a447f5477041dd8539985d098a8642a78ed214 b/fuzz/corpus/qpack_decode/12a447f5477041dd8539985d098a8642a78ed214
new file mode 100644
index 0000000..ccf1688
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/12a447f5477041dd8539985d098a8642a78ed214
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/13058e8dc3342373590523142cc20dd18a6d01c2 b/fuzz/corpus/qpack_decode/13058e8dc3342373590523142cc20dd18a6d01c2
new file mode 100644
index 0000000..6aaa447
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/13058e8dc3342373590523142cc20dd18a6d01c2
@@ -0,0 +1 @@
+ôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/131f91d526dd5804dd8f87200467408757ef5fe8 b/fuzz/corpus/qpack_decode/131f91d526dd5804dd8f87200467408757ef5fe8
new file mode 100644
index 0000000..097cdf7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/131f91d526dd5804dd8f87200467408757ef5fe8
@@ -0,0 +1 @@
+Cíáááááááááááááááá
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/13397261a996f329edf9dc405491afb9dc1754ac b/fuzz/corpus/qpack_decode/13397261a996f329edf9dc405491afb9dc1754ac
new file mode 100644
index 0000000..22502f1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/13397261a996f329edf9dc405491afb9dc1754ac
@@ -0,0 +1 @@
+êêêêêêêêêêêêêêêêê
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/133a224b15f0f82dc3f8dca5788c4d116223fd38 b/fuzz/corpus/qpack_decode/133a224b15f0f82dc3f8dca5788c4d116223fd38
new file mode 100644
index 0000000..895d697
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/133a224b15f0f82dc3f8dca5788c4d116223fd38
@@ -0,0 +1 @@
+-Õýýýýýýýý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1348d30f485212aed2277086362b5d9560afb5ce b/fuzz/corpus/qpack_decode/1348d30f485212aed2277086362b5d9560afb5ce
new file mode 100644
index 0000000..5a694e6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1348d30f485212aed2277086362b5d9560afb5ce
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/13771657037e8f5093d5f9afb140d511bbb95812 b/fuzz/corpus/qpack_decode/13771657037e8f5093d5f9afb140d511bbb95812
new file mode 100644
index 0000000..b137edc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/13771657037e8f5093d5f9afb140d511bbb95812
@@ -0,0 +1 @@
+(ÝB€B€B€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1383fa7fa9d14df37b0d9a721f2b64ee1d1e6a3d b/fuzz/corpus/qpack_decode/1383fa7fa9d14df37b0d9a721f2b64ee1d1e6a3d
new file mode 100644
index 0000000..63b37b0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1383fa7fa9d14df37b0d9a721f2b64ee1d1e6a3d
@@ -0,0 +1 @@
+!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/143204670d1a96da4c97bf311f044ef960a62001 b/fuzz/corpus/qpack_decode/143204670d1a96da4c97bf311f044ef960a62001
new file mode 100644
index 0000000..ed58ae8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/143204670d1a96da4c97bf311f044ef960a62001
@@ -0,0 +1 @@
++PtŠeÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/144fd32e88dae779429926fc1920beb8196583fa b/fuzz/corpus/qpack_decode/144fd32e88dae779429926fc1920beb8196583fa
new file mode 100644
index 0000000..71c663b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/144fd32e88dae779429926fc1920beb8196583fa
@@ -0,0 +1 @@
+ÙÙÙÙÙÙÙÙÙÙ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1453a1e8c4f4e1223d0dfce11cb30ae12037bdbc b/fuzz/corpus/qpack_decode/1453a1e8c4f4e1223d0dfce11cb30ae12037bdbc
new file mode 100644
index 0000000..0364bc7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1453a1e8c4f4e1223d0dfce11cb30ae12037bdbc
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1466c9a547be8a5cdb9a66eb97c2955c0aed79e3 b/fuzz/corpus/qpack_decode/1466c9a547be8a5cdb9a66eb97c2955c0aed79e3
new file mode 100644
index 0000000..b2797c9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1466c9a547be8a5cdb9a66eb97c2955c0aed79e3
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1488f0bbe93449cea1196e20aea718ab93a375e5 b/fuzz/corpus/qpack_decode/1488f0bbe93449cea1196e20aea718ab93a375e5
new file mode 100644
index 0000000..87332e5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1488f0bbe93449cea1196e20aea718ab93a375e5
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/148ad11d53fb96053bd6208d69da9559c9f41590 b/fuzz/corpus/qpack_decode/148ad11d53fb96053bd6208d69da9559c9f41590
new file mode 100644
index 0000000..0a0c52c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/148ad11d53fb96053bd6208d69da9559c9f41590
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/14cda74edbae4f0e500c770ed1a41f6685d1bdb3 b/fuzz/corpus/qpack_decode/14cda74edbae4f0e500c770ed1a41f6685d1bdb3
new file mode 100644
index 0000000..c3f5291
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/14cda74edbae4f0e500c770ed1a41f6685d1bdb3
@@ -0,0 +1 @@
+ÀÄÌ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/155c359e9902abccbc42bd17224ce0a57f3e2890 b/fuzz/corpus/qpack_decode/155c359e9902abccbc42bd17224ce0a57f3e2890
new file mode 100644
index 0000000..22a9ab2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/155c359e9902abccbc42bd17224ce0a57f3e2890
@@ -0,0 +1 @@
+àààààààààà
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/15e3166923cd73c2e884e9dbcbe7005242e1dc56 b/fuzz/corpus/qpack_decode/15e3166923cd73c2e884e9dbcbe7005242e1dc56
new file mode 100644
index 0000000..c36190b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/15e3166923cd73c2e884e9dbcbe7005242e1dc56
@@ -0,0 +1 @@
+ÐÔòòòÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/164573bf83960f0dcf956384594b266e40cc9e0a b/fuzz/corpus/qpack_decode/164573bf83960f0dcf956384594b266e40cc9e0a
new file mode 100644
index 0000000..dd1981f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/164573bf83960f0dcf956384594b266e40cc9e0a
@@ -0,0 +1 @@
+ÍÍÍÍÍÍÍÍÍÍ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/165602852975ce855642a55c3ad2adcb669af7d9 b/fuzz/corpus/qpack_decode/165602852975ce855642a55c3ad2adcb669af7d9
new file mode 100644
index 0000000..f584d6e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/165602852975ce855642a55c3ad2adcb669af7d9
@@ -0,0 +1 @@
+öþÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/16fae7c030376a640e7cd962a4244f0ce6c25a51 b/fuzz/corpus/qpack_decode/16fae7c030376a640e7cd962a4244f0ce6c25a51
deleted file mode 100644
index c423586..0000000
--- a/fuzz/corpus/qpack_decode/16fae7c030376a640e7cd962a4244f0ce6c25a51
+++ /dev/null
@@ -1 +0,0 @@
-îïïïïæ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/171f460578e74855fed0a822f0848955fe1d62a3 b/fuzz/corpus/qpack_decode/171f460578e74855fed0a822f0848955fe1d62a3
new file mode 100644
index 0000000..ca59fd4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/171f460578e74855fed0a822f0848955fe1d62a3
@@ -0,0 +1 @@
+øÛÆÆÆÆÆÆÆÆ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/17775221c21e306d6867c6f1ccd6b20e51d3790d b/fuzz/corpus/qpack_decode/17775221c21e306d6867c6f1ccd6b20e51d3790d
new file mode 100644
index 0000000..78f919e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/17775221c21e306d6867c6f1ccd6b20e51d3790d
@@ -0,0 +1 @@
+öööööööööö
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/17a779aff679461845b3ff338719199548425e52 b/fuzz/corpus/qpack_decode/17a779aff679461845b3ff338719199548425e52
new file mode 100644
index 0000000..477e43b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/17a779aff679461845b3ff338719199548425e52
@@ -0,0 +1 @@
+(ÝB€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/17d6fdc9d91f517d76ef4742446386a0f06e2559 b/fuzz/corpus/qpack_decode/17d6fdc9d91f517d76ef4742446386a0f06e2559
new file mode 100644
index 0000000..0757d2e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/17d6fdc9d91f517d76ef4742446386a0f06e2559
@@ -0,0 +1 @@
+0ÐÐÐñÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/17e533d7f16b61f90d2fd35ad0d6495ff5ebb329 b/fuzz/corpus/qpack_decode/17e533d7f16b61f90d2fd35ad0d6495ff5ebb329
new file mode 100644
index 0000000..1a6a4a5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/17e533d7f16b61f90d2fd35ad0d6495ff5ebb329
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/17f53a504146ea0200d450ba95b4973442883cdd b/fuzz/corpus/qpack_decode/17f53a504146ea0200d450ba95b4973442883cdd
new file mode 100644
index 0000000..c96b9fc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/17f53a504146ea0200d450ba95b4973442883cdd
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/187b4e432315777747ff174ad8a69f6652ea788d b/fuzz/corpus/qpack_decode/187b4e432315777747ff174ad8a69f6652ea788d
new file mode 100644
index 0000000..9f41804
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/187b4e432315777747ff174ad8a69f6652ea788d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/189e49ba294bbadc1a5278c2e32030a96d76b7a9 b/fuzz/corpus/qpack_decode/189e49ba294bbadc1a5278c2e32030a96d76b7a9
new file mode 100644
index 0000000..c86cd55
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/189e49ba294bbadc1a5278c2e32030a96d76b7a9
@@ -0,0 +1 @@
+ÂÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/18b4e2dfd4d6cb27b1fe9609c55097a3973dc9b3 b/fuzz/corpus/qpack_decode/18b4e2dfd4d6cb27b1fe9609c55097a3973dc9b3
deleted file mode 100644
index bc619c8..0000000
--- a/fuzz/corpus/qpack_decode/18b4e2dfd4d6cb27b1fe9609c55097a3973dc9b3
+++ /dev/null
@@ -1 +0,0 @@
-+)+ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/18d20074dff620a4490ea42f0ad2347ae7b80aec b/fuzz/corpus/qpack_decode/18d20074dff620a4490ea42f0ad2347ae7b80aec
new file mode 100644
index 0000000..245c5da
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/18d20074dff620a4490ea42f0ad2347ae7b80aec
@@ -0,0 +1 @@
+?ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ 
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/190cde9b492c3c73768207854baae175420918c2 b/fuzz/corpus/qpack_decode/190cde9b492c3c73768207854baae175420918c2
deleted file mode 100644
index c72ef09..0000000
--- a/fuzz/corpus/qpack_decode/190cde9b492c3c73768207854baae175420918c2
+++ /dev/null
@@ -1 +0,0 @@
-øÑÑÑÑþÀ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/191e6f0e8b11f7b5fc279d9dcfde3fa8d4d9c92a b/fuzz/corpus/qpack_decode/191e6f0e8b11f7b5fc279d9dcfde3fa8d4d9c92a
new file mode 100644
index 0000000..e285ba7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/191e6f0e8b11f7b5fc279d9dcfde3fa8d4d9c92a
@@ -0,0 +1 @@
+ANÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/194e0a06ba6e6fc3573aeea257ebffb6f18a1f34 b/fuzz/corpus/qpack_decode/194e0a06ba6e6fc3573aeea257ebffb6f18a1f34
new file mode 100644
index 0000000..0f0012b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/194e0a06ba6e6fc3573aeea257ebffb6f18a1f34
@@ -0,0 +1 @@
+øøÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/195de33337950a5258789a9422fccf3420a2d0ed b/fuzz/corpus/qpack_decode/195de33337950a5258789a9422fccf3420a2d0ed
new file mode 100644
index 0000000..a5a5d05
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/195de33337950a5258789a9422fccf3420a2d0ed
@@ -0,0 +1 @@
+è+ßÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1a2f06797fe880125c17f7794c86fe85a11bc707 b/fuzz/corpus/qpack_decode/1a2f06797fe880125c17f7794c86fe85a11bc707
new file mode 100644
index 0000000..4cebb11
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1a2f06797fe880125c17f7794c86fe85a11bc707
@@ -0,0 +1 @@
+	`ÿ		
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1ad3bf8b977603847deb588fb9efe6dd442066cd b/fuzz/corpus/qpack_decode/1ad3bf8b977603847deb588fb9efe6dd442066cd
new file mode 100644
index 0000000..cabf5c7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1ad3bf8b977603847deb588fb9efe6dd442066cd
@@ -0,0 +1 @@
+"îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1b25d16f3347cf6f9866b27fa8db7a5cc16738c4 b/fuzz/corpus/qpack_decode/1b25d16f3347cf6f9866b27fa8db7a5cc16738c4
new file mode 100644
index 0000000..9b14471
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1b25d16f3347cf6f9866b27fa8db7a5cc16738c4
@@ -0,0 +1 @@
+ÇÇÇÇÇ?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1b528af125669f96563b27ae5ea85c0a97275d51 b/fuzz/corpus/qpack_decode/1b528af125669f96563b27ae5ea85c0a97275d51
new file mode 100644
index 0000000..8e59e71
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1b528af125669f96563b27ae5ea85c0a97275d51
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1bdc79d003d2737e3451b0c2294cacaf2404dc35 b/fuzz/corpus/qpack_decode/1bdc79d003d2737e3451b0c2294cacaf2404dc35
new file mode 100644
index 0000000..fcb3bca
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1bdc79d003d2737e3451b0c2294cacaf2404dc35
@@ -0,0 +1 @@
+ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1c1ff349da4110b6cd43fde3a4c8ebdbe3fba4a4 b/fuzz/corpus/qpack_decode/1c1ff349da4110b6cd43fde3a4c8ebdbe3fba4a4
new file mode 100644
index 0000000..5fbd675
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1c1ff349da4110b6cd43fde3a4c8ebdbe3fba4a4
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1c2ddedb13970578c6816ba59375d77ce2e56df2 b/fuzz/corpus/qpack_decode/1c2ddedb13970578c6816ba59375d77ce2e56df2
new file mode 100644
index 0000000..6df151d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1c2ddedb13970578c6816ba59375d77ce2e56df2
@@ -0,0 +1 @@
+þùùùùùùùùùùùùùùùùù
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1c66b608e101a452c02a65f53120795aa399d87c b/fuzz/corpus/qpack_decode/1c66b608e101a452c02a65f53120795aa399d87c
new file mode 100644
index 0000000..944f3b0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1c66b608e101a452c02a65f53120795aa399d87c
@@ -0,0 +1 @@
+àààààààààààààààààà
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1c75782fb72f0a219d74536b11d27e9e2899809b b/fuzz/corpus/qpack_decode/1c75782fb72f0a219d74536b11d27e9e2899809b
new file mode 100644
index 0000000..f0c8727
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1c75782fb72f0a219d74536b11d27e9e2899809b
@@ -0,0 +1 @@
+[ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1c81635c7acd85ecae9b0098c4c941e8893682fe b/fuzz/corpus/qpack_decode/1c81635c7acd85ecae9b0098c4c941e8893682fe
new file mode 100644
index 0000000..79c40ea
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1c81635c7acd85ecae9b0098c4c941e8893682fe
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1cb53efeab8cb7153d77118db868580a991ee913 b/fuzz/corpus/qpack_decode/1cb53efeab8cb7153d77118db868580a991ee913
new file mode 100644
index 0000000..f9ca9d7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1cb53efeab8cb7153d77118db868580a991ee913
@@ -0,0 +1 @@
+}õ)сõ)сõ)сõ)сõ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1cc1a4a09897a4943b359c6bbe686dbaaaac2109 b/fuzz/corpus/qpack_decode/1cc1a4a09897a4943b359c6bbe686dbaaaac2109
new file mode 100644
index 0000000..2b03f8a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1cc1a4a09897a4943b359c6bbe686dbaaaac2109
@@ -0,0 +1 @@
++ýëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëë
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1ceb5beac957459520f3b022f014f7d312f0f5a0 b/fuzz/corpus/qpack_decode/1ceb5beac957459520f3b022f014f7d312f0f5a0
new file mode 100644
index 0000000..390762e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1ceb5beac957459520f3b022f014f7d312f0f5a0
@@ -0,0 +1 @@
+€Ý-€-€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1d0cbe4ff97e20621002aac21f7707e887443c45 b/fuzz/corpus/qpack_decode/1d0cbe4ff97e20621002aac21f7707e887443c45
new file mode 100644
index 0000000..b97b668
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1d0cbe4ff97e20621002aac21f7707e887443c45
@@ -0,0 +1 @@
+öìÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1d2d917bbf96aeea60f2361e2338ec922c3810ee b/fuzz/corpus/qpack_decode/1d2d917bbf96aeea60f2361e2338ec922c3810ee
new file mode 100644
index 0000000..59580a6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1d2d917bbf96aeea60f2361e2338ec922c3810ee
@@ -0,0 +1 @@
+ËÏà'
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1d3df0ba764389b7c08cbd05510753d722490d4a b/fuzz/corpus/qpack_decode/1d3df0ba764389b7c08cbd05510753d722490d4a
new file mode 100644
index 0000000..36d8626
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1d3df0ba764389b7c08cbd05510753d722490d4a
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1d66ef8c1d8f009b44d05e3bf7d483dd1649bdbf b/fuzz/corpus/qpack_decode/1d66ef8c1d8f009b44d05e3bf7d483dd1649bdbf
new file mode 100644
index 0000000..b0c28d1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1d66ef8c1d8f009b44d05e3bf7d483dd1649bdbf
@@ -0,0 +1 @@
+ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1d6c00eb7afb27ac9f3b94240dd3905f28c083d3 b/fuzz/corpus/qpack_decode/1d6c00eb7afb27ac9f3b94240dd3905f28c083d3
new file mode 100644
index 0000000..4b1b6fc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1d6c00eb7afb27ac9f3b94240dd3905f28c083d3
@@ -0,0 +1 @@
+?ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1de7671ccae9589d0be0db70ddaabac1303fa209 b/fuzz/corpus/qpack_decode/1de7671ccae9589d0be0db70ddaabac1303fa209
new file mode 100644
index 0000000..8057636
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1de7671ccae9589d0be0db70ddaabac1303fa209
@@ -0,0 +1 @@
+¼ÂÆÆÆ%
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1e07554d871857d402da21228e5da62ffa31c5e0 b/fuzz/corpus/qpack_decode/1e07554d871857d402da21228e5da62ffa31c5e0
new file mode 100644
index 0000000..d521a6d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1e07554d871857d402da21228e5da62ffa31c5e0
@@ -0,0 +1 @@
+ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1e0aac7a21a014511254acbb541cc02a7226da37 b/fuzz/corpus/qpack_decode/1e0aac7a21a014511254acbb541cc02a7226da37
new file mode 100644
index 0000000..b1947e6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1e0aac7a21a014511254acbb541cc02a7226da37
@@ -0,0 +1 @@
+9ëüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1e380478f2c987599aecd987ea466cc01269daef b/fuzz/corpus/qpack_decode/1e380478f2c987599aecd987ea466cc01269daef
new file mode 100644
index 0000000..4d32c40
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1e380478f2c987599aecd987ea466cc01269daef
@@ -0,0 +1 @@
+ò€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1e4ec4991a50f6b0e916a91450132e0caee539d2 b/fuzz/corpus/qpack_decode/1e4ec4991a50f6b0e916a91450132e0caee539d2
new file mode 100644
index 0000000..7ffe62c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1e4ec4991a50f6b0e916a91450132e0caee539d2
@@ -0,0 +1 @@
+0€.€.€.€.€.€.€.€.€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1e7dafe37a8ff4a59743f46ec88f3071c2020138 b/fuzz/corpus/qpack_decode/1e7dafe37a8ff4a59743f46ec88f3071c2020138
new file mode 100644
index 0000000..3044f5f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1e7dafe37a8ff4a59743f46ec88f3071c2020138
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1ec7f0833e691fd4c14f26eb329ec93aa6bd84e3 b/fuzz/corpus/qpack_decode/1ec7f0833e691fd4c14f26eb329ec93aa6bd84e3
new file mode 100644
index 0000000..b5aca26
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1ec7f0833e691fd4c14f26eb329ec93aa6bd84e3
@@ -0,0 +1 @@
+ìâââââââââââââââââââââââââââââââââ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1eecafd236451ccd54a120443d90864ef3aa9271 b/fuzz/corpus/qpack_decode/1eecafd236451ccd54a120443d90864ef3aa9271
new file mode 100644
index 0000000..f6fb2c4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1eecafd236451ccd54a120443d90864ef3aa9271
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1efbae5fe0830fdcf7839083c6e69f4fe4454384 b/fuzz/corpus/qpack_decode/1efbae5fe0830fdcf7839083c6e69f4fe4454384
deleted file mode 100644
index 0fb49e0..0000000
--- a/fuzz/corpus/qpack_decode/1efbae5fe0830fdcf7839083c6e69f4fe4454384
+++ /dev/null
@@ -1 +0,0 @@
-öìÿøìÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1f27561be8afd597ea94cc2e495c54f1e965be2a b/fuzz/corpus/qpack_decode/1f27561be8afd597ea94cc2e495c54f1e965be2a
new file mode 100644
index 0000000..ae8548d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1f27561be8afd597ea94cc2e495c54f1e965be2a
@@ -0,0 +1 @@
+Cåìììììììììììììììììììììììììììììììì
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1f2eaa84f5f7355d1f06cde2222a9d0d5d58204f b/fuzz/corpus/qpack_decode/1f2eaa84f5f7355d1f06cde2222a9d0d5d58204f
new file mode 100644
index 0000000..1850bca
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1f2eaa84f5f7355d1f06cde2222a9d0d5d58204f
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1f36018a844b17c46cebc9c8434b77dc53477d5a b/fuzz/corpus/qpack_decode/1f36018a844b17c46cebc9c8434b77dc53477d5a
new file mode 100644
index 0000000..aeb5af5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1f36018a844b17c46cebc9c8434b77dc53477d5a
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1f8e327492df8656dcfa072906f53cd6b2782e2a b/fuzz/corpus/qpack_decode/1f8e327492df8656dcfa072906f53cd6b2782e2a
new file mode 100644
index 0000000..bf7ea16
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1f8e327492df8656dcfa072906f53cd6b2782e2a
@@ -0,0 +1 @@
+ññÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/1f9af14afac62a58adf4ece3668200d5c56bb1cd b/fuzz/corpus/qpack_decode/1f9af14afac62a58adf4ece3668200d5c56bb1cd
new file mode 100644
index 0000000..70f11a2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1f9af14afac62a58adf4ece3668200d5c56bb1cd
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/1fa5f3f5c264ba358fefb40396dfb5a9d104bbc1 b/fuzz/corpus/qpack_decode/1fa5f3f5c264ba358fefb40396dfb5a9d104bbc1
new file mode 100644
index 0000000..837a4e1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/1fa5f3f5c264ba358fefb40396dfb5a9d104bbc1
@@ -0,0 +1 @@
+*ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/200072fb2724c2bdbb2143664725f7cd9c01a601 b/fuzz/corpus/qpack_decode/200072fb2724c2bdbb2143664725f7cd9c01a601
new file mode 100644
index 0000000..33993a3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/200072fb2724c2bdbb2143664725f7cd9c01a601
@@ -0,0 +1 @@
+óæææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/201342cdddb3b8c686fb502664ac91617a4aef89 b/fuzz/corpus/qpack_decode/201342cdddb3b8c686fb502664ac91617a4aef89
new file mode 100644
index 0000000..328406f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/201342cdddb3b8c686fb502664ac91617a4aef89
@@ -0,0 +1 @@
+Nÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/206ec5414cf3813bf2a2457a09586e69b8190ebb b/fuzz/corpus/qpack_decode/206ec5414cf3813bf2a2457a09586e69b8190ebb
new file mode 100644
index 0000000..b847c3f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/206ec5414cf3813bf2a2457a09586e69b8190ebb
@@ -0,0 +1 @@
+ÞÔÔÔU
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2078145188b461e5cd5b7d243a3749f9fb39d3ba b/fuzz/corpus/qpack_decode/2078145188b461e5cd5b7d243a3749f9fb39d3ba
new file mode 100644
index 0000000..b47d467
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2078145188b461e5cd5b7d243a3749f9fb39d3ba
@@ -0,0 +1 @@
+(€R€R€R€R€R€R€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/20a881682b7ad9acf07578a1595bd08edfc9e67d b/fuzz/corpus/qpack_decode/20a881682b7ad9acf07578a1595bd08edfc9e67d
new file mode 100644
index 0000000..edf831b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/20a881682b7ad9acf07578a1595bd08edfc9e67d
@@ -0,0 +1 @@
+yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/20c738286268195b9392056ee13ce8a64226737c b/fuzz/corpus/qpack_decode/20c738286268195b9392056ee13ce8a64226737c
new file mode 100644
index 0000000..00c37f8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/20c738286268195b9392056ee13ce8a64226737c
@@ -0,0 +1 @@
+ÈÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/211fd1a5edc5c1fb342cbc4f66ed8946b1eefbb9 b/fuzz/corpus/qpack_decode/211fd1a5edc5c1fb342cbc4f66ed8946b1eefbb9
new file mode 100644
index 0000000..a075a04
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/211fd1a5edc5c1fb342cbc4f66ed8946b1eefbb9
@@ -0,0 +1 @@
+vùÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/212338d2a076db2c3ce00c2ca097410420577c01 b/fuzz/corpus/qpack_decode/212338d2a076db2c3ce00c2ca097410420577c01
new file mode 100644
index 0000000..4c32342
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/212338d2a076db2c3ce00c2ca097410420577c01
@@ -0,0 +1 @@
+*ßßßßßßßß
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/213e374bf2669c82e5ed6a1451b491d3d7d3e341 b/fuzz/corpus/qpack_decode/213e374bf2669c82e5ed6a1451b491d3d7d3e341
new file mode 100644
index 0000000..2e1a2cd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/213e374bf2669c82e5ed6a1451b491d3d7d3e341
@@ -0,0 +1,2 @@

+(-
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/21b21d595b188a91d4fb5e5dd37843f37684693e b/fuzz/corpus/qpack_decode/21b21d595b188a91d4fb5e5dd37843f37684693e
new file mode 100644
index 0000000..069183a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/21b21d595b188a91d4fb5e5dd37843f37684693e
@@ -0,0 +1 @@
+Áåÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/21e2abc5fbde4b4653d8643584fc3e5e84e72fee b/fuzz/corpus/qpack_decode/21e2abc5fbde4b4653d8643584fc3e5e84e72fee
deleted file mode 100644
index be5822e..0000000
--- a/fuzz/corpus/qpack_decode/21e2abc5fbde4b4653d8643584fc3e5e84e72fee
+++ /dev/null
@@ -1 +0,0 @@
-y1ÿöÿ™í
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/220bcfcfd84a26602fbbeeb5a9fafb3bffdb3ef9 b/fuzz/corpus/qpack_decode/220bcfcfd84a26602fbbeeb5a9fafb3bffdb3ef9
new file mode 100644
index 0000000..12ad259
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/220bcfcfd84a26602fbbeeb5a9fafb3bffdb3ef9
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2229f71c77e43ac0de736ac03a487d18cb3fee04 b/fuzz/corpus/qpack_decode/2229f71c77e43ac0de736ac03a487d18cb3fee04
new file mode 100644
index 0000000..9af82e0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2229f71c77e43ac0de736ac03a487d18cb3fee04
@@ -0,0 +1 @@
+`	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/225e1b9b8e7ee6b096b3813515c3420085a3ecd9 b/fuzz/corpus/qpack_decode/225e1b9b8e7ee6b096b3813515c3420085a3ecd9
new file mode 100644
index 0000000..bebe7d3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/225e1b9b8e7ee6b096b3813515c3420085a3ecd9
@@ -0,0 +1 @@
+CáÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/229f6b329a4f01226995173c2d567f4aa1468d84 b/fuzz/corpus/qpack_decode/229f6b329a4f01226995173c2d567f4aa1468d84
new file mode 100644
index 0000000..326322e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/229f6b329a4f01226995173c2d567f4aa1468d84
@@ -0,0 +1 @@
+$ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ 
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/22c666650e239c0c164cd5689db9cf33614f6842 b/fuzz/corpus/qpack_decode/22c666650e239c0c164cd5689db9cf33614f6842
new file mode 100644
index 0000000..7bd6c36
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/22c666650e239c0c164cd5689db9cf33614f6842
@@ -0,0 +1 @@
+ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/23361dc30922bea088294a60eb8868cae5238091 b/fuzz/corpus/qpack_decode/23361dc30922bea088294a60eb8868cae5238091
new file mode 100644
index 0000000..f5bab0a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/23361dc30922bea088294a60eb8868cae5238091
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/237d73a932344ea97b239e0da961b20f280755f5 b/fuzz/corpus/qpack_decode/237d73a932344ea97b239e0da961b20f280755f5
new file mode 100644
index 0000000..be8d4ad
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/237d73a932344ea97b239e0da961b20f280755f5
@@ -0,0 +1 @@
+Àøìììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììì
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/23c026e058f5fc205d45d0446a081a9a81162095 b/fuzz/corpus/qpack_decode/23c026e058f5fc205d45d0446a081a9a81162095
deleted file mode 100644
index 6ef78f5..0000000
--- a/fuzz/corpus/qpack_decode/23c026e058f5fc205d45d0446a081a9a81162095
+++ /dev/null
@@ -1 +0,0 @@
-2ÞÔÔÔÔÔ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2454444b5e50e30500feda82c9c2eb564458f208 b/fuzz/corpus/qpack_decode/2454444b5e50e30500feda82c9c2eb564458f208
new file mode 100644
index 0000000..4fb8f39
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2454444b5e50e30500feda82c9c2eb564458f208
@@ -0,0 +1 @@
+zËËËÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙíô
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/24b5c8f52b56ffde4c09e58ce3f48da748d3d572 b/fuzz/corpus/qpack_decode/24b5c8f52b56ffde4c09e58ce3f48da748d3d572
new file mode 100644
index 0000000..9dd866d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/24b5c8f52b56ffde4c09e58ce3f48da748d3d572
@@ -0,0 +1 @@
+ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/24bcf0c3ef056d231c76345bd13f28bf4e1d60c4 b/fuzz/corpus/qpack_decode/24bcf0c3ef056d231c76345bd13f28bf4e1d60c4
new file mode 100644
index 0000000..c8bde2a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/24bcf0c3ef056d231c76345bd13f28bf4e1d60c4
@@ -0,0 +1 @@
+ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/24d3b5a1af024ff9939c6ab4bcb6cf1659401946 b/fuzz/corpus/qpack_decode/24d3b5a1af024ff9939c6ab4bcb6cf1659401946
new file mode 100644
index 0000000..24fe951
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/24d3b5a1af024ff9939c6ab4bcb6cf1659401946
@@ -0,0 +1,64 @@
+øüÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
diff --git a/fuzz/corpus/qpack_decode/25115938216613e7b3d0cbf850b7b7feb056c87d b/fuzz/corpus/qpack_decode/25115938216613e7b3d0cbf850b7b7feb056c87d
new file mode 100644
index 0000000..3f34225
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/25115938216613e7b3d0cbf850b7b7feb056c87d
@@ -0,0 +1 @@
+Ðÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/252e978637f0103d580fd337d54ad19b0af4fb21 b/fuzz/corpus/qpack_decode/252e978637f0103d580fd337d54ad19b0af4fb21
new file mode 100644
index 0000000..7ccdd60
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/252e978637f0103d580fd337d54ad19b0af4fb21
@@ -0,0 +1 @@
+óóÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/255d1b14590439bae223e79b2c63faddd938f45f b/fuzz/corpus/qpack_decode/255d1b14590439bae223e79b2c63faddd938f45f
new file mode 100644
index 0000000..0467783
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/255d1b14590439bae223e79b2c63faddd938f45f
@@ -0,0 +1 @@
+?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/25dfeb5ee142fd98a2eb3b5e1ecb739dc5f7b269 b/fuzz/corpus/qpack_decode/25dfeb5ee142fd98a2eb3b5e1ecb739dc5f7b269
new file mode 100644
index 0000000..d6cd5d9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/25dfeb5ee142fd98a2eb3b5e1ecb739dc5f7b269
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2678305173eb7a06242244ee8352df104305f6b0 b/fuzz/corpus/qpack_decode/2678305173eb7a06242244ee8352df104305f6b0
new file mode 100644
index 0000000..4fce49d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2678305173eb7a06242244ee8352df104305f6b0
@@ -0,0 +1 @@
+Ù´Ù
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/26984d6703728b0347b841fc5562e3aa7a9b9c1f b/fuzz/corpus/qpack_decode/26984d6703728b0347b841fc5562e3aa7a9b9c1f
new file mode 100644
index 0000000..6f268e6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/26984d6703728b0347b841fc5562e3aa7a9b9c1f
@@ -0,0 +1 @@
+ãããããããããããããããã
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/26d9942a196e57d6a8c3943715a8fbd499c5c0b1 b/fuzz/corpus/qpack_decode/26d9942a196e57d6a8c3943715a8fbd499c5c0b1
new file mode 100644
index 0000000..d3b5c4e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/26d9942a196e57d6a8c3943715a8fbd499c5c0b1
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/26e018554ce080a5f2de1de60342ed683bb8d6c1 b/fuzz/corpus/qpack_decode/26e018554ce080a5f2de1de60342ed683bb8d6c1
new file mode 100644
index 0000000..3164d81
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/26e018554ce080a5f2de1de60342ed683bb8d6c1
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/27498f0c20af2266697e1c727d35143a68c265b8 b/fuzz/corpus/qpack_decode/27498f0c20af2266697e1c727d35143a68c265b8
new file mode 100644
index 0000000..86485a8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/27498f0c20af2266697e1c727d35143a68c265b8
@@ -0,0 +1 @@
+2€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/27535750707f4459ce219e962e7a7cfda9cd2851 b/fuzz/corpus/qpack_decode/27535750707f4459ce219e962e7a7cfda9cd2851
new file mode 100644
index 0000000..90f037d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/27535750707f4459ce219e962e7a7cfda9cd2851
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/27c97fda3581ec29625ba69e64db46560b451a3a b/fuzz/corpus/qpack_decode/27c97fda3581ec29625ba69e64db46560b451a3a
new file mode 100644
index 0000000..7dd9bbc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/27c97fda3581ec29625ba69e64db46560b451a3a
@@ -0,0 +1 @@
+ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/27debbd0ef4fa787f7eeca4515d94819fcf934d3 b/fuzz/corpus/qpack_decode/27debbd0ef4fa787f7eeca4515d94819fcf934d3
new file mode 100644
index 0000000..d58c92a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/27debbd0ef4fa787f7eeca4515d94819fcf934d3
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/27ea2ad64b81b0600dbca0b19abfca6463401888 b/fuzz/corpus/qpack_decode/27ea2ad64b81b0600dbca0b19abfca6463401888
new file mode 100644
index 0000000..808c0be
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/27ea2ad64b81b0600dbca0b19abfca6463401888
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2852b8ee254e3f545355448e8ac596bc55147156 b/fuzz/corpus/qpack_decode/2852b8ee254e3f545355448e8ac596bc55147156
new file mode 100644
index 0000000..e5c5a1c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2852b8ee254e3f545355448e8ac596bc55147156
@@ -0,0 +1 @@
+ÝA€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2867ae90904afac711f6ee7635e5a3c000bc0ee5 b/fuzz/corpus/qpack_decode/2867ae90904afac711f6ee7635e5a3c000bc0ee5
new file mode 100644
index 0000000..a0ffadf
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2867ae90904afac711f6ee7635e5a3c000bc0ee5
@@ -0,0 +1 @@
+â×ââââââââ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2872ecc7d880bc6089418d12044e5724d0ed1418 b/fuzz/corpus/qpack_decode/2872ecc7d880bc6089418d12044e5724d0ed1418
new file mode 100644
index 0000000..d201444
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2872ecc7d880bc6089418d12044e5724d0ed1418
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/287db5ec4f0cea2c0243d3c1c5123494eef2b21c b/fuzz/corpus/qpack_decode/287db5ec4f0cea2c0243d3c1c5123494eef2b21c
new file mode 100644
index 0000000..5f5e5b7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/287db5ec4f0cea2c0243d3c1c5123494eef2b21c
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/28cf8630158078368d90257b7653822b291b31ad b/fuzz/corpus/qpack_decode/28cf8630158078368d90257b7653822b291b31ad
new file mode 100644
index 0000000..9594d04
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/28cf8630158078368d90257b7653822b291b31ad
@@ -0,0 +1 @@
+1ðÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/28d13baefb8ff2c257de1a6a464bfb1837e6aa97 b/fuzz/corpus/qpack_decode/28d13baefb8ff2c257de1a6a464bfb1837e6aa97
new file mode 100644
index 0000000..e60e81e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/28d13baefb8ff2c257de1a6a464bfb1837e6aa97
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/290cfcca59af916307ddc857317949a1358ead6f b/fuzz/corpus/qpack_decode/290cfcca59af916307ddc857317949a1358ead6f
new file mode 100644
index 0000000..48762f4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/290cfcca59af916307ddc857317949a1358ead6f
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/294c1bc66f485447a6adfef589e03fb7edc71d36 b/fuzz/corpus/qpack_decode/294c1bc66f485447a6adfef589e03fb7edc71d36
new file mode 100644
index 0000000..e33b8db
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/294c1bc66f485447a6adfef589e03fb7edc71d36
@@ -0,0 +1 @@
+Óûÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/295e7f61f85213d8cd02be55767c9f24a997214d b/fuzz/corpus/qpack_decode/295e7f61f85213d8cd02be55767c9f24a997214d
new file mode 100644
index 0000000..b734007
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/295e7f61f85213d8cd02be55767c9f24a997214d
@@ -0,0 +1 @@
+'ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/298c519244851f732e7beba0b41989aa845f7333 b/fuzz/corpus/qpack_decode/298c519244851f732e7beba0b41989aa845f7333
new file mode 100644
index 0000000..1489348
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/298c519244851f732e7beba0b41989aa845f7333
@@ -0,0 +1 @@
+ÄÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2a106b4c84bc5fe5a4ce7de1bc0f2eba96405619 b/fuzz/corpus/qpack_decode/2a106b4c84bc5fe5a4ce7de1bc0f2eba96405619
new file mode 100644
index 0000000..f3c56b3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2a106b4c84bc5fe5a4ce7de1bc0f2eba96405619
@@ -0,0 +1 @@
+)Ðÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2a30929024b6a4f844b4dd0489d80f03b08cef37 b/fuzz/corpus/qpack_decode/2a30929024b6a4f844b4dd0489d80f03b08cef37
new file mode 100644
index 0000000..07b31f4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2a30929024b6a4f844b4dd0489d80f03b08cef37
@@ -0,0 +1 @@
+ññññññññññññññññññññññññññññññññññ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2ae795e0af76e6fee8498df7c0692934e63f291d b/fuzz/corpus/qpack_decode/2ae795e0af76e6fee8498df7c0692934e63f291d
new file mode 100644
index 0000000..f94b0c8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2ae795e0af76e6fee8498df7c0692934e63f291d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2b133c037ddc3f0be1de53d34bb750c92ada316d b/fuzz/corpus/qpack_decode/2b133c037ddc3f0be1de53d34bb750c92ada316d
new file mode 100644
index 0000000..7aa4136
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2b133c037ddc3f0be1de53d34bb750c92ada316d
@@ -0,0 +1 @@
+Cíáááááááááááááááááááááááááááááááá
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2b797f57567c4f48416794702f5a75385b0d0554 b/fuzz/corpus/qpack_decode/2b797f57567c4f48416794702f5a75385b0d0554
new file mode 100644
index 0000000..8a4111f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2b797f57567c4f48416794702f5a75385b0d0554
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2b9cc24d7fa49d11d387c252a841fc352359f335 b/fuzz/corpus/qpack_decode/2b9cc24d7fa49d11d387c252a841fc352359f335
new file mode 100644
index 0000000..11245c8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2b9cc24d7fa49d11d387c252a841fc352359f335
@@ -0,0 +1 @@
+1ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2ba46bacdff2b64102f9c2d1ecc7f3c25072e189 b/fuzz/corpus/qpack_decode/2ba46bacdff2b64102f9c2d1ecc7f3c25072e189
new file mode 100644
index 0000000..f4ee9fb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2ba46bacdff2b64102f9c2d1ecc7f3c25072e189
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2bd7c37403b4afa3e8e29ab4abfdf968c1a5cd9d b/fuzz/corpus/qpack_decode/2bd7c37403b4afa3e8e29ab4abfdf968c1a5cd9d
new file mode 100644
index 0000000..5deddaa
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2bd7c37403b4afa3e8e29ab4abfdf968c1a5cd9d
@@ -0,0 +1 @@
+øÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2c2cadd05af93e5ee9e6765f7ac75ba2db3da98e b/fuzz/corpus/qpack_decode/2c2cadd05af93e5ee9e6765f7ac75ba2db3da98e
new file mode 100644
index 0000000..76ed9bc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2c2cadd05af93e5ee9e6765f7ac75ba2db3da98e
@@ -0,0 +1 @@
+++ÿ"ÿ"ÿ"ÿ"
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2c5356ee123c00883102011e67328faa5ef802ec b/fuzz/corpus/qpack_decode/2c5356ee123c00883102011e67328faa5ef802ec
new file mode 100644
index 0000000..c1481fb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2c5356ee123c00883102011e67328faa5ef802ec
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2c68a02d5f4ff0ac10e6f49f0480a035dc82fc59 b/fuzz/corpus/qpack_decode/2c68a02d5f4ff0ac10e6f49f0480a035dc82fc59
new file mode 100644
index 0000000..651fc49
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2c68a02d5f4ff0ac10e6f49f0480a035dc82fc59
@@ -0,0 +1 @@
+ïTÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2cce7512997ca0163c717d9a2406c086a0363a69 b/fuzz/corpus/qpack_decode/2cce7512997ca0163c717d9a2406c086a0363a69
new file mode 100644
index 0000000..8efd3d5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2cce7512997ca0163c717d9a2406c086a0363a69
@@ -0,0 +1 @@
+ø(.€.€.€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2cef7d5663a28b331f7660f409affdcaae3670d4 b/fuzz/corpus/qpack_decode/2cef7d5663a28b331f7660f409affdcaae3670d4
new file mode 100644
index 0000000..f4b523d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2cef7d5663a28b331f7660f409affdcaae3670d4
@@ -0,0 +1 @@
+ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2d35639d464b39f237a200dcb8496b29d2c20b6b b/fuzz/corpus/qpack_decode/2d35639d464b39f237a200dcb8496b29d2c20b6b
new file mode 100644
index 0000000..a393100
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2d35639d464b39f237a200dcb8496b29d2c20b6b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2d3dbfa402242b52bd3ed2df17c1f84367e055f0 b/fuzz/corpus/qpack_decode/2d3dbfa402242b52bd3ed2df17c1f84367e055f0
new file mode 100644
index 0000000..c9733cd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2d3dbfa402242b52bd3ed2df17c1f84367e055f0
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2d508c1042982b3abb09d32db0eb74d95fd383a9 b/fuzz/corpus/qpack_decode/2d508c1042982b3abb09d32db0eb74d95fd383a9
deleted file mode 100644
index fb21926..0000000
--- a/fuzz/corpus/qpack_decode/2d508c1042982b3abb09d32db0eb74d95fd383a9
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2d887b2de91a925a194bf021efd0d353f56b7582 b/fuzz/corpus/qpack_decode/2d887b2de91a925a194bf021efd0d353f56b7582
new file mode 100644
index 0000000..47bf3cb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2d887b2de91a925a194bf021efd0d353f56b7582
@@ -0,0 +1 @@
+àá1??&??&??&?J?'??&á?&á!á&á?&???&?á??&?'??&á?&á!á&á?&???&?á??&?4&á?&??'á%?,??&?á?1&á?&?0?'á%?á?&?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2d92a1deb1df02a146bbfaf50d5ae7156943939e b/fuzz/corpus/qpack_decode/2d92a1deb1df02a146bbfaf50d5ae7156943939e
new file mode 100644
index 0000000..b1c0495
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2d92a1deb1df02a146bbfaf50d5ae7156943939e
@@ -0,0 +1 @@
+ÅÅÅÅÅÅÅ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2d9bb93b2dcee8ed74bbaabdfb2bbb73fdf8f0ab b/fuzz/corpus/qpack_decode/2d9bb93b2dcee8ed74bbaabdfb2bbb73fdf8f0ab
new file mode 100644
index 0000000..107be85
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2d9bb93b2dcee8ed74bbaabdfb2bbb73fdf8f0ab
@@ -0,0 +1 @@
+îîîîîîîîî
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2dafa442c00e427792debd4b1a03d489c2fa4892 b/fuzz/corpus/qpack_decode/2dafa442c00e427792debd4b1a03d489c2fa4892
new file mode 100644
index 0000000..86b5236
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2dafa442c00e427792debd4b1a03d489c2fa4892
@@ -0,0 +1 @@
+#ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2db8cf644b31a81d1b33808acfa396d3af0b81a8 b/fuzz/corpus/qpack_decode/2db8cf644b31a81d1b33808acfa396d3af0b81a8
deleted file mode 100644
index a6c9253..0000000
--- a/fuzz/corpus/qpack_decode/2db8cf644b31a81d1b33808acfa396d3af0b81a8
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2dceb0aeb69587a1cd134f06650b38919aab464d b/fuzz/corpus/qpack_decode/2dceb0aeb69587a1cd134f06650b38919aab464d
new file mode 100644
index 0000000..3004c57
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2dceb0aeb69587a1cd134f06650b38919aab464d
@@ -0,0 +1 @@
++ÿ"ÿ"ÿ"O
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2de8ff57dbe6e382e7dfe9a443c08f11bdb99add b/fuzz/corpus/qpack_decode/2de8ff57dbe6e382e7dfe9a443c08f11bdb99add
new file mode 100644
index 0000000..3de89af
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2de8ff57dbe6e382e7dfe9a443c08f11bdb99add
@@ -0,0 +1 @@
+(€.€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2e359dfc8bcdc849f9bdf8b1b5ba1707b960533f b/fuzz/corpus/qpack_decode/2e359dfc8bcdc849f9bdf8b1b5ba1707b960533f
new file mode 100644
index 0000000..913b007
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2e359dfc8bcdc849f9bdf8b1b5ba1707b960533f
@@ -0,0 +1 @@
+ööÖ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2e72c93c69b41d467172d0346cf6d5519305732c b/fuzz/corpus/qpack_decode/2e72c93c69b41d467172d0346cf6d5519305732c
new file mode 100644
index 0000000..a68bde9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2e72c93c69b41d467172d0346cf6d5519305732c
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2eb6629c4f53c6ceee1a726a321954bc3594ae0f b/fuzz/corpus/qpack_decode/2eb6629c4f53c6ceee1a726a321954bc3594ae0f
new file mode 100644
index 0000000..dde79d5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2eb6629c4f53c6ceee1a726a321954bc3594ae0f
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2eb8eec78f01a82c361c55063cfd5a89bfefaa82 b/fuzz/corpus/qpack_decode/2eb8eec78f01a82c361c55063cfd5a89bfefaa82
new file mode 100644
index 0000000..03bf39e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2eb8eec78f01a82c361c55063cfd5a89bfefaa82
@@ -0,0 +1 @@
+€ÝF€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2edd41885c247b34202bf45b6364c213dbd6ea37 b/fuzz/corpus/qpack_decode/2edd41885c247b34202bf45b6364c213dbd6ea37
new file mode 100644
index 0000000..83417cf
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2edd41885c247b34202bf45b6364c213dbd6ea37
@@ -0,0 +1 @@
+ñëñ*
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2ef8f301b58d6fa048491fca464941906a96fa31 b/fuzz/corpus/qpack_decode/2ef8f301b58d6fa048491fca464941906a96fa31
new file mode 100644
index 0000000..42591bf
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2ef8f301b58d6fa048491fca464941906a96fa31
@@ -0,0 +1 @@
+ =ÿ""
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2f06fbaf95e9954916d9dfa43d852ae6a4d181eb b/fuzz/corpus/qpack_decode/2f06fbaf95e9954916d9dfa43d852ae6a4d181eb
new file mode 100644
index 0000000..61e01e1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2f06fbaf95e9954916d9dfa43d852ae6a4d181eb
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/2f6175c46c34b34a899afb0935722fadbeeaa2b0 b/fuzz/corpus/qpack_decode/2f6175c46c34b34a899afb0935722fadbeeaa2b0
new file mode 100644
index 0000000..61e6a83
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2f6175c46c34b34a899afb0935722fadbeeaa2b0
@@ -0,0 +1 @@
+ì*ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/2fd8c548b49d0156eb90cd32be076bd1c6d9be1a b/fuzz/corpus/qpack_decode/2fd8c548b49d0156eb90cd32be076bd1c6d9be1a
new file mode 100644
index 0000000..f641da0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/2fd8c548b49d0156eb90cd32be076bd1c6d9be1a
@@ -0,0 +1 @@
+éééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/30188b4cdfe8f272b8aa920e989775a35813dc20 b/fuzz/corpus/qpack_decode/30188b4cdfe8f272b8aa920e989775a35813dc20
new file mode 100644
index 0000000..9bc51d7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/30188b4cdfe8f272b8aa920e989775a35813dc20
@@ -0,0 +1 @@
+€ÝR€R€R€R€R€R€R€R€_R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/308872b9c9868e964900352cf9d5ac9a4c236e55 b/fuzz/corpus/qpack_decode/308872b9c9868e964900352cf9d5ac9a4c236e55
new file mode 100644
index 0000000..079d21e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/308872b9c9868e964900352cf9d5ac9a4c236e55
@@ -0,0 +1 @@
+?ÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/30bd757bbb518dee77d43e4185c6b53f4faff88c b/fuzz/corpus/qpack_decode/30bd757bbb518dee77d43e4185c6b53f4faff88c
new file mode 100644
index 0000000..f0b5468
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/30bd757bbb518dee77d43e4185c6b53f4faff88c
@@ -0,0 +1 @@
+ääëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëë
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/30c3c8dda2fea9d4cc1ddc6b76abb6b88f356b63 b/fuzz/corpus/qpack_decode/30c3c8dda2fea9d4cc1ddc6b76abb6b88f356b63
new file mode 100644
index 0000000..56d1786
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/30c3c8dda2fea9d4cc1ddc6b76abb6b88f356b63
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/30dacba48666be4d99f2c2725a6e6781f72ab4fa b/fuzz/corpus/qpack_decode/30dacba48666be4d99f2c2725a6e6781f72ab4fa
new file mode 100644
index 0000000..7c87d18
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/30dacba48666be4d99f2c2725a6e6781f72ab4fa
@@ -0,0 +1 @@
+'2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3138a3f73bd4c659fc1ca09befe96dae5f9bcebc b/fuzz/corpus/qpack_decode/3138a3f73bd4c659fc1ca09befe96dae5f9bcebc
new file mode 100644
index 0000000..b0c315c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3138a3f73bd4c659fc1ca09befe96dae5f9bcebc
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3189cad17a35ed6272a2d4e87134e27c1630466d b/fuzz/corpus/qpack_decode/3189cad17a35ed6272a2d4e87134e27c1630466d
new file mode 100644
index 0000000..1538ab9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3189cad17a35ed6272a2d4e87134e27c1630466d
@@ -0,0 +1 @@
+Ùÿ½
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/31932077ca960afbdb0bd34e16849554c4c5a6f0 b/fuzz/corpus/qpack_decode/31932077ca960afbdb0bd34e16849554c4c5a6f0
new file mode 100644
index 0000000..c3ccb2d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/31932077ca960afbdb0bd34e16849554c4c5a6f0
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/31b5939e9118c5108723dd4edb1ee89995411fc7 b/fuzz/corpus/qpack_decode/31b5939e9118c5108723dd4edb1ee89995411fc7
new file mode 100644
index 0000000..a206664
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/31b5939e9118c5108723dd4edb1ee89995411fc7
@@ -0,0 +1 @@
+øøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/31b7a864af8c7f2eec9a77ae4d8d74944a4fe1ea b/fuzz/corpus/qpack_decode/31b7a864af8c7f2eec9a77ae4d8d74944a4fe1ea
new file mode 100644
index 0000000..3a27b5b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/31b7a864af8c7f2eec9a77ae4d8d74944a4fe1ea
@@ -0,0 +1 @@
+çççççççççççççççççç
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/31c68b613ebc954e413e190960d04c42da488ad7 b/fuzz/corpus/qpack_decode/31c68b613ebc954e413e190960d04c42da488ad7
new file mode 100644
index 0000000..99693ba
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/31c68b613ebc954e413e190960d04c42da488ad7
@@ -0,0 +1 @@
+5Ùÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/31ee58407f904fae4346cdb5c2e615070e8a4aca b/fuzz/corpus/qpack_decode/31ee58407f904fae4346cdb5c2e615070e8a4aca
new file mode 100644
index 0000000..a119eb4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/31ee58407f904fae4346cdb5c2e615070e8a4aca
@@ -0,0 +1 @@
+ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/31f2a220e7e623e7afdd9fb9155536bd9e82a9bf b/fuzz/corpus/qpack_decode/31f2a220e7e623e7afdd9fb9155536bd9e82a9bf
new file mode 100644
index 0000000..765d596
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/31f2a220e7e623e7afdd9fb9155536bd9e82a9bf
@@ -0,0 +1 @@
+*ééééééééé
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/32028d8bd56cfe41dae97db4b371eb8d5bbcca51 b/fuzz/corpus/qpack_decode/32028d8bd56cfe41dae97db4b371eb8d5bbcca51
new file mode 100644
index 0000000..83e7a9f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/32028d8bd56cfe41dae97db4b371eb8d5bbcca51
@@ -0,0 +1 @@
+!?€€€€€€€€€€€€€€€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3205d1b684ee4ff8a83673b3b7ce6f9806d4238c b/fuzz/corpus/qpack_decode/3205d1b684ee4ff8a83673b3b7ce6f9806d4238c
new file mode 100644
index 0000000..ee6f458
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3205d1b684ee4ff8a83673b3b7ce6f9806d4238c
@@ -0,0 +1 @@
+öÐööö
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/322e1e8cb21f828acdfac4f3c9f446c770c0cc3d b/fuzz/corpus/qpack_decode/322e1e8cb21f828acdfac4f3c9f446c770c0cc3d
new file mode 100644
index 0000000..fc6b2c1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/322e1e8cb21f828acdfac4f3c9f446c770c0cc3d
@@ -0,0 +1 @@
+æüããã*
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/324077d510ba28b1a28b4456a83c5e6b93ec37ed b/fuzz/corpus/qpack_decode/324077d510ba28b1a28b4456a83c5e6b93ec37ed
new file mode 100644
index 0000000..02e800b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/324077d510ba28b1a28b4456a83c5e6b93ec37ed
@@ -0,0 +1 @@
+áÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3248ae1b0b89a28a596fedc24b44bab582f5538b b/fuzz/corpus/qpack_decode/3248ae1b0b89a28a596fedc24b44bab582f5538b
new file mode 100644
index 0000000..2e71564
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3248ae1b0b89a28a596fedc24b44bab582f5538b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3250aefbd19b473145647cc3750ff577e8a880cd b/fuzz/corpus/qpack_decode/3250aefbd19b473145647cc3750ff577e8a880cd
new file mode 100644
index 0000000..c6ccb34
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3250aefbd19b473145647cc3750ff577e8a880cd
@@ -0,0 +1 @@
+ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/326e11b7be976de32d47abf52e92482055e224e5 b/fuzz/corpus/qpack_decode/326e11b7be976de32d47abf52e92482055e224e5
new file mode 100644
index 0000000..abde88c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/326e11b7be976de32d47abf52e92482055e224e5
@@ -0,0 +1 @@
+1ÊÊÊÊÊÊÊÊÊ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3275235eba4fec4cfc9c5f9d75fb58c7d007fce6 b/fuzz/corpus/qpack_decode/3275235eba4fec4cfc9c5f9d75fb58c7d007fce6
new file mode 100644
index 0000000..22aabd2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3275235eba4fec4cfc9c5f9d75fb58c7d007fce6
@@ -0,0 +1 @@
+øøÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/328234764a9442509b23acbfe4c1f996cf28e70f b/fuzz/corpus/qpack_decode/328234764a9442509b23acbfe4c1f996cf28e70f
new file mode 100644
index 0000000..43f0a2d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/328234764a9442509b23acbfe4c1f996cf28e70f
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/32acf657c51a2a7eacc1c428bad1cf8fb8cfca13 b/fuzz/corpus/qpack_decode/32acf657c51a2a7eacc1c428bad1cf8fb8cfca13
new file mode 100644
index 0000000..3b43343
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/32acf657c51a2a7eacc1c428bad1cf8fb8cfca13
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/33400fe7b311b13c64f312679255be80552432c8 b/fuzz/corpus/qpack_decode/33400fe7b311b13c64f312679255be80552432c8
new file mode 100644
index 0000000..f33bb6f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/33400fe7b311b13c64f312679255be80552432c8
@@ -0,0 +1 @@
+éé××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/33c71717875281c6452d37d12de4dd099dfe752e b/fuzz/corpus/qpack_decode/33c71717875281c6452d37d12de4dd099dfe752e
new file mode 100644
index 0000000..39ad466
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/33c71717875281c6452d37d12de4dd099dfe752e
@@ -0,0 +1 @@
+)ÄÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/33cb2f19271cb89447ae2bca2e73e4c4350451e6 b/fuzz/corpus/qpack_decode/33cb2f19271cb89447ae2bca2e73e4c4350451e6
new file mode 100644
index 0000000..1a27484
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/33cb2f19271cb89447ae2bca2e73e4c4350451e6
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/33f9d303ae0c9dec317e62146647c77b6d31147b b/fuzz/corpus/qpack_decode/33f9d303ae0c9dec317e62146647c77b6d31147b
new file mode 100644
index 0000000..37ece76
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/33f9d303ae0c9dec317e62146647c77b6d31147b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3459b277b0868f0b24dbca3f2cfa27459f24d49d b/fuzz/corpus/qpack_decode/3459b277b0868f0b24dbca3f2cfa27459f24d49d
new file mode 100644
index 0000000..303db0b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3459b277b0868f0b24dbca3f2cfa27459f24d49d
@@ -0,0 +1 @@
+2ÞÔÔÔÔ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3495ef2918fe03eb69de21f6063e421a8196ca22 b/fuzz/corpus/qpack_decode/3495ef2918fe03eb69de21f6063e421a8196ca22
new file mode 100644
index 0000000..8595d05
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3495ef2918fe03eb69de21f6063e421a8196ca22
@@ -0,0 +1 @@
+èèéééééééééééééééééééééééééééééééé
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/34e860df1b12607e474efb526c4047956c073453 b/fuzz/corpus/qpack_decode/34e860df1b12607e474efb526c4047956c073453
new file mode 100644
index 0000000..c8c5841
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/34e860df1b12607e474efb526c4047956c073453
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3510a1ccb8e85080e5cf2d32041cce2853fd4d2b b/fuzz/corpus/qpack_decode/3510a1ccb8e85080e5cf2d32041cce2853fd4d2b
new file mode 100644
index 0000000..45c097e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3510a1ccb8e85080e5cf2d32041cce2853fd4d2b
@@ -0,0 +1 @@
+úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/35942961e32af9dcb178fd1b02488eaa05fb1733 b/fuzz/corpus/qpack_decode/35942961e32af9dcb178fd1b02488eaa05fb1733
new file mode 100644
index 0000000..94e1f3d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/35942961e32af9dcb178fd1b02488eaa05fb1733
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/35c93d357d4fa15090388e96fb6d76290abd4485 b/fuzz/corpus/qpack_decode/35c93d357d4fa15090388e96fb6d76290abd4485
new file mode 100644
index 0000000..1a9a114
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/35c93d357d4fa15090388e96fb6d76290abd4485
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/35dc409f56c3efd67650863fefbef3e30d763011 b/fuzz/corpus/qpack_decode/35dc409f56c3efd67650863fefbef3e30d763011
new file mode 100644
index 0000000..94cfad9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/35dc409f56c3efd67650863fefbef3e30d763011
@@ -0,0 +1 @@
+Ù÷÷÷÷
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/360f2289ae14cc73fd3664fcc3a82de481ecf6e1 b/fuzz/corpus/qpack_decode/360f2289ae14cc73fd3664fcc3a82de481ecf6e1
new file mode 100644
index 0000000..da73f1d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/360f2289ae14cc73fd3664fcc3a82de481ecf6e1
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/363281c815c28f7a2bea01b46c8e15720f3df4e0 b/fuzz/corpus/qpack_decode/363281c815c28f7a2bea01b46c8e15720f3df4e0
new file mode 100644
index 0000000..26eff9a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/363281c815c28f7a2bea01b46c8e15720f3df4e0
@@ -0,0 +1 @@
+(€4€4€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/364d550e168855efd0853a8789551727b3b1a850 b/fuzz/corpus/qpack_decode/364d550e168855efd0853a8789551727b3b1a850
new file mode 100644
index 0000000..e7cab8b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/364d550e168855efd0853a8789551727b3b1a850
@@ -0,0 +1 @@
+æãüüüüüüüüüüüüüüüü
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/365adffd581dadcbe4b88d3449bbf7a09d115404 b/fuzz/corpus/qpack_decode/365adffd581dadcbe4b88d3449bbf7a09d115404
new file mode 100644
index 0000000..e9707a2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/365adffd581dadcbe4b88d3449bbf7a09d115404
@@ -0,0 +1,2 @@
+
+>?€>€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3680cb5b0bf2ffea559ec4f8d85f7e73c5861982 b/fuzz/corpus/qpack_decode/3680cb5b0bf2ffea559ec4f8d85f7e73c5861982
new file mode 100644
index 0000000..952f29b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3680cb5b0bf2ffea559ec4f8d85f7e73c5861982
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/369c88261dc79b130f580ee6ac40ce2c60b5d9cc b/fuzz/corpus/qpack_decode/369c88261dc79b130f580ee6ac40ce2c60b5d9cc
new file mode 100644
index 0000000..4fe5033
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/369c88261dc79b130f580ee6ac40ce2c60b5d9cc
@@ -0,0 +1 @@
+[øøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøø
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/36a8692360789b900c7c81a9de2059a6f6d36387 b/fuzz/corpus/qpack_decode/36a8692360789b900c7c81a9de2059a6f6d36387
new file mode 100644
index 0000000..c0ffab3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/36a8692360789b900c7c81a9de2059a6f6d36387
@@ -0,0 +1 @@
+(€(€(€(€(€(€(€(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/377dcde7f54069587c1963080b86a511d02d9519 b/fuzz/corpus/qpack_decode/377dcde7f54069587c1963080b86a511d02d9519
new file mode 100644
index 0000000..12e6bac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/377dcde7f54069587c1963080b86a511d02d9519
@@ -0,0 +1 @@
+Æöîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3780e6214091a3b0b02a65d6c3fb6ec86f70abdc b/fuzz/corpus/qpack_decode/3780e6214091a3b0b02a65d6c3fb6ec86f70abdc
new file mode 100644
index 0000000..85dada8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3780e6214091a3b0b02a65d6c3fb6ec86f70abdc
@@ -0,0 +1 @@
+Øÿ-
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/37ae850435b6b37198bcf79def85efe89b0c2fd1 b/fuzz/corpus/qpack_decode/37ae850435b6b37198bcf79def85efe89b0c2fd1
new file mode 100644
index 0000000..f23111d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/37ae850435b6b37198bcf79def85efe89b0c2fd1
@@ -0,0 +1 @@
+ÏÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/37b7e167db697587b5661c569ac38ffb5f498e41 b/fuzz/corpus/qpack_decode/37b7e167db697587b5661c569ac38ffb5f498e41
new file mode 100644
index 0000000..21144a1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/37b7e167db697587b5661c569ac38ffb5f498e41
@@ -0,0 +1,2 @@

+*€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/37f0f45eea597d4c991fb68f82339d72eb4419a0 b/fuzz/corpus/qpack_decode/37f0f45eea597d4c991fb68f82339d72eb4419a0
new file mode 100644
index 0000000..0c378d2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/37f0f45eea597d4c991fb68f82339d72eb4419a0
@@ -0,0 +1 @@
+ÒÒðððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððð
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/388a2b6d40c3a70c9f3b5cc190fd9525fa0be18e b/fuzz/corpus/qpack_decode/388a2b6d40c3a70c9f3b5cc190fd9525fa0be18e
new file mode 100644
index 0000000..1db9a05
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/388a2b6d40c3a70c9f3b5cc190fd9525fa0be18e
@@ -0,0 +1 @@
+ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/38f27cf6759cc5c5412995ab0b6eeacfb58ac4ab b/fuzz/corpus/qpack_decode/38f27cf6759cc5c5412995ab0b6eeacfb58ac4ab
new file mode 100644
index 0000000..dfc03d1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/38f27cf6759cc5c5412995ab0b6eeacfb58ac4ab
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/391370d531febcc283004b557b3d95f4831752c5 b/fuzz/corpus/qpack_decode/391370d531febcc283004b557b3d95f4831752c5
new file mode 100644
index 0000000..c00e971
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/391370d531febcc283004b557b3d95f4831752c5
@@ -0,0 +1 @@
+€ÝL€L€L€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3913928c8d0b598fe53db7d9b70ef6531134b479 b/fuzz/corpus/qpack_decode/3913928c8d0b598fe53db7d9b70ef6531134b479
new file mode 100644
index 0000000..08a00fd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3913928c8d0b598fe53db7d9b70ef6531134b479
@@ -0,0 +1 @@
+À@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3916f4b4aaa29166f3fbad22a20cb43ee8b72b7c b/fuzz/corpus/qpack_decode/3916f4b4aaa29166f3fbad22a20cb43ee8b72b7c
new file mode 100644
index 0000000..ea696c4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3916f4b4aaa29166f3fbad22a20cb43ee8b72b7c
@@ -0,0 +1 @@
+ööÀÀÀ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/39412207a2044393327d87cbaabddde289f4d434 b/fuzz/corpus/qpack_decode/39412207a2044393327d87cbaabddde289f4d434
new file mode 100644
index 0000000..6dc58f5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/39412207a2044393327d87cbaabddde289f4d434
@@ -0,0 +1 @@
+'2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/394e904bdbf878f7a1a5bf67888fb21755a8b591 b/fuzz/corpus/qpack_decode/394e904bdbf878f7a1a5bf67888fb21755a8b591
new file mode 100644
index 0000000..656ce82
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/394e904bdbf878f7a1a5bf67888fb21755a8b591
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/39fe407304e9515da8b4bea2944e2c578943bd07 b/fuzz/corpus/qpack_decode/39fe407304e9515da8b4bea2944e2c578943bd07
new file mode 100644
index 0000000..d21a7a3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/39fe407304e9515da8b4bea2944e2c578943bd07
@@ -0,0 +1 @@
+Câââ@
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3a39704aefc188b8da11f3cab15e457e35328f3c b/fuzz/corpus/qpack_decode/3a39704aefc188b8da11f3cab15e457e35328f3c
new file mode 100644
index 0000000..be00ffa
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3a39704aefc188b8da11f3cab15e457e35328f3c
@@ -0,0 +1 @@
+Dê)
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3a67eab726ac129f0b22c74dd9347a8af780f289 b/fuzz/corpus/qpack_decode/3a67eab726ac129f0b22c74dd9347a8af780f289
new file mode 100644
index 0000000..4bad731
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3a67eab726ac129f0b22c74dd9347a8af780f289
@@ -0,0 +1 @@
+ßßÖÖÖÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3a89b49a945d244dd4f005640029fc6101a967a1 b/fuzz/corpus/qpack_decode/3a89b49a945d244dd4f005640029fc6101a967a1
new file mode 100644
index 0000000..3c1e46a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3a89b49a945d244dd4f005640029fc6101a967a1
@@ -0,0 +1 @@
+öÓÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3b2fd4c127c54578e31a151052e23bbdc035fb9d b/fuzz/corpus/qpack_decode/3b2fd4c127c54578e31a151052e23bbdc035fb9d
new file mode 100644
index 0000000..fd08097
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3b2fd4c127c54578e31a151052e23bbdc035fb9d
@@ -0,0 +1 @@
+õÇÇÇÇÇÇÇÇÇA
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3ba1d610e61e6c6e86bd568168014860abc210a8 b/fuzz/corpus/qpack_decode/3ba1d610e61e6c6e86bd568168014860abc210a8
new file mode 100644
index 0000000..5fda3a2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3ba1d610e61e6c6e86bd568168014860abc210a8
@@ -0,0 +1 @@
+ÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3baea490e29f65d8ef5abccebfec25e50f93fb98 b/fuzz/corpus/qpack_decode/3baea490e29f65d8ef5abccebfec25e50f93fb98
new file mode 100644
index 0000000..064b2e4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3baea490e29f65d8ef5abccebfec25e50f93fb98
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3bb7340c5078ef8d114a07e9a453eee5f1f7ac98 b/fuzz/corpus/qpack_decode/3bb7340c5078ef8d114a07e9a453eee5f1f7ac98
new file mode 100644
index 0000000..69e4eb7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3bb7340c5078ef8d114a07e9a453eee5f1f7ac98
@@ -0,0 +1 @@
+íÙÿÿÿ$
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3bceb05497244a2ba64c01d3af12c97c9e56a990 b/fuzz/corpus/qpack_decode/3bceb05497244a2ba64c01d3af12c97c9e56a990
new file mode 100644
index 0000000..5fb8d4e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3bceb05497244a2ba64c01d3af12c97c9e56a990
@@ -0,0 +1 @@
+  ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3c3524096561bd9e65f9fd2ad0c909d6ef408b52 b/fuzz/corpus/qpack_decode/3c3524096561bd9e65f9fd2ad0c909d6ef408b52
new file mode 100644
index 0000000..12ca80b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3c3524096561bd9e65f9fd2ad0c909d6ef408b52
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3c3e4478bf87d773fc890ee969c0454764011a90 b/fuzz/corpus/qpack_decode/3c3e4478bf87d773fc890ee969c0454764011a90
new file mode 100644
index 0000000..a04519f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3c3e4478bf87d773fc890ee969c0454764011a90
@@ -0,0 +1 @@
+ööÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3c8eb89820ae0f2098a098ede2a01fc25940859f b/fuzz/corpus/qpack_decode/3c8eb89820ae0f2098a098ede2a01fc25940859f
new file mode 100644
index 0000000..63f1ad9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3c8eb89820ae0f2098a098ede2a01fc25940859f
@@ -0,0 +1 @@
+××××××××××
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3cac8dc8cf74e0547c8f1ca13976c1fd659c6e7e b/fuzz/corpus/qpack_decode/3cac8dc8cf74e0547c8f1ca13976c1fd659c6e7e
new file mode 100644
index 0000000..3a4a190
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3cac8dc8cf74e0547c8f1ca13976c1fd659c6e7e
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3cedff80950750b12f24b6563468501842639eae b/fuzz/corpus/qpack_decode/3cedff80950750b12f24b6563468501842639eae
new file mode 100644
index 0000000..17362d0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3cedff80950750b12f24b6563468501842639eae
@@ -0,0 +1 @@
+1ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3cffcb6d39ce20c97a934406601637a8d5df734e b/fuzz/corpus/qpack_decode/3cffcb6d39ce20c97a934406601637a8d5df734e
new file mode 100644
index 0000000..67df24e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3cffcb6d39ce20c97a934406601637a8d5df734e
@@ -0,0 +1 @@
+ØØúúú<
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3d1a756d06ac7f72e3f88f23049644908e229b16 b/fuzz/corpus/qpack_decode/3d1a756d06ac7f72e3f88f23049644908e229b16
new file mode 100644
index 0000000..4d524e5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3d1a756d06ac7f72e3f88f23049644908e229b16
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3d30e7438e97d8aea2cc902d56244e559608bf2c b/fuzz/corpus/qpack_decode/3d30e7438e97d8aea2cc902d56244e559608bf2c
new file mode 100644
index 0000000..0ad9f4c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3d30e7438e97d8aea2cc902d56244e559608bf2c
@@ -0,0 +1 @@
+KÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3da5e8cf383e250ab054e00d97b4e7b750946b45 b/fuzz/corpus/qpack_decode/3da5e8cf383e250ab054e00d97b4e7b750946b45
new file mode 100644
index 0000000..99704de
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3da5e8cf383e250ab054e00d97b4e7b750946b45
@@ -0,0 +1 @@
+ÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3db235eb57813955163161351c482ab60c0b5971 b/fuzz/corpus/qpack_decode/3db235eb57813955163161351c482ab60c0b5971
new file mode 100644
index 0000000..bfe86bc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3db235eb57813955163161351c482ab60c0b5971
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3db5a56bb1675752596bab07053aeeaed7faad25 b/fuzz/corpus/qpack_decode/3db5a56bb1675752596bab07053aeeaed7faad25
new file mode 100644
index 0000000..a468e34
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3db5a56bb1675752596bab07053aeeaed7faad25
@@ -0,0 +1 @@
+öÖ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3dbfdb9b7c93190bed0f0d092c268b70a4207ce4 b/fuzz/corpus/qpack_decode/3dbfdb9b7c93190bed0f0d092c268b70a4207ce4
new file mode 100644
index 0000000..db69fc2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3dbfdb9b7c93190bed0f0d092c268b70a4207ce4
@@ -0,0 +1 @@
+ÁÐÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3dd6542e15948084b4cf669327ed094141f3fce0 b/fuzz/corpus/qpack_decode/3dd6542e15948084b4cf669327ed094141f3fce0
new file mode 100644
index 0000000..5a8de89
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3dd6542e15948084b4cf669327ed094141f3fce0
@@ -0,0 +1 @@
+àààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààà
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3dfa062203007ba38a2b4b2477ea5efb501bf7fb b/fuzz/corpus/qpack_decode/3dfa062203007ba38a2b4b2477ea5efb501bf7fb
new file mode 100644
index 0000000..ef210da
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3dfa062203007ba38a2b4b2477ea5efb501bf7fb
@@ -0,0 +1 @@
+ì*ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3e3b7058b431cb664067f92c1666e209fa0fa49b b/fuzz/corpus/qpack_decode/3e3b7058b431cb664067f92c1666e209fa0fa49b
new file mode 100644
index 0000000..d553bcb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3e3b7058b431cb664067f92c1666e209fa0fa49b
@@ -0,0 +1 @@
++ÿ"ÿ"ÿ"
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3e6fd4fdbd036e6d0f75ee8e6a55f8daf3379d52 b/fuzz/corpus/qpack_decode/3e6fd4fdbd036e6d0f75ee8e6a55f8daf3379d52
new file mode 100644
index 0000000..df196a5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3e6fd4fdbd036e6d0f75ee8e6a55f8daf3379d52
@@ -0,0 +1 @@
++íÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3e955fa76745544f32f7551b6518bcf448fa99d9 b/fuzz/corpus/qpack_decode/3e955fa76745544f32f7551b6518bcf448fa99d9
new file mode 100644
index 0000000..1eccecb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3e955fa76745544f32f7551b6518bcf448fa99d9
@@ -0,0 +1 @@
+öòññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3f26bf019f07d4df95145e61127528bda535981d b/fuzz/corpus/qpack_decode/3f26bf019f07d4df95145e61127528bda535981d
new file mode 100644
index 0000000..d1d2d34
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3f26bf019f07d4df95145e61127528bda535981d
@@ -0,0 +1 @@
+ì*úúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3f338e13a9fd0cf53f449c50a3b590db3038e1c6 b/fuzz/corpus/qpack_decode/3f338e13a9fd0cf53f449c50a3b590db3038e1c6
new file mode 100644
index 0000000..403db3a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3f338e13a9fd0cf53f449c50a3b590db3038e1c6
@@ -0,0 +1 @@
+ìýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3f372414bcfffbd99aeee8a4867f1940b584d44a b/fuzz/corpus/qpack_decode/3f372414bcfffbd99aeee8a4867f1940b584d44a
new file mode 100644
index 0000000..3b78dfe
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3f372414bcfffbd99aeee8a4867f1940b584d44a
@@ -0,0 +1 @@
+**ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3f53a8c3ee18d6f29ddf95541218652ac46b9922 b/fuzz/corpus/qpack_decode/3f53a8c3ee18d6f29ddf95541218652ac46b9922
new file mode 100644
index 0000000..50cc3dd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3f53a8c3ee18d6f29ddf95541218652ac46b9922
@@ -0,0 +1 @@
+ÈÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3f693531cb2db43368b909cf5cad8bf7b89920da b/fuzz/corpus/qpack_decode/3f693531cb2db43368b909cf5cad8bf7b89920da
new file mode 100644
index 0000000..4c2af51
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3f693531cb2db43368b909cf5cad8bf7b89920da
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3fa05231413bccfd5e03de4752e6f1679f08f541 b/fuzz/corpus/qpack_decode/3fa05231413bccfd5e03de4752e6f1679f08f541
new file mode 100644
index 0000000..696e141
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3fa05231413bccfd5e03de4752e6f1679f08f541
@@ -0,0 +1 @@
+#ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3fa5bfd93317ad25772680071d5ac3259cd2384f b/fuzz/corpus/qpack_decode/3fa5bfd93317ad25772680071d5ac3259cd2384f
new file mode 100644
index 0000000..7136b4c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3fa5bfd93317ad25772680071d5ac3259cd2384f
@@ -0,0 +1 @@

\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3fafd8ff8b6826b60ea7cdc7cba70f8fd81883c8 b/fuzz/corpus/qpack_decode/3fafd8ff8b6826b60ea7cdc7cba70f8fd81883c8
new file mode 100644
index 0000000..d59c996
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3fafd8ff8b6826b60ea7cdc7cba70f8fd81883c8
@@ -0,0 +1 @@
+öîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/3fb46613c8bf0ad707bce9a0b782b82ab4d62bca b/fuzz/corpus/qpack_decode/3fb46613c8bf0ad707bce9a0b782b82ab4d62bca
new file mode 100644
index 0000000..3ee6dd3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3fb46613c8bf0ad707bce9a0b782b82ab4d62bca
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/3fc3e1d986713a39fd7a522ca03cc840be9ce5e8 b/fuzz/corpus/qpack_decode/3fc3e1d986713a39fd7a522ca03cc840be9ce5e8
new file mode 100644
index 0000000..f3e6d3b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/3fc3e1d986713a39fd7a522ca03cc840be9ce5e8
@@ -0,0 +1 @@
+10òòòòòòòòòòòòòòòò
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4052cdd3c495636fe04895d73a537fc60d18a063 b/fuzz/corpus/qpack_decode/4052cdd3c495636fe04895d73a537fc60d18a063
new file mode 100644
index 0000000..751e236
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4052cdd3c495636fe04895d73a537fc60d18a063
@@ -0,0 +1 @@
+ØØØØØØØØØØ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/409a3b38f3901f4b107e416719c72d0a43edfa35 b/fuzz/corpus/qpack_decode/409a3b38f3901f4b107e416719c72d0a43edfa35
new file mode 100644
index 0000000..b24de81
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/409a3b38f3901f4b107e416719c72d0a43edfa35
@@ -0,0 +1 @@
+ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/40e136c89eb64fb10d4535d26a88d47748a83556 b/fuzz/corpus/qpack_decode/40e136c89eb64fb10d4535d26a88d47748a83556
new file mode 100644
index 0000000..9b4ac82
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/40e136c89eb64fb10d4535d26a88d47748a83556
@@ -0,0 +1 @@
+ììÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/40eaeec1f586f97b6d66cad1eaf8d8131c455556 b/fuzz/corpus/qpack_decode/40eaeec1f586f97b6d66cad1eaf8d8131c455556
new file mode 100644
index 0000000..118ae15
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/40eaeec1f586f97b6d66cad1eaf8d8131c455556
@@ -0,0 +1 @@
+ȾÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/412f45feafaab2a669745dbbb973d9d40603ac6a b/fuzz/corpus/qpack_decode/412f45feafaab2a669745dbbb973d9d40603ac6a
new file mode 100644
index 0000000..bd30b1a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/412f45feafaab2a669745dbbb973d9d40603ac6a
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4179f6f4d8d6f29946f987b6b91a548fbb55286b b/fuzz/corpus/qpack_decode/4179f6f4d8d6f29946f987b6b91a548fbb55286b
new file mode 100644
index 0000000..51fba4d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4179f6f4d8d6f29946f987b6b91a548fbb55286b
@@ -0,0 +1 @@
+ííÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/41ea5d9c5e53ea3145a532eeb9ec7156295b30b1 b/fuzz/corpus/qpack_decode/41ea5d9c5e53ea3145a532eeb9ec7156295b30b1
new file mode 100644
index 0000000..07dd6c0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/41ea5d9c5e53ea3145a532eeb9ec7156295b30b1
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4206211dce8953ab5c49d27f21bf1569d5f4f884 b/fuzz/corpus/qpack_decode/4206211dce8953ab5c49d27f21bf1569d5f4f884
new file mode 100644
index 0000000..bc14023
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4206211dce8953ab5c49d27f21bf1569d5f4f884
@@ -0,0 +1 @@
+øÑÑÑÑÑ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/42222f9466c6975eb1f90e6d458b4e7dd5443b77 b/fuzz/corpus/qpack_decode/42222f9466c6975eb1f90e6d458b4e7dd5443b77
new file mode 100644
index 0000000..13f045d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/42222f9466c6975eb1f90e6d458b4e7dd5443b77
@@ -0,0 +1 @@
+*×ÝÝÝ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/424066cee3a23a2b7bd1bf328a865b3f25080782 b/fuzz/corpus/qpack_decode/424066cee3a23a2b7bd1bf328a865b3f25080782
new file mode 100644
index 0000000..51e3dac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/424066cee3a23a2b7bd1bf328a865b3f25080782
@@ -0,0 +1,2 @@
+
+Ý?€?€?€?€?€?€?€?€?€?€?€?€_?€?€?€?€?€?€?€?€?€?€?€_?€?€?€?€?€?€?€?€?€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/42554f617c6b28a11aafade124b558a66337302c b/fuzz/corpus/qpack_decode/42554f617c6b28a11aafade124b558a66337302c
new file mode 100644
index 0000000..adf1ec0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/42554f617c6b28a11aafade124b558a66337302c
@@ -0,0 +1 @@
+++ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/426671ca2c3373b9cbd8dcc50f7c0c228eb817df b/fuzz/corpus/qpack_decode/426671ca2c3373b9cbd8dcc50f7c0c228eb817df
new file mode 100644
index 0000000..e2d4b78
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/426671ca2c3373b9cbd8dcc50f7c0c228eb817df
@@ -0,0 +1 @@
+ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/434233ebede6c984ab2acc096a19f1a343277142 b/fuzz/corpus/qpack_decode/434233ebede6c984ab2acc096a19f1a343277142
new file mode 100644
index 0000000..095bfa8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/434233ebede6c984ab2acc096a19f1a343277142
@@ -0,0 +1 @@
+ÈÈÈÈÈÈÈÈ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4355dac91cad5d04f94644d218205301fefafa9b b/fuzz/corpus/qpack_decode/4355dac91cad5d04f94644d218205301fefafa9b
new file mode 100644
index 0000000..a38e40b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4355dac91cad5d04f94644d218205301fefafa9b
@@ -0,0 +1 @@
+ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/43564f635e00c0d1962c972bc61f84ee2e1b6d42 b/fuzz/corpus/qpack_decode/43564f635e00c0d1962c972bc61f84ee2e1b6d42
new file mode 100644
index 0000000..19c04ce
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/43564f635e00c0d1962c972bc61f84ee2e1b6d42
@@ -0,0 +1 @@
+--õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/43a7f84bb270368c4acf4d94c97fd8c225b98e5b b/fuzz/corpus/qpack_decode/43a7f84bb270368c4acf4d94c97fd8c225b98e5b
new file mode 100644
index 0000000..2b9a3d7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/43a7f84bb270368c4acf4d94c97fd8c225b98e5b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/43b812b070d967ad5cbdb142f90719c9fbfe2020 b/fuzz/corpus/qpack_decode/43b812b070d967ad5cbdb142f90719c9fbfe2020
new file mode 100644
index 0000000..b1a848e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/43b812b070d967ad5cbdb142f90719c9fbfe2020
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/442298a684b08b33c1fa54ee1d56277e77f745c0 b/fuzz/corpus/qpack_decode/442298a684b08b33c1fa54ee1d56277e77f745c0
deleted file mode 100644
index b0a9e8d..0000000
--- a/fuzz/corpus/qpack_decode/442298a684b08b33c1fa54ee1d56277e77f745c0
+++ /dev/null
@@ -1,2 +0,0 @@

-(€î*ÿ-
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/444b9a933c39eb8bb2090dff5011d660e2da1418 b/fuzz/corpus/qpack_decode/444b9a933c39eb8bb2090dff5011d660e2da1418
new file mode 100644
index 0000000..3626f89
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/444b9a933c39eb8bb2090dff5011d660e2da1418
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/449aba3b624de1661e017c13454f6388fc3cf5de b/fuzz/corpus/qpack_decode/449aba3b624de1661e017c13454f6388fc3cf5de
new file mode 100644
index 0000000..3e3b76d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/449aba3b624de1661e017c13454f6388fc3cf5de
@@ -0,0 +1 @@
+ü@€@€_@€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/450741d97d941eb0be3e32fba18603b45deabde0 b/fuzz/corpus/qpack_decode/450741d97d941eb0be3e32fba18603b45deabde0
new file mode 100644
index 0000000..6510aff
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/450741d97d941eb0be3e32fba18603b45deabde0
@@ -0,0 +1 @@
+‘óññ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/45187832dae51e95536168a4d2493f59c3f89765 b/fuzz/corpus/qpack_decode/45187832dae51e95536168a4d2493f59c3f89765
new file mode 100644
index 0000000..430c48b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/45187832dae51e95536168a4d2493f59c3f89765
@@ -0,0 +1 @@
+ÿ×
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4574800c09091cda24f1fa4b9c611af7400d36c3 b/fuzz/corpus/qpack_decode/4574800c09091cda24f1fa4b9c611af7400d36c3
new file mode 100644
index 0000000..8a06ce2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4574800c09091cda24f1fa4b9c611af7400d36c3
@@ -0,0 +1 @@
+öÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4578817594f9d442f7066aaa4e3ecb52efacf76d b/fuzz/corpus/qpack_decode/4578817594f9d442f7066aaa4e3ecb52efacf76d
new file mode 100644
index 0000000..d0eafda
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4578817594f9d442f7066aaa4e3ecb52efacf76d
@@ -0,0 +1 @@
+€ÝR€R€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/45afc0c0b9ed06afcecd794f78689392bf74c230 b/fuzz/corpus/qpack_decode/45afc0c0b9ed06afcecd794f78689392bf74c230
new file mode 100644
index 0000000..f78b90d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/45afc0c0b9ed06afcecd794f78689392bf74c230
@@ -0,0 +1 @@
+/Òâ*
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/45b56ff37170d2cd4c456ac5ecf9810614a69058 b/fuzz/corpus/qpack_decode/45b56ff37170d2cd4c456ac5ecf9810614a69058
deleted file mode 100644
index 8a73f27..0000000
--- a/fuzz/corpus/qpack_decode/45b56ff37170d2cd4c456ac5ecf9810614a69058
+++ /dev/null
@@ -1 +0,0 @@
-ì*ÿÿØÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/45d0349a8859e410836897f49f6c2beaa48d9a0c b/fuzz/corpus/qpack_decode/45d0349a8859e410836897f49f6c2beaa48d9a0c
new file mode 100644
index 0000000..d390320
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/45d0349a8859e410836897f49f6c2beaa48d9a0c
@@ -0,0 +1 @@
+ÛÛÛÛÛÛÛÛÛÛ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/45f7e450c2cc406fc9fc70c0f61c15bc80581482 b/fuzz/corpus/qpack_decode/45f7e450c2cc406fc9fc70c0f61c15bc80581482
new file mode 100644
index 0000000..119c164
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/45f7e450c2cc406fc9fc70c0f61c15bc80581482
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/45facce9fd1663194a82d81a4065c12d0b099cb3 b/fuzz/corpus/qpack_decode/45facce9fd1663194a82d81a4065c12d0b099cb3
new file mode 100644
index 0000000..d00f051
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/45facce9fd1663194a82d81a4065c12d0b099cb3
@@ -0,0 +1 @@
+öÐÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/45ff451f6bc88ac42c790678fd1c3f70c2e27f9e b/fuzz/corpus/qpack_decode/45ff451f6bc88ac42c790678fd1c3f70c2e27f9e
new file mode 100644
index 0000000..42a5a45
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/45ff451f6bc88ac42c790678fd1c3f70c2e27f9e
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/460e80ca17322770367717a96e023598601545b9 b/fuzz/corpus/qpack_decode/460e80ca17322770367717a96e023598601545b9
new file mode 100644
index 0000000..0c16934
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/460e80ca17322770367717a96e023598601545b9
@@ -0,0 +1 @@
+1ðÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/46190777c12c039f0e7772db9775e67387f0be17 b/fuzz/corpus/qpack_decode/46190777c12c039f0e7772db9775e67387f0be17
new file mode 100644
index 0000000..c3448b7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/46190777c12c039f0e7772db9775e67387f0be17
@@ -0,0 +1 @@
+@€@€@€@€@€@€@€@€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/461a27d5207f94e0c1fb310ce8a9fa40ffc1a1d8 b/fuzz/corpus/qpack_decode/461a27d5207f94e0c1fb310ce8a9fa40ffc1a1d8
new file mode 100644
index 0000000..9f584f1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/461a27d5207f94e0c1fb310ce8a9fa40ffc1a1d8
@@ -0,0 +1,8 @@
+**ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
diff --git a/fuzz/corpus/qpack_decode/470983c7b391d87c39d3e8fb310c70eaed3ef668 b/fuzz/corpus/qpack_decode/470983c7b391d87c39d3e8fb310c70eaed3ef668
new file mode 100644
index 0000000..bcf0c51
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/470983c7b391d87c39d3e8fb310c70eaed3ef668
@@ -0,0 +1 @@
+çúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/470a64c583904d6d89e85a0f6bd7f004c6e405f1 b/fuzz/corpus/qpack_decode/470a64c583904d6d89e85a0f6bd7f004c6e405f1
new file mode 100644
index 0000000..de80dc3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/470a64c583904d6d89e85a0f6bd7f004c6e405f1
@@ -0,0 +1 @@
+ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/47b28df8fd86457de93d159120040ce04739c54f b/fuzz/corpus/qpack_decode/47b28df8fd86457de93d159120040ce04739c54f
new file mode 100644
index 0000000..ad17f65
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/47b28df8fd86457de93d159120040ce04739c54f
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/482fc012c7b1e720a4f237ce7eb138f09baaa7ac b/fuzz/corpus/qpack_decode/482fc012c7b1e720a4f237ce7eb138f09baaa7ac
new file mode 100644
index 0000000..c34b8ab
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/482fc012c7b1e720a4f237ce7eb138f09baaa7ac
@@ -0,0 +1 @@
+öîçççççççççççççççççççççççççççççççç
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/48418f09e5e15215e9a72f4a0395cf94dfef5fc7 b/fuzz/corpus/qpack_decode/48418f09e5e15215e9a72f4a0395cf94dfef5fc7
new file mode 100644
index 0000000..431c969
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/48418f09e5e15215e9a72f4a0395cf94dfef5fc7
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/486a6fbfc5141b8da437687e0eb46c516931e5b7 b/fuzz/corpus/qpack_decode/486a6fbfc5141b8da437687e0eb46c516931e5b7
new file mode 100644
index 0000000..06be5fe
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/486a6fbfc5141b8da437687e0eb46c516931e5b7
@@ -0,0 +1 @@
+ÏËËËËËËËËËËËËËËËË
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/488e824db103df8019d50c745fbaffd49d7cd2ea b/fuzz/corpus/qpack_decode/488e824db103df8019d50c745fbaffd49d7cd2ea
new file mode 100644
index 0000000..fd37c02
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/488e824db103df8019d50c745fbaffd49d7cd2ea
@@ -0,0 +1 @@
+Ù"øøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøøø
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4954e00678af1423611770a5ea60bb8fb492a7a6 b/fuzz/corpus/qpack_decode/4954e00678af1423611770a5ea60bb8fb492a7a6
new file mode 100644
index 0000000..cfdf97e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4954e00678af1423611770a5ea60bb8fb492a7a6
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4a0259a4ad124a8ffa89138ff6b675c1b1bb8563 b/fuzz/corpus/qpack_decode/4a0259a4ad124a8ffa89138ff6b675c1b1bb8563
new file mode 100644
index 0000000..9eb7e12
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4a0259a4ad124a8ffa89138ff6b675c1b1bb8563
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4a23d91521a0a9f76ffd586137869510f69d08dd b/fuzz/corpus/qpack_decode/4a23d91521a0a9f76ffd586137869510f69d08dd
new file mode 100644
index 0000000..9d1cf67
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4a23d91521a0a9f76ffd586137869510f69d08dd
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4a392ac8b33cf25cceece39d4b1d846350c7bc89 b/fuzz/corpus/qpack_decode/4a392ac8b33cf25cceece39d4b1d846350c7bc89
new file mode 100644
index 0000000..a06a117
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4a392ac8b33cf25cceece39d4b1d846350c7bc89
@@ -0,0 +1 @@
+ööÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4a3c1d86c505facfb288a201f7d5080327eb1305 b/fuzz/corpus/qpack_decode/4a3c1d86c505facfb288a201f7d5080327eb1305
new file mode 100644
index 0000000..1942218
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4a3c1d86c505facfb288a201f7d5080327eb1305
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4a5b401859b4f5fa5cfd8ff0715046f11d8b7ceb b/fuzz/corpus/qpack_decode/4a5b401859b4f5fa5cfd8ff0715046f11d8b7ceb
deleted file mode 100644
index b130797..0000000
--- a/fuzz/corpus/qpack_decode/4a5b401859b4f5fa5cfd8ff0715046f11d8b7ceb
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4ab6196428519ef0825dec7e13e494f4d5be7f5f b/fuzz/corpus/qpack_decode/4ab6196428519ef0825dec7e13e494f4d5be7f5f
new file mode 100644
index 0000000..66a786d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4ab6196428519ef0825dec7e13e494f4d5be7f5f
@@ -0,0 +1 @@
+ØØØØØØØØØØØØØØØØØØ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4ad5785e36cf155998ee616303fc1e92c819960a b/fuzz/corpus/qpack_decode/4ad5785e36cf155998ee616303fc1e92c819960a
new file mode 100644
index 0000000..f121158
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4ad5785e36cf155998ee616303fc1e92c819960a
@@ -0,0 +1 @@
+ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4ae6ae63134595a4d0dff1e51ffffdf22c5095d8 b/fuzz/corpus/qpack_decode/4ae6ae63134595a4d0dff1e51ffffdf22c5095d8
new file mode 100644
index 0000000..cd34e4a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4ae6ae63134595a4d0dff1e51ffffdf22c5095d8
@@ -0,0 +1 @@
+ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4ae76e130c22f7fd45e76727882c0fe6d2d3a625 b/fuzz/corpus/qpack_decode/4ae76e130c22f7fd45e76727882c0fe6d2d3a625
new file mode 100644
index 0000000..9ec9f7d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4ae76e130c22f7fd45e76727882c0fe6d2d3a625
@@ -0,0 +1 @@
+üþÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4b2f52fecfc1337859915af40bac1e4ffe03a385 b/fuzz/corpus/qpack_decode/4b2f52fecfc1337859915af40bac1e4ffe03a385
deleted file mode 100644
index fd6dd26..0000000
--- a/fuzz/corpus/qpack_decode/4b2f52fecfc1337859915af40bac1e4ffe03a385
+++ /dev/null
@@ -1 +0,0 @@
-ÊÊååÊåååååå
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4b598b623764d73894b50c4614a5d4bcf03b07f2 b/fuzz/corpus/qpack_decode/4b598b623764d73894b50c4614a5d4bcf03b07f2
new file mode 100644
index 0000000..4552112
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4b598b623764d73894b50c4614a5d4bcf03b07f2
@@ -0,0 +1 @@
+++ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4b6b6f0278db321f8b753025550fa39838f0d43e b/fuzz/corpus/qpack_decode/4b6b6f0278db321f8b753025550fa39838f0d43e
new file mode 100644
index 0000000..b926431
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4b6b6f0278db321f8b753025550fa39838f0d43e
@@ -0,0 +1 @@
+**ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4bf848ff5e624f6e3e385048904cdd868e210e2a b/fuzz/corpus/qpack_decode/4bf848ff5e624f6e3e385048904cdd868e210e2a
new file mode 100644
index 0000000..896ba63
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4bf848ff5e624f6e3e385048904cdd868e210e2a
@@ -0,0 +1 @@
+ËÄÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4c02ab59b340d75db10af24e8faf8154b1d4053c b/fuzz/corpus/qpack_decode/4c02ab59b340d75db10af24e8faf8154b1d4053c
new file mode 100644
index 0000000..3973a18
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4c02ab59b340d75db10af24e8faf8154b1d4053c
@@ -0,0 +1 @@
+y1ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4c28e1f8ac88e41ceef99a1f4de5684897016c59 b/fuzz/corpus/qpack_decode/4c28e1f8ac88e41ceef99a1f4de5684897016c59
deleted file mode 100644
index e90abe1..0000000
--- a/fuzz/corpus/qpack_decode/4c28e1f8ac88e41ceef99a1f4de5684897016c59
+++ /dev/null
@@ -1 +0,0 @@
-ðE,ðgðð
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4c9c9242ec6cce95894aa76f9837d2ebc7a62c7e b/fuzz/corpus/qpack_decode/4c9c9242ec6cce95894aa76f9837d2ebc7a62c7e
new file mode 100644
index 0000000..1390cc7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4c9c9242ec6cce95894aa76f9837d2ebc7a62c7e
@@ -0,0 +1 @@
+×åêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêê
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4d037e009ff3ddc657dd5fa229d3559c5383c60b b/fuzz/corpus/qpack_decode/4d037e009ff3ddc657dd5fa229d3559c5383c60b
new file mode 100644
index 0000000..d4a499f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4d037e009ff3ddc657dd5fa229d3559c5383c60b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4d46b7299de8bdf85b376f66f89bc633b18ad088 b/fuzz/corpus/qpack_decode/4d46b7299de8bdf85b376f66f89bc633b18ad088
new file mode 100644
index 0000000..fe5ba58
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4d46b7299de8bdf85b376f66f89bc633b18ad088
@@ -0,0 +1 @@
+2ÖÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4d4ed86bd358cbf02f2805ba601133a7b00b5fc0 b/fuzz/corpus/qpack_decode/4d4ed86bd358cbf02f2805ba601133a7b00b5fc0
new file mode 100644
index 0000000..582b24a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4d4ed86bd358cbf02f2805ba601133a7b00b5fc0
@@ -0,0 +1 @@
++íÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4d6fcc14fafab349fe7f4f3290d5b95ec79da803 b/fuzz/corpus/qpack_decode/4d6fcc14fafab349fe7f4f3290d5b95ec79da803
new file mode 100644
index 0000000..78916ea
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4d6fcc14fafab349fe7f4f3290d5b95ec79da803
@@ -0,0 +1 @@
+ííÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4d83fada8c2ab9f3b4c06262d7f8341f45543ec4 b/fuzz/corpus/qpack_decode/4d83fada8c2ab9f3b4c06262d7f8341f45543ec4
new file mode 100644
index 0000000..e3ce300
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4d83fada8c2ab9f3b4c06262d7f8341f45543ec4
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4dbd03b7545e1e9a736ddb03a5a4b2097bc8977b b/fuzz/corpus/qpack_decode/4dbd03b7545e1e9a736ddb03a5a4b2097bc8977b
new file mode 100644
index 0000000..c06053e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4dbd03b7545e1e9a736ddb03a5a4b2097bc8977b
@@ -0,0 +1 @@
+11××××××××××××××××
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4dbe1fa0bd8ab848c42c93e25899b33193368c2b b/fuzz/corpus/qpack_decode/4dbe1fa0bd8ab848c42c93e25899b33193368c2b
new file mode 100644
index 0000000..e031cb4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4dbe1fa0bd8ab848c42c93e25899b33193368c2b
@@ -0,0 +1 @@
+ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4dbfcbb666085693548b086ea3f579ff217a6cbf b/fuzz/corpus/qpack_decode/4dbfcbb666085693548b086ea3f579ff217a6cbf
new file mode 100644
index 0000000..9799e9e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4dbfcbb666085693548b086ea3f579ff217a6cbf
@@ -0,0 +1 @@
+)ÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4e075f8dfebcbc252e56d6b199f4dfd581d3b29a b/fuzz/corpus/qpack_decode/4e075f8dfebcbc252e56d6b199f4dfd581d3b29a
new file mode 100644
index 0000000..6e9d88e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4e075f8dfebcbc252e56d6b199f4dfd581d3b29a
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4e113b19596ff8e7d05f169f22eb87d0e0c93d1d b/fuzz/corpus/qpack_decode/4e113b19596ff8e7d05f169f22eb87d0e0c93d1d
new file mode 100644
index 0000000..72a20e4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4e113b19596ff8e7d05f169f22eb87d0e0c93d1d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4ed541075f38003d102d3e88e4e5bd3157aa531e b/fuzz/corpus/qpack_decode/4ed541075f38003d102d3e88e4e5bd3157aa531e
new file mode 100644
index 0000000..de01f2f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4ed541075f38003d102d3e88e4e5bd3157aa531e
@@ -0,0 +1 @@
+#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4f002fe2b0b6ef416b3694441e7bf1276a616193 b/fuzz/corpus/qpack_decode/4f002fe2b0b6ef416b3694441e7bf1276a616193
new file mode 100644
index 0000000..ae0a9b4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4f002fe2b0b6ef416b3694441e7bf1276a616193
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4f8490baa5a9e2d40d5c90834e03d1e1dc8b9a2f b/fuzz/corpus/qpack_decode/4f8490baa5a9e2d40d5c90834e03d1e1dc8b9a2f
deleted file mode 100644
index fa67c8c..0000000
--- a/fuzz/corpus/qpack_decode/4f8490baa5a9e2d40d5c90834e03d1e1dc8b9a2f
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/4fbe25fd65eca39ed68478d1977b9001da654ad2 b/fuzz/corpus/qpack_decode/4fbe25fd65eca39ed68478d1977b9001da654ad2
new file mode 100644
index 0000000..529537f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4fbe25fd65eca39ed68478d1977b9001da654ad2
@@ -0,0 +1 @@
+ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4fbf53c45920aff0bed1d1be296cddca59a853b7 b/fuzz/corpus/qpack_decode/4fbf53c45920aff0bed1d1be296cddca59a853b7
new file mode 100644
index 0000000..19cbeff
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4fbf53c45920aff0bed1d1be296cddca59a853b7
@@ -0,0 +1 @@
+2öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/4fd1f6a7cd9cfddfbfa96aa8de53f6bcde4ad8bb b/fuzz/corpus/qpack_decode/4fd1f6a7cd9cfddfbfa96aa8de53f6bcde4ad8bb
new file mode 100644
index 0000000..f4b4f62
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/4fd1f6a7cd9cfddfbfa96aa8de53f6bcde4ad8bb
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/502c12342ed760e5b76b7d646701868e25ee4b43 b/fuzz/corpus/qpack_decode/502c12342ed760e5b76b7d646701868e25ee4b43
new file mode 100644
index 0000000..667fdb9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/502c12342ed760e5b76b7d646701868e25ee4b43
@@ -0,0 +1 @@
+Vòÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/50687dd5f1397a6ebef67c11bbc77b59cf993162 b/fuzz/corpus/qpack_decode/50687dd5f1397a6ebef67c11bbc77b59cf993162
new file mode 100644
index 0000000..0e215a2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/50687dd5f1397a6ebef67c11bbc77b59cf993162
@@ -0,0 +1 @@
+ññÞÞÞÞÞÞÞÞ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/508816e790b3882c81ec903ee0134e3efa8cf9ab b/fuzz/corpus/qpack_decode/508816e790b3882c81ec903ee0134e3efa8cf9ab
new file mode 100644
index 0000000..88c812d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/508816e790b3882c81ec903ee0134e3efa8cf9ab
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/509fb7440140c45eaedf67292926818f7f3b23dc b/fuzz/corpus/qpack_decode/509fb7440140c45eaedf67292926818f7f3b23dc
new file mode 100644
index 0000000..8e1a939
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/509fb7440140c45eaedf67292926818f7f3b23dc
@@ -0,0 +1 @@
+ˆÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/50f9e7170ec2b534cec820f217c3fc282e3dcdde b/fuzz/corpus/qpack_decode/50f9e7170ec2b534cec820f217c3fc282e3dcdde
new file mode 100644
index 0000000..bb257fc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/50f9e7170ec2b534cec820f217c3fc282e3dcdde
@@ -0,0 +1,2 @@
+
+Ý/€/€/€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/513fe619ebedb3ca136f4fa257f639a48358cba6 b/fuzz/corpus/qpack_decode/513fe619ebedb3ca136f4fa257f639a48358cba6
new file mode 100644
index 0000000..b0be893
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/513fe619ebedb3ca136f4fa257f639a48358cba6
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/5145e53ae0410bcd8fab04bdc475ddb2fd070b16 b/fuzz/corpus/qpack_decode/5145e53ae0410bcd8fab04bdc475ddb2fd070b16
new file mode 100644
index 0000000..59dbb24
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5145e53ae0410bcd8fab04bdc475ddb2fd070b16
@@ -0,0 +1 @@
+ýÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/51724f7ec09f233fe5f75d9ffbb6509eba619fd9 b/fuzz/corpus/qpack_decode/51724f7ec09f233fe5f75d9ffbb6509eba619fd9
new file mode 100644
index 0000000..5d4bc75
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/51724f7ec09f233fe5f75d9ffbb6509eba619fd9
@@ -0,0 +1 @@
+ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/519c17208f7d586b55777b525bac2e5b63e6878f b/fuzz/corpus/qpack_decode/519c17208f7d586b55777b525bac2e5b63e6878f
new file mode 100644
index 0000000..15e5a35
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/519c17208f7d586b55777b525bac2e5b63e6878f
@@ -0,0 +1 @@
+à$È?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/51b514f0a18f88f7a1cd4d8df74e05a50fef9218 b/fuzz/corpus/qpack_decode/51b514f0a18f88f7a1cd4d8df74e05a50fef9218
new file mode 100644
index 0000000..d910cb4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/51b514f0a18f88f7a1cd4d8df74e05a50fef9218
@@ -0,0 +1 @@
+=%ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/51b81d929f438c28d9cb4058f90340b0f055a569 b/fuzz/corpus/qpack_decode/51b81d929f438c28d9cb4058f90340b0f055a569
new file mode 100644
index 0000000..dd027bd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/51b81d929f438c28d9cb4058f90340b0f055a569
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/51bfb6edddd166712b5d58a62ccdee5751fc532b b/fuzz/corpus/qpack_decode/51bfb6edddd166712b5d58a62ccdee5751fc532b
new file mode 100644
index 0000000..e930f50
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/51bfb6edddd166712b5d58a62ccdee5751fc532b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/51f083c2b44312dd38bc6d0db84ee1b897921019 b/fuzz/corpus/qpack_decode/51f083c2b44312dd38bc6d0db84ee1b897921019
new file mode 100644
index 0000000..2cac5ee
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/51f083c2b44312dd38bc6d0db84ee1b897921019
@@ -0,0 +1 @@
+ëèõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5226a3cf324d1dcafa0b8878767c5bd423b30a5d b/fuzz/corpus/qpack_decode/5226a3cf324d1dcafa0b8878767c5bd423b30a5d
new file mode 100644
index 0000000..d2c3b51
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5226a3cf324d1dcafa0b8878767c5bd423b30a5d
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/522bf624dee97c66957e60ee17b2f502a6522c6b b/fuzz/corpus/qpack_decode/522bf624dee97c66957e60ee17b2f502a6522c6b
new file mode 100644
index 0000000..e67341f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/522bf624dee97c66957e60ee17b2f502a6522c6b
@@ -0,0 +1 @@
+øÊ(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€*
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/526de4e1097375983dadc85a08f327047649ded4 b/fuzz/corpus/qpack_decode/526de4e1097375983dadc85a08f327047649ded4
new file mode 100644
index 0000000..3e18bca
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/526de4e1097375983dadc85a08f327047649ded4
@@ -0,0 +1 @@
+ÌÌÌÌÌÌÌÈÌÌÌÌ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/52bcfc1da18f3c4ecde131237c2705525c212cd4 b/fuzz/corpus/qpack_decode/52bcfc1da18f3c4ecde131237c2705525c212cd4
new file mode 100644
index 0000000..2a33dee
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/52bcfc1da18f3c4ecde131237c2705525c212cd4
@@ -0,0 +1 @@
+üÛÛÛe
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/52ffb4077e46346acce030eafcd1ac4d58d7b02e b/fuzz/corpus/qpack_decode/52ffb4077e46346acce030eafcd1ac4d58d7b02e
new file mode 100644
index 0000000..a68d09a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/52ffb4077e46346acce030eafcd1ac4d58d7b02e
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/5318f6b7ed0690f8a6ec48bf4c8a5016d383b823 b/fuzz/corpus/qpack_decode/5318f6b7ed0690f8a6ec48bf4c8a5016d383b823
new file mode 100644
index 0000000..1fd4f89
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5318f6b7ed0690f8a6ec48bf4c8a5016d383b823
@@ -0,0 +1 @@
+.óóóóóóóóóóóï
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/534ee56658a8eb9cfa79f4542a69931d416eccb4 b/fuzz/corpus/qpack_decode/534ee56658a8eb9cfa79f4542a69931d416eccb4
new file mode 100644
index 0000000..9d3f360
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/534ee56658a8eb9cfa79f4542a69931d416eccb4
@@ -0,0 +1 @@
+J1**(*
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5359eec264b819dc8d74550af91da9b278e46f2e b/fuzz/corpus/qpack_decode/5359eec264b819dc8d74550af91da9b278e46f2e
new file mode 100644
index 0000000..55f1c21
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5359eec264b819dc8d74550af91da9b278e46f2e
@@ -0,0 +1 @@
+X€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/53d5445b002ea27c2ffc03b06a0087915cc22509 b/fuzz/corpus/qpack_decode/53d5445b002ea27c2ffc03b06a0087915cc22509
new file mode 100644
index 0000000..46ca599
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/53d5445b002ea27c2ffc03b06a0087915cc22509
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/53f944919a76eb42633f1e9de0b467ccd9853da9 b/fuzz/corpus/qpack_decode/53f944919a76eb42633f1e9de0b467ccd9853da9
new file mode 100644
index 0000000..6d269e6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/53f944919a76eb42633f1e9de0b467ccd9853da9
@@ -0,0 +1 @@
+ÀÀôôô?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/53fabb898a42029b084dbc8277f60b357aa92ebf b/fuzz/corpus/qpack_decode/53fabb898a42029b084dbc8277f60b357aa92ebf
new file mode 100644
index 0000000..dd033ab
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/53fabb898a42029b084dbc8277f60b357aa92ebf
@@ -0,0 +1 @@
+óóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/541e8967693de583a5eaada0954623882c01a0b6 b/fuzz/corpus/qpack_decode/541e8967693de583a5eaada0954623882c01a0b6
new file mode 100644
index 0000000..3c28479
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/541e8967693de583a5eaada0954623882c01a0b6
@@ -0,0 +1 @@
+ÄÿP
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/543b20d18d6188315b74f84220cc0516335796f2 b/fuzz/corpus/qpack_decode/543b20d18d6188315b74f84220cc0516335796f2
new file mode 100644
index 0000000..0638a2f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/543b20d18d6188315b74f84220cc0516335796f2
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/54c122a55f4cd5b9e2bc1d80e72dded7dbaee89e b/fuzz/corpus/qpack_decode/54c122a55f4cd5b9e2bc1d80e72dded7dbaee89e
new file mode 100644
index 0000000..d2808c0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/54c122a55f4cd5b9e2bc1d80e72dded7dbaee89e
@@ -0,0 +1 @@
+þùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùùù
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/54fb62c459b965b0e4a5489eaaf34d278e0fb1bc b/fuzz/corpus/qpack_decode/54fb62c459b965b0e4a5489eaaf34d278e0fb1bc
new file mode 100644
index 0000000..e2b23d5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/54fb62c459b965b0e4a5489eaaf34d278e0fb1bc
@@ -0,0 +1 @@
+ Èáááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/555e1a4dd5f24d49f3d2073570d91dee7e931b38 b/fuzz/corpus/qpack_decode/555e1a4dd5f24d49f3d2073570d91dee7e931b38
new file mode 100644
index 0000000..ab56668
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/555e1a4dd5f24d49f3d2073570d91dee7e931b38
@@ -0,0 +1 @@
+/€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/558597e55701f48bbb295777c4417ce2d2f8f8dc b/fuzz/corpus/qpack_decode/558597e55701f48bbb295777c4417ce2d2f8f8dc
new file mode 100644
index 0000000..f53a414
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/558597e55701f48bbb295777c4417ce2d2f8f8dc
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/55c99f157fb32ea31b34e400f2a387a77dfee42a b/fuzz/corpus/qpack_decode/55c99f157fb32ea31b34e400f2a387a77dfee42a
new file mode 100644
index 0000000..d813502
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/55c99f157fb32ea31b34e400f2a387a77dfee42a
@@ -0,0 +1 @@
+` ÿ	ÿ	ÿ	ÿ	
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/56324e3f64cc547ce35419f50521f92f55231fcf b/fuzz/corpus/qpack_decode/56324e3f64cc547ce35419f50521f92f55231fcf
new file mode 100644
index 0000000..d69ab3c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/56324e3f64cc547ce35419f50521f92f55231fcf
@@ -0,0 +1 @@
+úúÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/57270efbc1c864f049171f8a3efd1c5514ad37c6 b/fuzz/corpus/qpack_decode/57270efbc1c864f049171f8a3efd1c5514ad37c6
new file mode 100644
index 0000000..c8da6a6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/57270efbc1c864f049171f8a3efd1c5514ad37c6
@@ -0,0 +1 @@
+'ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/572cb99d5fe37a67cae863bafed533f0140f6339 b/fuzz/corpus/qpack_decode/572cb99d5fe37a67cae863bafed533f0140f6339
new file mode 100644
index 0000000..fbd594a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/572cb99d5fe37a67cae863bafed533f0140f6339
@@ -0,0 +1 @@
+ìììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììììì
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/574900f154f6332a1af81cb70697c8566b49d5ef b/fuzz/corpus/qpack_decode/574900f154f6332a1af81cb70697c8566b49d5ef
new file mode 100644
index 0000000..17e3736
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/574900f154f6332a1af81cb70697c8566b49d5ef
@@ -0,0 +1 @@
+óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/579c02591cea3a1cdcc6175aa958c1ec8380f82e b/fuzz/corpus/qpack_decode/579c02591cea3a1cdcc6175aa958c1ec8380f82e
new file mode 100644
index 0000000..6e4c51a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/579c02591cea3a1cdcc6175aa958c1ec8380f82e
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/579ca5ab132edac40ef27592544756c21264fb2b b/fuzz/corpus/qpack_decode/579ca5ab132edac40ef27592544756c21264fb2b
new file mode 100644
index 0000000..e49714b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/579ca5ab132edac40ef27592544756c21264fb2b
@@ -0,0 +1 @@
+ßß×××
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/579e579d210be4ab32f017266985aab2a1ca7727 b/fuzz/corpus/qpack_decode/579e579d210be4ab32f017266985aab2a1ca7727
new file mode 100644
index 0000000..091911c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/579e579d210be4ab32f017266985aab2a1ca7727
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/57a5fd5155e649d465d111ef1683892d70aae09c b/fuzz/corpus/qpack_decode/57a5fd5155e649d465d111ef1683892d70aae09c
new file mode 100644
index 0000000..374b934
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/57a5fd5155e649d465d111ef1683892d70aae09c
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/57d513d56b20c856cea4c8693dd7d16be75b065b b/fuzz/corpus/qpack_decode/57d513d56b20c856cea4c8693dd7d16be75b065b
new file mode 100644
index 0000000..05f96fd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/57d513d56b20c856cea4c8693dd7d16be75b065b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/57ea79584da1bf042711399898865698e307f7e8 b/fuzz/corpus/qpack_decode/57ea79584da1bf042711399898865698e307f7e8
new file mode 100644
index 0000000..26aa0b7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/57ea79584da1bf042711399898865698e307f7e8
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/57eae5bab08d4acd9e98dfa800a0d3c77347d1cc b/fuzz/corpus/qpack_decode/57eae5bab08d4acd9e98dfa800a0d3c77347d1cc
new file mode 100644
index 0000000..36d9f0f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/57eae5bab08d4acd9e98dfa800a0d3c77347d1cc
@@ -0,0 +1 @@
+íÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/581a89e890df31f651e2f7b482debb6226858bcc b/fuzz/corpus/qpack_decode/581a89e890df31f651e2f7b482debb6226858bcc
new file mode 100644
index 0000000..f0cb554
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/581a89e890df31f651e2f7b482debb6226858bcc
@@ -0,0 +1 @@
+ìÖÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/582aa1f096a48a254a9d8b8aae4092fdfa627cc9 b/fuzz/corpus/qpack_decode/582aa1f096a48a254a9d8b8aae4092fdfa627cc9
new file mode 100644
index 0000000..061102f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/582aa1f096a48a254a9d8b8aae4092fdfa627cc9
@@ -0,0 +1 @@
+(€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5832c9765cd831eb0fe3a7efebd962e2732cc2c9 b/fuzz/corpus/qpack_decode/5832c9765cd831eb0fe3a7efebd962e2732cc2c9
new file mode 100644
index 0000000..54e1769
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5832c9765cd831eb0fe3a7efebd962e2732cc2c9
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/584bffe69dd0fce42f1fa569c10ae55c6ef0c361 b/fuzz/corpus/qpack_decode/584bffe69dd0fce42f1fa569c10ae55c6ef0c361
new file mode 100644
index 0000000..1e06772
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/584bffe69dd0fce42f1fa569c10ae55c6ef0c361
@@ -0,0 +1 @@
+ÞÞüüü*
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/587115291c50a80f89d24e6ccffbc0debe0cb7ad b/fuzz/corpus/qpack_decode/587115291c50a80f89d24e6ccffbc0debe0cb7ad
new file mode 100644
index 0000000..a5b5e83
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/587115291c50a80f89d24e6ccffbc0debe0cb7ad
@@ -0,0 +1 @@
+ÏtÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5882306e35e29eefd71979574a0274365bc4634d b/fuzz/corpus/qpack_decode/5882306e35e29eefd71979574a0274365bc4634d
new file mode 100644
index 0000000..e16b0e5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5882306e35e29eefd71979574a0274365bc4634d
@@ -0,0 +1 @@
+#Ù××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/59b69053d61fe7882b535afb355a834724c58415 b/fuzz/corpus/qpack_decode/59b69053d61fe7882b535afb355a834724c58415
new file mode 100644
index 0000000..b557163
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/59b69053d61fe7882b535afb355a834724c58415
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/59caca931457c8517b1e39c8912067f4af9b6437 b/fuzz/corpus/qpack_decode/59caca931457c8517b1e39c8912067f4af9b6437
new file mode 100644
index 0000000..95cd185
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/59caca931457c8517b1e39c8912067f4af9b6437
@@ -0,0 +1 @@
+`€!*,!*,
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/59d0b8d3bd3dfc2b2392cbd685cf6a7d7192a45f b/fuzz/corpus/qpack_decode/59d0b8d3bd3dfc2b2392cbd685cf6a7d7192a45f
new file mode 100644
index 0000000..828af13
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/59d0b8d3bd3dfc2b2392cbd685cf6a7d7192a45f
@@ -0,0 +1 @@
++Ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/59d9200dbb6bc44483dac1ca80c655a04b94f430 b/fuzz/corpus/qpack_decode/59d9200dbb6bc44483dac1ca80c655a04b94f430
new file mode 100644
index 0000000..798e4fc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/59d9200dbb6bc44483dac1ca80c655a04b94f430
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/59e9942e5bb4072b81ebeff1646b10badd591dd9 b/fuzz/corpus/qpack_decode/59e9942e5bb4072b81ebeff1646b10badd591dd9
new file mode 100644
index 0000000..7315add
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/59e9942e5bb4072b81ebeff1646b10badd591dd9
@@ -0,0 +1 @@
+»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/59eb53c56b2b8f1a391a859eab996c345c35493e b/fuzz/corpus/qpack_decode/59eb53c56b2b8f1a391a859eab996c345c35493e
new file mode 100644
index 0000000..1f8f342
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/59eb53c56b2b8f1a391a859eab996c345c35493e
@@ -0,0 +1 @@
+1òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5a50d276afdc4fa7f1d67a1eadbf71447d3f21f7 b/fuzz/corpus/qpack_decode/5a50d276afdc4fa7f1d67a1eadbf71447d3f21f7
new file mode 100644
index 0000000..68a2f4d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5a50d276afdc4fa7f1d67a1eadbf71447d3f21f7
@@ -0,0 +1 @@
+??€€€€/?€€€€€€?€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5a93057d3c12420aec7affef2b087fcf1a258d64 b/fuzz/corpus/qpack_decode/5a93057d3c12420aec7affef2b087fcf1a258d64
new file mode 100644
index 0000000..fcdd7c5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5a93057d3c12420aec7affef2b087fcf1a258d64
@@ -0,0 +1 @@
+óóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5ac8011dd4ba22283d555eb6f7227f80ab3e0e99 b/fuzz/corpus/qpack_decode/5ac8011dd4ba22283d555eb6f7227f80ab3e0e99
new file mode 100644
index 0000000..97755ed
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5ac8011dd4ba22283d555eb6f7227f80ab3e0e99
@@ -0,0 +1 @@
+íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5acd8c65b00c9afb3d77e531459624e1081e2c30 b/fuzz/corpus/qpack_decode/5acd8c65b00c9afb3d77e531459624e1081e2c30
new file mode 100644
index 0000000..c51238d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5acd8c65b00c9afb3d77e531459624e1081e2c30
@@ -0,0 +1 @@
+ùÃáÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5ad14715baa50e112c523230b98d20b6fb92229c b/fuzz/corpus/qpack_decode/5ad14715baa50e112c523230b98d20b6fb92229c
new file mode 100644
index 0000000..cdd4c6d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5ad14715baa50e112c523230b98d20b6fb92229c
@@ -0,0 +1 @@
+ðõÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5ad6d4dee7eb22b42e62835a327887abb4a6e70c b/fuzz/corpus/qpack_decode/5ad6d4dee7eb22b42e62835a327887abb4a6e70c
deleted file mode 100644
index e9abd69..0000000
--- a/fuzz/corpus/qpack_decode/5ad6d4dee7eb22b42e62835a327887abb4a6e70c
+++ /dev/null
@@ -1 +0,0 @@
-1)ìß
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5b89dd8b6eb57f27373a3ad7967984e88be41ef5 b/fuzz/corpus/qpack_decode/5b89dd8b6eb57f27373a3ad7967984e88be41ef5
new file mode 100644
index 0000000..1afe912
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5b89dd8b6eb57f27373a3ad7967984e88be41ef5
@@ -0,0 +1 @@
+ÈóÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5bab25995eed093b0f7409d5abcf705682f2aa7d b/fuzz/corpus/qpack_decode/5bab25995eed093b0f7409d5abcf705682f2aa7d
new file mode 100644
index 0000000..f78f11e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5bab25995eed093b0f7409d5abcf705682f2aa7d
@@ -0,0 +1 @@
+ßû`
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5be79248d4ee449aa58458e6af9c333b62f7b02b b/fuzz/corpus/qpack_decode/5be79248d4ee449aa58458e6af9c333b62f7b02b
new file mode 100644
index 0000000..227ce04
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5be79248d4ee449aa58458e6af9c333b62f7b02b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/5c177c344b3291c5f31e1d9360a33d423a3116d7 b/fuzz/corpus/qpack_decode/5c177c344b3291c5f31e1d9360a33d423a3116d7
new file mode 100644
index 0000000..c00a10b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5c177c344b3291c5f31e1d9360a33d423a3116d7
@@ -0,0 +1 @@
+÷Hý¯
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5c7f3ab5c783742ee56d3669f8f304501cf4076a b/fuzz/corpus/qpack_decode/5c7f3ab5c783742ee56d3669f8f304501cf4076a
new file mode 100644
index 0000000..47d8290
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5c7f3ab5c783742ee56d3669f8f304501cf4076a
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/5cce9e8a12e59f90e571152232487be345f8257c b/fuzz/corpus/qpack_decode/5cce9e8a12e59f90e571152232487be345f8257c
new file mode 100644
index 0000000..6da56e1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5cce9e8a12e59f90e571152232487be345f8257c
@@ -0,0 +1 @@
+ÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5ceebf11bea5c569e7d2e1c0c0e64681870ffc3c b/fuzz/corpus/qpack_decode/5ceebf11bea5c569e7d2e1c0c0e64681870ffc3c
new file mode 100644
index 0000000..275ea5c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5ceebf11bea5c569e7d2e1c0c0e64681870ffc3c
@@ -0,0 +1 @@
+!ÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5d073b3b38f3f75e30d963087b860b65594ef918 b/fuzz/corpus/qpack_decode/5d073b3b38f3f75e30d963087b860b65594ef918
new file mode 100644
index 0000000..5db8c39
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5d073b3b38f3f75e30d963087b860b65594ef918
@@ -0,0 +1 @@
+ü@€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5d0ed51f7b32fe3cf0cbd937a3abf2420daac9b2 b/fuzz/corpus/qpack_decode/5d0ed51f7b32fe3cf0cbd937a3abf2420daac9b2
new file mode 100644
index 0000000..758b63d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5d0ed51f7b32fe3cf0cbd937a3abf2420daac9b2
@@ -0,0 +1 @@
+öÐÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5d1177b8f8af67d2565753fbe33212e96fddd603 b/fuzz/corpus/qpack_decode/5d1177b8f8af67d2565753fbe33212e96fddd603
new file mode 100644
index 0000000..387ed98
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5d1177b8f8af67d2565753fbe33212e96fddd603
@@ -0,0 +1 @@
+ óÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5d1c2b1e2478d0c89e5c49a096ee0d4ccfaea02e b/fuzz/corpus/qpack_decode/5d1c2b1e2478d0c89e5c49a096ee0d4ccfaea02e
new file mode 100644
index 0000000..4077499
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5d1c2b1e2478d0c89e5c49a096ee0d4ccfaea02e
@@ -0,0 +1 @@
+[e?€?€?€?€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5d2a48fe11717909a4e16acf943262f10473485d b/fuzz/corpus/qpack_decode/5d2a48fe11717909a4e16acf943262f10473485d
new file mode 100644
index 0000000..cf70784
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5d2a48fe11717909a4e16acf943262f10473485d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/5d5702f8566255a990fdeb4675380bf9350af22d b/fuzz/corpus/qpack_decode/5d5702f8566255a990fdeb4675380bf9350af22d
new file mode 100644
index 0000000..833c30b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5d5702f8566255a990fdeb4675380bf9350af22d
@@ -0,0 +1 @@
+×ç××××××××××××××××××××××××××××××××
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5dc860a77d6e1bb144073616110cdaf56d04e057 b/fuzz/corpus/qpack_decode/5dc860a77d6e1bb144073616110cdaf56d04e057
new file mode 100644
index 0000000..992a629
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5dc860a77d6e1bb144073616110cdaf56d04e057
@@ -0,0 +1 @@
+'ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5e37509ce51787d029472017487a5b21d23e0ece b/fuzz/corpus/qpack_decode/5e37509ce51787d029472017487a5b21d23e0ece
new file mode 100644
index 0000000..a990cca
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5e37509ce51787d029472017487a5b21d23e0ece
@@ -0,0 +1 @@
+-þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5e6300be2a18fcf0fc5935b4b3e8e95eaa2fd8cf b/fuzz/corpus/qpack_decode/5e6300be2a18fcf0fc5935b4b3e8e95eaa2fd8cf
new file mode 100644
index 0000000..4ed4c98
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5e6300be2a18fcf0fc5935b4b3e8e95eaa2fd8cf
@@ -0,0 +1 @@
+ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5e7fc9f2218c63b563c89a920736104da1271a41 b/fuzz/corpus/qpack_decode/5e7fc9f2218c63b563c89a920736104da1271a41
new file mode 100644
index 0000000..a30e3a6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5e7fc9f2218c63b563c89a920736104da1271a41
@@ -0,0 +1,2 @@
+
+€N€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5e8d4a21c397546db09e7074c6b7e1825e5552b7 b/fuzz/corpus/qpack_decode/5e8d4a21c397546db09e7074c6b7e1825e5552b7
new file mode 100644
index 0000000..8af4c18
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5e8d4a21c397546db09e7074c6b7e1825e5552b7
@@ -0,0 +1 @@
+þùóóó 
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5e9195280689633d03e0137abc1337921718ba1e b/fuzz/corpus/qpack_decode/5e9195280689633d03e0137abc1337921718ba1e
new file mode 100644
index 0000000..7c7c986
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5e9195280689633d03e0137abc1337921718ba1e
@@ -0,0 +1 @@
+“ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5e92d6642931a87741681ecec37d7f981dce04af b/fuzz/corpus/qpack_decode/5e92d6642931a87741681ecec37d7f981dce04af
new file mode 100644
index 0000000..5d36c85
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5e92d6642931a87741681ecec37d7f981dce04af
@@ -0,0 +1 @@
+ù!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5ec8e62f8ab1be82a1bc42eb09b4e99d2317ce6b b/fuzz/corpus/qpack_decode/5ec8e62f8ab1be82a1bc42eb09b4e99d2317ce6b
new file mode 100644
index 0000000..44e3ac4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5ec8e62f8ab1be82a1bc42eb09b4e99d2317ce6b
@@ -0,0 +1 @@
+1ÝÝÝ+
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5f0ac087e26e03623854bc4e784ae87941652ea2 b/fuzz/corpus/qpack_decode/5f0ac087e26e03623854bc4e784ae87941652ea2
new file mode 100644
index 0000000..7165f31
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5f0ac087e26e03623854bc4e784ae87941652ea2
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/5f120d0a5da73b6724eaa368e0e403a319433508 b/fuzz/corpus/qpack_decode/5f120d0a5da73b6724eaa368e0e403a319433508
new file mode 100644
index 0000000..828562c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5f120d0a5da73b6724eaa368e0e403a319433508
@@ -0,0 +1 @@
+ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5f465ed27d8ebd4cbb969b2a917f8138e57acdb2 b/fuzz/corpus/qpack_decode/5f465ed27d8ebd4cbb969b2a917f8138e57acdb2
new file mode 100644
index 0000000..cbbc4d5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5f465ed27d8ebd4cbb969b2a917f8138e57acdb2
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/5f641adf40f17a7120ecf5ae4821c7b906015912 b/fuzz/corpus/qpack_decode/5f641adf40f17a7120ecf5ae4821c7b906015912
new file mode 100644
index 0000000..b81b4dd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5f641adf40f17a7120ecf5ae4821c7b906015912
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/5f768d463bf1cc4c8b06c42d743e301057e4eb83 b/fuzz/corpus/qpack_decode/5f768d463bf1cc4c8b06c42d743e301057e4eb83
new file mode 100644
index 0000000..b278394
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5f768d463bf1cc4c8b06c42d743e301057e4eb83
@@ -0,0 +1 @@
+ÝÝA€A€€A€€A€A€€A€A€A€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5faa6c81f0e467693fd02974121465421bd3d8ee b/fuzz/corpus/qpack_decode/5faa6c81f0e467693fd02974121465421bd3d8ee
new file mode 100644
index 0000000..06c54a7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5faa6c81f0e467693fd02974121465421bd3d8ee
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5fcdf820fd712903602527cdb2eb2fdb8a04bad7 b/fuzz/corpus/qpack_decode/5fcdf820fd712903602527cdb2eb2fdb8a04bad7
new file mode 100644
index 0000000..c6f4932
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5fcdf820fd712903602527cdb2eb2fdb8a04bad7
@@ -0,0 +1 @@
+ü€@€@€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/5fe3130ebe5df5553146127ee283cd1bf2796f9b b/fuzz/corpus/qpack_decode/5fe3130ebe5df5553146127ee283cd1bf2796f9b
new file mode 100644
index 0000000..d545ca0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/5fe3130ebe5df5553146127ee283cd1bf2796f9b
@@ -0,0 +1 @@
+)/é/
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/603131f8beaeac639ae38b8e25f6ed7c71a1eb7d b/fuzz/corpus/qpack_decode/603131f8beaeac639ae38b8e25f6ed7c71a1eb7d
new file mode 100644
index 0000000..8f9d4a8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/603131f8beaeac639ae38b8e25f6ed7c71a1eb7d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/60474a09735f140efde7b2fdbeec262233748c81 b/fuzz/corpus/qpack_decode/60474a09735f140efde7b2fdbeec262233748c81
new file mode 100644
index 0000000..06d66da
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/60474a09735f140efde7b2fdbeec262233748c81
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/606e6b4d1ac937cb199ef0725da5ccd09db95e7f b/fuzz/corpus/qpack_decode/606e6b4d1ac937cb199ef0725da5ccd09db95e7f
new file mode 100644
index 0000000..a97ea53
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/606e6b4d1ac937cb199ef0725da5ccd09db95e7f
@@ -0,0 +1 @@
+-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/60eb56a5aa2633ef8a1e54b75b1937d59335226f b/fuzz/corpus/qpack_decode/60eb56a5aa2633ef8a1e54b75b1937d59335226f
new file mode 100644
index 0000000..19e7870
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/60eb56a5aa2633ef8a1e54b75b1937d59335226f
@@ -0,0 +1 @@
+àòòòòòòòòò
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6161146cd3eb608c93045be5d6bd80feae957ad9 b/fuzz/corpus/qpack_decode/6161146cd3eb608c93045be5d6bd80feae957ad9
new file mode 100644
index 0000000..3f06d45
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6161146cd3eb608c93045be5d6bd80feae957ad9
@@ -0,0 +1 @@
+ûÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/618dd13563b5f905c7a1056c1dee9a320e158f76 b/fuzz/corpus/qpack_decode/618dd13563b5f905c7a1056c1dee9a320e158f76
new file mode 100644
index 0000000..6cae5bc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/618dd13563b5f905c7a1056c1dee9a320e158f76
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/61eb4bcb9f234c00bd5231b36a143c2bef3f512a b/fuzz/corpus/qpack_decode/61eb4bcb9f234c00bd5231b36a143c2bef3f512a
new file mode 100644
index 0000000..3dce178
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/61eb4bcb9f234c00bd5231b36a143c2bef3f512a
@@ -0,0 +1 @@
+?ýýýýýýýýýýýýýýýý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6212af97046932af1482703496afa8679e2914c0 b/fuzz/corpus/qpack_decode/6212af97046932af1482703496afa8679e2914c0
new file mode 100644
index 0000000..7a414d7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6212af97046932af1482703496afa8679e2914c0
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/62335104233db9c734ee96b964d2f904d7fc9b80 b/fuzz/corpus/qpack_decode/62335104233db9c734ee96b964d2f904d7fc9b80
deleted file mode 100644
index 8df7d94..0000000
--- a/fuzz/corpus/qpack_decode/62335104233db9c734ee96b964d2f904d7fc9b80
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6276cb5e7bcbc59b3c56a0037dbd3ab3abc4c2f8 b/fuzz/corpus/qpack_decode/6276cb5e7bcbc59b3c56a0037dbd3ab3abc4c2f8
new file mode 100644
index 0000000..6b5fed4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6276cb5e7bcbc59b3c56a0037dbd3ab3abc4c2f8
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6297553457d7fb8271f3eeea3a7937d584c472ba b/fuzz/corpus/qpack_decode/6297553457d7fb8271f3eeea3a7937d584c472ba
deleted file mode 100644
index 7919bce..0000000
--- a/fuzz/corpus/qpack_decode/6297553457d7fb8271f3eeea3a7937d584c472ba
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/638c4fc233b457185985e64d749b2ba57c17616c b/fuzz/corpus/qpack_decode/638c4fc233b457185985e64d749b2ba57c17616c
new file mode 100644
index 0000000..0b2c6e5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/638c4fc233b457185985e64d749b2ba57c17616c
@@ -0,0 +1 @@
+òìòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/63a36ef87b8193f6c7912c2f42dab57527be143c b/fuzz/corpus/qpack_decode/63a36ef87b8193f6c7912c2f42dab57527be143c
new file mode 100644
index 0000000..d036e90
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/63a36ef87b8193f6c7912c2f42dab57527be143c
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/642312803b29aaffece4ec26bf9b50dae69667dc b/fuzz/corpus/qpack_decode/642312803b29aaffece4ec26bf9b50dae69667dc
new file mode 100644
index 0000000..c5ce0ec
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/642312803b29aaffece4ec26bf9b50dae69667dc
@@ -0,0 +1 @@
+ë40‘
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6463ac1c757deb05e91d9b376c07a5c6589600de b/fuzz/corpus/qpack_decode/6463ac1c757deb05e91d9b376c07a5c6589600de
new file mode 100644
index 0000000..73f1bd9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6463ac1c757deb05e91d9b376c07a5c6589600de
@@ -0,0 +1 @@
+1ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/64644decc325f68ecb529f4405ff637d412b7216 b/fuzz/corpus/qpack_decode/64644decc325f68ecb529f4405ff637d412b7216
new file mode 100644
index 0000000..20abe62
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/64644decc325f68ecb529f4405ff637d412b7216
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/647e38b3e808d5e7b05f2e943828af704f4171cf b/fuzz/corpus/qpack_decode/647e38b3e808d5e7b05f2e943828af704f4171cf
new file mode 100644
index 0000000..eaee4ee
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/647e38b3e808d5e7b05f2e943828af704f4171cf
@@ -0,0 +1 @@
+ù!ÿ!ÿ!ÿ!
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/648915ff257497a8fa68ae1ed555fe9030f837fc b/fuzz/corpus/qpack_decode/648915ff257497a8fa68ae1ed555fe9030f837fc
new file mode 100644
index 0000000..e581045
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/648915ff257497a8fa68ae1ed555fe9030f837fc
@@ -0,0 +1 @@
+îîÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/64c4c588281a1997bbeb634e6687ec6c5d5994e0 b/fuzz/corpus/qpack_decode/64c4c588281a1997bbeb634e6687ec6c5d5994e0
new file mode 100644
index 0000000..807a928
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/64c4c588281a1997bbeb634e6687ec6c5d5994e0
@@ -0,0 +1 @@
+Ï*ÏÏÏ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/64fe6b08934b36794785f806bfba5dd99390ff61 b/fuzz/corpus/qpack_decode/64fe6b08934b36794785f806bfba5dd99390ff61
new file mode 100644
index 0000000..2e2af40
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/64fe6b08934b36794785f806bfba5dd99390ff61
@@ -0,0 +1 @@
+ííøøøøøøøø
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/65175c851ddc6699dcb0f6527082e9521f8d2d4f b/fuzz/corpus/qpack_decode/65175c851ddc6699dcb0f6527082e9521f8d2d4f
new file mode 100644
index 0000000..36567d6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/65175c851ddc6699dcb0f6527082e9521f8d2d4f
@@ -0,0 +1 @@
+óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/654ecbce6b2914644a8ec8f0e306cfad05a6f24f b/fuzz/corpus/qpack_decode/654ecbce6b2914644a8ec8f0e306cfad05a6f24f
new file mode 100644
index 0000000..efbd9cd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/654ecbce6b2914644a8ec8f0e306cfad05a6f24f
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/656ccd6c0a6ae999e311cd0ca67ec1eace4f7fcd b/fuzz/corpus/qpack_decode/656ccd6c0a6ae999e311cd0ca67ec1eace4f7fcd
new file mode 100644
index 0000000..d0bfaf4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/656ccd6c0a6ae999e311cd0ca67ec1eace4f7fcd
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/658c646a5fbd6d113760bc82624030f4cd75c5e1 b/fuzz/corpus/qpack_decode/658c646a5fbd6d113760bc82624030f4cd75c5e1
new file mode 100644
index 0000000..9018998
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/658c646a5fbd6d113760bc82624030f4cd75c5e1
@@ -0,0 +1 @@
+öìÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/65a12130a6575bc49acdb6dae4dd75b39333b5d5 b/fuzz/corpus/qpack_decode/65a12130a6575bc49acdb6dae4dd75b39333b5d5
new file mode 100644
index 0000000..b654a54
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/65a12130a6575bc49acdb6dae4dd75b39333b5d5
@@ -0,0 +1 @@
+$Îͦ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/65c54ba4eee6847ac485b7e1640aeda8ddc2506c b/fuzz/corpus/qpack_decode/65c54ba4eee6847ac485b7e1640aeda8ddc2506c
new file mode 100644
index 0000000..66f2178
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/65c54ba4eee6847ac485b7e1640aeda8ddc2506c
@@ -0,0 +1 @@
+ËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËË
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/661a6715734edd932585c1dacd3277b5b8d70758 b/fuzz/corpus/qpack_decode/661a6715734edd932585c1dacd3277b5b8d70758
new file mode 100644
index 0000000..bed157a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/661a6715734edd932585c1dacd3277b5b8d70758
@@ -0,0 +1 @@
+ííÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/66a6836bd565c6f6e11bd376c54660e516edbb50 b/fuzz/corpus/qpack_decode/66a6836bd565c6f6e11bd376c54660e516edbb50
new file mode 100644
index 0000000..9645142
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/66a6836bd565c6f6e11bd376c54660e516edbb50
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/66b412396ba83b5d3e7394017bf4fd984106b0e2 b/fuzz/corpus/qpack_decode/66b412396ba83b5d3e7394017bf4fd984106b0e2
new file mode 100644
index 0000000..f574e36
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/66b412396ba83b5d3e7394017bf4fd984106b0e2
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/66e37cd2395f350426ac9c5a6bc4b6b355d87361 b/fuzz/corpus/qpack_decode/66e37cd2395f350426ac9c5a6bc4b6b355d87361
deleted file mode 100644
index 5a82695..0000000
--- a/fuzz/corpus/qpack_decode/66e37cd2395f350426ac9c5a6bc4b6b355d87361
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/674b11799af29d0a9eb4c97552fbb726e7fd9f56 b/fuzz/corpus/qpack_decode/674b11799af29d0a9eb4c97552fbb726e7fd9f56
new file mode 100644
index 0000000..f87a537
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/674b11799af29d0a9eb4c97552fbb726e7fd9f56
@@ -0,0 +1 @@
+ÉÉÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/674fde94ec12e5f77a86d83a1f62d3c7e529a348 b/fuzz/corpus/qpack_decode/674fde94ec12e5f77a86d83a1f62d3c7e529a348
new file mode 100644
index 0000000..f010063
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/674fde94ec12e5f77a86d83a1f62d3c7e529a348
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6786ff583d49fde664a170494749ecee023a5c4e b/fuzz/corpus/qpack_decode/6786ff583d49fde664a170494749ecee023a5c4e
new file mode 100644
index 0000000..8ff4c1a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6786ff583d49fde664a170494749ecee023a5c4e
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/678aece8eb33c7aae46bef6f8363cdb5f8de571a b/fuzz/corpus/qpack_decode/678aece8eb33c7aae46bef6f8363cdb5f8de571a
new file mode 100644
index 0000000..124ead6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/678aece8eb33c7aae46bef6f8363cdb5f8de571a
@@ -0,0 +1,2 @@
+**ÿ
+ÿ
diff --git a/fuzz/corpus/qpack_decode/67b074bc3353c9ec6cab30d13b0eefd536ae3d3a b/fuzz/corpus/qpack_decode/67b074bc3353c9ec6cab30d13b0eefd536ae3d3a
new file mode 100644
index 0000000..185b854
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/67b074bc3353c9ec6cab30d13b0eefd536ae3d3a
@@ -0,0 +1 @@
+)êËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËË
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/67dae0d993e891633cac6e4320aadd6db73f8bd0 b/fuzz/corpus/qpack_decode/67dae0d993e891633cac6e4320aadd6db73f8bd0
deleted file mode 100644
index 42e0df2..0000000
--- a/fuzz/corpus/qpack_decode/67dae0d993e891633cac6e4320aadd6db73f8bd0
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/67e48b433b08a48bf18a554d28488b9e22495ef7 b/fuzz/corpus/qpack_decode/67e48b433b08a48bf18a554d28488b9e22495ef7
deleted file mode 100644
index 660e1b4..0000000
--- a/fuzz/corpus/qpack_decode/67e48b433b08a48bf18a554d28488b9e22495ef7
+++ /dev/null
@@ -1 +0,0 @@
--2ËÉÉÉÉöò
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/67e7dc87104a19fbcdd80e3bf5e093ad8e37db70 b/fuzz/corpus/qpack_decode/67e7dc87104a19fbcdd80e3bf5e093ad8e37db70
new file mode 100644
index 0000000..8e01419
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/67e7dc87104a19fbcdd80e3bf5e093ad8e37db70
@@ -0,0 +1 @@
+ôÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/67f56c39754451ca630eaa062c2c0e751ecdbacc b/fuzz/corpus/qpack_decode/67f56c39754451ca630eaa062c2c0e751ecdbacc
new file mode 100644
index 0000000..541239c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/67f56c39754451ca630eaa062c2c0e751ecdbacc
@@ -0,0 +1 @@
+ååÊÊÊD
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/681f4e7ff5fc80d5d24aa386171c613971b704a8 b/fuzz/corpus/qpack_decode/681f4e7ff5fc80d5d24aa386171c613971b704a8
new file mode 100644
index 0000000..02d689a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/681f4e7ff5fc80d5d24aa386171c613971b704a8
@@ -0,0 +1 @@
+*ûèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèè
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/682738cc247ffc1f758cbca289f704e209712bb5 b/fuzz/corpus/qpack_decode/682738cc247ffc1f758cbca289f704e209712bb5
new file mode 100644
index 0000000..e7e98c3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/682738cc247ffc1f758cbca289f704e209712bb5
@@ -0,0 +1 @@
+èèèèèèèèèèèèèèèèèè
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/682c79b857074ddd30b9ad46d8bd14a001dfc172 b/fuzz/corpus/qpack_decode/682c79b857074ddd30b9ad46d8bd14a001dfc172
new file mode 100644
index 0000000..6afacfb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/682c79b857074ddd30b9ad46d8bd14a001dfc172
@@ -0,0 +1 @@
+ì*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/684f0705e699447ea559516d34b832931f5833c8 b/fuzz/corpus/qpack_decode/684f0705e699447ea559516d34b832931f5833c8
new file mode 100644
index 0000000..3ed3b81
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/684f0705e699447ea559516d34b832931f5833c8
@@ -0,0 +1 @@
+#ìÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/685086761a62905dc86b65c4d9a052430696c9cf b/fuzz/corpus/qpack_decode/685086761a62905dc86b65c4d9a052430696c9cf
new file mode 100644
index 0000000..8ab8949
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/685086761a62905dc86b65c4d9a052430696c9cf
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6877b0923cb3dd42cbba2949a811c6175ff1d792 b/fuzz/corpus/qpack_decode/6877b0923cb3dd42cbba2949a811c6175ff1d792
new file mode 100644
index 0000000..d9b4510
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6877b0923cb3dd42cbba2949a811c6175ff1d792
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/68973a59976a4f1c80dfcd123425b721991e5c5c b/fuzz/corpus/qpack_decode/68973a59976a4f1c80dfcd123425b721991e5c5c
new file mode 100644
index 0000000..dcafff2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/68973a59976a4f1c80dfcd123425b721991e5c5c
@@ -0,0 +1 @@
+1Êûûûûûûûû
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/68e15c4a620df31b08f804b5b0888d63e4005203 b/fuzz/corpus/qpack_decode/68e15c4a620df31b08f804b5b0888d63e4005203
new file mode 100644
index 0000000..84ff2c6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/68e15c4a620df31b08f804b5b0888d63e4005203
@@ -0,0 +1 @@
+9ëüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6958eb55d94f439662964760f47ae1597dac41df b/fuzz/corpus/qpack_decode/6958eb55d94f439662964760f47ae1597dac41df
new file mode 100644
index 0000000..d7be93b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6958eb55d94f439662964760f47ae1597dac41df
@@ -0,0 +1 @@
+øNøøøN
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/69ec7906628dcd923b7fb59c276b6daff554acef b/fuzz/corpus/qpack_decode/69ec7906628dcd923b7fb59c276b6daff554acef
deleted file mode 100644
index affa430..0000000
--- a/fuzz/corpus/qpack_decode/69ec7906628dcd923b7fb59c276b6daff554acef
+++ /dev/null
@@ -1 +0,0 @@
-1ÊÊÊÊÊÊÊÊÊÊ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/69ed3b2e186ddcbd3d1f7a708250eec6f3b5a1e5 b/fuzz/corpus/qpack_decode/69ed3b2e186ddcbd3d1f7a708250eec6f3b5a1e5
new file mode 100644
index 0000000..8fe81be
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/69ed3b2e186ddcbd3d1f7a708250eec6f3b5a1e5
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6a3f5f61a923e63f7495d52fba9afe9a19c9c90a b/fuzz/corpus/qpack_decode/6a3f5f61a923e63f7495d52fba9afe9a19c9c90a
new file mode 100644
index 0000000..12eec0a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6a3f5f61a923e63f7495d52fba9afe9a19c9c90a
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6a4a0080189fc9db9181a408a8a1c60ec9e15ccd b/fuzz/corpus/qpack_decode/6a4a0080189fc9db9181a408a8a1c60ec9e15ccd
new file mode 100644
index 0000000..ba724b3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6a4a0080189fc9db9181a408a8a1c60ec9e15ccd
@@ -0,0 +1 @@
+ØÐÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6a74adf883b0c59506b852e2763695926e054dbc b/fuzz/corpus/qpack_decode/6a74adf883b0c59506b852e2763695926e054dbc
new file mode 100644
index 0000000..f4da71e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6a74adf883b0c59506b852e2763695926e054dbc
@@ -0,0 +1 @@
+1&Ô
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6b5d1335b8044f9a578eaecaddb5fd186dcabee4 b/fuzz/corpus/qpack_decode/6b5d1335b8044f9a578eaecaddb5fd186dcabee4
new file mode 100644
index 0000000..7ebf30f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6b5d1335b8044f9a578eaecaddb5fd186dcabee4
@@ -0,0 +1 @@
+ÜÜÜÜÜÜÜÜÜÜ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6b7d79d47c2c9bcdfc587d18f88ac96138239281 b/fuzz/corpus/qpack_decode/6b7d79d47c2c9bcdfc587d18f88ac96138239281
new file mode 100644
index 0000000..f2fc1e1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6b7d79d47c2c9bcdfc587d18f88ac96138239281
@@ -0,0 +1 @@
+ííÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6b7e9eb785ce634b4d40cd822ecb755217c0a2ce b/fuzz/corpus/qpack_decode/6b7e9eb785ce634b4d40cd822ecb755217c0a2ce
new file mode 100644
index 0000000..1c746ea
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6b7e9eb785ce634b4d40cd822ecb755217c0a2ce
@@ -0,0 +1 @@
+ÞÞïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6bd06f303f807b2b1e6cf1ea94c4e33fcdb26c99 b/fuzz/corpus/qpack_decode/6bd06f303f807b2b1e6cf1ea94c4e33fcdb26c99
new file mode 100644
index 0000000..de2dcb9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6bd06f303f807b2b1e6cf1ea94c4e33fcdb26c99
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6c0b13da0868ea03653c589e48084ba95ee31f74 b/fuzz/corpus/qpack_decode/6c0b13da0868ea03653c589e48084ba95ee31f74
new file mode 100644
index 0000000..aef72f7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6c0b13da0868ea03653c589e48084ba95ee31f74
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6c191824fe891e8630246365a8ed58d2df4fdfc7 b/fuzz/corpus/qpack_decode/6c191824fe891e8630246365a8ed58d2df4fdfc7
new file mode 100644
index 0000000..1ddf989
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6c191824fe891e8630246365a8ed58d2df4fdfc7
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6c1ec35c63e150d96e148a8a8a36ed12e133ccd6 b/fuzz/corpus/qpack_decode/6c1ec35c63e150d96e148a8a8a36ed12e133ccd6
new file mode 100644
index 0000000..4bde1cd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6c1ec35c63e150d96e148a8a8a36ed12e133ccd6
@@ -0,0 +1 @@
+2Ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6c9900af6a18167f810ad97fffd98ebca1b40715 b/fuzz/corpus/qpack_decode/6c9900af6a18167f810ad97fffd98ebca1b40715
new file mode 100644
index 0000000..eb6b957
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6c9900af6a18167f810ad97fffd98ebca1b40715
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6cb6290516cdd465a859ed1f9b7b8b50319bba3b b/fuzz/corpus/qpack_decode/6cb6290516cdd465a859ed1f9b7b8b50319bba3b
new file mode 100644
index 0000000..46352c5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6cb6290516cdd465a859ed1f9b7b8b50319bba3b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6cbd0076a469bd0931713ce16ee83d17ce29aa10 b/fuzz/corpus/qpack_decode/6cbd0076a469bd0931713ce16ee83d17ce29aa10
deleted file mode 100644
index 04cc6f4..0000000
--- a/fuzz/corpus/qpack_decode/6cbd0076a469bd0931713ce16ee83d17ce29aa10
+++ /dev/null
@@ -1 +0,0 @@
-11)-
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6d26688b1b5539467ab4b9e76f4e74fd58345d17 b/fuzz/corpus/qpack_decode/6d26688b1b5539467ab4b9e76f4e74fd58345d17
new file mode 100644
index 0000000..204dfe5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6d26688b1b5539467ab4b9e76f4e74fd58345d17
@@ -0,0 +1 @@
+øþÑÑÑ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6d64086eb177e4606ca88e7d7c125502c5bf14f4 b/fuzz/corpus/qpack_decode/6d64086eb177e4606ca88e7d7c125502c5bf14f4
new file mode 100644
index 0000000..67e7ca0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6d64086eb177e4606ca88e7d7c125502c5bf14f4
@@ -0,0 +1 @@
+êêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêê
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6d7f383ad47aeccc633a5fbd45fc3dbf20a19916 b/fuzz/corpus/qpack_decode/6d7f383ad47aeccc633a5fbd45fc3dbf20a19916
new file mode 100644
index 0000000..9728c59
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6d7f383ad47aeccc633a5fbd45fc3dbf20a19916
@@ -0,0 +1 @@
+õõõõõ)
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6d9e1468a935f059ccffaed5c8a75404d5b7c1de b/fuzz/corpus/qpack_decode/6d9e1468a935f059ccffaed5c8a75404d5b7c1de
new file mode 100644
index 0000000..06206e2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6d9e1468a935f059ccffaed5c8a75404d5b7c1de
@@ -0,0 +1 @@
+y2ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6dd81b6c1916d43972f4bfa03fc3b50c1ec0ba85 b/fuzz/corpus/qpack_decode/6dd81b6c1916d43972f4bfa03fc3b50c1ec0ba85
new file mode 100644
index 0000000..9f2b565
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6dd81b6c1916d43972f4bfa03fc3b50c1ec0ba85
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6df934ac9c759b204938e5b85a8ec06fa325426a b/fuzz/corpus/qpack_decode/6df934ac9c759b204938e5b85a8ec06fa325426a
new file mode 100644
index 0000000..0ae14c5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6df934ac9c759b204938e5b85a8ec06fa325426a
@@ -0,0 +1 @@
+€Ý(€(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6e57784e75db443ae9419f08c82aa84ffe1b4b46 b/fuzz/corpus/qpack_decode/6e57784e75db443ae9419f08c82aa84ffe1b4b46
new file mode 100644
index 0000000..8578a27
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6e57784e75db443ae9419f08c82aa84ffe1b4b46
@@ -0,0 +1 @@
+,ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6e5ce73ac08495bf7e613c7727c98935b01a9dbe b/fuzz/corpus/qpack_decode/6e5ce73ac08495bf7e613c7727c98935b01a9dbe
new file mode 100644
index 0000000..24bc692
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6e5ce73ac08495bf7e613c7727c98935b01a9dbe
@@ -0,0 +1 @@
+` ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6e83dd58a18ab3acf74ec2529a48fe42f993aab9 b/fuzz/corpus/qpack_decode/6e83dd58a18ab3acf74ec2529a48fe42f993aab9
new file mode 100644
index 0000000..c381703
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6e83dd58a18ab3acf74ec2529a48fe42f993aab9
@@ -0,0 +1 @@
+/ÝF€F€F€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6e8a2d1cf7401421893a4339ba654302af9ac4be b/fuzz/corpus/qpack_decode/6e8a2d1cf7401421893a4339ba654302af9ac4be
new file mode 100644
index 0000000..32e47d9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6e8a2d1cf7401421893a4339ba654302af9ac4be
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6e93f4aa42a4c77e842da26015d46d47ffaa3371 b/fuzz/corpus/qpack_decode/6e93f4aa42a4c77e842da26015d46d47ffaa3371
deleted file mode 100644
index e869001..0000000
--- a/fuzz/corpus/qpack_decode/6e93f4aa42a4c77e842da26015d46d47ffaa3371
+++ /dev/null
@@ -1 +0,0 @@
-*×ÝÝÝ×
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/6eeb3a6ee692ce9c62353a0075fde63e929a3370 b/fuzz/corpus/qpack_decode/6eeb3a6ee692ce9c62353a0075fde63e929a3370
new file mode 100644
index 0000000..fd28e39
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6eeb3a6ee692ce9c62353a0075fde63e929a3370
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6f11b8ca94a9ce3be66fce0a4fc3670ef7827c7c b/fuzz/corpus/qpack_decode/6f11b8ca94a9ce3be66fce0a4fc3670ef7827c7c
new file mode 100644
index 0000000..a6a0c07
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6f11b8ca94a9ce3be66fce0a4fc3670ef7827c7c
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/6f1fbf953c6dc3d8aeafb4c2ef205725e2be8285 b/fuzz/corpus/qpack_decode/6f1fbf953c6dc3d8aeafb4c2ef205725e2be8285
new file mode 100644
index 0000000..a4ce811
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/6f1fbf953c6dc3d8aeafb4c2ef205725e2be8285
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/702ee6154af164723f734893a84d2a0e1dc46a64 b/fuzz/corpus/qpack_decode/702ee6154af164723f734893a84d2a0e1dc46a64
new file mode 100644
index 0000000..08f843d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/702ee6154af164723f734893a84d2a0e1dc46a64
@@ -0,0 +1 @@
+2öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/70528c1cdc3f858157cc6ff00aa0639efe24131d b/fuzz/corpus/qpack_decode/70528c1cdc3f858157cc6ff00aa0639efe24131d
new file mode 100644
index 0000000..f6b87eb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/70528c1cdc3f858157cc6ff00aa0639efe24131d
@@ -0,0 +1 @@
+=þõõõõõõõõ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/706968d853bba5723627c9d0ce21e6d88e9c779f b/fuzz/corpus/qpack_decode/706968d853bba5723627c9d0ce21e6d88e9c779f
new file mode 100644
index 0000000..f6d2793
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/706968d853bba5723627c9d0ce21e6d88e9c779f
@@ -0,0 +1 @@
+íúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/70f90816c7e8ecb1ac1f8bf3414847a60999386d b/fuzz/corpus/qpack_decode/70f90816c7e8ecb1ac1f8bf3414847a60999386d
new file mode 100644
index 0000000..584239c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/70f90816c7e8ecb1ac1f8bf3414847a60999386d
@@ -0,0 +1 @@
+ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/713fc87957f781663fcf2185b7eaf0a32b443a13 b/fuzz/corpus/qpack_decode/713fc87957f781663fcf2185b7eaf0a32b443a13
new file mode 100644
index 0000000..462388d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/713fc87957f781663fcf2185b7eaf0a32b443a13
@@ -0,0 +1 @@
+€ÝF€F€F€F€F€F€F€F€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/71420f7a9645ad3605b32428aca6a4d6374413bb b/fuzz/corpus/qpack_decode/71420f7a9645ad3605b32428aca6a4d6374413bb
new file mode 100644
index 0000000..2357e53
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/71420f7a9645ad3605b32428aca6a4d6374413bb
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/717fd94b003a8b72c2ea42e2f67cfbe2281da118 b/fuzz/corpus/qpack_decode/717fd94b003a8b72c2ea42e2f67cfbe2281da118
new file mode 100644
index 0000000..c171f29
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/717fd94b003a8b72c2ea42e2f67cfbe2281da118
@@ -0,0 +1 @@
+ÊÅÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/71ce14ca02b6a8c1121e98f6c4adca72fb195fc7 b/fuzz/corpus/qpack_decode/71ce14ca02b6a8c1121e98f6c4adca72fb195fc7
new file mode 100644
index 0000000..c3471af
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/71ce14ca02b6a8c1121e98f6c4adca72fb195fc7
@@ -0,0 +1 @@
+?&??&á?&??'á%?,??&?á?&á?&??'á%?,???&?á??&??2&?&á?&??&?á?&á?&??'á%?,???&?á??&??2&?&á?&??'á%?,?"?&?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/71d5110f55dfc7787446ce6a976d734b82fc735a b/fuzz/corpus/qpack_decode/71d5110f55dfc7787446ce6a976d734b82fc735a
new file mode 100644
index 0000000..d195a65
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/71d5110f55dfc7787446ce6a976d734b82fc735a
@@ -0,0 +1 @@
+åþåååÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/725507acab87b28acc095dc69c3d0452df678682 b/fuzz/corpus/qpack_decode/725507acab87b28acc095dc69c3d0452df678682
new file mode 100644
index 0000000..b649800
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/725507acab87b28acc095dc69c3d0452df678682
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/726e87c6a02ff354e6ccba756f5426125cf0eb3f b/fuzz/corpus/qpack_decode/726e87c6a02ff354e6ccba756f5426125cf0eb3f
new file mode 100644
index 0000000..a1b81c7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/726e87c6a02ff354e6ccba756f5426125cf0eb3f
@@ -0,0 +1 @@
+ÏÐÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/729e6e4775d1891bbbec1c08b047c1e9348f32af b/fuzz/corpus/qpack_decode/729e6e4775d1891bbbec1c08b047c1e9348f32af
deleted file mode 100644
index 01ccca8..0000000
--- a/fuzz/corpus/qpack_decode/729e6e4775d1891bbbec1c08b047c1e9348f32af
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/72a97797b2418ae532281c9cf5c34234e1f5f56b b/fuzz/corpus/qpack_decode/72a97797b2418ae532281c9cf5c34234e1f5f56b
new file mode 100644
index 0000000..43908f6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/72a97797b2418ae532281c9cf5c34234e1f5f56b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/72ba25cc9a7996958ccb044657be32e7a0aad22c b/fuzz/corpus/qpack_decode/72ba25cc9a7996958ccb044657be32e7a0aad22c
new file mode 100644
index 0000000..93ba176
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/72ba25cc9a7996958ccb044657be32e7a0aad22c
@@ -0,0 +1 @@
+ÙÛñññp
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/72cf5e919114668aa41248c5b76bf2046cf1c69f b/fuzz/corpus/qpack_decode/72cf5e919114668aa41248c5b76bf2046cf1c69f
new file mode 100644
index 0000000..3cf7f41
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/72cf5e919114668aa41248c5b76bf2046cf1c69f
@@ -0,0 +1 @@
+äÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7314ac36912b07711328332795124c0aed0bc342 b/fuzz/corpus/qpack_decode/7314ac36912b07711328332795124c0aed0bc342
new file mode 100644
index 0000000..7633f8b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7314ac36912b07711328332795124c0aed0bc342
@@ -0,0 +1 @@
+++ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/731518e8560abe04682db70cd60565324b109495 b/fuzz/corpus/qpack_decode/731518e8560abe04682db70cd60565324b109495
new file mode 100644
index 0000000..ac622b5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/731518e8560abe04682db70cd60565324b109495
@@ -0,0 +1 @@
+ÎËþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7347a6615c60b208492f45b9df95bc7a94ebf9ee b/fuzz/corpus/qpack_decode/7347a6615c60b208492f45b9df95bc7a94ebf9ee
new file mode 100644
index 0000000..b1db000
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7347a6615c60b208492f45b9df95bc7a94ebf9ee
@@ -0,0 +1,2 @@
+æÿ
+
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7363936a0a80c1d50718799c506c213f98080471 b/fuzz/corpus/qpack_decode/7363936a0a80c1d50718799c506c213f98080471
new file mode 100644
index 0000000..ffe501d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7363936a0a80c1d50718799c506c213f98080471
@@ -0,0 +1 @@
+*Ððððððððððððððððð
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/73b875e881b5588e9119fa83f3c23c7019414547 b/fuzz/corpus/qpack_decode/73b875e881b5588e9119fa83f3c23c7019414547
new file mode 100644
index 0000000..99b0273
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/73b875e881b5588e9119fa83f3c23c7019414547
@@ -0,0 +1 @@
+òÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/73d10e493d7d8fd4fa5372c63f4c6c0c6c21f997 b/fuzz/corpus/qpack_decode/73d10e493d7d8fd4fa5372c63f4c6c0c6c21f997
new file mode 100644
index 0000000..3cfa27c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/73d10e493d7d8fd4fa5372c63f4c6c0c6c21f997
@@ -0,0 +1 @@
+€ÝL€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/73d90a21fe8119364c1e29ea970c4892bdac5723 b/fuzz/corpus/qpack_decode/73d90a21fe8119364c1e29ea970c4892bdac5723
new file mode 100644
index 0000000..f48f724
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/73d90a21fe8119364c1e29ea970c4892bdac5723
@@ -0,0 +1 @@
+óóóóóóóóóóóóóóóóóó
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/73d9467712c60bc15010ffce78f38cddf3f1e527 b/fuzz/corpus/qpack_decode/73d9467712c60bc15010ffce78f38cddf3f1e527
new file mode 100644
index 0000000..d0f2dfd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/73d9467712c60bc15010ffce78f38cddf3f1e527
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/743cc3bc991f5ccb657c89509e31afb8b0ca360c b/fuzz/corpus/qpack_decode/743cc3bc991f5ccb657c89509e31afb8b0ca360c
new file mode 100644
index 0000000..a6f052e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/743cc3bc991f5ccb657c89509e31afb8b0ca360c
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/74507cd75778583d448b3ac1572ee4773704dc12 b/fuzz/corpus/qpack_decode/74507cd75778583d448b3ac1572ee4773704dc12
deleted file mode 100644
index bb65356..0000000
--- a/fuzz/corpus/qpack_decode/74507cd75778583d448b3ac1572ee4773704dc12
+++ /dev/null
@@ -1 +0,0 @@
-ÿ×
diff --git a/fuzz/corpus/qpack_decode/74bd43e4fa01689932bb2b7b19147a0727c4c743 b/fuzz/corpus/qpack_decode/74bd43e4fa01689932bb2b7b19147a0727c4c743
new file mode 100644
index 0000000..f14b25e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/74bd43e4fa01689932bb2b7b19147a0727c4c743
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/74bed7616594fadf70dc2ac289292cf59c2c28a1 b/fuzz/corpus/qpack_decode/74bed7616594fadf70dc2ac289292cf59c2c28a1
new file mode 100644
index 0000000..e8ce5a5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/74bed7616594fadf70dc2ac289292cf59c2c28a1
@@ -0,0 +1 @@
+ÔÔ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/754375ea6a01fe08345ca3258ddd8ac56c4fdcd8 b/fuzz/corpus/qpack_decode/754375ea6a01fe08345ca3258ddd8ac56c4fdcd8
new file mode 100644
index 0000000..c82a8ac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/754375ea6a01fe08345ca3258ddd8ac56c4fdcd8
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/756480aea5bd870dc713397990237ce78cded854 b/fuzz/corpus/qpack_decode/756480aea5bd870dc713397990237ce78cded854
new file mode 100644
index 0000000..83b698d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/756480aea5bd870dc713397990237ce78cded854
@@ -0,0 +1 @@
+_Ñ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/75d13d965ed8afa0aa88c8f08762d84be20d8135 b/fuzz/corpus/qpack_decode/75d13d965ed8afa0aa88c8f08762d84be20d8135
new file mode 100644
index 0000000..a8746c3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/75d13d965ed8afa0aa88c8f08762d84be20d8135
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/75d155152e0a306bf71f023597cd800009245f20 b/fuzz/corpus/qpack_decode/75d155152e0a306bf71f023597cd800009245f20
new file mode 100644
index 0000000..f1ef95c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/75d155152e0a306bf71f023597cd800009245f20
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/75e80ec43df21fc8fa2fe49078d70d4cc392e52f b/fuzz/corpus/qpack_decode/75e80ec43df21fc8fa2fe49078d70d4cc392e52f
new file mode 100644
index 0000000..b7df772
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/75e80ec43df21fc8fa2fe49078d70d4cc392e52f
@@ -0,0 +1 @@
+ë&áááƒ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/760e3549540e0dec05d73dee3a4539f774abbdbf b/fuzz/corpus/qpack_decode/760e3549540e0dec05d73dee3a4539f774abbdbf
deleted file mode 100644
index 44fd69a..0000000
--- a/fuzz/corpus/qpack_decode/760e3549540e0dec05d73dee3a4539f774abbdbf
+++ /dev/null
@@ -1 +0,0 @@
-ööÀÀãÀ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/761052f572fccf63e300ba5492da569834e9a762 b/fuzz/corpus/qpack_decode/761052f572fccf63e300ba5492da569834e9a762
new file mode 100644
index 0000000..a001212
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/761052f572fccf63e300ba5492da569834e9a762
@@ -0,0 +1 @@
+!?€€€€€€€€€€/€€?€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/761f59b017e1dca58cb9509673c5f83cd3aba069 b/fuzz/corpus/qpack_decode/761f59b017e1dca58cb9509673c5f83cd3aba069
new file mode 100644
index 0000000..1b3afcb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/761f59b017e1dca58cb9509673c5f83cd3aba069
@@ -0,0 +1 @@
+%óÿ ÿ ÿ 
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/76ce81f011b6b129228607ec70a23c8bb7d14bb4 b/fuzz/corpus/qpack_decode/76ce81f011b6b129228607ec70a23c8bb7d14bb4
new file mode 100644
index 0000000..383807f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/76ce81f011b6b129228607ec70a23c8bb7d14bb4
@@ -0,0 +1 @@
+UUÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/774b97959a4a8c108ff85d0750b93be51e5b6787 b/fuzz/corpus/qpack_decode/774b97959a4a8c108ff85d0750b93be51e5b6787
new file mode 100644
index 0000000..6749dc9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/774b97959a4a8c108ff85d0750b93be51e5b6787
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7754a75544d8fb96c08f94894e0120f3b29d4d06 b/fuzz/corpus/qpack_decode/7754a75544d8fb96c08f94894e0120f3b29d4d06
new file mode 100644
index 0000000..dbc1e94
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7754a75544d8fb96c08f94894e0120f3b29d4d06
@@ -0,0 +1 @@
+úúÉÉÉËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËÉÉÉÉÉÉ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/77619ed6abbbbfa3cc01283a4c6917c5006b8838 b/fuzz/corpus/qpack_decode/77619ed6abbbbfa3cc01283a4c6917c5006b8838
new file mode 100644
index 0000000..bcfe4e8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/77619ed6abbbbfa3cc01283a4c6917c5006b8838
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7787786ab20ecd6f1303637c2831cd1517452c86 b/fuzz/corpus/qpack_decode/7787786ab20ecd6f1303637c2831cd1517452c86
new file mode 100644
index 0000000..a2cee10
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7787786ab20ecd6f1303637c2831cd1517452c86
@@ -0,0 +1,2 @@
+
+ø(€Ý{€ø(€Ý{€(€(€ø(€/€(€(€ø(€(€Ý(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/778a1b3d933c040945dde8ee58a28e63f9e036e8 b/fuzz/corpus/qpack_decode/778a1b3d933c040945dde8ee58a28e63f9e036e8
new file mode 100644
index 0000000..744bc1f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/778a1b3d933c040945dde8ee58a28e63f9e036e8
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/77be1525ecd65ab1fcc68ad8897cecafb3d2e6d5 b/fuzz/corpus/qpack_decode/77be1525ecd65ab1fcc68ad8897cecafb3d2e6d5
new file mode 100644
index 0000000..75ced71
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/77be1525ecd65ab1fcc68ad8897cecafb3d2e6d5
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/782dc2d3ecc8e7761d9226b98193b11423205cfb b/fuzz/corpus/qpack_decode/782dc2d3ecc8e7761d9226b98193b11423205cfb
new file mode 100644
index 0000000..0fe0dc6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/782dc2d3ecc8e7761d9226b98193b11423205cfb
@@ -0,0 +1 @@
+@@€@€@€@€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/787d44f877ee77dca67a951af6acc3b978b9c28d b/fuzz/corpus/qpack_decode/787d44f877ee77dca67a951af6acc3b978b9c28d
new file mode 100644
index 0000000..f1f662a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/787d44f877ee77dca67a951af6acc3b978b9c28d
@@ -0,0 +1 @@
+)^ýýý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7884b52babbe5974d9c0a8e8b37e43a603b95006 b/fuzz/corpus/qpack_decode/7884b52babbe5974d9c0a8e8b37e43a603b95006
new file mode 100644
index 0000000..d11ed8a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7884b52babbe5974d9c0a8e8b37e43a603b95006
@@ -0,0 +1 @@
+` ÿ	ÿ	ÿ		
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/78a33ad75e322351679eb89ef3736c023658f8ac b/fuzz/corpus/qpack_decode/78a33ad75e322351679eb89ef3736c023658f8ac
new file mode 100644
index 0000000..1ee96bc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/78a33ad75e322351679eb89ef3736c023658f8ac
@@ -0,0 +1 @@
+-þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/78d6904da7df5ec2797c2c3d4993eccad685ad15 b/fuzz/corpus/qpack_decode/78d6904da7df5ec2797c2c3d4993eccad685ad15
new file mode 100644
index 0000000..48d451e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/78d6904da7df5ec2797c2c3d4993eccad685ad15
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/78ead18b0d2d8ca643ad03c920362cac85ad485a b/fuzz/corpus/qpack_decode/78ead18b0d2d8ca643ad03c920362cac85ad485a
new file mode 100644
index 0000000..e725476
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/78ead18b0d2d8ca643ad03c920362cac85ad485a
@@ -0,0 +1 @@
+ììÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/78eb1eb94cd84042728002717d498bc6979beed0 b/fuzz/corpus/qpack_decode/78eb1eb94cd84042728002717d498bc6979beed0
new file mode 100644
index 0000000..fa9cee6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/78eb1eb94cd84042728002717d498bc6979beed0
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/792bf51d9cf6e3246c5b22094364cf03e6435bc0 b/fuzz/corpus/qpack_decode/792bf51d9cf6e3246c5b22094364cf03e6435bc0
new file mode 100644
index 0000000..e12afd9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/792bf51d9cf6e3246c5b22094364cf03e6435bc0
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/795da23a9f42c4845cd6a9a2a43a61e7e0327b1f b/fuzz/corpus/qpack_decode/795da23a9f42c4845cd6a9a2a43a61e7e0327b1f
new file mode 100644
index 0000000..04dd306
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/795da23a9f42c4845cd6a9a2a43a61e7e0327b1f
@@ -0,0 +1 @@
+*„óD
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/79f264b6ae306418a23e02acdaee2ce8f8653ceb b/fuzz/corpus/qpack_decode/79f264b6ae306418a23e02acdaee2ce8f8653ceb
new file mode 100644
index 0000000..e2c8e0b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/79f264b6ae306418a23e02acdaee2ce8f8653ceb
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7a1d7730393e161c1ac0ab1e15b380b2bf34b314 b/fuzz/corpus/qpack_decode/7a1d7730393e161c1ac0ab1e15b380b2bf34b314
new file mode 100644
index 0000000..12278c3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7a1d7730393e161c1ac0ab1e15b380b2bf34b314
@@ -0,0 +1 @@
+èóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7a2623855165353f8d65e9dd889e8372556acb80 b/fuzz/corpus/qpack_decode/7a2623855165353f8d65e9dd889e8372556acb80
new file mode 100644
index 0000000..cc0a9a1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7a2623855165353f8d65e9dd889e8372556acb80
@@ -0,0 +1 @@
+*îÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7a4e9b1de4c23d0962af35d6e209aac818f65408 b/fuzz/corpus/qpack_decode/7a4e9b1de4c23d0962af35d6e209aac818f65408
new file mode 100644
index 0000000..62e2317
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7a4e9b1de4c23d0962af35d6e209aac818f65408
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7a939d3971804e3750decfc05458f72444c908d4 b/fuzz/corpus/qpack_decode/7a939d3971804e3750decfc05458f72444c908d4
new file mode 100644
index 0000000..11054b1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7a939d3971804e3750decfc05458f72444c908d4
@@ -0,0 +1 @@
+(€*€(‚*€*€(‚*€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7add37a4dce8c6df0f1b92369c0d4c86caf0f511 b/fuzz/corpus/qpack_decode/7add37a4dce8c6df0f1b92369c0d4c86caf0f511
new file mode 100644
index 0000000..95648bc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7add37a4dce8c6df0f1b92369c0d4c86caf0f511
@@ -0,0 +1 @@
+óØÕÕÕ$
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7ade0abc826a5621c666b0c9df911c99c6dbe8ed b/fuzz/corpus/qpack_decode/7ade0abc826a5621c666b0c9df911c99c6dbe8ed
new file mode 100644
index 0000000..2cc67c3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7ade0abc826a5621c666b0c9df911c99c6dbe8ed
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7aee18bfc97869315c485c2a9f148face7b6ec0b b/fuzz/corpus/qpack_decode/7aee18bfc97869315c485c2a9f148face7b6ec0b
new file mode 100644
index 0000000..69ad845
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7aee18bfc97869315c485c2a9f148face7b6ec0b
@@ -0,0 +1 @@
+€€€€€€€€€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7b5bd73b2098b787b5659457cc4e0b084f762b9b b/fuzz/corpus/qpack_decode/7b5bd73b2098b787b5659457cc4e0b084f762b9b
new file mode 100644
index 0000000..534a23d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7b5bd73b2098b787b5659457cc4e0b084f762b9b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7b6d5b8f049318b965e76ca3b9b4d9b955a87e81 b/fuzz/corpus/qpack_decode/7b6d5b8f049318b965e76ca3b9b4d9b955a87e81
new file mode 100644
index 0000000..c3761f3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7b6d5b8f049318b965e76ca3b9b4d9b955a87e81
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7b97fcf1c756cb000b735bfe1caab8bb7de979d2 b/fuzz/corpus/qpack_decode/7b97fcf1c756cb000b735bfe1caab8bb7de979d2
deleted file mode 100644
index e0d0872..0000000
--- a/fuzz/corpus/qpack_decode/7b97fcf1c756cb000b735bfe1caab8bb7de979d2
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7ba99e1d77bf3c9fea760a6d0a4f6c40451c43a2 b/fuzz/corpus/qpack_decode/7ba99e1d77bf3c9fea760a6d0a4f6c40451c43a2
new file mode 100644
index 0000000..74d798d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7ba99e1d77bf3c9fea760a6d0a4f6c40451c43a2
@@ -0,0 +1 @@
+ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÞÊ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7bbcb4787c03f768e2608bd417429cbc5e9034e7 b/fuzz/corpus/qpack_decode/7bbcb4787c03f768e2608bd417429cbc5e9034e7
new file mode 100644
index 0000000..f5a6f9e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7bbcb4787c03f768e2608bd417429cbc5e9034e7
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7be621037c8b5d03ae60d5dafe6709dcf42607bb b/fuzz/corpus/qpack_decode/7be621037c8b5d03ae60d5dafe6709dcf42607bb
new file mode 100644
index 0000000..9359a1d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7be621037c8b5d03ae60d5dafe6709dcf42607bb
@@ -0,0 +1 @@
+kååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7c00e2d2d5adfeb051fff323ec201b1cff7da473 b/fuzz/corpus/qpack_decode/7c00e2d2d5adfeb051fff323ec201b1cff7da473
new file mode 100644
index 0000000..4f3a110
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7c00e2d2d5adfeb051fff323ec201b1cff7da473
@@ -0,0 +1 @@
+ óÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7c39a4a29d006ba0cb8c63ba2bf141f059eee6aa b/fuzz/corpus/qpack_decode/7c39a4a29d006ba0cb8c63ba2bf141f059eee6aa
deleted file mode 100644
index 6533ec5..0000000
--- a/fuzz/corpus/qpack_decode/7c39a4a29d006ba0cb8c63ba2bf141f059eee6aa
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7c96d2e2c3a593ba4775e6015db87edd4c8bd0c2 b/fuzz/corpus/qpack_decode/7c96d2e2c3a593ba4775e6015db87edd4c8bd0c2
new file mode 100644
index 0000000..4f04379
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7c96d2e2c3a593ba4775e6015db87edd4c8bd0c2
@@ -0,0 +1 @@
+-Sõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7ce195a70dbf722e03e768937b00e8d615c8a126 b/fuzz/corpus/qpack_decode/7ce195a70dbf722e03e768937b00e8d615c8a126
new file mode 100644
index 0000000..45bc719
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7ce195a70dbf722e03e768937b00e8d615c8a126
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7ce27d1a44dac0d257a9d2e5cc72f6c51c1d5100 b/fuzz/corpus/qpack_decode/7ce27d1a44dac0d257a9d2e5cc72f6c51c1d5100
new file mode 100644
index 0000000..29ef01f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7ce27d1a44dac0d257a9d2e5cc72f6c51c1d5100
@@ -0,0 +1 @@
+ÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7d06a8daa6edcf263409f4b328732c8d37fa6b8a b/fuzz/corpus/qpack_decode/7d06a8daa6edcf263409f4b328732c8d37fa6b8a
new file mode 100644
index 0000000..bea8b7e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7d06a8daa6edcf263409f4b328732c8d37fa6b8a
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7d0efd32305eb88701849f0bb377c70cf2546360 b/fuzz/corpus/qpack_decode/7d0efd32305eb88701849f0bb377c70cf2546360
new file mode 100644
index 0000000..ac8e9be
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7d0efd32305eb88701849f0bb377c70cf2546360
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7d4e992653ed28a259faf4e17c1907e09d6acb00 b/fuzz/corpus/qpack_decode/7d4e992653ed28a259faf4e17c1907e09d6acb00
new file mode 100644
index 0000000..2d5f0f0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7d4e992653ed28a259faf4e17c1907e09d6acb00
@@ -0,0 +1 @@
+ÒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7d5ce5139f1dbac78c22d9dca5a3353770ab762d b/fuzz/corpus/qpack_decode/7d5ce5139f1dbac78c22d9dca5a3353770ab762d
new file mode 100644
index 0000000..7447988
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7d5ce5139f1dbac78c22d9dca5a3353770ab762d
@@ -0,0 +1 @@
+ëëÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7d681745c4d89419b7ad6a6ded612d5047389ce8 b/fuzz/corpus/qpack_decode/7d681745c4d89419b7ad6a6ded612d5047389ce8
new file mode 100644
index 0000000..dd8419a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7d681745c4d89419b7ad6a6ded612d5047389ce8
@@ -0,0 +1 @@
+èèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèè
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7d7e6d72c72349bd52754532b49555447e82d423 b/fuzz/corpus/qpack_decode/7d7e6d72c72349bd52754532b49555447e82d423
new file mode 100644
index 0000000..2ec693f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7d7e6d72c72349bd52754532b49555447e82d423
@@ -0,0 +1 @@
+Áûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûû
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7d9a438258d8f2f5fd30dd981c0833b466939082 b/fuzz/corpus/qpack_decode/7d9a438258d8f2f5fd30dd981c0833b466939082
new file mode 100644
index 0000000..5dccf01
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7d9a438258d8f2f5fd30dd981c0833b466939082
@@ -0,0 +1 @@
+ÌÌÌÌÌÌÌÌÌÌ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7dea4f4fb0fde572ef0d0bccce78fb7bb97d8f0d b/fuzz/corpus/qpack_decode/7dea4f4fb0fde572ef0d0bccce78fb7bb97d8f0d
new file mode 100644
index 0000000..4e11504
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7dea4f4fb0fde572ef0d0bccce78fb7bb97d8f0d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7dfcad92f2b523b44207c45787cac68ba80d456d b/fuzz/corpus/qpack_decode/7dfcad92f2b523b44207c45787cac68ba80d456d
new file mode 100644
index 0000000..2645a13
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7dfcad92f2b523b44207c45787cac68ba80d456d
@@ -0,0 +1 @@
+Ðÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7e342ee6fc8006820ac42f5ee5836afec3a216b9 b/fuzz/corpus/qpack_decode/7e342ee6fc8006820ac42f5ee5836afec3a216b9
new file mode 100644
index 0000000..564e575
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7e342ee6fc8006820ac42f5ee5836afec3a216b9
@@ -0,0 +1 @@
+ÀÀôôôôôôôô
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7e4c8b43cee0b34d21b2765860558c95b3ea16a4 b/fuzz/corpus/qpack_decode/7e4c8b43cee0b34d21b2765860558c95b3ea16a4
new file mode 100644
index 0000000..3506aed
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7e4c8b43cee0b34d21b2765860558c95b3ea16a4
@@ -0,0 +1 @@
+€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7e7869b2b348b86a544f98c05e684568c8d6a8da b/fuzz/corpus/qpack_decode/7e7869b2b348b86a544f98c05e684568c8d6a8da
new file mode 100644
index 0000000..35605a5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7e7869b2b348b86a544f98c05e684568c8d6a8da
@@ -0,0 +1 @@
+ËÄÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7e828febb5f57aba259f26f09bde14a6302715bf b/fuzz/corpus/qpack_decode/7e828febb5f57aba259f26f09bde14a6302715bf
new file mode 100644
index 0000000..d0eae77
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7e828febb5f57aba259f26f09bde14a6302715bf
@@ -0,0 +1 @@
+ûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûû
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7ed7943400658ed3503632443baff0bc87eb0426 b/fuzz/corpus/qpack_decode/7ed7943400658ed3503632443baff0bc87eb0426
new file mode 100644
index 0000000..8eb7f73
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7ed7943400658ed3503632443baff0bc87eb0426
@@ -0,0 +1 @@
+[ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7f4b0d632306e731d2880deb770b3c7244b526f0 b/fuzz/corpus/qpack_decode/7f4b0d632306e731d2880deb770b3c7244b526f0
new file mode 100644
index 0000000..bf1ca03
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7f4b0d632306e731d2880deb770b3c7244b526f0
@@ -0,0 +1 @@
+ÔÔññññññññññññññññ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7f668bd592235b785d438787201acbab290a1430 b/fuzz/corpus/qpack_decode/7f668bd592235b785d438787201acbab290a1430
new file mode 100644
index 0000000..d75dabb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7f668bd592235b785d438787201acbab290a1430
@@ -0,0 +1 @@
+(îØØØ#
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7f6c3f72dcbe1e32393e314e277738184fdce7ce b/fuzz/corpus/qpack_decode/7f6c3f72dcbe1e32393e314e277738184fdce7ce
new file mode 100644
index 0000000..ca672bd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7f6c3f72dcbe1e32393e314e277738184fdce7ce
@@ -0,0 +1 @@
+£ïïïïïïïïï
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7f8bfa411067f0942e83e939bccefaa668d307a4 b/fuzz/corpus/qpack_decode/7f8bfa411067f0942e83e939bccefaa668d307a4
new file mode 100644
index 0000000..9aa3805
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7f8bfa411067f0942e83e939bccefaa668d307a4
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/7fb71fabbaf94620b392e2bccd09c6c8afe429d1 b/fuzz/corpus/qpack_decode/7fb71fabbaf94620b392e2bccd09c6c8afe429d1
new file mode 100644
index 0000000..6afa542
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7fb71fabbaf94620b392e2bccd09c6c8afe429d1
@@ -0,0 +1 @@
+óÁÆ+
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7fc560d9f0cbdc6eb8dbee05c4b73dcb11a81d17 b/fuzz/corpus/qpack_decode/7fc560d9f0cbdc6eb8dbee05c4b73dcb11a81d17
new file mode 100644
index 0000000..3ba6618
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7fc560d9f0cbdc6eb8dbee05c4b73dcb11a81d17
@@ -0,0 +1 @@
+Äÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7fdd36c873f10bd2bd1d57739d5990bfb9f4857b b/fuzz/corpus/qpack_decode/7fdd36c873f10bd2bd1d57739d5990bfb9f4857b
new file mode 100644
index 0000000..6ae5c59
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7fdd36c873f10bd2bd1d57739d5990bfb9f4857b
@@ -0,0 +1 @@
+Ý÷(‚ÝB‚Ý(‚Ý(‚ÝBÝB‚ÝR‚Ý ‚ÝB‚ÝK‚ÝB‚Ý(‚ÝB‚ÝB‚Ý(‚ÝB‚Ý ‚+B‚ÝB‚Ý(‚Ý(‚’B‚ÝB‚Ý ‚ÝÝB‚ÝB‚ÝR‚Ý ‚ÝB‚ÝK‚Ý(‚ÝB‚ÝR‚Ý ‚ÝB‚ÝK‚ÝB‚Ý(‚Ý(‚ÝB‚Ý(‚Ý(‚Ý2BÝB‚Ý!R‚Ý ‚ÝB‚ÝK‚ÝB‚Ý(‚Ý(‚B‚ÝB‚Ý ‚ÝÝB‚ÝBÝB‚ÝR‚Ý ‚ÝB‚Ý1K‚ÝB‚Ý(‚ÝB‚ÝR‚Ý ‚ÝB‚ÝK‚ÝB‚Ýþ(‚ÝB‚Ý ‚ÝB(‚ÝB‚ÝÝ(‚Ý(‚Ý2BÝB‚Ý!R‚Ý ‚ÝB‚ÝK‚ÝB‚Ý(‚Ý(‚B‚ÝB‚Ý ‚ÝÝÝB‚ÝBÝB‚ÝR‚Ý ‚ÝB‚ÝK‚ÝB‚Ý(‚ÝB‚ÝR‚Ý ‚ÝB‚ÝK‚ÝB‚Ýþ(‚ÝB‚Ý ‚ÝBÝ‚ÝR‚ÝB‚ÝK‚ÝB‚Ý(‚ÝB‚Ý ‚ÝÝ‚ÝR‚ÝB‚ÝK‚Ý(‚Ý ‚ÝB‚Ý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/7feb873834021870b42210c1a5c73e38329be359 b/fuzz/corpus/qpack_decode/7feb873834021870b42210c1a5c73e38329be359
new file mode 100644
index 0000000..2eb2b26
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/7feb873834021870b42210c1a5c73e38329be359
@@ -0,0 +1 @@
+(œ(€(€(€(€(€(€(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/801214e62d8fe1a0d483ce70e8eb48c21311c5d9 b/fuzz/corpus/qpack_decode/801214e62d8fe1a0d483ce70e8eb48c21311c5d9
new file mode 100644
index 0000000..c7b3b27
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/801214e62d8fe1a0d483ce70e8eb48c21311c5d9
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/8037ed27ea86fabc8c2108c35069770d85340ac3 b/fuzz/corpus/qpack_decode/8037ed27ea86fabc8c2108c35069770d85340ac3
new file mode 100644
index 0000000..98096ea
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8037ed27ea86fabc8c2108c35069770d85340ac3
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/804f15ab46b5bd29164099907410e5de15d39d00 b/fuzz/corpus/qpack_decode/804f15ab46b5bd29164099907410e5de15d39d00
new file mode 100644
index 0000000..71f022d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/804f15ab46b5bd29164099907410e5de15d39d00
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/806b99990d95be736c27a1a9d7ea7067431cc27f b/fuzz/corpus/qpack_decode/806b99990d95be736c27a1a9d7ea7067431cc27f
new file mode 100644
index 0000000..b7548f7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/806b99990d95be736c27a1a9d7ea7067431cc27f
@@ -0,0 +1 @@
+þÓØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/806e54e3e09bda9f439815d1aed73ec1809bba49 b/fuzz/corpus/qpack_decode/806e54e3e09bda9f439815d1aed73ec1809bba49
new file mode 100644
index 0000000..8542a0b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/806e54e3e09bda9f439815d1aed73ec1809bba49
@@ -0,0 +1 @@
+~øÑÑÑÑÑÑÑÑ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/80afeba415c458c2a8d50320a9e685d29fe42c93 b/fuzz/corpus/qpack_decode/80afeba415c458c2a8d50320a9e685d29fe42c93
new file mode 100644
index 0000000..a07f03a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/80afeba415c458c2a8d50320a9e685d29fe42c93
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/80c6fc636db5aa8916f97a0fe441563d2fc1ec2e b/fuzz/corpus/qpack_decode/80c6fc636db5aa8916f97a0fe441563d2fc1ec2e
new file mode 100644
index 0000000..ee774c3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/80c6fc636db5aa8916f97a0fe441563d2fc1ec2e
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/80ce6aa0ce5bf5850f7722582b88fb2ab7a05e81 b/fuzz/corpus/qpack_decode/80ce6aa0ce5bf5850f7722582b88fb2ab7a05e81
new file mode 100644
index 0000000..50bd49a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/80ce6aa0ce5bf5850f7722582b88fb2ab7a05e81
@@ -0,0 +1 @@
+æÐÿÿÿz
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8130751b5c37a861c22c30889a5d29836487853f b/fuzz/corpus/qpack_decode/8130751b5c37a861c22c30889a5d29836487853f
new file mode 100644
index 0000000..ce45f5e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8130751b5c37a861c22c30889a5d29836487853f
@@ -0,0 +1 @@
+€Ý(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/81e310b14cfa9224cfc7d6055be048a907b16b55 b/fuzz/corpus/qpack_decode/81e310b14cfa9224cfc7d6055be048a907b16b55
new file mode 100644
index 0000000..26c189e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/81e310b14cfa9224cfc7d6055be048a907b16b55
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/829ba02ce23ab2ea92950c599805a21682835e3b b/fuzz/corpus/qpack_decode/829ba02ce23ab2ea92950c599805a21682835e3b
new file mode 100644
index 0000000..00993e0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/829ba02ce23ab2ea92950c599805a21682835e3b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/82d9fea3e1cf306ebac72cdfcdf1bdfba0298d8e b/fuzz/corpus/qpack_decode/82d9fea3e1cf306ebac72cdfcdf1bdfba0298d8e
deleted file mode 100644
index 0e09e1c..0000000
--- a/fuzz/corpus/qpack_decode/82d9fea3e1cf306ebac72cdfcdf1bdfba0298d8e
+++ /dev/null
@@ -1 +0,0 @@
-åéåéé
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/82e6e8590d2113bf77735d9b977f3146cb3906b7 b/fuzz/corpus/qpack_decode/82e6e8590d2113bf77735d9b977f3146cb3906b7
new file mode 100644
index 0000000..47e6e44
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/82e6e8590d2113bf77735d9b977f3146cb3906b7
@@ -0,0 +1 @@
+24ÔÔÔÔÔÔÔÔ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/83490f0a81a95963b203d7c7827c82e3b03c8e6e b/fuzz/corpus/qpack_decode/83490f0a81a95963b203d7c7827c82e3b03c8e6e
new file mode 100644
index 0000000..aea25a4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/83490f0a81a95963b203d7c7827c82e3b03c8e6e
@@ -0,0 +1 @@
+ÿÿÿíÿÿÿííííí
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/834b7b69544fe392058733be5810db5e2d698e7e b/fuzz/corpus/qpack_decode/834b7b69544fe392058733be5810db5e2d698e7e
new file mode 100644
index 0000000..c9c34c0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/834b7b69544fe392058733be5810db5e2d698e7e
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/8368b32c8e6e4991049ef8976a2c9964e6ad3f55 b/fuzz/corpus/qpack_decode/8368b32c8e6e4991049ef8976a2c9964e6ad3f55
new file mode 100644
index 0000000..06bd2ac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8368b32c8e6e4991049ef8976a2c9964e6ad3f55
@@ -0,0 +1 @@
+*-(€(€(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/837269d64d0e516f93dd39bbb87ebd2ef484cebc b/fuzz/corpus/qpack_decode/837269d64d0e516f93dd39bbb87ebd2ef484cebc
new file mode 100644
index 0000000..4f01575
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/837269d64d0e516f93dd39bbb87ebd2ef484cebc
@@ -0,0 +1 @@
+ôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/839bca8d8341b43bb34e8f34dfe9b5c5bda2d2c4 b/fuzz/corpus/qpack_decode/839bca8d8341b43bb34e8f34dfe9b5c5bda2d2c4
new file mode 100644
index 0000000..dae9c0c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/839bca8d8341b43bb34e8f34dfe9b5c5bda2d2c4
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/8422365f8c77ae80c4310627949a4a84ac4f8ed0 b/fuzz/corpus/qpack_decode/8422365f8c77ae80c4310627949a4a84ac4f8ed0
new file mode 100644
index 0000000..b419fed
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8422365f8c77ae80c4310627949a4a84ac4f8ed0
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/8486d1028576d4ef1807550e5451df2e1225c4cc b/fuzz/corpus/qpack_decode/8486d1028576d4ef1807550e5451df2e1225c4cc
new file mode 100644
index 0000000..e4c14de
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8486d1028576d4ef1807550e5451df2e1225c4cc
@@ -0,0 +1 @@
+ììÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/84b3e44198e47c145390b987c0434462a99c1c2f b/fuzz/corpus/qpack_decode/84b3e44198e47c145390b987c0434462a99c1c2f
new file mode 100644
index 0000000..14e059c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/84b3e44198e47c145390b987c0434462a99c1c2f
@@ -0,0 +1,2 @@
+
+øA€A€€A€A€A€€A€A€A€€A€€A€€A€€A€€A€A€€A€A€A€A€A€A€_€A€A€A€_€A€A€€A€€A€€A€A€€A€A€€A€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8513619d74127e6d640815fea27d2ebab07eab7f b/fuzz/corpus/qpack_decode/8513619d74127e6d640815fea27d2ebab07eab7f
new file mode 100644
index 0000000..4b94677
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8513619d74127e6d640815fea27d2ebab07eab7f
@@ -0,0 +1 @@
+ûÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8559bb7778f962f6f4c5ee4148c7e34b550fac4d b/fuzz/corpus/qpack_decode/8559bb7778f962f6f4c5ee4148c7e34b550fac4d
new file mode 100644
index 0000000..eb32ec0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8559bb7778f962f6f4c5ee4148c7e34b550fac4d
@@ -0,0 +1 @@
+A÷îîî
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/856997b9ebb891079c4e39f0b8ed8a6a1f8237ea b/fuzz/corpus/qpack_decode/856997b9ebb891079c4e39f0b8ed8a6a1f8237ea
new file mode 100644
index 0000000..251bc4c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/856997b9ebb891079c4e39f0b8ed8a6a1f8237ea
@@ -0,0 +1 @@
+àÍϘ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/85a0037924613931aad0c1974126480666112582 b/fuzz/corpus/qpack_decode/85a0037924613931aad0c1974126480666112582
new file mode 100644
index 0000000..ce1cda9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/85a0037924613931aad0c1974126480666112582
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/85b73aeb57c1fb292d2b7a0970be4ada559196ae b/fuzz/corpus/qpack_decode/85b73aeb57c1fb292d2b7a0970be4ada559196ae
deleted file mode 100644
index e719320..0000000
--- a/fuzz/corpus/qpack_decode/85b73aeb57c1fb292d2b7a0970be4ada559196ae
+++ /dev/null
@@ -1 +0,0 @@
-qàqô
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/85bc4850f974fad707887b71a62b877b5f258079 b/fuzz/corpus/qpack_decode/85bc4850f974fad707887b71a62b877b5f258079
new file mode 100644
index 0000000..ae1ab5d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/85bc4850f974fad707887b71a62b877b5f258079
@@ -0,0 +1 @@
+ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/85bff552e63d9d6b9e8fbf5f135c35cbd1cb8f15 b/fuzz/corpus/qpack_decode/85bff552e63d9d6b9e8fbf5f135c35cbd1cb8f15
new file mode 100644
index 0000000..2cc2a1b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/85bff552e63d9d6b9e8fbf5f135c35cbd1cb8f15
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/85e37bfa9d04c364ea10863f8fb28df1951ac2cf b/fuzz/corpus/qpack_decode/85e37bfa9d04c364ea10863f8fb28df1951ac2cf
new file mode 100644
index 0000000..2cd7d33
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/85e37bfa9d04c364ea10863f8fb28df1951ac2cf
@@ -0,0 +1 @@
+#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/85f9daf08dd8ee6773331bda8f66d550e676c6c1 b/fuzz/corpus/qpack_decode/85f9daf08dd8ee6773331bda8f66d550e676c6c1
new file mode 100644
index 0000000..bf39f53
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/85f9daf08dd8ee6773331bda8f66d550e676c6c1
@@ -0,0 +1 @@
+îÛîîî=
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/860605fba92367a7eecd06c28008ae3d0b4503c4 b/fuzz/corpus/qpack_decode/860605fba92367a7eecd06c28008ae3d0b4503c4
new file mode 100644
index 0000000..488ab20
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/860605fba92367a7eecd06c28008ae3d0b4503c4
@@ -0,0 +1 @@
+*îÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8610bd4d02dfb5bcc68206c172948ceccd7b0f06 b/fuzz/corpus/qpack_decode/8610bd4d02dfb5bcc68206c172948ceccd7b0f06
deleted file mode 100644
index c6d161f..0000000
--- a/fuzz/corpus/qpack_decode/8610bd4d02dfb5bcc68206c172948ceccd7b0f06
+++ /dev/null
@@ -1 +0,0 @@
-)+ýýýýkÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8666ab4b445f13bf362ca602bac9fe06a80f0b8c b/fuzz/corpus/qpack_decode/8666ab4b445f13bf362ca602bac9fe06a80f0b8c
new file mode 100644
index 0000000..74aaec3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8666ab4b445f13bf362ca602bac9fe06a80f0b8c
@@ -0,0 +1 @@
+ììÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/867427076adab0eb8a2e826681cb3c2e54b9d843 b/fuzz/corpus/qpack_decode/867427076adab0eb8a2e826681cb3c2e54b9d843
new file mode 100644
index 0000000..4414161
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/867427076adab0eb8a2e826681cb3c2e54b9d843
@@ -0,0 +1 @@
+*!ÿ ÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/867b5541a1aa8ff1f1f85dc300494e12af20a332 b/fuzz/corpus/qpack_decode/867b5541a1aa8ff1f1f85dc300494e12af20a332
new file mode 100644
index 0000000..a9912f1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/867b5541a1aa8ff1f1f85dc300494e12af20a332
@@ -0,0 +1 @@
+ëÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8691917be08c36b42f2fe61eb81d503215af1e0b b/fuzz/corpus/qpack_decode/8691917be08c36b42f2fe61eb81d503215af1e0b
new file mode 100644
index 0000000..9272243
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8691917be08c36b42f2fe61eb81d503215af1e0b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/8695835a8477c1b4195a55ac0c7518671b022d16 b/fuzz/corpus/qpack_decode/8695835a8477c1b4195a55ac0c7518671b022d16
new file mode 100644
index 0000000..8f1bf89
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8695835a8477c1b4195a55ac0c7518671b022d16
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/86e17abc09bb33d979910e629a0adec45732d8b0 b/fuzz/corpus/qpack_decode/86e17abc09bb33d979910e629a0adec45732d8b0
new file mode 100644
index 0000000..ef6cb36
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/86e17abc09bb33d979910e629a0adec45732d8b0
@@ -0,0 +1 @@
+öÉÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/86fdc18df04aa1d5000f8033feb9cac0ab9726ec b/fuzz/corpus/qpack_decode/86fdc18df04aa1d5000f8033feb9cac0ab9726ec
new file mode 100644
index 0000000..bb74ab8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/86fdc18df04aa1d5000f8033feb9cac0ab9726ec
@@ -0,0 +1 @@
+0ääää(
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/87398e1727fa5cc675f98ccbc3e9fbd0b7b6266d b/fuzz/corpus/qpack_decode/87398e1727fa5cc675f98ccbc3e9fbd0b7b6266d
new file mode 100644
index 0000000..0c44a9b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/87398e1727fa5cc675f98ccbc3e9fbd0b7b6266d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/8792adf8d41f88d34a0976305a20163f52c661ce b/fuzz/corpus/qpack_decode/8792adf8d41f88d34a0976305a20163f52c661ce
new file mode 100644
index 0000000..148f093
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8792adf8d41f88d34a0976305a20163f52c661ce
@@ -0,0 +1 @@
+úúÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/87a882b0ae341d53a545f20032cee1eab3e62eea b/fuzz/corpus/qpack_decode/87a882b0ae341d53a545f20032cee1eab3e62eea
new file mode 100644
index 0000000..e6c3706
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/87a882b0ae341d53a545f20032cee1eab3e62eea
@@ -0,0 +1 @@
+øÊ(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/87af3cf55e1efead668aa8a4a706a5f29cbce0ff b/fuzz/corpus/qpack_decode/87af3cf55e1efead668aa8a4a706a5f29cbce0ff
new file mode 100644
index 0000000..c0fb6c4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/87af3cf55e1efead668aa8a4a706a5f29cbce0ff
@@ -0,0 +1 @@
+(ÝR€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/87b6aaf374ded0404c97c397cb19486fbbf75b9b b/fuzz/corpus/qpack_decode/87b6aaf374ded0404c97c397cb19486fbbf75b9b
deleted file mode 100644
index 24c6bd1..0000000
--- a/fuzz/corpus/qpack_decode/87b6aaf374ded0404c97c397cb19486fbbf75b9b
+++ /dev/null
@@ -1 +0,0 @@
-ÅÅ<:ÅÇÅ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/88ba1509d0c1629b386a85e130e3c74b3c5b9481 b/fuzz/corpus/qpack_decode/88ba1509d0c1629b386a85e130e3c74b3c5b9481
new file mode 100644
index 0000000..21e0849
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/88ba1509d0c1629b386a85e130e3c74b3c5b9481
@@ -0,0 +1 @@
+ûûÚ`
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/88e848adc7d1dfc9a3bb6712e4a1424c41d3bbe0 b/fuzz/corpus/qpack_decode/88e848adc7d1dfc9a3bb6712e4a1424c41d3bbe0
new file mode 100644
index 0000000..e3840c3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/88e848adc7d1dfc9a3bb6712e4a1424c41d3bbe0
@@ -0,0 +1 @@
+ß4ææææææææææææææææ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/88eb179f136472b57709e9c0341a80d25bb31d59 b/fuzz/corpus/qpack_decode/88eb179f136472b57709e9c0341a80d25bb31d59
new file mode 100644
index 0000000..c4dc54b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/88eb179f136472b57709e9c0341a80d25bb31d59
@@ -0,0 +1 @@
+ötÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8916b12b9f4991316eb6c6dc8c6da52bfa931edd b/fuzz/corpus/qpack_decode/8916b12b9f4991316eb6c6dc8c6da52bfa931edd
new file mode 100644
index 0000000..0a78a3e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8916b12b9f4991316eb6c6dc8c6da52bfa931edd
@@ -0,0 +1 @@
+ÁÉôôôô
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/891f239b702e0db327ec3ae50f4ab1d417d99d5a b/fuzz/corpus/qpack_decode/891f239b702e0db327ec3ae50f4ab1d417d99d5a
new file mode 100644
index 0000000..2511d14
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/891f239b702e0db327ec3ae50f4ab1d417d99d5a
@@ -0,0 +1 @@
+€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8952ec6edb6d98ae258cf575d1f8b5041beb2ff9 b/fuzz/corpus/qpack_decode/8952ec6edb6d98ae258cf575d1f8b5041beb2ff9
new file mode 100644
index 0000000..3a55f10
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8952ec6edb6d98ae258cf575d1f8b5041beb2ff9
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/898a3f5c9c71b28cc2dce66fa08bbd0fbdac5a03 b/fuzz/corpus/qpack_decode/898a3f5c9c71b28cc2dce66fa08bbd0fbdac5a03
new file mode 100644
index 0000000..53e8a0f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/898a3f5c9c71b28cc2dce66fa08bbd0fbdac5a03
@@ -0,0 +1 @@
+ïûÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8a36139e5ba80ddf9f4e838d2e57aa1dde7be24d b/fuzz/corpus/qpack_decode/8a36139e5ba80ddf9f4e838d2e57aa1dde7be24d
new file mode 100644
index 0000000..4dcfc38
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8a36139e5ba80ddf9f4e838d2e57aa1dde7be24d
@@ -0,0 +1 @@
+(€1*‚*€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8a81cf11d97bc39c0716587b127de9a2df6fc13a b/fuzz/corpus/qpack_decode/8a81cf11d97bc39c0716587b127de9a2df6fc13a
new file mode 100644
index 0000000..2970ee6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8a81cf11d97bc39c0716587b127de9a2df6fc13a
@@ -0,0 +1 @@
+'ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8ac9c0afc2c0bdcc94c9dab2622705b58f657957 b/fuzz/corpus/qpack_decode/8ac9c0afc2c0bdcc94c9dab2622705b58f657957
new file mode 100644
index 0000000..20a20c7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8ac9c0afc2c0bdcc94c9dab2622705b58f657957
@@ -0,0 +1 @@
+ßöÈÈÈÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8b60a72dae16294f16e64d68bcf182b5f9fb6635 b/fuzz/corpus/qpack_decode/8b60a72dae16294f16e64d68bcf182b5f9fb6635
new file mode 100644
index 0000000..f2117f1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8b60a72dae16294f16e64d68bcf182b5f9fb6635
@@ -0,0 +1 @@
+/€N€N€N€N€N€N€N€N€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8b8640fed26aa6a516279c52a71852ddca97cffe b/fuzz/corpus/qpack_decode/8b8640fed26aa6a516279c52a71852ddca97cffe
new file mode 100644
index 0000000..66e7a22
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8b8640fed26aa6a516279c52a71852ddca97cffe
@@ -0,0 +1 @@
+õÇÇÇÇÇÇÇÇÇ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8b8edf8bcbebd1c9c62d9336118b8b44ac6a4209 b/fuzz/corpus/qpack_decode/8b8edf8bcbebd1c9c62d9336118b8b44ac6a4209
new file mode 100644
index 0000000..6f4c7b7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8b8edf8bcbebd1c9c62d9336118b8b44ac6a4209
@@ -0,0 +1 @@
+úúÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8c3631b5e58af31d4d7059ac278aa6a24db802ec b/fuzz/corpus/qpack_decode/8c3631b5e58af31d4d7059ac278aa6a24db802ec
new file mode 100644
index 0000000..093b878
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8c3631b5e58af31d4d7059ac278aa6a24db802ec
@@ -0,0 +1 @@
+)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8c4679956fcc283220de1218ce521a33ee2b1dee b/fuzz/corpus/qpack_decode/8c4679956fcc283220de1218ce521a33ee2b1dee
new file mode 100644
index 0000000..5705f80
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8c4679956fcc283220de1218ce521a33ee2b1dee
@@ -0,0 +1 @@
+ÓÓÓÓÓÓÓÓÓÓ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8c4b767a4f527005ea0ff793cc0ac56e8ab3f54d b/fuzz/corpus/qpack_decode/8c4b767a4f527005ea0ff793cc0ac56e8ab3f54d
new file mode 100644
index 0000000..15af3e1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8c4b767a4f527005ea0ff793cc0ac56e8ab3f54d
@@ -0,0 +1 @@
+*îÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8c6746c6a53d4a01134379858d4bf15b3baee2d7 b/fuzz/corpus/qpack_decode/8c6746c6a53d4a01134379858d4bf15b3baee2d7
new file mode 100644
index 0000000..9252a33
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8c6746c6a53d4a01134379858d4bf15b3baee2d7
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/8cd76d755ee323a6213d795894fa9d36527743c7 b/fuzz/corpus/qpack_decode/8cd76d755ee323a6213d795894fa9d36527743c7
new file mode 100644
index 0000000..0dc4eca
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8cd76d755ee323a6213d795894fa9d36527743c7
@@ -0,0 +1 @@
+.€L€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8d6b192ddf7ce3e929f49cdfbe79c7db3549464a b/fuzz/corpus/qpack_decode/8d6b192ddf7ce3e929f49cdfbe79c7db3549464a
new file mode 100644
index 0000000..9e23a28
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8d6b192ddf7ce3e929f49cdfbe79c7db3549464a
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/8d87851382d165e21dbd314fb0a02c32a3f05999 b/fuzz/corpus/qpack_decode/8d87851382d165e21dbd314fb0a02c32a3f05999
new file mode 100644
index 0000000..91d3583
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8d87851382d165e21dbd314fb0a02c32a3f05999
@@ -0,0 +1 @@
+öÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8e0cc7f3c714bed72d27e9ed4b7734956f1b6cef b/fuzz/corpus/qpack_decode/8e0cc7f3c714bed72d27e9ed4b7734956f1b6cef
new file mode 100644
index 0000000..7774eaf
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8e0cc7f3c714bed72d27e9ed4b7734956f1b6cef
@@ -0,0 +1 @@
+ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8e7de0b90bc0feda905fdd655dedd3ca4b68a0e2 b/fuzz/corpus/qpack_decode/8e7de0b90bc0feda905fdd655dedd3ca4b68a0e2
new file mode 100644
index 0000000..f0ef5ea
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8e7de0b90bc0feda905fdd655dedd3ca4b68a0e2
@@ -0,0 +1 @@
+“íìììììììììììììììì
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8eba4e76d332cbc9335d77b416d26c645afa995a b/fuzz/corpus/qpack_decode/8eba4e76d332cbc9335d77b416d26c645afa995a
new file mode 100644
index 0000000..e2ffc64
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8eba4e76d332cbc9335d77b416d26c645afa995a
@@ -0,0 +1 @@
+ùÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8eced1186454f65c7a30ee476256a29db19a18f6 b/fuzz/corpus/qpack_decode/8eced1186454f65c7a30ee476256a29db19a18f6
new file mode 100644
index 0000000..cc05048
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8eced1186454f65c7a30ee476256a29db19a18f6
@@ -0,0 +1 @@
+ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8f7d54945b6030c391ae3e5f2a25fd83f7112597 b/fuzz/corpus/qpack_decode/8f7d54945b6030c391ae3e5f2a25fd83f7112597
deleted file mode 100644
index f01390b..0000000
--- a/fuzz/corpus/qpack_decode/8f7d54945b6030c391ae3e5f2a25fd83f7112597
+++ /dev/null
@@ -1 +0,0 @@
-A÷îîÚî
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8f9465396d001b2574236d26c80cd39d54936eaa b/fuzz/corpus/qpack_decode/8f9465396d001b2574236d26c80cd39d54936eaa
new file mode 100644
index 0000000..fc2c5c4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8f9465396d001b2574236d26c80cd39d54936eaa
@@ -0,0 +1 @@
+”ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8faac2798918d4e1b3a9fec1d4ef60ab9cb1b5cb b/fuzz/corpus/qpack_decode/8faac2798918d4e1b3a9fec1d4ef60ab9cb1b5cb
new file mode 100644
index 0000000..485b6c5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8faac2798918d4e1b3a9fec1d4ef60ab9cb1b5cb
@@ -0,0 +1 @@
+A(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/8fc8220b73140082cdf5af4f9f806659f9562ce7 b/fuzz/corpus/qpack_decode/8fc8220b73140082cdf5af4f9f806659f9562ce7
new file mode 100644
index 0000000..0257f79
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/8fc8220b73140082cdf5af4f9f806659f9562ce7
@@ -0,0 +1 @@
+ÝÝ/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€/€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9094a90680c2d7174e63926f35fdf209019c9baf b/fuzz/corpus/qpack_decode/9094a90680c2d7174e63926f35fdf209019c9baf
new file mode 100644
index 0000000..9593dd9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9094a90680c2d7174e63926f35fdf209019c9baf
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/90d42e8bb606630d82852b63db64fbf6a79d681a b/fuzz/corpus/qpack_decode/90d42e8bb606630d82852b63db64fbf6a79d681a
new file mode 100644
index 0000000..2a37695
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/90d42e8bb606630d82852b63db64fbf6a79d681a
@@ -0,0 +1 @@
+àá??&??'?á&??&?J?'?ì?&á?&áá&á?&???&?á??&??&á?&??'á%?,???&?á?&á?&??'á%?,???&?á??&??&??&á?&??'á%?,?á?&?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9123fb7ea2b9cec273abef1e09790ab95e23cafa b/fuzz/corpus/qpack_decode/9123fb7ea2b9cec273abef1e09790ab95e23cafa
new file mode 100644
index 0000000..e8decdb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9123fb7ea2b9cec273abef1e09790ab95e23cafa
@@ -0,0 +1 @@
+Eðääääääääääääääää
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/91432e860ae5a346067d4b5efa0888b8b2c94eb7 b/fuzz/corpus/qpack_decode/91432e860ae5a346067d4b5efa0888b8b2c94eb7
new file mode 100644
index 0000000..d5fa57a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/91432e860ae5a346067d4b5efa0888b8b2c94eb7
@@ -0,0 +1,2 @@
+
+ÝA€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/91ddc143f9ce66375d0ab643436cb28b0c779e4d b/fuzz/corpus/qpack_decode/91ddc143f9ce66375d0ab643436cb28b0c779e4d
new file mode 100644
index 0000000..71fed84
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/91ddc143f9ce66375d0ab643436cb28b0c779e4d
@@ -0,0 +1 @@
+ø€.€.€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/92342e7462e0494fa1b6e5410eeb19445ba78f69 b/fuzz/corpus/qpack_decode/92342e7462e0494fa1b6e5410eeb19445ba78f69
new file mode 100644
index 0000000..66504f4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/92342e7462e0494fa1b6e5410eeb19445ba78f69
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/924e0c70ee3f3746be1a72023bafcc8b284068d4 b/fuzz/corpus/qpack_decode/924e0c70ee3f3746be1a72023bafcc8b284068d4
new file mode 100644
index 0000000..6594c57
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/924e0c70ee3f3746be1a72023bafcc8b284068d4
@@ -0,0 +1 @@
+Dëöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/925603a8a43cfaf6facd87625e7a669af2551620 b/fuzz/corpus/qpack_decode/925603a8a43cfaf6facd87625e7a669af2551620
new file mode 100644
index 0000000..460241c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/925603a8a43cfaf6facd87625e7a669af2551620
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/9286f6c8b575e6c54f04f401d77d92c015c442d0 b/fuzz/corpus/qpack_decode/9286f6c8b575e6c54f04f401d77d92c015c442d0
new file mode 100644
index 0000000..f5d9eaa
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9286f6c8b575e6c54f04f401d77d92c015c442d0
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/92949cff60c862de3d5e7b60036adcfe211fa355 b/fuzz/corpus/qpack_decode/92949cff60c862de3d5e7b60036adcfe211fa355
new file mode 100644
index 0000000..4f95208
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/92949cff60c862de3d5e7b60036adcfe211fa355
@@ -0,0 +1 @@
+çúÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/92abe391b026ab177c301bac7729794516dfdfec b/fuzz/corpus/qpack_decode/92abe391b026ab177c301bac7729794516dfdfec
new file mode 100644
index 0000000..59491d8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/92abe391b026ab177c301bac7729794516dfdfec
@@ -0,0 +1 @@
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/92ccdd8d445cfa8323f49557df7884b3483bc1d9 b/fuzz/corpus/qpack_decode/92ccdd8d445cfa8323f49557df7884b3483bc1d9
new file mode 100644
index 0000000..7da77ac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/92ccdd8d445cfa8323f49557df7884b3483bc1d9
@@ -0,0 +1 @@
+ííííííííííííííííí
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/934d273830e2a7a5c07f38e59239e6758dddfc44 b/fuzz/corpus/qpack_decode/934d273830e2a7a5c07f38e59239e6758dddfc44
new file mode 100644
index 0000000..1766d23
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/934d273830e2a7a5c07f38e59239e6758dddfc44
@@ -0,0 +1 @@
+M[˘
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/93b31c0fabe097d63cb354ece52451c200a99441 b/fuzz/corpus/qpack_decode/93b31c0fabe097d63cb354ece52451c200a99441
deleted file mode 100644
index 29b8f34..0000000
--- a/fuzz/corpus/qpack_decode/93b31c0fabe097d63cb354ece52451c200a99441
+++ /dev/null
@@ -1 +0,0 @@
-ô)ÃõÃõ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/93b5b76cdff26de701d8bea871a6de11831fd8fe b/fuzz/corpus/qpack_decode/93b5b76cdff26de701d8bea871a6de11831fd8fe
new file mode 100644
index 0000000..bded1a6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/93b5b76cdff26de701d8bea871a6de11831fd8fe
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/93b93b300ac13f7cc71372d86c36b2eb089bd521 b/fuzz/corpus/qpack_decode/93b93b300ac13f7cc71372d86c36b2eb089bd521
new file mode 100644
index 0000000..675db41
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/93b93b300ac13f7cc71372d86c36b2eb089bd521
@@ -0,0 +1 @@
+(ÝB€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/93dde3989aee93b3af67042d713aad2b433dc3a5 b/fuzz/corpus/qpack_decode/93dde3989aee93b3af67042d713aad2b433dc3a5
new file mode 100644
index 0000000..6eaaa6d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/93dde3989aee93b3af67042d713aad2b433dc3a5
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/944e9171f16ce6f5f2e6f8f3a1214b883a4f6884 b/fuzz/corpus/qpack_decode/944e9171f16ce6f5f2e6f8f3a1214b883a4f6884
new file mode 100644
index 0000000..efe9f54
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/944e9171f16ce6f5f2e6f8f3a1214b883a4f6884
@@ -0,0 +1 @@
+(ÈN€N€N€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/945ae4d631071140021ac173601aef8db262d0d5 b/fuzz/corpus/qpack_decode/945ae4d631071140021ac173601aef8db262d0d5
new file mode 100644
index 0000000..f07064c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/945ae4d631071140021ac173601aef8db262d0d5
@@ -0,0 +1 @@
+ø(€0€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/94c2f3479fba5c77f1495844b7b9c1be4df8899d b/fuzz/corpus/qpack_decode/94c2f3479fba5c77f1495844b7b9c1be4df8899d
new file mode 100644
index 0000000..8ff6daa
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/94c2f3479fba5c77f1495844b7b9c1be4df8899d
@@ -0,0 +1 @@
+ååå
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/94e3b381018e5e9bd5c45091b81c67f1db81e122 b/fuzz/corpus/qpack_decode/94e3b381018e5e9bd5c45091b81c67f1db81e122
new file mode 100644
index 0000000..0fc0387
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/94e3b381018e5e9bd5c45091b81c67f1db81e122
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/95043f606504b42dd3d4a1fdd04f02a3ca5ccd55 b/fuzz/corpus/qpack_decode/95043f606504b42dd3d4a1fdd04f02a3ca5ccd55
deleted file mode 100644
index 32bedb4..0000000
--- a/fuzz/corpus/qpack_decode/95043f606504b42dd3d4a1fdd04f02a3ca5ccd55
+++ /dev/null
@@ -1 +0,0 @@
-ÿ+ÿ]ÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/95255abebd0ca899e546220b377d90ca055f2776 b/fuzz/corpus/qpack_decode/95255abebd0ca899e546220b377d90ca055f2776
new file mode 100644
index 0000000..9469fd6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/95255abebd0ca899e546220b377d90ca055f2776
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/95295d3777556ef727f606b8e791ec8ef400b713 b/fuzz/corpus/qpack_decode/95295d3777556ef727f606b8e791ec8ef400b713
new file mode 100644
index 0000000..ab5d5d3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/95295d3777556ef727f606b8e791ec8ef400b713
@@ -0,0 +1 @@
+í0ÎÎÎÎÎÎÊÎÎÎÎÎÎÎÎÎÊÎÊÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÊÎÎÇÇÇÎÎÎÎÎÎÎÎÎÊÎÎÇÇÎÎÎÎÎÎÎÎÎÎÎÎÊÎÎÇÇÇÎÎÎÎÎÎÎÎÎÊÎÎÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÏÌ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/953d31b808067538d7feb30c9ade1e0a2a7106cb b/fuzz/corpus/qpack_decode/953d31b808067538d7feb30c9ade1e0a2a7106cb
new file mode 100644
index 0000000..5fcbb64
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/953d31b808067538d7feb30c9ade1e0a2a7106cb
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/955be2d42c24fa04269660b6f168125cb7956df9 b/fuzz/corpus/qpack_decode/955be2d42c24fa04269660b6f168125cb7956df9
new file mode 100644
index 0000000..d89dd4c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/955be2d42c24fa04269660b6f168125cb7956df9
@@ -0,0 +1,32 @@
+**ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
diff --git a/fuzz/corpus/qpack_decode/95e1c34fcc230143378464a20b4e85ec6c37aee5 b/fuzz/corpus/qpack_decode/95e1c34fcc230143378464a20b4e85ec6c37aee5
new file mode 100644
index 0000000..8eb8f8e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/95e1c34fcc230143378464a20b4e85ec6c37aee5
@@ -0,0 +1,2 @@
+
+ÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9600e3c2609268e004f6f562e113ef1dfcf6e11e b/fuzz/corpus/qpack_decode/9600e3c2609268e004f6f562e113ef1dfcf6e11e
new file mode 100644
index 0000000..46ce11a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9600e3c2609268e004f6f562e113ef1dfcf6e11e
@@ -0,0 +1 @@
+?.ææææææææ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/96d7891342e9526b8273dca28300d1c5d961d78b b/fuzz/corpus/qpack_decode/96d7891342e9526b8273dca28300d1c5d961d78b
new file mode 100644
index 0000000..a31d35f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/96d7891342e9526b8273dca28300d1c5d961d78b
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/96d82b8fb3fcc59cb301f9cd58280eb9d467d68c b/fuzz/corpus/qpack_decode/96d82b8fb3fcc59cb301f9cd58280eb9d467d68c
new file mode 100644
index 0000000..68dfaaa
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/96d82b8fb3fcc59cb301f9cd58280eb9d467d68c
@@ -0,0 +1 @@
+ìÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/96f63219f2b66a2e1f07049f04e5059b5a94c0dc b/fuzz/corpus/qpack_decode/96f63219f2b66a2e1f07049f04e5059b5a94c0dc
new file mode 100644
index 0000000..e65e43c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/96f63219f2b66a2e1f07049f04e5059b5a94c0dc
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/9715debea83bbc894bdea91c53c862872ac8fce1 b/fuzz/corpus/qpack_decode/9715debea83bbc894bdea91c53c862872ac8fce1
new file mode 100644
index 0000000..c8017bf
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9715debea83bbc894bdea91c53c862872ac8fce1
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/9790f8bdfae66c55ab4060099ead02594789197e b/fuzz/corpus/qpack_decode/9790f8bdfae66c55ab4060099ead02594789197e
new file mode 100644
index 0000000..636b54c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9790f8bdfae66c55ab4060099ead02594789197e
@@ -0,0 +1 @@
+$ÎÕÎ&
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/97c6b885045326f4eb718695ec642ffebe17831e b/fuzz/corpus/qpack_decode/97c6b885045326f4eb718695ec642ffebe17831e
new file mode 100644
index 0000000..c7851c7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/97c6b885045326f4eb718695ec642ffebe17831e
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/97f0a4f6f59dc182012de66c9ba956262a32d447 b/fuzz/corpus/qpack_decode/97f0a4f6f59dc182012de66c9ba956262a32d447
new file mode 100644
index 0000000..db022e5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/97f0a4f6f59dc182012de66c9ba956262a32d447
@@ -0,0 +1 @@
+ÜÑÿ#ÿ#ÿ#
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9840f361a5c35ff73f15cfa1fec1d7d94bd779b8 b/fuzz/corpus/qpack_decode/9840f361a5c35ff73f15cfa1fec1d7d94bd779b8
new file mode 100644
index 0000000..08f03bf
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9840f361a5c35ff73f15cfa1fec1d7d94bd779b8
@@ -0,0 +1 @@
+ÝR€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9876848d28c197d66953a8a0ec51ddcaa0d73761 b/fuzz/corpus/qpack_decode/9876848d28c197d66953a8a0ec51ddcaa0d73761
new file mode 100644
index 0000000..663908c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9876848d28c197d66953a8a0ec51ddcaa0d73761
@@ -0,0 +1 @@
+9ëãããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããããã
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/989a315c3bdf6122bb1c0f7b0acfbc0c916b4566 b/fuzz/corpus/qpack_decode/989a315c3bdf6122bb1c0f7b0acfbc0c916b4566
new file mode 100644
index 0000000..0c9e54a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/989a315c3bdf6122bb1c0f7b0acfbc0c916b4566
@@ -0,0 +1 @@
+€01*€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/98c9e68d9b14ce7a99be83d7b7c62fae82c76587 b/fuzz/corpus/qpack_decode/98c9e68d9b14ce7a99be83d7b7c62fae82c76587
new file mode 100644
index 0000000..4b1fdcd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/98c9e68d9b14ce7a99be83d7b7c62fae82c76587
@@ -0,0 +1 @@
+ì*ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9918632192948af4c2a9498d6ad0fe7d6065dccb b/fuzz/corpus/qpack_decode/9918632192948af4c2a9498d6ad0fe7d6065dccb
new file mode 100644
index 0000000..16166c3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9918632192948af4c2a9498d6ad0fe7d6065dccb
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/995e44ca4266589280775e7e03254f59b2218ef2 b/fuzz/corpus/qpack_decode/995e44ca4266589280775e7e03254f59b2218ef2
new file mode 100644
index 0000000..3241a04
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/995e44ca4266589280775e7e03254f59b2218ef2
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/9987330ddbfe725244f13c975e0b8bce9c36f180 b/fuzz/corpus/qpack_decode/9987330ddbfe725244f13c975e0b8bce9c36f180
new file mode 100644
index 0000000..3c69919
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9987330ddbfe725244f13c975e0b8bce9c36f180
@@ -0,0 +1 @@
+‹ïíííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9990fa909e4740a6a9c0bd53e09934caa2fa6516 b/fuzz/corpus/qpack_decode/9990fa909e4740a6a9c0bd53e09934caa2fa6516
new file mode 100644
index 0000000..e1e13af
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9990fa909e4740a6a9c0bd53e09934caa2fa6516
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/99aeb06504435b5672ed81ded9299954ddbe650c b/fuzz/corpus/qpack_decode/99aeb06504435b5672ed81ded9299954ddbe650c
new file mode 100644
index 0000000..df38012
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/99aeb06504435b5672ed81ded9299954ddbe650c
@@ -0,0 +1 @@
+%ÿ ÿ ÿ ÿ 
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/99fa17357ade9d48e2dc7ab099e34264e0d8da60 b/fuzz/corpus/qpack_decode/99fa17357ade9d48e2dc7ab099e34264e0d8da60
new file mode 100644
index 0000000..1ef6983
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/99fa17357ade9d48e2dc7ab099e34264e0d8da60
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/9a06910c72936e6ca94cdeab7281f9fafc360705 b/fuzz/corpus/qpack_decode/9a06910c72936e6ca94cdeab7281f9fafc360705
new file mode 100644
index 0000000..deb755e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9a06910c72936e6ca94cdeab7281f9fafc360705
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9a0b53e28c500d07d88410e9072e91f0040e6e8a b/fuzz/corpus/qpack_decode/9a0b53e28c500d07d88410e9072e91f0040e6e8a
new file mode 100644
index 0000000..3559a53
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9a0b53e28c500d07d88410e9072e91f0040e6e8a
@@ -0,0 +1 @@
+9ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9a30fd4255260d43c84ec17d2bbb21c2d4af2e86 b/fuzz/corpus/qpack_decode/9a30fd4255260d43c84ec17d2bbb21c2d4af2e86
new file mode 100644
index 0000000..ada8899
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9a30fd4255260d43c84ec17d2bbb21c2d4af2e86
@@ -0,0 +1 @@
+ûûÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9a330a3a8b5736bce09ff32b082a221f5555d7ed b/fuzz/corpus/qpack_decode/9a330a3a8b5736bce09ff32b082a221f5555d7ed
new file mode 100644
index 0000000..fb17e8b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9a330a3a8b5736bce09ff32b082a221f5555d7ed
@@ -0,0 +1 @@
+ôôôôôôôÄ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9a94aec149ab6459bb91e2f8d926f70028fd5c6f b/fuzz/corpus/qpack_decode/9a94aec149ab6459bb91e2f8d926f70028fd5c6f
new file mode 100644
index 0000000..e79e927
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9a94aec149ab6459bb91e2f8d926f70028fd5c6f
@@ -0,0 +1 @@
+Iÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9a9e1d6e7b350bc7c3ba7a9cc13a562ada0312b0 b/fuzz/corpus/qpack_decode/9a9e1d6e7b350bc7c3ba7a9cc13a562ada0312b0
new file mode 100644
index 0000000..b891dd0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9a9e1d6e7b350bc7c3ba7a9cc13a562ada0312b0
@@ -0,0 +1 @@
+ûÐÐÐÐÐÐÐÐÐ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9ab54c289b48cb3b6c17c7804bb68a01df31b507 b/fuzz/corpus/qpack_decode/9ab54c289b48cb3b6c17c7804bb68a01df31b507
new file mode 100644
index 0000000..bfe9b91
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9ab54c289b48cb3b6c17c7804bb68a01df31b507
@@ -0,0 +1 @@
+Ðÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9ab75407c2adea13ca9bab55b4ab59ca18e465a2 b/fuzz/corpus/qpack_decode/9ab75407c2adea13ca9bab55b4ab59ca18e465a2
new file mode 100644
index 0000000..c669eac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9ab75407c2adea13ca9bab55b4ab59ca18e465a2
@@ -0,0 +1 @@
+€îÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9abdf16206aeaa196930e9daa03913408565a055 b/fuzz/corpus/qpack_decode/9abdf16206aeaa196930e9daa03913408565a055
new file mode 100644
index 0000000..c0a6527
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9abdf16206aeaa196930e9daa03913408565a055
@@ -0,0 +1 @@
+ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9ac246952a4aa9bea026a0a1d6e0991aa8218fe4 b/fuzz/corpus/qpack_decode/9ac246952a4aa9bea026a0a1d6e0991aa8218fe4
new file mode 100644
index 0000000..584ca71
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9ac246952a4aa9bea026a0a1d6e0991aa8218fe4
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/9b03390b6b3c71adc39b4e234be3a90fe6cdf874 b/fuzz/corpus/qpack_decode/9b03390b6b3c71adc39b4e234be3a90fe6cdf874
new file mode 100644
index 0000000..7b9faff
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9b03390b6b3c71adc39b4e234be3a90fe6cdf874
@@ -0,0 +1 @@
+!ììì
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9b0f4da82f1d8e0efe3fd602941dddbc5eee3d08 b/fuzz/corpus/qpack_decode/9b0f4da82f1d8e0efe3fd602941dddbc5eee3d08
new file mode 100644
index 0000000..9b1c8d3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9b0f4da82f1d8e0efe3fd602941dddbc5eee3d08
@@ -0,0 +1 @@
+ÿÿÔ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9b7e551787fcf81a470cbba05f05351791eeb099 b/fuzz/corpus/qpack_decode/9b7e551787fcf81a470cbba05f05351791eeb099
new file mode 100644
index 0000000..ff42ed1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9b7e551787fcf81a470cbba05f05351791eeb099
@@ -0,0 +1 @@
+ì#×ÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9b880791b435d4aa1ef4aee7b2fa8cbc73954372 b/fuzz/corpus/qpack_decode/9b880791b435d4aa1ef4aee7b2fa8cbc73954372
new file mode 100644
index 0000000..de04fb8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9b880791b435d4aa1ef4aee7b2fa8cbc73954372
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/9b9097ee4ade35f2bca6cc08c00dab3633ac32ae b/fuzz/corpus/qpack_decode/9b9097ee4ade35f2bca6cc08c00dab3633ac32ae
new file mode 100644
index 0000000..a7b0f19
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9b9097ee4ade35f2bca6cc08c00dab3633ac32ae
@@ -0,0 +1 @@
+ÙÙÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9bb97c3bfb410ee8ecc13a804100b356b7d34192 b/fuzz/corpus/qpack_decode/9bb97c3bfb410ee8ecc13a804100b356b7d34192
new file mode 100644
index 0000000..488d889
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9bb97c3bfb410ee8ecc13a804100b356b7d34192
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/9c2432702be3c7bd80e296cee6ee19adb8580ca0 b/fuzz/corpus/qpack_decode/9c2432702be3c7bd80e296cee6ee19adb8580ca0
new file mode 100644
index 0000000..0b36c44
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9c2432702be3c7bd80e296cee6ee19adb8580ca0
@@ -0,0 +1 @@
+'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9c24367ab94cda9d22ca3464016ee4b743e2308d b/fuzz/corpus/qpack_decode/9c24367ab94cda9d22ca3464016ee4b743e2308d
new file mode 100644
index 0000000..b207e7e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9c24367ab94cda9d22ca3464016ee4b743e2308d
@@ -0,0 +1 @@
+Иääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääää
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9c3c634ff44887ede4f9b028a3ac209c7d4ea26c b/fuzz/corpus/qpack_decode/9c3c634ff44887ede4f9b028a3ac209c7d4ea26c
new file mode 100644
index 0000000..dff12cd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9c3c634ff44887ede4f9b028a3ac209c7d4ea26c
@@ -0,0 +1 @@
+'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9c6d28711b1254dbd7e4039f94c54934d5079eef b/fuzz/corpus/qpack_decode/9c6d28711b1254dbd7e4039f94c54934d5079eef
new file mode 100644
index 0000000..a9fe409
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9c6d28711b1254dbd7e4039f94c54934d5079eef
@@ -0,0 +1 @@
+(€B€B‚ÝB€B€B€B€B€B€B€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B‚ÝB€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B‚ÝB€B€B€B€B€B€B€B€B€B€B€B‚ÝB€B€B€B€B‚ÝB€B‚ÝB€B€B‚ÝB‚ÝB€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B€B€B‚ÝB€B‚ÝB€B€B€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B‚B€B€B€B€B‚ÝB€B‚ÝB€B€B€B‚ÝB‚ÝB€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B‚ÝB€B€B‚Ý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9c91909186bc7374d10ab8f183b560de5791a4a4 b/fuzz/corpus/qpack_decode/9c91909186bc7374d10ab8f183b560de5791a4a4
new file mode 100644
index 0000000..4a492e3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9c91909186bc7374d10ab8f183b560de5791a4a4
@@ -0,0 +1 @@
+Eðððð/
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9d375d7cf6d193edf280d02e9d1fa4594469615f b/fuzz/corpus/qpack_decode/9d375d7cf6d193edf280d02e9d1fa4594469615f
new file mode 100644
index 0000000..6792dec
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9d375d7cf6d193edf280d02e9d1fa4594469615f
@@ -0,0 +1 @@
+ø€?€?€?€?€?€?€?€?€?€_?€?€?€?€?€?€?€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9d563e13b734e6eeb0036324ee7cf758ad18b657 b/fuzz/corpus/qpack_decode/9d563e13b734e6eeb0036324ee7cf758ad18b657
new file mode 100644
index 0000000..6b576a3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9d563e13b734e6eeb0036324ee7cf758ad18b657
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/9dd4e46aa9bdedef46b57fb7c016375bd161c123 b/fuzz/corpus/qpack_decode/9dd4e46aa9bdedef46b57fb7c016375bd161c123
new file mode 100644
index 0000000..2a38b00
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9dd4e46aa9bdedef46b57fb7c016375bd161c123
@@ -0,0 +1 @@
+ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9e1c1879da407d2034a162a95d4c82cccdd2cd2e b/fuzz/corpus/qpack_decode/9e1c1879da407d2034a162a95d4c82cccdd2cd2e
new file mode 100644
index 0000000..d8ca630
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9e1c1879da407d2034a162a95d4c82cccdd2cd2e
@@ -0,0 +1 @@
+ÇÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9e261a12789658259360e55b75aac3d6dbd877cd b/fuzz/corpus/qpack_decode/9e261a12789658259360e55b75aac3d6dbd877cd
new file mode 100644
index 0000000..3200d5a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9e261a12789658259360e55b75aac3d6dbd877cd
@@ -0,0 +1 @@
+$!ÿ!!
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9e7cabb59bc411287bf7897ad6f1326430d8d4b9 b/fuzz/corpus/qpack_decode/9e7cabb59bc411287bf7897ad6f1326430d8d4b9
new file mode 100644
index 0000000..485f935
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9e7cabb59bc411287bf7897ad6f1326430d8d4b9
@@ -0,0 +1 @@
+ÀÀôôô
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9e9df3bb75d93856f7f55f5d9b4cd236d79d34ab b/fuzz/corpus/qpack_decode/9e9df3bb75d93856f7f55f5d9b4cd236d79d34ab
new file mode 100644
index 0000000..eefb4c7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9e9df3bb75d93856f7f55f5d9b4cd236d79d34ab
@@ -0,0 +1 @@
+ì*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9eb2620c79eace3ca15c1c6adefac9afa29400e9 b/fuzz/corpus/qpack_decode/9eb2620c79eace3ca15c1c6adefac9afa29400e9
new file mode 100644
index 0000000..a6c7c62
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9eb2620c79eace3ca15c1c6adefac9afa29400e9
@@ -0,0 +1 @@
+ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9ec01e1af35d26e96ebb4de8ae68eed88eacf952 b/fuzz/corpus/qpack_decode/9ec01e1af35d26e96ebb4de8ae68eed88eacf952
new file mode 100644
index 0000000..17a5113
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9ec01e1af35d26e96ebb4de8ae68eed88eacf952
@@ -0,0 +1 @@
+$îÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9ecbc19d50ebc9137df32fff9ea8cf0121fff8ad b/fuzz/corpus/qpack_decode/9ecbc19d50ebc9137df32fff9ea8cf0121fff8ad
new file mode 100644
index 0000000..844f08a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9ecbc19d50ebc9137df32fff9ea8cf0121fff8ad
@@ -0,0 +1 @@
+€$B€B€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9f54f8f89a8e5c987f1dc5f37423696be095cee3 b/fuzz/corpus/qpack_decode/9f54f8f89a8e5c987f1dc5f37423696be095cee3
new file mode 100644
index 0000000..265a539
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9f54f8f89a8e5c987f1dc5f37423696be095cee3
@@ -0,0 +1 @@
+€ÝF€F€F€F€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9f9315a072a40ece4e840f7620e3b3b1c2015e16 b/fuzz/corpus/qpack_decode/9f9315a072a40ece4e840f7620e3b3b1c2015e16
new file mode 100644
index 0000000..937a4eb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9f9315a072a40ece4e840f7620e3b3b1c2015e16
@@ -0,0 +1 @@
+)ÄÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9f934df7c406b1f9bfa339130306ccc002747eac b/fuzz/corpus/qpack_decode/9f934df7c406b1f9bfa339130306ccc002747eac
new file mode 100644
index 0000000..3b2a4ae
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9f934df7c406b1f9bfa339130306ccc002747eac
@@ -0,0 +1 @@
+ííÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9fe4b0269306af2d8cde56067dce4101db33619a b/fuzz/corpus/qpack_decode/9fe4b0269306af2d8cde56067dce4101db33619a
deleted file mode 100644
index bcc0f23..0000000
--- a/fuzz/corpus/qpack_decode/9fe4b0269306af2d8cde56067dce4101db33619a
+++ /dev/null
@@ -1 +0,0 @@
-ïýìììü
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/9ff6c68005fb1a76ae7f6ffa0460ea61c226a337 b/fuzz/corpus/qpack_decode/9ff6c68005fb1a76ae7f6ffa0460ea61c226a337
new file mode 100644
index 0000000..0ba0880
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/9ff6c68005fb1a76ae7f6ffa0460ea61c226a337
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a003c54bdf3d886f432aec72d004e93b5b538ae3 b/fuzz/corpus/qpack_decode/a003c54bdf3d886f432aec72d004e93b5b538ae3
new file mode 100644
index 0000000..bfb59c6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a003c54bdf3d886f432aec72d004e93b5b538ae3
@@ -0,0 +1 @@
+íÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a012e6ed8024171692d6d057e851eca7b477a9a9 b/fuzz/corpus/qpack_decode/a012e6ed8024171692d6d057e851eca7b477a9a9
new file mode 100644
index 0000000..62ed1d6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a012e6ed8024171692d6d057e851eca7b477a9a9
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a015f6e5b44e06c2f84c7cc7a167e48bad5642b7 b/fuzz/corpus/qpack_decode/a015f6e5b44e06c2f84c7cc7a167e48bad5642b7
new file mode 100644
index 0000000..813f6e5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a015f6e5b44e06c2f84c7cc7a167e48bad5642b7
@@ -0,0 +1 @@
+î÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a03c88c0b3dd2a223fb49c055f1ef49236ff46ea b/fuzz/corpus/qpack_decode/a03c88c0b3dd2a223fb49c055f1ef49236ff46ea
new file mode 100644
index 0000000..dccf9c9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a03c88c0b3dd2a223fb49c055f1ef49236ff46ea
@@ -0,0 +1 @@
+*êèèèèèèèè
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a0722448a80d3043f686ad771fc2d3fb26b99fc7 b/fuzz/corpus/qpack_decode/a0722448a80d3043f686ad771fc2d3fb26b99fc7
new file mode 100644
index 0000000..e055588
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a0722448a80d3043f686ad771fc2d3fb26b99fc7
@@ -0,0 +1 @@
+ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a1052f463589c3d29ac222f05ee979d805b52a1e b/fuzz/corpus/qpack_decode/a1052f463589c3d29ac222f05ee979d805b52a1e
new file mode 100644
index 0000000..f8b8cd5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a1052f463589c3d29ac222f05ee979d805b52a1e
@@ -0,0 +1 @@
+íÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a11d0dd7bfd193ec82ae20a19c7a54ff5b294794 b/fuzz/corpus/qpack_decode/a11d0dd7bfd193ec82ae20a19c7a54ff5b294794
new file mode 100644
index 0000000..dbc0e5c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a11d0dd7bfd193ec82ae20a19c7a54ff5b294794
@@ -0,0 +1 @@
+y0ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a238788d5c7c9477537e53d3d2a6147d0301658d b/fuzz/corpus/qpack_decode/a238788d5c7c9477537e53d3d2a6147d0301658d
new file mode 100644
index 0000000..5439cfa
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a238788d5c7c9477537e53d3d2a6147d0301658d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a2969376d137d74e4b4a7f59f39b1dfaab15729e b/fuzz/corpus/qpack_decode/a2969376d137d74e4b4a7f59f39b1dfaab15729e
new file mode 100644
index 0000000..8fc37e8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a2969376d137d74e4b4a7f59f39b1dfaab15729e
@@ -0,0 +1 @@
+òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a296db0c18da4b7ab901b381737f070f08d03e54 b/fuzz/corpus/qpack_decode/a296db0c18da4b7ab901b381737f070f08d03e54
new file mode 100644
index 0000000..8ef3e55
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a296db0c18da4b7ab901b381737f070f08d03e54
@@ -0,0 +1,2 @@
+
+øF€F€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a3313641e403e7bc51c7a2e0c232ca6703bf93e3 b/fuzz/corpus/qpack_decode/a3313641e403e7bc51c7a2e0c232ca6703bf93e3
new file mode 100644
index 0000000..837e91e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a3313641e403e7bc51c7a2e0c232ca6703bf93e3
@@ -0,0 +1 @@
+ïýììì
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a3b8a177534f9fb5f239bd30dd66c29d987bcfb1 b/fuzz/corpus/qpack_decode/a3b8a177534f9fb5f239bd30dd66c29d987bcfb1
new file mode 100644
index 0000000..8dd35de
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a3b8a177534f9fb5f239bd30dd66c29d987bcfb1
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a3c9fb74bd6e07a9dfdffd0c3d536d5f01424332 b/fuzz/corpus/qpack_decode/a3c9fb74bd6e07a9dfdffd0c3d536d5f01424332
deleted file mode 100644
index dfb189f..0000000
--- a/fuzz/corpus/qpack_decode/a3c9fb74bd6e07a9dfdffd0c3d536d5f01424332
+++ /dev/null
@@ -1 +0,0 @@
-/~*?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a409472f9bde1212906b8327487defe1827bbfc7 b/fuzz/corpus/qpack_decode/a409472f9bde1212906b8327487defe1827bbfc7
deleted file mode 100644
index 434c683..0000000
--- a/fuzz/corpus/qpack_decode/a409472f9bde1212906b8327487defe1827bbfc7
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a41b4d9c278a54d29be169c89d1f125fb57d107d b/fuzz/corpus/qpack_decode/a41b4d9c278a54d29be169c89d1f125fb57d107d
new file mode 100644
index 0000000..c00254f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a41b4d9c278a54d29be169c89d1f125fb57d107d
@@ -0,0 +1 @@
+Õöò2
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a434d99733c26fd28c997a9f3e063438fdae8677 b/fuzz/corpus/qpack_decode/a434d99733c26fd28c997a9f3e063438fdae8677
new file mode 100644
index 0000000..630f8ed
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a434d99733c26fd28c997a9f3e063438fdae8677
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a44989e2f41657fb4c954f56729826f24b6996eb b/fuzz/corpus/qpack_decode/a44989e2f41657fb4c954f56729826f24b6996eb
new file mode 100644
index 0000000..d621eda
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a44989e2f41657fb4c954f56729826f24b6996eb
@@ -0,0 +1 @@
+?'€&€'€&€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a48cd243cafa381adfdf83bcc27da7b0a79c799f b/fuzz/corpus/qpack_decode/a48cd243cafa381adfdf83bcc27da7b0a79c799f
new file mode 100644
index 0000000..ec0349b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a48cd243cafa381adfdf83bcc27da7b0a79c799f
@@ -0,0 +1 @@
+ÃõÃÃ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a4a05610b5ecbd305ffdda7304991cd5d3338800 b/fuzz/corpus/qpack_decode/a4a05610b5ecbd305ffdda7304991cd5d3338800
new file mode 100644
index 0000000..3ce07c6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a4a05610b5ecbd305ffdda7304991cd5d3338800
@@ -0,0 +1 @@
+++ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a5030981f4f539889d9bb1d6f606a7ce973e21b6 b/fuzz/corpus/qpack_decode/a5030981f4f539889d9bb1d6f606a7ce973e21b6
new file mode 100644
index 0000000..c3d817e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a5030981f4f539889d9bb1d6f606a7ce973e21b6
@@ -0,0 +1 @@
+÷;ÿ;
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a50530f9f765a8a36c096e677918944dab45a12e b/fuzz/corpus/qpack_decode/a50530f9f765a8a36c096e677918944dab45a12e
new file mode 100644
index 0000000..a0dc780
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a50530f9f765a8a36c096e677918944dab45a12e
@@ -0,0 +1 @@
+&+ÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a50e4d89fc0046f4344d5ba056e4c82ce26c2d1e b/fuzz/corpus/qpack_decode/a50e4d89fc0046f4344d5ba056e4c82ce26c2d1e
new file mode 100644
index 0000000..4604923
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a50e4d89fc0046f4344d5ba056e4c82ce26c2d1e
@@ -0,0 +1 @@
+éééééééééééééééééé
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a583f000d8b6aaf894a7b9527cba2e04593c0aa3 b/fuzz/corpus/qpack_decode/a583f000d8b6aaf894a7b9527cba2e04593c0aa3
new file mode 100644
index 0000000..29afc15
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a583f000d8b6aaf894a7b9527cba2e04593c0aa3
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a5a91da2534d98ff894f794d912e40bd68c7d5b6 b/fuzz/corpus/qpack_decode/a5a91da2534d98ff894f794d912e40bd68c7d5b6
new file mode 100644
index 0000000..937a206
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a5a91da2534d98ff894f794d912e40bd68c7d5b6
@@ -0,0 +1 @@
+AØ-€-€-€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a5ccbf6a229b761bdccb7d3ba66e4b7b0463f50e b/fuzz/corpus/qpack_decode/a5ccbf6a229b761bdccb7d3ba66e4b7b0463f50e
new file mode 100644
index 0000000..e0f53de
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a5ccbf6a229b761bdccb7d3ba66e4b7b0463f50e
@@ -0,0 +1 @@
+ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a5d08c889eaf504580d50b259dd2266e29f11563 b/fuzz/corpus/qpack_decode/a5d08c889eaf504580d50b259dd2266e29f11563
deleted file mode 100644
index 6aec095..0000000
--- a/fuzz/corpus/qpack_decode/a5d08c889eaf504580d50b259dd2266e29f11563
+++ /dev/null
@@ -1 +0,0 @@
-*óññÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a5e1f9970b3e2e0550e7cbe7d648c04f746b94cd b/fuzz/corpus/qpack_decode/a5e1f9970b3e2e0550e7cbe7d648c04f746b94cd
new file mode 100644
index 0000000..e96798d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a5e1f9970b3e2e0550e7cbe7d648c04f746b94cd
@@ -0,0 +1 @@
+ûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûûû
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a5ee49155d553a73181480af4a3ccfc5e40f6920 b/fuzz/corpus/qpack_decode/a5ee49155d553a73181480af4a3ccfc5e40f6920
new file mode 100644
index 0000000..2b887d0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a5ee49155d553a73181480af4a3ccfc5e40f6920
@@ -0,0 +1 @@
+îîÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a6417681db9010b2711215175f6cb58e53432748 b/fuzz/corpus/qpack_decode/a6417681db9010b2711215175f6cb58e53432748
new file mode 100644
index 0000000..0818d87
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a6417681db9010b2711215175f6cb58e53432748
@@ -0,0 +1 @@
+ÎËÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a6427b752c609e8e1a937ba9e724edb3db6b0b0f b/fuzz/corpus/qpack_decode/a6427b752c609e8e1a937ba9e724edb3db6b0b0f
new file mode 100644
index 0000000..7ddedd2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a6427b752c609e8e1a937ba9e724edb3db6b0b0f
@@ -0,0 +1 @@
+ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a65e93a8e044f6978561f1e81211917b3ddd91fc b/fuzz/corpus/qpack_decode/a65e93a8e044f6978561f1e81211917b3ddd91fc
new file mode 100644
index 0000000..152277f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a65e93a8e044f6978561f1e81211917b3ddd91fc
@@ -0,0 +1 @@
+` ÿ	ÿ	ÿ	
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a67555fd82d1d5587f41a3fa8447e36be09eaac5 b/fuzz/corpus/qpack_decode/a67555fd82d1d5587f41a3fa8447e36be09eaac5
new file mode 100644
index 0000000..5a1c360
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a67555fd82d1d5587f41a3fa8447e36be09eaac5
@@ -0,0 +1 @@
+(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a6c310831caab621a4e2b7b3904eba81c62eb881 b/fuzz/corpus/qpack_decode/a6c310831caab621a4e2b7b3904eba81c62eb881
new file mode 100644
index 0000000..d622edd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a6c310831caab621a4e2b7b3904eba81c62eb881
@@ -0,0 +1 @@
+=óÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a71278cbd62c979bbc8f381c86d1467713bd1b4d b/fuzz/corpus/qpack_decode/a71278cbd62c979bbc8f381c86d1467713bd1b4d
new file mode 100644
index 0000000..d9507f4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a71278cbd62c979bbc8f381c86d1467713bd1b4d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a7521051792925c0c1131650fb4fbaca09396617 b/fuzz/corpus/qpack_decode/a7521051792925c0c1131650fb4fbaca09396617
new file mode 100644
index 0000000..be78a52
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a7521051792925c0c1131650fb4fbaca09396617
@@ -0,0 +1 @@
+ó2ëëëëëëëë
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a7a3b2a5481bb4754a558a0911a5277cfb3b3a37 b/fuzz/corpus/qpack_decode/a7a3b2a5481bb4754a558a0911a5277cfb3b3a37
new file mode 100644
index 0000000..4b7e2df
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a7a3b2a5481bb4754a558a0911a5277cfb3b3a37
@@ -0,0 +1 @@
+x1ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a7bd4d4065760d9150f3a8f9962416d7ee4a680e b/fuzz/corpus/qpack_decode/a7bd4d4065760d9150f3a8f9962416d7ee4a680e
new file mode 100644
index 0000000..38b6c32
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a7bd4d4065760d9150f3a8f9962416d7ee4a680e
@@ -0,0 +1,2 @@

+(€(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a7f75121f41cba1e33c5429cd7e73b2880310dcd b/fuzz/corpus/qpack_decode/a7f75121f41cba1e33c5429cd7e73b2880310dcd
new file mode 100644
index 0000000..715ad3d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a7f75121f41cba1e33c5429cd7e73b2880310dcd
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a80406cadb25bac66b88d67d99a5ecffb1aa11e4 b/fuzz/corpus/qpack_decode/a80406cadb25bac66b88d67d99a5ecffb1aa11e4
new file mode 100644
index 0000000..398a956
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a80406cadb25bac66b88d67d99a5ecffb1aa11e4
@@ -0,0 +1 @@
+++ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a871f78fb121a486000cc5cd41041b947b6c0511 b/fuzz/corpus/qpack_decode/a871f78fb121a486000cc5cd41041b947b6c0511
new file mode 100644
index 0000000..b8e7e4e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a871f78fb121a486000cc5cd41041b947b6c0511
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a8805aae3bb5bfe44284a082b25c86db81f97896 b/fuzz/corpus/qpack_decode/a8805aae3bb5bfe44284a082b25c86db81f97896
new file mode 100644
index 0000000..8363dff
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a8805aae3bb5bfe44284a082b25c86db81f97896
@@ -0,0 +1,4 @@
+øøÿ
+ÿ
+ÿ
+&
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a8eb0b710c6acb1f3d831ddaeffb61be83fa1ee9 b/fuzz/corpus/qpack_decode/a8eb0b710c6acb1f3d831ddaeffb61be83fa1ee9
new file mode 100644
index 0000000..c4355bb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a8eb0b710c6acb1f3d831ddaeffb61be83fa1ee9
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/a8feb9125fa39e88b083a355bcd7e909d3e91609 b/fuzz/corpus/qpack_decode/a8feb9125fa39e88b083a355bcd7e909d3e91609
new file mode 100644
index 0000000..d1ef8c2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a8feb9125fa39e88b083a355bcd7e909d3e91609
@@ -0,0 +1 @@
+»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a92ebcaffa980a8f0b6e7ebab75dbcb8ab5ab3fb b/fuzz/corpus/qpack_decode/a92ebcaffa980a8f0b6e7ebab75dbcb8ab5ab3fb
new file mode 100644
index 0000000..e25f72b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a92ebcaffa980a8f0b6e7ebab75dbcb8ab5ab3fb
@@ -0,0 +1 @@
+??€€€€€?€€€€€€?€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a990df384daa84c387a18a4584348405f81557e3 b/fuzz/corpus/qpack_decode/a990df384daa84c387a18a4584348405f81557e3
new file mode 100644
index 0000000..a2641e2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a990df384daa84c387a18a4584348405f81557e3
@@ -0,0 +1 @@
+ÝÝÝÝÝÝÝÝÝÝ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a99f2cb2809b0a337be86b66152c6aeab020063c b/fuzz/corpus/qpack_decode/a99f2cb2809b0a337be86b66152c6aeab020063c
new file mode 100644
index 0000000..3acb984
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a99f2cb2809b0a337be86b66152c6aeab020063c
@@ -0,0 +1 @@
+ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a9a92c1c94bbb3d6114106dc0bd25fd206b7abf3 b/fuzz/corpus/qpack_decode/a9a92c1c94bbb3d6114106dc0bd25fd206b7abf3
new file mode 100644
index 0000000..80f601a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a9a92c1c94bbb3d6114106dc0bd25fd206b7abf3
@@ -0,0 +1 @@
+ßßÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/a9dc080ef6cc2d253624a06e7cb782108eba8e16 b/fuzz/corpus/qpack_decode/a9dc080ef6cc2d253624a06e7cb782108eba8e16
new file mode 100644
index 0000000..db5effb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/a9dc080ef6cc2d253624a06e7cb782108eba8e16
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/aa49aafd4f2ac66448deffe3b404660eb6182b9d b/fuzz/corpus/qpack_decode/aa49aafd4f2ac66448deffe3b404660eb6182b9d
new file mode 100644
index 0000000..1a87097
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/aa49aafd4f2ac66448deffe3b404660eb6182b9d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/aa8ac7d791deb2f31f6de39de5f0443215e5ed06 b/fuzz/corpus/qpack_decode/aa8ac7d791deb2f31f6de39de5f0443215e5ed06
new file mode 100644
index 0000000..f81bd0f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/aa8ac7d791deb2f31f6de39de5f0443215e5ed06
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/aaad8fcce73984e4d0e4e9c298c6ac5d76008749 b/fuzz/corpus/qpack_decode/aaad8fcce73984e4d0e4e9c298c6ac5d76008749
deleted file mode 100644
index 28a00de..0000000
--- a/fuzz/corpus/qpack_decode/aaad8fcce73984e4d0e4e9c298c6ac5d76008749
+++ /dev/null
@@ -1 +0,0 @@
-øÑÀÑÑÑÑÀ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ab52803b9f7f9c84080af86ed74670c76b572a76 b/fuzz/corpus/qpack_decode/ab52803b9f7f9c84080af86ed74670c76b572a76
new file mode 100644
index 0000000..c338d2a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ab52803b9f7f9c84080af86ed74670c76b572a76
@@ -0,0 +1 @@
+ã¦ã4
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ab5acc0575faecb2b27d3fd35ea4be5b9cfaf8c7 b/fuzz/corpus/qpack_decode/ab5acc0575faecb2b27d3fd35ea4be5b9cfaf8c7
new file mode 100644
index 0000000..2f35b8b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ab5acc0575faecb2b27d3fd35ea4be5b9cfaf8c7
@@ -0,0 +1 @@
+úÿA
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ab6585977539a3b82c261cc7984317ece60b148a b/fuzz/corpus/qpack_decode/ab6585977539a3b82c261cc7984317ece60b148a
new file mode 100644
index 0000000..321aca9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ab6585977539a3b82c261cc7984317ece60b148a
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ab6acb56fba68a59da45e2690db2020e18506df7 b/fuzz/corpus/qpack_decode/ab6acb56fba68a59da45e2690db2020e18506df7
new file mode 100644
index 0000000..19dfdf4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ab6acb56fba68a59da45e2690db2020e18506df7
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ab818aab0de4c5888942169883964d4cf098bb62 b/fuzz/corpus/qpack_decode/ab818aab0de4c5888942169883964d4cf098bb62
deleted file mode 100644
index d756df0..0000000
--- a/fuzz/corpus/qpack_decode/ab818aab0de4c5888942169883964d4cf098bb62
+++ /dev/null
@@ -1 +0,0 @@
-?ÿÿí
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/aba20e70c005f93c3167ba3345c6b6c46ea4032e b/fuzz/corpus/qpack_decode/aba20e70c005f93c3167ba3345c6b6c46ea4032e
new file mode 100644
index 0000000..f7bda13
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/aba20e70c005f93c3167ba3345c6b6c46ea4032e
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/abe8e287d35972d5ed293015691ea50a836a787f b/fuzz/corpus/qpack_decode/abe8e287d35972d5ed293015691ea50a836a787f
new file mode 100644
index 0000000..467c67a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/abe8e287d35972d5ed293015691ea50a836a787f
@@ -0,0 +1 @@
+ùÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/abedf3a312e74d3f95ebde0c3303cd0019ada511 b/fuzz/corpus/qpack_decode/abedf3a312e74d3f95ebde0c3303cd0019ada511
new file mode 100644
index 0000000..9da7ea0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/abedf3a312e74d3f95ebde0c3303cd0019ada511
@@ -0,0 +1 @@
+)^ýýýÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ac7466e1644f8a22b7d01567c70a1bd50ef67672 b/fuzz/corpus/qpack_decode/ac7466e1644f8a22b7d01567c70a1bd50ef67672
new file mode 100644
index 0000000..ea00ecd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ac7466e1644f8a22b7d01567c70a1bd50ef67672
@@ -0,0 +1 @@
+'ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/acb3f012411967d9c6d63fdc967de8280e23cc4a b/fuzz/corpus/qpack_decode/acb3f012411967d9c6d63fdc967de8280e23cc4a
new file mode 100644
index 0000000..31e9cc9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/acb3f012411967d9c6d63fdc967de8280e23cc4a
@@ -0,0 +1 @@
+íÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/acce08a9b2a549b1ef3052be8e2650d1515b1b09 b/fuzz/corpus/qpack_decode/acce08a9b2a549b1ef3052be8e2650d1515b1b09
new file mode 100644
index 0000000..7f34b76
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/acce08a9b2a549b1ef3052be8e2650d1515b1b09
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ad0a3911e9031f1d514d9aff041d45b8f3536609 b/fuzz/corpus/qpack_decode/ad0a3911e9031f1d514d9aff041d45b8f3536609
new file mode 100644
index 0000000..2ae1837
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ad0a3911e9031f1d514d9aff041d45b8f3536609
@@ -0,0 +1 @@
+üÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ad1e101470aa20e044e561b0bf68d7436b6cb9f4 b/fuzz/corpus/qpack_decode/ad1e101470aa20e044e561b0bf68d7436b6cb9f4
new file mode 100644
index 0000000..7a176cb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ad1e101470aa20e044e561b0bf68d7436b6cb9f4
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ad229c710da63999ad97baf99b0b75dcfca15e1b b/fuzz/corpus/qpack_decode/ad229c710da63999ad97baf99b0b75dcfca15e1b
new file mode 100644
index 0000000..32feb83
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ad229c710da63999ad97baf99b0b75dcfca15e1b
@@ -0,0 +1 @@
+ííøøøøøøøøøøøøøøøø
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ad38f94ec7926e7fba923be69c238ec9edf50eba b/fuzz/corpus/qpack_decode/ad38f94ec7926e7fba923be69c238ec9edf50eba
new file mode 100644
index 0000000..04de109
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ad38f94ec7926e7fba923be69c238ec9edf50eba
@@ -0,0 +1 @@
+(€/€/€/€/€/€/€/€/€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ad455413104ee73c087574bb11a855ca5b558df4 b/fuzz/corpus/qpack_decode/ad455413104ee73c087574bb11a855ca5b558df4
new file mode 100644
index 0000000..a719655
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ad455413104ee73c087574bb11a855ca5b558df4
@@ -0,0 +1 @@
+öööööööööööööööööö
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ad76e16bc582d20304347ef7aee8cd42d19089c3 b/fuzz/corpus/qpack_decode/ad76e16bc582d20304347ef7aee8cd42d19089c3
new file mode 100644
index 0000000..cad397f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ad76e16bc582d20304347ef7aee8cd42d19089c3
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ad8285b0d425833d110c5139a63c1a1c2e1bec36 b/fuzz/corpus/qpack_decode/ad8285b0d425833d110c5139a63c1a1c2e1bec36
new file mode 100644
index 0000000..eae9294
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ad8285b0d425833d110c5139a63c1a1c2e1bec36
@@ -0,0 +1 @@
+R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/adbf6fbf1d76a8b11892e57dcdb203590449fbb6 b/fuzz/corpus/qpack_decode/adbf6fbf1d76a8b11892e57dcdb203590449fbb6
new file mode 100644
index 0000000..76080bf
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/adbf6fbf1d76a8b11892e57dcdb203590449fbb6
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/adbfc46fb870b003c479dc250f7b272007cfa3fa b/fuzz/corpus/qpack_decode/adbfc46fb870b003c479dc250f7b272007cfa3fa
new file mode 100644
index 0000000..9b12c1f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/adbfc46fb870b003c479dc250f7b272007cfa3fa
@@ -0,0 +1 @@
+ÐÃ#
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/adc3ce5714a7914baf639ff384031c9942757b66 b/fuzz/corpus/qpack_decode/adc3ce5714a7914baf639ff384031c9942757b66
new file mode 100644
index 0000000..d77c10c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/adc3ce5714a7914baf639ff384031c9942757b66
@@ -0,0 +1 @@
+ôÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/add190a37f274cc99c8aadc184bc26730c16d220 b/fuzz/corpus/qpack_decode/add190a37f274cc99c8aadc184bc26730c16d220
new file mode 100644
index 0000000..466e8ef
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/add190a37f274cc99c8aadc184bc26730c16d220
@@ -0,0 +1 @@
+ óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ae7d106299e0b5f4d88b7c3670931d22981c24fb b/fuzz/corpus/qpack_decode/ae7d106299e0b5f4d88b7c3670931d22981c24fb
new file mode 100644
index 0000000..c51c904
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ae7d106299e0b5f4d88b7c3670931d22981c24fb
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/aedd1547cf4355c07b67960e5e8d0a24c296621e b/fuzz/corpus/qpack_decode/aedd1547cf4355c07b67960e5e8d0a24c296621e
new file mode 100644
index 0000000..a064cb9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/aedd1547cf4355c07b67960e5e8d0a24c296621e
@@ -0,0 +1 @@
+Š?ÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/aefcaacfdac5086d15deb6760f06affae2864d1d b/fuzz/corpus/qpack_decode/aefcaacfdac5086d15deb6760f06affae2864d1d
new file mode 100644
index 0000000..103c085
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/aefcaacfdac5086d15deb6760f06affae2864d1d
@@ -0,0 +1 @@
+íÙÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/af54903ea4f47996823171f428532c78fe5e432f b/fuzz/corpus/qpack_decode/af54903ea4f47996823171f428532c78fe5e432f
new file mode 100644
index 0000000..471ef48
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/af54903ea4f47996823171f428532c78fe5e432f
@@ -0,0 +1 @@
+*üüüüüüüüü
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/afae81d5c980ea41881bb10c182a822216d7fccd b/fuzz/corpus/qpack_decode/afae81d5c980ea41881bb10c182a822216d7fccd
new file mode 100644
index 0000000..0c40d01
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/afae81d5c980ea41881bb10c182a822216d7fccd
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/afb2e07f509ea1e6882583671dce20af3a75d314 b/fuzz/corpus/qpack_decode/afb2e07f509ea1e6882583671dce20af3a75d314
deleted file mode 100644
index 7caf4a9..0000000
--- a/fuzz/corpus/qpack_decode/afb2e07f509ea1e6882583671dce20af3a75d314
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b00f93b83becf2e34d1ab140ee6d08a4819b403c b/fuzz/corpus/qpack_decode/b00f93b83becf2e34d1ab140ee6d08a4819b403c
new file mode 100644
index 0000000..7585344
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b00f93b83becf2e34d1ab140ee6d08a4819b403c
@@ -0,0 +1 @@
+øøÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b046cb6c380a3b295e652322ca04afb273954860 b/fuzz/corpus/qpack_decode/b046cb6c380a3b295e652322ca04afb273954860
new file mode 100644
index 0000000..55fbe4a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b046cb6c380a3b295e652322ca04afb273954860
@@ -0,0 +1 @@
++ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÆÆÆÆÆÇÇÇÇÇÇÇÇ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b0b045576b5ae6258725daea897d437e4b911a3c b/fuzz/corpus/qpack_decode/b0b045576b5ae6258725daea897d437e4b911a3c
new file mode 100644
index 0000000..bbb82aa
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b0b045576b5ae6258725daea897d437e4b911a3c
@@ -0,0 +1 @@
+åééé
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b0b409e0e5bc8b35198bb7a6bf8935b22a25320e b/fuzz/corpus/qpack_decode/b0b409e0e5bc8b35198bb7a6bf8935b22a25320e
new file mode 100644
index 0000000..8119a17
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b0b409e0e5bc8b35198bb7a6bf8935b22a25320e
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b11fb794c7d252a194cefe117c16761d7c5f76b6 b/fuzz/corpus/qpack_decode/b11fb794c7d252a194cefe117c16761d7c5f76b6
new file mode 100644
index 0000000..46f69ac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b11fb794c7d252a194cefe117c16761d7c5f76b6
@@ -0,0 +1 @@
+€ÝA€A€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b13c5564213272f6a8ddc57d14ecf9b635b0d8a4 b/fuzz/corpus/qpack_decode/b13c5564213272f6a8ddc57d14ecf9b635b0d8a4
new file mode 100644
index 0000000..929fb28
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b13c5564213272f6a8ddc57d14ecf9b635b0d8a4
@@ -0,0 +1 @@
+€×N€N€N€N€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b1a60647c68452392b19f1b5c46c5164ccfd60f1 b/fuzz/corpus/qpack_decode/b1a60647c68452392b19f1b5c46c5164ccfd60f1
new file mode 100644
index 0000000..e7ce33d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b1a60647c68452392b19f1b5c46c5164ccfd60f1
@@ -0,0 +1 @@
+ËúÚÚÚÚÚÚÚÚ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b1d09cdd023a54e2c8f72543aa708a3475616f4c b/fuzz/corpus/qpack_decode/b1d09cdd023a54e2c8f72543aa708a3475616f4c
new file mode 100644
index 0000000..eefe3e9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b1d09cdd023a54e2c8f72543aa708a3475616f4c
@@ -0,0 +1 @@
+ÿ!)ÿ!
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b1d38f75297408a9e4d78368cb39c09252f70f52 b/fuzz/corpus/qpack_decode/b1d38f75297408a9e4d78368cb39c09252f70f52
new file mode 100644
index 0000000..659e46b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b1d38f75297408a9e4d78368cb39c09252f70f52
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b225addff217f4daeceab289462907911b742def b/fuzz/corpus/qpack_decode/b225addff217f4daeceab289462907911b742def
new file mode 100644
index 0000000..9db6158
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b225addff217f4daeceab289462907911b742def
@@ -0,0 +1 @@
+þùùùù.
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b263eac0696b0a99de275c4d0f4b09160c194f1f b/fuzz/corpus/qpack_decode/b263eac0696b0a99de275c4d0f4b09160c194f1f
new file mode 100644
index 0000000..9e32e0b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b263eac0696b0a99de275c4d0f4b09160c194f1f
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b28a04987feffa48be06791574d265db7eb67cf3 b/fuzz/corpus/qpack_decode/b28a04987feffa48be06791574d265db7eb67cf3
new file mode 100644
index 0000000..f9c1c8c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b28a04987feffa48be06791574d265db7eb67cf3
@@ -0,0 +1 @@
+`	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	ÿ	
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b2e889160c6fbcc878f31974897787dc24af7049 b/fuzz/corpus/qpack_decode/b2e889160c6fbcc878f31974897787dc24af7049
new file mode 100644
index 0000000..04c811f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b2e889160c6fbcc878f31974897787dc24af7049
@@ -0,0 +1 @@
+Øÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b32199a6f1efb53b3b459b39463fbc04121ae139 b/fuzz/corpus/qpack_decode/b32199a6f1efb53b3b459b39463fbc04121ae139
new file mode 100644
index 0000000..35e4ac6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b32199a6f1efb53b3b459b39463fbc04121ae139
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b32cac89e5a7cc2c4163ddc95b8c7fa857151836 b/fuzz/corpus/qpack_decode/b32cac89e5a7cc2c4163ddc95b8c7fa857151836
new file mode 100644
index 0000000..616df59
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b32cac89e5a7cc2c4163ddc95b8c7fa857151836
@@ -0,0 +1 @@
+ÄÆ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b3393cb9ab44196ee24bc2b361a151b3eeda32d4 b/fuzz/corpus/qpack_decode/b3393cb9ab44196ee24bc2b361a151b3eeda32d4
new file mode 100644
index 0000000..3d1f7ad
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b3393cb9ab44196ee24bc2b361a151b3eeda32d4
@@ -0,0 +1 @@
++öööööööööööööööööööööööööööööööö
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b378449a96d62e05bc433417d065212ebe723c71 b/fuzz/corpus/qpack_decode/b378449a96d62e05bc433417d065212ebe723c71
new file mode 100644
index 0000000..8dcafd5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b378449a96d62e05bc433417d065212ebe723c71
@@ -0,0 +1 @@
+yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b385f1dbf4263ab6ac6aea0141e8e20414c14954 b/fuzz/corpus/qpack_decode/b385f1dbf4263ab6ac6aea0141e8e20414c14954
deleted file mode 100644
index e28cb0a..0000000
--- a/fuzz/corpus/qpack_decode/b385f1dbf4263ab6ac6aea0141e8e20414c14954
+++ /dev/null
@@ -1 +0,0 @@
-þùùùùùùùùùÞ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b3a062931bd1e3fe99aec77956a6e29a32e8f9dc b/fuzz/corpus/qpack_decode/b3a062931bd1e3fe99aec77956a6e29a32e8f9dc
new file mode 100644
index 0000000..c6abdff
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b3a062931bd1e3fe99aec77956a6e29a32e8f9dc
@@ -0,0 +1 @@
+ÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b3addd8b008cb1a9e139992f59265818d547b000 b/fuzz/corpus/qpack_decode/b3addd8b008cb1a9e139992f59265818d547b000
new file mode 100644
index 0000000..4d81d02
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b3addd8b008cb1a9e139992f59265818d547b000
@@ -0,0 +1 @@
+CÛ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b3c97c42ba749f30eb8ea0095fcce1d2d264af99 b/fuzz/corpus/qpack_decode/b3c97c42ba749f30eb8ea0095fcce1d2d264af99
new file mode 100644
index 0000000..1f5cf33
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b3c97c42ba749f30eb8ea0095fcce1d2d264af99
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b3d470435a66bda09b911cc578e8df155b3fbadf b/fuzz/corpus/qpack_decode/b3d470435a66bda09b911cc578e8df155b3fbadf
new file mode 100644
index 0000000..24aa481
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b3d470435a66bda09b911cc578e8df155b3fbadf
@@ -0,0 +1 @@
+ã¦Ð4
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b451c1183cd84468a1609652ab028914e600e7e0 b/fuzz/corpus/qpack_decode/b451c1183cd84468a1609652ab028914e600e7e0
new file mode 100644
index 0000000..2b0bde0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b451c1183cd84468a1609652ab028914e600e7e0
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b461480e1aad840f3ef13433e20e61c882c8ea3b b/fuzz/corpus/qpack_decode/b461480e1aad840f3ef13433e20e61c882c8ea3b
new file mode 100644
index 0000000..b25e683
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b461480e1aad840f3ef13433e20e61c882c8ea3b
@@ -0,0 +1 @@
+õõ1)‚
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b46901c70fed5a4fec0746cdca82b3c1dbcf3687 b/fuzz/corpus/qpack_decode/b46901c70fed5a4fec0746cdca82b3c1dbcf3687
new file mode 100644
index 0000000..090b561
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b46901c70fed5a4fec0746cdca82b3c1dbcf3687
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b4cb1c26942f125dc785ef1fb8b9cfd3ab34cfb1 b/fuzz/corpus/qpack_decode/b4cb1c26942f125dc785ef1fb8b9cfd3ab34cfb1
deleted file mode 100644
index 9dba05e..0000000
--- a/fuzz/corpus/qpack_decode/b4cb1c26942f125dc785ef1fb8b9cfd3ab34cfb1
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b4faad57569601d004ab80ef05a8a4d64d81b7b5 b/fuzz/corpus/qpack_decode/b4faad57569601d004ab80ef05a8a4d64d81b7b5
new file mode 100644
index 0000000..c75596b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b4faad57569601d004ab80ef05a8a4d64d81b7b5
@@ -0,0 +1 @@
+Иääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääää
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b5624b831d4555c19c7efdce234e2992f34fea13 b/fuzz/corpus/qpack_decode/b5624b831d4555c19c7efdce234e2992f34fea13
new file mode 100644
index 0000000..98c482d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b5624b831d4555c19c7efdce234e2992f34fea13
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b5703f084563f69573098818fc94173e90962aca b/fuzz/corpus/qpack_decode/b5703f084563f69573098818fc94173e90962aca
new file mode 100644
index 0000000..75e6a1c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b5703f084563f69573098818fc94173e90962aca
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b57f34aaab6de1aab5122a61ed8f846bbf6c5642 b/fuzz/corpus/qpack_decode/b57f34aaab6de1aab5122a61ed8f846bbf6c5642
new file mode 100644
index 0000000..bc72937
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b57f34aaab6de1aab5122a61ed8f846bbf6c5642
@@ -0,0 +1,128 @@
+**ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
diff --git a/fuzz/corpus/qpack_decode/b60ca87d067fdd6993018fec4c3b87f9b40bc173 b/fuzz/corpus/qpack_decode/b60ca87d067fdd6993018fec4c3b87f9b40bc173
new file mode 100644
index 0000000..bb83148
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b60ca87d067fdd6993018fec4c3b87f9b40bc173
@@ -0,0 +1 @@
+)ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b6159713f1b20c4bb8ac7b3465343819745051d2 b/fuzz/corpus/qpack_decode/b6159713f1b20c4bb8ac7b3465343819745051d2
new file mode 100644
index 0000000..843ee3c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b6159713f1b20c4bb8ac7b3465343819745051d2
@@ -0,0 +1 @@
+Ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b67f52aed258064e0505c386ae24e8f385646783 b/fuzz/corpus/qpack_decode/b67f52aed258064e0505c386ae24e8f385646783
new file mode 100644
index 0000000..5b31200
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b67f52aed258064e0505c386ae24e8f385646783
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b6c16e780a99165ed0a2931f8b3136df0a6ba5ae b/fuzz/corpus/qpack_decode/b6c16e780a99165ed0a2931f8b3136df0a6ba5ae
new file mode 100644
index 0000000..b745ab7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b6c16e780a99165ed0a2931f8b3136df0a6ba5ae
@@ -0,0 +1 @@
+Ùæüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b6e826301644ed520bfbbfe3bf99e8c283d4ced4 b/fuzz/corpus/qpack_decode/b6e826301644ed520bfbbfe3bf99e8c283d4ced4
new file mode 100644
index 0000000..095a34f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b6e826301644ed520bfbbfe3bf99e8c283d4ced4
@@ -0,0 +1 @@
+ÒÒääääääääääääääääääääääääääääääää
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b75690edfde0b2180d848543bdd4aa2eca869336 b/fuzz/corpus/qpack_decode/b75690edfde0b2180d848543bdd4aa2eca869336
new file mode 100644
index 0000000..1204c0b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b75690edfde0b2180d848543bdd4aa2eca869336
@@ -0,0 +1 @@
+'ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b7638025c67188bac66d53c5b57981b049d112b1 b/fuzz/corpus/qpack_decode/b7638025c67188bac66d53c5b57981b049d112b1
new file mode 100644
index 0000000..30acd6b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b7638025c67188bac66d53c5b57981b049d112b1
@@ -0,0 +1 @@
+ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b770c32fc9b0b61dbd99d6f99e520ae5d166a363 b/fuzz/corpus/qpack_decode/b770c32fc9b0b61dbd99d6f99e520ae5d166a363
new file mode 100644
index 0000000..955ffdb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b770c32fc9b0b61dbd99d6f99e520ae5d166a363
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/b78d4599bb731324228bdd2f29f035be448cea5f b/fuzz/corpus/qpack_decode/b78d4599bb731324228bdd2f29f035be448cea5f
new file mode 100644
index 0000000..7694aa5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b78d4599bb731324228bdd2f29f035be448cea5f
@@ -0,0 +1 @@
+#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b79ee338decf6ad07996a75896a5c0f03b4beda9 b/fuzz/corpus/qpack_decode/b79ee338decf6ad07996a75896a5c0f03b4beda9
new file mode 100644
index 0000000..2312be2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b79ee338decf6ad07996a75896a5c0f03b4beda9
@@ -0,0 +1 @@
+€€.€.€.€.€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b82b05179653c701f1d84b5ef28b2e160e4e7ac4 b/fuzz/corpus/qpack_decode/b82b05179653c701f1d84b5ef28b2e160e4e7ac4
new file mode 100644
index 0000000..5524652
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b82b05179653c701f1d84b5ef28b2e160e4e7ac4
@@ -0,0 +1 @@
+íÃÃÃÃÃÃÃÃÃ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b885f4242de8e2e7dd8cfcf490588863cc9642b3 b/fuzz/corpus/qpack_decode/b885f4242de8e2e7dd8cfcf490588863cc9642b3
new file mode 100644
index 0000000..3cebc9d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b885f4242de8e2e7dd8cfcf490588863cc9642b3
@@ -0,0 +1 @@
+ANÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b8af18e23aa035899b98fcceb086a83b8ea409a1 b/fuzz/corpus/qpack_decode/b8af18e23aa035899b98fcceb086a83b8ea409a1
new file mode 100644
index 0000000..d29b6d2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b8af18e23aa035899b98fcceb086a83b8ea409a1
@@ -0,0 +1 @@
+++ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b9910aecfb18c901291069339a7d9d914f04ce42 b/fuzz/corpus/qpack_decode/b9910aecfb18c901291069339a7d9d914f04ce42
new file mode 100644
index 0000000..fcae55c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b9910aecfb18c901291069339a7d9d914f04ce42
@@ -0,0 +1 @@
+üþþþÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/b9a3866b5747224c850fae389a27ab5a9bb87397 b/fuzz/corpus/qpack_decode/b9a3866b5747224c850fae389a27ab5a9bb87397
new file mode 100644
index 0000000..c1671a7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/b9a3866b5747224c850fae389a27ab5a9bb87397
@@ -0,0 +1 @@
+öÐÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ba5bf26c0837a18af124c17aca051cc4057bcb9d b/fuzz/corpus/qpack_decode/ba5bf26c0837a18af124c17aca051cc4057bcb9d
new file mode 100644
index 0000000..f262a85
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ba5bf26c0837a18af124c17aca051cc4057bcb9d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ba612f08ae1fe31d15a7f3a9e14b9bb3c6ea5c52 b/fuzz/corpus/qpack_decode/ba612f08ae1fe31d15a7f3a9e14b9bb3c6ea5c52
new file mode 100644
index 0000000..2334831
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ba612f08ae1fe31d15a7f3a9e14b9bb3c6ea5c52
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ba717ccb080a1743c1d339e97d80d658a8a28a8d b/fuzz/corpus/qpack_decode/ba717ccb080a1743c1d339e97d80d658a8a28a8d
new file mode 100644
index 0000000..a7c3428
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ba717ccb080a1743c1d339e97d80d658a8a28a8d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ba7a1fa3221c198e62aee38972d99e40e6fe840b b/fuzz/corpus/qpack_decode/ba7a1fa3221c198e62aee38972d99e40e6fe840b
new file mode 100644
index 0000000..8b8c24f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ba7a1fa3221c198e62aee38972d99e40e6fe840b
@@ -0,0 +1 @@
+'ÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ba8e2c32211ad70b891b02968a9c3554ec800d8e b/fuzz/corpus/qpack_decode/ba8e2c32211ad70b891b02968a9c3554ec800d8e
new file mode 100644
index 0000000..7733323
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ba8e2c32211ad70b891b02968a9c3554ec800d8e
@@ -0,0 +1,10 @@
+(€*
+(‚*€*
+(‚*€*
+(‚*€*
+(€*
+(‚*€*
+(‚*€*
+(‚*€*
+(€*
+(‚+€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ba94a28e6c98aa43e1fa773cbbdc5b89176cc67d b/fuzz/corpus/qpack_decode/ba94a28e6c98aa43e1fa773cbbdc5b89176cc67d
new file mode 100644
index 0000000..5ece6f4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ba94a28e6c98aa43e1fa773cbbdc5b89176cc67d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/bb067437cda42f88eb64c1a2a336b7a2514aac3c b/fuzz/corpus/qpack_decode/bb067437cda42f88eb64c1a2a336b7a2514aac3c
new file mode 100644
index 0000000..9d36633
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bb067437cda42f88eb64c1a2a336b7a2514aac3c
@@ -0,0 +1 @@
+ðÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bb45e912b5c553a930ad93a77ec6e9046aeb7434 b/fuzz/corpus/qpack_decode/bb45e912b5c553a930ad93a77ec6e9046aeb7434
new file mode 100644
index 0000000..c0fcce7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bb45e912b5c553a930ad93a77ec6e9046aeb7434
@@ -0,0 +1,3 @@
+**ÿ
+ÿ
+ÿ
diff --git a/fuzz/corpus/qpack_decode/bb5ed80add79653c6661542d671bcce98d3889d4 b/fuzz/corpus/qpack_decode/bb5ed80add79653c6661542d671bcce98d3889d4
new file mode 100644
index 0000000..452f147
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bb5ed80add79653c6661542d671bcce98d3889d4
@@ -0,0 +1 @@
+11ð
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bbd6ee772e671ba2e018951b0542447bc60bae07 b/fuzz/corpus/qpack_decode/bbd6ee772e671ba2e018951b0542447bc60bae07
new file mode 100644
index 0000000..834f16e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bbd6ee772e671ba2e018951b0542447bc60bae07
@@ -0,0 +1 @@
+yÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bbe139545bf56ee9cef8ee8df74a4ff1ec0d204f b/fuzz/corpus/qpack_decode/bbe139545bf56ee9cef8ee8df74a4ff1ec0d204f
new file mode 100644
index 0000000..9d440b9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bbe139545bf56ee9cef8ee8df74a4ff1ec0d204f
@@ -0,0 +1 @@
+üþÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bbf92978461c8dc42576c2d18b3180562b591132 b/fuzz/corpus/qpack_decode/bbf92978461c8dc42576c2d18b3180562b591132
new file mode 100644
index 0000000..4ceb954
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bbf92978461c8dc42576c2d18b3180562b591132
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bc4f6fbd15502977a7d9c3a729d472e4dc889d9d b/fuzz/corpus/qpack_decode/bc4f6fbd15502977a7d9c3a729d472e4dc889d9d
new file mode 100644
index 0000000..c15b9aa
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bc4f6fbd15502977a7d9c3a729d472e4dc889d9d
@@ -0,0 +1 @@
+(€B€B‚ÝB€B€B€B€B€B€B€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B‚ÝB€B€B€B€B€B€B€B€B€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B‚ÝB€B€B€B€B‚ÝB€B‚ÝB€B€B€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B‚B€B€B€B€B‚ÝB€B‚ÝB€B€B€B‚ÝB‚ÝB€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B€B€B‚ÝB€B‚ÝB€B€B€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B‚B€B€B€B€B‚ÝB€B‚ÝB€B€B€B‚ÝB‚ÝB€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B‚ÝB€B€B‚Ý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bc963bf055773ccc9c514dd722961c5f93241306 b/fuzz/corpus/qpack_decode/bc963bf055773ccc9c514dd722961c5f93241306
new file mode 100644
index 0000000..0836851
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bc963bf055773ccc9c514dd722961c5f93241306
@@ -0,0 +1 @@
+#øÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bcf9aba86945767025314ecd9e377469816dc601 b/fuzz/corpus/qpack_decode/bcf9aba86945767025314ecd9e377469816dc601
new file mode 100644
index 0000000..49b9c96
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bcf9aba86945767025314ecd9e377469816dc601
@@ -0,0 +1 @@
+íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bd5e7b9fda8b56dbe9f8e0e4010983ca7af50ca3 b/fuzz/corpus/qpack_decode/bd5e7b9fda8b56dbe9f8e0e4010983ca7af50ca3
new file mode 100644
index 0000000..8207e6f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bd5e7b9fda8b56dbe9f8e0e4010983ca7af50ca3
@@ -0,0 +1 @@
+ö÷ÀÀÀÀÀÀÀÀ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bd8a0f53c09248365b6b1ca579220489ccc1d6f8 b/fuzz/corpus/qpack_decode/bd8a0f53c09248365b6b1ca579220489ccc1d6f8
new file mode 100644
index 0000000..7a6628b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bd8a0f53c09248365b6b1ca579220489ccc1d6f8
@@ -0,0 +1 @@
+õõ;õõõ‚õõ,ýõõõ‡õ,õõõõ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bd9974870576664bbefc012904c665fadce3f39f b/fuzz/corpus/qpack_decode/bd9974870576664bbefc012904c665fadce3f39f
new file mode 100644
index 0000000..a643f75
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bd9974870576664bbefc012904c665fadce3f39f
@@ -0,0 +1 @@
+þùùùùùùùùù
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bdfb024a9f36ce21de7f0baf17413c2f998479c8 b/fuzz/corpus/qpack_decode/bdfb024a9f36ce21de7f0baf17413c2f998479c8
new file mode 100644
index 0000000..f1aca45
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bdfb024a9f36ce21de7f0baf17413c2f998479c8
@@ -0,0 +1 @@
+@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/be0a4218f96ba080ec63a772782f2f21cbadd227 b/fuzz/corpus/qpack_decode/be0a4218f96ba080ec63a772782f2f21cbadd227
new file mode 100644
index 0000000..551ad12
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/be0a4218f96ba080ec63a772782f2f21cbadd227
@@ -0,0 +1 @@
+ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/be369ae091d1dd411891012d33e39e5caa74c254 b/fuzz/corpus/qpack_decode/be369ae091d1dd411891012d33e39e5caa74c254
new file mode 100644
index 0000000..c7f47d0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/be369ae091d1dd411891012d33e39e5caa74c254
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/be519e08b5af7ead442126ccb17cdacd8105f7fd b/fuzz/corpus/qpack_decode/be519e08b5af7ead442126ccb17cdacd8105f7fd
new file mode 100644
index 0000000..f6f7392
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/be519e08b5af7ead442126ccb17cdacd8105f7fd
@@ -0,0 +1 @@
+Òâëëë~
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/be87c644e69f49d29735ff276d4a91a379e5e862 b/fuzz/corpus/qpack_decode/be87c644e69f49d29735ff276d4a91a379e5e862
new file mode 100644
index 0000000..140f5f4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/be87c644e69f49d29735ff276d4a91a379e5e862
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/bef64e185e506e6824504e95d94395ccdf65b592 b/fuzz/corpus/qpack_decode/bef64e185e506e6824504e95d94395ccdf65b592
new file mode 100644
index 0000000..ea87224
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bef64e185e506e6824504e95d94395ccdf65b592
@@ -0,0 +1 @@
+$!ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bf102d708a2086f926652270664862d5dd4ba48b b/fuzz/corpus/qpack_decode/bf102d708a2086f926652270664862d5dd4ba48b
new file mode 100644
index 0000000..53a1176
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bf102d708a2086f926652270664862d5dd4ba48b
@@ -0,0 +1 @@
+'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bf6c32089ff176d693e18f65f7bc81caea2d5116 b/fuzz/corpus/qpack_decode/bf6c32089ff176d693e18f65f7bc81caea2d5116
new file mode 100644
index 0000000..c6b587e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bf6c32089ff176d693e18f65f7bc81caea2d5116
@@ -0,0 +1 @@
+ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bf6d8aa8e500d7a9073f85828c07ba251275916b b/fuzz/corpus/qpack_decode/bf6d8aa8e500d7a9073f85828c07ba251275916b
new file mode 100644
index 0000000..1038cf4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bf6d8aa8e500d7a9073f85828c07ba251275916b
@@ -0,0 +1 @@
+1/Ó
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bf804846f80fe41be183fa151d7b95419eec9b94 b/fuzz/corpus/qpack_decode/bf804846f80fe41be183fa151d7b95419eec9b94
new file mode 100644
index 0000000..49aa109
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bf804846f80fe41be183fa151d7b95419eec9b94
@@ -0,0 +1 @@
+)þü5
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/bf95671c5b2d71cd83676ba7dfc1af13074d8426 b/fuzz/corpus/qpack_decode/bf95671c5b2d71cd83676ba7dfc1af13074d8426
new file mode 100644
index 0000000..8e8918a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bf95671c5b2d71cd83676ba7dfc1af13074d8426
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/bfe18cfbc5103a152722e793e4700eccffaa9914 b/fuzz/corpus/qpack_decode/bfe18cfbc5103a152722e793e4700eccffaa9914
new file mode 100644
index 0000000..0f337d9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/bfe18cfbc5103a152722e793e4700eccffaa9914
@@ -0,0 +1 @@
+ÎËîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c00d9369dd3e6d4b7ce1d225715350761cc5a5b1 b/fuzz/corpus/qpack_decode/c00d9369dd3e6d4b7ce1d225715350761cc5a5b1
new file mode 100644
index 0000000..4a1c0a1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c00d9369dd3e6d4b7ce1d225715350761cc5a5b1
@@ -0,0 +1,2 @@
+
+ø€€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c0286271c2f3dead4d298ae678b564a759b3964d b/fuzz/corpus/qpack_decode/c0286271c2f3dead4d298ae678b564a759b3964d
new file mode 100644
index 0000000..193832a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c0286271c2f3dead4d298ae678b564a759b3964d
@@ -0,0 +1 @@
+€ÝR€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€_R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c02887e0f2673a0a71eb246a86c3a5aa06c8e5f6 b/fuzz/corpus/qpack_decode/c02887e0f2673a0a71eb246a86c3a5aa06c8e5f6
new file mode 100644
index 0000000..9fc890f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c02887e0f2673a0a71eb246a86c3a5aa06c8e5f6
@@ -0,0 +1 @@
+UUãããããããããããããããããããããããããããããããã
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c05a15bc1fcc1381e35390fe121840861c9013ed b/fuzz/corpus/qpack_decode/c05a15bc1fcc1381e35390fe121840861c9013ed
new file mode 100644
index 0000000..4e9c336
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c05a15bc1fcc1381e35390fe121840861c9013ed
@@ -0,0 +1 @@
+ANÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c0ebcbe7440b94f4c23019249d27ec2c9207f1c9 b/fuzz/corpus/qpack_decode/c0ebcbe7440b94f4c23019249d27ec2c9207f1c9
new file mode 100644
index 0000000..0ad2621
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c0ebcbe7440b94f4c23019249d27ec2c9207f1c9
@@ -0,0 +1 @@
+ííííÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c0ff87ef325cde5f8d2d7067bf0984a9b95aaa9b b/fuzz/corpus/qpack_decode/c0ff87ef325cde5f8d2d7067bf0984a9b95aaa9b
new file mode 100644
index 0000000..c8cd0be
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c0ff87ef325cde5f8d2d7067bf0984a9b95aaa9b
@@ -0,0 +1 @@
+íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c124526a5da7678629e5c1d51ee3917547615300 b/fuzz/corpus/qpack_decode/c124526a5da7678629e5c1d51ee3917547615300
new file mode 100644
index 0000000..4fc48d2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c124526a5da7678629e5c1d51ee3917547615300
@@ -0,0 +1 @@
+ÙøÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c1562c3ac79fcfa1d17a114e3801d12f48b45162 b/fuzz/corpus/qpack_decode/c1562c3ac79fcfa1d17a114e3801d12f48b45162
new file mode 100644
index 0000000..bec62f5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c1562c3ac79fcfa1d17a114e3801d12f48b45162
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c1757a7ba28c4475ce422bbcbf8b387ee3f24a94 b/fuzz/corpus/qpack_decode/c1757a7ba28c4475ce422bbcbf8b387ee3f24a94
new file mode 100644
index 0000000..6690ae0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c1757a7ba28c4475ce422bbcbf8b387ee3f24a94
@@ -0,0 +1 @@
+Ðÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c1a099588345e2eda3692e00e23e88c4bec7a3fa b/fuzz/corpus/qpack_decode/c1a099588345e2eda3692e00e23e88c4bec7a3fa
new file mode 100644
index 0000000..1ea5d15
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c1a099588345e2eda3692e00e23e88c4bec7a3fa
@@ -0,0 +1 @@
+î<$#$$$
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c1f31f70d28169ac568168482426bec6e4ea165d b/fuzz/corpus/qpack_decode/c1f31f70d28169ac568168482426bec6e4ea165d
new file mode 100644
index 0000000..f0d31ef
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c1f31f70d28169ac568168482426bec6e4ea165d
@@ -0,0 +1 @@
+/¬*€*€*€*€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c2190b0268fdc37f133366e55d640d62eb20b9eb b/fuzz/corpus/qpack_decode/c2190b0268fdc37f133366e55d640d62eb20b9eb
new file mode 100644
index 0000000..5698937
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c2190b0268fdc37f133366e55d640d62eb20b9eb
@@ -0,0 +1 @@
+ööÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c24f67aefa15a26597cf9b00a8d385df06572b40 b/fuzz/corpus/qpack_decode/c24f67aefa15a26597cf9b00a8d385df06572b40
new file mode 100644
index 0000000..c0d73e8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c24f67aefa15a26597cf9b00a8d385df06572b40
@@ -0,0 +1 @@
+×æãüüüüüüüüãüüãüüüüü*ü
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c266faa97ba32e1a949c0e34642b693ceb6b0c3e b/fuzz/corpus/qpack_decode/c266faa97ba32e1a949c0e34642b693ceb6b0c3e
new file mode 100644
index 0000000..552e023
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c266faa97ba32e1a949c0e34642b693ceb6b0c3e
@@ -0,0 +1 @@
+*óÏÏÏÏ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c28b3dc393556711ec72ac793d99730454f9fdc7 b/fuzz/corpus/qpack_decode/c28b3dc393556711ec72ac793d99730454f9fdc7
new file mode 100644
index 0000000..d3e0272
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c28b3dc393556711ec72ac793d99730454f9fdc7
@@ -0,0 +1 @@
+Wßûûû5
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c29957a6ea93068d69e5b295b449e32e39f9d3bd b/fuzz/corpus/qpack_decode/c29957a6ea93068d69e5b295b449e32e39f9d3bd
new file mode 100644
index 0000000..baf60b4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c29957a6ea93068d69e5b295b449e32e39f9d3bd
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/c2c8d63c450608183de878a330a399c193d8ddcb b/fuzz/corpus/qpack_decode/c2c8d63c450608183de878a330a399c193d8ddcb
new file mode 100644
index 0000000..f623fc7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c2c8d63c450608183de878a330a399c193d8ddcb
@@ -0,0 +1 @@
+#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#ÿ#
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c2ee32dc3bcee0457cde8574225bd1b5320c2be8 b/fuzz/corpus/qpack_decode/c2ee32dc3bcee0457cde8574225bd1b5320c2be8
new file mode 100644
index 0000000..3973392
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c2ee32dc3bcee0457cde8574225bd1b5320c2be8
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/c3118a70fd9fc253787ed535be5353882215f5ea b/fuzz/corpus/qpack_decode/c3118a70fd9fc253787ed535be5353882215f5ea
new file mode 100644
index 0000000..37e113d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c3118a70fd9fc253787ed535be5353882215f5ea
@@ -0,0 +1 @@
+æÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c31c677eaef2a3f3559b96039e570959d1503f72 b/fuzz/corpus/qpack_decode/c31c677eaef2a3f3559b96039e570959d1503f72
new file mode 100644
index 0000000..cfef88e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c31c677eaef2a3f3559b96039e570959d1503f72
@@ -0,0 +1 @@
+ìú÷÷÷÷÷÷÷÷
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c32bbc8ab30b946cedea8892e94bbc78ee0bbf98 b/fuzz/corpus/qpack_decode/c32bbc8ab30b946cedea8892e94bbc78ee0bbf98
deleted file mode 100644
index c04ad32..0000000
--- a/fuzz/corpus/qpack_decode/c32bbc8ab30b946cedea8892e94bbc78ee0bbf98
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/c354d4edc4a0fc4dd7a30e7c88619b75910bd75a b/fuzz/corpus/qpack_decode/c354d4edc4a0fc4dd7a30e7c88619b75910bd75a
new file mode 100644
index 0000000..ea54060
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c354d4edc4a0fc4dd7a30e7c88619b75910bd75a
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/c358aaee2cbbe11ac133f251d7996cbe4aa0b502 b/fuzz/corpus/qpack_decode/c358aaee2cbbe11ac133f251d7996cbe4aa0b502
new file mode 100644
index 0000000..d9616d6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c358aaee2cbbe11ac133f251d7996cbe4aa0b502
@@ -0,0 +1 @@
+â:ßßßßßßßßü
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c38d6017a99a150dc9c1e4e8152f01e4486c9842 b/fuzz/corpus/qpack_decode/c38d6017a99a150dc9c1e4e8152f01e4486c9842
deleted file mode 100644
index 8543877..0000000
--- a/fuzz/corpus/qpack_decode/c38d6017a99a150dc9c1e4e8152f01e4486c9842
+++ /dev/null
@@ -1 +0,0 @@
-È?__?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c396b56a09e308450b91570083f04a604d239089 b/fuzz/corpus/qpack_decode/c396b56a09e308450b91570083f04a604d239089
new file mode 100644
index 0000000..bbac907
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c396b56a09e308450b91570083f04a604d239089
@@ -0,0 +1 @@
+11ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c435db2acf2f2deffbddc5f21589c9c8d7215c46 b/fuzz/corpus/qpack_decode/c435db2acf2f2deffbddc5f21589c9c8d7215c46
new file mode 100644
index 0000000..11edb5b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c435db2acf2f2deffbddc5f21589c9c8d7215c46
@@ -0,0 +1 @@
+$ÎËúÚÚÚÚÚÚÚËúÚÚÚÚÚÚÚÚÚ×
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c454f5e13704fb044704468df4056d1b43ab5c97 b/fuzz/corpus/qpack_decode/c454f5e13704fb044704468df4056d1b43ab5c97
new file mode 100644
index 0000000..ef39f1c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c454f5e13704fb044704468df4056d1b43ab5c97
@@ -0,0 +1 @@
+öÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c46b0c9b833245009a6c32d1dd65116e41788f84 b/fuzz/corpus/qpack_decode/c46b0c9b833245009a6c32d1dd65116e41788f84
new file mode 100644
index 0000000..dfdd783
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c46b0c9b833245009a6c32d1dd65116e41788f84
@@ -0,0 +1 @@
+ù!ÿ!ÿ!ÿ!"
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c4de518db06ae5bf5a0f3ac88e03b98ec1c8aa2b b/fuzz/corpus/qpack_decode/c4de518db06ae5bf5a0f3ac88e03b98ec1c8aa2b
new file mode 100644
index 0000000..4bc88cb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c4de518db06ae5bf5a0f3ac88e03b98ec1c8aa2b
@@ -0,0 +1 @@
+€ÝL€L€L€L€L€L€L€L€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c4e0f45c803aedecef9bc08d359f33708db5c78d b/fuzz/corpus/qpack_decode/c4e0f45c803aedecef9bc08d359f33708db5c78d
new file mode 100644
index 0000000..343a913
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c4e0f45c803aedecef9bc08d359f33708db5c78d
@@ -0,0 +1 @@
+ßßßßßÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c5294f230a512ce15a72ded933631ecbd1e68826 b/fuzz/corpus/qpack_decode/c5294f230a512ce15a72ded933631ecbd1e68826
new file mode 100644
index 0000000..cdfc9bd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c5294f230a512ce15a72ded933631ecbd1e68826
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/c53586871dbfd6260163c9a14d6a0b9268a4a2cd b/fuzz/corpus/qpack_decode/c53586871dbfd6260163c9a14d6a0b9268a4a2cd
new file mode 100644
index 0000000..3585d70
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c53586871dbfd6260163c9a14d6a0b9268a4a2cd
@@ -0,0 +1 @@
+ìâââââââââââââââââ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c54bd7d9629e400e1cadb3f0663b71943f60092c b/fuzz/corpus/qpack_decode/c54bd7d9629e400e1cadb3f0663b71943f60092c
new file mode 100644
index 0000000..9b8ed71
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c54bd7d9629e400e1cadb3f0663b71943f60092c
@@ -0,0 +1 @@
+Vòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c553f7797aea626ab3584450a0cbc958dd4c6fa5 b/fuzz/corpus/qpack_decode/c553f7797aea626ab3584450a0cbc958dd4c6fa5
new file mode 100644
index 0000000..caeaecd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c553f7797aea626ab3584450a0cbc958dd4c6fa5
@@ -0,0 +1 @@
+ óÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c586d007c1c47cb64184db43fe738162ff9bbef4 b/fuzz/corpus/qpack_decode/c586d007c1c47cb64184db43fe738162ff9bbef4
new file mode 100644
index 0000000..b2ba94c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c586d007c1c47cb64184db43fe738162ff9bbef4
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/c59dff1c1d59a12ca0271b57e2b4122613f7d3f4 b/fuzz/corpus/qpack_decode/c59dff1c1d59a12ca0271b57e2b4122613f7d3f4
new file mode 100644
index 0000000..be2be2b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c59dff1c1d59a12ca0271b57e2b4122613f7d3f4
@@ -0,0 +1 @@
+ÉÉÉ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c5a14fa4cabbc1e07eb6f26bf8268f803d373a4e b/fuzz/corpus/qpack_decode/c5a14fa4cabbc1e07eb6f26bf8268f803d373a4e
new file mode 100644
index 0000000..082e57f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c5a14fa4cabbc1e07eb6f26bf8268f803d373a4e
@@ -0,0 +1 @@
+-~Þ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c6142adfd9ca9a6c8b66d1fcbfd0428aa444bcec b/fuzz/corpus/qpack_decode/c6142adfd9ca9a6c8b66d1fcbfd0428aa444bcec
new file mode 100644
index 0000000..d9120f7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c6142adfd9ca9a6c8b66d1fcbfd0428aa444bcec
@@ -0,0 +1 @@
++ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"ÿ"
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c67afd74991dd91dc4f53c366c692abe7b543792 b/fuzz/corpus/qpack_decode/c67afd74991dd91dc4f53c366c692abe7b543792
new file mode 100644
index 0000000..db93c53
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c67afd74991dd91dc4f53c366c692abe7b543792
@@ -0,0 +1 @@
+'ÿ"
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c710919e727b224fa4c8923a0e43274a27bcdd65 b/fuzz/corpus/qpack_decode/c710919e727b224fa4c8923a0e43274a27bcdd65
deleted file mode 100644
index 10a4cbc..0000000
--- a/fuzz/corpus/qpack_decode/c710919e727b224fa4c8923a0e43274a27bcdd65
+++ /dev/null
@@ -1 +0,0 @@
-ÿÿÔ[
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c78063e545d1d846cafecd9113955d0b7afe403d b/fuzz/corpus/qpack_decode/c78063e545d1d846cafecd9113955d0b7afe403d
new file mode 100644
index 0000000..79df048
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c78063e545d1d846cafecd9113955d0b7afe403d
@@ -0,0 +1 @@
+ì*ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c78ea3f39f598374f3b39f5174adc8b2c9d7c3db b/fuzz/corpus/qpack_decode/c78ea3f39f598374f3b39f5174adc8b2c9d7c3db
new file mode 100644
index 0000000..7b0e65c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c78ea3f39f598374f3b39f5174adc8b2c9d7c3db
@@ -0,0 +1 @@
+1ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c7dc47339720e63878abd134dcb0e631b9dbd14c b/fuzz/corpus/qpack_decode/c7dc47339720e63878abd134dcb0e631b9dbd14c
new file mode 100644
index 0000000..1ad5148
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c7dc47339720e63878abd134dcb0e631b9dbd14c
@@ -0,0 +1 @@
+/ÝN€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c80e730668ca5663cfeae7fd27ee2ac90f63bb1a b/fuzz/corpus/qpack_decode/c80e730668ca5663cfeae7fd27ee2ac90f63bb1a
new file mode 100644
index 0000000..c5a8551
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c80e730668ca5663cfeae7fd27ee2ac90f63bb1a
@@ -0,0 +1 @@
+ Ý-€-€-€-€-€-€-€-€-€,€-€-€-€-€-€-€-€-€-€-€-€-€-€-€-€-€-€-€-€-€-€-€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c8a7fee8da1c6aa8436309b49b6e2b526a2d2ed7 b/fuzz/corpus/qpack_decode/c8a7fee8da1c6aa8436309b49b6e2b526a2d2ed7
new file mode 100644
index 0000000..ea95a98
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c8a7fee8da1c6aa8436309b49b6e2b526a2d2ed7
@@ -0,0 +1 @@
+ùÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c8d0c82d4b85485e386bce4b70e0546c669e67ba b/fuzz/corpus/qpack_decode/c8d0c82d4b85485e386bce4b70e0546c669e67ba
new file mode 100644
index 0000000..5e34e6b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c8d0c82d4b85485e386bce4b70e0546c669e67ba
@@ -0,0 +1 @@
+ߟÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c8d3af2b6b1863d68f1d089e1b93799de11d9aec b/fuzz/corpus/qpack_decode/c8d3af2b6b1863d68f1d089e1b93799de11d9aec
new file mode 100644
index 0000000..f2865cc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c8d3af2b6b1863d68f1d089e1b93799de11d9aec
@@ -0,0 +1 @@
+íííííííííííííííííííííííííííííííííí
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/c8d6874a5f694dd5ab1cc19459aeb608ff821628 b/fuzz/corpus/qpack_decode/c8d6874a5f694dd5ab1cc19459aeb608ff821628
new file mode 100644
index 0000000..bcd73ed
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c8d6874a5f694dd5ab1cc19459aeb608ff821628
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/c946cc539ba09c19e42b23f74dc447b025bdb08d b/fuzz/corpus/qpack_decode/c946cc539ba09c19e42b23f74dc447b025bdb08d
new file mode 100644
index 0000000..a338a24
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c946cc539ba09c19e42b23f74dc447b025bdb08d
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/c9922f2e9e07bec675d21df2d1da84a9a5a1fce5 b/fuzz/corpus/qpack_decode/c9922f2e9e07bec675d21df2d1da84a9a5a1fce5
new file mode 100644
index 0000000..684c692
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/c9922f2e9e07bec675d21df2d1da84a9a5a1fce5
@@ -0,0 +1 @@
+ááááááááá
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/caaae86c32b1f1443fde02cc58a0e41ef06d269b b/fuzz/corpus/qpack_decode/caaae86c32b1f1443fde02cc58a0e41ef06d269b
new file mode 100644
index 0000000..a59fd1a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/caaae86c32b1f1443fde02cc58a0e41ef06d269b
@@ -0,0 +1 @@
+1òòòòòòòòòòòòòòòòò
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/caaf12c2caa6b27c1101745d8b7be51c8069053e b/fuzz/corpus/qpack_decode/caaf12c2caa6b27c1101745d8b7be51c8069053e
new file mode 100644
index 0000000..75d4a99
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/caaf12c2caa6b27c1101745d8b7be51c8069053e
@@ -0,0 +1 @@
+Ù-Ê
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/caeeb5058654a4fe476de23976f34af6073eeb80 b/fuzz/corpus/qpack_decode/caeeb5058654a4fe476de23976f34af6073eeb80
new file mode 100644
index 0000000..908c963
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/caeeb5058654a4fe476de23976f34af6073eeb80
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/caefeef45459cc4f2bad0699eb53be2613edf41d b/fuzz/corpus/qpack_decode/caefeef45459cc4f2bad0699eb53be2613edf41d
new file mode 100644
index 0000000..7f47bde
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/caefeef45459cc4f2bad0699eb53be2613edf41d
@@ -0,0 +1 @@
+yí
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cb47bf784ed81081edf093a7e6ddd84d9f36ddd1 b/fuzz/corpus/qpack_decode/cb47bf784ed81081edf093a7e6ddd84d9f36ddd1
new file mode 100644
index 0000000..1c45409
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cb47bf784ed81081edf093a7e6ddd84d9f36ddd1
@@ -0,0 +1 @@
+0ÎÎÎÎÎÎÎÎÊÎÎÎÎÎÎÎÎÎÎÊÎÊÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÊÎÎÎÎÎÊÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cbb5158bc34489fd08d36e837385bae05be2f640 b/fuzz/corpus/qpack_decode/cbb5158bc34489fd08d36e837385bae05be2f640
new file mode 100644
index 0000000..3d6943e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cbb5158bc34489fd08d36e837385bae05be2f640
@@ -0,0 +1 @@
+???1'/1?1'?1??1?1'/1?1'?1??1?11~?!:?1?1~?!:?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cbbfde4183e1bcca181f0973f8defa8e0947f6fa b/fuzz/corpus/qpack_decode/cbbfde4183e1bcca181f0973f8defa8e0947f6fa
new file mode 100644
index 0000000..202bc64
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cbbfde4183e1bcca181f0973f8defa8e0947f6fa
@@ -0,0 +1 @@
+ù!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cc05c39c36bfba486dbaff854cf63b04f10fd5fe b/fuzz/corpus/qpack_decode/cc05c39c36bfba486dbaff854cf63b04f10fd5fe
new file mode 100644
index 0000000..1ae6b4c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cc05c39c36bfba486dbaff854cf63b04f10fd5fe
@@ -0,0 +1 @@
+Ðÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cc9bbac1d63fe528712481c84712ff067dff7bc6 b/fuzz/corpus/qpack_decode/cc9bbac1d63fe528712481c84712ff067dff7bc6
new file mode 100644
index 0000000..812f811
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cc9bbac1d63fe528712481c84712ff067dff7bc6
@@ -0,0 +1 @@
+ÊïqÛ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ccc3751600a4dd9321e70642948b81f9264fe266 b/fuzz/corpus/qpack_decode/ccc3751600a4dd9321e70642948b81f9264fe266
deleted file mode 100644
index 20db151..0000000
--- a/fuzz/corpus/qpack_decode/ccc3751600a4dd9321e70642948b81f9264fe266
+++ /dev/null
@@ -1 +0,0 @@
-ÿ!ÿ!ÿ+
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cd1159b21c11d40f65d32d428a4a416a4c527034 b/fuzz/corpus/qpack_decode/cd1159b21c11d40f65d32d428a4a416a4c527034
new file mode 100644
index 0000000..ff6e959
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cd1159b21c11d40f65d32d428a4a416a4c527034
@@ -0,0 +1 @@
+~ÎÎÎÎÎÎÎÎ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cd69ab07e3bfb84c652106d3a43cd239865438b6 b/fuzz/corpus/qpack_decode/cd69ab07e3bfb84c652106d3a43cd239865438b6
new file mode 100644
index 0000000..776eb53
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cd69ab07e3bfb84c652106d3a43cd239865438b6
@@ -0,0 +1 @@
+çççççççççç
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cdb2593dfc97afaa113f8154328bf3fc7d6023e1 b/fuzz/corpus/qpack_decode/cdb2593dfc97afaa113f8154328bf3fc7d6023e1
new file mode 100644
index 0000000..63faf08
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cdb2593dfc97afaa113f8154328bf3fc7d6023e1
@@ -0,0 +1 @@
+€ß-€-€-€-€-€-€-€-€-€-€-€-€-€-€-€-€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cde3efd84ea714407f3850f3f3fbb5cac1d145f4 b/fuzz/corpus/qpack_decode/cde3efd84ea714407f3850f3f3fbb5cac1d145f4
new file mode 100644
index 0000000..0223876
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cde3efd84ea714407f3850f3f3fbb5cac1d145f4
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/cdf619936cc0b20c7d83716d3e7bd5903f43948b b/fuzz/corpus/qpack_decode/cdf619936cc0b20c7d83716d3e7bd5903f43948b
new file mode 100644
index 0000000..0a435ba
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cdf619936cc0b20c7d83716d3e7bd5903f43948b
@@ -0,0 +1 @@
+öÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄò
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ce2c451f1a3502224f8e454adcdba97c686342d0 b/fuzz/corpus/qpack_decode/ce2c451f1a3502224f8e454adcdba97c686342d0
new file mode 100644
index 0000000..4f9bc98
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ce2c451f1a3502224f8e454adcdba97c686342d0
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ce7f73b6a690b45dfc0bcde5fd3a49a51c82a8dd b/fuzz/corpus/qpack_decode/ce7f73b6a690b45dfc0bcde5fd3a49a51c82a8dd
new file mode 100644
index 0000000..3e6b497
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ce7f73b6a690b45dfc0bcde5fd3a49a51c82a8dd
@@ -0,0 +1 @@
+ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ce84bb8af3e64c1a4b88df6c7325bcc6f2340d78 b/fuzz/corpus/qpack_decode/ce84bb8af3e64c1a4b88df6c7325bcc6f2340d78
new file mode 100644
index 0000000..a762f47
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ce84bb8af3e64c1a4b88df6c7325bcc6f2340d78
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ce96dc63b95e4c90bac05a73049f882a3abe094c b/fuzz/corpus/qpack_decode/ce96dc63b95e4c90bac05a73049f882a3abe094c
new file mode 100644
index 0000000..0491813
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ce96dc63b95e4c90bac05a73049f882a3abe094c
@@ -0,0 +1 @@
+9)ì
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cef28e3f8aafca1f3d532519e3280921404e39eb b/fuzz/corpus/qpack_decode/cef28e3f8aafca1f3d532519e3280921404e39eb
new file mode 100644
index 0000000..7f45543
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cef28e3f8aafca1f3d532519e3280921404e39eb
@@ -0,0 +1,2 @@

+(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cf54fb69bdcf10f136e3579d75da03048a094dc7 b/fuzz/corpus/qpack_decode/cf54fb69bdcf10f136e3579d75da03048a094dc7
new file mode 100644
index 0000000..41f707b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cf54fb69bdcf10f136e3579d75da03048a094dc7
@@ -0,0 +1 @@
+1òù
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cf579896a526405c3a1926cc8cbd602dde3ed6e3 b/fuzz/corpus/qpack_decode/cf579896a526405c3a1926cc8cbd602dde3ed6e3
new file mode 100644
index 0000000..acbcf47
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cf579896a526405c3a1926cc8cbd602dde3ed6e3
@@ -0,0 +1 @@
+Ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cf6e70761de8ab8fb5f4435a53f9feda29eff791 b/fuzz/corpus/qpack_decode/cf6e70761de8ab8fb5f4435a53f9feda29eff791
new file mode 100644
index 0000000..e1eed47
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cf6e70761de8ab8fb5f4435a53f9feda29eff791
@@ -0,0 +1 @@
+ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cf86292a74a47ff8c736ec6bdcd27f4a4224702a b/fuzz/corpus/qpack_decode/cf86292a74a47ff8c736ec6bdcd27f4a4224702a
new file mode 100644
index 0000000..72e53ca
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cf86292a74a47ff8c736ec6bdcd27f4a4224702a
@@ -0,0 +1 @@
+þÓØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cf8f891bbf62c528c48856605cb3ecfcafc8259c b/fuzz/corpus/qpack_decode/cf8f891bbf62c528c48856605cb3ecfcafc8259c
new file mode 100644
index 0000000..da01bf2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cf8f891bbf62c528c48856605cb3ecfcafc8259c
@@ -0,0 +1 @@
+ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/cfd561a9ec68c97fda1d25559ec189a593efeacc b/fuzz/corpus/qpack_decode/cfd561a9ec68c97fda1d25559ec189a593efeacc
new file mode 100644
index 0000000..965f8d9
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/cfd561a9ec68c97fda1d25559ec189a593efeacc
@@ -0,0 +1 @@
+1ëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëëë
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d01d6c22ee49af2243739f5cfbf06dbbcce7add7 b/fuzz/corpus/qpack_decode/d01d6c22ee49af2243739f5cfbf06dbbcce7add7
new file mode 100644
index 0000000..be2c99d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d01d6c22ee49af2243739f5cfbf06dbbcce7add7
@@ -0,0 +1 @@
+ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d0d35f604209b5985be37416771d106d5ed9c470 b/fuzz/corpus/qpack_decode/d0d35f604209b5985be37416771d106d5ed9c470
new file mode 100644
index 0000000..9349e87
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d0d35f604209b5985be37416771d106d5ed9c470
@@ -0,0 +1 @@
+íÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d0dd72edf1dd32b2f51502cee6109b777fdee042 b/fuzz/corpus/qpack_decode/d0dd72edf1dd32b2f51502cee6109b777fdee042
new file mode 100644
index 0000000..4560668
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d0dd72edf1dd32b2f51502cee6109b777fdee042
@@ -0,0 +1 @@
+(!-€(€!-€(€!(€!v€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d12286de5e8fab03d7e439c558e0c78b1888f435 b/fuzz/corpus/qpack_decode/d12286de5e8fab03d7e439c558e0c78b1888f435
new file mode 100644
index 0000000..5d7758b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d12286de5e8fab03d7e439c558e0c78b1888f435
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/d13113a58a30b517100e3fbf5d8192a59a193249 b/fuzz/corpus/qpack_decode/d13113a58a30b517100e3fbf5d8192a59a193249
new file mode 100644
index 0000000..53fc139
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d13113a58a30b517100e3fbf5d8192a59a193249
@@ -0,0 +1 @@
+ø€-€-€-€-€-€-€-€-€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d1384a2968e4b51a67fb020a95d1c1602fe97238 b/fuzz/corpus/qpack_decode/d1384a2968e4b51a67fb020a95d1c1602fe97238
new file mode 100644
index 0000000..b5fccfe
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d1384a2968e4b51a67fb020a95d1c1602fe97238
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/d18bfb2c60ed5c59a943ff9770174aaa8bee33c0 b/fuzz/corpus/qpack_decode/d18bfb2c60ed5c59a943ff9770174aaa8bee33c0
new file mode 100644
index 0000000..428f6dc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d18bfb2c60ed5c59a943ff9770174aaa8bee33c0
@@ -0,0 +1 @@
+öÐÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d196d8dc0af813b1e17db761227aa5a2ce9529ee b/fuzz/corpus/qpack_decode/d196d8dc0af813b1e17db761227aa5a2ce9529ee
new file mode 100644
index 0000000..696b8a4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d196d8dc0af813b1e17db761227aa5a2ce9529ee
@@ -0,0 +1 @@
+ìúúúúúúúúúúúúúúúúú
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d27293e8a4c0ec3ae24b3c551745b7feaad19839 b/fuzz/corpus/qpack_decode/d27293e8a4c0ec3ae24b3c551745b7feaad19839
new file mode 100644
index 0000000..5aa0495
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d27293e8a4c0ec3ae24b3c551745b7feaad19839
@@ -0,0 +1 @@
+0ÐÐÐÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d2a0c819964909a291774359245ad9810a7b9058 b/fuzz/corpus/qpack_decode/d2a0c819964909a291774359245ad9810a7b9058
new file mode 100644
index 0000000..4e27efb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d2a0c819964909a291774359245ad9810a7b9058
@@ -0,0 +1 @@
+Iÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d2b28d9c5306cabdf380d3bc1ab571266e7f5cdc b/fuzz/corpus/qpack_decode/d2b28d9c5306cabdf380d3bc1ab571266e7f5cdc
new file mode 100644
index 0000000..02f06ac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d2b28d9c5306cabdf380d3bc1ab571266e7f5cdc
@@ -0,0 +1 @@
+Ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d2b47b83f79b61e3e195b4329b6a558fa5edf4e1 b/fuzz/corpus/qpack_decode/d2b47b83f79b61e3e195b4329b6a558fa5edf4e1
new file mode 100644
index 0000000..67ec5ee
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d2b47b83f79b61e3e195b4329b6a558fa5edf4e1
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/d2fcc5dac881d2465bb98322f92cea68107a9b3a b/fuzz/corpus/qpack_decode/d2fcc5dac881d2465bb98322f92cea68107a9b3a
new file mode 100644
index 0000000..8724547
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d2fcc5dac881d2465bb98322f92cea68107a9b3a
@@ -0,0 +1 @@
+íÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d302a7b20d8644e56e371c346550c49186827435 b/fuzz/corpus/qpack_decode/d302a7b20d8644e56e371c346550c49186827435
new file mode 100644
index 0000000..4b0ba2c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d302a7b20d8644e56e371c346550c49186827435
@@ -0,0 +1 @@
+9ëë 
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d364ad22fce3b5c182dd191349107be9348e3af7 b/fuzz/corpus/qpack_decode/d364ad22fce3b5c182dd191349107be9348e3af7
new file mode 100644
index 0000000..f553d2e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d364ad22fce3b5c182dd191349107be9348e3af7
@@ -0,0 +1 @@
+ÊÊåååååååå
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d39ba7fa3c665343a3bb14fe8f5c40b51c734781 b/fuzz/corpus/qpack_decode/d39ba7fa3c665343a3bb14fe8f5c40b51c734781
new file mode 100644
index 0000000..a0e485a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d39ba7fa3c665343a3bb14fe8f5c40b51c734781
@@ -0,0 +1 @@
+ðÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d4053deff19d847853d20036182036ba8478334b b/fuzz/corpus/qpack_decode/d4053deff19d847853d20036182036ba8478334b
new file mode 100644
index 0000000..4c7a8be
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d4053deff19d847853d20036182036ba8478334b
@@ -0,0 +1 @@
+)öÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d469311897f8e44826c7344e8c994b3257a5c25c b/fuzz/corpus/qpack_decode/d469311897f8e44826c7344e8c994b3257a5c25c
new file mode 100644
index 0000000..601b426
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d469311897f8e44826c7344e8c994b3257a5c25c
@@ -0,0 +1 @@
+*'ï'
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d57488563453ccd496b83cc3fa3ded5bf2c835f4 b/fuzz/corpus/qpack_decode/d57488563453ccd496b83cc3fa3ded5bf2c835f4
new file mode 100644
index 0000000..1cee8ff
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d57488563453ccd496b83cc3fa3ded5bf2c835f4
@@ -0,0 +1 @@
+€(/€/€/€/€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d587529e7b5aadd33bee7e5ebaf0d1082e23cd87 b/fuzz/corpus/qpack_decode/d587529e7b5aadd33bee7e5ebaf0d1082e23cd87
new file mode 100644
index 0000000..97f2150
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d587529e7b5aadd33bee7e5ebaf0d1082e23cd87
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/d5a3676895cfdd57a31bd45b770103600ca2bf46 b/fuzz/corpus/qpack_decode/d5a3676895cfdd57a31bd45b770103600ca2bf46
new file mode 100644
index 0000000..8d1dcfb
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d5a3676895cfdd57a31bd45b770103600ca2bf46
@@ -0,0 +1 @@
+ÙÙ÷²
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d6103cd125624179d9b39bedbcc058c562175771 b/fuzz/corpus/qpack_decode/d6103cd125624179d9b39bedbcc058c562175771
new file mode 100644
index 0000000..7e58d29
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d6103cd125624179d9b39bedbcc058c562175771
@@ -0,0 +1 @@
+Môßßßßßßßßßßßßßßßß
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d62276cd5d4efda96eb2e2fdb72072596945a394 b/fuzz/corpus/qpack_decode/d62276cd5d4efda96eb2e2fdb72072596945a394
new file mode 100644
index 0000000..9c83244
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d62276cd5d4efda96eb2e2fdb72072596945a394
@@ -0,0 +1 @@
+ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d6918e50c04e03c308f063526cf6758028cfe990 b/fuzz/corpus/qpack_decode/d6918e50c04e03c308f063526cf6758028cfe990
new file mode 100644
index 0000000..0cb36a6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d6918e50c04e03c308f063526cf6758028cfe990
@@ -0,0 +1 @@
+ÇÒÇÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d6c943897fe8f8e56cc2950f46d905421b21142c b/fuzz/corpus/qpack_decode/d6c943897fe8f8e56cc2950f46d905421b21142c
new file mode 100644
index 0000000..fb8250f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d6c943897fe8f8e56cc2950f46d905421b21142c
@@ -0,0 +1 @@
+ÌÌÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d6feb4a3e4bd39c9ede1602075928bc0bda11e54 b/fuzz/corpus/qpack_decode/d6feb4a3e4bd39c9ede1602075928bc0bda11e54
new file mode 100644
index 0000000..1d0bb8e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d6feb4a3e4bd39c9ede1602075928bc0bda11e54
@@ -0,0 +1 @@
+ëDçççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççç
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d7075860da0586f6cc8f54e4d57ab851ddb80691 b/fuzz/corpus/qpack_decode/d7075860da0586f6cc8f54e4d57ab851ddb80691
new file mode 100644
index 0000000..56334b4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d7075860da0586f6cc8f54e4d57ab851ddb80691
@@ -0,0 +1 @@
+îÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d713cf683be8f7689c540d73c6c253b196d0a3e0 b/fuzz/corpus/qpack_decode/d713cf683be8f7689c540d73c6c253b196d0a3e0
new file mode 100644
index 0000000..9f2b61f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d713cf683be8f7689c540d73c6c253b196d0a3e0
@@ -0,0 +1 @@
+ù!ÿ!ÿ!ÿ!ÿ!
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d71ffaa90725880802c30162f9c2a4f89a929f99 b/fuzz/corpus/qpack_decode/d71ffaa90725880802c30162f9c2a4f89a929f99
new file mode 100644
index 0000000..687b08f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d71ffaa90725880802c30162f9c2a4f89a929f99
@@ -0,0 +1 @@
+ññññññññ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d7286678149eb15ae51bc5311ecce5671479280f b/fuzz/corpus/qpack_decode/d7286678149eb15ae51bc5311ecce5671479280f
new file mode 100644
index 0000000..5978e09
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d7286678149eb15ae51bc5311ecce5671479280f
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d765b66b30db695b6362c135a1aa7f0221e39385 b/fuzz/corpus/qpack_decode/d765b66b30db695b6362c135a1aa7f0221e39385
new file mode 100644
index 0000000..33bf87d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d765b66b30db695b6362c135a1aa7f0221e39385
@@ -0,0 +1 @@
+STTˆÉÉ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d776322d4b117fc9775dcf269ce941091b8ff378 b/fuzz/corpus/qpack_decode/d776322d4b117fc9775dcf269ce941091b8ff378
new file mode 100644
index 0000000..74bd7c3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d776322d4b117fc9775dcf269ce941091b8ff378
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d7a9150319a1b1d88a25d0846661c73e6303ad82 b/fuzz/corpus/qpack_decode/d7a9150319a1b1d88a25d0846661c73e6303ad82
new file mode 100644
index 0000000..0dfb7e8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d7a9150319a1b1d88a25d0846661c73e6303ad82
@@ -0,0 +1 @@
+þ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d7bfe4c7b45587e7506bc9d12085dc9f5a56d734 b/fuzz/corpus/qpack_decode/d7bfe4c7b45587e7506bc9d12085dc9f5a56d734
new file mode 100644
index 0000000..120c193
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d7bfe4c7b45587e7506bc9d12085dc9f5a56d734
@@ -0,0 +1 @@
+ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d7c720ea85b9bbfb6a5b324b64d5764303b668d2 b/fuzz/corpus/qpack_decode/d7c720ea85b9bbfb6a5b324b64d5764303b668d2
new file mode 100644
index 0000000..e54e57b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d7c720ea85b9bbfb6a5b324b64d5764303b668d2
@@ -0,0 +1 @@
+ÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d8063e599e7b116ea8efe22a3792595c69378668 b/fuzz/corpus/qpack_decode/d8063e599e7b116ea8efe22a3792595c69378668
new file mode 100644
index 0000000..016c6a7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d8063e599e7b116ea8efe22a3792595c69378668
@@ -0,0 +1 @@
+ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d80d108cc78059dc75f83c7d6d0d834958f699b9 b/fuzz/corpus/qpack_decode/d80d108cc78059dc75f83c7d6d0d834958f699b9
new file mode 100644
index 0000000..eafac1b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d80d108cc78059dc75f83c7d6d0d834958f699b9
@@ -0,0 +1 @@
+îïÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d81a6d8023a09c85e7c55c0668b6651021850f40 b/fuzz/corpus/qpack_decode/d81a6d8023a09c85e7c55c0668b6651021850f40
new file mode 100644
index 0000000..15503a0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d81a6d8023a09c85e7c55c0668b6651021850f40
@@ -0,0 +1,7 @@
+(
+(‚*€*(‚*€*(‚*€*(‚*€*(‚*€*
+(‚*€*(‚*€*(‚*€*
+(‚*€*
+(‚*€*(‚*€*
+(‚*€*(‚*€*(‚*€*
+(‚*€*(‚*€*(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d8471edddf6fafd0cf801eccc16803a5684832a5 b/fuzz/corpus/qpack_decode/d8471edddf6fafd0cf801eccc16803a5684832a5
new file mode 100644
index 0000000..43e5d2a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d8471edddf6fafd0cf801eccc16803a5684832a5
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/d85cb0479df300f0f293c75d797b1e85c83be354 b/fuzz/corpus/qpack_decode/d85cb0479df300f0f293c75d797b1e85c83be354
new file mode 100644
index 0000000..5476c02
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d85cb0479df300f0f293c75d797b1e85c83be354
@@ -0,0 +1 @@
++"ÄÄÄ"
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d8819e4f7afa56899f6e444c90bce8d073778351 b/fuzz/corpus/qpack_decode/d8819e4f7afa56899f6e444c90bce8d073778351
new file mode 100644
index 0000000..f6fa6a6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d8819e4f7afa56899f6e444c90bce8d073778351
@@ -0,0 +1 @@
+ÒÒðððððððð
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d8d3bcc6656bb11fff342cb089e138ab1a6b80fc b/fuzz/corpus/qpack_decode/d8d3bcc6656bb11fff342cb089e138ab1a6b80fc
new file mode 100644
index 0000000..999a5a5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d8d3bcc6656bb11fff342cb089e138ab1a6b80fc
@@ -0,0 +1 @@
+(€B‚ÝB€B€B€B€B€B€B€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B‚ÝB€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B‚ÝB€B€B€B€B€B€B€B€B€B€B‚ÝB€B€B‚ÝB€B€B€B€B€B€B€B€B€B€B€B‚ÝB€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B€B‚ÝB€B€B€B€B€B€B€B‚ÝB€B€B€B€B€B€B€B€B€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B€B€B‚ÝB€B€B‚ÝB‚ÝB€B‚ÝB€B€B‚Ý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d8df3db9557580a8ec56b62811c3858fcd125688 b/fuzz/corpus/qpack_decode/d8df3db9557580a8ec56b62811c3858fcd125688
new file mode 100644
index 0000000..ae0c7de
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d8df3db9557580a8ec56b62811c3858fcd125688
@@ -0,0 +1 @@
+ÙÇèèè0
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d921a2733ab14769d6a730440d766b446338a949 b/fuzz/corpus/qpack_decode/d921a2733ab14769d6a730440d766b446338a949
new file mode 100644
index 0000000..c74e03e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d921a2733ab14769d6a730440d766b446338a949
@@ -0,0 +1 @@
+ú*)ρ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/d9ae7fbd04d0efd0fdd081821781057777cc28c8 b/fuzz/corpus/qpack_decode/d9ae7fbd04d0efd0fdd081821781057777cc28c8
new file mode 100644
index 0000000..62b3112
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/d9ae7fbd04d0efd0fdd081821781057777cc28c8
@@ -0,0 +1 @@
+ÿB
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/da0035534f1e9509080bfcd7ed59810b14b27a05 b/fuzz/corpus/qpack_decode/da0035534f1e9509080bfcd7ed59810b14b27a05
new file mode 100644
index 0000000..8a212ec
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/da0035534f1e9509080bfcd7ed59810b14b27a05
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/da3e42151f1346b2afec55d9cb7e966c841fee7f b/fuzz/corpus/qpack_decode/da3e42151f1346b2afec55d9cb7e966c841fee7f
new file mode 100644
index 0000000..fa8fa30
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/da3e42151f1346b2afec55d9cb7e966c841fee7f
@@ -0,0 +1 @@
+íííííííí
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/da48b199d83b70da7801071b65bb9be533600072 b/fuzz/corpus/qpack_decode/da48b199d83b70da7801071b65bb9be533600072
new file mode 100644
index 0000000..88db7f4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/da48b199d83b70da7801071b65bb9be533600072
@@ -0,0 +1 @@
+ùÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/da4e9142c0187c8ff7c6be95089d63857a10fecf b/fuzz/corpus/qpack_decode/da4e9142c0187c8ff7c6be95089d63857a10fecf
new file mode 100644
index 0000000..d03e083
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/da4e9142c0187c8ff7c6be95089d63857a10fecf
@@ -0,0 +1 @@
+0*ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/da4e9cd747137d4b827d27a12dad1f32992c0ac2 b/fuzz/corpus/qpack_decode/da4e9cd747137d4b827d27a12dad1f32992c0ac2
new file mode 100644
index 0000000..c06e43e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/da4e9cd747137d4b827d27a12dad1f32992c0ac2
@@ -0,0 +1 @@
+ÌÀßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dacafe3e43b51aff60900a9e780ee5ad8f6256ea b/fuzz/corpus/qpack_decode/dacafe3e43b51aff60900a9e780ee5ad8f6256ea
new file mode 100644
index 0000000..b1f4d9f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dacafe3e43b51aff60900a9e780ee5ad8f6256ea
@@ -0,0 +1 @@
+ù`ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/daddbe292b0d4eb6fa9285ce7c1e5bf4300a8dea b/fuzz/corpus/qpack_decode/daddbe292b0d4eb6fa9285ce7c1e5bf4300a8dea
new file mode 100644
index 0000000..e5feb4b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/daddbe292b0d4eb6fa9285ce7c1e5bf4300a8dea
@@ -0,0 +1 @@
+"îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/db0fcad9365824f87cd29ed3563cb0d85fc4632a b/fuzz/corpus/qpack_decode/db0fcad9365824f87cd29ed3563cb0d85fc4632a
new file mode 100644
index 0000000..50ca7ad
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/db0fcad9365824f87cd29ed3563cb0d85fc4632a
@@ -0,0 +1 @@
+ÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/db15c6757498972a5095be15a1a67024530fec59 b/fuzz/corpus/qpack_decode/db15c6757498972a5095be15a1a67024530fec59
new file mode 100644
index 0000000..09e2da7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/db15c6757498972a5095be15a1a67024530fec59
@@ -0,0 +1 @@
+É7ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/db7bd7f18a0237d2534860cbc4487e3b53ee8f84 b/fuzz/corpus/qpack_decode/db7bd7f18a0237d2534860cbc4487e3b53ee8f84
new file mode 100644
index 0000000..5e6de63
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/db7bd7f18a0237d2534860cbc4487e3b53ee8f84
@@ -0,0 +1 @@
+ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dc229b3844a95ece9712c14d328e31c3ace9a9fb b/fuzz/corpus/qpack_decode/dc229b3844a95ece9712c14d328e31c3ace9a9fb
new file mode 100644
index 0000000..01cb138
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dc229b3844a95ece9712c14d328e31c3ace9a9fb
@@ -0,0 +1 @@
+ÏÏââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dc2811408411979983af577c2eaaae3560b256fd b/fuzz/corpus/qpack_decode/dc2811408411979983af577c2eaaae3560b256fd
new file mode 100644
index 0000000..e0f19f1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dc2811408411979983af577c2eaaae3560b256fd
@@ -0,0 +1 @@
+0€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€.€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dce4066a18abe2b090162219117e98ac35a1c119 b/fuzz/corpus/qpack_decode/dce4066a18abe2b090162219117e98ac35a1c119
new file mode 100644
index 0000000..15c0c8c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dce4066a18abe2b090162219117e98ac35a1c119
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/dd1873a78d2b85cc08a907577c454fef7811c4d4 b/fuzz/corpus/qpack_decode/dd1873a78d2b85cc08a907577c454fef7811c4d4
new file mode 100644
index 0000000..d7021f3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dd1873a78d2b85cc08a907577c454fef7811c4d4
@@ -0,0 +1 @@
+ø€?€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dd376fcb9fd9dc3efaef8ed4654f4bc43271bbaf b/fuzz/corpus/qpack_decode/dd376fcb9fd9dc3efaef8ed4654f4bc43271bbaf
deleted file mode 100644
index a0ccfcb..0000000
--- a/fuzz/corpus/qpack_decode/dd376fcb9fd9dc3efaef8ed4654f4bc43271bbaf
+++ /dev/null
@@ -1 +0,0 @@
-=ÿÿ+ÿ]
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dd6882a1ebf2328a2da9098f89a8718cee2c2b24 b/fuzz/corpus/qpack_decode/dd6882a1ebf2328a2da9098f89a8718cee2c2b24
new file mode 100644
index 0000000..0c1e19f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dd6882a1ebf2328a2da9098f89a8718cee2c2b24
@@ -0,0 +1 @@
+???1'/1?1'?1??1?1'/1?1'?1??1?1?1~?!:?1?1~?!:?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dd6a75fe680f08f1df9b43e4a6a47783e67d25ae b/fuzz/corpus/qpack_decode/dd6a75fe680f08f1df9b43e4a6a47783e67d25ae
new file mode 100644
index 0000000..a922129
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dd6a75fe680f08f1df9b43e4a6a47783e67d25ae
@@ -0,0 +1 @@
+Òððððððððððððððððððððððððððððððððð
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ddaf10361c0a12473249a7ef245ebfe37aa0cc4b b/fuzz/corpus/qpack_decode/ddaf10361c0a12473249a7ef245ebfe37aa0cc4b
new file mode 100644
index 0000000..0100d45
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ddaf10361c0a12473249a7ef245ebfe37aa0cc4b
@@ -0,0 +1 @@
+/€N€N€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ddb939461f03bf81e4abf3409a5356b88379d8db b/fuzz/corpus/qpack_decode/ddb939461f03bf81e4abf3409a5356b88379d8db
new file mode 100644
index 0000000..02b600d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ddb939461f03bf81e4abf3409a5356b88379d8db
@@ -0,0 +1 @@
+??€€€€€€€€€€€€€€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ddcf5f074fe3f6728b318a37ebe3cf2678fe2afa b/fuzz/corpus/qpack_decode/ddcf5f074fe3f6728b318a37ebe3cf2678fe2afa
new file mode 100644
index 0000000..1c7188b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ddcf5f074fe3f6728b318a37ebe3cf2678fe2afa
@@ -0,0 +1 @@
+0óïïïïïïïïïïïïïïïï
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/de8ecaff958ed33e2e2ab75ca4c64f6644220121 b/fuzz/corpus/qpack_decode/de8ecaff958ed33e2e2ab75ca4c64f6644220121
new file mode 100644
index 0000000..a6dd034
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/de8ecaff958ed33e2e2ab75ca4c64f6644220121
@@ -0,0 +1 @@
+ì*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dece22886e212964aa8f93ae8eddfe018c268e0d b/fuzz/corpus/qpack_decode/dece22886e212964aa8f93ae8eddfe018c268e0d
new file mode 100644
index 0000000..d959a8d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dece22886e212964aa8f93ae8eddfe018c268e0d
@@ -0,0 +1,2 @@
+
+ø(€€€€€(€€€€€(€€€(€(€€(€€€€(€€(€€€€(€€(€€(€€€(€€€(€€€€(€€€€€(€(€€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dedaa44de6329b125dcc69c2ffe0c68c00bbe7f8 b/fuzz/corpus/qpack_decode/dedaa44de6329b125dcc69c2ffe0c68c00bbe7f8
new file mode 100644
index 0000000..0d22935
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dedaa44de6329b125dcc69c2ffe0c68c00bbe7f8
@@ -0,0 +1 @@
+`ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dedd7f2b0c92bdc0924dadbc64a0d466d134aa13 b/fuzz/corpus/qpack_decode/dedd7f2b0c92bdc0924dadbc64a0d466d134aa13
new file mode 100644
index 0000000..d7939f2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dedd7f2b0c92bdc0924dadbc64a0d466d134aa13
@@ -0,0 +1 @@
+	ææÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/df07cf03357c986dbf1cddaeba22e0ef15e40555 b/fuzz/corpus/qpack_decode/df07cf03357c986dbf1cddaeba22e0ef15e40555
new file mode 100644
index 0000000..e8440ac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/df07cf03357c986dbf1cddaeba22e0ef15e40555
@@ -0,0 +1 @@
+ùÞÞÞ=
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/df2f4f5d0fd48e5c71cb80bcc654d52592138d76 b/fuzz/corpus/qpack_decode/df2f4f5d0fd48e5c71cb80bcc654d52592138d76
new file mode 100644
index 0000000..c237ebf
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/df2f4f5d0fd48e5c71cb80bcc654d52592138d76
@@ -0,0 +1 @@
+ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/df4feb3185b9c1b20e38861cc080aac89dde3817 b/fuzz/corpus/qpack_decode/df4feb3185b9c1b20e38861cc080aac89dde3817
new file mode 100644
index 0000000..3a0df67
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/df4feb3185b9c1b20e38861cc080aac89dde3817
@@ -0,0 +1 @@
+Ðÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/dfcb3a27b837ff601c425c24cdf1d86165d31db6 b/fuzz/corpus/qpack_decode/dfcb3a27b837ff601c425c24cdf1d86165d31db6
new file mode 100644
index 0000000..ab771a5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dfcb3a27b837ff601c425c24cdf1d86165d31db6
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/dfec4ea988796dad31c2f4e7b1f858004dc77d03 b/fuzz/corpus/qpack_decode/dfec4ea988796dad31c2f4e7b1f858004dc77d03
new file mode 100644
index 0000000..7d5f40d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/dfec4ea988796dad31c2f4e7b1f858004dc77d03
@@ -0,0 +1 @@
+ÐÐÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e00e1867df35db0b38484b17b5dfb27b7c5cdc17 b/fuzz/corpus/qpack_decode/e00e1867df35db0b38484b17b5dfb27b7c5cdc17
new file mode 100644
index 0000000..1d8531c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e00e1867df35db0b38484b17b5dfb27b7c5cdc17
@@ -0,0 +1 @@
+ÇÇÿ;
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e04df6c223c8a6ec0c17963abfeff12908ed8c99 b/fuzz/corpus/qpack_decode/e04df6c223c8a6ec0c17963abfeff12908ed8c99
new file mode 100644
index 0000000..abe9762
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e04df6c223c8a6ec0c17963abfeff12908ed8c99
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/e09b7d981cd491b14037a59ca3c75074fe343ddf b/fuzz/corpus/qpack_decode/e09b7d981cd491b14037a59ca3c75074fe343ddf
new file mode 100644
index 0000000..6ff4f77
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e09b7d981cd491b14037a59ca3c75074fe343ddf
@@ -0,0 +1 @@
+ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ=
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e0c35b7bdf2047bdfa3c58da59c76e3809d1d00a b/fuzz/corpus/qpack_decode/e0c35b7bdf2047bdfa3c58da59c76e3809d1d00a
new file mode 100644
index 0000000..c8ad54f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e0c35b7bdf2047bdfa3c58da59c76e3809d1d00a
@@ -0,0 +1 @@
+	ô¶
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e12ebc79a006fdf069738fd2ec4abb014f105228 b/fuzz/corpus/qpack_decode/e12ebc79a006fdf069738fd2ec4abb014f105228
new file mode 100644
index 0000000..0301241
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e12ebc79a006fdf069738fd2ec4abb014f105228
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/e13637041bfeb1a3d1d9c097b8af188ae64538c5 b/fuzz/corpus/qpack_decode/e13637041bfeb1a3d1d9c097b8af188ae64538c5
new file mode 100644
index 0000000..6f1a7db
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e13637041bfeb1a3d1d9c097b8af188ae64538c5
@@ -0,0 +1 @@
+ßßÚÚÚ`
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e1560454e64bb8235094b61345d9c3578a28110b b/fuzz/corpus/qpack_decode/e1560454e64bb8235094b61345d9c3578a28110b
new file mode 100644
index 0000000..1be08ab
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e1560454e64bb8235094b61345d9c3578a28110b
@@ -0,0 +1 @@
+ïúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e17b3b7a74d5c2f3bae1b112b4989da47adcab0e b/fuzz/corpus/qpack_decode/e17b3b7a74d5c2f3bae1b112b4989da47adcab0e
new file mode 100644
index 0000000..f10e538
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e17b3b7a74d5c2f3bae1b112b4989da47adcab0e
@@ -0,0 +1 @@
+zÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e17bbd2f710b4612083a54d604a8c5f9069a1dca b/fuzz/corpus/qpack_decode/e17bbd2f710b4612083a54d604a8c5f9069a1dca
new file mode 100644
index 0000000..06e2a7d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e17bbd2f710b4612083a54d604a8c5f9069a1dca
@@ -0,0 +1 @@
+Éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e17eab18eb549ebb980d25cc2bf6390c6547bd69 b/fuzz/corpus/qpack_decode/e17eab18eb549ebb980d25cc2bf6390c6547bd69
new file mode 100644
index 0000000..9db4a7d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e17eab18eb549ebb980d25cc2bf6390c6547bd69
@@ -0,0 +1 @@
+ùÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e1bda9d45f7bf59e8d97584e17f0fb3a0c1883e7 b/fuzz/corpus/qpack_decode/e1bda9d45f7bf59e8d97584e17f0fb3a0c1883e7
new file mode 100644
index 0000000..c885638
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e1bda9d45f7bf59e8d97584e17f0fb3a0c1883e7
@@ -0,0 +1 @@
+Ðÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e1f7425b7a38c1d84ec5c5e916296e4aa6751be3 b/fuzz/corpus/qpack_decode/e1f7425b7a38c1d84ec5c5e916296e4aa6751be3
new file mode 100644
index 0000000..aef1117
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e1f7425b7a38c1d84ec5c5e916296e4aa6751be3
@@ -0,0 +1 @@
+ïûÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e2816ca2a77c26fdf142abafcedcf2190b235c07 b/fuzz/corpus/qpack_decode/e2816ca2a77c26fdf142abafcedcf2190b235c07
new file mode 100644
index 0000000..67dd46e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e2816ca2a77c26fdf142abafcedcf2190b235c07
@@ -0,0 +1 @@
+óØÕÕÕÕÕÕÕÕ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e2ac043ff89bedef8a3ec9cdd391f883580ab3f4 b/fuzz/corpus/qpack_decode/e2ac043ff89bedef8a3ec9cdd391f883580ab3f4
new file mode 100644
index 0000000..e88e786
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e2ac043ff89bedef8a3ec9cdd391f883580ab3f4
@@ -0,0 +1 @@
+Ùÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e2f3c2dd5b08f9e653014d6d9f7465be9df69b7b b/fuzz/corpus/qpack_decode/e2f3c2dd5b08f9e653014d6d9f7465be9df69b7b
new file mode 100644
index 0000000..4bc5c68
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e2f3c2dd5b08f9e653014d6d9f7465be9df69b7b
@@ -0,0 +1 @@
+ïæææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e2f67c31fabafb2a8635756c05c2b82ea813ee1d b/fuzz/corpus/qpack_decode/e2f67c31fabafb2a8635756c05c2b82ea813ee1d
new file mode 100644
index 0000000..8408a4e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e2f67c31fabafb2a8635756c05c2b82ea813ee1d
@@ -0,0 +1 @@
+jþþþþþþþþþ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e3177bf1af3e3aaf53b59d6bc24e6f57a7109548 b/fuzz/corpus/qpack_decode/e3177bf1af3e3aaf53b59d6bc24e6f57a7109548
new file mode 100644
index 0000000..faea8b8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e3177bf1af3e3aaf53b59d6bc24e6f57a7109548
@@ -0,0 +1 @@
+èÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e3891254ef840b8e89943bdb07d59e6c1e3601be b/fuzz/corpus/qpack_decode/e3891254ef840b8e89943bdb07d59e6c1e3601be
new file mode 100644
index 0000000..be1caf1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e3891254ef840b8e89943bdb07d59e6c1e3601be
@@ -0,0 +1 @@
+ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e46b2ddf3bd05980abd2bc396af8cd8ec39fc6a6 b/fuzz/corpus/qpack_decode/e46b2ddf3bd05980abd2bc396af8cd8ec39fc6a6
new file mode 100644
index 0000000..2d13957
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e46b2ddf3bd05980abd2bc396af8cd8ec39fc6a6
@@ -0,0 +1 @@
+ óÿ	ÿ	
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e488b3c16fb426ed4ed095639a6439a0335b6ab5 b/fuzz/corpus/qpack_decode/e488b3c16fb426ed4ed095639a6439a0335b6ab5
new file mode 100644
index 0000000..72434d1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e488b3c16fb426ed4ed095639a6439a0335b6ab5
@@ -0,0 +1 @@
+÷AÙÙÙB
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e48d8a7a5c9a1340eadf804357e0d2d197d7b1a1 b/fuzz/corpus/qpack_decode/e48d8a7a5c9a1340eadf804357e0d2d197d7b1a1
new file mode 100644
index 0000000..ff9d920
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e48d8a7a5c9a1340eadf804357e0d2d197d7b1a1
@@ -0,0 +1 @@
+óêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêê
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e4b2d5d9d070b882bd7d476fff819ce1c8eca52a b/fuzz/corpus/qpack_decode/e4b2d5d9d070b882bd7d476fff819ce1c8eca52a
new file mode 100644
index 0000000..4925891
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e4b2d5d9d070b882bd7d476fff819ce1c8eca52a
@@ -0,0 +1 @@
+®Ý-€-€-€-€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e4f3cad3cc167abd8030d0f05cf738fc5b69e83f b/fuzz/corpus/qpack_decode/e4f3cad3cc167abd8030d0f05cf738fc5b69e83f
new file mode 100644
index 0000000..0d53936
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e4f3cad3cc167abd8030d0f05cf738fc5b69e83f
@@ -0,0 +1 @@
++ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e5141fbdc643aa47cb317d9f474fde1eba68fdbc b/fuzz/corpus/qpack_decode/e5141fbdc643aa47cb317d9f474fde1eba68fdbc
new file mode 100644
index 0000000..b4fd110
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e5141fbdc643aa47cb317d9f474fde1eba68fdbc
@@ -0,0 +1 @@
+--þþþþþþþþþþþþþþþþ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e5393843b0195dc1a3f2f9aa76fe9be05179c7fb b/fuzz/corpus/qpack_decode/e5393843b0195dc1a3f2f9aa76fe9be05179c7fb
new file mode 100644
index 0000000..013eb77
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e5393843b0195dc1a3f2f9aa76fe9be05179c7fb
@@ -0,0 +1 @@
+ßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e5565060160d505a2cef2f1b3c30847707270617 b/fuzz/corpus/qpack_decode/e5565060160d505a2cef2f1b3c30847707270617
new file mode 100644
index 0000000..6379647
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e5565060160d505a2cef2f1b3c30847707270617
@@ -0,0 +1 @@
+,'Tÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e56117f43fab659f5ca82d282d9071dd358054ad b/fuzz/corpus/qpack_decode/e56117f43fab659f5ca82d282d9071dd358054ad
new file mode 100644
index 0000000..e93947d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e56117f43fab659f5ca82d282d9071dd358054ad
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/e5615c19c146f363eab5a09451257664c167fac3 b/fuzz/corpus/qpack_decode/e5615c19c146f363eab5a09451257664c167fac3
new file mode 100644
index 0000000..7b61965
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e5615c19c146f363eab5a09451257664c167fac3
@@ -0,0 +1 @@
+[1ûûûûûûûûûûûûûûûû
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e5e6c09018059e322d928b3cf3707a666b0995d7 b/fuzz/corpus/qpack_decode/e5e6c09018059e322d928b3cf3707a666b0995d7
new file mode 100644
index 0000000..da3b95f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e5e6c09018059e322d928b3cf3707a666b0995d7
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/e667ada470bcc138b81c8036f7fda330e50a7415 b/fuzz/corpus/qpack_decode/e667ada470bcc138b81c8036f7fda330e50a7415
new file mode 100644
index 0000000..e1c3ba5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e667ada470bcc138b81c8036f7fda330e50a7415
@@ -0,0 +1 @@
+øÝ-€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e670fb0246650464c37e1d2a88de329dfac416ad b/fuzz/corpus/qpack_decode/e670fb0246650464c37e1d2a88de329dfac416ad
new file mode 100644
index 0000000..2a0b71b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e670fb0246650464c37e1d2a88de329dfac416ad
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/e67c43db58b81bacaab99c32d06987cd4fd0a37d b/fuzz/corpus/qpack_decode/e67c43db58b81bacaab99c32d06987cd4fd0a37d
new file mode 100644
index 0000000..39a0c96
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e67c43db58b81bacaab99c32d06987cd4fd0a37d
@@ -0,0 +1 @@
+Ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e69685a5b746a2f429c8da00c86c6900bc266678 b/fuzz/corpus/qpack_decode/e69685a5b746a2f429c8da00c86c6900bc266678
new file mode 100644
index 0000000..e1a904e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e69685a5b746a2f429c8da00c86c6900bc266678
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/e6a04307fdd982109792c7b7831587aee53ef1a8 b/fuzz/corpus/qpack_decode/e6a04307fdd982109792c7b7831587aee53ef1a8
new file mode 100644
index 0000000..20fc655
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e6a04307fdd982109792c7b7831587aee53ef1a8
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/e6d1610edc5c31dfdf339afa01b878eb368d76f4 b/fuzz/corpus/qpack_decode/e6d1610edc5c31dfdf339afa01b878eb368d76f4
new file mode 100644
index 0000000..490e272
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e6d1610edc5c31dfdf339afa01b878eb368d76f4
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/e7330e699efa1badbd015f27e5cba40daa3c3957 b/fuzz/corpus/qpack_decode/e7330e699efa1badbd015f27e5cba40daa3c3957
new file mode 100644
index 0000000..d2da8af
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e7330e699efa1badbd015f27e5cba40daa3c3957
@@ -0,0 +1 @@
+êËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËËË
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e7b3d29d70f0fe088140cd840481c45e341f78ff b/fuzz/corpus/qpack_decode/e7b3d29d70f0fe088140cd840481c45e341f78ff
deleted file mode 100644
index 25627e4..0000000
--- a/fuzz/corpus/qpack_decode/e7b3d29d70f0fe088140cd840481c45e341f78ff
+++ /dev/null
@@ -1 +0,0 @@
-*'ïüü[
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e7b69c96f216366ed55dab38014b35a92f680b2c b/fuzz/corpus/qpack_decode/e7b69c96f216366ed55dab38014b35a92f680b2c
new file mode 100644
index 0000000..f0e945d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e7b69c96f216366ed55dab38014b35a92f680b2c
@@ -0,0 +1 @@
+ììÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e7bfaf14383201c2a71d3d3f822855129bfce2aa b/fuzz/corpus/qpack_decode/e7bfaf14383201c2a71d3d3f822855129bfce2aa
new file mode 100644
index 0000000..04fbbd7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e7bfaf14383201c2a71d3d3f822855129bfce2aa
@@ -0,0 +1 @@
+?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e8072b2c7f808ad4cf8a051fc3923438b5353e28 b/fuzz/corpus/qpack_decode/e8072b2c7f808ad4cf8a051fc3923438b5353e28
new file mode 100644
index 0000000..4ff8f5f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e8072b2c7f808ad4cf8a051fc3923438b5353e28
@@ -0,0 +1,2 @@

+(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e888773ebd4ee4980e91804914476376d4b86305 b/fuzz/corpus/qpack_decode/e888773ebd4ee4980e91804914476376d4b86305
new file mode 100644
index 0000000..3834266
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e888773ebd4ee4980e91804914476376d4b86305
@@ -0,0 +1 @@
+Å,ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e88fc6786c6c921ae889211afb613d204aa49019 b/fuzz/corpus/qpack_decode/e88fc6786c6c921ae889211afb613d204aa49019
new file mode 100644
index 0000000..8b738d0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e88fc6786c6c921ae889211afb613d204aa49019
@@ -0,0 +1 @@
+ÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e8e0350286f2d6a13d3cc2e59fd0ed0ba9a99998 b/fuzz/corpus/qpack_decode/e8e0350286f2d6a13d3cc2e59fd0ed0ba9a99998
new file mode 100644
index 0000000..73171bc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e8e0350286f2d6a13d3cc2e59fd0ed0ba9a99998
@@ -0,0 +1 @@
+(1(€(€(€(€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e92ac5865cc82ddc988745fbb688ce172078832c b/fuzz/corpus/qpack_decode/e92ac5865cc82ddc988745fbb688ce172078832c
new file mode 100644
index 0000000..8af5917
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e92ac5865cc82ddc988745fbb688ce172078832c
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/e936b664e17b6e3e051a9582f941c6260767e11f b/fuzz/corpus/qpack_decode/e936b664e17b6e3e051a9582f941c6260767e11f
new file mode 100644
index 0000000..b24c791
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e936b664e17b6e3e051a9582f941c6260767e11f
@@ -0,0 +1 @@
+€ÝL€L€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e95275d25333fede41644134ae9bc0a07450e0c8 b/fuzz/corpus/qpack_decode/e95275d25333fede41644134ae9bc0a07450e0c8
new file mode 100644
index 0000000..78f2191
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e95275d25333fede41644134ae9bc0a07450e0c8
@@ -0,0 +1 @@
+Ê9åååååååååååååååå
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e963da77a1af716fb304c08481df1d75865a0e99 b/fuzz/corpus/qpack_decode/e963da77a1af716fb304c08481df1d75865a0e99
new file mode 100644
index 0000000..073a89e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e963da77a1af716fb304c08481df1d75865a0e99
@@ -0,0 +1 @@
+ÐÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e9c8c4cd4c272bb0a7ff501e3428c0aaa1b425dd b/fuzz/corpus/qpack_decode/e9c8c4cd4c272bb0a7ff501e3428c0aaa1b425dd
new file mode 100644
index 0000000..b0163ca
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e9c8c4cd4c272bb0a7ff501e3428c0aaa1b425dd
@@ -0,0 +1 @@
+øÑÑÑÑÑÀ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/e9e6bcac7c9c312cba7eb78e1f698e2fa3997ef2 b/fuzz/corpus/qpack_decode/e9e6bcac7c9c312cba7eb78e1f698e2fa3997ef2
new file mode 100644
index 0000000..6acc9a1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/e9e6bcac7c9c312cba7eb78e1f698e2fa3997ef2
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ea8b45b4141583ea165f6d6c07c1ed129fc49a97 b/fuzz/corpus/qpack_decode/ea8b45b4141583ea165f6d6c07c1ed129fc49a97
new file mode 100644
index 0000000..07c7bac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ea8b45b4141583ea165f6d6c07c1ed129fc49a97
@@ -0,0 +1,16 @@
+øøÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
+ÿ
diff --git a/fuzz/corpus/qpack_decode/eab2bceae331e75f071c4409b32303834bef57ea b/fuzz/corpus/qpack_decode/eab2bceae331e75f071c4409b32303834bef57ea
new file mode 100644
index 0000000..0eaab29
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/eab2bceae331e75f071c4409b32303834bef57ea
@@ -0,0 +1 @@
+À@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/eab3b83d74cb23d982851a3cc9b27da30f14f0a7 b/fuzz/corpus/qpack_decode/eab3b83d74cb23d982851a3cc9b27da30f14f0a7
new file mode 100644
index 0000000..4471386
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/eab3b83d74cb23d982851a3cc9b27da30f14f0a7
@@ -0,0 +1 @@
+íÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/eb81a74d18b505736eea5e345e7af6019122fe88 b/fuzz/corpus/qpack_decode/eb81a74d18b505736eea5e345e7af6019122fe88
new file mode 100644
index 0000000..d70d3d0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/eb81a74d18b505736eea5e345e7af6019122fe88
@@ -0,0 +1 @@
+ù!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/eb8898b76241ea1810edde7c476090ecceefc7c0 b/fuzz/corpus/qpack_decode/eb8898b76241ea1810edde7c476090ecceefc7c0
new file mode 100644
index 0000000..090b7ea
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/eb8898b76241ea1810edde7c476090ecceefc7c0
@@ -0,0 +1 @@
+2((€8€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/eb9ce29adc09a814e6610f22d6fb33de473ace30 b/fuzz/corpus/qpack_decode/eb9ce29adc09a814e6610f22d6fb33de473ace30
new file mode 100644
index 0000000..2f9d878
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/eb9ce29adc09a814e6610f22d6fb33de473ace30
@@ -0,0 +1 @@
+ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ebaa2148ff0a877b5f2958098fc2bd75e9c1a2d5 b/fuzz/corpus/qpack_decode/ebaa2148ff0a877b5f2958098fc2bd75e9c1a2d5
new file mode 100644
index 0000000..905ba1e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ebaa2148ff0a877b5f2958098fc2bd75e9c1a2d5
@@ -0,0 +1 @@
+ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ebb638fda9e8e8f3425de34f8ddf4563549082be b/fuzz/corpus/qpack_decode/ebb638fda9e8e8f3425de34f8ddf4563549082be
new file mode 100644
index 0000000..b364776
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ebb638fda9e8e8f3425de34f8ddf4563549082be
@@ -0,0 +1 @@
+yöÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ebffc79e43ea34881e615c06bb32fb7baa565a04 b/fuzz/corpus/qpack_decode/ebffc79e43ea34881e615c06bb32fb7baa565a04
deleted file mode 100644
index b59eadc..0000000
--- a/fuzz/corpus/qpack_decode/ebffc79e43ea34881e615c06bb32fb7baa565a04
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ec2cc5cc793c3a7c4ea9001591549208a423c154 b/fuzz/corpus/qpack_decode/ec2cc5cc793c3a7c4ea9001591549208a423c154
new file mode 100644
index 0000000..881ecd8
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ec2cc5cc793c3a7c4ea9001591549208a423c154
@@ -0,0 +1 @@
+èóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóóó
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ec4e0cbb861b7ea1798343a6cc00f987a385b6ba b/fuzz/corpus/qpack_decode/ec4e0cbb861b7ea1798343a6cc00f987a385b6ba
new file mode 100644
index 0000000..751362b
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ec4e0cbb861b7ea1798343a6cc00f987a385b6ba
@@ -0,0 +1 @@
+ÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ec4f16c29fbacb3f0fb575b3e87dfbcb3fbde121 b/fuzz/corpus/qpack_decode/ec4f16c29fbacb3f0fb575b3e87dfbcb3fbde121
new file mode 100644
index 0000000..69341f1
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ec4f16c29fbacb3f0fb575b3e87dfbcb3fbde121
@@ -0,0 +1 @@
+õî)¯‚õõ)/‚õõ)¯‚õõ)/‚õõ)/‚õõ)/‚õõ)/‚Ïõ)/‚õÏ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ed900e1679301f77d1508852f242c86a7350d29c b/fuzz/corpus/qpack_decode/ed900e1679301f77d1508852f242c86a7350d29c
new file mode 100644
index 0000000..261d590
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ed900e1679301f77d1508852f242c86a7350d29c
@@ -0,0 +1 @@
+=óÂÂÂÂÂÂÂÂ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/eda2066920f9b77a83fd9a473fa38eafda199e37 b/fuzz/corpus/qpack_decode/eda2066920f9b77a83fd9a473fa38eafda199e37
new file mode 100644
index 0000000..da8d705
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/eda2066920f9b77a83fd9a473fa38eafda199e37
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/edaa2046c3407d78b038bced7d1946685677d2a1 b/fuzz/corpus/qpack_decode/edaa2046c3407d78b038bced7d1946685677d2a1
new file mode 100644
index 0000000..9b3c6f6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/edaa2046c3407d78b038bced7d1946685677d2a1
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/edb3ec89e838114fb39b76b463d233e7be81d6f1 b/fuzz/corpus/qpack_decode/edb3ec89e838114fb39b76b463d233e7be81d6f1
new file mode 100644
index 0000000..807c56e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/edb3ec89e838114fb39b76b463d233e7be81d6f1
@@ -0,0 +1 @@
+öÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ee1b80a435f41ff74ad3d57595a403053a040eb1 b/fuzz/corpus/qpack_decode/ee1b80a435f41ff74ad3d57595a403053a040eb1
new file mode 100644
index 0000000..52a37b4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ee1b80a435f41ff74ad3d57595a403053a040eb1
@@ -0,0 +1 @@
+öìÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ef18fd01387f1608bc26ada8b8a9b351ff869220 b/fuzz/corpus/qpack_decode/ef18fd01387f1608bc26ada8b8a9b351ff869220
new file mode 100644
index 0000000..dfae7c2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ef18fd01387f1608bc26ada8b8a9b351ff869220
@@ -0,0 +1 @@
+ïýìììììììì
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ef5880817baa0645283b8d680b8b1265200e0d2f b/fuzz/corpus/qpack_decode/ef5880817baa0645283b8d680b8b1265200e0d2f
deleted file mode 100644
index f9aacea..0000000
--- a/fuzz/corpus/qpack_decode/ef5880817baa0645283b8d680b8b1265200e0d2f
+++ /dev/null
@@ -1 +0,0 @@
-àqqÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ef599cda028d4d1bec10524f988154e56990e987 b/fuzz/corpus/qpack_decode/ef599cda028d4d1bec10524f988154e56990e987
new file mode 100644
index 0000000..6efab70
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ef599cda028d4d1bec10524f988154e56990e987
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/ef6e260ae8bfeeb1d2b30f34d17a32b9a479fe53 b/fuzz/corpus/qpack_decode/ef6e260ae8bfeeb1d2b30f34d17a32b9a479fe53
new file mode 100644
index 0000000..735d94a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ef6e260ae8bfeeb1d2b30f34d17a32b9a479fe53
@@ -0,0 +1 @@
+ù€/€/€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f00a7b4c3181a8185ee296e10fbf011e7d4cc0b0 b/fuzz/corpus/qpack_decode/f00a7b4c3181a8185ee296e10fbf011e7d4cc0b0
new file mode 100644
index 0000000..fef5d23
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f00a7b4c3181a8185ee296e10fbf011e7d4cc0b0
@@ -0,0 +1 @@
+*îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f08c5388e4b030a6e638e846a04f3d2feaa95e43 b/fuzz/corpus/qpack_decode/f08c5388e4b030a6e638e846a04f3d2feaa95e43
new file mode 100644
index 0000000..7101af4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f08c5388e4b030a6e638e846a04f3d2feaa95e43
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/f08fec5d5775ff22a1f1ff4549078178624d7fe6 b/fuzz/corpus/qpack_decode/f08fec5d5775ff22a1f1ff4549078178624d7fe6
deleted file mode 100644
index b47e430..0000000
--- a/fuzz/corpus/qpack_decode/f08fec5d5775ff22a1f1ff4549078178624d7fe6
+++ /dev/null
@@ -1 +0,0 @@
-àqqqq
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f0ee75009911d71b69608cf3382cdccdbedab06c b/fuzz/corpus/qpack_decode/f0ee75009911d71b69608cf3382cdccdbedab06c
new file mode 100644
index 0000000..52b9228
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f0ee75009911d71b69608cf3382cdccdbedab06c
@@ -0,0 +1,4 @@
+øøÿ
+ÿ
+ÿ
+ÿ
diff --git a/fuzz/corpus/qpack_decode/f1058414f6b4b40bd8deb24d21d82bb497812555 b/fuzz/corpus/qpack_decode/f1058414f6b4b40bd8deb24d21d82bb497812555
new file mode 100644
index 0000000..5273659
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f1058414f6b4b40bd8deb24d21d82bb497812555
@@ -0,0 +1 @@
+Pçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f1bce3468aa58d3a51a928306c385e8a335c1eee b/fuzz/corpus/qpack_decode/f1bce3468aa58d3a51a928306c385e8a335c1eee
new file mode 100644
index 0000000..7634a52
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f1bce3468aa58d3a51a928306c385e8a335c1eee
@@ -0,0 +1 @@
+CáÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f1de35e65f8c1a9914a58c34dbda3b0ae1a7eb2c b/fuzz/corpus/qpack_decode/f1de35e65f8c1a9914a58c34dbda3b0ae1a7eb2c
deleted file mode 100644
index 80a70e0..0000000
--- a/fuzz/corpus/qpack_decode/f1de35e65f8c1a9914a58c34dbda3b0ae1a7eb2c
+++ /dev/null
@@ -1 +0,0 @@
-ååéå
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f1efe0b2df2b56c62de052d7538e85b832211010 b/fuzz/corpus/qpack_decode/f1efe0b2df2b56c62de052d7538e85b832211010
new file mode 100644
index 0000000..6d4ed06
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f1efe0b2df2b56c62de052d7538e85b832211010
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/f23dccb8c714a0a6d3caa567e7ee94ebf78abca7 b/fuzz/corpus/qpack_decode/f23dccb8c714a0a6d3caa567e7ee94ebf78abca7
new file mode 100644
index 0000000..da39aed
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f23dccb8c714a0a6d3caa567e7ee94ebf78abca7
@@ -0,0 +1 @@
+ÒÒàààààààààààààààààààààààààààààààà
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f28ae4db5957d96b1b14af4a03a432d68f91917f b/fuzz/corpus/qpack_decode/f28ae4db5957d96b1b14af4a03a432d68f91917f
new file mode 100644
index 0000000..e27ece6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f28ae4db5957d96b1b14af4a03a432d68f91917f
@@ -0,0 +1 @@
+ø(!-€(€!-€(€!-€(€*ÿ-€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f2cc9e485a2c845bdc4ad9552e6fd3ebe7109415 b/fuzz/corpus/qpack_decode/f2cc9e485a2c845bdc4ad9552e6fd3ebe7109415
new file mode 100644
index 0000000..e081390
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f2cc9e485a2c845bdc4ad9552e6fd3ebe7109415
@@ -0,0 +1 @@
+-îîîîîîîîîîîîîîîîî
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f2e6fd21d3c4d2b7b00134de6481fae5ec2e0af9 b/fuzz/corpus/qpack_decode/f2e6fd21d3c4d2b7b00134de6481fae5ec2e0af9
new file mode 100644
index 0000000..a87ba55
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f2e6fd21d3c4d2b7b00134de6481fae5ec2e0af9
@@ -0,0 +1 @@
+yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f34f464e2136cdb2c42ddb33d415ed0ab0559d21 b/fuzz/corpus/qpack_decode/f34f464e2136cdb2c42ddb33d415ed0ab0559d21
new file mode 100644
index 0000000..85b597f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f34f464e2136cdb2c42ddb33d415ed0ab0559d21
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/f3564d0f8822ce84ec113db8fbab4ae17123ed55 b/fuzz/corpus/qpack_decode/f3564d0f8822ce84ec113db8fbab4ae17123ed55
new file mode 100644
index 0000000..995fec3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f3564d0f8822ce84ec113db8fbab4ae17123ed55
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/f3586a6640abdb5e5d48bfdc00f5900279ca0c00 b/fuzz/corpus/qpack_decode/f3586a6640abdb5e5d48bfdc00f5900279ca0c00
new file mode 100644
index 0000000..4d0667c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f3586a6640abdb5e5d48bfdc00f5900279ca0c00
@@ -0,0 +1 @@
+ØÄÄÄÄÄÄÄÄÄ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f35ccfb691d6aac120b0d8f1beef9d77451ebe1f b/fuzz/corpus/qpack_decode/f35ccfb691d6aac120b0d8f1beef9d77451ebe1f
new file mode 100644
index 0000000..ac16d33
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f35ccfb691d6aac120b0d8f1beef9d77451ebe1f
@@ -0,0 +1 @@
+ü@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€@€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f365523e00df550a666fc03179bd991c699f5931 b/fuzz/corpus/qpack_decode/f365523e00df550a666fc03179bd991c699f5931
deleted file mode 100644
index eddbf65..0000000
--- a/fuzz/corpus/qpack_decode/f365523e00df550a666fc03179bd991c699f5931
+++ /dev/null
@@ -1 +0,0 @@
-ØØØØØØØØØØØ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f3995cbb8cacc652e2c2df7047a93beb5d8a4d22 b/fuzz/corpus/qpack_decode/f3995cbb8cacc652e2c2df7047a93beb5d8a4d22
deleted file mode 100644
index 9f158e8..0000000
--- a/fuzz/corpus/qpack_decode/f3995cbb8cacc652e2c2df7047a93beb5d8a4d22
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/f3fa3d1afbdb3a28f33c3ecfdedf52deefd9a82c b/fuzz/corpus/qpack_decode/f3fa3d1afbdb3a28f33c3ecfdedf52deefd9a82c
new file mode 100644
index 0000000..43dff9e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f3fa3d1afbdb3a28f33c3ecfdedf52deefd9a82c
@@ -0,0 +1 @@
+ÞôÿÿÿU
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f444c5e298d80cc3e312a343dfcfe0202e68a673 b/fuzz/corpus/qpack_decode/f444c5e298d80cc3e312a343dfcfe0202e68a673
new file mode 100644
index 0000000..86403bc
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f444c5e298d80cc3e312a343dfcfe0202e68a673
@@ -0,0 +1 @@
+2Ðññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f471f9c8dffbc238e788e635890ea77b4d797b69 b/fuzz/corpus/qpack_decode/f471f9c8dffbc238e788e635890ea77b4d797b69
new file mode 100644
index 0000000..d219a67
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f471f9c8dffbc238e788e635890ea77b4d797b69
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/f48417c12b07a786799f14897e92102e29b40512 b/fuzz/corpus/qpack_decode/f48417c12b07a786799f14897e92102e29b40512
new file mode 100644
index 0000000..0c4e3e4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f48417c12b07a786799f14897e92102e29b40512
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/f4e8f139be9f6b3f258411d906e244dc1a7d2aeb b/fuzz/corpus/qpack_decode/f4e8f139be9f6b3f258411d906e244dc1a7d2aeb
new file mode 100644
index 0000000..7547663
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f4e8f139be9f6b3f258411d906e244dc1a7d2aeb
@@ -0,0 +1 @@
+ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f4e9a629c997a5569fea2e6577c55ca9af914575 b/fuzz/corpus/qpack_decode/f4e9a629c997a5569fea2e6577c55ca9af914575
new file mode 100644
index 0000000..b26cbc6
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f4e9a629c997a5569fea2e6577c55ca9af914575
@@ -0,0 +1 @@
+ù!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!ÿ!
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f4f87c41c3bbc1aed2a7ae6e403dbfad0babeec8 b/fuzz/corpus/qpack_decode/f4f87c41c3bbc1aed2a7ae6e403dbfad0babeec8
new file mode 100644
index 0000000..1afff49
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f4f87c41c3bbc1aed2a7ae6e403dbfad0babeec8
@@ -0,0 +1 @@
+øþÑÑÑ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f4fb73b5bf7d7f995392305e7479058688bb108d b/fuzz/corpus/qpack_decode/f4fb73b5bf7d7f995392305e7479058688bb108d
new file mode 100644
index 0000000..713adff
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f4fb73b5bf7d7f995392305e7479058688bb108d
@@ -0,0 +1 @@
+ëDçççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççççç
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f51dea9aaaab9c639ee9d35ee1f45d5ac87a5f57 b/fuzz/corpus/qpack_decode/f51dea9aaaab9c639ee9d35ee1f45d5ac87a5f57
new file mode 100644
index 0000000..22f6b42
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f51dea9aaaab9c639ee9d35ee1f45d5ac87a5f57
@@ -0,0 +1 @@
+ì2ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f528f985b9f31abd440c596129806478e0a14a94 b/fuzz/corpus/qpack_decode/f528f985b9f31abd440c596129806478e0a14a94
new file mode 100644
index 0000000..3a635f5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f528f985b9f31abd440c596129806478e0a14a94
@@ -0,0 +1 @@
+€ÝL€L€L€L€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f5855ca9223df9e4ea5dc6db5d72a4ecf9293713 b/fuzz/corpus/qpack_decode/f5855ca9223df9e4ea5dc6db5d72a4ecf9293713
new file mode 100644
index 0000000..37a978f
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f5855ca9223df9e4ea5dc6db5d72a4ecf9293713
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/f589d634d9a12e1d543a68983a77ca8ed038b2d6 b/fuzz/corpus/qpack_decode/f589d634d9a12e1d543a68983a77ca8ed038b2d6
new file mode 100644
index 0000000..bd5a3ac
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f589d634d9a12e1d543a68983a77ca8ed038b2d6
@@ -0,0 +1 @@
+ÒÒÿ ÿ 
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f59d0f17bc127d5af3601fb8e0af9aa2930f09a8 b/fuzz/corpus/qpack_decode/f59d0f17bc127d5af3601fb8e0af9aa2930f09a8
new file mode 100644
index 0000000..29c164e
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f59d0f17bc127d5af3601fb8e0af9aa2930f09a8
@@ -0,0 +1 @@
+ßûÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f59f13cb0dd7d61546b4924108a5bfeef7180eed b/fuzz/corpus/qpack_decode/f59f13cb0dd7d61546b4924108a5bfeef7180eed
new file mode 100644
index 0000000..353f6dd
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f59f13cb0dd7d61546b4924108a5bfeef7180eed
@@ -0,0 +1,2 @@
+
+A€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f5c22c06035dacb22f0ad8d3f497cadd480ba24d b/fuzz/corpus/qpack_decode/f5c22c06035dacb22f0ad8d3f497cadd480ba24d
new file mode 100644
index 0000000..0a01a35
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f5c22c06035dacb22f0ad8d3f497cadd480ba24d
@@ -0,0 +1 @@
+(Ý?€?€?€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f6248f438a36c726db179d739e41a6faa1d5f625 b/fuzz/corpus/qpack_decode/f6248f438a36c726db179d739e41a6faa1d5f625
new file mode 100644
index 0000000..a81a2ee
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f6248f438a36c726db179d739e41a6faa1d5f625
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/f708f5e8b7c9b279f52df2cc7ea1f5b3114e779a b/fuzz/corpus/qpack_decode/f708f5e8b7c9b279f52df2cc7ea1f5b3114e779a
new file mode 100644
index 0000000..b59db83
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f708f5e8b7c9b279f52df2cc7ea1f5b3114e779a
@@ -0,0 +1 @@
+îïïïï
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f7312d690c870d8a1405a627cb1955b301e5b8e5 b/fuzz/corpus/qpack_decode/f7312d690c870d8a1405a627cb1955b301e5b8e5
new file mode 100644
index 0000000..9aa2494
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f7312d690c870d8a1405a627cb1955b301e5b8e5
@@ -0,0 +1 @@
+(ÝA€A€A€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f74a8662ac75fbd138852f047f4fb71a8fac8610 b/fuzz/corpus/qpack_decode/f74a8662ac75fbd138852f047f4fb71a8fac8610
new file mode 100644
index 0000000..27b47ce
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f74a8662ac75fbd138852f047f4fb71a8fac8610
@@ -0,0 +1 @@
++`ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f7c6326e5ab7e5648cdcde334be7e01b2a8d5000 b/fuzz/corpus/qpack_decode/f7c6326e5ab7e5648cdcde334be7e01b2a8d5000
new file mode 100644
index 0000000..8bf4d65
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f7c6326e5ab7e5648cdcde334be7e01b2a8d5000
@@ -0,0 +1 @@
+ÄÄÄE
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f803e07f262321f6597e548f9c069b6079be95a4 b/fuzz/corpus/qpack_decode/f803e07f262321f6597e548f9c069b6079be95a4
new file mode 100644
index 0000000..b292265
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f803e07f262321f6597e548f9c069b6079be95a4
@@ -0,0 +1 @@
+'ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f8177189f0f262118a944fefaecdce3411cad300 b/fuzz/corpus/qpack_decode/f8177189f0f262118a944fefaecdce3411cad300
new file mode 100644
index 0000000..18737d7
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f8177189f0f262118a944fefaecdce3411cad300
@@ -0,0 +1 @@
+-ððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððð
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f870109758ade10f711af4373bf8eccd2fa392e8 b/fuzz/corpus/qpack_decode/f870109758ade10f711af4373bf8eccd2fa392e8
new file mode 100644
index 0000000..fc7e581
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f870109758ade10f711af4373bf8eccd2fa392e8
@@ -0,0 +1 @@
+àààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààà
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f8ba26fe657fcd88d0df47af71e0cb9d873411ff b/fuzz/corpus/qpack_decode/f8ba26fe657fcd88d0df47af71e0cb9d873411ff
new file mode 100644
index 0000000..266eb19
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f8ba26fe657fcd88d0df47af71e0cb9d873411ff
@@ -0,0 +1 @@
+ËËïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f8c58acb8eeb48e20724aeb4306b4059d8d77c90 b/fuzz/corpus/qpack_decode/f8c58acb8eeb48e20724aeb4306b4059d8d77c90
new file mode 100644
index 0000000..0ed0803
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f8c58acb8eeb48e20724aeb4306b4059d8d77c90
@@ -0,0 +1 @@
+ëÕôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôôô
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f8dac8479d054d2e22db59ea6ff1c930d76daa73 b/fuzz/corpus/qpack_decode/f8dac8479d054d2e22db59ea6ff1c930d76daa73
new file mode 100644
index 0000000..d7f6829
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f8dac8479d054d2e22db59ea6ff1c930d76daa73
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/f90b2f561a4898e5fcbc7de0602a6ad13c0f722f b/fuzz/corpus/qpack_decode/f90b2f561a4898e5fcbc7de0602a6ad13c0f722f
new file mode 100644
index 0000000..513aee3
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f90b2f561a4898e5fcbc7de0602a6ad13c0f722f
@@ -0,0 +1 @@
+)+ýýýý
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f91fd873ad57036fd0e2c2d7b04e12745cd20911 b/fuzz/corpus/qpack_decode/f91fd873ad57036fd0e2c2d7b04e12745cd20911
new file mode 100644
index 0000000..03bb6f0
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f91fd873ad57036fd0e2c2d7b04e12745cd20911
@@ -0,0 +1 @@
+ÃÃÃ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f98d6a03784a41cf81fadddbff72c78d795f6346 b/fuzz/corpus/qpack_decode/f98d6a03784a41cf81fadddbff72c78d795f6346
new file mode 100644
index 0000000..c8398e4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f98d6a03784a41cf81fadddbff72c78d795f6346
@@ -0,0 +1 @@
+ÅÅÅÅÅÅÅÅÅÅ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/f99da6121bf2da0e61215ea8f3175755e3bc8e38 b/fuzz/corpus/qpack_decode/f99da6121bf2da0e61215ea8f3175755e3bc8e38
new file mode 100644
index 0000000..5e028e4
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/f99da6121bf2da0e61215ea8f3175755e3bc8e38
@@ -0,0 +1 @@
+/+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fa47d869b1c9edfe0cffb4b1b022011003905778 b/fuzz/corpus/qpack_decode/fa47d869b1c9edfe0cffb4b1b022011003905778
new file mode 100644
index 0000000..3cea759
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fa47d869b1c9edfe0cffb4b1b022011003905778
@@ -0,0 +1 @@
+Ðÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fa589b4e10ccbef00446c5cf18b1017e556858b5 b/fuzz/corpus/qpack_decode/fa589b4e10ccbef00446c5cf18b1017e556858b5
new file mode 100644
index 0000000..0d70e47
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fa589b4e10ccbef00446c5cf18b1017e556858b5
@@ -0,0 +1 @@
+ôôôôôôôôôôôôôôôôô
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fa6ff88f1d3b2826a04f6ff6d3313e4c77585140 b/fuzz/corpus/qpack_decode/fa6ff88f1d3b2826a04f6ff6d3313e4c77585140
new file mode 100644
index 0000000..5356798
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fa6ff88f1d3b2826a04f6ff6d3313e4c77585140
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/fa975b2ac4d492db4b2696453002b85bbec3a2f9 b/fuzz/corpus/qpack_decode/fa975b2ac4d492db4b2696453002b85bbec3a2f9
new file mode 100644
index 0000000..2cbf767
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fa975b2ac4d492db4b2696453002b85bbec3a2f9
@@ -0,0 +1 @@
+R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fab0345ed27f30cb3010581c8ebd0f25d1bf4bd8 b/fuzz/corpus/qpack_decode/fab0345ed27f30cb3010581c8ebd0f25d1bf4bd8
new file mode 100644
index 0000000..dac2b80
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fab0345ed27f30cb3010581c8ebd0f25d1bf4bd8
@@ -0,0 +1 @@
+ÅÅ<ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/faf3e397016134ee22ed557a44d4de40c1fee020 b/fuzz/corpus/qpack_decode/faf3e397016134ee22ed557a44d4de40c1fee020
new file mode 100644
index 0000000..0a19f83
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/faf3e397016134ee22ed557a44d4de40c1fee020
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/fb351f7bb7855e3fc82b14cec154423c9f349662 b/fuzz/corpus/qpack_decode/fb351f7bb7855e3fc82b14cec154423c9f349662
new file mode 100644
index 0000000..ea20ce5
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fb351f7bb7855e3fc82b14cec154423c9f349662
@@ -0,0 +1 @@
+€ÝR€R€R€R€R€R€R€R€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fb5aab27a2dbf3f87a2e55a7fc57e58c35419d85 b/fuzz/corpus/qpack_decode/fb5aab27a2dbf3f87a2e55a7fc57e58c35419d85
new file mode 100644
index 0000000..81e9c70
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fb5aab27a2dbf3f87a2e55a7fc57e58c35419d85
@@ -0,0 +1 @@
+èèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèè
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fb6ffb743b434921b39560c422b4f38a925bc209 b/fuzz/corpus/qpack_decode/fb6ffb743b434921b39560c422b4f38a925bc209
new file mode 100644
index 0000000..0ee4680
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fb6ffb743b434921b39560c422b4f38a925bc209
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/fb7c327524721f25dd4c2dfb8731b5d2ef26aeae b/fuzz/corpus/qpack_decode/fb7c327524721f25dd4c2dfb8731b5d2ef26aeae
new file mode 100644
index 0000000..c715096
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fb7c327524721f25dd4c2dfb8731b5d2ef26aeae
@@ -0,0 +1 @@
+)ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fb9383c6cc586995b596ff953606b482b72dc2b0 b/fuzz/corpus/qpack_decode/fb9383c6cc586995b596ff953606b482b72dc2b0
deleted file mode 100644
index 38e0e3d..0000000
--- a/fuzz/corpus/qpack_decode/fb9383c6cc586995b596ff953606b482b72dc2b0
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/fbe1f39c2634599a45cc3d6a927bb1fc3b0211d2 b/fuzz/corpus/qpack_decode/fbe1f39c2634599a45cc3d6a927bb1fc3b0211d2
new file mode 100644
index 0000000..70aff45
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fbe1f39c2634599a45cc3d6a927bb1fc3b0211d2
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/fc62f3f952dda98d7b9c16c1009b6f22cfa5917b b/fuzz/corpus/qpack_decode/fc62f3f952dda98d7b9c16c1009b6f22cfa5917b
new file mode 100644
index 0000000..9632a82
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fc62f3f952dda98d7b9c16c1009b6f22cfa5917b
@@ -0,0 +1 @@
+óÁØ0
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fd0d10be7a5bd4841a37f85d8f4cb5017cb8e818 b/fuzz/corpus/qpack_decode/fd0d10be7a5bd4841a37f85d8f4cb5017cb8e818
new file mode 100644
index 0000000..8b1ecf2
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fd0d10be7a5bd4841a37f85d8f4cb5017cb8e818
@@ -0,0 +1 @@
+øîÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fd3bc9e9f0f6d94d23fe90f125ac3d3fb33d1425 b/fuzz/corpus/qpack_decode/fd3bc9e9f0f6d94d23fe90f125ac3d3fb33d1425
new file mode 100644
index 0000000..b71ea58
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fd3bc9e9f0f6d94d23fe90f125ac3d3fb33d1425
@@ -0,0 +1 @@
+¿çÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fd876c78755406d9f4d9d34a42f3eec5c1750c22 b/fuzz/corpus/qpack_decode/fd876c78755406d9f4d9d34a42f3eec5c1750c22
new file mode 100644
index 0000000..33e689a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fd876c78755406d9f4d9d34a42f3eec5c1750c22
@@ -0,0 +1 @@
+ÅÅÏÏÏÏÏÏÏÏ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fdae76968ba139ec379b578b32796f5d8db20c1a b/fuzz/corpus/qpack_decode/fdae76968ba139ec379b578b32796f5d8db20c1a
new file mode 100644
index 0000000..e56bbca
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fdae76968ba139ec379b578b32796f5d8db20c1a
@@ -0,0 +1 @@
+€€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€F€
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fe6ba4373499aeac28e8bdce74c65a21c7a20815 b/fuzz/corpus/qpack_decode/fe6ba4373499aeac28e8bdce74c65a21c7a20815
new file mode 100644
index 0000000..a476e0c
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fe6ba4373499aeac28e8bdce74c65a21c7a20815
@@ -0,0 +1 @@
+?ÿÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fe9624059d279ff8c7d7df0d6d0b2e69daf3e123 b/fuzz/corpus/qpack_decode/fe9624059d279ff8c7d7df0d6d0b2e69daf3e123
deleted file mode 100644
index bdaa7e1..0000000
--- a/fuzz/corpus/qpack_decode/fe9624059d279ff8c7d7df0d6d0b2e69daf3e123
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/qpack_decode/fe9d8c77e66d48d65ec9898acf3a3f4d9167671d b/fuzz/corpus/qpack_decode/fe9d8c77e66d48d65ec9898acf3a3f4d9167671d
new file mode 100644
index 0000000..17cdc0a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fe9d8c77e66d48d65ec9898acf3a3f4d9167671d
@@ -0,0 +1 @@
+ ÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fef7ffe2c99d7aef5fe94a090735e027c3263df9 b/fuzz/corpus/qpack_decode/fef7ffe2c99d7aef5fe94a090735e027c3263df9
new file mode 100644
index 0000000..0ca3f96
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fef7ffe2c99d7aef5fe94a090735e027c3263df9
@@ -0,0 +1 @@
+'ÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ff9405b0cfc02d5f6c7db1e3871226be4c6487b9 b/fuzz/corpus/qpack_decode/ff9405b0cfc02d5f6c7db1e3871226be4c6487b9
new file mode 100644
index 0000000..2bfaa5d
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/ff9405b0cfc02d5f6c7db1e3871226be4c6487b9
@@ -0,0 +1 @@
+ïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ffd78fdf7e03056b6bcd490d0e8e1ba20da0532f b/fuzz/corpus/qpack_decode/ffd78fdf7e03056b6bcd490d0e8e1ba20da0532f
deleted file mode 100644
index f8a0beb..0000000
--- a/fuzz/corpus/qpack_decode/ffd78fdf7e03056b6bcd490d0e8e1ba20da0532f
+++ /dev/null
@@ -1 +0,0 @@
-)+ýýý½ýeÿÿÿ
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/ffd8764a05edef58e34aa23949f9c5ea170bce6e b/fuzz/corpus/qpack_decode/ffd8764a05edef58e34aa23949f9c5ea170bce6e
deleted file mode 100644
index 12d26a9..0000000
--- a/fuzz/corpus/qpack_decode/ffd8764a05edef58e34aa23949f9c5ea170bce6e
+++ /dev/null
@@ -1 +0,0 @@
-áááááááááá
\ No newline at end of file
diff --git a/fuzz/corpus/qpack_decode/fff47f1f01b32d52c2011adab3387f63609a2298 b/fuzz/corpus/qpack_decode/fff47f1f01b32d52c2011adab3387f63609a2298
new file mode 100644
index 0000000..016169a
--- /dev/null
+++ b/fuzz/corpus/qpack_decode/fff47f1f01b32d52c2011adab3387f63609a2298
@@ -0,0 +1 @@
+?ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ 
\ No newline at end of file
diff --git a/fuzz/mayhem/packet_recv_client/Mayhemfile b/fuzz/mayhem/packet_recv_client/Mayhemfile
index 34d5024..87d194e 100755
--- a/fuzz/mayhem/packet_recv_client/Mayhemfile
+++ b/fuzz/mayhem/packet_recv_client/Mayhemfile
@@ -1,15 +1,15 @@
-version: '1.0'
+version: '1.5'
 
-project: quiche
+project: protocols/quiche
 
 target: packet-recv-client-libfuzzer
 
-baseimage: kestrel.forallsecure.com:5000/ghedo/quiche-libfuzzer:latest
+baseimage: mayhem.cloudflare-security.com:5000/protocols/quiche-libfuzzer:latest
 
 advanced_triage: false
 
 cmds:
   - cmd: /home/mayhem/packet_recv_client
     libfuzzer: true
-    asan: true
+    sanitizer: true
     timeout: 5
diff --git a/fuzz/mayhem/packet_recv_server/Mayhemfile b/fuzz/mayhem/packet_recv_server/Mayhemfile
index 2cca26e..895a5b3 100755
--- a/fuzz/mayhem/packet_recv_server/Mayhemfile
+++ b/fuzz/mayhem/packet_recv_server/Mayhemfile
@@ -1,16 +1,16 @@
-version: '1.0'
+version: '1.5'
 
-project: quiche
+project: protocols/quiche
 
 target: packet-recv-server-libfuzzer
 
-baseimage: kestrel.forallsecure.com:5000/ghedo/quiche-libfuzzer:latest
+baseimage: mayhem.cloudflare-security.com:5000/protocols/quiche-libfuzzer:latest
 
 advanced_triage: false
 
 cmds:
   - cmd: /home/mayhem/packet_recv_server
     libfuzzer: true
-    asan: true
+    sanitizer: true
     timeout: 5
     env: { "QUICHE_FUZZ_CRT": "/home/mayhem/cert.crt", "QUICHE_FUZZ_KEY": "/home/mayhem/cert.key" }
diff --git a/fuzz/mayhem/qpack_decode/Mayhemfile b/fuzz/mayhem/qpack_decode/Mayhemfile
index 1bee62c..83c43dd 100755
--- a/fuzz/mayhem/qpack_decode/Mayhemfile
+++ b/fuzz/mayhem/qpack_decode/Mayhemfile
@@ -1,15 +1,15 @@
-version: '1.0'
+version: '1.5'
 
-project: quiche
+project: protocols/quiche
 
 target: qpack-decode-libfuzzer
 
-baseimage: kestrel.forallsecure.com:5000/ghedo/quiche-libfuzzer:latest
+baseimage: mayhem.cloudflare-security.com:5000/protocols/quiche-libfuzzer:latest
 
 advanced_triage: false
 
 cmds:
   - cmd: /home/mayhem/qpack_decode
     libfuzzer: true
-    asan: true
+    sanitizer: true
     timeout: 5
diff --git a/fuzz/src/qpack_decode.rs b/fuzz/src/qpack_decode.rs
index 86afffa..8e12def 100644
--- a/fuzz/src/qpack_decode.rs
+++ b/fuzz/src/qpack_decode.rs
@@ -3,6 +3,8 @@
 #[macro_use]
 extern crate libfuzzer_sys;
 
+use quiche::h3::NameValue;
+
 // Fuzzer for qpack codec. Checks that decode(encode(hdrs)) == hdrs. To get the
 // initial hdrs, the fuzzer deserializes the input, and skips inputs where
 // deserialization fails.
@@ -13,10 +15,12 @@
 fuzz_target!(|data: &[u8]| {
     let mut decoder = quiche::h3::qpack::Decoder::new();
     let mut encoder = quiche::h3::qpack::Encoder::new();
+
     let hdrs = match decoder.decode(&mut data.to_vec(), std::u64::MAX) {
         Err(_) => return,
         Ok(hdrs) => hdrs,
     };
+
     let mut encoded_hdrs = vec![0; data.len() * 10 + 1000];
     let encoded_size = encoder.encode(&hdrs, &mut encoded_hdrs).unwrap();
 
@@ -24,5 +28,15 @@
         .decode(&encoded_hdrs[..encoded_size], std::u64::MAX)
         .unwrap();
 
-    assert_eq!(hdrs, decoded_hdrs)
+    let mut expected_hdrs = Vec::new();
+
+    // Turn original headers into lower-case as the QPACK decode doesn't do
+    // this.
+    for h in &hdrs {
+        let name = h.name().to_ascii_lowercase();
+
+        expected_hdrs.push(quiche::h3::Header::new(&name, h.value()));
+    }
+
+    assert_eq!(expected_hdrs, decoded_hdrs)
 });
diff --git a/include/quiche.h b/include/quiche.h
index 22691bc..8a25975 100644
--- a/include/quiche.h
+++ b/include/quiche.h
@@ -46,7 +46,7 @@
 //
 
 // The current QUIC wire version.
-#define QUICHE_PROTOCOL_VERSION 0xff00001b
+#define QUICHE_PROTOCOL_VERSION 0xff00001d
 
 // The maximum length of a connection ID.
 #define QUICHE_MAX_CONN_ID_LEN 20
@@ -142,8 +142,8 @@
 // Sets the `max_idle_timeout` transport parameter.
 void quiche_config_set_max_idle_timeout(quiche_config *config, uint64_t v);
 
-// Sets the `max_packet_size` transport parameter.
-void quiche_config_set_max_packet_size(quiche_config *config, uint64_t v);
+// Sets the `max_udp_payload_size transport` parameter.
+void quiche_config_set_max_udp_payload_size(quiche_config *config, uint64_t v);
 
 // Sets the `initial_max_data` transport parameter.
 void quiche_config_set_initial_max_data(quiche_config *config, uint64_t v);
@@ -183,6 +183,11 @@
 // Configures whether to use HyStart++.
 void quiche_config_enable_hystart(quiche_config *config, bool v);
 
+// Configures whether to enable receiving DATAGRAM frames.
+void quiche_config_enable_dgram(quiche_config *config, bool enabled,
+                                size_t recv_queue_len,
+                                size_t send_queue_len);
+
 // Frees the config object.
 void quiche_config_free(quiche_config *config);
 
@@ -216,7 +221,7 @@
                      const uint8_t *dcid, size_t dcid_len,
                      const uint8_t *new_scid, size_t new_scid_len,
                      const uint8_t *token, size_t token_len,
-                     uint8_t *out, size_t out_len);
+                     uint32_t version, uint8_t *out, size_t out_len);
 
 // Returns true if the given protocol version is supported.
 bool quiche_version_is_supported(uint32_t version);
@@ -226,13 +231,19 @@
                                       quiche_config *config, void *ssl,
                                       bool is_server);
 
+// Enables keylog to the specified file path. Returns true on success.
+bool quiche_conn_set_keylog_path(quiche_conn *conn, const char *path);
+
+// Enables keylog to the specified file descriptor. Unix only.
+void quiche_conn_set_keylog_fd(quiche_conn *conn, int fd);
+
 // Enables qlog to the specified file path. Returns true on success.
 bool quiche_conn_set_qlog_path(quiche_conn *conn, const char *path,
                           const char *log_title, const char *log_desc);
 
 // Enables qlog to the specified file descriptor. Unix only.
-void quiche_conn_set_qlog_fd(quiche_conn *conn, int fd, const char * log_title,
-                             const char * log_desc);
+void quiche_conn_set_qlog_fd(quiche_conn *conn, int fd, const char *log_title,
+                             const char *log_desc);
 
 // Processes QUIC packets received from the peer.
 ssize_t quiche_conn_recv(quiche_conn *conn, uint8_t *buf, size_t buf_len);
@@ -343,6 +354,21 @@
 // Collects and returns statistics about the connection.
 void quiche_conn_stats(quiche_conn *conn, quiche_stats *out);
 
+// Returns the maximum DATAGRAM payload that can be sent.
+ssize_t quiche_conn_dgram_max_writable_len(quiche_conn *conn);
+
+// Reads the first received DATAGRAM.
+ssize_t quiche_conn_dgram_recv(quiche_conn *conn, uint8_t *buf,
+                               size_t buf_len);
+
+// Sends data in a DATAGRAM frame.
+ssize_t quiche_conn_dgram_send(quiche_conn *conn, const uint8_t *buf,
+                               size_t buf_len);
+
+// Purges queued outgoing DATAGRAMs matching the predicate.
+void quiche_conn_dgram_purge_outgoing(quiche_conn *conn,
+                                      bool (*f)(uint8_t *, size_t));
+
 // Frees the connection object.
 void quiche_conn_free(quiche_conn *conn);
 
@@ -351,7 +377,7 @@
 //
 
 // List of ALPN tokens of supported HTTP/3 versions.
-#define QUICHE_H3_APPLICATION_PROTOCOL "\x05h3-27"
+#define QUICHE_H3_APPLICATION_PROTOCOL "\x05h3-29\x05h3-28\x05h3-27"
 
 enum quiche_h3_error {
     /// There is no error or no work to do
@@ -432,6 +458,8 @@
     QUICHE_H3_EVENT_HEADERS,
     QUICHE_H3_EVENT_DATA,
     QUICHE_H3_EVENT_FINISHED,
+    QUICHE_H3_EVENT_DATAGRAM,
+    QUICHE_H3_EVENT_GOAWAY,
 };
 
 typedef struct Http3Event quiche_h3_event;
@@ -474,11 +502,17 @@
                                quiche_h3_header *headers, size_t headers_len,
                                bool fin);
 
-// Sends an HTTP/3 response on the specified stream.
+// Sends an HTTP/3 response on the specified stream with default priority.
 int quiche_h3_send_response(quiche_h3_conn *conn, quiche_conn *quic_conn,
                             uint64_t stream_id, quiche_h3_header *headers,
                             size_t headers_len, bool fin);
 
+// Sends an HTTP/3 response on the specified stream with specified priority.
+int quiche_h3_send_response_with_priority(quiche_h3_conn *conn,
+                            quiche_conn *quic_conn, uint64_t stream_id,
+                            quiche_h3_header *headers, size_t headers_len,
+                            const char *priority, bool fin);
+
 // Sends an HTTP/3 body chunk on the given stream.
 ssize_t quiche_h3_send_body(quiche_h3_conn *conn, quiche_conn *quic_conn,
                             uint64_t stream_id, uint8_t *body, size_t body_len,
@@ -488,6 +522,14 @@
 ssize_t quiche_h3_recv_body(quiche_h3_conn *conn, quiche_conn *quic_conn,
                             uint64_t stream_id, uint8_t *out, size_t out_len);
 
+// Writes data to the DATAGRAM send queue.
+ssize_t quiche_h3_send_dgram(quiche_h3_conn *conn, quiche_conn *quic_conn,
+                            uint64_t flow_id, uint8_t *data, size_t data_len);
+
+// Reads data from the DATAGRAM receive queue.
+ssize_t quiche_h3_recv_dgram(quiche_h3_conn *conn, quiche_conn *quic_conn,
+                            uint64_t *flow_id, uint8_t *out, size_t out_len);
+
 // Frees the HTTP/3 connection object.
 void quiche_h3_conn_free(quiche_h3_conn *conn);
 
diff --git a/src/build.rs b/src/build.rs
index 7a5ae27..98774aa 100644
--- a/src/build.rs
+++ b/src/build.rs
@@ -44,15 +44,36 @@
 /// MSVC generator on Windows place static libs in a target sub-folder,
 /// so adjust library location based on platform and build target.
 /// See issue: https://github.com/alexcrichton/cmake-rs/issues/18
-fn get_boringssl_platform_output_path(lib: &str) -> String {
+fn get_boringssl_platform_output_path() -> String {
     if cfg!(windows) {
-        if cfg!(debug_assertions) {
-            format!("{}/Debug", lib)
-        } else {
-            format!("{}/RelWithDebInfo", lib)
-        }
+        // Code under this branch should match the logic in cmake-rs
+        let debug_env_var =
+            std::env::var("DEBUG").expect("DEBUG variable not defined in env");
+
+        let deb_info = match &debug_env_var[..] {
+            "false" => false,
+            "true" => true,
+            unknown => panic!("Unknown DEBUG={} env var.", unknown),
+        };
+
+        let opt_env_var = std::env::var("OPT_LEVEL")
+            .expect("OPT_LEVEL variable not defined in env");
+
+        let subdir = match &opt_env_var[..] {
+            "0" => "Debug",
+            "1" | "2" | "3" =>
+                if deb_info {
+                    "RelWithDebInfo"
+                } else {
+                    "Release"
+                },
+            "s" | "z" => "MinSizeRel",
+            unknown => panic!("Unknown OPT_LEVEL={} env var.", unknown),
+        };
+
+        subdir.to_string()
     } else {
-        lib.to_string()
+        "".to_string()
     }
 }
 
@@ -133,7 +154,7 @@
             if arch == "x86" && os != "windows" {
                 boringssl_cmake.define(
                     "CMAKE_TOOLCHAIN_FILE",
-                    pwd.join("deps/boringssl/util/32-bit-toolchain.cmake")
+                    pwd.join("deps/boringssl/src/util/32-bit-toolchain.cmake")
                         .as_os_str(),
                 );
             }
@@ -188,14 +209,11 @@
             cfg.build_target("bssl").build().display().to_string()
         });
 
-        let crypto_path = get_boringssl_platform_output_path("crypto");
-        let crypto_dir = format!("{}/build/{}", bssl_dir, crypto_path);
-        println!("cargo:rustc-link-search=native={}", crypto_dir);
-        println!("cargo:rustc-link-lib=static=crypto");
+        let build_path = get_boringssl_platform_output_path();
+        let build_dir = format!("{}/build/{}", bssl_dir, build_path);
+        println!("cargo:rustc-link-search=native={}", build_dir);
 
-        let ssl_path = get_boringssl_platform_output_path("ssl");
-        let ssl_dir = format!("{}/build/{}", bssl_dir, ssl_path);
-        println!("cargo:rustc-link-search=native={}", ssl_dir);
+        println!("cargo:rustc-link-lib=static=crypto");
         println!("cargo:rustc-link-lib=static=ssl");
     }
 
diff --git a/src/crypto.rs b/src/crypto.rs
index 21873b8..b45f4a5 100644
--- a/src/crypto.rs
+++ b/src/crypto.rs
@@ -141,6 +141,21 @@
         })
     }
 
+    pub fn from_secret(aead: Algorithm, secret: &[u8]) -> Result<Open> {
+        let key_len = aead.key_len();
+        let nonce_len = aead.nonce_len();
+
+        let mut key = vec![0; key_len];
+        let mut iv = vec![0; nonce_len];
+        let mut pn_key = vec![0; key_len];
+
+        derive_pkt_key(aead, &secret, &mut key)?;
+        derive_pkt_iv(aead, &secret, &mut iv)?;
+        derive_hdr_key(aead, &secret, &mut pn_key)?;
+
+        Open::new(aead, &key, &iv, &pn_key)
+    }
+
     pub fn open_with_u64_counter(
         &self, counter: u64, ad: &[u8], buf: &mut [u8],
     ) -> Result<usize> {
@@ -210,6 +225,21 @@
         })
     }
 
+    pub fn from_secret(aead: Algorithm, secret: &[u8]) -> Result<Seal> {
+        let key_len = aead.key_len();
+        let nonce_len = aead.nonce_len();
+
+        let mut key = vec![0; key_len];
+        let mut iv = vec![0; nonce_len];
+        let mut pn_key = vec![0; key_len];
+
+        derive_pkt_key(aead, &secret, &mut key)?;
+        derive_pkt_iv(aead, &secret, &mut iv)?;
+        derive_hdr_key(aead, &secret, &mut pn_key)?;
+
+        Seal::new(aead, &key, &iv, &pn_key)
+    }
+
     pub fn seal_with_u64_counter(
         &self, counter: u64, ad: &[u8], buf: &mut [u8],
     ) -> Result<()> {
@@ -258,7 +288,7 @@
 }
 
 pub fn derive_initial_key_material(
-    cid: &[u8], is_server: bool,
+    cid: &[u8], version: u32, is_server: bool,
 ) -> Result<(Open, Seal)> {
     let mut secret = [0; 32];
 
@@ -267,7 +297,7 @@
     let key_len = aead.key_len();
     let nonce_len = aead.nonce_len();
 
-    let initial_secret = derive_initial_secret(&cid)?;
+    let initial_secret = derive_initial_secret(&cid, version)?;
 
     // Client.
     let mut client_key = vec![0; key_len];
@@ -304,13 +334,25 @@
     Ok((open, seal))
 }
 
-fn derive_initial_secret(secret: &[u8]) -> Result<hkdf::Prk> {
+fn derive_initial_secret(secret: &[u8], version: u32) -> Result<hkdf::Prk> {
     const INITIAL_SALT: [u8; 20] = [
+        0xaf, 0xbf, 0xec, 0x28, 0x99, 0x93, 0xd2, 0x4c, 0x9e, 0x97, 0x86, 0xf1,
+        0x9c, 0x61, 0x11, 0xe0, 0x43, 0x90, 0xa8, 0x99,
+    ];
+
+    const INITIAL_SALT_OLD: [u8; 20] = [
         0xc3, 0xee, 0xf7, 0x12, 0xc7, 0x2e, 0xbb, 0x5a, 0x11, 0xa7, 0xd2, 0x43,
         0x2b, 0xb4, 0x63, 0x65, 0xbe, 0xf9, 0xf5, 0x02,
     ];
 
-    let salt = hkdf::Salt::new(hkdf::HKDF_SHA256, &INITIAL_SALT);
+    let salt = match version {
+        crate::PROTOCOL_VERSION_DRAFT27 | crate::PROTOCOL_VERSION_DRAFT28 =>
+            &INITIAL_SALT_OLD,
+
+        _ => &INITIAL_SALT,
+    };
+
+    let salt = hkdf::Salt::new(hkdf::HKDF_SHA256, salt);
     Ok(salt.extract(secret))
 }
 
@@ -426,7 +468,88 @@
 
         let aead = Algorithm::AES128_GCM;
 
-        let initial_secret = derive_initial_secret(&dcid).unwrap();
+        let initial_secret =
+            derive_initial_secret(&dcid, crate::PROTOCOL_VERSION).unwrap();
+
+        // Client.
+        assert!(
+            derive_client_initial_secret(&initial_secret, &mut secret).is_ok()
+        );
+        let expected_client_initial_secret = [
+            0x00, 0x88, 0x11, 0x92, 0x88, 0xf1, 0xd8, 0x66, 0x73, 0x3c, 0xee,
+            0xed, 0x15, 0xff, 0x9d, 0x50, 0x90, 0x2c, 0xf8, 0x29, 0x52, 0xee,
+            0xe2, 0x7e, 0x9d, 0x4d, 0x49, 0x18, 0xea, 0x37, 0x1d, 0x87,
+        ];
+        assert_eq!(&secret, &expected_client_initial_secret);
+
+        assert!(derive_pkt_key(aead, &secret, &mut pkt_key).is_ok());
+        let expected_client_pkt_key = [
+            0x17, 0x52, 0x57, 0xa3, 0x1e, 0xb0, 0x9d, 0xea, 0x93, 0x66, 0xd8,
+            0xbb, 0x79, 0xad, 0x80, 0xba,
+        ];
+        assert_eq!(&pkt_key, &expected_client_pkt_key);
+
+        assert!(derive_pkt_iv(aead, &secret, &mut pkt_iv).is_ok());
+        let expected_client_pkt_iv = [
+            0x6b, 0x26, 0x11, 0x4b, 0x9c, 0xba, 0x2b, 0x63, 0xa9, 0xe8, 0xdd,
+            0x4f,
+        ];
+        assert_eq!(&pkt_iv, &expected_client_pkt_iv);
+
+        assert!(derive_hdr_key(aead, &secret, &mut hdr_key).is_ok());
+        let expected_client_hdr_key = [
+            0x9d, 0xdd, 0x12, 0xc9, 0x94, 0xc0, 0x69, 0x8b, 0x89, 0x37, 0x4a,
+            0x9c, 0x07, 0x7a, 0x30, 0x77,
+        ];
+        assert_eq!(&hdr_key, &expected_client_hdr_key);
+
+        // Server.
+        assert!(
+            derive_server_initial_secret(&initial_secret, &mut secret).is_ok()
+        );
+        let expected_server_initial_secret = [
+            0x00, 0x6f, 0x88, 0x13, 0x59, 0x24, 0x4d, 0xd9, 0xad, 0x1a, 0xcf,
+            0x85, 0xf5, 0x95, 0xba, 0xd6, 0x7c, 0x13, 0xf9, 0xf5, 0x58, 0x6f,
+            0x5e, 0x64, 0xe1, 0xac, 0xae, 0x1d, 0x9e, 0xa8, 0xf6, 0x16,
+        ];
+        assert_eq!(&secret, &expected_server_initial_secret);
+
+        assert!(derive_pkt_key(aead, &secret, &mut pkt_key).is_ok());
+        let expected_server_pkt_key = [
+            0x14, 0x9d, 0x0b, 0x16, 0x62, 0xab, 0x87, 0x1f, 0xbe, 0x63, 0xc4,
+            0x9b, 0x5e, 0x65, 0x5a, 0x5d,
+        ];
+        assert_eq!(&pkt_key, &expected_server_pkt_key);
+
+        assert!(derive_pkt_iv(aead, &secret, &mut pkt_iv).is_ok());
+        let expected_server_pkt_iv = [
+            0xba, 0xb2, 0xb1, 0x2a, 0x4c, 0x76, 0x01, 0x6a, 0xce, 0x47, 0x85,
+            0x6d,
+        ];
+        assert_eq!(&pkt_iv, &expected_server_pkt_iv);
+
+        assert!(derive_hdr_key(aead, &secret, &mut hdr_key).is_ok());
+        let expected_server_hdr_key = [
+            0xc0, 0xc4, 0x99, 0xa6, 0x5a, 0x60, 0x02, 0x4a, 0x18, 0xa2, 0x50,
+            0x97, 0x4e, 0xa0, 0x1d, 0xfa,
+        ];
+        assert_eq!(&hdr_key, &expected_server_hdr_key);
+    }
+
+    #[test]
+    fn derive_initial_secrets_old() {
+        let dcid = [0x83, 0x94, 0xc8, 0xf0, 0x3e, 0x51, 0x57, 0x08];
+
+        let mut secret = [0; 32];
+        let mut pkt_key = [0; 16];
+        let mut pkt_iv = [0; 12];
+        let mut hdr_key = [0; 16];
+
+        let aead = Algorithm::AES128_GCM;
+
+        let initial_secret =
+            derive_initial_secret(&dcid, crate::PROTOCOL_VERSION_DRAFT28)
+                .unwrap();
 
         // Client.
         assert!(
@@ -492,4 +615,42 @@
         ];
         assert_eq!(&hdr_key, &expected_server_hdr_key);
     }
+
+    #[test]
+    fn derive_chacha20_secrets() {
+        let secret = [
+            0x9a, 0xc3, 0x12, 0xa7, 0xf8, 0x77, 0x46, 0x8e, 0xbe, 0x69, 0x42,
+            0x27, 0x48, 0xad, 0x00, 0xa1, 0x54, 0x43, 0xf1, 0x82, 0x03, 0xa0,
+            0x7d, 0x60, 0x60, 0xf6, 0x88, 0xf3, 0x0f, 0x21, 0x63, 0x2b,
+        ];
+
+        let aead = Algorithm::ChaCha20_Poly1305;
+
+        let mut pkt_key = [0; 32];
+        let mut pkt_iv = [0; 12];
+        let mut hdr_key = [0; 32];
+
+        assert!(derive_pkt_key(aead, &secret, &mut pkt_key).is_ok());
+        let expected_pkt_key = [
+            0xc6, 0xd9, 0x8f, 0xf3, 0x44, 0x1c, 0x3f, 0xe1, 0xb2, 0x18, 0x20,
+            0x94, 0xf6, 0x9c, 0xaa, 0x2e, 0xd4, 0xb7, 0x16, 0xb6, 0x54, 0x88,
+            0x96, 0x0a, 0x7a, 0x98, 0x49, 0x79, 0xfb, 0x23, 0xe1, 0xc8,
+        ];
+        assert_eq!(&pkt_key, &expected_pkt_key);
+
+        assert!(derive_pkt_iv(aead, &secret, &mut pkt_iv).is_ok());
+        let expected_pkt_iv = [
+            0xe0, 0x45, 0x9b, 0x34, 0x74, 0xbd, 0xd0, 0xe4, 0x4a, 0x41, 0xc1,
+            0x44,
+        ];
+        assert_eq!(&pkt_iv, &expected_pkt_iv);
+
+        assert!(derive_hdr_key(aead, &secret, &mut hdr_key).is_ok());
+        let expected_hdr_key = [
+            0x25, 0xa2, 0x82, 0xb9, 0xe8, 0x2f, 0x06, 0xf2, 0x1f, 0x48, 0x89,
+            0x17, 0xa4, 0xfc, 0x8f, 0x1b, 0x73, 0x57, 0x36, 0x85, 0x60, 0x85,
+            0x97, 0xd0, 0xef, 0xcb, 0x07, 0x6b, 0x0a, 0xb7, 0xa7, 0xa4,
+        ];
+        assert_eq!(&hdr_key, &expected_hdr_key);
+    }
 }
diff --git a/src/dgram.rs b/src/dgram.rs
new file mode 100644
index 0000000..755d95f
--- /dev/null
+++ b/src/dgram.rs
@@ -0,0 +1,105 @@
+// Copyright (C) 2020, Cloudflare, Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright notice,
+//       this list of conditions and the following disclaimer.
+//
+//     * 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 HOLDER 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.
+
+use crate::Error;
+use crate::Result;
+
+use std::collections::VecDeque;
+
+/// Keeps track of DATAGRAM frames.
+#[derive(Default)]
+pub struct DatagramQueue {
+    queue: VecDeque<Vec<u8>>,
+    queue_max_len: usize,
+    queue_bytes_size: usize,
+}
+
+impl DatagramQueue {
+    pub fn new(queue_max_len: usize) -> Self {
+        DatagramQueue {
+            queue: VecDeque::with_capacity(queue_max_len),
+            queue_bytes_size: 0,
+            queue_max_len,
+        }
+    }
+
+    pub fn push(&mut self, data: &[u8]) -> Result<()> {
+        if self.is_full() {
+            return Err(Error::Done);
+        }
+
+        self.queue.push_back(data.to_vec());
+        self.queue_bytes_size += data.len();
+        Ok(())
+    }
+
+    pub fn peek_front_len(&self) -> Option<usize> {
+        self.queue.front().map(|d| d.len())
+    }
+
+    pub fn peek_front_bytes(&self, buf: &mut [u8], len: usize) -> Result<usize> {
+        match self.queue.front() {
+            Some(d) => {
+                let len = std::cmp::min(len, d.len());
+                if buf.len() < len {
+                    return Err(Error::BufferTooShort);
+                }
+
+                buf[..len].copy_from_slice(&d[..len]);
+                Ok(len)
+            },
+
+            None => Err(Error::Done),
+        }
+    }
+
+    pub fn pop(&mut self) -> Option<Vec<u8>> {
+        if let Some(d) = self.queue.pop_front() {
+            self.queue_bytes_size = self.queue_bytes_size.saturating_sub(d.len());
+            return Some(d);
+        }
+
+        None
+    }
+
+    pub fn has_pending(&self) -> bool {
+        !self.queue.is_empty()
+    }
+
+    pub fn purge<F: Fn(&[u8]) -> bool>(&mut self, f: F) {
+        self.queue.retain(|d| !f(d));
+        self.queue_bytes_size =
+            self.queue.iter().fold(0, |total, d| total + d.len());
+    }
+
+    pub fn is_full(&self) -> bool {
+        self.queue.len() == self.queue_max_len
+    }
+
+    pub fn byte_size(&self) -> usize {
+        self.queue_bytes_size
+    }
+}
diff --git a/src/ffi.rs b/src/ffi.rs
index 981ebab..a3815a9 100644
--- a/src/ffi.rs
+++ b/src/ffi.rs
@@ -29,7 +29,7 @@
 use std::slice;
 use std::sync::atomic;
 
-#[cfg(all(unix, feature = "qlog"))]
+#[cfg(unix)]
 use std::os::unix::io::FromRawFd;
 
 use libc::c_char;
@@ -154,8 +154,10 @@
 }
 
 #[no_mangle]
-pub extern fn quiche_config_set_max_packet_size(config: &mut Config, v: u64) {
-    config.set_max_packet_size(v);
+pub extern fn quiche_config_set_max_udp_payload_size(
+    config: &mut Config, v: u64,
+) {
+    config.set_max_udp_payload_size(v);
 }
 
 #[no_mangle]
@@ -235,60 +237,19 @@
 }
 
 #[no_mangle]
-#[cfg(feature = "qlog")]
-pub extern fn quiche_conn_set_qlog_path(
-    conn: &mut Connection, path: *const c_char, log_title: *const c_char,
-    log_desc: *const c_char,
-) -> bool {
-    let filename = unsafe { ffi::CStr::from_ptr(path).to_str().unwrap() };
-
-    let file_res = std::fs::OpenOptions::new()
-        .write(true)
-        .create_new(true)
-        .open(filename);
-
-    let writer = match file_res {
-        Ok(f) => std::io::BufWriter::new(f),
-        Err(_) => return false,
-    };
-
-    let title = unsafe { ffi::CStr::from_ptr(log_title).to_str().unwrap() };
-    let description = unsafe { ffi::CStr::from_ptr(log_desc).to_str().unwrap() };
-
-    conn.set_qlog(
-        std::boxed::Box::new(writer),
-        title.to_string(),
-        format!("{} id={}", description, conn.trace_id),
-    );
-
-    true
-}
-
-#[no_mangle]
-#[cfg(all(unix, feature = "qlog"))]
-pub extern fn quiche_conn_set_qlog_fd(
-    conn: &mut Connection, fd: c_int, log_title: *const c_char,
-    log_desc: *const c_char,
-) {
-    let f = unsafe { std::fs::File::from_raw_fd(fd) };
-    let writer = std::io::BufWriter::new(f);
-
-    let title = unsafe { ffi::CStr::from_ptr(log_title).to_str().unwrap() };
-    let description = unsafe { ffi::CStr::from_ptr(log_desc).to_str().unwrap() };
-
-    conn.set_qlog(
-        std::boxed::Box::new(writer),
-        title.to_string(),
-        format!("{} id={}", description, conn.trace_id),
-    );
-}
-
-#[no_mangle]
 pub extern fn quiche_config_enable_hystart(config: &mut Config, v: bool) {
     config.enable_hystart(v);
 }
 
 #[no_mangle]
+pub extern fn quiche_config_enable_dgram(
+    config: &mut Config, enabled: bool, recv_queue_len: size_t,
+    send_queue_len: size_t,
+) {
+    config.enable_dgram(enabled, recv_queue_len, send_queue_len);
+}
+
+#[no_mangle]
 pub extern fn quiche_config_free(config: *mut Config) {
     unsafe { Box::from_raw(config) };
 }
@@ -423,7 +384,7 @@
 pub extern fn quiche_retry(
     scid: *const u8, scid_len: size_t, dcid: *const u8, dcid_len: size_t,
     new_scid: *const u8, new_scid_len: size_t, token: *const u8,
-    token_len: size_t, out: *mut u8, out_len: size_t,
+    token_len: size_t, version: u32, out: *mut u8, out_len: size_t,
 ) -> ssize_t {
     let scid = unsafe { slice::from_raw_parts(scid, scid_len) };
     let dcid = unsafe { slice::from_raw_parts(dcid, dcid_len) };
@@ -431,7 +392,7 @@
     let token = unsafe { slice::from_raw_parts(token, token_len) };
     let out = unsafe { slice::from_raw_parts_mut(out, out_len) };
 
-    match retry(scid, dcid, new_scid, token, out) {
+    match retry(scid, dcid, new_scid, token, version, out) {
         Ok(v) => v as ssize_t,
 
         Err(e) => e.to_c(),
@@ -461,6 +422,87 @@
 }
 
 #[no_mangle]
+pub extern fn quiche_conn_set_keylog_path(
+    conn: &mut Connection, path: *const c_char,
+) -> bool {
+    let filename = unsafe { ffi::CStr::from_ptr(path).to_str().unwrap() };
+
+    let file = std::fs::OpenOptions::new()
+        .create(true)
+        .append(true)
+        .open(filename);
+
+    let writer = match file {
+        Ok(f) => std::io::BufWriter::new(f),
+
+        Err(_) => return false,
+    };
+
+    conn.set_keylog(Box::new(writer));
+
+    true
+}
+
+#[no_mangle]
+#[cfg(unix)]
+pub extern fn quiche_conn_set_keylog_fd(conn: &mut Connection, fd: c_int) {
+    let f = unsafe { std::fs::File::from_raw_fd(fd) };
+    let writer = std::io::BufWriter::new(f);
+
+    conn.set_keylog(Box::new(writer));
+}
+
+#[no_mangle]
+#[cfg(feature = "qlog")]
+pub extern fn quiche_conn_set_qlog_path(
+    conn: &mut Connection, path: *const c_char, log_title: *const c_char,
+    log_desc: *const c_char,
+) -> bool {
+    let filename = unsafe { ffi::CStr::from_ptr(path).to_str().unwrap() };
+
+    let file = std::fs::OpenOptions::new()
+        .write(true)
+        .create_new(true)
+        .open(filename);
+
+    let writer = match file {
+        Ok(f) => std::io::BufWriter::new(f),
+
+        Err(_) => return false,
+    };
+
+    let title = unsafe { ffi::CStr::from_ptr(log_title).to_str().unwrap() };
+    let description = unsafe { ffi::CStr::from_ptr(log_desc).to_str().unwrap() };
+
+    conn.set_qlog(
+        Box::new(writer),
+        title.to_string(),
+        format!("{} id={}", description, conn.trace_id),
+    );
+
+    true
+}
+
+#[no_mangle]
+#[cfg(all(unix, feature = "qlog"))]
+pub extern fn quiche_conn_set_qlog_fd(
+    conn: &mut Connection, fd: c_int, log_title: *const c_char,
+    log_desc: *const c_char,
+) {
+    let f = unsafe { std::fs::File::from_raw_fd(fd) };
+    let writer = std::io::BufWriter::new(f);
+
+    let title = unsafe { ffi::CStr::from_ptr(log_title).to_str().unwrap() };
+    let description = unsafe { ffi::CStr::from_ptr(log_desc).to_str().unwrap() };
+
+    conn.set_qlog(
+        Box::new(writer),
+        title.to_string(),
+        format!("{} id={}", description, conn.trace_id),
+    );
+}
+
+#[no_mangle]
 pub extern fn quiche_conn_recv(
     conn: &mut Connection, buf: *mut u8, buf_len: size_t,
 ) -> ssize_t {
@@ -700,6 +742,63 @@
 }
 
 #[no_mangle]
+pub extern fn quiche_conn_dgram_max_writable_len(conn: &Connection) -> ssize_t {
+    match conn.dgram_max_writable_len() {
+        None => Error::Done.to_c(),
+
+        Some(v) => v as ssize_t,
+    }
+}
+
+#[no_mangle]
+pub extern fn quiche_conn_dgram_send(
+    conn: &mut Connection, buf: *const u8, buf_len: size_t,
+) -> ssize_t {
+    if buf_len > <ssize_t>::max_value() as usize {
+        panic!("The provided buffer is too large");
+    }
+
+    let buf = unsafe { slice::from_raw_parts(buf, buf_len) };
+
+    match conn.dgram_send(buf) {
+        Ok(_) => buf_len as ssize_t,
+
+        Err(e) => e.to_c(),
+    }
+}
+
+#[no_mangle]
+pub extern fn quiche_conn_dgram_recv(
+    conn: &mut Connection, out: *mut u8, out_len: size_t,
+) -> ssize_t {
+    if out_len > <ssize_t>::max_value() as usize {
+        panic!("The provided buffer is too large");
+    }
+
+    let out = unsafe { slice::from_raw_parts_mut(out, out_len) };
+
+    let out_len = match conn.dgram_recv(out) {
+        Ok(v) => v,
+
+        Err(e) => return e.to_c(),
+    };
+
+    out_len as ssize_t
+}
+
+#[no_mangle]
+pub extern fn quiche_conn_dgram_purge_outgoing(
+    conn: &mut Connection, f: extern fn(*const u8, size_t) -> bool,
+) {
+    conn.dgram_purge_outgoing(|d: &[u8]| -> bool {
+        let ptr: *const u8 = d.as_ptr();
+        let len: size_t = d.len();
+
+        f(ptr, len)
+    });
+}
+
+#[no_mangle]
 pub extern fn quiche_conn_free(conn: *mut Connection) {
     unsafe { Box::from_raw(conn) };
 }
diff --git a/src/frame.rs b/src/frame.rs
index 1c32b51..b191a42 100644
--- a/src/frame.rs
+++ b/src/frame.rs
@@ -33,6 +33,7 @@
 use crate::stream;
 
 pub const MAX_CRYPTO_OVERHEAD: usize = 8;
+pub const MAX_DGRAM_OVERHEAD: usize = 2;
 pub const MAX_STREAM_OVERHEAD: usize = 12;
 pub const MAX_STREAM_SIZE: u64 = 1 << 62;
 
@@ -138,6 +139,10 @@
     },
 
     HandshakeDone,
+
+    Datagram {
+        data: Vec<u8>,
+    },
 }
 
 impl Frame {
@@ -256,6 +261,8 @@
 
             0x1e => Frame::HandshakeDone,
 
+            0x30 | 0x31 => parse_datagram_frame(frame_type, b)?,
+
             _ => return Err(Error::InvalidFrame),
         };
 
@@ -503,6 +510,18 @@
             Frame::HandshakeDone => {
                 b.put_varint(0x1e)?;
             },
+
+            Frame::Datagram { data } => {
+                let mut ty: u8 = 0x30;
+
+                // Always encode length
+                ty |= 0x01;
+
+                b.put_varint(u64::from(ty))?;
+
+                b.put_varint(data.len() as u64)?;
+                b.put_bytes(data.as_ref())?;
+            },
         }
 
         Ok(before - b.cap())
@@ -676,17 +695,26 @@
             Frame::HandshakeDone => {
                 1 // frame type
             },
+
+            Frame::Datagram { data } => {
+                1 + // frame type
+                octets::varint_len(data.len() as u64) + // length
+                data.len() // data
+            },
         }
     }
 
     pub fn ack_eliciting(&self) -> bool {
-        match self {
-            Frame::Padding { .. } |
+        // Any other frame is ack-eliciting (note the `!`).
+        !matches!(self, Frame::Padding { .. } |
             Frame::ACK { .. } |
             Frame::ApplicationClose { .. } |
-            Frame::ConnectionClose { .. } => false,
+            Frame::ConnectionClose { .. })
+    }
 
-            _ => true,
+    pub fn shrink_for_retransmission(&mut self) {
+        if let Frame::Datagram { data } = self {
+            *data = Vec::new();
         }
     }
 
@@ -835,6 +863,8 @@
                 ),
 
             Frame::HandshakeDone => qlog::QuicFrame::handshake_done(),
+
+            Frame::Datagram { .. } => qlog::QuicFrame::unknown(0x30),
         }
     }
 }
@@ -971,6 +1001,10 @@
             Frame::HandshakeDone => {
                 write!(f, "HANDSHAKE_DONE")?;
             },
+
+            Frame::Datagram { data } => {
+                write!(f, "DATAGRAM len={}", data.len(),)?;
+            },
         }
 
         Ok(())
@@ -1046,6 +1080,22 @@
     Ok(Frame::Stream { stream_id, data })
 }
 
+fn parse_datagram_frame(ty: u64, b: &mut octets::Octets) -> Result<Frame> {
+    let first = ty as u8;
+
+    let len = if first & 0x01 != 0 {
+        b.get_varint()? as usize
+    } else {
+        b.cap()
+    };
+
+    let data = b.get_bytes(len)?;
+
+    Ok(Frame::Datagram {
+        data: Vec::from(data.buf()),
+    })
+}
+
 #[cfg(test)]
 mod tests {
     use super::*;
@@ -1722,4 +1772,53 @@
         let mut b = octets::Octets::with_slice(&d);
         assert!(Frame::from_bytes(&mut b, packet::Type::Handshake).is_err());
     }
+
+    #[test]
+    fn datagram() {
+        let mut d = [42; 128];
+
+        let data = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
+
+        let mut frame = Frame::Datagram { data: data.clone() };
+
+        let wire_len = {
+            let mut b = octets::OctetsMut::with_slice(&mut d);
+            frame.to_bytes(&mut b).unwrap()
+        };
+
+        assert_eq!(wire_len, 14);
+
+        let mut b = octets::Octets::with_slice(&mut d);
+        assert_eq!(
+            Frame::from_bytes(&mut b, packet::Type::Short),
+            Ok(frame.clone())
+        );
+
+        let mut b = octets::Octets::with_slice(&mut d);
+        assert!(Frame::from_bytes(&mut b, packet::Type::Initial).is_err());
+
+        let mut b = octets::Octets::with_slice(&mut d);
+        assert!(Frame::from_bytes(&mut b, packet::Type::ZeroRTT).is_ok());
+
+        let mut b = octets::Octets::with_slice(&mut d);
+        assert!(Frame::from_bytes(&mut b, packet::Type::Handshake).is_err());
+
+        let frame_data = match &frame {
+            Frame::Datagram { data } => data.clone(),
+
+            _ => unreachable!(),
+        };
+
+        assert_eq!(frame_data, data);
+
+        frame.shrink_for_retransmission();
+
+        let frame_data = match &frame {
+            Frame::Datagram { data } => data.clone(),
+
+            _ => unreachable!(),
+        };
+
+        assert_eq!(frame_data.len(), 0);
+    }
 }
diff --git a/src/h3/ffi.rs b/src/h3/ffi.rs
index 50ffb1d..2d278c7 100644
--- a/src/h3/ffi.rs
+++ b/src/h3/ffi.rs
@@ -24,10 +24,12 @@
 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+use std::ffi;
 use std::ptr;
 use std::slice;
 use std::str;
 
+use libc::c_char;
 use libc::c_int;
 use libc::c_void;
 use libc::size_t;
@@ -35,6 +37,8 @@
 
 use crate::*;
 
+use crate::h3::NameValue;
+
 #[no_mangle]
 pub extern fn quiche_h3_config_new() -> *mut h3::Config {
     match h3::Config::new() {
@@ -87,12 +91,12 @@
     ev: *mut *const h3::Event,
 ) -> i64 {
     match conn.poll(quic_conn) {
-        Ok((stream_id, v)) => {
+        Ok((id, v)) => {
             unsafe {
                 *ev = Box::into_raw(Box::new(v));
             }
 
-            stream_id as i64
+            id as i64
         },
 
         Err(e) => e.to_c() as i64,
@@ -107,13 +111,17 @@
         h3::Event::Data { .. } => 1,
 
         h3::Event::Finished { .. } => 2,
+
+        h3::Event::Datagram { .. } => 3,
+
+        h3::Event::GoAway { .. } => 4,
     }
 }
 
 #[no_mangle]
 pub extern fn quiche_h3_event_for_each_header(
     ev: &h3::Event,
-    cb: fn(
+    cb: extern fn(
         name: *const u8,
         name_len: size_t,
 
@@ -198,6 +206,28 @@
 }
 
 #[no_mangle]
+pub extern fn quiche_h3_send_response_with_priority(
+    conn: &mut h3::Connection, quic_conn: &mut Connection, stream_id: u64,
+    headers: *const Header, headers_len: size_t, priority: *const c_char,
+    fin: bool,
+) -> c_int {
+    let resp_headers = headers_from_ptr(headers, headers_len);
+    let priority = unsafe { ffi::CStr::from_ptr(priority).to_str().unwrap() };
+
+    match conn.send_response_with_priority(
+        quic_conn,
+        stream_id,
+        &resp_headers,
+        &priority,
+        fin,
+    ) {
+        Ok(_) => 0,
+
+        Err(e) => e.to_c() as c_int,
+    }
+}
+
+#[no_mangle]
 pub extern fn quiche_h3_send_body(
     conn: &mut h3::Connection, quic_conn: &mut Connection, stream_id: u64,
     body: *const u8, body_len: size_t, fin: bool,
@@ -234,11 +264,53 @@
 }
 
 #[no_mangle]
+pub extern fn quiche_h3_send_dgram(
+    conn: &mut h3::Connection, quic_conn: &mut Connection, flow_id: u64,
+    data: *const u8, data_len: size_t,
+) -> c_int {
+    if data_len > <ssize_t>::max_value() as usize {
+        panic!("The provided buffer is too large");
+    }
+
+    let data = unsafe { slice::from_raw_parts(data, data_len) };
+
+    match conn.send_dgram(quic_conn, flow_id, data) {
+        Ok(_) => 0,
+
+        Err(e) => e.to_c() as c_int,
+    }
+}
+
+#[no_mangle]
+pub extern fn quiche_h3_recv_dgram(
+    conn: &mut h3::Connection, quic_conn: &mut Connection, flow_id: *mut u64,
+    flow_id_len: *mut usize, out: *mut u8, out_len: size_t,
+) -> ssize_t {
+    if out_len > <ssize_t>::max_value() as usize {
+        panic!("The provided buffer is too large");
+    }
+
+    let out = unsafe { slice::from_raw_parts_mut(out, out_len) };
+
+    match conn.recv_dgram(quic_conn, out) {
+        Ok((len, id, id_len)) => {
+            unsafe { *flow_id = id };
+            unsafe { *flow_id_len = id_len };
+            len as ssize_t
+        },
+
+        Err(e) => e.to_c(),
+    }
+}
+
+#[no_mangle]
 pub extern fn quiche_h3_conn_free(conn: *mut h3::Connection) {
     unsafe { Box::from_raw(conn) };
 }
 
-fn headers_from_ptr(ptr: *const Header, len: size_t) -> Vec<h3::Header> {
+fn headers_from_ptr<'a>(
+    ptr: *const Header, len: size_t,
+) -> Vec<h3::HeaderRef<'a>> {
     let headers = unsafe { slice::from_raw_parts(ptr, len) };
 
     let mut out = Vec::new();
@@ -255,7 +327,7 @@
                 str::from_utf8_unchecked(slice)
             };
 
-            h3::Header::new(name, value)
+            h3::HeaderRef::new(name, value)
         });
     }
 
diff --git a/src/h3/frame.rs b/src/h3/frame.rs
index 699bc8d..bee2b3b 100644
--- a/src/h3/frame.rs
+++ b/src/h3/frame.rs
@@ -67,7 +67,7 @@
     },
 
     GoAway {
-        stream_id: u64,
+        id: u64,
     },
 
     MaxPushId {
@@ -104,7 +104,7 @@
                 parse_push_promise(payload_length, &mut b)?,
 
             GOAWAY_FRAME_TYPE_ID => Frame::GoAway {
-                stream_id: b.get_varint()?,
+                id: b.get_varint()?,
             },
 
             MAX_PUSH_FRAME_TYPE_ID => Frame::MaxPushId {
@@ -206,11 +206,11 @@
                 b.put_bytes(header_block.as_ref())?;
             },
 
-            Frame::GoAway { stream_id } => {
+            Frame::GoAway { id } => {
                 b.put_varint(GOAWAY_FRAME_TYPE_ID)?;
-                b.put_varint(octets::varint_len(*stream_id) as u64)?;
+                b.put_varint(octets::varint_len(*id) as u64)?;
 
-                b.put_varint(*stream_id)?;
+                b.put_varint(*id)?;
             },
 
             Frame::MaxPushId { push_id } => {
@@ -263,8 +263,8 @@
                 )?;
             },
 
-            Frame::GoAway { stream_id } => {
-                write!(f, "GOAWAY stream_id={}", stream_id)?;
+            Frame::GoAway { id } => {
+                write!(f, "GOAWAY id={}", id)?;
             },
 
             Frame::MaxPushId { push_id } => {
@@ -588,7 +588,7 @@
     fn goaway() {
         let mut d = [42; 128];
 
-        let frame = Frame::GoAway { stream_id: 32 };
+        let frame = Frame::GoAway { id: 32 };
 
         let frame_payload_len = 1;
         let frame_header_len = 2;
diff --git a/src/h3/mod.rs b/src/h3/mod.rs
index 17c8b12..6248688 100644
--- a/src/h3/mod.rs
+++ b/src/h3/mod.rs
@@ -122,6 +122,8 @@
 //! [`send_response()`] and [`send_body()`]:
 //!
 //! ```no_run
+//! use quiche::h3::NameValue;
+//!
 //! # let mut config = quiche::Config::new(quiche::PROTOCOL_VERSION).unwrap();
 //! # let scid = [0xba; 16];
 //! # let mut conn = quiche::accept(&scid, None, &mut config).unwrap();
@@ -156,7 +158,13 @@
 //!
 //!         Ok((stream_id, quiche::h3::Event::Finished)) => {
 //!             // Peer terminated stream, handle it.
-//!         }
+//!         },
+//!
+//!         Ok((_flow_id, quiche::h3::Event::Datagram)) => (),
+//!
+//!         Ok((goaway_id, quiche::h3::Event::GoAway)) => {
+//!              // Peer signalled it is going away, handle it.
+//!         },
 //!
 //!         Err(quiche::h3::Error::Done) => {
 //!             // Done reading.
@@ -175,6 +183,8 @@
 //! An HTTP/3 client uses [`poll()`] to read responses:
 //!
 //! ```no_run
+//! use quiche::h3::NameValue;
+//!
 //! # let mut config = quiche::Config::new(quiche::PROTOCOL_VERSION).unwrap();
 //! # let scid = [0xba; 16];
 //! # let mut conn = quiche::connect(None, &scid, &mut config).unwrap();
@@ -201,7 +211,13 @@
 //!
 //!         Ok((stream_id, quiche::h3::Event::Finished)) => {
 //!             // Peer terminated stream, handle it.
-//!         }
+//!         },
+//!
+//!         Ok((_flow_id, quiche::h3::Event::Datagram)) => (),
+//!
+//!         Ok((goaway_id, quiche::h3::Event::GoAway)) => {
+//!              // Peer signalled it is going away, handle it.
+//!         },
 //!
 //!         Err(quiche::h3::Error::Done) => {
 //!             // Done reading.
@@ -258,7 +274,10 @@
 ///
 /// [`Config::set_application_protos()`]:
 /// ../struct.Config.html#method.set_application_protos
-pub const APPLICATION_PROTOCOL: &[u8] = b"\x05h3-27";
+pub const APPLICATION_PROTOCOL: &[u8] = b"\x05h3-29\x05h3-28\x05h3-27";
+
+// The offset used when converting HTTP/3 urgency to quiche urgency.
+const PRIORITY_URGENCY_OFFSET: u8 = 124;
 
 /// A specialized [`Result`] type for quiche HTTP/3 operations.
 ///
@@ -421,30 +440,59 @@
     }
 }
 
-/// A name-value pair representing a raw HTTP header.
+/// A trait for types with associated string name and value.
+pub trait NameValue {
+    /// Returns the object's name.
+    fn name(&self) -> &str;
+
+    /// Returns the object's value.
+    fn value(&self) -> &str;
+}
+
+/// An owned name-value pair representing a raw HTTP header.
 #[derive(Clone, Debug, PartialEq)]
 pub struct Header(String, String);
 
 impl Header {
     /// Creates a new header.
     ///
-    /// Both `name` and `value` will be cloned, and `name` will also be
-    /// converted into lower-case.
-    pub fn new(name: &str, value: &str) -> Header {
-        Header(name.to_lowercase(), String::from(value))
+    /// Both `name` and `value` will be cloned.
+    pub fn new(name: &str, value: &str) -> Self {
+        Self(String::from(name), String::from(value))
     }
+}
 
-    /// Returns the header's name.
-    pub fn name(&self) -> &str {
+impl NameValue for Header {
+    fn name(&self) -> &str {
         &self.0
     }
 
-    /// Returns the header's value.
-    pub fn value(&self) -> &str {
+    fn value(&self) -> &str {
         &self.1
     }
 }
 
+/// A non-owned name-value pair representing a raw HTTP header.
+#[derive(Clone, Debug, PartialEq)]
+pub struct HeaderRef<'a>(&'a str, &'a str);
+
+impl<'a> HeaderRef<'a> {
+    /// Creates a new header.
+    pub fn new(name: &'a str, value: &'a str) -> Self {
+        Self(name, value)
+    }
+}
+
+impl<'a> NameValue for HeaderRef<'a> {
+    fn name(&self) -> &str {
+        self.0
+    }
+
+    fn value(&self) -> &str {
+        self.1
+    }
+}
+
 /// An HTTP/3 connection event.
 #[derive(Clone, Debug, PartialEq)]
 pub enum Event {
@@ -471,6 +519,12 @@
 
     /// Stream was closed,
     Finished,
+
+    /// DATAGRAM was received.
+    Datagram,
+
+    /// GOAWAY was received.
+    GoAway,
 }
 
 struct ConnectionSettings {
@@ -510,6 +564,9 @@
     finished_streams: VecDeque<u64>,
 
     frames_greased: bool,
+
+    local_goaway_id: Option<u64>,
+    peer_goaway_id: Option<u64>,
 }
 
 impl Connection {
@@ -558,6 +615,9 @@
             finished_streams: VecDeque::new(),
 
             frames_greased: false,
+
+            local_goaway_id: None,
+            peer_goaway_id: None,
         })
     }
 
@@ -588,8 +648,10 @@
 
     /// Sends an HTTP/3 request.
     ///
-    /// The request is encoded from the provided list of headers, and sent on
-    /// a newly allocated stream.
+    /// The request is encoded from the provided list of headers without a
+    /// body, and sent on a newly allocated stream. To include a body,
+    /// set `fin` as `false` and subsequently call [`send_body()`] with the
+    /// same `conn` and the `stream_id` returned from this method.
     ///
     /// On success the newly allocated stream ID is returned.
     ///
@@ -598,10 +660,17 @@
     /// happens the application should retry the operation once the stream is
     /// reported as writable again.
     ///
+    /// [`send_body()`]: struct.Connection.html#method.send_body
     /// [`StreamBlocked`]: enum.Error.html#variant.StreamBlocked
-    pub fn send_request(
-        &mut self, conn: &mut super::Connection, headers: &[Header], fin: bool,
+    pub fn send_request<T: NameValue>(
+        &mut self, conn: &mut super::Connection, headers: &[T], fin: bool,
     ) -> Result<u64> {
+        // If we received a GOAWAY from the peer, MUST NOT initiate new
+        // requests.
+        if self.peer_goaway_id.is_some() {
+            return Err(Error::FrameUnexpected);
+        }
+
         let stream_id = self.next_request_stream_id;
 
         self.streams
@@ -625,7 +694,34 @@
         Ok(stream_id)
     }
 
-    /// Sends an HTTP/3 response on the specified stream.
+    /// Sends an HTTP/3 response on the specified stream with default priority.
+    ///
+    /// This method sends the provided `headers` without a body. To include a
+    /// body, set `fin` as `false` and subsequently call [`send_body()`] with
+    /// the same `conn` and `stream_id`.
+    ///
+    /// The [`StreamBlocked`] error is returned when the underlying QUIC stream
+    /// doesn't have enough capacity for the operation to complete. When this
+    /// happens the application should retry the operation once the stream is
+    /// reported as writable again.
+    ///
+    /// [`send_body()`]: struct.Connection.html#method.send_body
+    /// [`StreamBlocked`]: enum.Error.html#variant.StreamBlocked
+    pub fn send_response<T: NameValue>(
+        &mut self, conn: &mut super::Connection, stream_id: u64, headers: &[T],
+        fin: bool,
+    ) -> Result<()> {
+        let priority = "u=3";
+
+        self.send_response_with_priority(
+            conn, stream_id, headers, priority, fin,
+        )?;
+
+        Ok(())
+    }
+
+    /// Sends an HTTP/3 response on the specified stream with specified
+    /// priority.
     ///
     /// The [`StreamBlocked`] error is returned when the underlying QUIC stream
     /// doesn't have enough capacity for the operation to complete. When this
@@ -633,16 +729,56 @@
     /// reported as writable again.
     ///
     /// [`StreamBlocked`]: enum.Error.html#variant.StreamBlocked
-    pub fn send_response(
-        &mut self, conn: &mut super::Connection, stream_id: u64,
-        headers: &[Header], fin: bool,
+    pub fn send_response_with_priority<T: NameValue>(
+        &mut self, conn: &mut super::Connection, stream_id: u64, headers: &[T],
+        priority: &str, fin: bool,
     ) -> Result<()> {
+        if !self.streams.contains_key(&stream_id) {
+            return Err(Error::FrameUnexpected);
+        }
+
+        let mut urgency = 3;
+        let mut incremental = false;
+
+        for param in priority.split(',') {
+            if param.trim() == "i" {
+                incremental = true;
+                continue;
+            }
+
+            if param.trim().starts_with("u=") {
+                // u is an sh-integer (an i64) but it has a constrained range of
+                // 0-7. So detect anything outside that range and clamp it to
+                // the lowest urgency in order to avoid it interfering with
+                // valid items.
+                //
+                // TODO: this also detects when u is not an sh-integer and
+                // clamps it in the same way. A real structured header parser
+                // would actually fail to parse.
+                let mut u =
+                    i64::from_str_radix(param.rsplit('=').next().unwrap(), 10)
+                        .unwrap_or(7);
+
+                if u < 0 || u > 7 {
+                    u = 7;
+                }
+
+                // The HTTP/3 urgency needs to be shifted into the quiche
+                // urgency range.
+                urgency = (u as u8).saturating_add(PRIORITY_URGENCY_OFFSET);
+            }
+        }
+
+        conn.stream_priority(stream_id, urgency, incremental)?;
+
         self.send_headers(conn, stream_id, headers, fin)?;
 
         Ok(())
     }
 
-    fn encode_header_block(&mut self, headers: &[Header]) -> Result<Vec<u8>> {
+    fn encode_header_block<T: NameValue>(
+        &mut self, headers: &[T],
+    ) -> Result<Vec<u8>> {
         let headers_len = headers
             .iter()
             .fold(0, |acc, h| acc + h.value().len() + h.name().len() + 32);
@@ -658,9 +794,9 @@
         Ok(header_block)
     }
 
-    fn send_headers(
-        &mut self, conn: &mut super::Connection, stream_id: u64,
-        headers: &[Header], fin: bool,
+    fn send_headers<T: NameValue>(
+        &mut self, conn: &mut super::Connection, stream_id: u64, headers: &[T],
+        fin: bool,
     ) -> Result<()> {
         let mut d = [42; 10];
         let mut b = octets::OctetsMut::with_slice(&mut d);
@@ -743,7 +879,7 @@
             None => {
                 return Err(Error::FrameUnexpected);
             },
-        }
+        };
 
         let overhead = octets::varint_len(frame::DATA_FRAME_TYPE_ID) +
             octets::varint_len(body.len() as u64);
@@ -788,6 +924,59 @@
         Ok(written)
     }
 
+    /// Sends an HTTP/3 DATAGRAM with the specified flow ID.
+    pub fn send_dgram(
+        &mut self, conn: &mut super::Connection, flow_id: u64, buf: &[u8],
+    ) -> Result<()> {
+        let len = octets::varint_len(flow_id) + buf.len();
+        let mut d = vec![0; len as usize];
+        let mut b = octets::OctetsMut::with_slice(&mut d);
+
+        b.put_varint(flow_id)?;
+        b.put_bytes(buf)?;
+
+        conn.dgram_send(&d)?;
+
+        Ok(())
+    }
+
+    /// Reads a DATAGRAM into the provided buffer.
+    ///
+    /// Applications should call this method whenever the [`poll()`] method
+    /// returns a [`Datagram`] event.
+    ///
+    /// On success the DATAGRAM data is returned, with length and Flow ID and
+    /// length of the Flow ID.
+    ///
+    /// [`Done`] is returned if there is no data to read.
+    ///
+    /// [`BufferTooShort`] is returned if the provided buffer is too small for
+    /// the data.
+    ///
+    /// [`poll()`]: struct.Connection.html#method.poll
+    /// [`Datagram`]: enum.Event.html#variant.Datagram
+    /// [`Done`]: enum.Error.html#variant.Done
+    /// [`BufferTooShort`]: enum.Error.html#variant.BufferTooShort
+    pub fn recv_dgram(
+        &mut self, conn: &mut super::Connection, buf: &mut [u8],
+    ) -> Result<(usize, u64, usize)> {
+        let len = conn.dgram_recv(buf)?;
+        let mut b = octets::Octets::with_slice(buf);
+        let flow_id = b.get_varint()?;
+        Ok((len, flow_id, b.off()))
+    }
+
+    /// Returns the maximum HTTP/3 DATAGRAM payload that can be sent.
+    pub fn dgram_max_writable_len(
+        &self, conn: &super::Connection, flow_id: u64,
+    ) -> Option<usize> {
+        let flow_id_len = octets::varint_len(flow_id);
+        match conn.dgram_max_writable_len() {
+            None => None,
+            Some(len) => len.checked_sub(flow_id_len),
+        }
+    }
+
     /// Reads request or response body data into the provided buffer.
     ///
     /// Applications should call this method whenever the [`poll()`] method
@@ -821,15 +1010,31 @@
 
     /// Processes HTTP/3 data received from the peer.
     ///
-    /// On success it returns an [`Event`] as well as the event's source stream
-    /// ID. The stream ID can be used when calling [`send_response()`] and
-    /// [`send_body()`] when responding to incoming requests. On error the
-    /// connection will be closed by calling [`close()`] with the appropriate
-    /// error code.
+    /// On success it returns an [`Event`] and an ID.
+    ///
+    /// The events [`Headers`], [`Data`] and [`Finished`] return a stream ID,
+    /// which is used in methods [`recv_body()`], [`send_response()`] or
+    /// [`send_body()`].
+    ///
+    /// The event [`Datagram`] returns a flow ID.
+    ///
+    /// The event [`GoAway`] returns an ID that depends on the connection role.
+    /// A client receives the largest processed stream ID. A server receives the
+    /// the largest permitted push ID.
+    ///
+    /// If an error occurs while processing data, the connection is closed with
+    /// the appropriate error code, using the transport's [`close()`] method.
     ///
     /// [`Event`]: enum.Event.html
+    /// [`Headers`]: enum.Event.html#variant.Headers
+    /// [`Data`]: enum.Event.html#variant.Data
+    /// [`Finished`]: enum.Event.html#variant.Finished
+    /// [`Datagram`]: enum.Event.html#variant.Datagram
+    /// [`GoAway`]: enum.Event.html#variant.GoAWay
+    /// [`recv_body()`]: struct.Connection.html#method.recv_body
     /// [`send_response()`]: struct.Connection.html#method.send_response
     /// [`send_body()`]: struct.Connection.html#method.send_body
+    /// [`recv_dgram()`]: struct.Connection.html#method.recv_dgram
     /// [`close()`]: ../struct.Connection.html#method.close
     pub fn poll(&mut self, conn: &mut super::Connection) -> Result<(u64, Event)> {
         // When connection close is initiated by the local application (e.g. due
@@ -841,15 +1046,33 @@
 
         // Process control streams first.
         if let Some(stream_id) = self.peer_control_stream_id {
-            self.process_control_stream(conn, stream_id)?;
+            match self.process_control_stream(conn, stream_id) {
+                Ok(ev) => return Ok(ev),
+
+                Err(Error::Done) => (),
+
+                Err(e) => return Err(e),
+            };
         }
 
         if let Some(stream_id) = self.peer_qpack_streams.encoder_stream_id {
-            self.process_control_stream(conn, stream_id)?;
+            match self.process_control_stream(conn, stream_id) {
+                Ok(ev) => return Ok(ev),
+
+                Err(Error::Done) => (),
+
+                Err(e) => return Err(e),
+            };
         }
 
         if let Some(stream_id) = self.peer_qpack_streams.decoder_stream_id {
-            self.process_control_stream(conn, stream_id)?;
+            match self.process_control_stream(conn, stream_id) {
+                Ok(ev) => return Ok(ev),
+
+                Err(Error::Done) => (),
+
+                Err(e) => return Err(e),
+            };
         }
 
         // Process finished streams list.
@@ -857,6 +1080,21 @@
             return Ok((finished, Event::Finished));
         }
 
+        // Process DATAGRAMs
+        let mut d = [0; 8];
+
+        match conn.dgram_recv_peek(&mut d, 8) {
+            Ok(_) => {
+                let mut b = octets::Octets::with_slice(&d);
+                let flow_id = b.get_varint()?;
+                return Ok((flow_id, Event::Datagram));
+            },
+
+            Err(crate::Error::Done) => (),
+
+            Err(e) => return Err(Error::TransportError(e)),
+        };
+
         // Process HTTP/3 data from readable streams.
         for s in conn.readable() {
             trace!("{} stream id {} is readable", conn.trace_id(), s);
@@ -883,6 +1121,59 @@
         Err(Error::Done)
     }
 
+    /// Sends a GOAWAY frame to initiate graceful connection closure.
+    ///
+    /// When quiche is used in the server role, the `id` parameter is the stream
+    /// ID of the highest processed request. This can be any valid ID between 0
+    /// and 2^62-4. However, the ID cannot be increased. Failure to satisfy
+    /// these conditions will return an error.
+    ///
+    /// This method does not close the QUIC connection. Applications are
+    /// required to call [`close()`] themselves.
+    ///
+    /// [`close()`]: ../struct.Connection.html#method.close
+    pub fn send_goaway(
+        &mut self, conn: &mut super::Connection, id: u64,
+    ) -> Result<()> {
+        if !self.is_server {
+            // TODO: server push
+            return Ok(());
+        }
+
+        if self.is_server && id % 4 != 0 {
+            return Err(Error::IdError);
+        }
+
+        if let Some(sent_id) = self.local_goaway_id {
+            if id > sent_id {
+                return Err(Error::IdError);
+            }
+        }
+
+        if let Some(stream_id) = self.control_stream_id {
+            let mut d = [42; 10];
+            let mut b = octets::OctetsMut::with_slice(&mut d);
+
+            let frame = frame::Frame::GoAway { id };
+
+            let wire_len = frame.to_bytes(&mut b)?;
+            let stream_cap = conn.stream_capacity(stream_id)?;
+
+            if stream_cap < wire_len {
+                return Err(Error::StreamBlocked);
+            }
+
+            trace!("{} tx frm {:?}", conn.trace_id(), frame);
+
+            let off = b.off();
+            conn.stream_send(stream_id, &d[..off], false)?;
+
+            self.local_goaway_id = Some(id);
+        }
+
+        Ok(())
+    }
+
     fn open_uni_stream(
         &mut self, conn: &mut super::Connection, ty: u64,
     ) -> Result<u64> {
@@ -891,6 +1182,23 @@
         let mut d = [0; 8];
         let mut b = octets::OctetsMut::with_slice(&mut d);
 
+        match ty {
+            // Control and QPACK streams are the most important to schedule.
+            stream::HTTP3_CONTROL_STREAM_TYPE_ID |
+            stream::QPACK_ENCODER_STREAM_TYPE_ID |
+            stream::QPACK_DECODER_STREAM_TYPE_ID => {
+                conn.stream_priority(stream_id, 0, true)?;
+            },
+
+            // TODO: Server push
+            stream::HTTP3_PUSH_STREAM_TYPE_ID => (),
+
+            // Anything else is a GREASE stream, so make it the least important.
+            _ => {
+                conn.stream_priority(stream_id, 255, true)?;
+            },
+        }
+
         conn.stream_send(stream_id, b.put_varint(ty)?, false)?;
 
         // To avoid skipping stream IDs, we only calculate the next available
@@ -1027,7 +1335,7 @@
 
     fn process_control_stream(
         &mut self, conn: &mut super::Connection, stream_id: u64,
-    ) -> Result<()> {
+    ) -> Result<(u64, Event)> {
         if conn.stream_finished(stream_id) {
             conn.close(
                 true,
@@ -1039,7 +1347,7 @@
         }
 
         match self.process_readable_stream(conn, stream_id) {
-            Ok(_) => (),
+            Ok(ev) => return Ok(ev),
 
             Err(Error::Done) => (),
 
@@ -1056,7 +1364,7 @@
             return Err(Error::ClosedCriticalStream);
         }
 
-        Ok(())
+        Err(Error::Done)
     }
 
     fn process_readable_stream(
@@ -1359,19 +1667,7 @@
                 // Do nothing. The Data event is returned separately.
             },
 
-            frame::Frame::GoAway {
-                stream_id: goaway_stream_id,
-            } => {
-                if self.is_server {
-                    conn.close(
-                        true,
-                        Error::FrameUnexpected.to_wire(),
-                        b"GOWAY received on server",
-                    )?;
-
-                    return Err(Error::FrameUnexpected);
-                }
-
+            frame::Frame::GoAway { id } => {
                 if Some(stream_id) != self.peer_control_stream_id {
                     conn.close(
                         true,
@@ -1382,17 +1678,31 @@
                     return Err(Error::FrameUnexpected);
                 }
 
-                if goaway_stream_id % 4 != 0 {
+                if !self.is_server && id % 4 != 0 {
                     conn.close(
                         true,
                         Error::FrameUnexpected.to_wire(),
                         b"GOAWAY received with ID of non-request stream",
                     )?;
 
-                    return Err(Error::FrameUnexpected);
+                    return Err(Error::IdError);
                 }
 
-                // TODO: implement GOAWAY
+                if let Some(received_id) = self.peer_goaway_id {
+                    if id > received_id {
+                        conn.close(
+                            true,
+                            Error::IdError.to_wire(),
+                            b"GOAWAY received with ID larger than previously received",
+                        )?;
+
+                        return Err(Error::IdError);
+                    }
+                }
+
+                self.peer_goaway_id = Some(id);
+
+                return Ok((id, Event::GoAway));
             },
 
             frame::Frame::MaxPushId { push_id } => {
@@ -2305,21 +2615,17 @@
     }
 
     #[test]
-    /// Send a GOAWAY frame from the client, which is forbidden.
-    fn goaway_from_client() {
+    /// Send a GOAWAY frame from the client.
+    fn goaway_from_client_good() {
         let mut s = Session::default().unwrap();
         s.handshake().unwrap();
 
-        s.send_frame_client(
-            frame::Frame::GoAway { stream_id: 100 },
-            s.client.control_stream_id.unwrap(),
-            false,
-        )
-        .unwrap();
+        s.client.send_goaway(&mut s.pipe.client, 1).unwrap();
 
         s.advance().ok();
 
-        assert_eq!(s.poll_server(), Err(Error::FrameUnexpected));
+        // TODO: server push
+        assert_eq!(s.poll_server(), Err(Error::Done));
     }
 
     #[test]
@@ -2328,31 +2634,68 @@
         let mut s = Session::default().unwrap();
         s.handshake().unwrap();
 
-        s.send_frame_server(
-            frame::Frame::GoAway { stream_id: 100 },
-            s.server.control_stream_id.unwrap(),
-            false,
-        )
-        .unwrap();
+        s.server.send_goaway(&mut s.pipe.server, 4000).unwrap();
 
-        assert_eq!(s.poll_client(), Err(Error::Done));
+        s.advance().ok();
+
+        assert_eq!(s.poll_client(), Ok((4000, Event::GoAway)));
     }
 
     #[test]
-    /// Send a GOAWAY frame from the server, that references a request that does
-    /// not exist.
-    fn goaway_from_server_bad_id() {
+    /// A client MUST NOT send a request after it receives GOAWAY.
+    fn client_request_after_goaway() {
+        let mut s = Session::default().unwrap();
+        s.handshake().unwrap();
+
+        s.server.send_goaway(&mut s.pipe.server, 4000).unwrap();
+
+        s.advance().ok();
+
+        assert_eq!(s.poll_client(), Ok((4000, Event::GoAway)));
+
+        assert_eq!(s.send_request(true), Err(Error::FrameUnexpected));
+    }
+
+    #[test]
+    /// Send a GOAWAY frame from the server, using an invalid goaway ID.
+    fn goaway_from_server_invalid_id() {
         let mut s = Session::default().unwrap();
         s.handshake().unwrap();
 
         s.send_frame_server(
-            frame::Frame::GoAway { stream_id: 1 },
+            frame::Frame::GoAway { id: 1 },
             s.server.control_stream_id.unwrap(),
             false,
         )
         .unwrap();
 
-        assert_eq!(s.poll_client(), Err(Error::FrameUnexpected));
+        assert_eq!(s.poll_client(), Err(Error::IdError));
+    }
+
+    #[test]
+    /// Send multiple GOAWAY frames from the server, that increase the goaway
+    /// ID.
+    fn goaway_from_server_increase_id() {
+        let mut s = Session::default().unwrap();
+        s.handshake().unwrap();
+
+        s.send_frame_server(
+            frame::Frame::GoAway { id: 0 },
+            s.server.control_stream_id.unwrap(),
+            false,
+        )
+        .unwrap();
+
+        s.send_frame_server(
+            frame::Frame::GoAway { id: 4 },
+            s.server.control_stream_id.unwrap(),
+            false,
+        )
+        .unwrap();
+
+        assert_eq!(s.poll_client(), Ok((0, Event::GoAway)));
+
+        assert_eq!(s.poll_client(), Err(Error::IdError));
     }
 
     #[test]
diff --git a/src/h3/qpack/decoder.rs b/src/h3/qpack/decoder.rs
index 18533ac..240ca69 100644
--- a/src/h3/qpack/decoder.rs
+++ b/src/h3/qpack/decoder.rs
@@ -124,7 +124,8 @@
                         .checked_sub((name.len() + value.len()) as u64)
                         .ok_or(Error::HeaderListTooLarge)?;
 
-                    out.push(Header::new(&name, &value));
+                    let hdr = Header::new(name, value);
+                    out.push(hdr);
                 },
 
                 Representation::IndexedWithPostBase => {
@@ -141,6 +142,7 @@
                     let name_len = decode_int(&mut b, 3)? as usize;
 
                     let mut name = b.get_bytes(name_len)?;
+
                     let name = if name_huff {
                         super::huffman::decode(&mut name)?
                     } else {
@@ -149,19 +151,23 @@
 
                     let name = String::from_utf8(name)
                         .map_err(|_| Error::InvalidHeaderValue)?;
+
                     let value = decode_str(&mut b)?;
 
                     trace!(
                         "Literal Without Name Reference name={:?} value={:?}",
                         name,
-                        value
+                        value,
                     );
 
                     left = left
                         .checked_sub((name.len() + value.len()) as u64)
                         .ok_or(Error::HeaderListTooLarge)?;
 
-                    out.push(Header::new(&name, &value));
+                    // Instead of calling Header::new(), create Header directly
+                    // from `name` and `value`, which are already String.
+                    let hdr = Header(name, value);
+                    out.push(hdr);
                 },
 
                 Representation::LiteralWithNameRef => {
@@ -189,7 +195,11 @@
                         .checked_sub((name.len() + value.len()) as u64)
                         .ok_or(Error::HeaderListTooLarge)?;
 
-                    out.push(Header::new(name, &value));
+                    // Instead of calling Header::new(), create Header directly
+                    // from `value`, which is already String, but clone `name`
+                    // as it is just a reference.
+                    let hdr = Header(name.to_string(), value);
+                    out.push(hdr);
                 },
 
                 Representation::LiteralWithPostBase => {
@@ -206,120 +216,11 @@
 }
 
 fn lookup_static(idx: u64) -> Result<(&'static str, &'static str)> {
-    let hdr = match idx {
-        0 => (":authority", ""),
-        1 => (":path", "/"),
-        2 => ("age", "0"),
-        3 => ("content-disposition", ""),
-        4 => ("content-length", "0"),
-        5 => ("cookie", ""),
-        6 => ("date", ""),
-        7 => ("etag", ""),
-        8 => ("if-modified-since", ""),
-        9 => ("if-none-match", ""),
-        10 => ("last-modified", ""),
-        11 => ("link", ""),
-        12 => ("location", ""),
-        13 => ("referer", ""),
-        14 => ("set-cookie", ""),
-        15 => (":method", "CONNECT"),
-        16 => (":method", "DELETE"),
-        17 => (":method", "GET"),
-        18 => (":method", "HEAD"),
-        19 => (":method", "OPTIONS"),
-        20 => (":method", "POST"),
-        21 => (":method", "PUT"),
-        22 => (":scheme", "http"),
-        23 => (":scheme", "https"),
-        24 => (":status", "103"),
-        25 => (":status", "200"),
-        26 => (":status", "304"),
-        27 => (":status", "404"),
-        28 => (":status", "503"),
-        29 => ("accept", "*/*"),
-        30 => ("accept", "application/dns-message"),
-        31 => ("accept-encoding", "gzip, deflate, br"),
-        32 => ("accept-ranges", "bytes"),
-        33 => ("access-control-allow-headers", "cache-control"),
-        34 => ("access-control-allow-headers", "content-type"),
-        35 => ("access-control-allow-origin", "*"),
-        36 => ("cache-control", "max-age=0"),
-        37 => ("cache-control", "max-age=2592000"),
-        38 => ("cache-control", "max-age=604800"),
-        39 => ("cache-control", "no-cache"),
-        40 => ("cache-control", "no-store"),
-        41 => ("cache-control", "public, max-age=31536000"),
-        42 => ("content-encoding", "br"),
-        43 => ("content-encoding", "gzip"),
-        44 => ("content-type", "application/dns-message"),
-        45 => ("content-type", "application/javascript"),
-        46 => ("content-type", "application/json"),
-        47 => ("content-type", "application/x-www-form-urlencoded"),
-        48 => ("content-type", "image/gif"),
-        49 => ("content-type", "image/jpeg"),
-        50 => ("content-type", "image/png"),
-        51 => ("content-type", "text/css"),
-        52 => ("content-type", "text/html; charset=utf-8"),
-        53 => ("content-type", "text/plain"),
-        54 => ("content-type", "text/plain;charset=utf-8"),
-        55 => ("range", "bytes=0-"),
-        56 => ("strict-transport-security", "max-age=31536000"),
-        57 => (
-            "strict-transport-security",
-            "max-age=31536000; includesubdomains",
-        ),
-        58 => (
-            "strict-transport-security",
-            "max-age=31536000; includesubdomains; preload",
-        ),
-        59 => ("vary", "accept-encoding"),
-        60 => ("vary", "origin"),
-        61 => ("x-content-type-options", "nosniff"),
-        62 => ("x-xss-protection", "1; mode=block"),
-        63 => (":status", "100"),
-        64 => (":status", "204"),
-        65 => (":status", "206"),
-        66 => (":status", "302"),
-        67 => (":status", "400"),
-        68 => (":status", "403"),
-        69 => (":status", "421"),
-        70 => (":status", "425"),
-        71 => (":status", "500"),
-        72 => ("accept-language", ""),
-        73 => ("access-control-allow-credentials", "FALSE"),
-        74 => ("access-control-allow-credentials", "TRUE"),
-        75 => ("access-control-allow-headers", "*"),
-        76 => ("access-control-allow-methods", "get"),
-        77 => ("access-control-allow-methods", "get, post, options"),
-        78 => ("access-control-allow-methods", "options"),
-        79 => ("access-control-expose-headers", "content-length"),
-        80 => ("access-control-request-headers", "content-type"),
-        81 => ("access-control-request-method", "get"),
-        82 => ("access-control-request-method", "post"),
-        83 => ("alt-svc", "clear"),
-        84 => ("authorization", ""),
-        85 => (
-            "content-security-policy",
-            "script-src 'none'; object-src 'none'; base-uri 'none'",
-        ),
-        86 => ("early-data", "1"),
-        87 => ("expect-ct", ""),
-        88 => ("forwarded", ""),
-        89 => ("if-range", ""),
-        90 => ("origin", ""),
-        91 => ("purpose", "prefetch"),
-        92 => ("server", ""),
-        93 => ("timing-allow-origin", "*"),
-        94 => ("upgrade-insecure-requests", "1"),
-        95 => ("user-agent", ""),
-        96 => ("x-forwarded-for", ""),
-        97 => ("x-frame-options", "deny"),
-        98 => ("x-frame-options", "sameorigin"),
+    if idx >= super::static_table::STATIC_TABLE.len() as u64 {
+        return Err(Error::InvalidStaticTableIndex);
+    }
 
-        _ => return Err(Error::InvalidStaticTableIndex),
-    };
-
-    Ok(hdr)
+    Ok(super::static_table::STATIC_TABLE[idx as usize])
 }
 
 fn decode_int(b: &mut octets::Octets, prefix: usize) -> Result<u64> {
diff --git a/src/h3/qpack/encoder.rs b/src/h3/qpack/encoder.rs
index 94af982..1307df3 100644
--- a/src/h3/qpack/encoder.rs
+++ b/src/h3/qpack/encoder.rs
@@ -28,7 +28,7 @@
 
 use crate::octets;
 
-use crate::h3::Header;
+use crate::h3::NameValue;
 
 use super::INDEXED;
 use super::LITERAL;
@@ -50,8 +50,8 @@
     }
 
     /// Encodes a list of headers into a QPACK header block.
-    pub fn encode(
-        &mut self, headers: &[Header], out: &mut [u8],
+    pub fn encode<T: NameValue>(
+        &mut self, headers: &[T], out: &mut [u8],
     ) -> Result<usize> {
         let mut b = octets::OctetsMut::with_slice(out);
 
@@ -75,19 +75,21 @@
 
                     // Encode value as literal with static name reference.
                     encode_int(idx, LITERAL_WITH_NAME_REF | STATIC, 4, &mut b)?;
-                    encode_str(&h.1, 7, &mut b)?;
+                    encode_str(h.value(), 7, &mut b)?;
                 },
 
                 None => {
                     // Encode as fully literal.
-                    let name_len =
-                        super::huffman::encode_output_length(h.0.as_bytes())?;
+                    let name_len = super::huffman::encode_output_length(
+                        h.name().as_bytes(),
+                        true,
+                    )?;
 
                     encode_int(name_len as u64, LITERAL | 0x08, 3, &mut b)?;
 
-                    super::huffman::encode(h.0.as_bytes(), &mut b)?;
+                    super::huffman::encode(h.name().as_bytes(), &mut b, true)?;
 
-                    encode_str(&h.1, 7, &mut b)?;
+                    encode_str(h.value(), 7, &mut b)?;
                 },
             };
         }
@@ -96,154 +98,28 @@
     }
 }
 
-fn lookup_static(h: &Header) -> Option<(u64, bool)> {
-    let name = h.0.as_ref();
-    let value = h.1.as_ref();
+fn lookup_static<T: NameValue>(h: &T) -> Option<(u64, bool)> {
+    let mut name_match = None;
 
-    let idx = match (name, value) {
-        (":authority", _) => (0, false),
-        (":path", "/") => (1, true),
-        ("age", "0") => (2, true),
-        ("content-disposition", _) => (3, false),
-        ("content-length", "0") => (4, true),
-        ("cookie", _) => (5, false),
-        ("date", _) => (6, false),
-        ("etag", _) => (7, false),
-        ("if-modified-since", _) => (8, false),
-        ("if-none-match", _) => (9, false),
-        ("last-modified", _) => (10, false),
-        ("link", _) => (11, false),
-        ("location", _) => (12, false),
-        ("referer", _) => (13, false),
-        ("set-cookie", _) => (14, false),
-        (":method", "CONNECT") => (15, true),
-        (":method", "DELETE") => (16, true),
-        (":method", "GET") => (17, true),
-        (":method", "HEAD") => (18, true),
-        (":method", "OPTIONS") => (19, true),
-        (":method", "POST") => (20, true),
-        (":method", "PUT") => (21, true),
-        (":scheme", "http") => (22, true),
-        (":scheme", "https") => (23, true),
-        (":status", "103") => (24, true),
-        (":status", "200") => (25, true),
-        (":status", "304") => (26, true),
-        (":status", "404") => (27, true),
-        (":status", "503") => (28, true),
-        ("accept", "*/*") => (29, true),
-        ("accept", "application/dns-message") => (30, true),
-        ("accept-encoding", "gzip, deflate, br") => (31, true),
-        ("accept-ranges", "bytes") => (32, true),
-        ("access-control-allow-headers", "cache-control") => (33, true),
-        ("access-control-allow-headers", "content-type") => (34, true),
-        ("access-control-allow-origin", "*") => (35, true),
-        ("cache-control", "max-age=0") => (36, true),
-        ("cache-control", "max-age=2592000") => (37, true),
-        ("cache-control", "max-age=604800") => (38, true),
-        ("cache-control", "no-cache") => (39, true),
-        ("cache-control", "no-store") => (40, true),
-        ("cache-control", "public, max-age=31536000") => (41, true),
-        ("content-encoding", "br") => (42, true),
-        ("content-encoding", "gzip") => (43, true),
-        ("content-type", "application/dns-message") => (44, true),
-        ("content-type", "application/javascript") => (45, true),
-        ("content-type", "application/json") => (46, true),
-        ("content-type", "application/x-www-form-urlencoded") => (47, true),
-        ("content-type", "image/gif") => (48, true),
-        ("content-type", "image/jpeg") => (49, true),
-        ("content-type", "image/png") => (50, true),
-        ("content-type", "text/css") => (51, true),
-        ("content-type", "text/html; charset=utf-8") => (52, true),
-        ("content-type", "text/plain") => (53, true),
-        ("content-type", "text/plain;charset=utf-8") => (54, true),
-        ("range", "bytes=0-") => (55, true),
-        ("strict-transport-security", "max-age=31536000") => (56, true),
-        ("strict-transport-security", "max-age=31536000; includesubdomains") =>
-            (57, true),
-        (
-            "strict-transport-security",
-            "max-age=31536000; includesubdomains; preload",
-        ) => (58, true),
-        ("vary", "accept-encoding") => (59, true),
-        ("vary", "origin") => (60, true),
-        ("x-content-type-options", "nosniff") => (61, true),
-        ("x-xss-protection", "1; mode=block") => (62, true),
-        (":status", "100") => (63, true),
-        (":status", "204") => (64, true),
-        (":status", "206") => (65, true),
-        (":status", "302") => (66, true),
-        (":status", "400") => (67, true),
-        (":status", "403") => (68, true),
-        (":status", "421") => (69, true),
-        (":status", "425") => (70, true),
-        (":status", "500") => (71, true),
-        ("accept-language", _) => (72, false),
-        ("access-control-allow-credentials", "FALSE") => (73, true),
-        ("access-control-allow-credentials", "TRUE") => (74, true),
-        ("access-control-allow-headers", "*") => (75, true),
-        ("access-control-allow-methods", "get") => (76, true),
-        ("access-control-allow-methods", "get, post, options") => (77, true),
-        ("access-control-allow-methods", "options") => (78, true),
-        ("access-control-expose-headers", "content-length") => (79, true),
-        ("access-control-request-headers", "content-type") => (80, true),
-        ("access-control-request-method", "get") => (81, true),
-        ("access-control-request-method", "post") => (82, true),
-        ("alt-svc", "clear") => (83, true),
-        ("authorization", _) => (84, false),
-        (
-            "content-security-policy",
-            "script-src 'none'; object-src 'none'; base-uri 'none'",
-        ) => (85, true),
-        ("early-data", "1") => (86, true),
-        ("expect-ct", _) => (87, false),
-        ("forwarded", _) => (88, false),
-        ("if-range", _) => (89, false),
-        ("origin", _) => (90, false),
-        ("purpose", "prefetch") => (91, true),
-        ("server", _) => (92, false),
-        ("timing-allow-origin", "*") => (93, true),
-        ("upgrade-insecure-requests", "1") => (94, true),
-        ("user-agent", _) => (95, false),
-        ("x-forwarded-for", _) => (96, false),
-        ("x-frame-options", "deny") => (97, true),
-        ("x-frame-options", "sameorigin") => (98, true),
+    for (i, e) in super::static_table::STATIC_TABLE.iter().enumerate() {
+        // Match header name first.
+        if h.name().len() == e.0.len() && h.name().eq_ignore_ascii_case(e.0) {
+            // No header value to match, return early.
+            if e.1.is_empty() {
+                return Some((i as u64, false));
+            }
 
-        (":path", _) => (1, false),
-        ("age", _) => (2, false),
-        ("content-length", _) => (4, false),
-        (":method", _) => (15, false),
-        (":scheme", _) => (22, false),
-        (":status", _) => (24, false),
-        ("accept", _) => (29, false),
-        ("accept-encoding", _) => (31, false),
-        ("accept-ranges", _) => (32, false),
-        ("access-control-allow-headers", _) => (33, false),
-        ("access-control-allow-origin", _) => (35, false),
-        ("cache-control", _) => (36, false),
-        ("content-encoding", _) => (42, false),
-        ("content-type", _) => (44, false),
-        ("range", _) => (55, false),
-        ("strict-transport-security", _) => (56, false),
-        ("vary", _) => (59, false),
-        ("x-content-type-options", _) => (61, false),
-        ("x-xss-protection", _) => (62, false),
-        ("access-control-allow-credentials", _) => (73, false),
-        ("access-control-allow-methods", _) => (76, false),
-        ("access-control-expose-headers", _) => (79, false),
-        ("access-control-request-headers", _) => (80, false),
-        ("access-control-request-method", _) => (81, false),
-        ("alt-svc", _) => (83, false),
-        ("content-security-policy", _) => (85, false),
-        ("early-data", _) => (86, false),
-        ("purpose", _) => (91, false),
-        ("timing-allow-origin", _) => (93, false),
-        ("upgrade-insecure-requests", _) => (94, false),
-        ("x-frame-options", _) => (97, false),
+            // Match header value.
+            if h.value().len() == e.1.len() && h.value() == e.1 {
+                return Some((i as u64, true));
+            }
 
-        _ => return None,
-    };
+            // Remember name-only match for later, but keep searching.
+            name_match = Some((i as u64, false));
+        }
+    }
 
-    Some(idx)
+    name_match
 }
 
 fn encode_int(
@@ -276,11 +152,11 @@
 }
 
 fn encode_str(v: &str, prefix: usize, b: &mut octets::OctetsMut) -> Result<()> {
-    let len = super::huffman::encode_output_length(v.as_bytes())?;
+    let len = super::huffman::encode_output_length(v.as_bytes(), false)?;
 
     encode_int(len as u64, 0x80, prefix, b)?;
 
-    super::huffman::encode(v.as_bytes(), b)?;
+    super::huffman::encode(v.as_bytes(), b, false)?;
 
     Ok(())
 }
diff --git a/src/h3/qpack/huffman/mod.rs b/src/h3/qpack/huffman/mod.rs
index e1810c7..3a6ff06 100644
--- a/src/h3/qpack/huffman/mod.rs
+++ b/src/h3/qpack/huffman/mod.rs
@@ -57,11 +57,13 @@
     Ok(out)
 }
 
-pub fn encode(src: &[u8], out: &mut octets::OctetsMut) -> Result<()> {
+pub fn encode(src: &[u8], out: &mut octets::OctetsMut, low: bool) -> Result<()> {
     let mut bits: u64 = 0;
     let mut bits_left = 40;
 
     for &b in src {
+        let b = if low { b.to_ascii_lowercase() } else { b };
+
         let (nbits, code) = ENCODE_TABLE[b as usize];
 
         bits |= code << (bits_left - nbits);
@@ -85,10 +87,12 @@
     Ok(())
 }
 
-pub fn encode_output_length(src: &[u8]) -> Result<usize> {
+pub fn encode_output_length(src: &[u8], low: bool) -> Result<usize> {
     let mut bits: usize = 0;
 
     for &b in src {
+        let b = if low { b.to_ascii_lowercase() } else { b };
+
         let (nbits, _) = ENCODE_TABLE[b as usize];
         bits += nbits;
     }
diff --git a/src/h3/qpack/mod.rs b/src/h3/qpack/mod.rs
index e284d6c..6f2bdda 100644
--- a/src/h3/qpack/mod.rs
+++ b/src/h3/qpack/mod.rs
@@ -99,11 +99,58 @@
         ];
 
         let mut enc = Encoder::new();
-        assert!(enc.encode(&headers, &mut encoded).is_ok());
+        assert_eq!(enc.encode(&headers, &mut encoded), Ok(240));
 
         let mut dec = Decoder::new();
         assert_eq!(dec.decode(&mut encoded, std::u64::MAX), Ok(headers));
     }
+
+    #[test]
+    fn lower_case() {
+        let mut encoded = [0u8; 35];
+
+        let headers_expected = vec![
+            crate::h3::Header::new(":status", "200"),
+            crate::h3::Header::new(":path", "/HeLlO"),
+            crate::h3::Header::new("woot", "woot"),
+            crate::h3::Header::new("hello", "WorlD"),
+            crate::h3::Header::new("foo", "BaR"),
+        ];
+
+        // Header.
+        let headers_in = vec![
+            crate::h3::Header::new(":StAtUs", "200"),
+            crate::h3::Header::new(":PaTh", "/HeLlO"),
+            crate::h3::Header::new("WooT", "woot"),
+            crate::h3::Header::new("hello", "WorlD"),
+            crate::h3::Header::new("fOo", "BaR"),
+        ];
+
+        let mut enc = Encoder::new();
+        assert_eq!(enc.encode(&headers_in, &mut encoded), Ok(35));
+
+        let mut dec = Decoder::new();
+        let headers_out = dec.decode(&mut encoded, std::u64::MAX).unwrap();
+
+        assert_eq!(headers_expected, headers_out);
+
+        // HeaderRef.
+        let headers_in = vec![
+            crate::h3::HeaderRef::new(":StAtUs", "200"),
+            crate::h3::HeaderRef::new(":PaTh", "/HeLlO"),
+            crate::h3::HeaderRef::new("WooT", "woot"),
+            crate::h3::HeaderRef::new("hello", "WorlD"),
+            crate::h3::HeaderRef::new("fOo", "BaR"),
+        ];
+
+        let mut enc = Encoder::new();
+        assert_eq!(enc.encode(&headers_in, &mut encoded), Ok(35));
+
+        let mut dec = Decoder::new();
+        let headers_out = dec.decode(&mut encoded, std::u64::MAX).unwrap();
+
+        assert_eq!(headers_expected, headers_out);
+    }
 }
 
 pub use decoder::Decoder;
@@ -112,3 +159,4 @@
 mod decoder;
 mod encoder;
 mod huffman;
+mod static_table;
diff --git a/src/h3/qpack/static_table.rs b/src/h3/qpack/static_table.rs
new file mode 100644
index 0000000..4010d12
--- /dev/null
+++ b/src/h3/qpack/static_table.rs
@@ -0,0 +1,136 @@
+// Copyright (C) 2020, Cloudflare, Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright notice,
+//       this list of conditions and the following disclaimer.
+//
+//     * 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 HOLDER 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.
+
+pub const STATIC_TABLE: [(&str, &str); 99] = [
+    (":authority", ""),
+    (":path", "/"),
+    ("age", "0"),
+    ("content-disposition", ""),
+    ("content-length", "0"),
+    ("cookie", ""),
+    ("date", ""),
+    ("etag", ""),
+    ("if-modified-since", ""),
+    ("if-none-match", ""),
+    ("last-modified", ""),
+    ("link", ""),
+    ("location", ""),
+    ("referer", ""),
+    ("set-cookie", ""),
+    (":method", "CONNECT"),
+    (":method", "DELETE"),
+    (":method", "GET"),
+    (":method", "HEAD"),
+    (":method", "OPTIONS"),
+    (":method", "POST"),
+    (":method", "PUT"),
+    (":scheme", "http"),
+    (":scheme", "https"),
+    (":status", "103"),
+    (":status", "200"),
+    (":status", "304"),
+    (":status", "404"),
+    (":status", "503"),
+    ("accept", "*/*"),
+    ("accept", "application/dns-message"),
+    ("accept-encoding", "gzip, deflate, br"),
+    ("accept-ranges", "bytes"),
+    ("access-control-allow-headers", "cache-control"),
+    ("access-control-allow-headers", "content-type"),
+    ("access-control-allow-origin", "*"),
+    ("cache-control", "max-age=0"),
+    ("cache-control", "max-age=2592000"),
+    ("cache-control", "max-age=604800"),
+    ("cache-control", "no-cache"),
+    ("cache-control", "no-store"),
+    ("cache-control", "public, max-age=31536000"),
+    ("content-encoding", "br"),
+    ("content-encoding", "gzip"),
+    ("content-type", "application/dns-message"),
+    ("content-type", "application/javascript"),
+    ("content-type", "application/json"),
+    ("content-type", "application/x-www-form-urlencoded"),
+    ("content-type", "image/gif"),
+    ("content-type", "image/jpeg"),
+    ("content-type", "image/png"),
+    ("content-type", "text/css"),
+    ("content-type", "text/html; charset=utf-8"),
+    ("content-type", "text/plain"),
+    ("content-type", "text/plain;charset=utf-8"),
+    ("range", "bytes=0-"),
+    ("strict-transport-security", "max-age=31536000"),
+    (
+        "strict-transport-security",
+        "max-age=31536000; includesubdomains",
+    ),
+    (
+        "strict-transport-security",
+        "max-age=31536000; includesubdomains; preload",
+    ),
+    ("vary", "accept-encoding"),
+    ("vary", "origin"),
+    ("x-content-type-options", "nosniff"),
+    ("x-xss-protection", "1; mode=block"),
+    (":status", "100"),
+    (":status", "204"),
+    (":status", "206"),
+    (":status", "302"),
+    (":status", "400"),
+    (":status", "403"),
+    (":status", "421"),
+    (":status", "425"),
+    (":status", "500"),
+    ("accept-language", ""),
+    ("access-control-allow-credentials", "FALSE"),
+    ("access-control-allow-credentials", "TRUE"),
+    ("access-control-allow-headers", "*"),
+    ("access-control-allow-methods", "get"),
+    ("access-control-allow-methods", "get, post, options"),
+    ("access-control-allow-methods", "options"),
+    ("access-control-expose-headers", "content-length"),
+    ("access-control-request-headers", "content-type"),
+    ("access-control-request-method", "get"),
+    ("access-control-request-method", "post"),
+    ("alt-svc", "clear"),
+    ("authorization", ""),
+    (
+        "content-security-policy",
+        "script-src 'none'; object-src 'none'; base-uri 'none'",
+    ),
+    ("early-data", "1"),
+    ("expect-ct", ""),
+    ("forwarded", ""),
+    ("if-range", ""),
+    ("origin", ""),
+    ("purpose", "prefetch"),
+    ("server", ""),
+    ("timing-allow-origin", "*"),
+    ("upgrade-insecure-requests", "1"),
+    ("user-agent", ""),
+    ("x-forwarded-for", ""),
+    ("x-frame-options", "deny"),
+    ("x-frame-options", "sameorigin"),
+];
diff --git a/src/h3/stream.rs b/src/h3/stream.rs
index ece2e68..f2f8f0c 100644
--- a/src/h3/stream.rs
+++ b/src/h3/stream.rs
@@ -627,7 +627,7 @@
         let mut d = vec![42; 40];
         let mut b = octets::OctetsMut::with_slice(&mut d);
 
-        let goaway = frame::Frame::GoAway { stream_id: 0 };
+        let goaway = frame::Frame::GoAway { id: 0 };
 
         let settings = frame::Frame::Settings {
             max_header_list_size: Some(0),
diff --git a/src/lib.rs b/src/lib.rs
index 2064dc3..1f7f98b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -272,12 +272,14 @@
 use std::str::FromStr;
 
 /// The current QUIC wire version.
-pub const PROTOCOL_VERSION: u32 = PROTOCOL_VERSION_DRAFT27;
+pub const PROTOCOL_VERSION: u32 = PROTOCOL_VERSION_DRAFT29;
 
 /// Supported QUIC versions.
 ///
 /// Note that the older ones might not be fully supported.
 const PROTOCOL_VERSION_DRAFT27: u32 = 0xff00_001b;
+const PROTOCOL_VERSION_DRAFT28: u32 = 0xff00_001c;
+const PROTOCOL_VERSION_DRAFT29: u32 = 0xff00_001d;
 
 /// The maximum length of a connection ID.
 pub const MAX_CONN_ID_LEN: usize = crate::packet::MAX_CID_LEN as usize;
@@ -301,6 +303,16 @@
 // This represents more or less how many ack blocks can fit in a typical packet.
 const MAX_ACK_RANGES: usize = 68;
 
+// The highest possible stream ID allowed.
+const MAX_STREAM_ID: u64 = 1 << 60;
+
+// The default length of DATAGRAM queues.
+const DEFAULT_MAX_DGRAM_QUEUE_LEN: usize = 0;
+
+// The DATAGRAM standard recommends either none or 65536 as maximum DATAGRAM
+// frames size. We enforce the recommendation for forward compatibility.
+const MAX_DGRAM_FRAME_SIZE: u64 = 65536;
+
 /// A specialized [`Result`] type for quiche operations.
 ///
 /// This type is used throughout quiche's public API for any operation that
@@ -425,6 +437,9 @@
     cc_algorithm: CongestionControlAlgorithm,
 
     hystart: bool,
+
+    dgram_recv_max_queue_len: usize,
+    dgram_send_max_queue_len: usize,
 }
 
 impl Config {
@@ -447,6 +462,9 @@
             grease: true,
             cc_algorithm: CongestionControlAlgorithm::CUBIC,
             hystart: true,
+
+            dgram_recv_max_queue_len: DEFAULT_MAX_DGRAM_QUEUE_LEN,
+            dgram_send_max_queue_len: DEFAULT_MAX_DGRAM_QUEUE_LEN,
         })
     }
 
@@ -532,10 +550,11 @@
 
     /// Enables logging of secrets.
     ///
-    /// A connection's cryptographic secrets will be logged in the [keylog]
-    /// format in the file pointed to by the `SSLKEYLOGFILE` environment
-    /// variable.
+    /// When logging is enabled, the [`set_keylog()`] method must be called on
+    /// the connection for its cryptographic secrets to be logged in the
+    /// [keylog] format to the specified writer.
     ///
+    /// [`set_keylog()`]: struct.Connection.html#method.set_keylog
     /// [keylog]: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format
     pub fn log_keys(&mut self) {
         self.tls_ctx.enable_keylog();
@@ -587,11 +606,11 @@
         self.local_transport_params.max_idle_timeout = v;
     }
 
-    /// Sets the `max_packet_size transport` parameter.
+    /// Sets the `max_udp_payload_size transport` parameter.
     ///
     /// The default value is `65527`.
-    pub fn set_max_packet_size(&mut self, v: u64) {
-        self.local_transport_params.max_packet_size = v;
+    pub fn set_max_udp_payload_size(&mut self, v: u64) {
+        self.local_transport_params.max_udp_payload_size = v;
     }
 
     /// Sets the `initial_max_data` transport parameter.
@@ -732,6 +751,24 @@
     pub fn enable_hystart(&mut self, v: bool) {
         self.hystart = v;
     }
+
+    /// Configures whether to enable receiving DATAGRAM frames.
+    ///
+    /// When enabled, the `max_datagram_frame_size` transport parameter is set
+    /// to 65536 as recommended by draft-ietf-quic-datagram-01.
+    ///
+    /// The default is `false`.
+    pub fn enable_dgram(
+        &mut self, enabled: bool, recv_queue_len: usize, send_queue_len: usize,
+    ) {
+        self.local_transport_params.max_datagram_frame_size = if enabled {
+            Some(MAX_DGRAM_FRAME_SIZE)
+        } else {
+            None
+        };
+        self.dgram_recv_max_queue_len = recv_queue_len;
+        self.dgram_send_max_queue_len = send_queue_len;
+    }
 }
 
 /// A QUIC connection.
@@ -782,6 +819,9 @@
     /// trigger sending MAX_DATA frames after a certain threshold.
     max_rx_data_next: u64,
 
+    /// Whether we send MAX_DATA frame.
+    almost_full: bool,
+
     /// Total number of bytes sent to the peer.
     tx_data: u64,
 
@@ -795,10 +835,14 @@
     /// Streams map, indexed by stream ID.
     streams: stream::StreamMap,
 
-    /// Peer's original connection ID. Used by the client during stateless
-    /// retry to validate the server's transport parameter.
+    /// Peer's original destination connection ID. Used by the client to
+    /// validate the server's transport parameter.
     odcid: Option<Vec<u8>>,
 
+    /// Peer's retry source connection ID. Used by the client during stateless
+    /// retry to validate the server's transport parameter.
+    rscid: Option<Vec<u8>>,
+
     /// Received address verification token.
     token: Option<Vec<u8>>,
 
@@ -833,8 +877,7 @@
     /// relevant for client connections.
     did_version_negotiation: bool,
 
-    /// Whether a retry packet has already been received. Only relevant for
-    /// client connections.
+    /// Whether stateless retry has been performed.
     did_retry: bool,
 
     /// Whether the peer already updated its connection ID.
@@ -843,6 +886,9 @@
     /// Whether the peer's address has been verified.
     verified_peer_address: bool,
 
+    /// Whether the peer has verified our address.
+    peer_verified_address: bool,
+
     /// Whether the peer's transport parameters were parsed.
     parsed_peer_transport_params: bool,
 
@@ -862,6 +908,9 @@
     /// Whether to send GREASE.
     grease: bool,
 
+    /// TLS keylog writer.
+    keylog: Option<Box<dyn std::io::Write + Send>>,
+
     /// Qlog streaming output.
     #[cfg(feature = "qlog")]
     qlog_streamer: Option<qlog::QlogStreamer>,
@@ -869,6 +918,10 @@
     /// Whether peer transport parameters were qlogged.
     #[cfg(feature = "qlog")]
     qlogged_peer_params: bool,
+
+    /// DATAGRAM queues.
+    dgram_recv_queue: dgram::DatagramQueue,
+    dgram_send_queue: dgram::DatagramQueue,
 }
 
 /// Creates a new server-side connection.
@@ -992,7 +1045,7 @@
 ///     let new_token = mint_token(&hdr, &src);
 ///
 ///     let len = quiche::retry(
-///         &hdr.scid, &hdr.dcid, &scid, &new_token, &mut out,
+///         &hdr.scid, &hdr.dcid, &scid, &new_token, hdr.version, &mut out,
 ///     )?;
 ///
 ///     socket.send_to(&out[..len], &src).unwrap();
@@ -1011,18 +1064,20 @@
 /// # Ok::<(), quiche::Error>(())
 /// ```
 pub fn retry(
-    scid: &[u8], dcid: &[u8], new_scid: &[u8], token: &[u8], out: &mut [u8],
+    scid: &[u8], dcid: &[u8], new_scid: &[u8], token: &[u8], version: u32,
+    out: &mut [u8],
 ) -> Result<usize> {
-    packet::retry(scid, dcid, new_scid, token, out)
+    packet::retry(scid, dcid, new_scid, token, version, out)
 }
 
 /// Returns true if the given protocol version is supported.
 pub fn version_is_supported(version: u32) -> bool {
-    match version {
-        PROTOCOL_VERSION_DRAFT27 => true,
-
-        _ => false,
-    }
+    matches!(
+        version,
+        PROTOCOL_VERSION_DRAFT27 |
+            PROTOCOL_VERSION_DRAFT28 |
+            PROTOCOL_VERSION_DRAFT29
+    )
 }
 
 /// Pushes a frame to the output packet if there is enough space.
@@ -1107,6 +1162,7 @@
             rx_data: 0,
             max_rx_data,
             max_rx_data_next: max_rx_data,
+            almost_full: false,
 
             tx_data: 0,
             max_tx_data: 0,
@@ -1120,6 +1176,8 @@
 
             odcid: None,
 
+            rscid: None,
+
             token: None,
 
             error: None,
@@ -1148,6 +1206,9 @@
             // If we did stateless retry assume the peer's address is verified.
             verified_peer_address: odcid.is_some(),
 
+            // Assume clients validate the server's address implicitly.
+            peer_verified_address: is_server,
+
             parsed_peer_transport_params: false,
 
             handshake_done_sent: false,
@@ -1160,28 +1221,51 @@
 
             grease: config.grease,
 
+            keylog: None,
+
             #[cfg(feature = "qlog")]
             qlog_streamer: None,
 
             #[cfg(feature = "qlog")]
             qlogged_peer_params: false,
+
+            dgram_recv_queue: dgram::DatagramQueue::new(
+                config.dgram_recv_max_queue_len,
+            ),
+
+            dgram_send_queue: dgram::DatagramQueue::new(
+                config.dgram_send_max_queue_len,
+            ),
         });
 
         if let Some(odcid) = odcid {
-            conn.local_transport_params.original_connection_id =
-                Some(odcid.to_vec());
+            conn.local_transport_params
+                .original_destination_connection_id = Some(odcid.to_vec());
+
+            conn.local_transport_params.retry_source_connection_id =
+                Some(scid.to_vec());
+
+            conn.did_retry = true;
         }
 
+        conn.local_transport_params.initial_source_connection_id =
+            Some(scid.to_vec());
+
         conn.handshake.init(&conn)?;
 
+        conn.encode_transport_params()?;
+
         // Derive initial secrets for the client. We can do this here because
         // we already generated the random destination connection ID.
         if !is_server {
             let mut dcid = [0; 16];
             rand::rand_bytes(&mut dcid[..]);
 
-            let (aead_open, aead_seal) =
-                crypto::derive_initial_key_material(&dcid, conn.is_server)?;
+            let (aead_open, aead_seal) = crypto::derive_initial_key_material(
+                &dcid,
+                conn.version,
+                conn.is_server,
+            )?;
 
             conn.dcid.extend_from_slice(&dcid);
 
@@ -1196,8 +1280,21 @@
         Ok(conn)
     }
 
+    /// Sets keylog output to the designated [`Writer`].
+    ///
+    /// This needs to be called as soon as the connection is created, to avoid
+    /// missing some early logs.
+    ///
+    /// [`Writer`]: https://doc.rust-lang.org/std/io/trait.Write.html
+    pub fn set_keylog(&mut self, writer: Box<dyn std::io::Write + Send>) {
+        self.keylog = Some(writer);
+    }
+
     /// Sets qlog output to the designated [`Writer`].
     ///
+    /// This needs to be called as soon as the connection is created, to avoid
+    /// missing some early logs.
+    ///
     /// [`Writer`]: https://doc.rust-lang.org/std/io/trait.Write.html
     #[cfg(feature = "qlog")]
     pub fn set_qlog(
@@ -1238,7 +1335,7 @@
 
         streamer.start_log().ok();
 
-        let ev = self.peer_transport_params.to_qlog(
+        let ev = self.local_transport_params.to_qlog(
             qlog::TransportOwner::Local,
             self.version,
             self.handshake.alpn_protocol(),
@@ -1373,6 +1470,12 @@
                 return Err(Error::Done);
             }
 
+            // Ignore version negotiation if any other packet has already been
+            // successfully processed.
+            if self.recv_count > 0 {
+                return Err(Error::Done);
+            }
+
             if hdr.dcid != self.scid {
                 return Err(Error::Done);
             }
@@ -1385,7 +1488,13 @@
 
             let versions = hdr.versions.ok_or(Error::Done)?;
 
-            match versions.iter().filter(|v| version_is_supported(**v)).max() {
+            // Ignore version negotiation if the version already selected is
+            // listed.
+            if versions.iter().any(|&v| v == self.version) {
+                return Err(Error::Done);
+            }
+
+            match versions.iter().filter(|&&v| version_is_supported(v)).max() {
                 Some(v) => self.version = *v,
 
                 None => {
@@ -1402,24 +1511,26 @@
 
             self.did_version_negotiation = true;
 
+            // Derive Initial secrets based on the new version.
+            let (aead_open, aead_seal) = crypto::derive_initial_key_material(
+                &self.dcid,
+                self.version,
+                self.is_server,
+            )?;
+
             // Reset connection state to force sending another Initial packet.
+            self.drop_epoch_state(packet::EPOCH_INITIAL, now);
             self.got_peer_conn_id = false;
-            self.pkt_num_spaces[packet::EPOCH_INITIAL].clear();
-            self.recovery
-                .on_pkt_num_space_discarded(packet::EPOCH_INITIAL, false);
             self.handshake.clear()?;
 
+            self.pkt_num_spaces[packet::EPOCH_INITIAL].crypto_open =
+                Some(aead_open);
+            self.pkt_num_spaces[packet::EPOCH_INITIAL].crypto_seal =
+                Some(aead_seal);
+
             // Encode transport parameters again, as the new version might be
             // using a different format.
-            let mut raw_params = [0; 128];
-
-            let raw_params = TransportParams::encode(
-                &self.local_transport_params,
-                self.is_server,
-                &mut raw_params,
-            )?;
-
-            self.handshake.set_quic_transport_params(raw_params)?;
+            self.encode_transport_params()?;
 
             return Err(Error::Done);
         }
@@ -1436,7 +1547,9 @@
             }
 
             // Check if Retry packet is valid.
-            if packet::verify_retry_integrity(&b, &self.dcid).is_err() {
+            if packet::verify_retry_integrity(&b, &self.dcid, self.version)
+                .is_err()
+            {
                 return Err(Error::Done);
             }
 
@@ -1451,22 +1564,25 @@
             self.dcid.resize(hdr.scid.len(), 0);
             self.dcid.copy_from_slice(&hdr.scid);
 
+            self.rscid = Some(self.dcid.clone());
+
             // Derive Initial secrets using the new connection ID.
-            let (aead_open, aead_seal) =
-                crypto::derive_initial_key_material(&hdr.scid, self.is_server)?;
+            let (aead_open, aead_seal) = crypto::derive_initial_key_material(
+                &hdr.scid,
+                self.version,
+                self.is_server,
+            )?;
+
+            // Reset connection state to force sending another Initial packet.
+            self.drop_epoch_state(packet::EPOCH_INITIAL, now);
+            self.got_peer_conn_id = false;
+            self.handshake.clear()?;
 
             self.pkt_num_spaces[packet::EPOCH_INITIAL].crypto_open =
                 Some(aead_open);
             self.pkt_num_spaces[packet::EPOCH_INITIAL].crypto_seal =
                 Some(aead_seal);
 
-            // Reset connection state to force sending another Initial packet.
-            self.got_peer_conn_id = false;
-            self.pkt_num_spaces[packet::EPOCH_INITIAL].clear();
-            self.recovery
-                .on_pkt_num_space_discarded(packet::EPOCH_INITIAL, false);
-            self.handshake.clear()?;
-
             return Err(Error::Done);
         }
 
@@ -1480,15 +1596,7 @@
 
             // Encode transport parameters again, as the new version might be
             // using a different format.
-            let mut raw_params = [0; 128];
-
-            let raw_params = TransportParams::encode(
-                &self.local_transport_params,
-                self.is_server,
-                &mut raw_params,
-            )?;
-
-            self.handshake.set_quic_transport_params(raw_params)?;
+            self.encode_transport_params()?;
         }
 
         if hdr.ty != packet::Type::Short && hdr.version != self.version {
@@ -1502,22 +1610,23 @@
         let payload_len = if hdr.ty == packet::Type::Short {
             b.cap()
         } else {
-            b.get_varint()? as usize
+            b.get_varint().map_err(|e| {
+                drop_pkt_on_err(
+                    e.into(),
+                    self.recv_count,
+                    self.is_server,
+                    &self.trace_id,
+                )
+            })? as usize
         };
 
-        if !self.is_server && !self.got_peer_conn_id {
-            // Replace the randomly generated destination connection ID with
-            // the one supplied by the server.
-            self.dcid.resize(hdr.scid.len(), 0);
-            self.dcid.copy_from_slice(&hdr.scid);
-
-            self.got_peer_conn_id = true;
-        }
-
         // Derive initial secrets on the server.
         if !self.derived_initial_secrets {
-            let (aead_open, aead_seal) =
-                crypto::derive_initial_key_material(&hdr.dcid, self.is_server)?;
+            let (aead_open, aead_seal) = crypto::derive_initial_key_material(
+                &hdr.dcid,
+                self.version,
+                self.is_server,
+            )?;
 
             self.pkt_num_spaces[packet::EPOCH_INITIAL].crypto_open =
                 Some(aead_open);
@@ -1525,47 +1634,30 @@
                 Some(aead_seal);
 
             self.derived_initial_secrets = true;
-
-            self.dcid.extend_from_slice(&hdr.scid);
-            self.got_peer_conn_id = true;
         }
 
         // Select packet number space epoch based on the received packet's type.
         let epoch = hdr.ty.to_epoch()?;
 
-        // TODO: somehow deal with re-ordered 0-RTT data.
-        let aead = if hdr.ty == packet::Type::ZeroRTT &&
-            self.pkt_num_spaces[epoch].crypto_0rtt_open.is_some()
-        {
-            // TODO: buffer 0-RTT packets instead of discarding when key is not
-            // available yet, as an optimization.
-            self.pkt_num_spaces[epoch]
-                .crypto_0rtt_open
-                .as_ref()
-                .unwrap()
-        } else {
-            match self.pkt_num_spaces[epoch].crypto_open {
-                Some(ref v) => v,
-
-                // Ignore packets that can't be decrypted because we don't have
-                // the necessary decryption key (either because we don't yet
-                // have it or because we already dropped it).
-                //
-                // For example, this is necessary to prevent packet reordering
-                // (e.g. between Initial and Handshake) from causing the
-                // connection to be closed.
-                //
-                // TODO: buffer 1-RTT packets instead of discarding when key is
-                // not available yet, as an optimization.
-                None =>
-                    return Err(drop_pkt_on_err(
-                        Error::CryptoFail,
-                        self.recv_count,
-                        self.is_server,
-                        &self.trace_id,
-                    )),
-            }
-        };
+        // Select AEAD context used to open incoming packet.
+        #[allow(clippy::or_fun_call)]
+        let aead = (self.pkt_num_spaces[epoch].crypto_0rtt_open.as_ref())
+            // Only use 0-RTT key if incoming packet is 0-RTT.
+            .filter(|_| hdr.ty == packet::Type::ZeroRTT)
+            // Otherwise use the packet number space's main key.
+            .or(self.pkt_num_spaces[epoch].crypto_open.as_ref())
+            // Finally, discard packet if no usable key is available.
+            //
+            // TODO: buffer 0-RTT/1-RTT packets instead of discarding when the
+            // required key is not available yet, as an optimization.
+            .ok_or_else(|| {
+                drop_pkt_on_err(
+                    Error::CryptoFail,
+                    self.recv_count,
+                    self.is_server,
+                    &self.trace_id,
+                )
+            })?;
 
         let aead_tag_len = aead.alg().tag_len();
 
@@ -1629,6 +1721,32 @@
             return Err(Error::Done);
         }
 
+        if !self.is_server && !self.got_peer_conn_id {
+            if self.odcid.is_none() {
+                self.odcid = Some(self.dcid.clone());
+            }
+
+            // Replace the randomly generated destination connection ID with
+            // the one supplied by the server.
+            self.dcid.resize(hdr.scid.len(), 0);
+            self.dcid.copy_from_slice(&hdr.scid);
+
+            self.got_peer_conn_id = true;
+        }
+
+        if self.is_server && !self.got_peer_conn_id {
+            self.dcid.extend_from_slice(&hdr.scid);
+
+            if !self.did_retry && self.version >= PROTOCOL_VERSION_DRAFT28 {
+                self.local_transport_params
+                    .original_destination_connection_id = Some(hdr.dcid.to_vec());
+
+                self.encode_transport_params()?;
+            }
+
+            self.got_peer_conn_id = true;
+        }
+
         // To avoid sending an ACK in response to an ACK-only packet, we need
         // to keep track of whether this packet contains any frame other than
         // ACK and PADDING.
@@ -1646,7 +1764,14 @@
                 ack_elicited = true;
             }
 
-            self.process_frame(frame, epoch, now)?;
+            if let Err(e) = self.process_frame(frame, epoch, now) {
+                qlog_with!(self.qlog_streamer, q, {
+                    // Always conclude frame writing on error.
+                    q.finish_frames().ok();
+                });
+
+                return Err(e);
+            }
         }
 
         qlog_with!(self.qlog_streamer, q, {
@@ -1747,7 +1872,7 @@
         // successfully processed, so we can drop the initial state and consider
         // the client's address to be verified.
         if self.is_server && hdr.ty == packet::Type::Handshake {
-            self.drop_epoch_state(packet::EPOCH_INITIAL);
+            self.drop_epoch_state(packet::EPOCH_INITIAL, now);
 
             self.verified_peer_address = true;
         }
@@ -1863,7 +1988,13 @@
                     // Consider the stream flushable also when we are sending a
                     // zero-length frame that has the fin flag set.
                     if (stream.is_flushable() || empty_fin) && !was_flushable {
-                        self.streams.push_flushable(stream_id);
+                        let urgency = stream.urgency;
+                        let incremental = stream.incremental;
+                        self.streams.push_flushable(
+                            stream_id,
+                            urgency,
+                            incremental,
+                        );
                     }
                 },
 
@@ -1881,27 +2012,18 @@
                     }
                 },
 
+                frame::Frame::MaxData { .. } => {
+                    self.almost_full = true;
+                },
+
                 _ => (),
             }
         }
 
         let mut left = b.cap();
 
-        // Use max_packet_size as sent by the peer, except during the handshake
-        // when we haven't parsed transport parameters yet, so use a default
-        // value then.
-        let max_pkt_len = if self.is_established() {
-            // We cap the maximum packet size to 16KB or so, so that it can be
-            // always encoded with a 2-byte varint.
-            cmp::min(16383, self.peer_transport_params.max_packet_size) as usize
-        } else {
-            // Allow for 1200 bytes (minimum QUIC packet size) during the
-            // handshake.
-            1200
-        };
-
         // Limit output packet size to respect peer's max_packet_size limit.
-        left = cmp::min(left, max_pkt_len);
+        left = cmp::min(left, self.max_send_udp_payload_len());
 
         // Limit output packet size by congestion window size.
         left = cmp::min(left, self.recovery.cwnd_available());
@@ -1981,11 +2103,16 @@
 
         let mut ack_eliciting = false;
         let mut in_flight = false;
+        let mut has_data = false;
 
         let mut payload_len = 0;
 
         // Create ACK frame.
-        if self.pkt_num_spaces[epoch].ack_elicited && !is_closing {
+        if self.pkt_num_spaces[epoch].recv_pkt_need_ack.len() > 0 &&
+            (self.pkt_num_spaces[epoch].ack_elicited ||
+                self.recovery.loss_probes[epoch] > 0) &&
+            !is_closing
+        {
             let ack_delay =
                 self.pkt_num_spaces[epoch].largest_rx_pkt_time.elapsed();
 
@@ -2048,12 +2175,15 @@
             }
 
             // Create MAX_DATA frame as needed.
-            if self.should_update_max_data() {
+            if self.almost_full {
                 let frame = frame::Frame::MaxData {
                     max: self.max_rx_data_next,
                 };
 
                 if push_frame_to_pkt!(frames, frame, payload_len, left) {
+                    self.almost_full = false;
+
+                    // Commits the new max_rx_data limit.
                     self.max_rx_data = self.max_rx_data_next;
 
                     ack_eliciting = true;
@@ -2182,6 +2312,43 @@
             if push_frame_to_pkt!(frames, frame, payload_len, left) {
                 ack_eliciting = true;
                 in_flight = true;
+                has_data = true;
+            }
+        }
+
+        // Create DATAGRAM frame.
+        if pkt_type == packet::Type::Short &&
+            left > frame::MAX_DGRAM_OVERHEAD &&
+            !is_closing
+        {
+            if let Some(max_dgram_payload) = self.dgram_max_writable_len() {
+                while let Some(len) = self.dgram_send_queue.peek_front_len() {
+                    if (len + frame::MAX_DGRAM_OVERHEAD) <= left {
+                        // Front of the queue fits this packet, send it
+                        match self.dgram_send_queue.pop() {
+                            Some(data) => {
+                                let frame = frame::Frame::Datagram { data };
+
+                                if push_frame_to_pkt!(
+                                    frames,
+                                    frame,
+                                    payload_len,
+                                    left
+                                ) {
+                                    ack_eliciting = true;
+                                    in_flight = true;
+                                }
+                            },
+
+                            None => continue,
+                        };
+                    } else if len > max_dgram_payload {
+                        // This dgram frame will never fit. Let's purge it.
+                        self.dgram_send_queue.pop();
+                    } else {
+                        break;
+                    }
+                }
             }
         }
 
@@ -2227,12 +2394,15 @@
                 if push_frame_to_pkt!(frames, frame, payload_len, left) {
                     ack_eliciting = true;
                     in_flight = true;
+                    has_data = true;
                 }
 
                 // If the stream is still flushable, push it to the back of the
                 // queue again.
                 if stream.is_flushable() {
-                    self.streams.push_flushable(stream_id);
+                    let urgency = stream.urgency;
+                    let incremental = stream.incremental;
+                    self.streams.push_flushable(stream_id, urgency, incremental);
                 }
 
                 // When fuzzing, try to coalesce multiple STREAM frames in the
@@ -2246,7 +2416,7 @@
             }
         }
 
-        // Create PING for PTO probe.
+        // Create PING for PTO probe if no other ack-elicitng frame is sent.
         if self.recovery.loss_probes[epoch] > 0 &&
             !ack_eliciting &&
             left >= 1 &&
@@ -2341,7 +2511,7 @@
         });
 
         // Encode frames into the output packet.
-        for frame in &frames {
+        for frame in &mut frames {
             trace!("{} tx frm {:?}", self.trace_id, frame);
 
             frame.to_bytes(&mut b)?;
@@ -2349,6 +2519,11 @@
             qlog_with!(self.qlog_streamer, q, {
                 q.add_frame(frame.to_qlog(), false).ok();
             });
+
+            // Once frames have been serialized they are passed to the Recovery
+            // module which manages retransmission. However, some frames do not
+            // contain retransmittable data, so drop it here.
+            frame.shrink_for_retransmission();
         }
 
         qlog_with!(self.qlog_streamer, q, {
@@ -2373,6 +2548,8 @@
             pkt_num: pn,
             frames,
             time_sent: now,
+            time_acked: None,
+            time_lost: None,
             size: if ack_eliciting { written } else { 0 },
             ack_eliciting,
             in_flight,
@@ -2380,12 +2557,13 @@
             delivered_time: now,
             recent_delivered_packet_sent_time: now,
             is_app_limited: false,
+            has_data,
         };
 
         self.recovery.on_packet_sent(
             sent_pkt,
             epoch,
-            self.is_established(),
+            self.handshake_status(),
             now,
             &self.trace_id,
         );
@@ -2399,9 +2577,13 @@
 
         self.sent_count += 1;
 
+        if self.dgram_send_queue.byte_size() > self.recovery.cwnd_available() {
+            self.recovery.update_app_limited(false);
+        }
+
         // On the client, drop initial state after sending an Handshake packet.
         if !self.is_server && hdr.ty == packet::Type::Handshake {
-            self.drop_epoch_state(packet::EPOCH_INITIAL);
+            self.drop_epoch_state(packet::EPOCH_INITIAL, now);
         }
 
         self.max_send_bytes = self.max_send_bytes.saturating_sub(written);
@@ -2421,6 +2603,22 @@
         Ok(written)
     }
 
+    // Returns the maximum len of a packet to be sent. This is max_packet_size
+    // as sent by the peer, except during the handshake when we haven't parsed
+    // transport parameters yet, so use a default value then.
+    fn max_send_udp_payload_len(&self) -> usize {
+        if self.is_established() {
+            // We cap the maximum packet size to 16KB or so, so that it can be
+            // always encoded with a 2-byte varint.
+            cmp::min(16383, self.peer_transport_params.max_udp_payload_size)
+                as usize
+        } else {
+            // Allow for 1200 bytes (minimum QUIC packet size) during the
+            // handshake.
+            MIN_CLIENT_INITIAL_LEN
+        }
+    }
+
     /// Reads contiguous data from a stream into the provided slice.
     ///
     /// The slice must be sized by the caller and will be populated up to its
@@ -2465,7 +2663,7 @@
         }
 
         #[cfg(feature = "qlog")]
-        let offset = stream.recv.off_back();
+        let offset = stream.recv.off_front();
 
         let (read, fin) = stream.recv.pop(out)?;
 
@@ -2501,6 +2699,10 @@
             q.add_event(ev).ok();
         });
 
+        if self.should_update_max_data() {
+            self.almost_full = true;
+        }
+
         Ok((read, fin))
     }
 
@@ -2578,6 +2780,9 @@
 
         let sent = stream.send.push_slice(buf, fin)?;
 
+        let urgency = stream.urgency;
+        let incremental = stream.incremental;
+
         let flushable = stream.is_flushable();
 
         let writable = stream.is_writable();
@@ -2598,7 +2803,7 @@
         // Consider the stream flushable also when we are sending a zero-length
         // frame that has the fin flag set.
         if (flushable || empty_fin) && !was_flushable {
-            self.streams.push_flushable(stream_id);
+            self.streams.push_flushable(stream_id, urgency, incremental);
         }
 
         if !writable {
@@ -2624,6 +2829,39 @@
         Ok(sent)
     }
 
+    /// Sets the priority for a stream.
+    ///
+    /// A stream's priority determines the order in which stream data is sent
+    /// on the wire (streams with lower priority are sent first). Streams are
+    /// created with a default priority of `127`.
+    ///
+    /// The target stream is created if it did not exist before calling this
+    /// method.
+    pub fn stream_priority(
+        &mut self, stream_id: u64, urgency: u8, incremental: bool,
+    ) -> Result<()> {
+        // Get existing stream or create a new one, but if the stream
+        // has already been closed and collected, ignore the prioritization.
+        let stream = match self.get_or_create_stream(stream_id, true) {
+            Ok(v) => v,
+
+            Err(Error::Done) => return Ok(()),
+
+            Err(e) => return Err(e),
+        };
+
+        if stream.urgency == urgency && stream.incremental == incremental {
+            return Ok(());
+        }
+
+        stream.urgency = urgency;
+        stream.incremental = incremental;
+
+        // TODO: reprioritization
+
+        Ok(())
+    }
+
     /// Shuts down reading or writing from/to the specified stream.
     ///
     /// When the `direction` argument is set to [`Shutdown::Read`], outstanding
@@ -2810,6 +3048,188 @@
         self.streams.writable()
     }
 
+    /// Reads the first received DATAGRAM.
+    ///
+    /// On success the DATAGRAM's data is returned along with its size.
+    ///
+    /// [`Done`] is returned if there is no data to read.
+    ///
+    /// [`BufferTooShort`] is returned if the provided buffer is too small for
+    /// the DATAGRAM.
+    ///
+    /// [`Done`]: enum.Error.html#variant.Done
+    /// [`BufferTooShort`]: enum.Error.html#variant.BufferTooShort
+    ///
+    /// ## Examples:
+    ///
+    /// ```no_run
+    /// # let mut buf = [0; 512];
+    /// # let socket = std::net::UdpSocket::bind("127.0.0.1:0").unwrap();
+    /// # let mut config = quiche::Config::new(quiche::PROTOCOL_VERSION)?;
+    /// # let scid = [0xba; 16];
+    /// # let mut conn = quiche::accept(&scid, None, &mut config)?;
+    /// let mut dgram_buf = [0; 512];
+    /// while let Ok((len)) = conn.dgram_recv(&mut dgram_buf) {
+    ///     println!("Got {} bytes of DATAGRAM", len);
+    /// }
+    /// # Ok::<(), quiche::Error>(())
+    /// ```
+    pub fn dgram_recv(&mut self, buf: &mut [u8]) -> Result<usize> {
+        match self.dgram_recv_queue.pop() {
+            Some(d) => {
+                if d.len() > buf.len() {
+                    return Err(Error::BufferTooShort);
+                }
+
+                buf[..d.len()].copy_from_slice(&d);
+                Ok(d.len())
+            },
+
+            None => Err(Error::Done),
+        }
+    }
+
+    /// Reads the first received DATAGRAM without removing it from the queue.
+    ///
+    /// On success the DATAGRAM's data is returned along with the actual number
+    /// of bytes peeked. The requested length cannot exceed the DATAGRAM's
+    /// actual length.
+    ///
+    /// [`Done`] is returned if there is no data to read.
+    ///
+    /// [`BufferTooShort`] is returned if the provided buffer is smaller the
+    /// number of bytes to peek.
+    ///
+    /// [`Done`]: enum.Error.html#variant.Done
+    /// [`BufferTooShort`]: enum.Error.html#variant.BufferTooShort
+    pub fn dgram_recv_peek(&self, buf: &mut [u8], len: usize) -> Result<usize> {
+        self.dgram_recv_queue.peek_front_bytes(buf, len)
+    }
+
+    /// Returns the length of the first stored DATAGRAM.
+    pub fn dgram_recv_front_len(&self) -> Option<usize> {
+        self.dgram_recv_queue.peek_front_len()
+    }
+
+    /// Sends data in a DATAGRAM frame.
+    ///
+    /// [`Done`] is returned if no data was written.
+    /// [`InvalidState`] is returned if the peer does not support DATAGRAM.
+    /// [`BufferTooShort`] is returned if the DATAGRAM frame length is larger
+    /// than peer's supported DATAGRAM frame length. Use
+    /// [`dgram_max_writable_len()`] to get the largest supported DATAGRAM
+    /// frame length.
+    ///
+    /// Note that there is no flow control of DATAGRAM frames, so in order to
+    /// avoid buffering an infinite amount of frames we apply an internal
+    /// limit.
+    ///
+    /// [`Done`]: enum.Error.html#variant.Done
+    /// [`InvalidState`]: enum.Error.html#variant.InvalidState
+    /// [`BufferTooShort`]: enum.Error.html#variant.BufferTooShort
+    /// [`dgram_max_writable_len()`]:
+    /// struct.Connection.html#method.dgram_max_writable_len
+    ///
+    /// ## Examples:
+    ///
+    /// ```no_run
+    /// # let mut buf = [0; 512];
+    /// # let socket = std::net::UdpSocket::bind("127.0.0.1:0").unwrap();
+    /// # let mut config = quiche::Config::new(quiche::PROTOCOL_VERSION)?;
+    /// # let scid = [0xba; 16];
+    /// # let mut conn = quiche::accept(&scid, None, &mut config)?;
+    /// conn.dgram_send(b"hello")?;
+    /// # Ok::<(), quiche::Error>(())
+    /// ```
+    pub fn dgram_send(&mut self, buf: &[u8]) -> Result<()> {
+        let max_payload_len = match self.dgram_max_writable_len() {
+            Some(v) => v as usize,
+            None => {
+                return Err(Error::InvalidState);
+            },
+        };
+
+        if buf.len() > max_payload_len {
+            return Err(Error::BufferTooShort);
+        }
+
+        self.dgram_send_queue.push(buf)?;
+
+        if self.dgram_send_queue.byte_size() > self.recovery.cwnd_available() {
+            self.recovery.update_app_limited(false);
+        }
+
+        Ok(())
+    }
+
+    /// Purges queued outgoing DATAGRAMs matching the predicate.
+    ///
+    /// In other words, remove all elements `e` such that `f(&e)` returns true.
+    ///
+    /// ## Examples:
+    /// ```no_run
+    /// # let socket = std::net::UdpSocket::bind("127.0.0.1:0").unwrap();
+    /// # let mut config = quiche::Config::new(quiche::PROTOCOL_VERSION)?;
+    /// # let scid = [0xba; 16];
+    /// # let mut conn = quiche::accept(&scid, None, &mut config)?;
+    /// conn.dgram_send(b"hello")?;
+    /// conn.dgram_purge_outgoing(&|d: &[u8]| -> bool { d[0] == 0 });
+    /// # Ok::<(), quiche::Error>(())
+    /// ```
+    pub fn dgram_purge_outgoing<F: Fn(&[u8]) -> bool>(&mut self, f: F) {
+        self.dgram_send_queue.purge(f);
+    }
+
+    /// Returns the maximum DATAGRAM payload that can be sent.
+    ///
+    /// [`None`] is returned if the peer hasn't advertised a maximum DATAGRAM
+    /// frame size.
+    ///
+    /// ## Examples:
+    ///
+    /// ```no_run
+    /// # let mut buf = [0; 512];
+    /// # let socket = std::net::UdpSocket::bind("127.0.0.1:0").unwrap();
+    /// # let mut config = quiche::Config::new(quiche::PROTOCOL_VERSION)?;
+    /// # let scid = [0xba; 16];
+    /// # let mut conn = quiche::accept(&scid, None, &mut config)?;
+    /// if let Some(payload_size) = conn.dgram_max_writable_len() {
+    ///     if payload_size > 5 {
+    ///         conn.dgram_send(b"hello")?;
+    ///     }
+    /// }
+    /// # Ok::<(), quiche::Error>(())
+    /// ```
+    pub fn dgram_max_writable_len(&self) -> Option<usize> {
+        match self.peer_transport_params.max_datagram_frame_size {
+            None => None,
+            Some(peer_frame_len) => {
+                // Start from the maximum packet size...
+                let mut max_len = self.max_send_udp_payload_len();
+                // ...subtract the Short packet header overhead...
+                // (1 byte of pkt_len + len of dcid)
+                max_len = max_len.saturating_sub(1 + self.dcid.len());
+                // ...subtract the packet number (max len)...
+                max_len = max_len.saturating_sub(packet::MAX_PKT_NUM_LEN);
+                // ...subtract the crypto overhead...
+                max_len = max_len.saturating_sub(
+                    self.pkt_num_spaces[packet::EPOCH_APPLICATION]
+                        .crypto_overhead()?,
+                );
+                // ...clamp to what peer can support...
+                max_len = cmp::min(peer_frame_len as usize, max_len);
+                // ...subtract frame overhead, checked for underflow.
+                max_len.checked_sub(frame::MAX_DGRAM_OVERHEAD)
+            },
+        }
+    }
+
+    fn dgram_enabled(&self) -> bool {
+        self.local_transport_params
+            .max_datagram_frame_size
+            .is_none()
+    }
+
     /// Returns the amount of time until the next timeout event.
     ///
     /// Once the given duration has elapsed, the [`on_timeout()`] method should
@@ -2890,7 +3310,7 @@
                 trace!("{} loss detection timeout expired", self.trace_id);
 
                 self.recovery.on_loss_detection_timeout(
-                    self.is_established(),
+                    self.handshake_status(),
                     now,
                     &self.trace_id,
                 );
@@ -3000,6 +3420,20 @@
         }
     }
 
+    fn encode_transport_params(&mut self) -> Result<()> {
+        let mut raw_params = [0; 128];
+
+        let raw_params = TransportParams::encode(
+            &self.local_transport_params,
+            self.is_server,
+            &mut raw_params,
+        )?;
+
+        self.handshake.set_quic_transport_params(raw_params)?;
+
+        Ok(())
+    }
+
     /// Continues the handshake.
     ///
     /// If the connection is already established, it does nothing.
@@ -3082,8 +3516,9 @@
         // If there are flushable, almost full or blocked streams, use the
         // Application epoch.
         if (self.is_established() || self.is_in_early_data()) &&
-            (self.should_update_max_data() ||
+            (self.almost_full ||
                 self.blocked_limit.is_some() ||
+                self.dgram_send_queue.has_pending() ||
                 self.streams.should_update_max_streams_bidi() ||
                 self.streams.should_update_max_streams_uni() ||
                 self.streams.has_flushable() ||
@@ -3128,23 +3563,30 @@
                     ))
                     .ok_or(Error::InvalidFrame)?;
 
-                self.recovery.on_ack_received(
-                    &ranges,
-                    ack_delay,
-                    epoch,
-                    self.is_established(),
-                    now,
-                    &self.trace_id,
-                )?;
+                if epoch == packet::EPOCH_HANDSHAKE {
+                    self.peer_verified_address = true;
+                }
 
                 // When we receive an ACK for a 1-RTT packet after handshake
                 // completion, it means the handshake has been confirmed.
                 if epoch == packet::EPOCH_APPLICATION && self.is_established() {
-                    self.handshake_confirmed = true;
+                    self.peer_verified_address = true;
 
-                    // Once the handshake is confirmed, we can drop Handshake
-                    // keys.
-                    self.drop_epoch_state(packet::EPOCH_HANDSHAKE);
+                    self.handshake_confirmed = true;
+                }
+
+                self.recovery.on_ack_received(
+                    &ranges,
+                    ack_delay,
+                    epoch,
+                    self.handshake_status(),
+                    now,
+                    &self.trace_id,
+                )?;
+
+                // Once the handshake is confirmed, we can drop Handshake keys.
+                if self.handshake_confirmed {
+                    self.drop_epoch_state(packet::EPOCH_HANDSHAKE, now);
                 }
             },
 
@@ -3226,10 +3668,62 @@
                     let peer_params =
                         TransportParams::decode(&raw_params, self.is_server)?;
 
-                    if peer_params.original_connection_id != self.odcid {
-                        return Err(Error::InvalidTransportParam);
+                    if self.version >= PROTOCOL_VERSION_DRAFT28 {
+                        // Validate initial_source_connection_id.
+                        match &peer_params.initial_source_connection_id {
+                            Some(v) if v != &self.dcid =>
+                                return Err(Error::InvalidTransportParam),
+
+                            Some(_) => (),
+
+                            // initial_source_connection_id must be sent by
+                            // both endpoints.
+                            None => return Err(Error::InvalidTransportParam),
+                        }
+
+                        // Validate original_destination_connection_id.
+                        if let Some(odcid) = &self.odcid {
+                            match &peer_params.original_destination_connection_id
+                            {
+                                Some(v) if v != odcid =>
+                                    return Err(Error::InvalidTransportParam),
+
+                                Some(_) => (),
+
+                                // original_destination_connection_id must be
+                                // sent by the server.
+                                None if !self.is_server =>
+                                    return Err(Error::InvalidTransportParam),
+
+                                None => (),
+                            }
+                        }
+
+                        // Validate retry_source_connection_id.
+                        if let Some(rscid) = &self.rscid {
+                            match &peer_params.retry_source_connection_id {
+                                Some(v) if v != rscid =>
+                                    return Err(Error::InvalidTransportParam),
+
+                                Some(_) => (),
+
+                                // retry_source_connection_id must be sent by
+                                // the server.
+                                None => return Err(Error::InvalidTransportParam),
+                            }
+                        }
+                    } else {
+                        // Legacy validation of the original connection ID when
+                        // stateless retry is performed, for drafts < 28.
+                        if self.did_retry &&
+                            peer_params.original_destination_connection_id !=
+                                self.odcid
+                        {
+                            return Err(Error::InvalidTransportParam);
+                        }
                     }
 
+                    // Update flow control limits.
                     self.max_tx_data = peer_params.initial_max_data;
 
                     self.streams.update_peer_max_streams_bidi(
@@ -3259,12 +3753,7 @@
                     return Err(Error::InvalidStreamState);
                 }
 
-                // Check for flow control limits.
-                let data_len = data.len() as u64;
-
-                if self.rx_data + data_len > self.max_rx_data {
-                    return Err(Error::FlowControl);
-                }
+                let max_rx_data_left = self.max_rx_data - self.rx_data;
 
                 // Get existing stream or create a new one, but if the stream
                 // has already been closed and collected, ignore the frame.
@@ -3285,13 +3774,21 @@
                     Err(e) => return Err(e),
                 };
 
+                // Check for the connection-level flow control limit.
+                let max_off_delta =
+                    data.max_off().saturating_sub(stream.recv.max_off());
+
+                if max_off_delta > max_rx_data_left {
+                    return Err(Error::FlowControl);
+                }
+
                 stream.recv.push(data)?;
 
                 if stream.is_readable() {
                     self.streams.mark_readable(stream_id, true);
                 }
 
-                self.rx_data += data_len;
+                self.rx_data += max_off_delta;
             },
 
             frame::Frame::MaxData { max } => {
@@ -3327,7 +3824,9 @@
                 // If the stream is now flushable push it to the flushable queue,
                 // but only if it wasn't already queued.
                 if stream.is_flushable() && !was_flushable {
-                    self.streams.push_flushable(stream_id);
+                    let urgency = stream.urgency;
+                    let incremental = stream.incremental;
+                    self.streams.push_flushable(stream_id, urgency, incremental);
                 }
 
                 if writable {
@@ -3336,16 +3835,16 @@
             },
 
             frame::Frame::MaxStreamsBidi { max } => {
-                if max > 2u64.pow(60) {
-                    return Err(Error::StreamLimit);
+                if max > MAX_STREAM_ID {
+                    return Err(Error::InvalidFrame);
                 }
 
                 self.streams.update_peer_max_streams_bidi(max);
             },
 
             frame::Frame::MaxStreamsUni { max } => {
-                if max > 2u64.pow(60) {
-                    return Err(Error::StreamLimit);
+                if max > MAX_STREAM_ID {
+                    return Err(Error::InvalidFrame);
                 }
 
                 self.streams.update_peer_max_streams_uni(max);
@@ -3355,9 +3854,15 @@
 
             frame::Frame::StreamDataBlocked { .. } => (),
 
-            frame::Frame::StreamsBlockedBidi { .. } => (),
+            frame::Frame::StreamsBlockedBidi { limit } =>
+                if limit > MAX_STREAM_ID {
+                    return Err(Error::InvalidFrame);
+                },
 
-            frame::Frame::StreamsBlockedUni { .. } => (),
+            frame::Frame::StreamsBlockedUni { limit } =>
+                if limit > MAX_STREAM_ID {
+                    return Err(Error::InvalidFrame);
+                },
 
             // TODO: implement connection migration
             frame::Frame::NewConnectionId { .. } => (),
@@ -3384,10 +3889,29 @@
                     return Err(Error::InvalidPacket);
                 }
 
+                self.peer_verified_address = true;
+
                 self.handshake_confirmed = true;
 
                 // Once the handshake is confirmed, we can drop Handshake keys.
-                self.drop_epoch_state(packet::EPOCH_HANDSHAKE);
+                self.drop_epoch_state(packet::EPOCH_HANDSHAKE, now);
+            },
+
+            frame::Frame::Datagram { data } => {
+                // Close the connection if DATAGRAMs are not enabled.
+                // quiche always advertises support for 64K sized DATAGRAM
+                // frames, as recommended by the standard, so we don't need a
+                // size check.
+                if self.dgram_enabled() {
+                    return Err(Error::InvalidState);
+                }
+
+                // If recv queue is full, discard oldest
+                if self.dgram_recv_queue.is_full() {
+                    self.dgram_recv_queue.pop();
+                }
+
+                self.dgram_recv_queue.push(&data)?;
             },
         }
 
@@ -3395,7 +3919,7 @@
     }
 
     /// Drops the keys and recovery state for the given epoch.
-    fn drop_epoch_state(&mut self, epoch: packet::Epoch) {
+    fn drop_epoch_state(&mut self, epoch: packet::Epoch, now: time::Instant) {
         if self.pkt_num_spaces[epoch].crypto_open.is_none() {
             return;
         }
@@ -3404,8 +3928,11 @@
         self.pkt_num_spaces[epoch].crypto_seal = None;
         self.pkt_num_spaces[epoch].clear();
 
-        self.recovery
-            .on_pkt_num_space_discarded(epoch, self.is_established());
+        self.recovery.on_pkt_num_space_discarded(
+            epoch,
+            self.handshake_status(),
+            now,
+        );
 
         trace!("{} dropped epoch {} state", self.trace_id, epoch);
     }
@@ -3456,6 +3983,18 @@
         let cap = self.max_tx_data - self.tx_data;
         cmp::min(cap, self.recovery.cwnd_available() as u64) as usize
     }
+
+    /// Returns the connection's handshake status for use in loss recovery.
+    fn handshake_status(&self) -> recovery::HandshakeStatus {
+        recovery::HandshakeStatus {
+            has_handshake_keys: self.pkt_num_spaces[packet::EPOCH_HANDSHAKE]
+                .has_keys(),
+
+            peer_verified_address: self.peer_verified_address,
+
+            completed: self.is_established(),
+        }
+    }
 }
 
 /// Maps an `Error` to `Error::Done`, or itself.
@@ -3536,10 +4075,10 @@
 
 #[derive(Clone, Debug, PartialEq)]
 struct TransportParams {
-    pub original_connection_id: Option<Vec<u8>>,
+    pub original_destination_connection_id: Option<Vec<u8>>,
     pub max_idle_timeout: u64,
     pub stateless_reset_token: Option<Vec<u8>>,
-    pub max_packet_size: u64,
+    pub max_udp_payload_size: u64,
     pub initial_max_data: u64,
     pub initial_max_stream_data_bidi_local: u64,
     pub initial_max_stream_data_bidi_remote: u64,
@@ -3551,15 +4090,18 @@
     pub disable_active_migration: bool,
     // pub preferred_address: ...,
     pub active_conn_id_limit: u64,
+    pub initial_source_connection_id: Option<Vec<u8>>,
+    pub retry_source_connection_id: Option<Vec<u8>>,
+    pub max_datagram_frame_size: Option<u64>,
 }
 
 impl Default for TransportParams {
     fn default() -> TransportParams {
         TransportParams {
-            original_connection_id: None,
+            original_destination_connection_id: None,
             max_idle_timeout: 0,
             stateless_reset_token: None,
-            max_packet_size: 65527,
+            max_udp_payload_size: 65527,
             initial_max_data: 0,
             initial_max_stream_data_bidi_local: 0,
             initial_max_stream_data_bidi_remote: 0,
@@ -3569,7 +4111,10 @@
             ack_delay_exponent: 3,
             max_ack_delay: 25,
             disable_active_migration: false,
-            active_conn_id_limit: 0,
+            active_conn_id_limit: 2,
+            initial_source_connection_id: None,
+            retry_source_connection_id: None,
+            max_datagram_frame_size: None,
         }
     }
 }
@@ -3593,7 +4138,7 @@
                         return Err(Error::InvalidTransportParam);
                     }
 
-                    tp.original_connection_id = Some(val.to_vec());
+                    tp.original_destination_connection_id = Some(val.to_vec());
                 },
 
                 0x0001 => {
@@ -3609,9 +4154,9 @@
                 },
 
                 0x0003 => {
-                    tp.max_packet_size = val.get_varint()?;
+                    tp.max_udp_payload_size = val.get_varint()?;
 
-                    if tp.max_packet_size < 1200 {
+                    if tp.max_udp_payload_size < 1200 {
                         return Err(Error::InvalidTransportParam);
                     }
                 },
@@ -3635,8 +4180,8 @@
                 0x0008 => {
                     let max = val.get_varint()?;
 
-                    if max > 2u64.pow(60) {
-                        return Err(Error::StreamLimit);
+                    if max > MAX_STREAM_ID {
+                        return Err(Error::InvalidTransportParam);
                     }
 
                     tp.initial_max_streams_bidi = max;
@@ -3645,8 +4190,8 @@
                 0x0009 => {
                     let max = val.get_varint()?;
 
-                    if max > 2u64.pow(60) {
-                        return Err(Error::StreamLimit);
+                    if max > MAX_STREAM_ID {
+                        return Err(Error::InvalidTransportParam);
                     }
 
                     tp.initial_max_streams_uni = max;
@@ -3685,7 +4230,29 @@
                 },
 
                 0x000e => {
-                    tp.active_conn_id_limit = val.get_varint()?;
+                    let limit = val.get_varint()?;
+
+                    if limit < 2 {
+                        return Err(Error::InvalidTransportParam);
+                    }
+
+                    tp.active_conn_id_limit = limit;
+                },
+
+                0x000f => {
+                    tp.initial_source_connection_id = Some(val.to_vec());
+                },
+
+                0x00010 => {
+                    if is_server {
+                        return Err(Error::InvalidTransportParam);
+                    }
+
+                    tp.retry_source_connection_id = Some(val.to_vec());
+                },
+
+                0x0020 => {
+                    tp.max_datagram_frame_size = Some(val.get_varint()?);
                 },
 
                 // Ignore unknown parameters.
@@ -3711,7 +4278,7 @@
         let mut b = octets::OctetsMut::with_slice(out);
 
         if is_server {
-            if let Some(ref odcid) = tp.original_connection_id {
+            if let Some(ref odcid) = tp.original_destination_connection_id {
                 TransportParams::encode_param(&mut b, 0x0000, odcid.len())?;
                 b.put_bytes(&odcid)?;
             }
@@ -3726,20 +4293,20 @@
             b.put_varint(tp.max_idle_timeout)?;
         }
 
-        if let Some(ref token) = tp.stateless_reset_token {
-            if is_server {
+        if is_server {
+            if let Some(ref token) = tp.stateless_reset_token {
                 TransportParams::encode_param(&mut b, 0x0002, token.len())?;
                 b.put_bytes(&token)?;
             }
         }
 
-        if tp.max_packet_size != 0 {
+        if tp.max_udp_payload_size != 0 {
             TransportParams::encode_param(
                 &mut b,
                 0x0003,
-                octets::varint_len(tp.max_packet_size),
+                octets::varint_len(tp.max_udp_payload_size),
             )?;
-            b.put_varint(tp.max_packet_size)?;
+            b.put_varint(tp.max_udp_payload_size)?;
         }
 
         if tp.initial_max_data != 0 {
@@ -3820,7 +4387,7 @@
 
         // TODO: encode preferred_address
 
-        if tp.active_conn_id_limit != 0 {
+        if tp.active_conn_id_limit != 2 {
             TransportParams::encode_param(
                 &mut b,
                 0x000e,
@@ -3829,6 +4396,27 @@
             b.put_varint(tp.active_conn_id_limit)?;
         }
 
+        if let Some(scid) = &tp.initial_source_connection_id {
+            TransportParams::encode_param(&mut b, 0x000f, scid.len())?;
+            b.put_bytes(&scid)?;
+        }
+
+        if is_server {
+            if let Some(scid) = &tp.retry_source_connection_id {
+                TransportParams::encode_param(&mut b, 0x0010, scid.len())?;
+                b.put_bytes(&scid)?;
+            }
+        }
+
+        if let Some(max_datagram_frame_size) = tp.max_datagram_frame_size {
+            TransportParams::encode_param(
+                &mut b,
+                0x0020,
+                octets::varint_len(max_datagram_frame_size),
+            )?;
+            b.put_varint(max_datagram_frame_size)?;
+        }
+
         let out_len = b.off();
 
         Ok(&mut out[..out_len])
@@ -3840,8 +4428,9 @@
         &self, owner: qlog::TransportOwner, version: u32, alpn: &[u8],
         cipher: Option<crypto::Algorithm>,
     ) -> qlog::event::Event {
-        let ocid =
-            qlog::HexSlice::maybe_string(self.original_connection_id.as_ref());
+        let ocid = qlog::HexSlice::maybe_string(
+            self.original_destination_connection_id.as_ref(),
+        );
         let stateless_reset_token =
             qlog::HexSlice::maybe_string(self.stateless_reset_token.as_ref());
 
@@ -3856,7 +4445,7 @@
             stateless_reset_token,
             Some(self.disable_active_migration),
             Some(self.max_idle_timeout),
-            Some(self.max_packet_size),
+            Some(self.max_udp_payload_size),
             Some(self.ack_delay_exponent),
             Some(self.max_ack_delay),
             Some(self.active_conn_id_limit),
@@ -4176,10 +4765,10 @@
     fn transport_params() {
         // Server encodes, client decodes.
         let tp = TransportParams {
-            original_connection_id: None,
+            original_destination_connection_id: None,
             max_idle_timeout: 30,
             stateless_reset_token: Some(vec![0xba; 16]),
-            max_packet_size: 23_421,
+            max_udp_payload_size: 23_421,
             initial_max_data: 424_645_563,
             initial_max_stream_data_bidi_local: 154_323_123,
             initial_max_stream_data_bidi_remote: 6_587_456,
@@ -4190,12 +4779,15 @@
             max_ack_delay: 2_u64.pow(14) - 1,
             disable_active_migration: true,
             active_conn_id_limit: 8,
+            initial_source_connection_id: Some(b"woot woot".to_vec()),
+            retry_source_connection_id: Some(b"retry".to_vec()),
+            max_datagram_frame_size: Some(32),
         };
 
         let mut raw_params = [42; 256];
         let raw_params =
             TransportParams::encode(&tp, true, &mut raw_params).unwrap();
-        assert_eq!(raw_params.len(), 73);
+        assert_eq!(raw_params.len(), 94);
 
         let new_tp = TransportParams::decode(&raw_params, false).unwrap();
 
@@ -4203,10 +4795,10 @@
 
         // Client encodes, server decodes.
         let tp = TransportParams {
-            original_connection_id: None,
+            original_destination_connection_id: None,
             max_idle_timeout: 30,
             stateless_reset_token: None,
-            max_packet_size: 23_421,
+            max_udp_payload_size: 23_421,
             initial_max_data: 424_645_563,
             initial_max_stream_data_bidi_local: 154_323_123,
             initial_max_stream_data_bidi_remote: 6_587_456,
@@ -4217,12 +4809,15 @@
             max_ack_delay: 2_u64.pow(14) - 1,
             disable_active_migration: true,
             active_conn_id_limit: 8,
+            initial_source_connection_id: Some(b"woot woot".to_vec()),
+            retry_source_connection_id: None,
+            max_datagram_frame_size: Some(32),
         };
 
         let mut raw_params = [42; 256];
         let raw_params =
             TransportParams::encode(&tp, false, &mut raw_params).unwrap();
-        assert_eq!(raw_params.len(), 55);
+        assert_eq!(raw_params.len(), 69);
 
         let new_tp = TransportParams::decode(&raw_params, true).unwrap();
 
@@ -4261,6 +4856,9 @@
         assert_eq!(pipe.client.recv(&mut buf[..len]), Ok(len));
 
         assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.version, PROTOCOL_VERSION);
+        assert_eq!(pipe.server.version, PROTOCOL_VERSION);
     }
 
     #[test]
@@ -4281,6 +4879,50 @@
     }
 
     #[test]
+    fn missing_initial_source_connection_id() {
+        let mut buf = [0; 65535];
+
+        let mut pipe = testing::Pipe::default().unwrap();
+
+        // Reset initial_source_connection_id.
+        pipe.client
+            .local_transport_params
+            .initial_source_connection_id = None;
+        assert_eq!(pipe.client.encode_transport_params(), Ok(()));
+
+        // Client sends initial flight.
+        let len = pipe.client.send(&mut buf).unwrap();
+
+        // Server rejects transport parameters.
+        assert_eq!(
+            testing::recv_send(&mut pipe.server, &mut buf, len),
+            Err(Error::InvalidTransportParam)
+        );
+    }
+
+    #[test]
+    fn invalid_initial_source_connection_id() {
+        let mut buf = [0; 65535];
+
+        let mut pipe = testing::Pipe::default().unwrap();
+
+        // Scramble initial_source_connection_id.
+        pipe.client
+            .local_transport_params
+            .initial_source_connection_id = Some(b"bogus value".to_vec());
+        assert_eq!(pipe.client.encode_transport_params(), Ok(()));
+
+        // Client sends initial flight.
+        let len = pipe.client.send(&mut buf).unwrap();
+
+        // Server rejects transport parameters.
+        assert_eq!(
+            testing::recv_send(&mut pipe.server, &mut buf, len),
+            Err(Error::InvalidTransportParam)
+        );
+    }
+
+    #[test]
     fn handshake() {
         let mut buf = [0; 65535];
 
@@ -4528,6 +5170,35 @@
     }
 
     #[test]
+    fn flow_control_limit_dup() {
+        let mut buf = [0; 65535];
+
+        let mut pipe = testing::Pipe::default().unwrap();
+
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        let frames = [
+            // One byte less than stream limit.
+            frame::Frame::Stream {
+                stream_id: 4,
+                data: stream::RangeBuf::from(b"aaaaaaaaaaaaaa", 0, false),
+            },
+            // Same stream, but one byte more.
+            frame::Frame::Stream {
+                stream_id: 4,
+                data: stream::RangeBuf::from(b"aaaaaaaaaaaaaaa", 0, false),
+            },
+            frame::Frame::Stream {
+                stream_id: 12,
+                data: stream::RangeBuf::from(b"aaaaaaaaaaaaaaa", 0, false),
+            },
+        ];
+
+        let pkt_type = packet::Type::Short;
+        assert!(pipe.send_pkt_to_server(pkt_type, &frames, &mut buf).is_ok());
+    }
+
+    #[test]
     fn flow_control_update() {
         let mut buf = [0; 65535];
 
@@ -4714,19 +5385,19 @@
 
         assert_eq!(pipe.handshake(&mut buf), Ok(()));
 
-        let frames = [frame::Frame::MaxStreamsBidi { max: 2u64.pow(60) }];
+        let frames = [frame::Frame::MaxStreamsBidi { max: MAX_STREAM_ID }];
 
         let pkt_type = packet::Type::Short;
         assert!(pipe.send_pkt_to_server(pkt_type, &frames, &mut buf).is_ok());
 
         let frames = [frame::Frame::MaxStreamsBidi {
-            max: 2u64.pow(60) + 1,
+            max: MAX_STREAM_ID + 1,
         }];
 
         let pkt_type = packet::Type::Short;
         assert_eq!(
             pipe.send_pkt_to_server(pkt_type, &frames, &mut buf),
-            Err(Error::StreamLimit),
+            Err(Error::InvalidFrame),
         );
     }
 
@@ -4784,19 +5455,71 @@
 
         assert_eq!(pipe.handshake(&mut buf), Ok(()));
 
-        let frames = [frame::Frame::MaxStreamsUni { max: 2u64.pow(60) }];
+        let frames = [frame::Frame::MaxStreamsUni { max: MAX_STREAM_ID }];
 
         let pkt_type = packet::Type::Short;
         assert!(pipe.send_pkt_to_server(pkt_type, &frames, &mut buf).is_ok());
 
         let frames = [frame::Frame::MaxStreamsUni {
-            max: 2u64.pow(60) + 1,
+            max: MAX_STREAM_ID + 1,
         }];
 
         let pkt_type = packet::Type::Short;
         assert_eq!(
             pipe.send_pkt_to_server(pkt_type, &frames, &mut buf),
-            Err(Error::StreamLimit),
+            Err(Error::InvalidFrame),
+        );
+    }
+
+    #[test]
+    fn streams_blocked_max_bidi() {
+        let mut buf = [0; 65535];
+
+        let mut pipe = testing::Pipe::default().unwrap();
+
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        let frames = [frame::Frame::StreamsBlockedBidi {
+            limit: MAX_STREAM_ID,
+        }];
+
+        let pkt_type = packet::Type::Short;
+        assert!(pipe.send_pkt_to_server(pkt_type, &frames, &mut buf).is_ok());
+
+        let frames = [frame::Frame::StreamsBlockedBidi {
+            limit: MAX_STREAM_ID + 1,
+        }];
+
+        let pkt_type = packet::Type::Short;
+        assert_eq!(
+            pipe.send_pkt_to_server(pkt_type, &frames, &mut buf),
+            Err(Error::InvalidFrame),
+        );
+    }
+
+    #[test]
+    fn streams_blocked_max_uni() {
+        let mut buf = [0; 65535];
+
+        let mut pipe = testing::Pipe::default().unwrap();
+
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        let frames = [frame::Frame::StreamsBlockedUni {
+            limit: MAX_STREAM_ID,
+        }];
+
+        let pkt_type = packet::Type::Short;
+        assert!(pipe.send_pkt_to_server(pkt_type, &frames, &mut buf).is_ok());
+
+        let frames = [frame::Frame::StreamsBlockedUni {
+            limit: MAX_STREAM_ID + 1,
+        }];
+
+        let pkt_type = packet::Type::Short;
+        assert_eq!(
+            pipe.send_pkt_to_server(pkt_type, &frames, &mut buf),
+            Err(Error::InvalidFrame),
         );
     }
 
@@ -5757,7 +6480,77 @@
     fn retry() {
         let mut buf = [0; 65535];
 
-        let mut pipe = testing::Pipe::default().unwrap();
+        let mut config = Config::new(PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\06proto2")
+            .unwrap();
+
+        let mut pipe = testing::Pipe::with_server_config(&mut config).unwrap();
+
+        // Client sends initial flight.
+        let mut len = pipe.client.send(&mut buf).unwrap();
+
+        // Server sends Retry packet.
+        let hdr = Header::from_slice(&mut buf[..len], MAX_CONN_ID_LEN).unwrap();
+
+        let odcid = hdr.dcid.to_vec();
+
+        let mut scid = [0; MAX_CONN_ID_LEN];
+        rand::rand_bytes(&mut scid[..]);
+
+        let token = b"quiche test retry token";
+
+        len = packet::retry(
+            &hdr.scid,
+            &hdr.dcid,
+            &scid,
+            token,
+            hdr.version,
+            &mut buf,
+        )
+        .unwrap();
+
+        // Client receives Retry and sends new Initial.
+        assert_eq!(pipe.client.recv(&mut buf[..len]), Ok(len));
+
+        len = pipe.client.send(&mut buf).unwrap();
+
+        let hdr = Header::from_slice(&mut buf[..len], MAX_CONN_ID_LEN).unwrap();
+        assert_eq!(&hdr.token.unwrap(), token);
+
+        // Server accepts connection and send first flight.
+        pipe.server = accept(&scid, Some(&odcid), &mut config).unwrap();
+
+        len = testing::recv_send(&mut pipe.server, &mut buf, len).unwrap();
+        len = testing::recv_send(&mut pipe.client, &mut buf, len).unwrap();
+        testing::recv_send(&mut pipe.server, &mut buf, len).unwrap();
+
+        assert!(pipe.client.is_established());
+        assert!(pipe.server.is_established());
+    }
+
+    #[test]
+    fn missing_retry_source_connection_id() {
+        let mut buf = [0; 65535];
+
+        let mut config = Config::new(PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\06proto2")
+            .unwrap();
+
+        let mut pipe = testing::Pipe::with_server_config(&mut config).unwrap();
 
         // Client sends initial flight.
         let mut len = pipe.client.send(&mut buf).unwrap();
@@ -5770,16 +6563,86 @@
 
         let token = b"quiche test retry token";
 
-        len =
-            packet::retry(&hdr.scid, &hdr.dcid, &scid, token, &mut buf).unwrap();
+        len = packet::retry(
+            &hdr.scid,
+            &hdr.dcid,
+            &scid,
+            token,
+            hdr.version,
+            &mut buf,
+        )
+        .unwrap();
 
         // Client receives Retry and sends new Initial.
         assert_eq!(pipe.client.recv(&mut buf[..len]), Ok(len));
 
         len = pipe.client.send(&mut buf).unwrap();
 
+        // Server accepts connection and send first flight. But original
+        // destination connection ID is ignored.
+        pipe.server = accept(&scid, None, &mut config).unwrap();
+
+        len = testing::recv_send(&mut pipe.server, &mut buf, len).unwrap();
+
+        assert_eq!(
+            pipe.client.recv(&mut buf[..len]),
+            Err(Error::InvalidTransportParam)
+        );
+    }
+
+    #[test]
+    fn invalid_retry_source_connection_id() {
+        let mut buf = [0; 65535];
+
+        let mut config = Config::new(PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\06proto2")
+            .unwrap();
+
+        let mut pipe = testing::Pipe::with_server_config(&mut config).unwrap();
+
+        // Client sends initial flight.
+        let mut len = pipe.client.send(&mut buf).unwrap();
+
+        // Server sends Retry packet.
         let hdr = Header::from_slice(&mut buf[..len], MAX_CONN_ID_LEN).unwrap();
-        assert_eq!(&hdr.token.unwrap(), token);
+
+        let mut scid = [0; MAX_CONN_ID_LEN];
+        rand::rand_bytes(&mut scid[..]);
+
+        let token = b"quiche test retry token";
+
+        len = packet::retry(
+            &hdr.scid,
+            &hdr.dcid,
+            &scid,
+            token,
+            hdr.version,
+            &mut buf,
+        )
+        .unwrap();
+
+        // Client receives Retry and sends new Initial.
+        assert_eq!(pipe.client.recv(&mut buf[..len]), Ok(len));
+
+        len = pipe.client.send(&mut buf).unwrap();
+
+        // Server accepts connection and send first flight. But original
+        // destination connection ID is invalid.
+        pipe.server = accept(&scid, Some(b"bogus value"), &mut config).unwrap();
+
+        len = testing::recv_send(&mut pipe.server, &mut buf, len).unwrap();
+
+        assert_eq!(
+            pipe.client.recv(&mut buf[..len]),
+            Err(Error::InvalidTransportParam)
+        );
     }
 
     fn check_send(_: &mut impl Send) {}
@@ -5932,7 +6795,7 @@
         config.set_initial_max_data(50000);
         config.set_initial_max_stream_data_bidi_local(50000);
         config.set_initial_max_stream_data_bidi_remote(50000);
-        config.set_max_packet_size(1200);
+        config.set_max_udp_payload_size(1200);
         config.verify_peer(false);
 
         let mut pipe = testing::Pipe::with_client_config(&mut config).unwrap();
@@ -5968,7 +6831,7 @@
         config.set_initial_max_data(50000);
         config.set_initial_max_stream_data_bidi_local(50000);
         config.set_initial_max_stream_data_bidi_remote(50000);
-        config.set_max_packet_size(1200);
+        config.set_max_udp_payload_size(1200);
         config.verify_peer(false);
 
         let mut pipe = testing::Pipe::with_client_config(&mut config).unwrap();
@@ -6005,7 +6868,7 @@
         config.set_initial_max_data(50000);
         config.set_initial_max_stream_data_bidi_local(50000);
         config.set_initial_max_stream_data_bidi_remote(50000);
-        config.set_max_packet_size(1405);
+        config.set_max_udp_payload_size(1405);
         config.verify_peer(false);
 
         let mut pipe = testing::Pipe::with_client_config(&mut config).unwrap();
@@ -6042,7 +6905,7 @@
         config.set_initial_max_data(50000);
         config.set_initial_max_stream_data_bidi_local(50000);
         config.set_initial_max_stream_data_bidi_remote(50000);
-        config.set_max_packet_size(1406);
+        config.set_max_udp_payload_size(1406);
         config.verify_peer(false);
 
         let mut pipe = testing::Pipe::with_client_config(&mut config).unwrap();
@@ -6115,6 +6978,777 @@
             Some(last_packet_sent)
         );
     }
+
+    #[test]
+    /// Tests that streams are correctly scheduled based on their priority.
+    fn stream_priority() {
+        // Limit 1-RTT packet size to avoid congestion control interference.
+        const MAX_TEST_PACKET_SIZE: usize = 540;
+
+        let mut buf = [0; 65535];
+
+        let mut config = Config::new(crate::PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\x06proto2")
+            .unwrap();
+        config.set_initial_max_data(1_000_000);
+        config.set_initial_max_stream_data_bidi_local(1_000_000);
+        config.set_initial_max_stream_data_bidi_remote(1_000_000);
+        config.set_initial_max_stream_data_uni(0);
+        config.set_initial_max_streams_bidi(100);
+        config.set_initial_max_streams_uni(0);
+        config.verify_peer(false);
+
+        let mut pipe = testing::Pipe::with_config(&mut config).unwrap();
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.stream_send(0, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.stream_send(4, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.stream_send(8, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.stream_send(12, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.stream_send(16, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.stream_send(20, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        let mut b = [0; 1];
+
+        let out = [b'b'; 500];
+
+        // Server prioritizes streams as follows:
+        //  * Stream 8 and 16 have the same priority but are non-incremental.
+        //  * Stream 4, 12 and 20 have the same priority but 20 is non-incremental
+        //    and 4 and 12 are incremental.
+        //  * Stream 0 is on its own.
+
+        pipe.server.stream_recv(0, &mut b).unwrap();
+        assert_eq!(pipe.server.stream_priority(0, 255, true), Ok(()));
+        pipe.server.stream_send(0, &out, false).unwrap();
+        pipe.server.stream_send(0, &out, false).unwrap();
+        pipe.server.stream_send(0, &out, false).unwrap();
+
+        pipe.server.stream_recv(12, &mut b).unwrap();
+        assert_eq!(pipe.server.stream_priority(12, 42, true), Ok(()));
+        pipe.server.stream_send(12, &out, false).unwrap();
+        pipe.server.stream_send(12, &out, false).unwrap();
+        pipe.server.stream_send(12, &out, false).unwrap();
+
+        pipe.server.stream_recv(16, &mut b).unwrap();
+        assert_eq!(pipe.server.stream_priority(16, 10, false), Ok(()));
+        pipe.server.stream_send(16, &out, false).unwrap();
+        pipe.server.stream_send(16, &out, false).unwrap();
+        pipe.server.stream_send(16, &out, false).unwrap();
+
+        pipe.server.stream_recv(4, &mut b).unwrap();
+        assert_eq!(pipe.server.stream_priority(4, 42, true), Ok(()));
+        pipe.server.stream_send(4, &out, false).unwrap();
+        pipe.server.stream_send(4, &out, false).unwrap();
+        pipe.server.stream_send(4, &out, false).unwrap();
+
+        pipe.server.stream_recv(8, &mut b).unwrap();
+        assert_eq!(pipe.server.stream_priority(8, 10, false), Ok(()));
+        pipe.server.stream_send(8, &out, false).unwrap();
+        pipe.server.stream_send(8, &out, false).unwrap();
+        pipe.server.stream_send(8, &out, false).unwrap();
+
+        pipe.server.stream_recv(20, &mut b).unwrap();
+        assert_eq!(pipe.server.stream_priority(20, 42, false), Ok(()));
+        pipe.server.stream_send(20, &out, false).unwrap();
+        pipe.server.stream_send(20, &out, false).unwrap();
+        pipe.server.stream_send(20, &out, false).unwrap();
+
+        // First is stream 8.
+        let mut off = 0;
+
+        for _ in 1..=3 {
+            let len = pipe.server.send(&mut buf[..MAX_TEST_PACKET_SIZE]).unwrap();
+
+            let frames =
+                testing::decode_pkt(&mut pipe.client, &mut buf, len).unwrap();
+            let stream = frames.iter().next().unwrap();
+
+            assert_eq!(stream, &frame::Frame::Stream {
+                stream_id: 8,
+                data: stream::RangeBuf::from(&out, off, false),
+            });
+
+            off = match stream {
+                frame::Frame::Stream { data, .. } => data.max_off(),
+
+                _ => unreachable!(),
+            };
+        }
+
+        // Then is stream 16.
+        let mut off = 0;
+
+        for _ in 1..=3 {
+            let len = pipe.server.send(&mut buf[..MAX_TEST_PACKET_SIZE]).unwrap();
+
+            let frames =
+                testing::decode_pkt(&mut pipe.client, &mut buf, len).unwrap();
+            let stream = frames.iter().next().unwrap();
+
+            assert_eq!(stream, &frame::Frame::Stream {
+                stream_id: 16,
+                data: stream::RangeBuf::from(&out, off, false),
+            });
+
+            off = match stream {
+                frame::Frame::Stream { data, .. } => data.max_off(),
+
+                _ => unreachable!(),
+            };
+        }
+
+        // Then is stream 20.
+        let mut off = 0;
+
+        for _ in 1..=3 {
+            let len = pipe.server.send(&mut buf[..MAX_TEST_PACKET_SIZE]).unwrap();
+
+            let frames =
+                testing::decode_pkt(&mut pipe.client, &mut buf, len).unwrap();
+            let stream = frames.iter().next().unwrap();
+
+            assert_eq!(stream, &frame::Frame::Stream {
+                stream_id: 20,
+                data: stream::RangeBuf::from(&out, off, false),
+            });
+
+            off = match stream {
+                frame::Frame::Stream { data, .. } => data.max_off(),
+
+                _ => unreachable!(),
+            };
+        }
+
+        // Then are stream 12 and 4, with the same priority, incrementally.
+        let mut off = 0;
+
+        for _ in 1..=3 {
+            let len = pipe.server.send(&mut buf[..MAX_TEST_PACKET_SIZE]).unwrap();
+
+            let frames =
+                testing::decode_pkt(&mut pipe.client, &mut buf, len).unwrap();
+
+            assert_eq!(
+                frames.iter().next(),
+                Some(&frame::Frame::Stream {
+                    stream_id: 12,
+                    data: stream::RangeBuf::from(&out, off, false),
+                })
+            );
+
+            let len = pipe.server.send(&mut buf[..MAX_TEST_PACKET_SIZE]).unwrap();
+
+            let frames =
+                testing::decode_pkt(&mut pipe.client, &mut buf, len).unwrap();
+
+            let stream = frames.iter().next().unwrap();
+
+            assert_eq!(stream, &frame::Frame::Stream {
+                stream_id: 4,
+                data: stream::RangeBuf::from(&out, off, false),
+            });
+
+            off = match stream {
+                frame::Frame::Stream { data, .. } => data.max_off(),
+
+                _ => unreachable!(),
+            };
+        }
+
+        // Final is stream 0.
+        let mut off = 0;
+
+        for _ in 1..=3 {
+            let len = pipe.server.send(&mut buf[..MAX_TEST_PACKET_SIZE]).unwrap();
+
+            let frames =
+                testing::decode_pkt(&mut pipe.client, &mut buf, len).unwrap();
+            let stream = frames.iter().next().unwrap();
+
+            assert_eq!(stream, &frame::Frame::Stream {
+                stream_id: 0,
+                data: stream::RangeBuf::from(&out, off, false),
+            });
+
+            off = match stream {
+                frame::Frame::Stream { data, .. } => data.max_off(),
+
+                _ => unreachable!(),
+            };
+        }
+
+        assert_eq!(pipe.server.send(&mut buf), Err(Error::Done));
+    }
+
+    #[test]
+    /// Tests that changing a stream's priority is correctly propagated.
+    ///
+    /// Re-prioritization is not supported, so this should fail.
+    #[should_panic]
+    fn stream_reprioritize() {
+        let mut buf = [0; 65535];
+
+        let mut config = Config::new(crate::PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\x06proto2")
+            .unwrap();
+        config.set_initial_max_data(30);
+        config.set_initial_max_stream_data_bidi_local(15);
+        config.set_initial_max_stream_data_bidi_remote(15);
+        config.set_initial_max_stream_data_uni(0);
+        config.set_initial_max_streams_bidi(5);
+        config.set_initial_max_streams_uni(0);
+        config.verify_peer(false);
+
+        let mut pipe = testing::Pipe::with_config(&mut config).unwrap();
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.stream_send(0, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.stream_send(4, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.stream_send(8, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.stream_send(12, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        let mut b = [0; 1];
+
+        pipe.server.stream_recv(0, &mut b).unwrap();
+        assert_eq!(pipe.server.stream_priority(0, 255, true), Ok(()));
+        pipe.server.stream_send(0, b"b", false).unwrap();
+
+        pipe.server.stream_recv(12, &mut b).unwrap();
+        assert_eq!(pipe.server.stream_priority(12, 42, true), Ok(()));
+        pipe.server.stream_send(12, b"b", false).unwrap();
+
+        pipe.server.stream_recv(8, &mut b).unwrap();
+        assert_eq!(pipe.server.stream_priority(8, 10, true), Ok(()));
+        pipe.server.stream_send(8, b"b", false).unwrap();
+
+        pipe.server.stream_recv(4, &mut b).unwrap();
+        assert_eq!(pipe.server.stream_priority(4, 42, true), Ok(()));
+        pipe.server.stream_send(4, b"b", false).unwrap();
+
+        // Stream 0 is re-prioritized!!!
+        assert_eq!(pipe.server.stream_priority(0, 20, true), Ok(()));
+
+        // First is stream 8.
+        let len = pipe.server.send(&mut buf).unwrap();
+
+        let frames =
+            testing::decode_pkt(&mut pipe.client, &mut buf, len).unwrap();
+
+        assert_eq!(
+            frames.iter().next(),
+            Some(&frame::Frame::Stream {
+                stream_id: 8,
+                data: stream::RangeBuf::from(b"b", 0, false),
+            })
+        );
+
+        // Then is stream 0.
+        let len = pipe.server.send(&mut buf).unwrap();
+
+        let frames =
+            testing::decode_pkt(&mut pipe.client, &mut buf, len).unwrap();
+
+        assert_eq!(
+            frames.iter().next(),
+            Some(&frame::Frame::Stream {
+                stream_id: 0,
+                data: stream::RangeBuf::from(b"b", 0, false),
+            })
+        );
+
+        // Then are stream 12 and 4, with the same priority.
+        let len = pipe.server.send(&mut buf).unwrap();
+
+        let frames =
+            testing::decode_pkt(&mut pipe.client, &mut buf, len).unwrap();
+
+        assert_eq!(
+            frames.iter().next(),
+            Some(&frame::Frame::Stream {
+                stream_id: 12,
+                data: stream::RangeBuf::from(b"b", 0, false),
+            })
+        );
+
+        let len = pipe.server.send(&mut buf).unwrap();
+
+        let frames =
+            testing::decode_pkt(&mut pipe.client, &mut buf, len).unwrap();
+
+        assert_eq!(
+            frames.iter().next(),
+            Some(&frame::Frame::Stream {
+                stream_id: 4,
+                data: stream::RangeBuf::from(b"b", 0, false),
+            })
+        );
+
+        assert_eq!(pipe.server.send(&mut buf), Err(Error::Done));
+    }
+
+    #[test]
+    /// Tests that old data is retransmitted on PTO.
+    fn early_retransmit() {
+        let mut buf = [0; 65535];
+
+        let mut pipe = testing::Pipe::default().unwrap();
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        // Client sends stream data.
+        assert_eq!(pipe.client.stream_send(0, b"a", false), Ok(1));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        // Client sends more stream data, but packet is lost
+        assert_eq!(pipe.client.stream_send(4, b"b", false), Ok(1));
+        assert!(pipe.client.send(&mut buf).is_ok());
+
+        // Wait until PTO expires. Since the RTT is very low, wait a bit more.
+        let timer = pipe.client.timeout().unwrap();
+        std::thread::sleep(timer + time::Duration::from_millis(1));
+
+        pipe.client.on_timeout();
+
+        let epoch = packet::EPOCH_APPLICATION;
+        assert_eq!(pipe.client.recovery.loss_probes[epoch], 1);
+
+        // Client retransmits stream data in PTO probe.
+        let len = pipe.client.send(&mut buf).unwrap();
+        assert_eq!(pipe.client.recovery.loss_probes[epoch], 0);
+
+        let frames =
+            testing::decode_pkt(&mut pipe.server, &mut buf, len).unwrap();
+
+        let mut iter = frames.iter();
+
+        // Skip ACK frame.
+        iter.next();
+
+        assert_eq!(
+            iter.next(),
+            Some(&frame::Frame::Stream {
+                stream_id: 4,
+                data: stream::RangeBuf::from(b"b", 0, false),
+            })
+        );
+    }
+
+    #[test]
+    /// Tests that client avoids handshake deadlock by arming PTO.
+    fn handshake_anti_deadlock() {
+        let mut buf = [0; 65535];
+
+        let mut config = Config::new(PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert-big.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\06proto2")
+            .unwrap();
+
+        let mut pipe = testing::Pipe::with_server_config(&mut config).unwrap();
+
+        assert_eq!(pipe.client.handshake_status().has_handshake_keys, false);
+        assert_eq!(pipe.client.handshake_status().peer_verified_address, false);
+        assert_eq!(pipe.server.handshake_status().has_handshake_keys, false);
+        assert_eq!(pipe.server.handshake_status().peer_verified_address, true);
+
+        // Client sends padded Initial.
+        let len = pipe.client.send(&mut buf).unwrap();
+        assert_eq!(len, 1200);
+
+        // Server receives client's Initial and sends own Initial and Handshake
+        // until it's blocked by the anti-amplification limit.
+        let len = testing::recv_send(&mut pipe.server, &mut buf, len).unwrap();
+        assert_eq!(pipe.server.send(&mut buf[len..]), Err(Error::Done));
+
+        assert_eq!(pipe.client.handshake_status().has_handshake_keys, false);
+        assert_eq!(pipe.client.handshake_status().peer_verified_address, false);
+        assert_eq!(pipe.server.handshake_status().has_handshake_keys, true);
+        assert_eq!(pipe.server.handshake_status().peer_verified_address, true);
+
+        // Client receives the server flight and sends Handshake ACK, but it is
+        // lost.
+        assert!(testing::recv_send(&mut pipe.client, &mut buf, len).is_ok());
+
+        assert_eq!(pipe.client.handshake_status().has_handshake_keys, true);
+        assert_eq!(pipe.client.handshake_status().peer_verified_address, false);
+        assert_eq!(pipe.server.handshake_status().has_handshake_keys, true);
+        assert_eq!(pipe.server.handshake_status().peer_verified_address, true);
+
+        // Make sure client's PTO timer is armed.
+        assert!(pipe.client.timeout().is_some());
+    }
+
+    #[test]
+    /// Tests that packets with corrupted type (from Handshake to Initial) are
+    /// properly ignored.
+    fn handshake_packet_type_corruption() {
+        let mut buf = [0; 65535];
+
+        let mut pipe = testing::Pipe::default().unwrap();
+
+        // Client sends padded Initial.
+        let len = pipe.client.send(&mut buf).unwrap();
+        assert_eq!(len, 1200);
+
+        // Server receives client's Initial and sends own Initial and Handshake.
+        let len = testing::recv_send(&mut pipe.server, &mut buf, len).unwrap();
+        assert_eq!(pipe.client.recv(&mut buf[..len]), Ok(len));
+
+        // Client sends Initial packet with ACK.
+        let len = pipe.client.send(&mut buf).unwrap();
+
+        let hdr = Header::from_slice(&mut buf[..len], 0).unwrap();
+        assert_eq!(hdr.ty, Type::Initial);
+
+        assert_eq!(pipe.server.recv(&mut buf[..len]), Ok(len));
+
+        // Client sends Handshake packet.
+        let len = pipe.client.send(&mut buf).unwrap();
+
+        let hdr = Header::from_slice(&mut buf[..len], 0).unwrap();
+        assert_eq!(hdr.ty, Type::Handshake);
+
+        // Packet type is corrupted to Initial..
+        buf[0] &= !(0x20);
+
+        let hdr = Header::from_slice(&mut buf[..len], 0).unwrap();
+        assert_eq!(hdr.ty, Type::Initial);
+
+        // Server receives corrupted packet without returning an error.
+        assert_eq!(pipe.server.recv(&mut buf[..len]), Ok(len));
+    }
+
+    #[test]
+    fn dgram_send_fails_invalidstate() {
+        let mut buf = [0; 65535];
+
+        let mut pipe = testing::Pipe::default().unwrap();
+
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        assert_eq!(
+            pipe.client.dgram_send(b"hello, world"),
+            Err(Error::InvalidState)
+        );
+    }
+
+    #[test]
+    fn dgram_send_app_limited() {
+        let mut buf = [0; 65535];
+        let send_buf = [0xcf; 1000];
+
+        let mut config = Config::new(crate::PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\x06proto2")
+            .unwrap();
+        config.set_initial_max_data(30);
+        config.set_initial_max_stream_data_bidi_local(15);
+        config.set_initial_max_stream_data_bidi_remote(15);
+        config.set_initial_max_stream_data_uni(10);
+        config.set_initial_max_streams_bidi(3);
+        config.set_initial_max_streams_uni(3);
+        config.enable_dgram(true, 1000, 1000);
+        config.set_max_udp_payload_size(1200);
+        config.verify_peer(false);
+
+        let mut pipe = testing::Pipe::with_config(&mut config).unwrap();
+
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        for _ in 0..1000 {
+            assert_eq!(pipe.client.dgram_send(&send_buf), Ok(()));
+        }
+
+        assert!(!pipe.client.recovery.app_limited());
+        assert_eq!(pipe.client.dgram_send_queue.byte_size(), 1_000_000);
+
+        let len = pipe.client.send(&mut buf).unwrap();
+
+        assert_ne!(pipe.client.dgram_send_queue.byte_size(), 0);
+        assert_ne!(pipe.client.dgram_send_queue.byte_size(), 1_000_000);
+        assert!(!pipe.client.recovery.app_limited());
+
+        testing::recv_send(&mut pipe.client, &mut buf, len).unwrap();
+        testing::recv_send(&mut pipe.server, &mut buf, len).unwrap();
+
+        assert_ne!(pipe.client.dgram_send_queue.byte_size(), 0);
+        assert_ne!(pipe.client.dgram_send_queue.byte_size(), 1_000_000);
+
+        assert!(!pipe.client.recovery.app_limited());
+    }
+
+    #[test]
+    fn dgram_single_datagram() {
+        let mut buf = [0; 65535];
+
+        let mut config = Config::new(crate::PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\x06proto2")
+            .unwrap();
+        config.set_initial_max_data(30);
+        config.set_initial_max_stream_data_bidi_local(15);
+        config.set_initial_max_stream_data_bidi_remote(15);
+        config.set_initial_max_stream_data_uni(10);
+        config.set_initial_max_streams_bidi(3);
+        config.set_initial_max_streams_uni(3);
+        config.enable_dgram(true, 10, 10);
+        config.verify_peer(false);
+
+        let mut pipe = testing::Pipe::with_config(&mut config).unwrap();
+
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.dgram_send(b"hello, world"), Ok(()));
+
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        let result1 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result1, Ok(12));
+
+        let result2 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result2, Err(Error::Done));
+    }
+
+    #[test]
+    fn dgram_multiple_datagrams() {
+        let mut buf = [0; 65535];
+
+        let mut config = Config::new(crate::PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\x06proto2")
+            .unwrap();
+        config.set_initial_max_data(30);
+        config.set_initial_max_stream_data_bidi_local(15);
+        config.set_initial_max_stream_data_bidi_remote(15);
+        config.set_initial_max_stream_data_uni(10);
+        config.set_initial_max_streams_bidi(3);
+        config.set_initial_max_streams_uni(3);
+        config.enable_dgram(true, 10, 10);
+        config.verify_peer(false);
+
+        let mut pipe = testing::Pipe::with_config(&mut config).unwrap();
+
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.dgram_send(b"hello, world"), Ok(()));
+        assert_eq!(pipe.client.dgram_send(b"ciao, mondo"), Ok(()));
+        assert_eq!(pipe.client.dgram_send(b"hola, mundo"), Ok(()));
+
+        pipe.client
+            .dgram_purge_outgoing(|d: &[u8]| -> bool { d[0] == b'c' });
+
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        let result1 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result1, Ok(12));
+        assert_eq!(buf[0], b'h');
+        assert_eq!(buf[1], b'e');
+
+        let result2 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result2, Ok(11));
+        assert_eq!(buf[0], b'h');
+        assert_eq!(buf[1], b'o');
+
+        let result3 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result3, Err(Error::Done));
+    }
+
+    #[test]
+    fn dgram_send_queue_overflow() {
+        let mut buf = [0; 65535];
+
+        let mut config = Config::new(crate::PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\x06proto2")
+            .unwrap();
+        config.set_initial_max_data(30);
+        config.set_initial_max_stream_data_bidi_local(15);
+        config.set_initial_max_stream_data_bidi_remote(15);
+        config.set_initial_max_stream_data_uni(10);
+        config.set_initial_max_streams_bidi(3);
+        config.set_initial_max_streams_uni(3);
+        config.enable_dgram(true, 10, 2);
+        config.verify_peer(false);
+
+        let mut pipe = testing::Pipe::with_config(&mut config).unwrap();
+
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.dgram_send(b"hello, world"), Ok(()));
+        assert_eq!(pipe.client.dgram_send(b"ciao, mondo"), Ok(()));
+        assert_eq!(pipe.client.dgram_send(b"hola, mundo"), Err(Error::Done));
+
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        let result1 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result1, Ok(12));
+        assert_eq!(buf[0], b'h');
+        assert_eq!(buf[1], b'e');
+
+        let result2 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result2, Ok(11));
+        assert_eq!(buf[0], b'c');
+        assert_eq!(buf[1], b'i');
+
+        let result3 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result3, Err(Error::Done));
+    }
+
+    #[test]
+    fn dgram_recv_queue_overflow() {
+        let mut buf = [0; 65535];
+
+        let mut config = Config::new(crate::PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\x06proto2")
+            .unwrap();
+        config.set_initial_max_data(30);
+        config.set_initial_max_stream_data_bidi_local(15);
+        config.set_initial_max_stream_data_bidi_remote(15);
+        config.set_initial_max_stream_data_uni(10);
+        config.set_initial_max_streams_bidi(3);
+        config.set_initial_max_streams_uni(3);
+        config.enable_dgram(true, 2, 10);
+        config.set_max_udp_payload_size(1200);
+        config.verify_peer(false);
+
+        let mut pipe = testing::Pipe::with_config(&mut config).unwrap();
+
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        assert_eq!(pipe.client.dgram_send(b"hello, world"), Ok(()));
+        assert_eq!(pipe.client.dgram_send(b"ciao, mondo"), Ok(()));
+        assert_eq!(pipe.client.dgram_send(b"hola, mundo"), Ok(()));
+
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        let result1 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result1, Ok(11));
+        assert_eq!(buf[0], b'c');
+        assert_eq!(buf[1], b'i');
+
+        let result2 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result2, Ok(11));
+        assert_eq!(buf[0], b'h');
+        assert_eq!(buf[1], b'o');
+
+        let result3 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result3, Err(Error::Done));
+    }
+
+    #[test]
+    fn dgram_send_max_size() {
+        let mut buf = [0; MAX_DGRAM_FRAME_SIZE as usize];
+
+        let mut config = Config::new(crate::PROTOCOL_VERSION).unwrap();
+        config
+            .load_cert_chain_from_pem_file("examples/cert.crt")
+            .unwrap();
+        config
+            .load_priv_key_from_pem_file("examples/cert.key")
+            .unwrap();
+        config
+            .set_application_protos(b"\x06proto1\x06proto2")
+            .unwrap();
+        config.set_initial_max_data(30);
+        config.set_initial_max_stream_data_bidi_local(15);
+        config.set_initial_max_stream_data_bidi_remote(15);
+        config.set_initial_max_stream_data_uni(10);
+        config.set_initial_max_streams_bidi(3);
+        config.set_initial_max_streams_uni(3);
+        config.enable_dgram(true, 10, 10);
+        config.set_max_udp_payload_size(1452);
+        config.verify_peer(false);
+
+        let mut pipe = testing::Pipe::with_config(&mut config).unwrap();
+
+        // Before handshake (before peer settings) we don't know max dgram size
+        assert_eq!(pipe.client.dgram_max_writable_len(), None);
+
+        assert_eq!(pipe.handshake(&mut buf), Ok(()));
+
+        let max_dgram_size = pipe.client.dgram_max_writable_len().unwrap();
+
+        let dgram_packet: Vec<u8> = vec![42; max_dgram_size];
+
+        assert_eq!(pipe.client.dgram_send(&dgram_packet), Ok(()));
+
+        assert_eq!(pipe.advance(&mut buf), Ok(()));
+
+        let result1 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result1, Ok(max_dgram_size));
+
+        let result2 = pipe.server.dgram_recv(&mut buf);
+        assert_eq!(result2, Err(Error::Done));
+    }
 }
 
 pub use crate::packet::Header;
@@ -6123,6 +7757,7 @@
 pub use crate::stream::StreamIter;
 
 mod crypto;
+mod dgram;
 mod ffi;
 mod frame;
 pub mod h3;
diff --git a/src/minmax.rs b/src/minmax.rs
index 259c483..a8a23fd 100644
--- a/src/minmax.rs
+++ b/src/minmax.rs
@@ -56,27 +56,27 @@
 use std::time::Instant;
 
 #[derive(Copy, Clone)]
-struct MinmaxSample {
+struct MinmaxSample<T> {
     time: Instant,
-    value: Duration,
+    value: T,
 }
 
-pub struct Minmax {
-    estimate: [MinmaxSample; 3],
+pub struct Minmax<T> {
+    estimate: [MinmaxSample<T>; 3],
 }
 
-impl Minmax {
-    pub fn new() -> Self {
+impl<T: PartialOrd + Copy> Minmax<T> {
+    pub fn new(val: T) -> Self {
         Minmax {
             estimate: [MinmaxSample {
                 time: Instant::now(),
-                value: Duration::new(0, 0),
+                value: val,
             }; 3],
         }
     }
 
     /// Resets the estimates to the given value.
-    pub fn reset(&mut self, time: Instant, meas: Duration) -> Duration {
+    pub fn reset(&mut self, time: Instant, meas: T) -> T {
         let val = MinmaxSample { time, value: meas };
 
         for i in self.estimate.iter_mut() {
@@ -87,9 +87,7 @@
     }
 
     /// Updates the min estimate based on the given measurement, and returns it.
-    pub fn running_min(
-        &mut self, win: Duration, time: Instant, meas: Duration,
-    ) -> Duration {
+    pub fn running_min(&mut self, win: Duration, time: Instant, meas: T) -> T {
         let val = MinmaxSample { time, value: meas };
 
         let delta_time = time.duration_since(self.estimate[2].time);
@@ -110,9 +108,7 @@
     }
 
     /// Updates the max estimate based on the given measurement, and returns it.
-    pub fn _running_max(
-        &mut self, win: Duration, time: Instant, meas: Duration,
-    ) -> Duration {
+    pub fn _running_max(&mut self, win: Duration, time: Instant, meas: T) -> T {
         let val = MinmaxSample { time, value: meas };
 
         let delta_time = time.duration_since(self.estimate[2].time);
@@ -133,9 +129,7 @@
     }
 
     /// As time advances, update the 1st, 2nd and 3rd estimates.
-    fn subwin_update(
-        &mut self, win: Duration, time: Instant, meas: Duration,
-    ) -> Duration {
+    fn subwin_update(&mut self, win: Duration, time: Instant, meas: T) -> T {
         let val = MinmaxSample { time, value: meas };
 
         let delta_time = time.duration_since(self.estimate[0].time);
@@ -178,8 +172,8 @@
     use super::*;
 
     #[test]
-    fn reset_filter() {
-        let mut f = Minmax::new();
+    fn reset_filter_rtt() {
+        let mut f = Minmax::new(Duration::new(0, 0));
         let now = Instant::now();
         let rtt = Duration::from_millis(50);
 
@@ -197,8 +191,27 @@
     }
 
     #[test]
-    fn get_windowed_min() {
-        let mut f = Minmax::new();
+    fn reset_filter_bandwidth() {
+        let mut f = Minmax::new(0);
+        let now = Instant::now();
+        let bw = 2000;
+
+        let bw_min = f.reset(now, bw);
+        assert_eq!(bw_min, bw);
+
+        assert_eq!(f.estimate[0].time, now);
+        assert_eq!(f.estimate[0].value, bw);
+
+        assert_eq!(f.estimate[1].time, now);
+        assert_eq!(f.estimate[1].value, bw);
+
+        assert_eq!(f.estimate[2].time, now);
+        assert_eq!(f.estimate[2].value, bw);
+    }
+
+    #[test]
+    fn get_windowed_min_rtt() {
+        let mut f = Minmax::new(Duration::new(0, 0));
         let rtt_25 = Duration::from_millis(25);
         let rtt_24 = Duration::from_millis(24);
         let win = Duration::from_millis(500);
@@ -221,8 +234,32 @@
     }
 
     #[test]
-    fn get_windowed_max() {
-        let mut f = Minmax::new();
+    fn get_windowed_min_bandwidth() {
+        let mut f = Minmax::new(0);
+        let bw_200 = 200;
+        let bw_500 = 500;
+        let win = Duration::from_millis(500);
+        let mut time = Instant::now();
+
+        let mut bw_min = f.reset(time, bw_500);
+        assert_eq!(bw_min, bw_500);
+
+        time += Duration::from_millis(250);
+        bw_min = f.running_min(win, time, bw_200);
+        assert_eq!(bw_min, bw_200);
+        assert_eq!(f.estimate[1].value, bw_200);
+        assert_eq!(f.estimate[2].value, bw_200);
+
+        time += Duration::from_millis(600);
+        bw_min = f.running_min(win, time, bw_500);
+        assert_eq!(bw_min, bw_500);
+        assert_eq!(f.estimate[1].value, bw_500);
+        assert_eq!(f.estimate[2].value, bw_500);
+    }
+
+    #[test]
+    fn get_windowed_max_rtt() {
+        let mut f = Minmax::new(Duration::new(0, 0));
         let rtt_25 = Duration::from_millis(25);
         let rtt_24 = Duration::from_millis(24);
         let win = Duration::from_millis(500);
@@ -245,8 +282,32 @@
     }
 
     #[test]
-    fn get_windowed_min_estimates() {
-        let mut f = Minmax::new();
+    fn get_windowed_max_bandwidth() {
+        let mut f = Minmax::new(0);
+        let bw_200 = 200;
+        let bw_500 = 500;
+        let win = Duration::from_millis(500);
+        let mut time = Instant::now();
+
+        let mut bw_max = f.reset(time, bw_200);
+        assert_eq!(bw_max, bw_200);
+
+        time += Duration::from_millis(5000);
+        bw_max = f._running_max(win, time, bw_500);
+        assert_eq!(bw_max, bw_500);
+        assert_eq!(f.estimate[1].value, bw_500);
+        assert_eq!(f.estimate[2].value, bw_500);
+
+        time += Duration::from_millis(600);
+        bw_max = f._running_max(win, time, bw_200);
+        assert_eq!(bw_max, bw_200);
+        assert_eq!(f.estimate[1].value, bw_200);
+        assert_eq!(f.estimate[2].value, bw_200);
+    }
+
+    #[test]
+    fn get_windowed_min_estimates_rtt() {
+        let mut f = Minmax::new(Duration::new(0, 0));
         let rtt_25 = Duration::from_millis(25);
         let rtt_24 = Duration::from_millis(24);
         let rtt_23 = Duration::from_millis(23);
@@ -277,8 +338,40 @@
     }
 
     #[test]
-    fn get_windowed_max_estimates() {
-        let mut f = Minmax::new();
+    fn get_windowed_min_estimates_bandwidth() {
+        let mut f = Minmax::new(0);
+        let bw_500 = 500;
+        let bw_400 = 400;
+        let bw_300 = 300;
+        let bw_200 = 200;
+        let win = Duration::from_secs(1);
+        let mut time = Instant::now();
+
+        let mut bw_min = f.reset(time, bw_300);
+        assert_eq!(bw_min, bw_300);
+
+        time += Duration::from_millis(300);
+        bw_min = f.running_min(win, time, bw_400);
+        assert_eq!(bw_min, bw_300);
+        assert_eq!(f.estimate[1].value, bw_400);
+        assert_eq!(f.estimate[2].value, bw_400);
+
+        time += Duration::from_millis(300);
+        bw_min = f.running_min(win, time, bw_500);
+        assert_eq!(bw_min, bw_300);
+        assert_eq!(f.estimate[1].value, bw_400);
+        assert_eq!(f.estimate[2].value, bw_500);
+
+        time += Duration::from_millis(300);
+        bw_min = f.running_min(win, time, bw_200);
+        assert_eq!(bw_min, bw_200);
+        assert_eq!(f.estimate[1].value, bw_200);
+        assert_eq!(f.estimate[2].value, bw_200);
+    }
+
+    #[test]
+    fn get_windowed_max_estimates_rtt() {
+        let mut f = Minmax::new(Duration::new(0, 0));
         let rtt_25 = Duration::from_millis(25);
         let rtt_24 = Duration::from_millis(24);
         let rtt_23 = Duration::from_millis(23);
@@ -307,4 +400,36 @@
         assert_eq!(f.estimate[1].value, rtt_26);
         assert_eq!(f.estimate[2].value, rtt_26);
     }
+
+    #[test]
+    fn get_windowed_max_estimates_bandwidth() {
+        let mut f = Minmax::new(0);
+        let bw_500 = 500;
+        let bw_400 = 400;
+        let bw_300 = 300;
+        let bw_600 = 600;
+        let win = Duration::from_secs(1);
+        let mut time = Instant::now();
+
+        let mut bw_max = f.reset(time, bw_500);
+        assert_eq!(bw_max, bw_500);
+
+        time += Duration::from_millis(300);
+        bw_max = f._running_max(win, time, bw_400);
+        assert_eq!(bw_max, bw_500);
+        assert_eq!(f.estimate[1].value, bw_400);
+        assert_eq!(f.estimate[2].value, bw_400);
+
+        time += Duration::from_millis(300);
+        bw_max = f._running_max(win, time, bw_300);
+        assert_eq!(bw_max, bw_500);
+        assert_eq!(f.estimate[1].value, bw_400);
+        assert_eq!(f.estimate[2].value, bw_300);
+
+        time += Duration::from_millis(300);
+        bw_max = f._running_max(win, time, bw_600);
+        assert_eq!(bw_max, bw_600);
+        assert_eq!(f.estimate[1].value, bw_600);
+        assert_eq!(f.estimate[2].value, bw_600);
+    }
 }
diff --git a/src/packet.rs b/src/packet.rs
index 55ec711..0534df5 100644
--- a/src/packet.rs
+++ b/src/packet.rs
@@ -46,7 +46,8 @@
 
 pub const MAX_CID_LEN: u8 = 20;
 
-const MAX_PKT_NUM_LEN: usize = 4;
+pub const MAX_PKT_NUM_LEN: usize = 4;
+
 const SAMPLE_LEN: usize = 16;
 
 pub const EPOCH_INITIAL: usize = 0;
@@ -429,8 +430,7 @@
 
     let mut pn_and_sample = b.peek_bytes_mut(MAX_PKT_NUM_LEN + SAMPLE_LEN)?;
 
-    let (mut ciphertext, sample) =
-        pn_and_sample.split_at(MAX_PKT_NUM_LEN).unwrap();
+    let (mut ciphertext, sample) = pn_and_sample.split_at(MAX_PKT_NUM_LEN)?;
 
     let ciphertext = ciphertext.as_mut();
 
@@ -589,19 +589,26 @@
     b.put_bytes(&scid)?;
     b.put_u8(dcid.len() as u8)?;
     b.put_bytes(&dcid)?;
-    b.put_u32(crate::PROTOCOL_VERSION)?;
+    b.put_u32(crate::PROTOCOL_VERSION_DRAFT29)?;
+    b.put_u32(crate::PROTOCOL_VERSION_DRAFT28)?;
+    b.put_u32(crate::PROTOCOL_VERSION_DRAFT27)?;
 
     Ok(b.off())
 }
 
 pub fn retry(
-    scid: &[u8], dcid: &[u8], new_scid: &[u8], token: &[u8], out: &mut [u8],
+    scid: &[u8], dcid: &[u8], new_scid: &[u8], token: &[u8], version: u32,
+    out: &mut [u8],
 ) -> Result<usize> {
     let mut b = octets::OctetsMut::with_slice(out);
 
+    if !crate::version_is_supported(version) {
+        return Err(Error::UnknownVersion);
+    }
+
     let hdr = Header {
         ty: Type::Retry,
-        version: crate::PROTOCOL_VERSION,
+        version,
         dcid: scid.to_vec(),
         scid: new_scid.to_vec(),
         pkt_num: 0,
@@ -613,15 +620,17 @@
 
     hdr.to_bytes(&mut b)?;
 
-    let tag = compute_retry_integrity_tag(&b, dcid)?;
+    let tag = compute_retry_integrity_tag(&b, dcid, version)?;
 
     b.put_bytes(tag.as_ref())?;
 
     Ok(b.off())
 }
 
-pub fn verify_retry_integrity(b: &octets::OctetsMut, odcid: &[u8]) -> Result<()> {
-    let tag = compute_retry_integrity_tag(b, odcid)?;
+pub fn verify_retry_integrity(
+    b: &octets::OctetsMut, odcid: &[u8], version: u32,
+) -> Result<()> {
+    let tag = compute_retry_integrity_tag(b, odcid, version)?;
 
     ring::constant_time::verify_slices_are_equal(
         &b.as_ref()[..aead::AES_128_GCM.tag_len()],
@@ -633,17 +642,33 @@
 }
 
 fn compute_retry_integrity_tag(
-    b: &octets::OctetsMut, odcid: &[u8],
+    b: &octets::OctetsMut, odcid: &[u8], version: u32,
 ) -> Result<aead::Tag> {
     const RETRY_INTEGRITY_KEY: [u8; 16] = [
+        0xcc, 0xce, 0x18, 0x7e, 0xd0, 0x9a, 0x09, 0xd0, 0x57, 0x28, 0x15, 0x5a,
+        0x6c, 0xb9, 0x6b, 0xe1,
+    ];
+
+    const RETRY_INTEGRITY_NONCE: [u8; aead::NONCE_LEN] = [
+        0xe5, 0x49, 0x30, 0xf9, 0x7f, 0x21, 0x36, 0xf0, 0x53, 0x0a, 0x8c, 0x1c,
+    ];
+
+    const RETRY_INTEGRITY_KEY_OLD: [u8; 16] = [
         0x4d, 0x32, 0xec, 0xdb, 0x2a, 0x21, 0x33, 0xc8, 0x41, 0xe4, 0x04, 0x3d,
         0xf2, 0x7d, 0x44, 0x30,
     ];
 
-    const RETRY_INTEGRITY_NONCE: [u8; aead::NONCE_LEN] = [
+    const RETRY_INTEGRITY_NONCE_OLD: [u8; aead::NONCE_LEN] = [
         0x4d, 0x16, 0x11, 0xd0, 0x55, 0x13, 0xa5, 0x52, 0xc5, 0x87, 0xd5, 0x75,
     ];
 
+    let (key, nonce) = match version {
+        crate::PROTOCOL_VERSION_DRAFT27 | crate::PROTOCOL_VERSION_DRAFT28 =>
+            (&RETRY_INTEGRITY_KEY_OLD, RETRY_INTEGRITY_NONCE_OLD),
+
+        _ => (&RETRY_INTEGRITY_KEY, RETRY_INTEGRITY_NONCE),
+    };
+
     let hdr_len = b.off();
 
     let mut pseudo = vec![0; 1 + odcid.len() + hdr_len];
@@ -655,11 +680,11 @@
     pb.put_bytes(&b.buf()[..hdr_len])?;
 
     let key = aead::LessSafeKey::new(
-        aead::UnboundKey::new(&aead::AES_128_GCM, &RETRY_INTEGRITY_KEY)
+        aead::UnboundKey::new(&aead::AES_128_GCM, key)
             .map_err(|_| Error::CryptoFail)?,
     );
 
-    let nonce = aead::Nonce::assume_unique_for_key(RETRY_INTEGRITY_NONCE);
+    let nonce = aead::Nonce::assume_unique_for_key(nonce);
 
     let aad = aead::Aad::from(&pseudo);
 
@@ -733,6 +758,10 @@
     pub fn ready(&self) -> bool {
         self.crypto_stream.is_flushable() || self.ack_elicited
     }
+
+    pub fn has_keys(&self) -> bool {
+        self.crypto_open.is_some() && self.crypto_seal.is_some()
+    }
 }
 
 #[derive(Clone, Copy, Default)]
@@ -1074,7 +1103,7 @@
         assert!(win.contains(std::u64::MAX - 1));
     }
 
-    fn test_decrypt_pkt(
+    fn assert_decrypt_initial_pkt(
         pkt: &mut [u8], dcid: &[u8], is_server: bool, expected_frames: &[u8],
         expected_pn: u64, expected_pn_len: usize,
     ) {
@@ -1086,14 +1115,15 @@
         let payload_len = b.get_varint().unwrap() as usize;
 
         let (aead, _) =
-            crypto::derive_initial_key_material(dcid, is_server).unwrap();
+            crypto::derive_initial_key_material(dcid, hdr.version, is_server)
+                .unwrap();
 
         decrypt_hdr(&mut b, &mut hdr, &aead).unwrap();
-        let pn = decode_pkt_num(0, hdr.pkt_num, hdr.pkt_num_len);
-
-        assert_eq!(hdr.pkt_num, expected_pn);
         assert_eq!(hdr.pkt_num_len, expected_pn_len);
 
+        let pn = decode_pkt_num(0, hdr.pkt_num, hdr.pkt_num_len);
+        assert_eq!(pn, expected_pn);
+
         let payload =
             decrypt_pkt(&mut b, pn, hdr.pkt_num_len, payload_len, &aead).unwrap();
 
@@ -1104,7 +1134,149 @@
     #[test]
     fn decrypt_client_initial() {
         let mut pkt = [
-            0xc0, 0xff, 0x00, 0x00, 0x17, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e,
+            0xc5, 0xff, 0x00, 0x00, 0x1d, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e,
+            0x51, 0x57, 0x08, 0x00, 0x00, 0x44, 0x9e, 0x4a, 0x95, 0x24, 0x5b,
+            0xfb, 0x66, 0xbc, 0x5f, 0x93, 0x03, 0x2b, 0x7d, 0xdd, 0x89, 0xfe,
+            0x0f, 0xf1, 0x5d, 0x9c, 0x4f, 0x70, 0x50, 0xfc, 0xcd, 0xb7, 0x1c,
+            0x1c, 0xd8, 0x05, 0x12, 0xd4, 0x43, 0x16, 0x43, 0xa5, 0x3a, 0xaf,
+            0xa1, 0xb0, 0xb5, 0x18, 0xb4, 0x49, 0x68, 0xb1, 0x8b, 0x8d, 0x3e,
+            0x7a, 0x4d, 0x04, 0xc3, 0x0b, 0x3e, 0xd9, 0x41, 0x03, 0x25, 0xb2,
+            0xab, 0xb2, 0xda, 0xfb, 0x1c, 0x12, 0xf8, 0xb7, 0x04, 0x79, 0xeb,
+            0x8d, 0xf9, 0x8a, 0xbc, 0xaf, 0x95, 0xdd, 0x8f, 0x3d, 0x1c, 0x78,
+            0x66, 0x0f, 0xbc, 0x71, 0x9f, 0x88, 0xb2, 0x3c, 0x8a, 0xef, 0x67,
+            0x71, 0xf3, 0xd5, 0x0e, 0x10, 0xfd, 0xfb, 0x4c, 0x9d, 0x92, 0x38,
+            0x6d, 0x44, 0x48, 0x1b, 0x6c, 0x52, 0xd5, 0x9e, 0x55, 0x38, 0xd3,
+            0xd3, 0x94, 0x2d, 0xe9, 0xf1, 0x3a, 0x7f, 0x8b, 0x70, 0x2d, 0xc3,
+            0x17, 0x24, 0x18, 0x0d, 0xa9, 0xdf, 0x22, 0x71, 0x4d, 0x01, 0x00,
+            0x3f, 0xc5, 0xe3, 0xd1, 0x65, 0xc9, 0x50, 0xe6, 0x30, 0xb8, 0x54,
+            0x0f, 0xbd, 0x81, 0xc9, 0xdf, 0x0e, 0xe6, 0x3f, 0x94, 0x99, 0x70,
+            0x26, 0xc4, 0xf2, 0xe1, 0x88, 0x7a, 0x2d, 0xef, 0x79, 0x05, 0x0a,
+            0xc2, 0xd8, 0x6b, 0xa3, 0x18, 0xe0, 0xb3, 0xad, 0xc4, 0xc5, 0xaa,
+            0x18, 0xbc, 0xf6, 0x3c, 0x7c, 0xf8, 0xe8, 0x5f, 0x56, 0x92, 0x49,
+            0x81, 0x3a, 0x22, 0x36, 0xa7, 0xe7, 0x22, 0x69, 0x44, 0x7c, 0xd1,
+            0xc7, 0x55, 0xe4, 0x51, 0xf5, 0xe7, 0x74, 0x70, 0xeb, 0x3d, 0xe6,
+            0x4c, 0x88, 0x49, 0xd2, 0x92, 0x82, 0x06, 0x98, 0x02, 0x9c, 0xfa,
+            0x18, 0xe5, 0xd6, 0x61, 0x76, 0xfe, 0x6e, 0x5b, 0xa4, 0xed, 0x18,
+            0x02, 0x6f, 0x90, 0x90, 0x0a, 0x5b, 0x49, 0x80, 0xe2, 0xf5, 0x8e,
+            0x39, 0x15, 0x1d, 0x5c, 0xd6, 0x85, 0xb1, 0x09, 0x29, 0x63, 0x6d,
+            0x4f, 0x02, 0xe7, 0xfa, 0xd2, 0xa5, 0xa4, 0x58, 0x24, 0x9f, 0x5c,
+            0x02, 0x98, 0xa6, 0xd5, 0x3a, 0xcb, 0xe4, 0x1a, 0x7f, 0xc8, 0x3f,
+            0xa7, 0xcc, 0x01, 0x97, 0x3f, 0x7a, 0x74, 0xd1, 0x23, 0x7a, 0x51,
+            0x97, 0x4e, 0x09, 0x76, 0x36, 0xb6, 0x20, 0x39, 0x97, 0xf9, 0x21,
+            0xd0, 0x7b, 0xc1, 0x94, 0x0a, 0x6f, 0x2d, 0x0d, 0xe9, 0xf5, 0xa1,
+            0x14, 0x32, 0x94, 0x61, 0x59, 0xed, 0x6c, 0xc2, 0x1d, 0xf6, 0x5c,
+            0x4d, 0xdd, 0x11, 0x15, 0xf8, 0x64, 0x27, 0x25, 0x9a, 0x19, 0x6c,
+            0x71, 0x48, 0xb2, 0x5b, 0x64, 0x78, 0xb0, 0xdc, 0x77, 0x66, 0xe1,
+            0xc4, 0xd1, 0xb1, 0xf5, 0x15, 0x9f, 0x90, 0xea, 0xbc, 0x61, 0x63,
+            0x62, 0x26, 0x24, 0x46, 0x42, 0xee, 0x14, 0x8b, 0x46, 0x4c, 0x9e,
+            0x61, 0x9e, 0xe5, 0x0a, 0x5e, 0x3d, 0xdc, 0x83, 0x62, 0x27, 0xca,
+            0xd9, 0x38, 0x98, 0x7c, 0x4e, 0xa3, 0xc1, 0xfa, 0x7c, 0x75, 0xbb,
+            0xf8, 0x8d, 0x89, 0xe9, 0xad, 0xa6, 0x42, 0xb2, 0xb8, 0x8f, 0xe8,
+            0x10, 0x7b, 0x7e, 0xa3, 0x75, 0xb1, 0xb6, 0x48, 0x89, 0xa4, 0xe9,
+            0xe5, 0xc3, 0x8a, 0x1c, 0x89, 0x6c, 0xe2, 0x75, 0xa5, 0x65, 0x8d,
+            0x25, 0x0e, 0x2d, 0x76, 0xe1, 0xed, 0x3a, 0x34, 0xce, 0x7e, 0x3a,
+            0x3f, 0x38, 0x3d, 0x0c, 0x99, 0x6d, 0x0b, 0xed, 0x10, 0x6c, 0x28,
+            0x99, 0xca, 0x6f, 0xc2, 0x63, 0xef, 0x04, 0x55, 0xe7, 0x4b, 0xb6,
+            0xac, 0x16, 0x40, 0xea, 0x7b, 0xfe, 0xdc, 0x59, 0xf0, 0x3f, 0xee,
+            0x0e, 0x17, 0x25, 0xea, 0x15, 0x0f, 0xf4, 0xd6, 0x9a, 0x76, 0x60,
+            0xc5, 0x54, 0x21, 0x19, 0xc7, 0x1d, 0xe2, 0x70, 0xae, 0x7c, 0x3e,
+            0xcf, 0xd1, 0xaf, 0x2c, 0x4c, 0xe5, 0x51, 0x98, 0x69, 0x49, 0xcc,
+            0x34, 0xa6, 0x6b, 0x3e, 0x21, 0x6b, 0xfe, 0x18, 0xb3, 0x47, 0xe6,
+            0xc0, 0x5f, 0xd0, 0x50, 0xf8, 0x59, 0x12, 0xdb, 0x30, 0x3a, 0x8f,
+            0x05, 0x4e, 0xc2, 0x3e, 0x38, 0xf4, 0x4d, 0x1c, 0x72, 0x5a, 0xb6,
+            0x41, 0xae, 0x92, 0x9f, 0xec, 0xc8, 0xe3, 0xce, 0xfa, 0x56, 0x19,
+            0xdf, 0x42, 0x31, 0xf5, 0xb4, 0xc0, 0x09, 0xfa, 0x0c, 0x0b, 0xbc,
+            0x60, 0xbc, 0x75, 0xf7, 0x6d, 0x06, 0xef, 0x15, 0x4f, 0xc8, 0x57,
+            0x70, 0x77, 0xd9, 0xd6, 0xa1, 0xd2, 0xbd, 0x9b, 0xf0, 0x81, 0xdc,
+            0x78, 0x3e, 0xce, 0x60, 0x11, 0x1b, 0xea, 0x7d, 0xa9, 0xe5, 0xa9,
+            0x74, 0x80, 0x69, 0xd0, 0x78, 0xb2, 0xbe, 0xf4, 0x8d, 0xe0, 0x4c,
+            0xab, 0xe3, 0x75, 0x5b, 0x19, 0x7d, 0x52, 0xb3, 0x20, 0x46, 0x94,
+            0x9e, 0xca, 0xa3, 0x10, 0x27, 0x4b, 0x4a, 0xac, 0x0d, 0x00, 0x8b,
+            0x19, 0x48, 0xc1, 0x08, 0x2c, 0xdf, 0xe2, 0x08, 0x3e, 0x38, 0x6d,
+            0x4f, 0xd8, 0x4c, 0x0e, 0xd0, 0x66, 0x6d, 0x3e, 0xe2, 0x6c, 0x45,
+            0x15, 0xc4, 0xfe, 0xe7, 0x34, 0x33, 0xac, 0x70, 0x3b, 0x69, 0x0a,
+            0x9f, 0x7b, 0xf2, 0x78, 0xa7, 0x74, 0x86, 0xac, 0xe4, 0x4c, 0x48,
+            0x9a, 0x0c, 0x7a, 0xc8, 0xdf, 0xe4, 0xd1, 0xa5, 0x8f, 0xb3, 0xa7,
+            0x30, 0xb9, 0x93, 0xff, 0x0f, 0x0d, 0x61, 0xb4, 0xd8, 0x95, 0x57,
+            0x83, 0x1e, 0xb4, 0xc7, 0x52, 0xff, 0xd3, 0x9c, 0x10, 0xf6, 0xb9,
+            0xf4, 0x6d, 0x8d, 0xb2, 0x78, 0xda, 0x62, 0x4f, 0xd8, 0x00, 0xe4,
+            0xaf, 0x85, 0x54, 0x8a, 0x29, 0x4c, 0x15, 0x18, 0x89, 0x3a, 0x87,
+            0x78, 0xc4, 0xf6, 0xd6, 0xd7, 0x3c, 0x93, 0xdf, 0x20, 0x09, 0x60,
+            0x10, 0x4e, 0x06, 0x2b, 0x38, 0x8e, 0xa9, 0x7d, 0xcf, 0x40, 0x16,
+            0xbc, 0xed, 0x7f, 0x62, 0xb4, 0xf0, 0x62, 0xcb, 0x6c, 0x04, 0xc2,
+            0x06, 0x93, 0xd9, 0xa0, 0xe3, 0xb7, 0x4b, 0xa8, 0xfe, 0x74, 0xcc,
+            0x01, 0x23, 0x78, 0x84, 0xf4, 0x0d, 0x76, 0x5a, 0xe5, 0x6a, 0x51,
+            0x68, 0x8d, 0x98, 0x5c, 0xf0, 0xce, 0xae, 0xf4, 0x30, 0x45, 0xed,
+            0x8c, 0x3f, 0x0c, 0x33, 0xbc, 0xed, 0x08, 0x53, 0x7f, 0x68, 0x82,
+            0x61, 0x3a, 0xcd, 0x3b, 0x08, 0xd6, 0x65, 0xfc, 0xe9, 0xdd, 0x8a,
+            0xa7, 0x31, 0x71, 0xe2, 0xd3, 0x77, 0x1a, 0x61, 0xdb, 0xa2, 0x79,
+            0x0e, 0x49, 0x1d, 0x41, 0x3d, 0x93, 0xd9, 0x87, 0xe2, 0x74, 0x5a,
+            0xf2, 0x94, 0x18, 0xe4, 0x28, 0xbe, 0x34, 0x94, 0x14, 0x85, 0xc9,
+            0x34, 0x47, 0x52, 0x0f, 0xfe, 0x23, 0x1d, 0xa2, 0x30, 0x4d, 0x6a,
+            0x0f, 0xd5, 0xd0, 0x7d, 0x08, 0x37, 0x22, 0x02, 0x36, 0x96, 0x61,
+            0x59, 0xbe, 0xf3, 0xcf, 0x90, 0x4d, 0x72, 0x23, 0x24, 0xdd, 0x85,
+            0x25, 0x13, 0xdf, 0x39, 0xae, 0x03, 0x0d, 0x81, 0x73, 0x90, 0x8d,
+            0xa6, 0x36, 0x47, 0x86, 0xd3, 0xc1, 0xbf, 0xcb, 0x19, 0xea, 0x77,
+            0xa6, 0x3b, 0x25, 0xf1, 0xe7, 0xfc, 0x66, 0x1d, 0xef, 0x48, 0x0c,
+            0x5d, 0x00, 0xd4, 0x44, 0x56, 0x26, 0x9e, 0xbd, 0x84, 0xef, 0xd8,
+            0xe3, 0xa8, 0xb2, 0xc2, 0x57, 0xee, 0xc7, 0x60, 0x60, 0x68, 0x28,
+            0x48, 0xcb, 0xf5, 0x19, 0x4b, 0xc9, 0x9e, 0x49, 0xee, 0x75, 0xe4,
+            0xd0, 0xd2, 0x54, 0xba, 0xd4, 0xbf, 0xd7, 0x49, 0x70, 0xc3, 0x0e,
+            0x44, 0xb6, 0x55, 0x11, 0xd4, 0xad, 0x0e, 0x6e, 0xc7, 0x39, 0x8e,
+            0x08, 0xe0, 0x13, 0x07, 0xee, 0xee, 0xa1, 0x4e, 0x46, 0xcc, 0xd8,
+            0x7c, 0xf3, 0x6b, 0x28, 0x52, 0x21, 0x25, 0x4d, 0x8f, 0xc6, 0xa6,
+            0x76, 0x5c, 0x52, 0x4d, 0xed, 0x00, 0x85, 0xdc, 0xa5, 0xbd, 0x68,
+            0x8d, 0xdf, 0x72, 0x2e, 0x2c, 0x0f, 0xaf, 0x9d, 0x0f, 0xb2, 0xce,
+            0x7a, 0x0c, 0x3f, 0x2c, 0xee, 0x19, 0xca, 0x0f, 0xfb, 0xa4, 0x61,
+            0xca, 0x8d, 0xc5, 0xd2, 0xc8, 0x17, 0x8b, 0x07, 0x62, 0xcf, 0x67,
+            0x13, 0x55, 0x58, 0x49, 0x4d, 0x2a, 0x96, 0xf1, 0xa1, 0x39, 0xf0,
+            0xed, 0xb4, 0x2d, 0x2a, 0xf8, 0x9a, 0x9c, 0x91, 0x22, 0xb0, 0x7a,
+            0xcb, 0xc2, 0x9e, 0x5e, 0x72, 0x2d, 0xf8, 0x61, 0x5c, 0x34, 0x37,
+            0x02, 0x49, 0x10, 0x98, 0x47, 0x8a, 0x38, 0x9c, 0x98, 0x72, 0xa1,
+            0x0b, 0x0c, 0x98, 0x75, 0x12, 0x5e, 0x25, 0x7c, 0x7b, 0xfd, 0xf2,
+            0x7e, 0xef, 0x40, 0x60, 0xbd, 0x3d, 0x00, 0xf4, 0xc1, 0x4f, 0xd3,
+            0xe3, 0x49, 0x6c, 0x38, 0xd3, 0xc5, 0xd1, 0xa5, 0x66, 0x8c, 0x39,
+            0x35, 0x0e, 0xff, 0xbc, 0x2d, 0x16, 0xca, 0x17, 0xbe, 0x4c, 0xe2,
+            0x9f, 0x02, 0xed, 0x96, 0x95, 0x04, 0xdd, 0xa2, 0xa8, 0xc6, 0xb9,
+            0xff, 0x91, 0x9e, 0x69, 0x3e, 0xe7, 0x9e, 0x09, 0x08, 0x93, 0x16,
+            0xe7, 0xd1, 0xd8, 0x9e, 0xc0, 0x99, 0xdb, 0x3b, 0x2b, 0x26, 0x87,
+            0x25, 0xd8, 0x88, 0x53, 0x6a, 0x4b, 0x8b, 0xf9, 0xae, 0xe8, 0xfb,
+            0x43, 0xe8, 0x2a, 0x4d, 0x91, 0x9d, 0x48, 0x43, 0xb1, 0xca, 0x70,
+            0xa2, 0xd8, 0xd3, 0xf7, 0x25, 0xea, 0xd1, 0x39, 0x13, 0x77, 0xdc,
+            0xc0,
+        ];
+
+        let dcid = [0x83, 0x94, 0xc8, 0xf0, 0x3e, 0x51, 0x57, 0x08];
+
+        let frames = [
+            0x06, 0x00, 0x40, 0xc4, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x03, 0x66,
+            0x60, 0x26, 0x1f, 0xf9, 0x47, 0xce, 0xa4, 0x9c, 0xce, 0x6c, 0xfa,
+            0xd6, 0x87, 0xf4, 0x57, 0xcf, 0x1b, 0x14, 0x53, 0x1b, 0xa1, 0x41,
+            0x31, 0xa0, 0xe8, 0xf3, 0x09, 0xa1, 0xd0, 0xb9, 0xc4, 0x00, 0x00,
+            0x06, 0x13, 0x01, 0x13, 0x03, 0x13, 0x02, 0x01, 0x00, 0x00, 0x91,
+            0x00, 0x00, 0x00, 0x0b, 0x00, 0x09, 0x00, 0x00, 0x06, 0x73, 0x65,
+            0x72, 0x76, 0x65, 0x72, 0xff, 0x01, 0x00, 0x01, 0x00, 0x00, 0x0a,
+            0x00, 0x14, 0x00, 0x12, 0x00, 0x1d, 0x00, 0x17, 0x00, 0x18, 0x00,
+            0x19, 0x01, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x03, 0x01, 0x04,
+            0x00, 0x23, 0x00, 0x00, 0x00, 0x33, 0x00, 0x26, 0x00, 0x24, 0x00,
+            0x1d, 0x00, 0x20, 0x4c, 0xfd, 0xfc, 0xd1, 0x78, 0xb7, 0x84, 0xbf,
+            0x32, 0x8c, 0xae, 0x79, 0x3b, 0x13, 0x6f, 0x2a, 0xed, 0xce, 0x00,
+            0x5f, 0xf1, 0x83, 0xd7, 0xbb, 0x14, 0x95, 0x20, 0x72, 0x36, 0x64,
+            0x70, 0x37, 0x00, 0x2b, 0x00, 0x03, 0x02, 0x03, 0x04, 0x00, 0x0d,
+            0x00, 0x20, 0x00, 0x1e, 0x04, 0x03, 0x05, 0x03, 0x06, 0x03, 0x02,
+            0x03, 0x08, 0x04, 0x08, 0x05, 0x08, 0x06, 0x04, 0x01, 0x05, 0x01,
+            0x06, 0x01, 0x02, 0x01, 0x04, 0x02, 0x05, 0x02, 0x06, 0x02, 0x02,
+            0x02, 0x00, 0x2d, 0x00, 0x02, 0x01, 0x01, 0x00, 0x1c, 0x00, 0x02,
+            0x40, 0x01,
+        ];
+
+        assert_decrypt_initial_pkt(&mut pkt, &dcid, true, &frames, 2, 4);
+    }
+
+    #[test]
+    fn decrypt_client_initial_old() {
+        let mut pkt = [
+            0xc0, 0xff, 0x00, 0x00, 0x1c, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e,
             0x51, 0x57, 0x08, 0x00, 0x00, 0x44, 0x9e, 0x3b, 0x34, 0x3a, 0xa8,
             0x53, 0x50, 0x64, 0xa4, 0x26, 0x8a, 0x0d, 0x9d, 0x7b, 0x1c, 0x9d,
             0x25, 0x0a, 0xe3, 0x55, 0x16, 0x22, 0x76, 0xe9, 0xb1, 0xe3, 0x01,
@@ -1211,9 +1383,9 @@
             0x7c, 0x26, 0x26, 0x48, 0xbb, 0x18, 0xbc, 0xfc, 0x13, 0xc8, 0xb3,
             0xd9, 0x7b, 0x1a, 0x77, 0xb2, 0xac, 0x3a, 0xf7, 0x45, 0xd6, 0x1a,
             0x34, 0xcc, 0x47, 0x09, 0x86, 0x5b, 0xac, 0x82, 0x4a, 0x94, 0xbb,
-            0x19, 0x05, 0x80, 0x15, 0xe4, 0xe4, 0x2d, 0xc9, 0xbe, 0x6c, 0x78,
-            0x03, 0x56, 0x73, 0x21, 0x82, 0x9d, 0xd8, 0x58, 0x53, 0x39, 0x62,
-            0x69,
+            0x19, 0x05, 0x80, 0x15, 0xe4, 0xe4, 0x2d, 0xea, 0x53, 0x88, 0xb9,
+            0x11, 0xe7, 0x6d, 0x28, 0x56, 0xd6, 0x8c, 0xf6, 0xcf, 0x39, 0x41,
+            0x85,
         ];
 
         let dcid = [0x83, 0x94, 0xc8, 0xf0, 0x3e, 0x51, 0x57, 0x08];
@@ -1240,25 +1412,25 @@
             0x40, 0x01,
         ];
 
-        test_decrypt_pkt(&mut pkt, &dcid, true, &frames, 2, 4);
+        assert_decrypt_initial_pkt(&mut pkt, &dcid, true, &frames, 2, 4);
     }
 
     #[test]
     fn decrypt_server_initial() {
         let mut pkt = [
-            0xc9, 0xff, 0x00, 0x00, 0x17, 0x00, 0x08, 0xf0, 0x67, 0xa5, 0x50,
-            0x2a, 0x42, 0x62, 0xb5, 0x00, 0x40, 0x74, 0x16, 0x8b, 0xf2, 0x2b,
-            0x70, 0x02, 0x59, 0x6f, 0x99, 0xae, 0x67, 0xab, 0xf6, 0x5a, 0x58,
-            0x52, 0xf5, 0x4f, 0x58, 0xc3, 0x7c, 0x80, 0x86, 0x82, 0xe2, 0xe4,
-            0x04, 0x92, 0xd8, 0xa3, 0x89, 0x9f, 0xb0, 0x4f, 0xc0, 0xaf, 0xe9,
-            0xaa, 0xbc, 0x87, 0x67, 0xb1, 0x8a, 0x0a, 0xa4, 0x93, 0x53, 0x74,
-            0x26, 0x37, 0x3b, 0x48, 0xd5, 0x02, 0x21, 0x4d, 0xd8, 0x56, 0xd6,
-            0x3b, 0x78, 0xce, 0xe3, 0x7b, 0xc6, 0x64, 0xb3, 0xfe, 0x86, 0xd4,
-            0x87, 0xac, 0x7a, 0x77, 0xc5, 0x30, 0x38, 0xa3, 0xcd, 0x32, 0xf0,
-            0xb5, 0x00, 0x4d, 0x9f, 0x57, 0x54, 0xc4, 0xf7, 0xf2, 0xd1, 0xf3,
-            0x5c, 0xf3, 0xf7, 0x11, 0x63, 0x51, 0xc9, 0x2b, 0x9c, 0xf9, 0xbb,
-            0x6d, 0x09, 0x1d, 0xdf, 0xc8, 0xb3, 0x2d, 0x43, 0x23, 0x48, 0xa2,
-            0xc4, 0x13,
+            0xca, 0xff, 0x00, 0x00, 0x1d, 0x00, 0x08, 0xf0, 0x67, 0xa5, 0x50,
+            0x2a, 0x42, 0x62, 0xb5, 0x00, 0x40, 0x74, 0xaa, 0xf2, 0xf0, 0x07,
+            0x82, 0x3a, 0x5d, 0x3a, 0x12, 0x07, 0xc8, 0x6e, 0xe4, 0x91, 0x32,
+            0x82, 0x4f, 0x04, 0x65, 0x24, 0x3d, 0x08, 0x2d, 0x86, 0x8b, 0x10,
+            0x7a, 0x38, 0x09, 0x2b, 0xc8, 0x05, 0x28, 0x66, 0x4c, 0xbf, 0x94,
+            0x56, 0xeb, 0xf2, 0x76, 0x73, 0xfb, 0x5f, 0xa5, 0x06, 0x1a, 0xb5,
+            0x73, 0xc9, 0xf0, 0x01, 0xb8, 0x1d, 0xa0, 0x28, 0xa0, 0x0d, 0x52,
+            0xab, 0x00, 0xb1, 0x5b, 0xeb, 0xaa, 0x70, 0x64, 0x0e, 0x10, 0x6c,
+            0xf2, 0xac, 0xd0, 0x43, 0xe9, 0xc6, 0xb4, 0x41, 0x1c, 0x0a, 0x79,
+            0x63, 0x71, 0x34, 0xd8, 0x99, 0x37, 0x01, 0xfe, 0x77, 0x9e, 0x58,
+            0xc2, 0xfe, 0x75, 0x3d, 0x14, 0xb0, 0x56, 0x40, 0x21, 0x56, 0x5e,
+            0xa9, 0x2e, 0x57, 0xbc, 0x6f, 0xaf, 0x56, 0xdf, 0xc7, 0xa4, 0x08,
+            0x70, 0xe6,
         ];
 
         let dcid = [0x83, 0x94, 0xc8, 0xf0, 0x3e, 0x51, 0x57, 0x08];
@@ -1275,10 +1447,82 @@
             0x2b, 0xb9, 0xda, 0x1a, 0x00, 0x2b, 0x00, 0x02, 0x03, 0x04,
         ];
 
-        test_decrypt_pkt(&mut pkt, &dcid, false, &frames, 1, 2);
+        assert_decrypt_initial_pkt(&mut pkt, &dcid, false, &frames, 1, 2);
     }
 
-    fn test_encrypt_pkt(
+    #[test]
+    fn decrypt_server_initial_old() {
+        let mut pkt = [
+            0xc9, 0xff, 0x00, 0x00, 0x1c, 0x00, 0x08, 0xf0, 0x67, 0xa5, 0x50,
+            0x2a, 0x42, 0x62, 0xb5, 0x00, 0x40, 0x74, 0x16, 0x8b, 0xf2, 0x2b,
+            0x70, 0x02, 0x59, 0x6f, 0x99, 0xae, 0x67, 0xab, 0xf6, 0x5a, 0x58,
+            0x52, 0xf5, 0x4f, 0x58, 0xc3, 0x7c, 0x80, 0x86, 0x82, 0xe2, 0xe4,
+            0x04, 0x92, 0xd8, 0xa3, 0x89, 0x9f, 0xb0, 0x4f, 0xc0, 0xaf, 0xe9,
+            0xaa, 0xbc, 0x87, 0x67, 0xb1, 0x8a, 0x0a, 0xa4, 0x93, 0x53, 0x74,
+            0x26, 0x37, 0x3b, 0x48, 0xd5, 0x02, 0x21, 0x4d, 0xd8, 0x56, 0xd6,
+            0x3b, 0x78, 0xce, 0xe3, 0x7b, 0xc6, 0x64, 0xb3, 0xfe, 0x86, 0xd4,
+            0x87, 0xac, 0x7a, 0x77, 0xc5, 0x30, 0x38, 0xa3, 0xcd, 0x32, 0xf0,
+            0xb5, 0x00, 0x4d, 0x9f, 0x57, 0x54, 0xc4, 0xf7, 0xf2, 0xd1, 0xf3,
+            0x5c, 0xf3, 0xf7, 0x11, 0x63, 0x51, 0xc9, 0x2b, 0xda, 0x5b, 0x23,
+            0xc8, 0x10, 0x34, 0xab, 0x74, 0xf5, 0x4c, 0xb1, 0xbd, 0x72, 0x95,
+            0x12, 0x56,
+        ];
+
+        let dcid = [0x83, 0x94, 0xc8, 0xf0, 0x3e, 0x51, 0x57, 0x08];
+
+        let frames = [
+            0x0d, 0x00, 0x00, 0x00, 0x00, 0x18, 0x41, 0x0a, 0x02, 0x00, 0x00,
+            0x56, 0x03, 0x03, 0xee, 0xfc, 0xe7, 0xf7, 0xb3, 0x7b, 0xa1, 0xd1,
+            0x63, 0x2e, 0x96, 0x67, 0x78, 0x25, 0xdd, 0xf7, 0x39, 0x88, 0xcf,
+            0xc7, 0x98, 0x25, 0xdf, 0x56, 0x6d, 0xc5, 0x43, 0x0b, 0x9a, 0x04,
+            0x5a, 0x12, 0x00, 0x13, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x33, 0x00,
+            0x24, 0x00, 0x1d, 0x00, 0x20, 0x9d, 0x3c, 0x94, 0x0d, 0x89, 0x69,
+            0x0b, 0x84, 0xd0, 0x8a, 0x60, 0x99, 0x3c, 0x14, 0x4e, 0xca, 0x68,
+            0x4d, 0x10, 0x81, 0x28, 0x7c, 0x83, 0x4d, 0x53, 0x11, 0xbc, 0xf3,
+            0x2b, 0xb9, 0xda, 0x1a, 0x00, 0x2b, 0x00, 0x02, 0x03, 0x04,
+        ];
+
+        assert_decrypt_initial_pkt(&mut pkt, &dcid, false, &frames, 1, 2);
+    }
+
+    #[test]
+    fn decrypt_chacha20() {
+        let secret = [
+            0x9a, 0xc3, 0x12, 0xa7, 0xf8, 0x77, 0x46, 0x8e, 0xbe, 0x69, 0x42,
+            0x27, 0x48, 0xad, 0x00, 0xa1, 0x54, 0x43, 0xf1, 0x82, 0x03, 0xa0,
+            0x7d, 0x60, 0x60, 0xf6, 0x88, 0xf3, 0x0f, 0x21, 0x63, 0x2b,
+        ];
+
+        let mut pkt = [
+            0x4c, 0xfe, 0x41, 0x89, 0x65, 0x5e, 0x5c, 0xd5, 0x5c, 0x41, 0xf6,
+            0x90, 0x80, 0x57, 0x5d, 0x79, 0x99, 0xc2, 0x5a, 0x5b, 0xfb,
+        ];
+
+        let mut b = octets::OctetsMut::with_slice(&mut pkt);
+
+        let alg = crypto::Algorithm::ChaCha20_Poly1305;
+
+        let aead = crypto::Open::from_secret(alg, &secret).unwrap();
+
+        let mut hdr = Header::from_bytes(&mut b, 0).unwrap();
+        assert_eq!(hdr.ty, Type::Short);
+
+        let payload_len = b.cap();
+
+        decrypt_hdr(&mut b, &mut hdr, &aead).unwrap();
+        assert_eq!(hdr.pkt_num_len, 3);
+
+        let pn = decode_pkt_num(654_360_564, hdr.pkt_num, hdr.pkt_num_len);
+        assert_eq!(pn, 654_360_564);
+
+        let payload =
+            decrypt_pkt(&mut b, pn, hdr.pkt_num_len, payload_len, &aead).unwrap();
+
+        let payload = payload.as_ref();
+        assert_eq!(&payload, &[0x01]);
+    }
+
+    fn assert_encrypt_initial_pkt(
         header: &mut [u8], dcid: &[u8], frames: &[u8], pn: u64, pn_len: usize,
         is_server: bool, expected_pkt: &[u8],
     ) {
@@ -1293,7 +1537,8 @@
         b.put_bytes(header).unwrap();
 
         let (_, aead) =
-            crypto::derive_initial_key_material(dcid, is_server).unwrap();
+            crypto::derive_initial_key_material(dcid, hdr.version, is_server)
+                .unwrap();
 
         let overhead = aead.alg().tag_len();
 
@@ -1314,7 +1559,7 @@
     #[test]
     fn encrypt_client_initial() {
         let mut header = [
-            0xc3, 0xff, 0x00, 0x00, 0x17, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e,
+            0xc3, 0xff, 0x00, 0x00, 0x1d, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e,
             0x51, 0x57, 0x08, 0x00, 0x00, 0x44, 0x9e, 0x00, 0x00, 0x00, 0x02,
         ];
 
@@ -1430,7 +1675,249 @@
         ];
 
         let pkt = [
-            0xc0, 0xff, 0x00, 0x00, 0x17, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e,
+            0xc5, 0xff, 0x00, 0x00, 0x1d, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e,
+            0x51, 0x57, 0x08, 0x00, 0x00, 0x44, 0x9e, 0x4a, 0x95, 0x24, 0x5b,
+            0xfb, 0x66, 0xbc, 0x5f, 0x93, 0x03, 0x2b, 0x7d, 0xdd, 0x89, 0xfe,
+            0x0f, 0xf1, 0x5d, 0x9c, 0x4f, 0x70, 0x50, 0xfc, 0xcd, 0xb7, 0x1c,
+            0x1c, 0xd8, 0x05, 0x12, 0xd4, 0x43, 0x16, 0x43, 0xa5, 0x3a, 0xaf,
+            0xa1, 0xb0, 0xb5, 0x18, 0xb4, 0x49, 0x68, 0xb1, 0x8b, 0x8d, 0x3e,
+            0x7a, 0x4d, 0x04, 0xc3, 0x0b, 0x3e, 0xd9, 0x41, 0x03, 0x25, 0xb2,
+            0xab, 0xb2, 0xda, 0xfb, 0x1c, 0x12, 0xf8, 0xb7, 0x04, 0x79, 0xeb,
+            0x8d, 0xf9, 0x8a, 0xbc, 0xaf, 0x95, 0xdd, 0x8f, 0x3d, 0x1c, 0x78,
+            0x66, 0x0f, 0xbc, 0x71, 0x9f, 0x88, 0xb2, 0x3c, 0x8a, 0xef, 0x67,
+            0x71, 0xf3, 0xd5, 0x0e, 0x10, 0xfd, 0xfb, 0x4c, 0x9d, 0x92, 0x38,
+            0x6d, 0x44, 0x48, 0x1b, 0x6c, 0x52, 0xd5, 0x9e, 0x55, 0x38, 0xd3,
+            0xd3, 0x94, 0x2d, 0xe9, 0xf1, 0x3a, 0x7f, 0x8b, 0x70, 0x2d, 0xc3,
+            0x17, 0x24, 0x18, 0x0d, 0xa9, 0xdf, 0x22, 0x71, 0x4d, 0x01, 0x00,
+            0x3f, 0xc5, 0xe3, 0xd1, 0x65, 0xc9, 0x50, 0xe6, 0x30, 0xb8, 0x54,
+            0x0f, 0xbd, 0x81, 0xc9, 0xdf, 0x0e, 0xe6, 0x3f, 0x94, 0x99, 0x70,
+            0x26, 0xc4, 0xf2, 0xe1, 0x88, 0x7a, 0x2d, 0xef, 0x79, 0x05, 0x0a,
+            0xc2, 0xd8, 0x6b, 0xa3, 0x18, 0xe0, 0xb3, 0xad, 0xc4, 0xc5, 0xaa,
+            0x18, 0xbc, 0xf6, 0x3c, 0x7c, 0xf8, 0xe8, 0x5f, 0x56, 0x92, 0x49,
+            0x81, 0x3a, 0x22, 0x36, 0xa7, 0xe7, 0x22, 0x69, 0x44, 0x7c, 0xd1,
+            0xc7, 0x55, 0xe4, 0x51, 0xf5, 0xe7, 0x74, 0x70, 0xeb, 0x3d, 0xe6,
+            0x4c, 0x88, 0x49, 0xd2, 0x92, 0x82, 0x06, 0x98, 0x02, 0x9c, 0xfa,
+            0x18, 0xe5, 0xd6, 0x61, 0x76, 0xfe, 0x6e, 0x5b, 0xa4, 0xed, 0x18,
+            0x02, 0x6f, 0x90, 0x90, 0x0a, 0x5b, 0x49, 0x80, 0xe2, 0xf5, 0x8e,
+            0x39, 0x15, 0x1d, 0x5c, 0xd6, 0x85, 0xb1, 0x09, 0x29, 0x63, 0x6d,
+            0x4f, 0x02, 0xe7, 0xfa, 0xd2, 0xa5, 0xa4, 0x58, 0x24, 0x9f, 0x5c,
+            0x02, 0x98, 0xa6, 0xd5, 0x3a, 0xcb, 0xe4, 0x1a, 0x7f, 0xc8, 0x3f,
+            0xa7, 0xcc, 0x01, 0x97, 0x3f, 0x7a, 0x74, 0xd1, 0x23, 0x7a, 0x51,
+            0x97, 0x4e, 0x09, 0x76, 0x36, 0xb6, 0x20, 0x39, 0x97, 0xf9, 0x21,
+            0xd0, 0x7b, 0xc1, 0x94, 0x0a, 0x6f, 0x2d, 0x0d, 0xe9, 0xf5, 0xa1,
+            0x14, 0x32, 0x94, 0x61, 0x59, 0xed, 0x6c, 0xc2, 0x1d, 0xf6, 0x5c,
+            0x4d, 0xdd, 0x11, 0x15, 0xf8, 0x64, 0x27, 0x25, 0x9a, 0x19, 0x6c,
+            0x71, 0x48, 0xb2, 0x5b, 0x64, 0x78, 0xb0, 0xdc, 0x77, 0x66, 0xe1,
+            0xc4, 0xd1, 0xb1, 0xf5, 0x15, 0x9f, 0x90, 0xea, 0xbc, 0x61, 0x63,
+            0x62, 0x26, 0x24, 0x46, 0x42, 0xee, 0x14, 0x8b, 0x46, 0x4c, 0x9e,
+            0x61, 0x9e, 0xe5, 0x0a, 0x5e, 0x3d, 0xdc, 0x83, 0x62, 0x27, 0xca,
+            0xd9, 0x38, 0x98, 0x7c, 0x4e, 0xa3, 0xc1, 0xfa, 0x7c, 0x75, 0xbb,
+            0xf8, 0x8d, 0x89, 0xe9, 0xad, 0xa6, 0x42, 0xb2, 0xb8, 0x8f, 0xe8,
+            0x10, 0x7b, 0x7e, 0xa3, 0x75, 0xb1, 0xb6, 0x48, 0x89, 0xa4, 0xe9,
+            0xe5, 0xc3, 0x8a, 0x1c, 0x89, 0x6c, 0xe2, 0x75, 0xa5, 0x65, 0x8d,
+            0x25, 0x0e, 0x2d, 0x76, 0xe1, 0xed, 0x3a, 0x34, 0xce, 0x7e, 0x3a,
+            0x3f, 0x38, 0x3d, 0x0c, 0x99, 0x6d, 0x0b, 0xed, 0x10, 0x6c, 0x28,
+            0x99, 0xca, 0x6f, 0xc2, 0x63, 0xef, 0x04, 0x55, 0xe7, 0x4b, 0xb6,
+            0xac, 0x16, 0x40, 0xea, 0x7b, 0xfe, 0xdc, 0x59, 0xf0, 0x3f, 0xee,
+            0x0e, 0x17, 0x25, 0xea, 0x15, 0x0f, 0xf4, 0xd6, 0x9a, 0x76, 0x60,
+            0xc5, 0x54, 0x21, 0x19, 0xc7, 0x1d, 0xe2, 0x70, 0xae, 0x7c, 0x3e,
+            0xcf, 0xd1, 0xaf, 0x2c, 0x4c, 0xe5, 0x51, 0x98, 0x69, 0x49, 0xcc,
+            0x34, 0xa6, 0x6b, 0x3e, 0x21, 0x6b, 0xfe, 0x18, 0xb3, 0x47, 0xe6,
+            0xc0, 0x5f, 0xd0, 0x50, 0xf8, 0x59, 0x12, 0xdb, 0x30, 0x3a, 0x8f,
+            0x05, 0x4e, 0xc2, 0x3e, 0x38, 0xf4, 0x4d, 0x1c, 0x72, 0x5a, 0xb6,
+            0x41, 0xae, 0x92, 0x9f, 0xec, 0xc8, 0xe3, 0xce, 0xfa, 0x56, 0x19,
+            0xdf, 0x42, 0x31, 0xf5, 0xb4, 0xc0, 0x09, 0xfa, 0x0c, 0x0b, 0xbc,
+            0x60, 0xbc, 0x75, 0xf7, 0x6d, 0x06, 0xef, 0x15, 0x4f, 0xc8, 0x57,
+            0x70, 0x77, 0xd9, 0xd6, 0xa1, 0xd2, 0xbd, 0x9b, 0xf0, 0x81, 0xdc,
+            0x78, 0x3e, 0xce, 0x60, 0x11, 0x1b, 0xea, 0x7d, 0xa9, 0xe5, 0xa9,
+            0x74, 0x80, 0x69, 0xd0, 0x78, 0xb2, 0xbe, 0xf4, 0x8d, 0xe0, 0x4c,
+            0xab, 0xe3, 0x75, 0x5b, 0x19, 0x7d, 0x52, 0xb3, 0x20, 0x46, 0x94,
+            0x9e, 0xca, 0xa3, 0x10, 0x27, 0x4b, 0x4a, 0xac, 0x0d, 0x00, 0x8b,
+            0x19, 0x48, 0xc1, 0x08, 0x2c, 0xdf, 0xe2, 0x08, 0x3e, 0x38, 0x6d,
+            0x4f, 0xd8, 0x4c, 0x0e, 0xd0, 0x66, 0x6d, 0x3e, 0xe2, 0x6c, 0x45,
+            0x15, 0xc4, 0xfe, 0xe7, 0x34, 0x33, 0xac, 0x70, 0x3b, 0x69, 0x0a,
+            0x9f, 0x7b, 0xf2, 0x78, 0xa7, 0x74, 0x86, 0xac, 0xe4, 0x4c, 0x48,
+            0x9a, 0x0c, 0x7a, 0xc8, 0xdf, 0xe4, 0xd1, 0xa5, 0x8f, 0xb3, 0xa7,
+            0x30, 0xb9, 0x93, 0xff, 0x0f, 0x0d, 0x61, 0xb4, 0xd8, 0x95, 0x57,
+            0x83, 0x1e, 0xb4, 0xc7, 0x52, 0xff, 0xd3, 0x9c, 0x10, 0xf6, 0xb9,
+            0xf4, 0x6d, 0x8d, 0xb2, 0x78, 0xda, 0x62, 0x4f, 0xd8, 0x00, 0xe4,
+            0xaf, 0x85, 0x54, 0x8a, 0x29, 0x4c, 0x15, 0x18, 0x89, 0x3a, 0x87,
+            0x78, 0xc4, 0xf6, 0xd6, 0xd7, 0x3c, 0x93, 0xdf, 0x20, 0x09, 0x60,
+            0x10, 0x4e, 0x06, 0x2b, 0x38, 0x8e, 0xa9, 0x7d, 0xcf, 0x40, 0x16,
+            0xbc, 0xed, 0x7f, 0x62, 0xb4, 0xf0, 0x62, 0xcb, 0x6c, 0x04, 0xc2,
+            0x06, 0x93, 0xd9, 0xa0, 0xe3, 0xb7, 0x4b, 0xa8, 0xfe, 0x74, 0xcc,
+            0x01, 0x23, 0x78, 0x84, 0xf4, 0x0d, 0x76, 0x5a, 0xe5, 0x6a, 0x51,
+            0x68, 0x8d, 0x98, 0x5c, 0xf0, 0xce, 0xae, 0xf4, 0x30, 0x45, 0xed,
+            0x8c, 0x3f, 0x0c, 0x33, 0xbc, 0xed, 0x08, 0x53, 0x7f, 0x68, 0x82,
+            0x61, 0x3a, 0xcd, 0x3b, 0x08, 0xd6, 0x65, 0xfc, 0xe9, 0xdd, 0x8a,
+            0xa7, 0x31, 0x71, 0xe2, 0xd3, 0x77, 0x1a, 0x61, 0xdb, 0xa2, 0x79,
+            0x0e, 0x49, 0x1d, 0x41, 0x3d, 0x93, 0xd9, 0x87, 0xe2, 0x74, 0x5a,
+            0xf2, 0x94, 0x18, 0xe4, 0x28, 0xbe, 0x34, 0x94, 0x14, 0x85, 0xc9,
+            0x34, 0x47, 0x52, 0x0f, 0xfe, 0x23, 0x1d, 0xa2, 0x30, 0x4d, 0x6a,
+            0x0f, 0xd5, 0xd0, 0x7d, 0x08, 0x37, 0x22, 0x02, 0x36, 0x96, 0x61,
+            0x59, 0xbe, 0xf3, 0xcf, 0x90, 0x4d, 0x72, 0x23, 0x24, 0xdd, 0x85,
+            0x25, 0x13, 0xdf, 0x39, 0xae, 0x03, 0x0d, 0x81, 0x73, 0x90, 0x8d,
+            0xa6, 0x36, 0x47, 0x86, 0xd3, 0xc1, 0xbf, 0xcb, 0x19, 0xea, 0x77,
+            0xa6, 0x3b, 0x25, 0xf1, 0xe7, 0xfc, 0x66, 0x1d, 0xef, 0x48, 0x0c,
+            0x5d, 0x00, 0xd4, 0x44, 0x56, 0x26, 0x9e, 0xbd, 0x84, 0xef, 0xd8,
+            0xe3, 0xa8, 0xb2, 0xc2, 0x57, 0xee, 0xc7, 0x60, 0x60, 0x68, 0x28,
+            0x48, 0xcb, 0xf5, 0x19, 0x4b, 0xc9, 0x9e, 0x49, 0xee, 0x75, 0xe4,
+            0xd0, 0xd2, 0x54, 0xba, 0xd4, 0xbf, 0xd7, 0x49, 0x70, 0xc3, 0x0e,
+            0x44, 0xb6, 0x55, 0x11, 0xd4, 0xad, 0x0e, 0x6e, 0xc7, 0x39, 0x8e,
+            0x08, 0xe0, 0x13, 0x07, 0xee, 0xee, 0xa1, 0x4e, 0x46, 0xcc, 0xd8,
+            0x7c, 0xf3, 0x6b, 0x28, 0x52, 0x21, 0x25, 0x4d, 0x8f, 0xc6, 0xa6,
+            0x76, 0x5c, 0x52, 0x4d, 0xed, 0x00, 0x85, 0xdc, 0xa5, 0xbd, 0x68,
+            0x8d, 0xdf, 0x72, 0x2e, 0x2c, 0x0f, 0xaf, 0x9d, 0x0f, 0xb2, 0xce,
+            0x7a, 0x0c, 0x3f, 0x2c, 0xee, 0x19, 0xca, 0x0f, 0xfb, 0xa4, 0x61,
+            0xca, 0x8d, 0xc5, 0xd2, 0xc8, 0x17, 0x8b, 0x07, 0x62, 0xcf, 0x67,
+            0x13, 0x55, 0x58, 0x49, 0x4d, 0x2a, 0x96, 0xf1, 0xa1, 0x39, 0xf0,
+            0xed, 0xb4, 0x2d, 0x2a, 0xf8, 0x9a, 0x9c, 0x91, 0x22, 0xb0, 0x7a,
+            0xcb, 0xc2, 0x9e, 0x5e, 0x72, 0x2d, 0xf8, 0x61, 0x5c, 0x34, 0x37,
+            0x02, 0x49, 0x10, 0x98, 0x47, 0x8a, 0x38, 0x9c, 0x98, 0x72, 0xa1,
+            0x0b, 0x0c, 0x98, 0x75, 0x12, 0x5e, 0x25, 0x7c, 0x7b, 0xfd, 0xf2,
+            0x7e, 0xef, 0x40, 0x60, 0xbd, 0x3d, 0x00, 0xf4, 0xc1, 0x4f, 0xd3,
+            0xe3, 0x49, 0x6c, 0x38, 0xd3, 0xc5, 0xd1, 0xa5, 0x66, 0x8c, 0x39,
+            0x35, 0x0e, 0xff, 0xbc, 0x2d, 0x16, 0xca, 0x17, 0xbe, 0x4c, 0xe2,
+            0x9f, 0x02, 0xed, 0x96, 0x95, 0x04, 0xdd, 0xa2, 0xa8, 0xc6, 0xb9,
+            0xff, 0x91, 0x9e, 0x69, 0x3e, 0xe7, 0x9e, 0x09, 0x08, 0x93, 0x16,
+            0xe7, 0xd1, 0xd8, 0x9e, 0xc0, 0x99, 0xdb, 0x3b, 0x2b, 0x26, 0x87,
+            0x25, 0xd8, 0x88, 0x53, 0x6a, 0x4b, 0x8b, 0xf9, 0xae, 0xe8, 0xfb,
+            0x43, 0xe8, 0x2a, 0x4d, 0x91, 0x9d, 0x48, 0x43, 0xb1, 0xca, 0x70,
+            0xa2, 0xd8, 0xd3, 0xf7, 0x25, 0xea, 0xd1, 0x39, 0x13, 0x77, 0xdc,
+            0xc0,
+        ];
+
+        assert_encrypt_initial_pkt(
+            &mut header,
+            &dcid,
+            &frames,
+            2,
+            4,
+            false,
+            &pkt,
+        );
+    }
+
+    #[test]
+    fn encrypt_client_initial_old() {
+        let mut header = [
+            0xc3, 0xff, 0x00, 0x00, 0x1c, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e,
+            0x51, 0x57, 0x08, 0x00, 0x00, 0x44, 0x9e, 0x00, 0x00, 0x00, 0x02,
+        ];
+
+        let dcid = [0x83, 0x94, 0xc8, 0xf0, 0x3e, 0x51, 0x57, 0x08];
+
+        let frames = [
+            0x06, 0x00, 0x40, 0xc4, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x03, 0x66,
+            0x60, 0x26, 0x1f, 0xf9, 0x47, 0xce, 0xa4, 0x9c, 0xce, 0x6c, 0xfa,
+            0xd6, 0x87, 0xf4, 0x57, 0xcf, 0x1b, 0x14, 0x53, 0x1b, 0xa1, 0x41,
+            0x31, 0xa0, 0xe8, 0xf3, 0x09, 0xa1, 0xd0, 0xb9, 0xc4, 0x00, 0x00,
+            0x06, 0x13, 0x01, 0x13, 0x03, 0x13, 0x02, 0x01, 0x00, 0x00, 0x91,
+            0x00, 0x00, 0x00, 0x0b, 0x00, 0x09, 0x00, 0x00, 0x06, 0x73, 0x65,
+            0x72, 0x76, 0x65, 0x72, 0xff, 0x01, 0x00, 0x01, 0x00, 0x00, 0x0a,
+            0x00, 0x14, 0x00, 0x12, 0x00, 0x1d, 0x00, 0x17, 0x00, 0x18, 0x00,
+            0x19, 0x01, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x03, 0x01, 0x04,
+            0x00, 0x23, 0x00, 0x00, 0x00, 0x33, 0x00, 0x26, 0x00, 0x24, 0x00,
+            0x1d, 0x00, 0x20, 0x4c, 0xfd, 0xfc, 0xd1, 0x78, 0xb7, 0x84, 0xbf,
+            0x32, 0x8c, 0xae, 0x79, 0x3b, 0x13, 0x6f, 0x2a, 0xed, 0xce, 0x00,
+            0x5f, 0xf1, 0x83, 0xd7, 0xbb, 0x14, 0x95, 0x20, 0x72, 0x36, 0x64,
+            0x70, 0x37, 0x00, 0x2b, 0x00, 0x03, 0x02, 0x03, 0x04, 0x00, 0x0d,
+            0x00, 0x20, 0x00, 0x1e, 0x04, 0x03, 0x05, 0x03, 0x06, 0x03, 0x02,
+            0x03, 0x08, 0x04, 0x08, 0x05, 0x08, 0x06, 0x04, 0x01, 0x05, 0x01,
+            0x06, 0x01, 0x02, 0x01, 0x04, 0x02, 0x05, 0x02, 0x06, 0x02, 0x02,
+            0x02, 0x00, 0x2d, 0x00, 0x02, 0x01, 0x01, 0x00, 0x1c, 0x00, 0x02,
+            0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+        ];
+
+        let pkt = [
+            0xc0, 0xff, 0x00, 0x00, 0x1c, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e,
             0x51, 0x57, 0x08, 0x00, 0x00, 0x44, 0x9e, 0x3b, 0x34, 0x3a, 0xa8,
             0x53, 0x50, 0x64, 0xa4, 0x26, 0x8a, 0x0d, 0x9d, 0x7b, 0x1c, 0x9d,
             0x25, 0x0a, 0xe3, 0x55, 0x16, 0x22, 0x76, 0xe9, 0xb1, 0xe3, 0x01,
@@ -1537,18 +2024,26 @@
             0x7c, 0x26, 0x26, 0x48, 0xbb, 0x18, 0xbc, 0xfc, 0x13, 0xc8, 0xb3,
             0xd9, 0x7b, 0x1a, 0x77, 0xb2, 0xac, 0x3a, 0xf7, 0x45, 0xd6, 0x1a,
             0x34, 0xcc, 0x47, 0x09, 0x86, 0x5b, 0xac, 0x82, 0x4a, 0x94, 0xbb,
-            0x19, 0x05, 0x80, 0x15, 0xe4, 0xe4, 0x2d, 0xc9, 0xbe, 0x6c, 0x78,
-            0x03, 0x56, 0x73, 0x21, 0x82, 0x9d, 0xd8, 0x58, 0x53, 0x39, 0x62,
-            0x69,
+            0x19, 0x05, 0x80, 0x15, 0xe4, 0xe4, 0x2d, 0xea, 0x53, 0x88, 0xb9,
+            0x11, 0xe7, 0x6d, 0x28, 0x56, 0xd6, 0x8c, 0xf6, 0xcf, 0x39, 0x41,
+            0x85,
         ];
 
-        test_encrypt_pkt(&mut header, &dcid, &frames, 2, 4, false, &pkt);
+        assert_encrypt_initial_pkt(
+            &mut header,
+            &dcid,
+            &frames,
+            2,
+            4,
+            false,
+            &pkt,
+        );
     }
 
     #[test]
     fn encrypt_server_initial() {
         let mut header = [
-            0xc1, 0xff, 0x00, 0x00, 0x17, 0x00, 0x08, 0xf0, 0x67, 0xa5, 0x50,
+            0xc1, 0xff, 0x00, 0x00, 0x1d, 0x00, 0x08, 0xf0, 0x67, 0xa5, 0x50,
             0x2a, 0x42, 0x62, 0xb5, 0x00, 0x40, 0x74, 0x00, 0x01,
         ];
 
@@ -1567,7 +2062,47 @@
         ];
 
         let pkt = [
-            0xc9, 0xff, 0x00, 0x00, 0x17, 0x00, 0x08, 0xf0, 0x67, 0xa5, 0x50,
+            0xca, 0xff, 0x00, 0x00, 0x1d, 0x00, 0x08, 0xf0, 0x67, 0xa5, 0x50,
+            0x2a, 0x42, 0x62, 0xb5, 0x00, 0x40, 0x74, 0xaa, 0xf2, 0xf0, 0x07,
+            0x82, 0x3a, 0x5d, 0x3a, 0x12, 0x07, 0xc8, 0x6e, 0xe4, 0x91, 0x32,
+            0x82, 0x4f, 0x04, 0x65, 0x24, 0x3d, 0x08, 0x2d, 0x86, 0x8b, 0x10,
+            0x7a, 0x38, 0x09, 0x2b, 0xc8, 0x05, 0x28, 0x66, 0x4c, 0xbf, 0x94,
+            0x56, 0xeb, 0xf2, 0x76, 0x73, 0xfb, 0x5f, 0xa5, 0x06, 0x1a, 0xb5,
+            0x73, 0xc9, 0xf0, 0x01, 0xb8, 0x1d, 0xa0, 0x28, 0xa0, 0x0d, 0x52,
+            0xab, 0x00, 0xb1, 0x5b, 0xeb, 0xaa, 0x70, 0x64, 0x0e, 0x10, 0x6c,
+            0xf2, 0xac, 0xd0, 0x43, 0xe9, 0xc6, 0xb4, 0x41, 0x1c, 0x0a, 0x79,
+            0x63, 0x71, 0x34, 0xd8, 0x99, 0x37, 0x01, 0xfe, 0x77, 0x9e, 0x58,
+            0xc2, 0xfe, 0x75, 0x3d, 0x14, 0xb0, 0x56, 0x40, 0x21, 0x56, 0x5e,
+            0xa9, 0x2e, 0x57, 0xbc, 0x6f, 0xaf, 0x56, 0xdf, 0xc7, 0xa4, 0x08,
+            0x70, 0xe6,
+        ];
+
+        assert_encrypt_initial_pkt(&mut header, &dcid, &frames, 1, 2, true, &pkt);
+    }
+
+    #[test]
+    fn encrypt_server_initial_old() {
+        let mut header = [
+            0xc1, 0xff, 0x00, 0x00, 0x1c, 0x00, 0x08, 0xf0, 0x67, 0xa5, 0x50,
+            0x2a, 0x42, 0x62, 0xb5, 0x00, 0x40, 0x74, 0x00, 0x01,
+        ];
+
+        let dcid = [0x83, 0x94, 0xc8, 0xf0, 0x3e, 0x51, 0x57, 0x08];
+
+        let frames = [
+            0x0d, 0x00, 0x00, 0x00, 0x00, 0x18, 0x41, 0x0a, 0x02, 0x00, 0x00,
+            0x56, 0x03, 0x03, 0xee, 0xfc, 0xe7, 0xf7, 0xb3, 0x7b, 0xa1, 0xd1,
+            0x63, 0x2e, 0x96, 0x67, 0x78, 0x25, 0xdd, 0xf7, 0x39, 0x88, 0xcf,
+            0xc7, 0x98, 0x25, 0xdf, 0x56, 0x6d, 0xc5, 0x43, 0x0b, 0x9a, 0x04,
+            0x5a, 0x12, 0x00, 0x13, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x33, 0x00,
+            0x24, 0x00, 0x1d, 0x00, 0x20, 0x9d, 0x3c, 0x94, 0x0d, 0x89, 0x69,
+            0x0b, 0x84, 0xd0, 0x8a, 0x60, 0x99, 0x3c, 0x14, 0x4e, 0xca, 0x68,
+            0x4d, 0x10, 0x81, 0x28, 0x7c, 0x83, 0x4d, 0x53, 0x11, 0xbc, 0xf3,
+            0x2b, 0xb9, 0xda, 0x1a, 0x00, 0x2b, 0x00, 0x02, 0x03, 0x04,
+        ];
+
+        let pkt = [
+            0xc9, 0xff, 0x00, 0x00, 0x1c, 0x00, 0x08, 0xf0, 0x67, 0xa5, 0x50,
             0x2a, 0x42, 0x62, 0xb5, 0x00, 0x40, 0x74, 0x16, 0x8b, 0xf2, 0x2b,
             0x70, 0x02, 0x59, 0x6f, 0x99, 0xae, 0x67, 0xab, 0xf6, 0x5a, 0x58,
             0x52, 0xf5, 0x4f, 0x58, 0xc3, 0x7c, 0x80, 0x86, 0x82, 0xe2, 0xe4,
@@ -1577,16 +2112,66 @@
             0x3b, 0x78, 0xce, 0xe3, 0x7b, 0xc6, 0x64, 0xb3, 0xfe, 0x86, 0xd4,
             0x87, 0xac, 0x7a, 0x77, 0xc5, 0x30, 0x38, 0xa3, 0xcd, 0x32, 0xf0,
             0xb5, 0x00, 0x4d, 0x9f, 0x57, 0x54, 0xc4, 0xf7, 0xf2, 0xd1, 0xf3,
-            0x5c, 0xf3, 0xf7, 0x11, 0x63, 0x51, 0xc9, 0x2b, 0x9c, 0xf9, 0xbb,
-            0x6d, 0x09, 0x1d, 0xdf, 0xc8, 0xb3, 0x2d, 0x43, 0x23, 0x48, 0xa2,
-            0xc4, 0x13,
+            0x5c, 0xf3, 0xf7, 0x11, 0x63, 0x51, 0xc9, 0x2b, 0xda, 0x5b, 0x23,
+            0xc8, 0x10, 0x34, 0xab, 0x74, 0xf5, 0x4c, 0xb1, 0xbd, 0x72, 0x95,
+            0x12, 0x56,
         ];
 
-        test_encrypt_pkt(&mut header, &dcid, &frames, 1, 2, true, &pkt);
+        assert_encrypt_initial_pkt(&mut header, &dcid, &frames, 1, 2, true, &pkt);
     }
 
     #[test]
-    fn decrypto_pkt_underflow() {
+    fn encrypt_chacha20() {
+        let secret = [
+            0x9a, 0xc3, 0x12, 0xa7, 0xf8, 0x77, 0x46, 0x8e, 0xbe, 0x69, 0x42,
+            0x27, 0x48, 0xad, 0x00, 0xa1, 0x54, 0x43, 0xf1, 0x82, 0x03, 0xa0,
+            0x7d, 0x60, 0x60, 0xf6, 0x88, 0xf3, 0x0f, 0x21, 0x63, 0x2b,
+        ];
+
+        let mut header = [0x42, 0x00, 0xbf, 0xf4];
+
+        let expected_pkt = [
+            0x4c, 0xfe, 0x41, 0x89, 0x65, 0x5e, 0x5c, 0xd5, 0x5c, 0x41, 0xf6,
+            0x90, 0x80, 0x57, 0x5d, 0x79, 0x99, 0xc2, 0x5a, 0x5b, 0xfb,
+        ];
+
+        let mut b = octets::OctetsMut::with_slice(&mut header);
+
+        let hdr = Header::from_bytes(&mut b, 0).unwrap();
+        assert_eq!(hdr.ty, Type::Short);
+
+        let mut out = vec![0; expected_pkt.len()];
+        let mut b = octets::OctetsMut::with_slice(&mut out);
+
+        b.put_bytes(&header).unwrap();
+
+        let alg = crypto::Algorithm::ChaCha20_Poly1305;
+
+        let aead = crypto::Seal::from_secret(alg, &secret).unwrap();
+
+        let pn = 654_360_564;
+        let pn_len = 3;
+
+        let frames = [01];
+
+        let overhead = aead.alg().tag_len();
+
+        let payload_len = frames.len() + overhead;
+
+        let payload_offset = b.off();
+
+        b.put_bytes(&frames).unwrap();
+
+        let written =
+            encrypt_pkt(&mut b, pn, pn_len, payload_len, payload_offset, &aead)
+                .unwrap();
+
+        assert_eq!(written, expected_pkt.len());
+        assert_eq!(&out[..written], &expected_pkt[..]);
+    }
+
+    #[test]
+    fn decrypt_pkt_underflow() {
         let mut buf = [0; 65535];
         let mut b = octets::OctetsMut::with_slice(&mut buf);
 
@@ -1608,7 +2193,8 @@
 
         let payload_len = b.get_varint().unwrap() as usize;
 
-        let (aead, _) = crypto::derive_initial_key_material(b"", true).unwrap();
+        let (aead, _) =
+            crypto::derive_initial_key_material(b"", hdr.version, true).unwrap();
 
         assert_eq!(
             decrypt_pkt(&mut b, 0, 1, payload_len, &aead),
diff --git a/src/recovery.rs b/src/recovery.rs
deleted file mode 100644
index e30f364..0000000
--- a/src/recovery.rs
+++ /dev/null
@@ -1,1263 +0,0 @@
-// Copyright (C) 2018-2019, Cloudflare, Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright notice,
-//       this list of conditions and the following disclaimer.
-//
-//     * 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 HOLDER 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.
-
-use std::cmp;
-
-use std::str::FromStr;
-
-use std::time::Duration;
-use std::time::Instant;
-
-use std::collections::BTreeMap;
-
-use crate::Config;
-use crate::Error;
-use crate::Result;
-
-use crate::frame;
-use crate::minmax;
-use crate::packet;
-use crate::ranges;
-
-// Loss Recovery
-const PACKET_THRESHOLD: u64 = 3;
-
-const TIME_THRESHOLD: f64 = 9.0 / 8.0;
-
-const GRANULARITY: Duration = Duration::from_millis(1);
-
-const INITIAL_RTT: Duration = Duration::from_millis(500);
-
-const PERSISTENT_CONGESTION_THRESHOLD: u32 = 3;
-
-const RTT_WINDOW: Duration = Duration::from_secs(300);
-
-// Congestion Control
-const INITIAL_WINDOW_PACKETS: usize = 10;
-
-const INITIAL_WINDOW: usize = INITIAL_WINDOW_PACKETS * MAX_DATAGRAM_SIZE;
-
-const MINIMUM_WINDOW: usize = 2 * MAX_DATAGRAM_SIZE;
-
-const MAX_DATAGRAM_SIZE: usize = 1452;
-
-const LOSS_REDUCTION_FACTOR: f64 = 0.5;
-
-pub struct Recovery {
-    loss_detection_timer: Option<Instant>,
-
-    pto_count: u32,
-
-    time_of_last_sent_ack_eliciting_pkt: [Option<Instant>; packet::EPOCH_COUNT],
-
-    largest_acked_pkt: [u64; packet::EPOCH_COUNT],
-
-    largest_sent_pkt: [u64; packet::EPOCH_COUNT],
-
-    latest_rtt: Duration,
-
-    smoothed_rtt: Option<Duration>,
-
-    rttvar: Duration,
-
-    minmax_filter: minmax::Minmax,
-
-    min_rtt: Duration,
-
-    pub max_ack_delay: Duration,
-
-    loss_time: [Option<Instant>; packet::EPOCH_COUNT],
-
-    sent: [BTreeMap<u64, Sent>; packet::EPOCH_COUNT],
-
-    pub lost: [Vec<frame::Frame>; packet::EPOCH_COUNT],
-
-    pub acked: [Vec<frame::Frame>; packet::EPOCH_COUNT],
-
-    pub lost_count: usize,
-
-    pub loss_probes: [usize; packet::EPOCH_COUNT],
-
-    app_limited: bool,
-
-    delivery_rate: delivery_rate::Rate,
-
-    // Congestion control.
-    cc_ops: &'static CongestionControlOps,
-
-    congestion_window: usize,
-
-    bytes_in_flight: usize,
-
-    ssthresh: usize,
-
-    congestion_recovery_start_time: Option<Instant>,
-
-    cubic_state: cubic::State,
-
-    // HyStart++.
-    hystart: hystart::Hystart,
-}
-
-impl Recovery {
-    pub fn new(config: &Config) -> Self {
-        Recovery {
-            loss_detection_timer: None,
-
-            pto_count: 0,
-
-            time_of_last_sent_ack_eliciting_pkt: [None; packet::EPOCH_COUNT],
-
-            largest_acked_pkt: [std::u64::MAX; packet::EPOCH_COUNT],
-
-            largest_sent_pkt: [0; packet::EPOCH_COUNT],
-
-            latest_rtt: Duration::new(0, 0),
-
-            smoothed_rtt: None,
-
-            minmax_filter: minmax::Minmax::new(),
-
-            min_rtt: Duration::new(0, 0),
-
-            rttvar: Duration::new(0, 0),
-
-            max_ack_delay: Duration::from_millis(25),
-
-            loss_time: [None; packet::EPOCH_COUNT],
-
-            sent: [BTreeMap::new(), BTreeMap::new(), BTreeMap::new()],
-
-            lost: [Vec::new(), Vec::new(), Vec::new()],
-
-            acked: [Vec::new(), Vec::new(), Vec::new()],
-
-            lost_count: 0,
-
-            loss_probes: [0; packet::EPOCH_COUNT],
-
-            congestion_window: INITIAL_WINDOW,
-
-            bytes_in_flight: 0,
-
-            ssthresh: std::usize::MAX,
-
-            congestion_recovery_start_time: None,
-
-            cc_ops: config.cc_algorithm.into(),
-
-            delivery_rate: delivery_rate::Rate::default(),
-
-            cubic_state: cubic::State::default(),
-
-            app_limited: false,
-
-            hystart: hystart::Hystart::new(config.hystart),
-        }
-    }
-
-    pub fn on_packet_sent(
-        &mut self, mut pkt: Sent, epoch: packet::Epoch,
-        handshake_completed: bool, now: Instant, trace_id: &str,
-    ) {
-        let ack_eliciting = pkt.ack_eliciting;
-        let in_flight = pkt.in_flight;
-        let sent_bytes = pkt.size;
-        let pkt_num = pkt.pkt_num;
-
-        self.delivery_rate.on_packet_sent(&mut pkt, now);
-
-        self.largest_sent_pkt[epoch] =
-            cmp::max(self.largest_sent_pkt[epoch], pkt_num);
-
-        self.sent[epoch].insert(pkt.pkt_num, pkt);
-
-        if in_flight {
-            if ack_eliciting {
-                self.time_of_last_sent_ack_eliciting_pkt[epoch] = Some(now);
-            }
-
-            self.app_limited =
-                (self.bytes_in_flight + sent_bytes) < self.congestion_window;
-
-            self.on_packet_sent_cc(sent_bytes, now);
-
-            self.set_loss_detection_timer(handshake_completed);
-        }
-
-        // HyStart++: Start of the round in a slow start.
-        if self.hystart.enabled() &&
-            epoch == packet::EPOCH_APPLICATION &&
-            self.congestion_window < self.ssthresh
-        {
-            self.hystart.start_round(pkt_num);
-        }
-
-        trace!("{} {:?}", trace_id, self);
-    }
-
-    fn on_packet_sent_cc(&mut self, sent_bytes: usize, now: Instant) {
-        (self.cc_ops.on_packet_sent)(self, sent_bytes, now);
-    }
-
-    pub fn on_ack_received(
-        &mut self, ranges: &ranges::RangeSet, ack_delay: u64,
-        epoch: packet::Epoch, handshake_completed: bool, now: Instant,
-        trace_id: &str,
-    ) -> Result<()> {
-        let largest_acked = ranges.last().unwrap();
-
-        // If the largest packet number acked exceeds any packet number we have
-        // sent, then the ACK is obviously invalid, so there's no need to
-        // continue further.
-        if largest_acked > self.largest_sent_pkt[epoch] {
-            if cfg!(feature = "fuzzing") {
-                return Ok(());
-            }
-
-            return Err(Error::InvalidPacket);
-        }
-
-        if self.largest_acked_pkt[epoch] == std::u64::MAX {
-            self.largest_acked_pkt[epoch] = largest_acked;
-        } else {
-            self.largest_acked_pkt[epoch] =
-                cmp::max(self.largest_acked_pkt[epoch], largest_acked);
-        }
-
-        if let Some(pkt) = self.sent[epoch].get(&self.largest_acked_pkt[epoch]) {
-            if pkt.ack_eliciting {
-                let latest_rtt = now - pkt.time_sent;
-
-                let ack_delay = if epoch == packet::EPOCH_APPLICATION {
-                    Duration::from_micros(ack_delay)
-                } else {
-                    Duration::from_micros(0)
-                };
-
-                self.update_rtt(latest_rtt, ack_delay, now);
-            }
-        }
-
-        let mut has_newly_acked = false;
-
-        // Processing acked packets in reverse order (from largest to smallest)
-        // appears to be faster, possibly due to the BTreeMap implementation.
-        for pn in ranges.flatten().rev() {
-            // If the acked packet number is lower than the lowest unacked packet
-            // number it means that the packet is not newly acked, so return
-            // early.
-            //
-            // Since we process acked packets from largest to lowest, this means
-            // that as soon as we see an already-acked packet number
-            // all following packet numbers will also be already
-            // acked.
-            if let Some(lowest) = self.sent[epoch].values().next() {
-                if pn < lowest.pkt_num {
-                    break;
-                }
-            }
-
-            let newly_acked = self.on_packet_acked(pn, epoch, now);
-            has_newly_acked = cmp::max(has_newly_acked, newly_acked);
-
-            if newly_acked {
-                trace!("{} packet newly acked {}", trace_id, pn);
-            }
-        }
-
-        self.delivery_rate.estimate();
-
-        if !has_newly_acked {
-            return Ok(());
-        }
-
-        self.detect_lost_packets(epoch, now, trace_id);
-
-        self.pto_count = 0;
-
-        self.set_loss_detection_timer(handshake_completed);
-
-        trace!("{} {:?}", trace_id, self);
-
-        Ok(())
-    }
-
-    pub fn on_loss_detection_timeout(
-        &mut self, handshake_completed: bool, now: Instant, trace_id: &str,
-    ) {
-        let (earliest_loss_time, epoch) =
-            self.earliest_loss_time(self.loss_time, handshake_completed);
-
-        if earliest_loss_time.is_some() {
-            self.detect_lost_packets(epoch, now, trace_id);
-            self.set_loss_detection_timer(handshake_completed);
-
-            trace!("{} {:?}", trace_id, self);
-            return;
-        }
-
-        // TODO: handle client without 1-RTT keys case.
-
-        let (_, epoch) = self.earliest_loss_time(
-            self.time_of_last_sent_ack_eliciting_pkt,
-            handshake_completed,
-        );
-
-        self.loss_probes[epoch] = 2;
-
-        self.pto_count += 1;
-
-        self.set_loss_detection_timer(handshake_completed);
-
-        trace!("{} {:?}", trace_id, self);
-    }
-
-    pub fn on_pkt_num_space_discarded(
-        &mut self, epoch: packet::Epoch, handshake_completed: bool,
-    ) {
-        let mut unacked_bytes = 0;
-
-        for p in self.sent[epoch].values_mut().filter(|p| p.in_flight) {
-            unacked_bytes += p.size;
-        }
-
-        self.bytes_in_flight = self.bytes_in_flight.saturating_sub(unacked_bytes);
-
-        self.sent[epoch].clear();
-        self.lost[epoch].clear();
-        self.acked[epoch].clear();
-
-        self.time_of_last_sent_ack_eliciting_pkt[epoch] = None;
-        self.loss_time[epoch] = None;
-        self.loss_probes[epoch] = 0;
-
-        self.set_loss_detection_timer(handshake_completed);
-    }
-
-    pub fn loss_detection_timer(&self) -> Option<Instant> {
-        self.loss_detection_timer
-    }
-
-    pub fn cwnd(&self) -> usize {
-        self.congestion_window
-    }
-
-    pub fn cwnd_available(&self) -> usize {
-        // Ignore cwnd when sending probe packets.
-        if self.loss_probes.iter().any(|&x| x > 0) {
-            return std::usize::MAX;
-        }
-
-        self.congestion_window.saturating_sub(self.bytes_in_flight)
-    }
-
-    pub fn rtt(&self) -> Duration {
-        self.smoothed_rtt.unwrap_or(INITIAL_RTT)
-    }
-
-    pub fn pto(&self) -> Duration {
-        self.rtt() + cmp::max(self.rttvar * 4, GRANULARITY) + self.max_ack_delay
-    }
-
-    pub fn delivery_rate(&self) -> u64 {
-        self.delivery_rate.delivery_rate()
-    }
-
-    fn update_rtt(
-        &mut self, latest_rtt: Duration, ack_delay: Duration, now: Instant,
-    ) {
-        self.latest_rtt = latest_rtt;
-
-        match self.smoothed_rtt {
-            // First RTT sample.
-            None => {
-                self.min_rtt = self.minmax_filter.reset(now, latest_rtt);
-
-                self.smoothed_rtt = Some(latest_rtt);
-
-                self.rttvar = latest_rtt / 2;
-            },
-
-            Some(srtt) => {
-                self.min_rtt =
-                    self.minmax_filter.running_min(RTT_WINDOW, now, latest_rtt);
-
-                let ack_delay = cmp::min(self.max_ack_delay, ack_delay);
-
-                // Adjust for ack delay if plausible.
-                let adjusted_rtt = if latest_rtt > self.min_rtt + ack_delay {
-                    latest_rtt - ack_delay
-                } else {
-                    latest_rtt
-                };
-
-                self.rttvar = self.rttvar.mul_f64(3.0 / 4.0) +
-                    sub_abs(srtt, adjusted_rtt).mul_f64(1.0 / 4.0);
-
-                self.smoothed_rtt = Some(
-                    srtt.mul_f64(7.0 / 8.0) + adjusted_rtt.mul_f64(1.0 / 8.0),
-                );
-            },
-        }
-    }
-
-    fn earliest_loss_time(
-        &mut self, times: [Option<Instant>; packet::EPOCH_COUNT],
-        handshake_completed: bool,
-    ) -> (Option<Instant>, packet::Epoch) {
-        let mut epoch = packet::EPOCH_INITIAL;
-        let mut time = times[epoch];
-
-        // Iterate over all packet number spaces starting from Handshake.
-        #[allow(clippy::needless_range_loop)]
-        for e in packet::EPOCH_HANDSHAKE..packet::EPOCH_COUNT {
-            let new_time = times[e];
-
-            if e == packet::EPOCH_APPLICATION && !handshake_completed {
-                continue;
-            }
-
-            if new_time.is_some() && (time.is_none() || new_time < time) {
-                time = new_time;
-                epoch = e;
-            }
-        }
-
-        (time, epoch)
-    }
-
-    fn set_loss_detection_timer(&mut self, handshake_completed: bool) {
-        let (earliest_loss_time, _) =
-            self.earliest_loss_time(self.loss_time, handshake_completed);
-
-        if earliest_loss_time.is_some() {
-            // Time threshold loss detection.
-            self.loss_detection_timer = earliest_loss_time;
-            return;
-        }
-
-        if self.bytes_in_flight == 0 {
-            // TODO: check if peer is awaiting address validation.
-            self.loss_detection_timer = None;
-            return;
-        }
-
-        // PTO timer.
-        let timeout = match self.smoothed_rtt {
-            None => INITIAL_RTT * 2,
-
-            Some(_) => self.pto(),
-        };
-
-        let timeout = timeout * 2_u32.pow(self.pto_count);
-
-        let (sent_time, _) = self.earliest_loss_time(
-            self.time_of_last_sent_ack_eliciting_pkt,
-            handshake_completed,
-        );
-
-        if let Some(sent_time) = sent_time {
-            self.loss_detection_timer = Some(sent_time + timeout);
-        }
-    }
-
-    fn detect_lost_packets(
-        &mut self, epoch: packet::Epoch, now: Instant, trace_id: &str,
-    ) {
-        let largest_acked = self.largest_acked_pkt[epoch];
-
-        let mut lost_pkt: Vec<u64> = Vec::new();
-
-        self.loss_time[epoch] = None;
-
-        let loss_delay =
-            cmp::max(self.latest_rtt, self.rtt()).mul_f64(TIME_THRESHOLD);
-
-        // Minimum time of kGranularity before packets are deemed lost.
-        let loss_delay = cmp::max(loss_delay, GRANULARITY);
-
-        // Packets sent before this time are deemed lost.
-        let lost_send_time = now - loss_delay;
-
-        for (_, unacked) in self.sent[epoch].range(..=largest_acked) {
-            // Mark packet as lost, or set time when it should be marked.
-            if unacked.time_sent <= lost_send_time ||
-                largest_acked >= unacked.pkt_num + PACKET_THRESHOLD
-            {
-                if unacked.in_flight {
-                    trace!(
-                        "{} packet {} lost on epoch {}",
-                        trace_id,
-                        unacked.pkt_num,
-                        epoch
-                    );
-                }
-
-                // We can't remove the lost packet from |self.sent| here, so
-                // simply keep track of the number so it can be removed later.
-                lost_pkt.push(unacked.pkt_num);
-            } else {
-                let loss_time = match self.loss_time[epoch] {
-                    None => unacked.time_sent + loss_delay,
-
-                    Some(loss_time) =>
-                        cmp::min(loss_time, unacked.time_sent + loss_delay),
-                };
-
-                self.loss_time[epoch] = Some(loss_time);
-            }
-        }
-
-        if !lost_pkt.is_empty() {
-            self.on_packets_lost(lost_pkt, epoch, now);
-        }
-    }
-
-    fn on_packet_acked(
-        &mut self, pkt_num: u64, epoch: packet::Epoch, now: Instant,
-    ) -> bool {
-        // Check if packet is newly acked.
-        if let Some(mut p) = self.sent[epoch].remove(&pkt_num) {
-            self.acked[epoch].append(&mut p.frames);
-
-            if p.in_flight {
-                self.on_packet_acked_cc(epoch, &p, now);
-
-                self.delivery_rate.on_ack_received(p, now);
-            }
-
-            return true;
-        }
-
-        // Is not newly acked.
-        false
-    }
-
-    fn on_packet_acked_cc(
-        &mut self, epoch: packet::Epoch, packet: &Sent, now: Instant,
-    ) {
-        (self.cc_ops.on_packet_acked)(self, epoch, packet, now);
-    }
-
-    fn in_congestion_recovery(&self, sent_time: Instant) -> bool {
-        match self.congestion_recovery_start_time {
-            Some(congestion_recovery_start_time) =>
-                sent_time <= congestion_recovery_start_time,
-
-            None => false,
-        }
-    }
-
-    fn in_persistent_congestion(&mut self, _largest_lost_pkt: &Sent) -> bool {
-        let _congestion_period = self.pto() * PERSISTENT_CONGESTION_THRESHOLD;
-
-        // TODO: properly detect persistent congestion
-        false
-    }
-
-    fn on_packets_lost(
-        &mut self, lost_pkt: Vec<u64>, epoch: packet::Epoch, now: Instant,
-    ) {
-        // Differently from OnPacketsLost(), we need to handle both
-        // in-flight and non-in-flight packets, so need to keep track
-        // of whether we saw any lost in-flight packet to trigger the
-        // congestion event later.
-        let mut largest_lost_pkt: Option<Sent> = None;
-
-        for lost in lost_pkt {
-            let mut p = self.sent[epoch].remove(&lost).unwrap();
-
-            self.lost_count += 1;
-
-            if !p.in_flight {
-                continue;
-            }
-
-            self.bytes_in_flight = self.bytes_in_flight.saturating_sub(p.size);
-
-            self.lost[epoch].append(&mut p.frames);
-
-            largest_lost_pkt = Some(p);
-        }
-
-        if let Some(largest_lost_pkt) = largest_lost_pkt {
-            self.congestion_event(largest_lost_pkt.time_sent, epoch, now);
-
-            if self.in_persistent_congestion(&largest_lost_pkt) {
-                self.collapse_cwnd();
-            }
-        }
-    }
-
-    fn congestion_event(
-        &mut self, time_sent: Instant, epoch: packet::Epoch, now: Instant,
-    ) {
-        (self.cc_ops.congestion_event)(self, time_sent, epoch, now);
-    }
-
-    fn collapse_cwnd(&mut self) {
-        (self.cc_ops.collapse_cwnd)(self);
-    }
-
-    pub fn rate_check_app_limited(&mut self) {
-        if self.app_limited {
-            self.delivery_rate.check_app_limited(self.bytes_in_flight)
-        }
-    }
-
-    fn hystart_on_packet_acked(
-        &mut self, packet: &Sent, now: Instant,
-    ) -> (usize, usize) {
-        self.hystart.on_packet_acked(
-            packet,
-            self.latest_rtt,
-            self.congestion_window,
-            self.ssthresh,
-            now,
-        )
-    }
-
-    pub fn update_app_limited(&mut self, v: bool) {
-        self.app_limited = v;
-    }
-
-    pub fn app_limited(&mut self) -> bool {
-        self.app_limited
-    }
-
-    #[cfg(feature = "qlog")]
-    pub fn to_qlog(&self) -> qlog::event::Event {
-        // QVis can't use all these fields and they can be large.
-        qlog::event::Event::metrics_updated(
-            Some(self.min_rtt.as_millis() as u64),
-            Some(self.rtt().as_millis() as u64),
-            Some(self.latest_rtt.as_millis() as u64),
-            Some(self.rttvar.as_millis() as u64),
-            None, // delay
-            None, // probe_count
-            Some(self.cwnd() as u64),
-            Some(self.bytes_in_flight as u64),
-            None, // ssthresh
-            None, // packets_in_flight
-            None, // in_recovery
-            None, // pacing_rate
-        )
-    }
-}
-
-/// Available congestion control algorithms.
-///
-/// This enum provides currently available list of congestion control
-/// algorithms.
-#[derive(Debug, Copy, Clone, PartialEq)]
-pub enum CongestionControlAlgorithm {
-    /// Reno congestion control algorithm. `reno` in a string form.
-    Reno  = 0,
-    /// CUBIC congestion control algorithm (default). `cubic` in a string form.
-    CUBIC = 1,
-}
-
-impl FromStr for CongestionControlAlgorithm {
-    type Err = crate::Error;
-
-    /// Converts a string to `CongestionControlAlgorithm`.
-    ///
-    /// If `name` is not valid, `Error::CongestionControl` is returned.
-    fn from_str(name: &str) -> std::result::Result<Self, Self::Err> {
-        match name {
-            "reno" => Ok(CongestionControlAlgorithm::Reno),
-            "cubic" => Ok(CongestionControlAlgorithm::CUBIC),
-
-            _ => Err(crate::Error::CongestionControl),
-        }
-    }
-}
-
-pub struct CongestionControlOps {
-    pub on_packet_sent: fn(r: &mut Recovery, sent_bytes: usize, now: Instant),
-
-    pub on_packet_acked:
-        fn(r: &mut Recovery, epoch: packet::Epoch, packet: &Sent, now: Instant),
-
-    pub congestion_event: fn(
-        r: &mut Recovery,
-        time_sent: Instant,
-        epoch: packet::Epoch,
-        now: Instant,
-    ),
-
-    pub collapse_cwnd: fn(r: &mut Recovery),
-}
-
-impl From<CongestionControlAlgorithm> for &'static CongestionControlOps {
-    fn from(algo: CongestionControlAlgorithm) -> Self {
-        match algo {
-            CongestionControlAlgorithm::Reno => &reno::RENO,
-            CongestionControlAlgorithm::CUBIC => &cubic::CUBIC,
-        }
-    }
-}
-
-impl std::fmt::Debug for Recovery {
-    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
-        match self.loss_detection_timer {
-            Some(v) => {
-                let now = Instant::now();
-
-                if v > now {
-                    let d = v.duration_since(now);
-                    write!(f, "timer={:?} ", d)?;
-                } else {
-                    write!(f, "timer=exp ")?;
-                }
-            },
-
-            None => {
-                write!(f, "timer=none ")?;
-            },
-        };
-
-        write!(f, "latest_rtt={:?} ", self.latest_rtt)?;
-        write!(f, "srtt={:?} ", self.smoothed_rtt)?;
-        write!(f, "min_rtt={:?} ", self.min_rtt)?;
-        write!(f, "rttvar={:?} ", self.rttvar)?;
-        write!(f, "loss_time={:?} ", self.loss_time)?;
-        write!(f, "loss_probes={:?} ", self.loss_probes)?;
-        write!(f, "cwnd={} ", self.congestion_window)?;
-        write!(f, "ssthresh={} ", self.ssthresh)?;
-        write!(f, "bytes_in_flight={} ", self.bytes_in_flight)?;
-        write!(f, "app_limited={} ", self.app_limited)?;
-        write!(
-            f,
-            "congestion_recovery_start_time={:?} ",
-            self.congestion_recovery_start_time
-        )?;
-        write!(f, "{:?} ", self.delivery_rate)?;
-
-        if self.hystart.enabled() {
-            write!(f, "hystart={:?} ", self.hystart)?;
-        }
-
-        Ok(())
-    }
-}
-
-pub struct Sent {
-    pub pkt_num: u64,
-
-    pub frames: Vec<frame::Frame>,
-
-    pub time_sent: Instant,
-
-    pub size: usize,
-
-    pub ack_eliciting: bool,
-
-    pub in_flight: bool,
-
-    pub delivered: usize,
-
-    pub delivered_time: Instant,
-
-    pub recent_delivered_packet_sent_time: Instant,
-
-    pub is_app_limited: bool,
-}
-
-impl std::fmt::Debug for Sent {
-    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
-        write!(f, "pkt_num={:?} ", self.pkt_num)?;
-        write!(f, "pkt_sent_time={:?} ", self.time_sent.elapsed())?;
-        write!(f, "pkt_size={:?} ", self.size)?;
-        write!(f, "delivered={:?} ", self.delivered)?;
-        write!(f, "delivered_time ={:?} ", self.delivered_time.elapsed())?;
-        write!(
-            f,
-            "recent_delivered_packet_sent_time={:?} ",
-            self.recent_delivered_packet_sent_time.elapsed()
-        )?;
-        write!(f, "is_app_limited={:?} ", self.is_app_limited)?;
-
-        Ok(())
-    }
-}
-
-fn sub_abs(lhs: Duration, rhs: Duration) -> Duration {
-    if lhs > rhs {
-        lhs - rhs
-    } else {
-        rhs - lhs
-    }
-}
-
-#[cfg(test)]
-mod tests {
-    use super::*;
-
-    #[test]
-    fn lookup_cc_algo_ok() {
-        let algo = CongestionControlAlgorithm::from_str("reno").unwrap();
-        assert_eq!(algo, CongestionControlAlgorithm::Reno);
-    }
-
-    #[test]
-    fn lookup_cc_algo_bad() {
-        assert_eq!(
-            CongestionControlAlgorithm::from_str("???"),
-            Err(Error::CongestionControl)
-        );
-    }
-
-    #[test]
-    fn collapse_cwnd() {
-        let mut cfg = crate::Config::new(crate::PROTOCOL_VERSION).unwrap();
-        cfg.set_cc_algorithm(CongestionControlAlgorithm::Reno);
-
-        let mut r = Recovery::new(&cfg);
-
-        // cwnd will be reset.
-        r.collapse_cwnd();
-        assert_eq!(r.cwnd(), MINIMUM_WINDOW);
-    }
-
-    #[test]
-    fn loss_on_pto() {
-        let mut cfg = crate::Config::new(crate::PROTOCOL_VERSION).unwrap();
-        cfg.set_cc_algorithm(CongestionControlAlgorithm::Reno);
-
-        let mut r = Recovery::new(&cfg);
-
-        let mut now = Instant::now();
-
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
-
-        // Start by sending a few packets.
-        let p = Sent {
-            pkt_num: 0,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 1);
-        assert_eq!(r.bytes_in_flight, 1000);
-
-        let p = Sent {
-            pkt_num: 1,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 2);
-        assert_eq!(r.bytes_in_flight, 2000);
-
-        let p = Sent {
-            pkt_num: 2,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 3);
-        assert_eq!(r.bytes_in_flight, 3000);
-
-        let p = Sent {
-            pkt_num: 3,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 4);
-        assert_eq!(r.bytes_in_flight, 4000);
-
-        // Wait for 10ms.
-        now += Duration::from_millis(10);
-
-        // Only the first 2 packets are acked.
-        let mut acked = ranges::RangeSet::default();
-        acked.insert(0..2);
-
-        assert_eq!(
-            r.on_ack_received(
-                &acked,
-                25,
-                packet::EPOCH_APPLICATION,
-                true,
-                now,
-                ""
-            ),
-            Ok(())
-        );
-
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 2);
-        assert_eq!(r.bytes_in_flight, 2000);
-        assert_eq!(r.lost_count, 0);
-
-        // Wait until loss detection timer expires.
-        now = r.loss_detection_timer().unwrap();
-
-        // PTO.
-        r.on_loss_detection_timeout(true, now, "");
-        assert_eq!(r.loss_probes[packet::EPOCH_APPLICATION], 2);
-        assert_eq!(r.lost_count, 0);
-        assert_eq!(r.pto_count, 1);
-
-        let p = Sent {
-            pkt_num: 4,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 3);
-        assert_eq!(r.bytes_in_flight, 3000);
-
-        let p = Sent {
-            pkt_num: 5,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 4);
-        assert_eq!(r.bytes_in_flight, 4000);
-        assert_eq!(r.lost_count, 0);
-
-        // Wait for 10ms.
-        now += Duration::from_millis(10);
-
-        // PTO packets are acked.
-        let mut acked = ranges::RangeSet::default();
-        acked.insert(4..6);
-
-        assert_eq!(
-            r.on_ack_received(
-                &acked,
-                25,
-                packet::EPOCH_APPLICATION,
-                true,
-                now,
-                ""
-            ),
-            Ok(())
-        );
-
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
-        assert_eq!(r.bytes_in_flight, 0);
-
-        assert_eq!(r.lost_count, 2);
-    }
-
-    #[test]
-    fn loss_on_timer() {
-        let mut cfg = crate::Config::new(crate::PROTOCOL_VERSION).unwrap();
-        cfg.set_cc_algorithm(CongestionControlAlgorithm::Reno);
-
-        let mut r = Recovery::new(&cfg);
-
-        let mut now = Instant::now();
-
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
-
-        // Start by sending a few packets.
-        let p = Sent {
-            pkt_num: 0,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 1);
-        assert_eq!(r.bytes_in_flight, 1000);
-
-        let p = Sent {
-            pkt_num: 1,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 2);
-        assert_eq!(r.bytes_in_flight, 2000);
-
-        let p = Sent {
-            pkt_num: 2,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 3);
-        assert_eq!(r.bytes_in_flight, 3000);
-
-        let p = Sent {
-            pkt_num: 3,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 4);
-        assert_eq!(r.bytes_in_flight, 4000);
-
-        // Wait for 10ms.
-        now += Duration::from_millis(10);
-
-        // Only the first 2 packets and the last one are acked.
-        let mut acked = ranges::RangeSet::default();
-        acked.insert(0..2);
-        acked.insert(3..4);
-
-        assert_eq!(
-            r.on_ack_received(
-                &acked,
-                25,
-                packet::EPOCH_APPLICATION,
-                true,
-                now,
-                ""
-            ),
-            Ok(())
-        );
-
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 1);
-        assert_eq!(r.bytes_in_flight, 1000);
-        assert_eq!(r.lost_count, 0);
-
-        // Wait until loss detection timer expires.
-        now = r.loss_detection_timer().unwrap();
-
-        // Packet is declared lost.
-        r.on_loss_detection_timeout(true, now, "");
-        assert_eq!(r.loss_probes[packet::EPOCH_APPLICATION], 0);
-
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
-        assert_eq!(r.bytes_in_flight, 0);
-
-        assert_eq!(r.lost_count, 1);
-    }
-
-    #[test]
-    fn loss_on_reordering() {
-        let mut cfg = crate::Config::new(crate::PROTOCOL_VERSION).unwrap();
-        cfg.set_cc_algorithm(CongestionControlAlgorithm::Reno);
-
-        let mut r = Recovery::new(&cfg);
-
-        let mut now = Instant::now();
-
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
-
-        // Start by sending a few packets.
-        let p = Sent {
-            pkt_num: 0,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 1);
-        assert_eq!(r.bytes_in_flight, 1000);
-
-        let p = Sent {
-            pkt_num: 1,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 2);
-        assert_eq!(r.bytes_in_flight, 2000);
-
-        let p = Sent {
-            pkt_num: 2,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 3);
-        assert_eq!(r.bytes_in_flight, 3000);
-
-        let p = Sent {
-            pkt_num: 3,
-            frames: vec![],
-            time_sent: now,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
-
-        r.on_packet_sent(p, packet::EPOCH_APPLICATION, true, now, "");
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 4);
-        assert_eq!(r.bytes_in_flight, 4000);
-
-        // Wait for 10ms.
-        now += Duration::from_millis(10);
-
-        // ACKs are reordered.
-        let mut acked = ranges::RangeSet::default();
-        acked.insert(2..4);
-
-        assert_eq!(
-            r.on_ack_received(
-                &acked,
-                25,
-                packet::EPOCH_APPLICATION,
-                true,
-                now,
-                ""
-            ),
-            Ok(())
-        );
-
-        now += Duration::from_millis(10);
-
-        let mut acked = ranges::RangeSet::default();
-        acked.insert(0..2);
-
-        assert_eq!(
-            r.on_ack_received(
-                &acked,
-                25,
-                packet::EPOCH_APPLICATION,
-                true,
-                now,
-                ""
-            ),
-            Ok(())
-        );
-
-        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
-        assert_eq!(r.bytes_in_flight, 0);
-
-        // Spurious loss.
-        assert_eq!(r.lost_count, 1);
-    }
-}
-
-mod cubic;
-mod delivery_rate;
-mod hystart;
-mod reno;
diff --git a/src/recovery/cubic.rs b/src/recovery/cubic.rs
index db084a3..a53c68b 100644
--- a/src/recovery/cubic.rs
+++ b/src/recovery/cubic.rs
@@ -27,21 +27,22 @@
 //! CUBIC Congestion Control
 //!
 //! This implementation is based on the following RFC:
-//!
 //! https://tools.ietf.org/html/rfc8312
 //!
 //! Note that Slow Start can use HyStart++ when enabled.
 
 use std::cmp;
+
 use std::time::Duration;
 use std::time::Instant;
 
 use crate::packet;
 use crate::recovery;
 use crate::recovery::reno;
+
+use crate::recovery::Acked;
 use crate::recovery::CongestionControlOps;
 use crate::recovery::Recovery;
-use crate::recovery::Sent;
 
 pub static CUBIC: CongestionControlOps = CongestionControlOps {
     on_packet_sent,
@@ -71,6 +72,9 @@
 
     // Used in CUBIC fix (see on_packet_sent())
     last_sent_time: Option<Instant>,
+
+    // Store cwnd increment during congestion avoidance.
+    cwnd_inc: usize,
 }
 
 /// CUBIC Functions.
@@ -116,6 +120,8 @@
     r.ssthresh = (r.congestion_window as f64 * BETA_CUBIC) as usize;
     r.ssthresh = cmp::max(r.ssthresh, recovery::MINIMUM_WINDOW);
 
+    cubic.cwnd_inc = 0;
+
     reno::collapse_cwnd(r);
 }
 
@@ -145,10 +151,9 @@
 }
 
 fn on_packet_acked(
-    r: &mut Recovery, epoch: packet::Epoch, packet: &Sent, now: Instant,
+    r: &mut Recovery, packet: &Acked, epoch: packet::Epoch, now: Instant,
 ) {
     let in_congestion_recovery = r.in_congestion_recovery(packet.time_sent);
-    let cubic = &mut r.cubic_state;
 
     r.bytes_in_flight = r.bytes_in_flight.saturating_sub(packet.size);
 
@@ -183,9 +188,9 @@
             ca_start_time = r.hystart.lss_start_time().unwrap();
 
             // Reset w_max and k when LSS started.
-            if cubic.w_max == 0.0 {
-                cubic.w_max = r.congestion_window as f64;
-                cubic.k = 0.0;
+            if r.cubic_state.w_max == 0.0 {
+                r.cubic_state.w_max = r.congestion_window as f64;
+                r.cubic_state.k = 0.0;
             }
         } else {
             match r.congestion_recovery_start_time {
@@ -196,8 +201,8 @@
                     ca_start_time = now;
                     r.congestion_recovery_start_time = Some(now);
 
-                    cubic.w_max = r.congestion_window as f64;
-                    cubic.k = 0.0;
+                    r.cubic_state.w_max = r.congestion_window as f64;
+                    r.cubic_state.k = 0.0;
                 },
             }
         }
@@ -205,10 +210,10 @@
         let t = now - ca_start_time;
 
         // w_cubic(t + rtt)
-        let w_cubic = cubic.w_cubic(t + r.min_rtt);
+        let w_cubic = r.cubic_state.w_cubic(t + r.min_rtt);
 
         // w_est(t)
-        let w_est = cubic.w_est(t, r.min_rtt);
+        let w_est = r.cubic_state.w_est(t, r.min_rtt);
 
         let mut cubic_cwnd = r.congestion_window;
 
@@ -217,10 +222,10 @@
             cubic_cwnd = cmp::max(cubic_cwnd, w_est as usize);
         } else if cubic_cwnd < w_cubic as usize {
             // Concave region or convex region use same increment.
-            let cwnd_inc = (w_cubic - cubic_cwnd as f64) / cubic_cwnd as f64 *
+            let cubic_inc = (w_cubic - cubic_cwnd as f64) / cubic_cwnd as f64 *
                 recovery::MAX_DATAGRAM_SIZE as f64;
 
-            cubic_cwnd += cwnd_inc as usize;
+            cubic_cwnd += cubic_inc as usize;
         }
 
         // When in Limited Slow Start, take the max of CA cwnd and
@@ -234,7 +239,16 @@
             cubic_cwnd = cmp::max(cubic_cwnd, lss_cwnd);
         }
 
-        r.congestion_window = cubic_cwnd;
+        // Update the increment and increase cwnd by MSS.
+        r.cubic_state.cwnd_inc += cubic_cwnd - r.congestion_window;
+
+        // cwnd_inc can be more than 1 MSS in the late stage of max probing.
+        // however QUIC recovery draft 7.4 (Congestion Avoidance) limits
+        // the increase of cwnd to 1 max packet size per cwnd acknowledged.
+        if r.cubic_state.cwnd_inc >= recovery::MAX_DATAGRAM_SIZE {
+            r.congestion_window += recovery::MAX_DATAGRAM_SIZE;
+            r.cubic_state.cwnd_inc -= recovery::MAX_DATAGRAM_SIZE;
+        }
     }
 }
 
@@ -242,7 +256,6 @@
     r: &mut Recovery, time_sent: Instant, epoch: packet::Epoch, now: Instant,
 ) {
     let in_congestion_recovery = r.in_congestion_recovery(time_sent);
-    let cubic = &mut r.cubic_state;
 
     // Start a new congestion event if packet was sent after the
     // start of the previous congestion recovery period.
@@ -250,18 +263,22 @@
         r.congestion_recovery_start_time = Some(now);
 
         // Fast convergence
-        if cubic.w_max < cubic.w_last_max {
-            cubic.w_last_max = cubic.w_max;
-            cubic.w_max = cubic.w_max as f64 * (1.0 + BETA_CUBIC) / 2.0;
+        if r.cubic_state.w_max < r.cubic_state.w_last_max {
+            r.cubic_state.w_last_max = r.cubic_state.w_max;
+            r.cubic_state.w_max =
+                r.cubic_state.w_max as f64 * (1.0 + BETA_CUBIC) / 2.0;
         } else {
-            cubic.w_last_max = cubic.w_max;
+            r.cubic_state.w_last_max = r.cubic_state.w_max;
         }
 
-        cubic.w_max = r.congestion_window as f64;
-        r.ssthresh = (cubic.w_max * BETA_CUBIC) as usize;
+        r.cubic_state.w_max = r.congestion_window as f64;
+        r.ssthresh = (r.cubic_state.w_max * BETA_CUBIC) as usize;
         r.ssthresh = cmp::max(r.ssthresh, recovery::MINIMUM_WINDOW);
         r.congestion_window = r.ssthresh;
-        cubic.k = cubic.cubic_k();
+        r.cubic_state.k = r.cubic_state.cubic_k();
+
+        r.cubic_state.cwnd_inc =
+            (r.cubic_state.cwnd_inc as f64 * BETA_CUBIC) as usize;
 
         if r.hystart.enabled() && epoch == packet::EPOCH_APPLICATION {
             r.hystart.congestion_event();
@@ -305,10 +322,12 @@
         let mut r = Recovery::new(&cfg);
         let now = Instant::now();
 
-        let p = Sent {
+        let p = recovery::Sent {
             pkt_num: 0,
             frames: vec![],
             time_sent: now,
+            time_acked: None,
+            time_lost: None,
             size: 5000,
             ack_eliciting: true,
             in_flight: true,
@@ -316,6 +335,7 @@
             delivered_time: now,
             recent_delivered_packet_sent_time: now,
             is_app_limited: false,
+            has_data: false,
         };
 
         // Send 5k x 4 = 20k, higher than default cwnd(~15k)
@@ -327,7 +347,13 @@
 
         let cwnd_prev = r.cwnd();
 
-        r.on_packet_acked_cc(packet::EPOCH_APPLICATION, &p, now);
+        let acked = vec![Acked {
+            pkt_num: p.pkt_num,
+            time_sent: p.time_sent,
+            size: p.size,
+        }];
+
+        r.on_packets_acked(acked, packet::EPOCH_APPLICATION, now);
 
         // Check if cwnd increased by packet size (slow start)
         assert_eq!(r.cwnd(), cwnd_prev + p.size);
@@ -365,30 +391,24 @@
         r.congestion_event(now, packet::EPOCH_APPLICATION, now);
 
         // After congestion event, cwnd will be reduced.
-        assert_eq!(prev_cwnd as f64 * BETA_CUBIC, r.cwnd() as f64);
+        let cur_cwnd = (prev_cwnd as f64 * BETA_CUBIC) as usize;
+        assert_eq!(r.cwnd(), cur_cwnd);
 
         let rtt = Duration::from_millis(100);
 
-        let p = Sent {
+        let acked = vec![Acked {
             pkt_num: 0,
-            frames: vec![],
             // To exit from recovery
             time_sent: now + rtt,
-            size: 1000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
+            size: 8000,
+        }];
 
-        // Ack 1000 bytes with rtt=100ms
+        // Ack more than cwnd bytes with rtt=100ms
         r.update_rtt(rtt, Duration::from_millis(0), now);
-        r.on_packet_acked_cc(packet::EPOCH_APPLICATION, &p, now + rtt * 2);
+        r.on_packets_acked(acked, packet::EPOCH_APPLICATION, now + rtt * 3);
 
-        // Expecting a small increase (congestion avoidance mode)
-        assert_eq!(r.cwnd(), 10408);
+        // After acking more than cwnd, expect cwnd increased by MSS
+        assert_eq!(r.cwnd(), cur_cwnd + recovery::MAX_DATAGRAM_SIZE);
     }
 
     #[test]
@@ -409,30 +429,23 @@
         r.collapse_cwnd();
         assert_eq!(r.cwnd(), recovery::MINIMUM_WINDOW);
 
-        let p = Sent {
+        let acked = vec![Acked {
             pkt_num: 0,
-            frames: vec![],
             // To exit from recovery
             time_sent: now + Duration::from_millis(1),
             size: 10000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
-        };
+        }];
 
         // rtt = 100ms
         let rtt = Duration::from_millis(100);
         std::thread::sleep(rtt);
 
         // Ack 10000 x 2 to exit from slow start
-        r.on_packet_acked_cc(packet::EPOCH_APPLICATION, &p, now);
+        r.on_packets_acked(acked.clone(), packet::EPOCH_APPLICATION, now);
         std::thread::sleep(rtt);
 
         // This will make CC into congestion avoidance mode
-        r.on_packet_acked_cc(packet::EPOCH_APPLICATION, &p, now);
+        r.on_packets_acked(acked, packet::EPOCH_APPLICATION, now);
 
         assert_eq!(r.cwnd(), recovery::MINIMUM_WINDOW + 10000);
     }
@@ -448,10 +461,12 @@
         let pkt_num = 0;
         let epoch = packet::EPOCH_APPLICATION;
 
-        let p = Sent {
+        let p = recovery::Sent {
             pkt_num: 0,
             frames: vec![],
             time_sent: now,
+            time_acked: None,
+            time_lost: None,
             size: recovery::MAX_DATAGRAM_SIZE,
             ack_eliciting: true,
             in_flight: true,
@@ -459,6 +474,7 @@
             delivered_time: now,
             recent_delivered_packet_sent_time: now,
             is_app_limited: false,
+            has_data: false,
         };
 
         // 1st round.
@@ -481,7 +497,14 @@
                 Duration::from_millis(0),
                 now,
             );
-            r.on_packet_acked_cc(epoch, &p, now);
+
+            let acked = vec![Acked {
+                pkt_num: p.pkt_num,
+                time_sent: p.time_sent,
+                size: p.size,
+            }];
+
+            r.on_packets_acked(acked, epoch, now);
         }
 
         // Not in LSS yet.
@@ -509,7 +532,14 @@
                 Duration::from_millis(0),
                 now,
             );
-            r.on_packet_acked_cc(epoch, &p, now);
+
+            let acked = vec![Acked {
+                pkt_num: p.pkt_num,
+                time_sent: p.time_sent,
+                size: p.size,
+            }];
+
+            r.on_packets_acked(acked, epoch, now);
 
             // Keep increasing RTT so that hystart exits to LSS.
             rtt_2nd += 4;
@@ -517,12 +547,18 @@
 
         // Now we are in LSS.
         assert_eq!(r.hystart.lss_start_time().is_some(), true);
+        assert_eq!(r.cwnd(), cwnd_prev);
 
-        // This is a 1st increment after LSS.
-        // Increament is MAX_DATAGRAM_SIZE * LSS_DIVISOR.
-        assert_eq!(
-            r.cwnd() - cwnd_prev,
-            (recovery::MAX_DATAGRAM_SIZE as f64 * hystart::LSS_DIVISOR) as usize
-        );
+        // Ack'ing more packet to increase cwnd by 1 MSS
+        for _ in 0..3 {
+            let acked = vec![Acked {
+                pkt_num: p.pkt_num,
+                time_sent: p.time_sent,
+                size: p.size,
+            }];
+            r.on_packets_acked(acked, epoch, now);
+        }
+
+        assert_eq!(r.cwnd(), cwnd_prev + recovery::MAX_DATAGRAM_SIZE);
     }
 }
diff --git a/src/recovery/delivery_rate.rs b/src/recovery/delivery_rate.rs
index 615abfb..77fd248 100644
--- a/src/recovery/delivery_rate.rs
+++ b/src/recovery/delivery_rate.rs
@@ -68,7 +68,7 @@
         pkt.is_app_limited = self.app_limited_at_pkt > 0;
     }
 
-    pub fn on_ack_received(&mut self, pkt: Sent, now: Instant) {
+    pub fn on_packet_acked(&mut self, pkt: &Sent, now: Instant) {
         self.rate_sample.prior_time = Some(pkt.delivered_time);
 
         self.delivered += pkt.size;
@@ -195,6 +195,8 @@
             pkt_num: 0,
             frames: vec![],
             time_sent: Instant::now(),
+            time_acked: None,
+            time_lost: None,
             size: 1200,
             ack_eliciting: true,
             in_flight: true,
@@ -202,6 +204,7 @@
             delivered_time: Instant::now(),
             recent_delivered_packet_sent_time: Instant::now(),
             is_app_limited: false,
+            has_data: false,
         };
 
         recovery
@@ -210,12 +213,14 @@
         std::thread::sleep(Duration::from_millis(50));
         recovery
             .delivery_rate
-            .on_ack_received(pkt_1, Instant::now());
+            .on_packet_acked(&pkt_1, Instant::now());
 
         let mut pkt_2 = Sent {
             pkt_num: 1,
             frames: vec![],
             time_sent: Instant::now(),
+            time_acked: None,
+            time_lost: None,
             size: 1200,
             ack_eliciting: true,
             in_flight: true,
@@ -223,6 +228,7 @@
             delivered_time: Instant::now(),
             recent_delivered_packet_sent_time: Instant::now(),
             is_app_limited: false,
+            has_data: false,
         };
 
         recovery
@@ -231,7 +237,7 @@
         std::thread::sleep(Duration::from_millis(50));
         recovery
             .delivery_rate
-            .on_ack_received(pkt_2, Instant::now());
+            .on_packet_acked(&pkt_2, Instant::now());
         recovery.delivery_rate.estimate();
 
         assert!(recovery.delivery_rate() > 0);
@@ -246,6 +252,8 @@
             pkt_num: 0,
             frames: vec![],
             time_sent: Instant::now(),
+            time_acked: None,
+            time_lost: None,
             size: 1200,
             ack_eliciting: true,
             in_flight: true,
@@ -253,18 +261,21 @@
             delivered_time: Instant::now(),
             recent_delivered_packet_sent_time: Instant::now(),
             is_app_limited: false,
+            has_data: false,
         };
 
         recvry
             .delivery_rate
             .on_packet_sent(&mut pkt_1, Instant::now());
         std::thread::sleep(Duration::from_millis(50));
-        recvry.delivery_rate.on_ack_received(pkt_1, Instant::now());
+        recvry.delivery_rate.on_packet_acked(&pkt_1, Instant::now());
 
         let mut pkt_2 = Sent {
             pkt_num: 1,
             frames: vec![],
             time_sent: Instant::now(),
+            time_acked: None,
+            time_lost: None,
             size: 1200,
             ack_eliciting: true,
             in_flight: true,
@@ -272,6 +283,7 @@
             delivered_time: Instant::now(),
             recent_delivered_packet_sent_time: Instant::now(),
             is_app_limited: false,
+            has_data: false,
         };
 
         recvry.app_limited = true;
@@ -282,7 +294,7 @@
             .delivery_rate
             .on_packet_sent(&mut pkt_2, Instant::now());
         std::thread::sleep(Duration::from_millis(50));
-        recvry.delivery_rate.on_ack_received(pkt_2, Instant::now());
+        recvry.delivery_rate.on_packet_acked(&pkt_2, Instant::now());
         recvry.delivery_rate.estimate();
 
         assert_eq!(recvry.delivery_rate.app_limited_at_pkt, 0);
diff --git a/src/recovery/hystart.rs b/src/recovery/hystart.rs
index 65b8270..5d02739 100644
--- a/src/recovery/hystart.rs
+++ b/src/recovery/hystart.rs
@@ -111,7 +111,7 @@
 
     // Returns a new (ssthresh, cwnd) during slow start.
     pub fn on_packet_acked(
-        &mut self, packet: &recovery::Sent, rtt: Duration, cwnd: usize,
+        &mut self, packet: &recovery::Acked, rtt: Duration, cwnd: usize,
         ssthresh: usize, now: Instant,
     ) -> (usize, usize) {
         let mut ssthresh = ssthresh;
@@ -206,17 +206,10 @@
 
         assert_eq!(hspp.window_end, Some(pkt_num));
 
-        let p = recovery::Sent {
+        let p = recovery::Acked {
             pkt_num,
-            frames: vec![],
             time_sent: now + Duration::from_millis(10),
             size,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: now,
-            recent_delivered_packet_sent_time: now,
-            is_app_limited: false,
         };
 
         let init_cwnd = 30000;
@@ -256,17 +249,10 @@
 
         // 1st round.
         for _ in 0..N_RTT_SAMPLE + 1 {
-            let p = recovery::Sent {
+            let p = recovery::Acked {
                 pkt_num,
-                frames: vec![],
                 time_sent: now + Duration::from_millis(pkt_num),
                 size,
-                ack_eliciting: true,
-                in_flight: true,
-                delivered: 0,
-                delivered_time: now,
-                recent_delivered_packet_sent_time: now,
-                is_app_limited: false,
             };
 
             // We use a fixed rtt for 1st round.
@@ -287,17 +273,10 @@
         hspp.start_round(pkt_1st * 2 + 1);
 
         for _ in 0..N_RTT_SAMPLE + 1 {
-            let p = recovery::Sent {
+            let p = recovery::Acked {
                 pkt_num,
-                frames: vec![],
                 time_sent: now + Duration::from_millis(pkt_num),
                 size,
-                ack_eliciting: true,
-                in_flight: true,
-                delivered: 0,
-                delivered_time: now,
-                recent_delivered_packet_sent_time: now,
-                is_app_limited: false,
             };
 
             // Keep increasing rtt to simulate buffer queueing delay
diff --git a/src/recovery/mod.rs b/src/recovery/mod.rs
new file mode 100644
index 0000000..4621e24
--- /dev/null
+++ b/src/recovery/mod.rs
@@ -0,0 +1,1542 @@
+// Copyright (C) 2018-2019, Cloudflare, Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright notice,
+//       this list of conditions and the following disclaimer.
+//
+//     * 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 HOLDER 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.
+
+use std::cmp;
+
+use std::str::FromStr;
+
+use std::time::Duration;
+use std::time::Instant;
+
+use std::collections::VecDeque;
+
+use crate::Config;
+use crate::Error;
+use crate::Result;
+
+use crate::frame;
+use crate::minmax;
+use crate::packet;
+use crate::ranges;
+
+// Loss Recovery
+const PACKET_THRESHOLD: u64 = 3;
+
+const TIME_THRESHOLD: f64 = 9.0 / 8.0;
+
+const GRANULARITY: Duration = Duration::from_millis(1);
+
+const INITIAL_RTT: Duration = Duration::from_millis(333);
+
+const PERSISTENT_CONGESTION_THRESHOLD: u32 = 3;
+
+const RTT_WINDOW: Duration = Duration::from_secs(300);
+
+const MAX_PTO_PROBES_COUNT: usize = 2;
+
+// Congestion Control
+const INITIAL_WINDOW_PACKETS: usize = 10;
+
+const INITIAL_WINDOW: usize = INITIAL_WINDOW_PACKETS * MAX_DATAGRAM_SIZE;
+
+const MINIMUM_WINDOW: usize = 2 * MAX_DATAGRAM_SIZE;
+
+const MAX_DATAGRAM_SIZE: usize = 1452;
+
+const LOSS_REDUCTION_FACTOR: f64 = 0.5;
+
+pub struct Recovery {
+    loss_detection_timer: Option<Instant>,
+
+    pto_count: u32,
+
+    time_of_last_sent_ack_eliciting_pkt: [Option<Instant>; packet::EPOCH_COUNT],
+
+    largest_acked_pkt: [u64; packet::EPOCH_COUNT],
+
+    largest_sent_pkt: [u64; packet::EPOCH_COUNT],
+
+    latest_rtt: Duration,
+
+    smoothed_rtt: Option<Duration>,
+
+    rttvar: Duration,
+
+    minmax_filter: minmax::Minmax<Duration>,
+
+    min_rtt: Duration,
+
+    pub max_ack_delay: Duration,
+
+    loss_time: [Option<Instant>; packet::EPOCH_COUNT],
+
+    sent: [VecDeque<Sent>; packet::EPOCH_COUNT],
+
+    pub lost: [Vec<frame::Frame>; packet::EPOCH_COUNT],
+
+    pub acked: [Vec<frame::Frame>; packet::EPOCH_COUNT],
+
+    pub lost_count: usize,
+
+    pub loss_probes: [usize; packet::EPOCH_COUNT],
+
+    in_flight_count: [usize; packet::EPOCH_COUNT],
+
+    app_limited: bool,
+
+    delivery_rate: delivery_rate::Rate,
+
+    // Congestion control.
+    cc_ops: &'static CongestionControlOps,
+
+    congestion_window: usize,
+
+    bytes_in_flight: usize,
+
+    ssthresh: usize,
+
+    bytes_acked: usize,
+
+    congestion_recovery_start_time: Option<Instant>,
+
+    cubic_state: cubic::State,
+
+    // HyStart++.
+    hystart: hystart::Hystart,
+}
+
+impl Recovery {
+    pub fn new(config: &Config) -> Self {
+        Recovery {
+            loss_detection_timer: None,
+
+            pto_count: 0,
+
+            time_of_last_sent_ack_eliciting_pkt: [None; packet::EPOCH_COUNT],
+
+            largest_acked_pkt: [std::u64::MAX; packet::EPOCH_COUNT],
+
+            largest_sent_pkt: [0; packet::EPOCH_COUNT],
+
+            latest_rtt: Duration::new(0, 0),
+
+            // This field should be initialized to `INITIAL_RTT` for the initial
+            // PTO calculation, but it also needs to be an `Option` to track
+            // whether any RTT sample was received, so the initial value is
+            // handled by the `rtt()` method instead.
+            smoothed_rtt: None,
+
+            minmax_filter: minmax::Minmax::new(Duration::new(0, 0)),
+
+            min_rtt: Duration::new(0, 0),
+
+            rttvar: INITIAL_RTT / 2,
+
+            max_ack_delay: Duration::new(0, 0),
+
+            loss_time: [None; packet::EPOCH_COUNT],
+
+            sent: [VecDeque::new(), VecDeque::new(), VecDeque::new()],
+
+            lost: [Vec::new(), Vec::new(), Vec::new()],
+
+            acked: [Vec::new(), Vec::new(), Vec::new()],
+
+            lost_count: 0,
+
+            loss_probes: [0; packet::EPOCH_COUNT],
+
+            in_flight_count: [0; packet::EPOCH_COUNT],
+
+            congestion_window: INITIAL_WINDOW,
+
+            bytes_in_flight: 0,
+
+            ssthresh: std::usize::MAX,
+
+            bytes_acked: 0,
+
+            congestion_recovery_start_time: None,
+
+            cc_ops: config.cc_algorithm.into(),
+
+            delivery_rate: delivery_rate::Rate::default(),
+
+            cubic_state: cubic::State::default(),
+
+            app_limited: false,
+
+            hystart: hystart::Hystart::new(config.hystart),
+        }
+    }
+
+    pub fn on_packet_sent(
+        &mut self, mut pkt: Sent, epoch: packet::Epoch,
+        handshake_status: HandshakeStatus, now: Instant, trace_id: &str,
+    ) {
+        let ack_eliciting = pkt.ack_eliciting;
+        let in_flight = pkt.in_flight;
+        let sent_bytes = pkt.size;
+        let pkt_num = pkt.pkt_num;
+
+        self.delivery_rate.on_packet_sent(&mut pkt, now);
+
+        self.largest_sent_pkt[epoch] =
+            cmp::max(self.largest_sent_pkt[epoch], pkt_num);
+
+        self.sent[epoch].push_back(pkt);
+
+        if in_flight {
+            if ack_eliciting {
+                self.time_of_last_sent_ack_eliciting_pkt[epoch] = Some(now);
+            }
+
+            self.in_flight_count[epoch] += 1;
+
+            self.app_limited =
+                (self.bytes_in_flight + sent_bytes) < self.congestion_window;
+
+            self.on_packet_sent_cc(sent_bytes, now);
+
+            self.set_loss_detection_timer(handshake_status, now);
+        }
+
+        // HyStart++: Start of the round in a slow start.
+        if self.hystart.enabled() &&
+            epoch == packet::EPOCH_APPLICATION &&
+            self.congestion_window < self.ssthresh
+        {
+            self.hystart.start_round(pkt_num);
+        }
+
+        trace!("{} {:?}", trace_id, self);
+    }
+
+    fn on_packet_sent_cc(&mut self, sent_bytes: usize, now: Instant) {
+        (self.cc_ops.on_packet_sent)(self, sent_bytes, now);
+    }
+
+    pub fn on_ack_received(
+        &mut self, ranges: &ranges::RangeSet, ack_delay: u64,
+        epoch: packet::Epoch, handshake_status: HandshakeStatus, now: Instant,
+        trace_id: &str,
+    ) -> Result<()> {
+        let largest_acked = ranges.last().unwrap();
+
+        // If the largest packet number acked exceeds any packet number we have
+        // sent, then the ACK is obviously invalid, so there's no need to
+        // continue further.
+        if largest_acked > self.largest_sent_pkt[epoch] {
+            if cfg!(feature = "fuzzing") {
+                return Ok(());
+            }
+
+            return Err(Error::InvalidPacket);
+        }
+
+        if self.largest_acked_pkt[epoch] == std::u64::MAX {
+            self.largest_acked_pkt[epoch] = largest_acked;
+        } else {
+            self.largest_acked_pkt[epoch] =
+                cmp::max(self.largest_acked_pkt[epoch], largest_acked);
+        }
+
+        let mut has_ack_eliciting = false;
+
+        let mut largest_newly_acked_pkt_num = 0;
+        let mut largest_newly_acked_sent_time = now;
+
+        let mut newly_acked = Vec::new();
+
+        // Detect and mark acked packets, without removing them from the sent
+        // packets list.
+        for r in ranges.iter() {
+            let lowest_acked = r.start;
+            let largest_acked = r.end - 1;
+
+            let unacked_iter = self.sent[epoch]
+                .iter_mut()
+                // Skip packets that precede the lowest acked packet in the block.
+                .skip_while(|p| p.pkt_num < lowest_acked)
+                // Skip packets that follow the largest acked packet in the block.
+                .take_while(|p| p.pkt_num <= largest_acked)
+                // Skip packets that have already been acked or lost.
+                .filter(|p| p.time_acked.is_none() && p.time_lost.is_none());
+
+            for unacked in unacked_iter {
+                unacked.time_acked = Some(now);
+
+                if unacked.ack_eliciting {
+                    has_ack_eliciting = true;
+                }
+
+                largest_newly_acked_pkt_num = unacked.pkt_num;
+                largest_newly_acked_sent_time = unacked.time_sent;
+
+                self.acked[epoch].append(&mut unacked.frames);
+
+                if unacked.in_flight {
+                    self.in_flight_count[epoch] =
+                        self.in_flight_count[epoch].saturating_sub(1);
+
+                    self.delivery_rate.on_packet_acked(&unacked, now);
+                }
+
+                newly_acked.push(Acked {
+                    pkt_num: unacked.pkt_num,
+
+                    time_sent: unacked.time_sent,
+
+                    size: unacked.size,
+                });
+
+                trace!("{} packet newly acked {}", trace_id, unacked.pkt_num);
+            }
+        }
+
+        self.delivery_rate.estimate();
+
+        if newly_acked.is_empty() {
+            return Ok(());
+        }
+
+        if largest_newly_acked_pkt_num == largest_acked && has_ack_eliciting {
+            let latest_rtt = now - largest_newly_acked_sent_time;
+
+            let ack_delay = if epoch == packet::EPOCH_APPLICATION {
+                Duration::from_micros(ack_delay)
+            } else {
+                Duration::from_micros(0)
+            };
+
+            self.update_rtt(latest_rtt, ack_delay, now);
+        }
+
+        // Detect and mark lost packets without removing them from the sent
+        // packets list.
+        self.detect_lost_packets(epoch, now, trace_id);
+
+        self.on_packets_acked(newly_acked, epoch, now);
+
+        self.pto_count = 0;
+
+        self.set_loss_detection_timer(handshake_status, now);
+
+        self.drain_packets(epoch);
+
+        trace!("{} {:?}", trace_id, self);
+
+        Ok(())
+    }
+
+    pub fn on_loss_detection_timeout(
+        &mut self, handshake_status: HandshakeStatus, now: Instant,
+        trace_id: &str,
+    ) {
+        let (earliest_loss_time, epoch) = self.loss_time_and_space();
+
+        if earliest_loss_time.is_some() {
+            // Time threshold loss detection.
+            self.detect_lost_packets(epoch, now, trace_id);
+
+            self.set_loss_detection_timer(handshake_status, now);
+
+            trace!("{} {:?}", trace_id, self);
+            return;
+        }
+
+        let epoch = if self.bytes_in_flight > 0 {
+            // Send new data if available, else retransmit old data. If neither
+            // is available, send a single PING frame.
+            let (_, e) = self.pto_time_and_space(handshake_status, now);
+
+            e
+        } else {
+            // Client sends an anti-deadlock packet: Initial is padded to earn
+            // more anti-amplification credit, a Handshake packet proves address
+            // ownership.
+            if handshake_status.has_handshake_keys {
+                packet::EPOCH_HANDSHAKE
+            } else {
+                packet::EPOCH_INITIAL
+            }
+        };
+
+        self.pto_count += 1;
+
+        self.loss_probes[epoch] =
+            cmp::min(self.pto_count as usize, MAX_PTO_PROBES_COUNT);
+
+        let unacked_iter = self.sent[epoch]
+            .iter_mut()
+            // Skip packets that have already been acked or lost, and packets
+            // that don't contain either CRYPTO or STREAM frames.
+            .filter(|p| p.has_data && p.time_acked.is_none() && p.time_lost.is_none())
+            // Only return as many packets as the number of probe packets that
+            // will be sent.
+            .take(self.loss_probes[epoch]);
+
+        // Retransmit the frames from the oldest sent packets on PTO. However
+        // the packets are not actually declared lost (so there is no effect to
+        // congestion control), we just reschedule the data they carried.
+        //
+        // This will also trigger sending an ACK and retransmitting frames like
+        // HANDSHAKE_DONE and MAX_DATA / MAX_STREAM_DATA as well, in addition
+        // to CRYPTO and STREAM, if the original packet carried them.
+        for unacked in unacked_iter {
+            self.lost[epoch].extend_from_slice(&unacked.frames);
+        }
+
+        self.set_loss_detection_timer(handshake_status, now);
+
+        trace!("{} {:?}", trace_id, self);
+    }
+
+    pub fn on_pkt_num_space_discarded(
+        &mut self, epoch: packet::Epoch, handshake_status: HandshakeStatus,
+        now: Instant,
+    ) {
+        let unacked_bytes = self.sent[epoch]
+            .iter()
+            .filter(|p| {
+                p.in_flight && p.time_acked.is_none() && p.time_lost.is_none()
+            })
+            .fold(0, |acc, p| acc + p.size);
+
+        self.bytes_in_flight = self.bytes_in_flight.saturating_sub(unacked_bytes);
+
+        self.sent[epoch].clear();
+        self.lost[epoch].clear();
+        self.acked[epoch].clear();
+
+        self.time_of_last_sent_ack_eliciting_pkt[epoch] = None;
+        self.loss_time[epoch] = None;
+        self.loss_probes[epoch] = 0;
+        self.in_flight_count[epoch] = 0;
+
+        self.set_loss_detection_timer(handshake_status, now);
+    }
+
+    pub fn loss_detection_timer(&self) -> Option<Instant> {
+        self.loss_detection_timer
+    }
+
+    pub fn cwnd(&self) -> usize {
+        self.congestion_window
+    }
+
+    pub fn cwnd_available(&self) -> usize {
+        // Ignore cwnd when sending probe packets.
+        if self.loss_probes.iter().any(|&x| x > 0) {
+            return std::usize::MAX;
+        }
+
+        self.congestion_window.saturating_sub(self.bytes_in_flight)
+    }
+
+    pub fn rtt(&self) -> Duration {
+        self.smoothed_rtt.unwrap_or(INITIAL_RTT)
+    }
+
+    pub fn pto(&self) -> Duration {
+        self.rtt() + cmp::max(self.rttvar * 4, GRANULARITY)
+    }
+
+    pub fn delivery_rate(&self) -> u64 {
+        self.delivery_rate.delivery_rate()
+    }
+
+    fn update_rtt(
+        &mut self, latest_rtt: Duration, ack_delay: Duration, now: Instant,
+    ) {
+        self.latest_rtt = latest_rtt;
+
+        match self.smoothed_rtt {
+            // First RTT sample.
+            None => {
+                self.min_rtt = self.minmax_filter.reset(now, latest_rtt);
+
+                self.smoothed_rtt = Some(latest_rtt);
+
+                self.rttvar = latest_rtt / 2;
+            },
+
+            Some(srtt) => {
+                self.min_rtt =
+                    self.minmax_filter.running_min(RTT_WINDOW, now, latest_rtt);
+
+                let ack_delay = cmp::min(self.max_ack_delay, ack_delay);
+
+                // Adjust for ack delay if plausible.
+                let adjusted_rtt = if latest_rtt > self.min_rtt + ack_delay {
+                    latest_rtt - ack_delay
+                } else {
+                    latest_rtt
+                };
+
+                self.rttvar = self.rttvar.mul_f64(3.0 / 4.0) +
+                    sub_abs(srtt, adjusted_rtt).mul_f64(1.0 / 4.0);
+
+                self.smoothed_rtt = Some(
+                    srtt.mul_f64(7.0 / 8.0) + adjusted_rtt.mul_f64(1.0 / 8.0),
+                );
+            },
+        }
+    }
+
+    fn loss_time_and_space(&self) -> (Option<Instant>, packet::Epoch) {
+        let mut epoch = packet::EPOCH_INITIAL;
+        let mut time = self.loss_time[epoch];
+
+        // Iterate over all packet number spaces starting from Handshake.
+        #[allow(clippy::needless_range_loop)]
+        for e in packet::EPOCH_HANDSHAKE..packet::EPOCH_COUNT {
+            let new_time = self.loss_time[e];
+
+            if time.is_none() || new_time < time {
+                time = new_time;
+                epoch = e;
+            }
+        }
+
+        (time, epoch)
+    }
+
+    fn pto_time_and_space(
+        &self, handshake_status: HandshakeStatus, now: Instant,
+    ) -> (Option<Instant>, packet::Epoch) {
+        let mut duration = self.pto() * 2_u32.pow(self.pto_count);
+
+        // Arm PTO from now when there are no inflight packets.
+        if self.bytes_in_flight == 0 {
+            if handshake_status.has_handshake_keys {
+                return (Some(now + duration), packet::EPOCH_HANDSHAKE);
+            } else {
+                return (Some(now + duration), packet::EPOCH_INITIAL);
+            }
+        }
+
+        let mut pto_timeout = None;
+        let mut pto_space = packet::EPOCH_INITIAL;
+
+        // Iterate over all packet number spaces.
+        for e in packet::EPOCH_INITIAL..packet::EPOCH_COUNT {
+            if self.in_flight_count[e] == 0 {
+                continue;
+            }
+
+            if e == packet::EPOCH_APPLICATION {
+                // Skip Application Data until handshake completes.
+                if !handshake_status.completed {
+                    return (pto_timeout, pto_space);
+                }
+
+                // Include max_ack_delay and backoff for Application Data.
+                duration += self.max_ack_delay * 2_u32.pow(self.pto_count);
+            }
+
+            let new_time =
+                self.time_of_last_sent_ack_eliciting_pkt[e].map(|t| t + duration);
+
+            if pto_timeout.is_none() || new_time < pto_timeout {
+                pto_timeout = new_time;
+                pto_space = e;
+            }
+        }
+
+        (pto_timeout, pto_space)
+    }
+
+    fn set_loss_detection_timer(
+        &mut self, handshake_status: HandshakeStatus, now: Instant,
+    ) {
+        let (earliest_loss_time, _) = self.loss_time_and_space();
+
+        if earliest_loss_time.is_some() {
+            // Time threshold loss detection.
+            self.loss_detection_timer = earliest_loss_time;
+            return;
+        }
+
+        if self.bytes_in_flight == 0 && handshake_status.peer_verified_address {
+            self.loss_detection_timer = None;
+            return;
+        }
+
+        // PTO timer.
+        let (timeout, _) = self.pto_time_and_space(handshake_status, now);
+        self.loss_detection_timer = timeout;
+    }
+
+    fn detect_lost_packets(
+        &mut self, epoch: packet::Epoch, now: Instant, trace_id: &str,
+    ) {
+        let largest_acked = self.largest_acked_pkt[epoch];
+
+        self.loss_time[epoch] = None;
+
+        let loss_delay =
+            cmp::max(self.latest_rtt, self.rtt()).mul_f64(TIME_THRESHOLD);
+
+        // Minimum time of kGranularity before packets are deemed lost.
+        let loss_delay = cmp::max(loss_delay, GRANULARITY);
+
+        // Packets sent before this time are deemed lost.
+        let lost_send_time = now - loss_delay;
+
+        let mut lost_bytes = 0;
+
+        let mut largest_lost_pkt = None;
+
+        let unacked_iter = self.sent[epoch]
+            .iter_mut()
+            // Skip packets that follow the largest acked packet.
+            .take_while(|p| p.pkt_num <= largest_acked)
+            // Skip packets that have already been acked or lost.
+            .filter(|p| p.time_acked.is_none() && p.time_lost.is_none());
+
+        for unacked in unacked_iter {
+            // Mark packet as lost, or set time when it should be marked.
+            if unacked.time_sent <= lost_send_time ||
+                largest_acked >= unacked.pkt_num + PACKET_THRESHOLD
+            {
+                self.lost[epoch].append(&mut unacked.frames);
+
+                unacked.time_lost = Some(now);
+
+                if unacked.in_flight {
+                    lost_bytes += unacked.size;
+
+                    // Frames have already been removed from the packet, so
+                    // cloning the whole packet should be relatively cheap.
+                    largest_lost_pkt = Some(unacked.clone());
+
+                    self.in_flight_count[epoch] =
+                        self.in_flight_count[epoch].saturating_sub(1);
+
+                    trace!(
+                        "{} packet {} lost on epoch {}",
+                        trace_id,
+                        unacked.pkt_num,
+                        epoch
+                    );
+                }
+
+                self.lost_count += 1;
+            } else {
+                let loss_time = match self.loss_time[epoch] {
+                    None => unacked.time_sent + loss_delay,
+
+                    Some(loss_time) =>
+                        cmp::min(loss_time, unacked.time_sent + loss_delay),
+                };
+
+                self.loss_time[epoch] = Some(loss_time);
+            }
+        }
+
+        if let Some(pkt) = largest_lost_pkt {
+            self.on_packets_lost(lost_bytes, &pkt, epoch, now);
+        }
+
+        self.drain_packets(epoch);
+    }
+
+    fn drain_packets(&mut self, epoch: packet::Epoch) {
+        let mut lowest_non_expired_pkt_index = self.sent[epoch].len();
+
+        // In order to avoid removing elements from the middle of the list
+        // (which would require copying other elements to compact the list),
+        // we only remove a contiguous range of elements from the start of the
+        // list.
+        //
+        // This means that acked or lost elements coming after this will not
+        // be removed at this point, but their removal is delayed for a later
+        // time, once the gaps have been filled.
+
+        // First, find the first element that is neither acked nor lost.
+        for (i, pkt) in self.sent[epoch].iter().enumerate() {
+            if pkt.time_acked.is_none() && pkt.time_lost.is_none() {
+                lowest_non_expired_pkt_index = i;
+                break;
+            }
+        }
+
+        // Then remove elements up to the previously found index.
+        self.sent[epoch].drain(..lowest_non_expired_pkt_index);
+    }
+
+    fn on_packets_acked(
+        &mut self, acked: Vec<Acked>, epoch: packet::Epoch, now: Instant,
+    ) {
+        for pkt in acked {
+            (self.cc_ops.on_packet_acked)(self, &pkt, epoch, now);
+        }
+    }
+
+    fn in_congestion_recovery(&self, sent_time: Instant) -> bool {
+        match self.congestion_recovery_start_time {
+            Some(congestion_recovery_start_time) =>
+                sent_time <= congestion_recovery_start_time,
+
+            None => false,
+        }
+    }
+
+    fn in_persistent_congestion(&mut self, _largest_lost_pkt_num: u64) -> bool {
+        let _congestion_period = self.pto() * PERSISTENT_CONGESTION_THRESHOLD;
+
+        // TODO: properly detect persistent congestion
+        false
+    }
+
+    fn on_packets_lost(
+        &mut self, lost_bytes: usize, largest_lost_pkt: &Sent,
+        epoch: packet::Epoch, now: Instant,
+    ) {
+        self.bytes_in_flight = self.bytes_in_flight.saturating_sub(lost_bytes);
+
+        self.congestion_event(largest_lost_pkt.time_sent, epoch, now);
+
+        if self.in_persistent_congestion(largest_lost_pkt.pkt_num) {
+            self.collapse_cwnd();
+        }
+    }
+
+    fn congestion_event(
+        &mut self, time_sent: Instant, epoch: packet::Epoch, now: Instant,
+    ) {
+        (self.cc_ops.congestion_event)(self, time_sent, epoch, now);
+    }
+
+    fn collapse_cwnd(&mut self) {
+        (self.cc_ops.collapse_cwnd)(self);
+    }
+
+    pub fn rate_check_app_limited(&mut self) {
+        if self.app_limited {
+            self.delivery_rate.check_app_limited(self.bytes_in_flight)
+        }
+    }
+
+    fn hystart_on_packet_acked(
+        &mut self, packet: &Acked, now: Instant,
+    ) -> (usize, usize) {
+        self.hystart.on_packet_acked(
+            packet,
+            self.latest_rtt,
+            self.congestion_window,
+            self.ssthresh,
+            now,
+        )
+    }
+
+    pub fn update_app_limited(&mut self, v: bool) {
+        self.app_limited = v;
+    }
+
+    pub fn app_limited(&mut self) -> bool {
+        self.app_limited
+    }
+
+    #[cfg(feature = "qlog")]
+    pub fn to_qlog(&self) -> qlog::event::Event {
+        // QVis can't use all these fields and they can be large.
+        qlog::event::Event::metrics_updated(
+            Some(self.min_rtt.as_millis() as u64),
+            Some(self.rtt().as_millis() as u64),
+            Some(self.latest_rtt.as_millis() as u64),
+            Some(self.rttvar.as_millis() as u64),
+            None, // delay
+            None, // probe_count
+            Some(self.cwnd() as u64),
+            Some(self.bytes_in_flight as u64),
+            None, // ssthresh
+            None, // packets_in_flight
+            None, // in_recovery
+            None, // pacing_rate
+        )
+    }
+}
+
+/// Available congestion control algorithms.
+///
+/// This enum provides currently available list of congestion control
+/// algorithms.
+#[derive(Debug, Copy, Clone, PartialEq)]
+#[repr(C)]
+pub enum CongestionControlAlgorithm {
+    /// Reno congestion control algorithm. `reno` in a string form.
+    Reno  = 0,
+    /// CUBIC congestion control algorithm (default). `cubic` in a string form.
+    CUBIC = 1,
+}
+
+impl FromStr for CongestionControlAlgorithm {
+    type Err = crate::Error;
+
+    /// Converts a string to `CongestionControlAlgorithm`.
+    ///
+    /// If `name` is not valid, `Error::CongestionControl` is returned.
+    fn from_str(name: &str) -> std::result::Result<Self, Self::Err> {
+        match name {
+            "reno" => Ok(CongestionControlAlgorithm::Reno),
+            "cubic" => Ok(CongestionControlAlgorithm::CUBIC),
+
+            _ => Err(crate::Error::CongestionControl),
+        }
+    }
+}
+
+pub struct CongestionControlOps {
+    pub on_packet_sent: fn(r: &mut Recovery, sent_bytes: usize, now: Instant),
+
+    pub on_packet_acked:
+        fn(r: &mut Recovery, packet: &Acked, epoch: packet::Epoch, now: Instant),
+
+    pub congestion_event: fn(
+        r: &mut Recovery,
+        time_sent: Instant,
+        epoch: packet::Epoch,
+        now: Instant,
+    ),
+
+    pub collapse_cwnd: fn(r: &mut Recovery),
+}
+
+impl From<CongestionControlAlgorithm> for &'static CongestionControlOps {
+    fn from(algo: CongestionControlAlgorithm) -> Self {
+        match algo {
+            CongestionControlAlgorithm::Reno => &reno::RENO,
+            CongestionControlAlgorithm::CUBIC => &cubic::CUBIC,
+        }
+    }
+}
+
+impl std::fmt::Debug for Recovery {
+    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
+        match self.loss_detection_timer {
+            Some(v) => {
+                let now = Instant::now();
+
+                if v > now {
+                    let d = v.duration_since(now);
+                    write!(f, "timer={:?} ", d)?;
+                } else {
+                    write!(f, "timer=exp ")?;
+                }
+            },
+
+            None => {
+                write!(f, "timer=none ")?;
+            },
+        };
+
+        write!(f, "latest_rtt={:?} ", self.latest_rtt)?;
+        write!(f, "srtt={:?} ", self.smoothed_rtt)?;
+        write!(f, "min_rtt={:?} ", self.min_rtt)?;
+        write!(f, "rttvar={:?} ", self.rttvar)?;
+        write!(f, "loss_time={:?} ", self.loss_time)?;
+        write!(f, "loss_probes={:?} ", self.loss_probes)?;
+        write!(f, "cwnd={} ", self.congestion_window)?;
+        write!(f, "ssthresh={} ", self.ssthresh)?;
+        write!(f, "bytes_in_flight={} ", self.bytes_in_flight)?;
+        write!(f, "app_limited={} ", self.app_limited)?;
+        write!(
+            f,
+            "congestion_recovery_start_time={:?} ",
+            self.congestion_recovery_start_time
+        )?;
+        write!(f, "{:?} ", self.delivery_rate)?;
+
+        if self.hystart.enabled() {
+            write!(f, "hystart={:?} ", self.hystart)?;
+        }
+
+        Ok(())
+    }
+}
+
+#[derive(Clone)]
+pub struct Sent {
+    pub pkt_num: u64,
+
+    pub frames: Vec<frame::Frame>,
+
+    pub time_sent: Instant,
+
+    pub time_acked: Option<Instant>,
+
+    pub time_lost: Option<Instant>,
+
+    pub size: usize,
+
+    pub ack_eliciting: bool,
+
+    pub in_flight: bool,
+
+    pub delivered: usize,
+
+    pub delivered_time: Instant,
+
+    pub recent_delivered_packet_sent_time: Instant,
+
+    pub is_app_limited: bool,
+
+    pub has_data: bool,
+}
+
+impl std::fmt::Debug for Sent {
+    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
+        write!(f, "pkt_num={:?} ", self.pkt_num)?;
+        write!(f, "pkt_sent_time={:?} ", self.time_sent.elapsed())?;
+        write!(f, "pkt_size={:?} ", self.size)?;
+        write!(f, "delivered={:?} ", self.delivered)?;
+        write!(f, "delivered_time={:?} ", self.delivered_time.elapsed())?;
+        write!(
+            f,
+            "recent_delivered_packet_sent_time={:?} ",
+            self.recent_delivered_packet_sent_time.elapsed()
+        )?;
+        write!(f, "is_app_limited={} ", self.is_app_limited)?;
+        write!(f, "has_data={} ", self.has_data)?;
+
+        Ok(())
+    }
+}
+
+#[derive(Clone)]
+pub struct Acked {
+    pub pkt_num: u64,
+
+    pub time_sent: Instant,
+
+    pub size: usize,
+}
+
+#[derive(Clone, Copy, Debug)]
+pub struct HandshakeStatus {
+    pub has_handshake_keys: bool,
+
+    pub peer_verified_address: bool,
+
+    pub completed: bool,
+}
+
+#[cfg(test)]
+impl Default for HandshakeStatus {
+    fn default() -> HandshakeStatus {
+        HandshakeStatus {
+            has_handshake_keys: true,
+
+            peer_verified_address: true,
+
+            completed: true,
+        }
+    }
+}
+
+fn sub_abs(lhs: Duration, rhs: Duration) -> Duration {
+    if lhs > rhs {
+        lhs - rhs
+    } else {
+        rhs - lhs
+    }
+}
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    #[test]
+    fn lookup_cc_algo_ok() {
+        let algo = CongestionControlAlgorithm::from_str("reno").unwrap();
+        assert_eq!(algo, CongestionControlAlgorithm::Reno);
+    }
+
+    #[test]
+    fn lookup_cc_algo_bad() {
+        assert_eq!(
+            CongestionControlAlgorithm::from_str("???"),
+            Err(Error::CongestionControl)
+        );
+    }
+
+    #[test]
+    fn collapse_cwnd() {
+        let mut cfg = crate::Config::new(crate::PROTOCOL_VERSION).unwrap();
+        cfg.set_cc_algorithm(CongestionControlAlgorithm::Reno);
+
+        let mut r = Recovery::new(&cfg);
+
+        // cwnd will be reset.
+        r.collapse_cwnd();
+        assert_eq!(r.cwnd(), MINIMUM_WINDOW);
+    }
+
+    #[test]
+    fn loss_on_pto() {
+        let mut cfg = crate::Config::new(crate::PROTOCOL_VERSION).unwrap();
+        cfg.set_cc_algorithm(CongestionControlAlgorithm::Reno);
+
+        let mut r = Recovery::new(&cfg);
+
+        let mut now = Instant::now();
+
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
+
+        // Start by sending a few packets.
+        let p = Sent {
+            pkt_num: 0,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 1);
+        assert_eq!(r.bytes_in_flight, 1000);
+
+        let p = Sent {
+            pkt_num: 1,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 2);
+        assert_eq!(r.bytes_in_flight, 2000);
+
+        let p = Sent {
+            pkt_num: 2,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 3);
+        assert_eq!(r.bytes_in_flight, 3000);
+
+        let p = Sent {
+            pkt_num: 3,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 4);
+        assert_eq!(r.bytes_in_flight, 4000);
+
+        // Wait for 10ms.
+        now += Duration::from_millis(10);
+
+        // Only the first 2 packets are acked.
+        let mut acked = ranges::RangeSet::default();
+        acked.insert(0..2);
+
+        assert_eq!(
+            r.on_ack_received(
+                &acked,
+                25,
+                packet::EPOCH_APPLICATION,
+                HandshakeStatus::default(),
+                now,
+                ""
+            ),
+            Ok(())
+        );
+
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 2);
+        assert_eq!(r.bytes_in_flight, 2000);
+        assert_eq!(r.lost_count, 0);
+
+        // Wait until loss detection timer expires.
+        now = r.loss_detection_timer().unwrap();
+
+        // PTO.
+        r.on_loss_detection_timeout(HandshakeStatus::default(), now, "");
+        assert_eq!(r.loss_probes[packet::EPOCH_APPLICATION], 1);
+        assert_eq!(r.lost_count, 0);
+        assert_eq!(r.pto_count, 1);
+
+        let p = Sent {
+            pkt_num: 4,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 3);
+        assert_eq!(r.bytes_in_flight, 3000);
+
+        let p = Sent {
+            pkt_num: 5,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 4);
+        assert_eq!(r.bytes_in_flight, 4000);
+        assert_eq!(r.lost_count, 0);
+
+        // Wait for 10ms.
+        now += Duration::from_millis(10);
+
+        // PTO packets are acked.
+        let mut acked = ranges::RangeSet::default();
+        acked.insert(4..6);
+
+        assert_eq!(
+            r.on_ack_received(
+                &acked,
+                25,
+                packet::EPOCH_APPLICATION,
+                HandshakeStatus::default(),
+                now,
+                ""
+            ),
+            Ok(())
+        );
+
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
+        assert_eq!(r.bytes_in_flight, 0);
+
+        assert_eq!(r.lost_count, 2);
+    }
+
+    #[test]
+    fn loss_on_timer() {
+        let mut cfg = crate::Config::new(crate::PROTOCOL_VERSION).unwrap();
+        cfg.set_cc_algorithm(CongestionControlAlgorithm::Reno);
+
+        let mut r = Recovery::new(&cfg);
+
+        let mut now = Instant::now();
+
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
+
+        // Start by sending a few packets.
+        let p = Sent {
+            pkt_num: 0,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 1);
+        assert_eq!(r.bytes_in_flight, 1000);
+
+        let p = Sent {
+            pkt_num: 1,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 2);
+        assert_eq!(r.bytes_in_flight, 2000);
+
+        let p = Sent {
+            pkt_num: 2,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 3);
+        assert_eq!(r.bytes_in_flight, 3000);
+
+        let p = Sent {
+            pkt_num: 3,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 4);
+        assert_eq!(r.bytes_in_flight, 4000);
+
+        // Wait for 10ms.
+        now += Duration::from_millis(10);
+
+        // Only the first 2 packets and the last one are acked.
+        let mut acked = ranges::RangeSet::default();
+        acked.insert(0..2);
+        acked.insert(3..4);
+
+        assert_eq!(
+            r.on_ack_received(
+                &acked,
+                25,
+                packet::EPOCH_APPLICATION,
+                HandshakeStatus::default(),
+                now,
+                ""
+            ),
+            Ok(())
+        );
+
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 2);
+        assert_eq!(r.bytes_in_flight, 1000);
+        assert_eq!(r.lost_count, 0);
+
+        // Wait until loss detection timer expires.
+        now = r.loss_detection_timer().unwrap();
+
+        // Packet is declared lost.
+        r.on_loss_detection_timeout(HandshakeStatus::default(), now, "");
+        assert_eq!(r.loss_probes[packet::EPOCH_APPLICATION], 0);
+
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
+        assert_eq!(r.bytes_in_flight, 0);
+
+        assert_eq!(r.lost_count, 1);
+    }
+
+    #[test]
+    fn loss_on_reordering() {
+        let mut cfg = crate::Config::new(crate::PROTOCOL_VERSION).unwrap();
+        cfg.set_cc_algorithm(CongestionControlAlgorithm::Reno);
+
+        let mut r = Recovery::new(&cfg);
+
+        let mut now = Instant::now();
+
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
+
+        // Start by sending a few packets.
+        let p = Sent {
+            pkt_num: 0,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 1);
+        assert_eq!(r.bytes_in_flight, 1000);
+
+        let p = Sent {
+            pkt_num: 1,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 2);
+        assert_eq!(r.bytes_in_flight, 2000);
+
+        let p = Sent {
+            pkt_num: 2,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 3);
+        assert_eq!(r.bytes_in_flight, 3000);
+
+        let p = Sent {
+            pkt_num: 3,
+            frames: vec![],
+            time_sent: now,
+            time_acked: None,
+            time_lost: None,
+            size: 1000,
+            ack_eliciting: true,
+            in_flight: true,
+            delivered: 0,
+            delivered_time: now,
+            recent_delivered_packet_sent_time: now,
+            is_app_limited: false,
+            has_data: false,
+        };
+
+        r.on_packet_sent(
+            p,
+            packet::EPOCH_APPLICATION,
+            HandshakeStatus::default(),
+            now,
+            "",
+        );
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 4);
+        assert_eq!(r.bytes_in_flight, 4000);
+
+        // Wait for 10ms.
+        now += Duration::from_millis(10);
+
+        // ACKs are reordered.
+        let mut acked = ranges::RangeSet::default();
+        acked.insert(2..4);
+
+        assert_eq!(
+            r.on_ack_received(
+                &acked,
+                25,
+                packet::EPOCH_APPLICATION,
+                HandshakeStatus::default(),
+                now,
+                ""
+            ),
+            Ok(())
+        );
+
+        now += Duration::from_millis(10);
+
+        let mut acked = ranges::RangeSet::default();
+        acked.insert(0..2);
+
+        assert_eq!(
+            r.on_ack_received(
+                &acked,
+                25,
+                packet::EPOCH_APPLICATION,
+                HandshakeStatus::default(),
+                now,
+                ""
+            ),
+            Ok(())
+        );
+
+        assert_eq!(r.sent[packet::EPOCH_APPLICATION].len(), 0);
+        assert_eq!(r.bytes_in_flight, 0);
+
+        // Spurious loss.
+        assert_eq!(r.lost_count, 1);
+    }
+}
+
+mod cubic;
+mod delivery_rate;
+mod hystart;
+mod reno;
diff --git a/src/recovery/reno.rs b/src/recovery/reno.rs
index 2ac021e..b5019f7 100644
--- a/src/recovery/reno.rs
+++ b/src/recovery/reno.rs
@@ -33,9 +33,10 @@
 
 use crate::packet;
 use crate::recovery;
+
+use crate::recovery::Acked;
 use crate::recovery::CongestionControlOps;
 use crate::recovery::Recovery;
-use crate::recovery::Sent;
 
 pub static RENO: CongestionControlOps = CongestionControlOps {
     on_packet_sent,
@@ -49,7 +50,7 @@
 }
 
 fn on_packet_acked(
-    r: &mut Recovery, epoch: packet::Epoch, packet: &Sent, now: Instant,
+    r: &mut Recovery, packet: &Acked, epoch: packet::Epoch, now: Instant,
 ) {
     r.bytes_in_flight = r.bytes_in_flight.saturating_sub(packet.size);
 
@@ -75,7 +76,12 @@
         // Congestion avoidance.
         let mut reno_cwnd = r.congestion_window;
 
-        reno_cwnd += (recovery::MAX_DATAGRAM_SIZE * packet.size) / reno_cwnd;
+        r.bytes_acked += packet.size;
+
+        if r.bytes_acked >= r.congestion_window {
+            r.bytes_acked -= r.congestion_window;
+            reno_cwnd += recovery::MAX_DATAGRAM_SIZE;
+        }
 
         // When in Limited Slow Start, take the max of CA cwnd and
         // LSS cwnd.
@@ -107,6 +113,9 @@
         r.congestion_window =
             cmp::max(r.congestion_window, recovery::MINIMUM_WINDOW);
 
+        r.bytes_acked = (r.congestion_window as f64 *
+            recovery::LOSS_REDUCTION_FACTOR) as usize;
+
         r.ssthresh = r.congestion_window;
 
         if r.hystart.enabled() && epoch == packet::EPOCH_APPLICATION {
@@ -117,12 +126,15 @@
 
 pub fn collapse_cwnd(r: &mut Recovery) {
     r.congestion_window = recovery::MINIMUM_WINDOW;
+    r.bytes_acked = 0;
 }
 
 #[cfg(test)]
 mod tests {
     use super::*;
 
+    use std::time::Duration;
+
     #[test]
     fn reno_init() {
         let mut cfg = crate::Config::new(crate::PROTOCOL_VERSION).unwrap();
@@ -157,10 +169,12 @@
 
         let now = Instant::now();
 
-        let p = Sent {
+        let p = recovery::Sent {
             pkt_num: 0,
             frames: vec![],
             time_sent: now,
+            time_acked: None,
+            time_lost: None,
             size: 5000,
             ack_eliciting: true,
             in_flight: true,
@@ -168,6 +182,7 @@
             delivered_time: std::time::Instant::now(),
             recent_delivered_packet_sent_time: std::time::Instant::now(),
             is_app_limited: false,
+            has_data: false,
         };
 
         // Send 5k x 4 = 20k, higher than default cwnd(~15k)
@@ -179,7 +194,13 @@
 
         let cwnd_prev = r.cwnd();
 
-        r.on_packet_acked_cc(packet::EPOCH_APPLICATION, &p, now);
+        let acked = vec![Acked {
+            pkt_num: p.pkt_num,
+            time_sent: p.time_sent,
+            size: p.size,
+        }];
+
+        r.on_packets_acked(acked, packet::EPOCH_APPLICATION, now);
 
         // Check if cwnd increased by packet size (slow start).
         assert_eq!(r.cwnd(), cwnd_prev + p.size);
@@ -208,39 +229,35 @@
         cfg.set_cc_algorithm(recovery::CongestionControlAlgorithm::Reno);
 
         let mut r = Recovery::new(&cfg);
-
+        let now = Instant::now();
         let prev_cwnd = r.cwnd();
 
-        let now = Instant::now();
-
-        // Send 20K bytes.
+        // Fill up bytes_in_flight to avoid app_limited=true
         r.on_packet_sent_cc(20000, now);
 
+        // Trigger congestion event to update ssthresh
         r.congestion_event(now, packet::EPOCH_APPLICATION, now);
 
-        // In Reno, after congestion event, cwnd will be cut in half.
-        assert_eq!(prev_cwnd / 2, r.cwnd());
+        // After congestion event, cwnd will be reduced.
+        let cur_cwnd =
+            (prev_cwnd as f64 * recovery::LOSS_REDUCTION_FACTOR) as usize;
+        assert_eq!(r.cwnd(), cur_cwnd);
 
-        let p = Sent {
+        let rtt = Duration::from_millis(100);
+
+        let acked = vec![Acked {
             pkt_num: 0,
-            frames: vec![],
-            time_sent: now,
-            size: 5000,
-            ack_eliciting: true,
-            in_flight: true,
-            delivered: 0,
-            delivered_time: std::time::Instant::now(),
-            recent_delivered_packet_sent_time: std::time::Instant::now(),
-            is_app_limited: false,
-        };
+            // To exit from recovery
+            time_sent: now + rtt,
+            // More than cur_cwnd to increase cwnd
+            size: 8000,
+        }];
 
-        let prev_cwnd = r.cwnd();
+        // Ack more than cwnd bytes with rtt=100ms
+        r.update_rtt(rtt, Duration::from_millis(0), now);
+        r.on_packets_acked(acked, packet::EPOCH_APPLICATION, now + rtt * 2);
 
-        // Ack 5000 bytes.
-        r.on_packet_acked_cc(packet::EPOCH_APPLICATION, &p, now);
-
-        // Check if cwnd increase is smaller than a packet size (congestion
-        // avoidance).
-        assert!(r.cwnd() < prev_cwnd + 1111);
+        // After acking more than cwnd, expect cwnd increased by MSS
+        assert_eq!(r.cwnd(), cur_cwnd + recovery::MAX_DATAGRAM_SIZE);
     }
 }
diff --git a/src/stream.rs b/src/stream.rs
index 6664398..3ae45e7 100644
--- a/src/stream.rs
+++ b/src/stream.rs
@@ -28,6 +28,7 @@
 
 use std::collections::hash_map;
 use std::collections::BTreeSet;
+use std::collections::BTreeMap;
 use std::collections::BinaryHeap;
 use std::collections::HashMap;
 use std::collections::HashSet;
@@ -38,7 +39,7 @@
 
 use crate::ranges;
 
-const MAX_WRITE_SIZE: usize = 1000;
+const DEFAULT_URGENCY: u8 = 127;
 
 /// Keeps track of QUIC streams and enforces stream limits.
 #[derive(Default)]
@@ -83,8 +84,14 @@
     /// ready to be sent to the peer. This also implies that the stream has
     /// enough flow control credits to send at least some of that data.
     ///
-    /// Streams are added to the back of the list, and removed from the front.
-    flushable: VecDeque<u64>,
+    /// Streams are grouped by their priority, where each urgency level has two
+    /// queues, one for non-incremental streams and one for incremental ones.
+    ///
+    /// Streams with lower urgency level are scheduled first, and within the
+    /// same urgency level Non-incremental streams are scheduled first, in the
+    /// order of their stream IDs, and incremental streams are scheduled in a
+    /// round-robin fashion after all non-incremental streams have been flushed.
+    flushable: BTreeMap<u8, (BinaryHeap<std::cmp::Reverse<u64>>, VecDeque<u64>)>,
 
     /// Set of stream IDs corresponding to streams that have outstanding data
     /// to read. This is used to generate a `StreamIter` of streams without
@@ -150,15 +157,15 @@
     ) -> Result<&mut Stream> {
         let stream = match self.streams.entry(id) {
             hash_map::Entry::Vacant(v) => {
-                if local != is_local(id, is_server) {
-                    return Err(Error::InvalidStreamState);
-                }
-
                 // Stream has already been closed and garbage collected.
                 if self.collected.contains(&id) {
                     return Err(Error::Done);
                 }
 
+                if local != is_local(id, is_server) {
+                    return Err(Error::InvalidStreamState);
+                }
+
                 let (max_rx_data, max_tx_data) = match (local, is_bidi(id)) {
                     // Locally-initiated bidirectional stream.
                     (true, true) => (
@@ -238,7 +245,8 @@
         Ok(stream)
     }
 
-    /// Pushes the stream ID to the back of the flushable streams queue.
+    /// Pushes the stream ID to the back of the flushable streams queue with
+    /// the specified urgency.
     ///
     /// Note that the caller is responsible for checking that the specified
     /// stream ID was not in the queue already before calling this.
@@ -246,17 +254,58 @@
     /// Queueing a stream multiple times simultaneously means that it might be
     /// unfairly scheduled more often than other streams, and might also cause
     /// spurious cycles through the queue, so it should be avoided.
-    pub fn push_flushable(&mut self, stream_id: u64) {
-        self.flushable.push_back(stream_id);
+    pub fn push_flushable(&mut self, stream_id: u64, urgency: u8, incr: bool) {
+        // Push the element to the back of the queue corresponding to the given
+        // urgency. If the queue doesn't exist yet, create it first.
+        let queues = self
+            .flushable
+            .entry(urgency)
+            .or_insert_with(|| (BinaryHeap::new(), VecDeque::new()));
+
+        if !incr {
+            // Non-incremental streams are scheduled in order of their stream ID.
+            queues.0.push(std::cmp::Reverse(stream_id))
+        } else {
+            // Incremental streams are scheduled in a round-robin fashion.
+            queues.1.push_back(stream_id)
+        };
     }
 
     /// Removes and returns the first stream ID from the flushable streams
-    /// queue.
+    /// queue with the specified urgency.
     ///
     /// Note that if the stream is still flushable after sending some of its
-    /// outstanding data, it needs to be added back to the queu.
+    /// outstanding data, it needs to be added back to the queue.
     pub fn pop_flushable(&mut self) -> Option<u64> {
-        self.flushable.pop_front()
+        // Remove the first element from the queue corresponding to the lowest
+        // urgency that has elements.
+        let (node, clear) =
+            if let Some((urgency, queues)) = self.flushable.iter_mut().next() {
+                let node = if !queues.0.is_empty() {
+                    queues.0.pop().map(|x| x.0)
+                } else {
+                    queues.1.pop_front()
+                };
+
+                let clear = if queues.0.is_empty() && queues.1.is_empty() {
+                    Some(*urgency)
+                } else {
+                    None
+                };
+
+                (node, clear)
+            } else {
+                (None, None)
+            };
+
+        // Remove the queue from the list of queues if it is now empty, so that
+        // the next time `pop_flushable()` is called the next queue with elements
+        // is used.
+        if let Some(urgency) = &clear {
+            self.flushable.remove(urgency);
+        }
+
+        node
     }
 
     /// Adds or removes the stream ID to/from the readable streams set.
@@ -434,6 +483,12 @@
 
     /// Application data.
     pub data: Option<Box<dyn Send + std::any::Any>>,
+
+    /// The stream's urgency (lower is better). Default is `DEFAULT_URGENCY`.
+    pub urgency: u8,
+
+    /// Whether the stream can be flushed incrementally. Default is `true`.
+    pub incremental: bool,
 }
 
 impl Stream {
@@ -447,6 +502,8 @@
             bidi,
             local,
             data: None,
+            urgency: DEFAULT_URGENCY,
+            incremental: true,
         }
     }
 
@@ -538,7 +595,7 @@
 /// Stream data received by the peer is buffered in a list of data chunks
 /// ordered by offset in ascending order. Contiguous data can then be read
 /// into a slice.
-#[derive(Default)]
+#[derive(Debug, Default)]
 pub struct RecvBuf {
     /// Chunks of data received from the peer that have not yet been read by
     /// the application, ordered by offset.
@@ -695,30 +752,29 @@
         }
 
         while cap > 0 && self.ready() {
-            let mut buf = match self.data.pop() {
+            let mut buf = match self.data.peek_mut() {
                 Some(v) => v,
 
                 None => break,
             };
 
-            if buf.len() > cap {
-                let new_buf = RangeBuf {
-                    data: buf.data.split_off(cap),
-                    off: buf.off + cap as u64,
-                    fin: buf.fin,
-                };
+            let buf_len = cmp::min(buf.len(), cap);
 
-                buf.fin = false;
+            out[len..len + buf_len].copy_from_slice(&buf[..buf_len]);
 
-                self.data.push(new_buf);
+            self.off += buf_len as u64;
+
+            len += buf_len;
+            cap -= buf_len;
+
+            if buf_len < buf.len() {
+                buf.consume(buf_len);
+
+                // We reached the maximum capacity, so end here.
+                break;
             }
 
-            out[len..len + buf.len()].copy_from_slice(&buf.data);
-
-            self.off += buf.len() as u64;
-
-            len += buf.len();
-            cap -= buf.len();
+            std::collections::binary_heap::PeekMut::pop(buf);
         }
 
         self.max_data_next = self.max_data_next.saturating_add(len as u64);
@@ -770,9 +826,9 @@
         Ok(())
     }
 
-    /// Returns the largest offset of data buffered.
+    /// Returns the lowest offset of data buffered.
     #[allow(dead_code)]
-    pub fn off_back(&self) -> u64 {
+    pub fn off_front(&self) -> u64 {
         self.off
     }
 
@@ -785,6 +841,11 @@
             self.max_data_next / 2 > self.max_data - self.len
     }
 
+    /// Returns the largest offset ever received.
+    pub fn max_off(&self) -> u64 {
+        self.len
+    }
+
     /// Returns true if the receive-side of the stream is complete.
     ///
     /// This happens when the stream's receive final size is known, and the
@@ -805,7 +866,7 @@
             None => return false,
         };
 
-        buf.off == self.off
+        buf.off() == self.off
     }
 }
 
@@ -818,7 +879,7 @@
 /// By default, new data is appended at the end of the stream, but data can be
 /// inserted at the start of the buffer (this is to allow data that needs to be
 /// retransmitted to be re-buffered).
-#[derive(Default)]
+#[derive(Debug, Default)]
 pub struct SendBuf {
     /// Chunks of data to be sent, ordered by offset.
     data: BinaryHeap<RangeBuf>,
@@ -859,8 +920,6 @@
     pub fn push_slice(
         &mut self, mut data: &[u8], mut fin: bool,
     ) -> Result<usize> {
-        let mut len = 0;
-
         if self.shutdown {
             // Since we won't write any more data anyway, pretend that we sent
             // all data that was passed in.
@@ -884,19 +943,10 @@
             fin = false;
         }
 
-        // Split the input buffer into multiple RangeBufs. Otherwise a big
-        // buffer would need to be split later on when popping data, which
-        // would cause a partial copy of the buffer.
-        for chunk in data.chunks(MAX_WRITE_SIZE) {
-            len += chunk.len();
+        let buf = RangeBuf::from(data, self.off, fin);
+        self.push(buf)?;
 
-            let fin = len == data.len() && fin;
-
-            let buf = RangeBuf::from(chunk, self.off, fin);
-            self.push(buf)?;
-
-            self.off += chunk.len() as u64;
-        }
+        self.off += data.len() as u64;
 
         Ok(data.len())
     }
@@ -956,30 +1006,33 @@
             self.off_front() == out_off &&
             self.off_front() < self.max_data
         {
-            let mut buf = match self.data.pop() {
+            let mut buf = match self.data.peek_mut() {
                 Some(v) => v,
 
                 None => break,
             };
 
-            if buf.len() > out_len || buf.max_off() > self.max_data {
-                let new_len =
-                    cmp::min(out_len, (self.max_data - buf.off()) as usize);
-                let new_buf = buf.split_off(new_len);
-
-                self.data.push(new_buf);
-            }
+            let buf_len = cmp::min(buf.len(), out_len);
 
             if out.is_empty() {
-                out.off = buf.off;
+                out.off = buf.off();
             }
 
-            self.len -= buf.len() as u64;
+            self.len -= buf_len as u64;
 
-            out_len -= buf.len();
-            out_off = buf.max_off();
+            out_len -= buf_len;
+            out_off = buf.off() + buf_len as u64;
 
-            out.data.extend_from_slice(&buf.data);
+            out.data.extend_from_slice(&buf[..buf_len]);
+
+            if buf_len < buf.len() {
+                buf.consume(buf_len);
+
+                // We reached the maximum capacity, so end here.
+                break;
+            }
+
+            std::collections::binary_heap::PeekMut::pop(buf);
         }
 
         // Override the `fin` flag set for the output buffer by matching the
@@ -1087,8 +1140,17 @@
 /// Buffer holding data at a specific offset.
 #[derive(Clone, Debug, Default, Eq)]
 pub struct RangeBuf {
+    /// The internal buffer holding the data.
     data: Vec<u8>,
+
+    /// The starting offset within `data`. This allows partially consuming a
+    /// buffer without duplicating the data.
+    pos: usize,
+
+    /// The starting offset within a stream.
     off: u64,
+
+    /// Whether this contains the final byte in the stream.
     fin: bool,
 }
 
@@ -1097,6 +1159,7 @@
     pub(crate) fn from(buf: &[u8], off: u64, fin: bool) -> RangeBuf {
         RangeBuf {
             data: Vec::from(buf),
+            pos: 0,
             off,
             fin,
         }
@@ -1109,7 +1172,7 @@
 
     /// Returns the starting offset of `self`.
     pub fn off(&self) -> u64 {
-        self.off
+        self.off + self.pos as u64
     }
 
     /// Returns the final offset of `self`.
@@ -1119,7 +1182,7 @@
 
     /// Returns the length of `self`.
     pub fn len(&self) -> usize {
-        self.data.len()
+        self.data.len() - self.pos
     }
 
     /// Returns true if `self` has a length of zero bytes.
@@ -1127,10 +1190,16 @@
         self.len() == 0
     }
 
+    /// Consumes the starting `count` bytes of `self`.
+    pub fn consume(&mut self, count: usize) {
+        self.pos += count;
+    }
+
     /// Splits the buffer into two at the given index.
     pub fn split_off(&mut self, at: usize) -> RangeBuf {
         let buf = RangeBuf {
             data: self.data.split_off(at),
+            pos: 0,
             off: self.off + at as u64,
             fin: self.fin,
         };
@@ -1145,13 +1214,13 @@
     type Target = [u8];
 
     fn deref(&self) -> &[u8] {
-        &self.data
+        &self.data[self.pos..]
     }
 }
 
 impl std::ops::DerefMut for RangeBuf {
     fn deref_mut(&mut self) -> &mut [u8] {
-        &mut self.data
+        &mut self.data[self.pos..]
     }
 }
 
diff --git a/src/tls.rs b/src/tls.rs
index 79d0ed2..407d701 100644
--- a/src/tls.rs
+++ b/src/tls.rs
@@ -28,20 +28,16 @@
 use std::ptr;
 use std::slice;
 
-use std::io::prelude::*;
-
 use libc::c_char;
 use libc::c_int;
 use libc::c_long;
 use libc::c_uint;
 use libc::c_void;
-use libc::size_t;
 
 use crate::Error;
 use crate::Result;
 
 use crate::Connection;
-use crate::TransportParams;
 
 use crate::crypto;
 use crate::octets;
@@ -323,18 +319,12 @@
 
         self.set_quic_method()?;
 
+        // TODO: the early data context should include transport parameters and
+        // HTTP/3 SETTINGS in wire format.
+        self.set_quic_early_data_context(b"quiche")?;
+
         self.set_quiet_shutdown(true);
 
-        let mut raw_params = [0; 128];
-
-        let raw_params = TransportParams::encode(
-            &conn.local_transport_params,
-            conn.is_server,
-            &mut raw_params,
-        )?;
-
-        self.set_quic_transport_params(raw_params)?;
-
         Ok(())
     }
 
@@ -361,6 +351,16 @@
         })
     }
 
+    pub fn set_quic_early_data_context(&self, context: &[u8]) -> Result<()> {
+        map_result(unsafe {
+            SSL_set_quic_early_data_context(
+                self.as_ptr(),
+                context.as_ptr(),
+                context.len(),
+            )
+        })
+    }
+
     pub fn set_min_proto_version(&self, version: u16) {
         unsafe { SSL_set_min_proto_version(self.as_ptr(), version) }
     }
@@ -582,30 +582,11 @@
         Err(_) => return 0,
     };
 
-    let key_len = aead.key_len();
-    let nonce_len = aead.nonce_len();
-
-    let mut key = vec![0; key_len];
-    let mut iv = vec![0; nonce_len];
-    let mut pn_key = vec![0; key_len];
-
     // 0-RTT read secrets are present only on the server.
     if level != crypto::Level::ZeroRTT || conn.is_server {
         let secret = unsafe { slice::from_raw_parts(secret, secret_len) };
 
-        if crypto::derive_pkt_key(aead, &secret, &mut key).is_err() {
-            return 0;
-        }
-
-        if crypto::derive_pkt_iv(aead, &secret, &mut iv).is_err() {
-            return 0;
-        }
-
-        if crypto::derive_hdr_key(aead, &secret, &mut pn_key).is_err() {
-            return 0;
-        }
-
-        let open = match crypto::Open::new(aead, &key, &iv, &pn_key) {
+        let open = match crypto::Open::from_secret(aead, &secret) {
             Ok(v) => v,
 
             Err(_) => return 0,
@@ -651,30 +632,11 @@
         Err(_) => return 0,
     };
 
-    let key_len = aead.key_len();
-    let nonce_len = aead.nonce_len();
-
-    let mut key = vec![0; key_len];
-    let mut iv = vec![0; nonce_len];
-    let mut pn_key = vec![0; key_len];
-
     // 0-RTT write secrets are present only on the client.
     if level != crypto::Level::ZeroRTT || !conn.is_server {
         let secret = unsafe { slice::from_raw_parts(secret, secret_len) };
 
-        if crypto::derive_pkt_key(aead, &secret, &mut key).is_err() {
-            return 0;
-        }
-
-        if crypto::derive_pkt_iv(aead, &secret, &mut iv).is_err() {
-            return 0;
-        }
-
-        if crypto::derive_hdr_key(aead, &secret, &mut pn_key).is_err() {
-            return 0;
-        }
-
-        let seal = match crypto::Seal::new(aead, &key, &iv, &pn_key) {
+        let seal = match crypto::Seal::from_secret(aead, &secret) {
             Ok(v) => v,
 
             Err(_) => return 0,
@@ -749,20 +711,22 @@
     1
 }
 
-extern fn keylog(_: *mut SSL, line: *const c_char) {
-    if let Some(path) = std::env::var_os("SSLKEYLOGFILE") {
-        let file = std::fs::OpenOptions::new()
-            .create(true)
-            .append(true)
-            .open(path);
+extern fn keylog(ssl: *mut SSL, line: *const c_char) {
+    let conn =
+        match get_ex_data_from_ptr::<Connection>(ssl, *QUICHE_EX_DATA_INDEX) {
+            Some(v) => v,
 
-        if let Ok(mut file) = file {
-            let data = unsafe { ffi::CStr::from_ptr(line).to_bytes() };
+            None => return,
+        };
 
-            file.write_all(b"QUIC_").unwrap_or(());
-            file.write_all(data).unwrap_or(());
-            file.write_all(b"\n").unwrap_or(());
-        }
+    if let Some(keylog) = &mut conn.keylog {
+        let data = unsafe { ffi::CStr::from_ptr(line).to_bytes() };
+
+        let mut full_line = Vec::with_capacity(data.len() + 1);
+        full_line.extend_from_slice(data);
+        full_line.push(b'\n');
+
+        keylog.write_all(&full_line[..]).ok();
     }
 }
 
@@ -986,6 +950,10 @@
         ssl: *mut SSL, quic_method: *const SSL_QUIC_METHOD,
     ) -> c_int;
 
+    fn SSL_set_quic_early_data_context(
+        ssl: *mut SSL, context: *const u8, context_len: usize,
+    ) -> c_int;
+
     fn SSL_get_peer_quic_transport_params(
         ssl: *mut SSL, out_params: *mut *const u8, out_params_len: *mut usize,
     );
@@ -1017,7 +985,7 @@
 
     // X509_VERIFY_PARAM
     fn X509_VERIFY_PARAM_set1_host(
-        param: *mut X509_VERIFY_PARAM, name: *const c_char, namelen: size_t,
+        param: *mut X509_VERIFY_PARAM, name: *const c_char, namelen: usize,
     ) -> c_int;
 
     // X509_STORE
diff --git a/tools/build_android.sh b/tools/android/build_android.sh
similarity index 100%
rename from tools/build_android.sh
rename to tools/android/build_android.sh
diff --git a/tools/build_android_ndk19.sh b/tools/android/build_android_ndk19.sh
similarity index 100%
rename from tools/build_android_ndk19.sh
rename to tools/android/build_android_ndk19.sh
diff --git a/tools/setup_android.sh b/tools/android/setup_android.sh
similarity index 100%
rename from tools/setup_android.sh
rename to tools/android/setup_android.sh
diff --git a/tools/apps/src/bin/quiche-client.rs b/tools/apps/src/bin/quiche-client.rs
index fff5774..03c54ee 100644
--- a/tools/apps/src/bin/quiche-client.rs
+++ b/tools/apps/src/bin/quiche-client.rs
@@ -37,6 +37,9 @@
 
 const MAX_DATAGRAM_SIZE: usize = 1350;
 
+const HANDSHAKE_FAIL_STATUS: i32 = -1;
+const HTTP_FAIL_STATUS: i32 = -2;
+
 const USAGE: &str = "Usage:
   quiche-client [options] URL...
   quiche-client -h | --help
@@ -48,10 +51,16 @@
   --max-stream-data BYTES  Per-stream flow control limit [default: 1000000].
   --max-streams-bidi STREAMS  Number of allowed concurrent streams [default: 100].
   --max-streams-uni STREAMS   Number of allowed concurrent streams [default: 100].
+  --idle-timeout TIMEOUT   Idle timeout in milliseconds [default: 30000].
   --wire-version VERSION   The version number to send to the server [default: babababa].
   --http-version VERSION   HTTP version to use [default: all].
+  --dgram-proto PROTO      DATAGRAM application protocol to use [default: none].
+  --dgram-count COUNT      Number of DATAGRAMs to send [default: 0].
+  --dgram-data DATA        Data to send for certain types of DATAGRAM application protocol [default: quack].
   --dump-packets PATH      Dump the incoming packets as files in the given directory.
   --dump-responses PATH    Dump response payload as files in the given directory.
+  --dump-json              Dump response headers and payload to stdout.
+  --connect-to ADDRESS     Override ther server's address.
   --no-verify              Don't verify server's certificate.
   --no-grease              Don't send GREASE.
   --cc-algorithm NAME      Specify which congestion control algorithm to use [default: cubic].
@@ -82,7 +91,11 @@
     let connect_url = &args.urls[0];
 
     // Resolve server address.
-    let peer_addr = connect_url.to_socket_addrs().unwrap().next().unwrap();
+    let peer_addr = if let Some(addr) = &args.connect_to {
+        addr.parse().unwrap()
+    } else {
+        connect_url.to_socket_addrs().unwrap().next().unwrap()
+    };
 
     // Bind to INADDR_ANY or IN6ADDR_ANY depending on the IP family of the
     // server address. This is needed on macOS and BSD variants that don't
@@ -113,8 +126,8 @@
 
     config.set_application_protos(&conn_args.alpns).unwrap();
 
-    config.set_max_idle_timeout(5000);
-    config.set_max_packet_size(MAX_DATAGRAM_SIZE as u64);
+    config.set_max_idle_timeout(conn_args.idle_timeout);
+    config.set_max_udp_payload_size(MAX_DATAGRAM_SIZE as u64);
     config.set_initial_max_data(conn_args.max_data);
     config.set_initial_max_stream_data_bidi_local(conn_args.max_stream_data);
     config.set_initial_max_stream_data_bidi_remote(conn_args.max_stream_data);
@@ -123,6 +136,20 @@
     config.set_initial_max_streams_uni(conn_args.max_streams_uni);
     config.set_disable_active_migration(true);
 
+    let mut keylog = None;
+
+    if let Some(keylog_path) = std::env::var_os("SSLKEYLOGFILE") {
+        let file = std::fs::OpenOptions::new()
+            .create(true)
+            .append(true)
+            .open(keylog_path)
+            .unwrap();
+
+        keylog = Some(file);
+
+        config.log_keys();
+    }
+
     if conn_args.no_grease {
         config.grease(false);
     }
@@ -131,15 +158,18 @@
         .set_cc_algorithm_name(&conn_args.cc_algorithm)
         .unwrap();
 
-    if std::env::var_os("SSLKEYLOGFILE").is_some() {
-        config.log_keys();
-    }
-
     if conn_args.disable_hystart {
         config.enable_hystart(false);
     }
 
+    if conn_args.dgrams_enabled {
+        config.enable_dgram(true, 1000, 1000);
+    }
+
     let mut http_conn: Option<Box<dyn HttpConn>> = None;
+    let mut siduck_conn: Option<SiDuckConn> = None;
+
+    let mut app_proto_selected = false;
 
     // Generate a random source connection ID for the connection.
     let mut scid = [0; quiche::MAX_CONN_ID_LEN];
@@ -149,6 +179,12 @@
     let mut conn =
         quiche::connect(connect_url.domain(), &scid, &mut config).unwrap();
 
+    if let Some(keylog) = &mut keylog {
+        if let Ok(keylog) = keylog.try_clone() {
+            conn.set_keylog(Box::new(keylog));
+        }
+    }
+
     // Only bother with qlog if the user specified it.
     #[cfg(feature = "qlog")]
     {
@@ -184,7 +220,7 @@
 
     trace!("written {}", write);
 
-    let req_start = std::time::Instant::now();
+    let app_data_start = std::time::Instant::now();
 
     let mut pkt_count = 0;
 
@@ -251,15 +287,31 @@
         if conn.is_closed() {
             info!("connection closed, {:?}", conn.stats());
 
+            if !conn.is_established() {
+                error!(
+                    "connection timed out after {:?}",
+                    app_data_start.elapsed(),
+                );
+
+                std::process::exit(HANDSHAKE_FAIL_STATUS);
+            }
+
             if let Some(h_conn) = http_conn {
-                h_conn.report_incomplete(&req_start);
+                if h_conn.report_incomplete(&app_data_start) {
+                    std::process::exit(HTTP_FAIL_STATUS);
+                }
+            }
+
+            if let Some(si_conn) = siduck_conn {
+                si_conn.report_incomplete(&app_data_start);
             }
 
             break;
         }
 
-        // Create a new HTTP connection once the QUIC connection is established.
-        if conn.is_established() && http_conn.is_none() {
+        // Create a new application protocol session once the QUIC connection is
+        // established.
+        if conn.is_established() && !app_proto_selected {
             // At this stage the ALPN negotiation succeeded and selected a
             // single application protocol name. We'll use this to construct
             // the correct type of HttpConn but `application_proto()`
@@ -274,7 +326,19 @@
             if alpns::HTTP_09.contains(app_proto) {
                 http_conn =
                     Some(Http09Conn::with_urls(&args.urls, args.reqs_cardinal));
+
+                app_proto_selected = true;
             } else if alpns::HTTP_3.contains(app_proto) {
+                let dgram_sender = if conn_args.dgrams_enabled {
+                    Some(Http3DgramSender::new(
+                        conn_args.dgram_count,
+                        conn_args.dgram_data.clone(),
+                        0,
+                    ))
+                } else {
+                    None
+                };
+
                 http_conn = Some(Http3Conn::with_urls(
                     &mut conn,
                     &args.urls,
@@ -282,7 +346,18 @@
                     &args.req_headers,
                     &args.body,
                     &args.method,
+                    args.dump_json,
+                    dgram_sender,
                 ));
+
+                app_proto_selected = true;
+            } else if alpns::SIDUCK.contains(app_proto) {
+                siduck_conn = Some(SiDuckConn::new(
+                    conn_args.dgram_count,
+                    conn_args.dgram_data.clone(),
+                ));
+
+                app_proto_selected = true;
             }
         }
 
@@ -290,7 +365,14 @@
         // process received data.
         if let Some(h_conn) = http_conn.as_mut() {
             h_conn.send_requests(&mut conn, &args.dump_response_path);
-            h_conn.handle_responses(&mut conn, &mut buf, &req_start);
+            h_conn.handle_responses(&mut conn, &mut buf, &app_data_start);
+        }
+
+        // If we have a siduck connection, first issue the quacks then
+        // process received data.
+        if let Some(si_conn) = siduck_conn.as_mut() {
+            si_conn.send_quacks(&mut conn);
+            si_conn.handle_quack_acks(&mut conn, &mut buf, &app_data_start);
         }
 
         // Generate outgoing QUIC packets and send them on the UDP socket, until
@@ -327,8 +409,23 @@
         if conn.is_closed() {
             info!("connection closed, {:?}", conn.stats());
 
+            if !conn.is_established() {
+                error!(
+                    "connection timed out after {:?}",
+                    app_data_start.elapsed(),
+                );
+
+                std::process::exit(HANDSHAKE_FAIL_STATUS);
+            }
+
             if let Some(h_conn) = http_conn {
-                h_conn.report_incomplete(&req_start);
+                if h_conn.report_incomplete(&app_data_start) {
+                    std::process::exit(HTTP_FAIL_STATUS);
+                }
+            }
+
+            if let Some(si_conn) = siduck_conn {
+                si_conn.report_incomplete(&app_data_start);
             }
 
             break;
@@ -340,12 +437,14 @@
 struct ClientArgs {
     version: u32,
     dump_response_path: Option<String>,
+    dump_json: bool,
     urls: Vec<url::Url>,
     reqs_cardinal: u64,
     req_headers: Vec<String>,
     no_verify: bool,
     body: Option<Vec<u8>>,
     method: String,
+    connect_to: Option<String>,
 }
 
 impl Args for ClientArgs {
@@ -361,6 +460,8 @@
             None
         };
 
+        let dump_json = args.get_bool("--dump-json");
+
         // URLs (can be multiple).
         let urls: Vec<url::Url> = args
             .get_vec("URL")
@@ -388,15 +489,23 @@
 
         let method = args.get_str("--method").to_string();
 
+        let connect_to = if args.get_bool("--connect-to") {
+            Some(args.get_str("--connect-to").to_string())
+        } else {
+            None
+        };
+
         ClientArgs {
             version,
             dump_response_path,
+            dump_json,
             urls,
             req_headers,
             reqs_cardinal,
             no_verify,
             body,
             method,
+            connect_to,
         }
     }
 }
diff --git a/tools/apps/src/bin/quiche-server.rs b/tools/apps/src/bin/quiche-server.rs
index df51a11..5091389 100644
--- a/tools/apps/src/bin/quiche-server.rs
+++ b/tools/apps/src/bin/quiche-server.rs
@@ -54,11 +54,15 @@
   --max-stream-data BYTES     Per-stream flow control limit [default: 1000000].
   --max-streams-bidi STREAMS  Number of allowed concurrent streams [default: 100].
   --max-streams-uni STREAMS   Number of allowed concurrent streams [default: 100].
+  --idle-timeout TIMEOUT   Idle timeout in milliseconds [default: 30000].
   --dump-packets PATH         Dump the incoming packets as files in the given directory.
   --early-data                Enables receiving early data.
   --no-retry                  Disable stateless retry.
   --no-grease                 Don't send GREASE.
   --http-version VERSION      HTTP version to use [default: all].
+  --dgram-proto PROTO         DATAGRAM application protocol to use [default: none].
+  --dgram-count COUNT         Number of DATAGRAMs to send [default: 0].
+  --dgram-data DATA           Data to send for certain types of DATAGRAM application protocol [default: brrr].
   --cc-algorithm NAME         Specify which congestion control algorithm to use [default: cubic].
   --disable-hystart           Disable HyStart++.
   -h --help                   Show this screen.
@@ -84,6 +88,8 @@
     // Create the UDP listening socket, and register it with the event loop.
     let socket = net::UdpSocket::bind(args.listen).unwrap();
 
+    info!("listening on {:}", socket.local_addr().unwrap());
+
     let socket = mio::net::UdpSocket::from_socket(socket).unwrap();
     poll.register(
         &socket,
@@ -101,8 +107,8 @@
 
     config.set_application_protos(&conn_args.alpns).unwrap();
 
-    config.set_max_idle_timeout(5000);
-    config.set_max_packet_size(MAX_DATAGRAM_SIZE as u64);
+    config.set_max_idle_timeout(conn_args.idle_timeout);
+    config.set_max_udp_payload_size(MAX_DATAGRAM_SIZE as u64);
     config.set_initial_max_data(conn_args.max_data);
     config.set_initial_max_stream_data_bidi_local(conn_args.max_stream_data);
     config.set_initial_max_stream_data_bidi_remote(conn_args.max_stream_data);
@@ -111,6 +117,20 @@
     config.set_initial_max_streams_uni(conn_args.max_streams_uni);
     config.set_disable_active_migration(true);
 
+    let mut keylog = None;
+
+    if let Some(keylog_path) = std::env::var_os("SSLKEYLOGFILE") {
+        let file = std::fs::OpenOptions::new()
+            .create(true)
+            .append(true)
+            .open(keylog_path)
+            .unwrap();
+
+        keylog = Some(file);
+
+        config.log_keys();
+    }
+
     if args.early_data {
         config.enable_early_data();
     }
@@ -119,10 +139,6 @@
         config.grease(false);
     }
 
-    if std::env::var_os("SSLKEYLOGFILE").is_some() {
-        config.log_keys();
-    }
-
     config
         .set_cc_algorithm_name(&conn_args.cc_algorithm)
         .unwrap();
@@ -131,6 +147,10 @@
         config.enable_hystart(false);
     }
 
+    if conn_args.dgrams_enabled {
+        config.enable_dgram(true, 1000, 1000);
+    }
+
     let rng = SystemRandom::new();
     let conn_id_seed =
         ring::hmac::Key::generate(ring::hmac::HMAC_SHA256, &rng).unwrap();
@@ -256,9 +276,15 @@
                         let new_token = mint_token(&hdr, &src);
 
                         let len = quiche::retry(
-                            &hdr.scid, &hdr.dcid, &scid, &new_token, &mut out,
+                            &hdr.scid,
+                            &hdr.dcid,
+                            &scid,
+                            &new_token,
+                            hdr.version,
+                            &mut out,
                         )
                         .unwrap();
+
                         let out = &out[..len];
 
                         if let Err(e) = socket.send_to(out, &src) {
@@ -292,7 +318,8 @@
                 }
 
                 debug!(
-                    "New connection: dcid={} scid={}",
+                    "New connection: src={} dcid={} scid={}",
+                    src,
                     hex_dump(&hdr.dcid),
                     hex_dump(&scid)
                 );
@@ -300,6 +327,12 @@
                 #[allow(unused_mut)]
                 let mut conn = quiche::accept(&scid, odcid, &mut config).unwrap();
 
+                if let Some(keylog) = &mut keylog {
+                    if let Ok(keylog) = keylog.try_clone() {
+                        conn.set_keylog(Box::new(keylog));
+                    }
+                }
+
                 // Only bother with qlog if the user specified it.
                 #[cfg(feature = "qlog")]
                 {
@@ -320,6 +353,8 @@
                     http_conn: None,
                     partial_requests: HashMap::new(),
                     partial_responses: HashMap::new(),
+                    siduck_conn: None,
+                    app_proto_selected: false,
                 };
 
                 clients.insert(scid.to_vec(), (src, client));
@@ -345,9 +380,9 @@
 
             trace!("{} processed {} bytes", client.conn.trace_id(), read);
 
-            // Create a new HTTP connection as soon as the QUIC connection
-            // is established.
-            if client.http_conn.is_none() &&
+            // Create a new application protocol session as soon as the QUIC
+            // connection is established.
+            if !client.app_proto_selected &&
                 (client.conn.is_in_early_data() ||
                     client.conn.is_established())
             {
@@ -363,9 +398,32 @@
 
                 if alpns::HTTP_09.contains(app_proto) {
                     client.http_conn = Some(Box::new(Http09Conn::default()));
+
+                    client.app_proto_selected = true;
                 } else if alpns::HTTP_3.contains(app_proto) {
-                    client.http_conn =
-                        Some(Http3Conn::with_conn(&mut client.conn));
+                    let dgram_sender = if conn_args.dgrams_enabled {
+                        Some(Http3DgramSender::new(
+                            conn_args.dgram_count,
+                            conn_args.dgram_data.clone(),
+                            1,
+                        ))
+                    } else {
+                        None
+                    };
+
+                    client.http_conn = Some(Http3Conn::with_conn(
+                        &mut client.conn,
+                        dgram_sender,
+                    ));
+
+                    client.app_proto_selected = true;
+                } else if alpns::SIDUCK.contains(app_proto) {
+                    client.siduck_conn = Some(SiDuckConn::new(
+                        conn_args.dgram_count,
+                        conn_args.dgram_data.clone(),
+                    ));
+
+                    client.app_proto_selected = true;
                 }
             }
 
@@ -393,6 +451,16 @@
                     continue 'read;
                 }
             }
+
+            // If we have a siduck connection, handle the quacks.
+            if client.siduck_conn.is_some() {
+                let conn = &mut client.conn;
+                let si_conn = client.siduck_conn.as_mut().unwrap();
+
+                if si_conn.handle_quacks(conn, &mut buf).is_err() {
+                    continue 'read;
+                }
+            }
         }
 
         // Generate outgoing QUIC packets for all active connections and send
diff --git a/tools/apps/src/lib.rs b/tools/apps/src/lib.rs
index 45718fa..3f72fc9 100644
--- a/tools/apps/src/lib.rs
+++ b/tools/apps/src/lib.rs
@@ -39,6 +39,10 @@
 use std::net;
 use std::path;
 
+use quiche::h3::NameValue;
+
+const MAX_JSON_DUMP_PAYLOAD: usize = 10000;
+
 /// Returns a String containing a pretty printed version of the `buf` slice.
 pub fn hex_dump(buf: &[u8]) -> String {
     let vec: Vec<String> = buf.iter().map(|b| format!("{:02x}", b)).collect();
@@ -50,8 +54,9 @@
 ///
 /// This module contains constants and functions for working with ALPN.
 pub mod alpns {
-    pub const HTTP_09: [&str; 2] = ["hq-27", "http/0.9"];
-    pub const HTTP_3: [&str; 1] = ["h3-27"];
+    pub const HTTP_09: [&str; 4] = ["hq-29", "hq-28", "hq-27", "http/0.9"];
+    pub const HTTP_3: [&str; 3] = ["h3-29", "h3-28", "h3-27"];
+    pub const SIDUCK: [&str; 2] = ["siduck", "siduck-00"];
 
     pub fn length_prefixed(alpns: &[&str]) -> Vec<u8> {
         let mut out = Vec::new();
@@ -76,17 +81,21 @@
     pub max_stream_data: u64,
     pub max_streams_bidi: u64,
     pub max_streams_uni: u64,
+    pub idle_timeout: u64,
     pub dump_packet_path: Option<String>,
     pub no_grease: bool,
     pub cc_algorithm: String,
     pub disable_hystart: bool,
+    pub dgrams_enabled: bool,
+    pub dgram_count: u64,
+    pub dgram_data: String,
 }
 
 /// Creates a new `CommonArgs` structure using the provided [`Docopt`].
 ///
 /// The `Docopt` usage String needs to include the following:
 ///
-/// --http-version VERSION      HTTP version to use
+/// --http-version VERSION      HTTP version to use.
 /// --max-data BYTES            Connection-wide flow control limit.
 /// --max-stream-data BYTES     Per-stream flow control limit.
 /// --max-streams-bidi STREAMS  Number of allowed concurrent streams.
@@ -95,6 +104,9 @@
 /// --no-grease                 Don't send GREASE.
 /// --cc-algorithm NAME         Set a congestion control algorithm.
 /// --disable-hystart           Disable HyStart++.
+/// --dgram-proto PROTO         DATAGRAM application protocol.
+/// --dgram-count COUNT         Number of DATAGRAMs to send.
+///  --dgram-data DATA          DATAGRAM data to send.
 ///
 /// [`Docopt`]: https://docs.rs/docopt/1.1.0/docopt/
 impl Args for CommonArgs {
@@ -102,20 +114,39 @@
         let args = docopt.parse().unwrap_or_else(|e| e.exit());
 
         let http_version = args.get_str("--http-version");
-        let alpns = match http_version {
-            "HTTP/0.9" => alpns::length_prefixed(&alpns::HTTP_09),
+        let dgram_proto = args.get_str("--dgram-proto");
+        let (alpns, dgrams_enabled) = match (http_version, dgram_proto) {
+            ("HTTP/0.9", "none") =>
+                (alpns::length_prefixed(&alpns::HTTP_09), false),
 
-            "HTTP/3" => alpns::length_prefixed(&alpns::HTTP_3),
+            ("HTTP/0.9", _) =>
+                panic!("Unsupported HTTP version and DATAGRAM protocol."),
 
-            "all" => [
-                alpns::length_prefixed(&alpns::HTTP_3),
-                alpns::length_prefixed(&alpns::HTTP_09),
-            ]
-            .concat(),
+            ("HTTP/3", "none") => (alpns::length_prefixed(&alpns::HTTP_3), false),
 
-            _ => panic!("Unsupported HTTP version"),
+            ("HTTP/3", "oneway") =>
+                (alpns::length_prefixed(&alpns::HTTP_3), true),
+
+            ("all", "none") => (
+                [
+                    alpns::length_prefixed(&alpns::HTTP_3),
+                    alpns::length_prefixed(&alpns::HTTP_09),
+                ]
+                .concat(),
+                false,
+            ),
+
+            // SiDuck is it's own application protocol.
+            (_, "siduck") => (alpns::length_prefixed(&alpns::SIDUCK), true),
+
+            (..) => panic!("Unsupported HTTP version and DATAGRAM protocol."),
         };
 
+        let dgram_count = args.get_str("--dgram-count");
+        let dgram_count = u64::from_str_radix(dgram_count, 10).unwrap();
+
+        let dgram_data = args.get_str("--dgram-data").to_string();
+
         let max_data = args.get_str("--max-data");
         let max_data = u64::from_str_radix(max_data, 10).unwrap();
 
@@ -128,6 +159,9 @@
         let max_streams_uni = args.get_str("--max-streams-uni");
         let max_streams_uni = u64::from_str_radix(max_streams_uni, 10).unwrap();
 
+        let idle_timeout = args.get_str("--idle-timeout");
+        let idle_timeout = u64::from_str_radix(idle_timeout, 10).unwrap();
+
         let dump_packet_path = if args.get_str("--dump-packets") != "" {
             Some(args.get_str("--dump-packets").to_string())
         } else {
@@ -146,10 +180,14 @@
             max_stream_data,
             max_streams_bidi,
             max_streams_uni,
+            idle_timeout,
             dump_packet_path,
             no_grease,
             cc_algorithm: cc_algorithm.to_string(),
             disable_hystart,
+            dgrams_enabled,
+            dgram_count,
+            dgram_data,
         }
     }
 }
@@ -171,6 +209,10 @@
 
     pub http_conn: Option<Box<dyn crate::HttpConn>>,
 
+    pub siduck_conn: Option<SiDuckConn>,
+
+    pub app_proto_selected: bool,
+
     pub partial_requests: std::collections::HashMap<u64, PartialRequest>,
 
     pub partial_responses: std::collections::HashMap<u64, PartialResponse>,
@@ -239,6 +281,62 @@
     }
 }
 
+fn dump_json(reqs: &[Http3Request]) {
+    println!("{{");
+    println!("  \"entries\": [");
+    let mut reqs = reqs.iter().peekable();
+
+    while let Some(req) = reqs.next() {
+        println!("  {{");
+        println!("    \"request\":{{");
+        println!("      \"headers\":[");
+
+        let mut req_hdrs = req.hdrs.iter().peekable();
+        while let Some(h) = req_hdrs.next() {
+            println!("        {{");
+            println!("          \"name\": \"{}\",", h.name());
+            println!("          \"value\": \"{}\"", h.value());
+
+            if req_hdrs.peek().is_some() {
+                println!("        }},");
+            } else {
+                println!("        }}");
+            }
+        }
+        println!("      ]}},");
+
+        println!("    \"response\":{{");
+        println!("      \"headers\":[");
+
+        let mut response_hdrs = req.response_hdrs.iter().peekable();
+        while let Some(h) = response_hdrs.next() {
+            println!("        {{");
+            println!("          \"name\": \"{}\",", h.name());
+            println!(
+                "          \"value\": \"{}\"",
+                h.value().replace("\"", "\\\"")
+            );
+
+            if response_hdrs.peek().is_some() {
+                println!("        }},");
+            } else {
+                println!("        }}");
+            }
+        }
+        println!("      ],");
+        println!("      \"body\": {:?}", req.response_body);
+        println!("    }}");
+
+        if reqs.peek().is_some() {
+            println!("}},");
+        } else {
+            println!("}}");
+        }
+    }
+    println!("]");
+    println!("}}");
+}
+
 pub trait HttpConn {
     fn send_requests(
         &mut self, conn: &mut quiche::Connection, target_path: &Option<String>,
@@ -249,7 +347,7 @@
         req_start: &std::time::Instant,
     );
 
-    fn report_incomplete(&self, start: &std::time::Instant);
+    fn report_incomplete(&self, start: &std::time::Instant) -> bool;
 
     fn handle_requests(
         &mut self, conn: &mut std::pin::Pin<Box<quiche::Connection>>,
@@ -264,6 +362,161 @@
     );
 }
 
+pub struct SiDuckConn {
+    quacks_to_make: u64,
+    quack_contents: String,
+    quacks_sent: u64,
+    quacks_acked: u64,
+}
+
+impl SiDuckConn {
+    pub fn new(quacks_to_make: u64, quack_contents: String) -> Self {
+        Self {
+            quacks_to_make,
+            quack_contents,
+            quacks_sent: 0,
+            quacks_acked: 0,
+        }
+    }
+
+    pub fn send_quacks(&mut self, conn: &mut quiche::Connection) {
+        trace!("sending quacks");
+        let mut quacks_done = 0;
+
+        for _ in self.quacks_sent..self.quacks_to_make {
+            info!("sending QUIC DATAGRAM with data {:?}", self.quack_contents);
+
+            match conn.dgram_send(self.quack_contents.as_bytes()) {
+                Ok(v) => v,
+
+                Err(e) => {
+                    error!("failed to send dgram {:?}", e);
+
+                    break;
+                },
+            }
+
+            quacks_done += 1;
+        }
+
+        self.quacks_sent += quacks_done;
+    }
+
+    pub fn handle_quacks(
+        &mut self, conn: &mut quiche::Connection, buf: &mut [u8],
+    ) -> quiche::h3::Result<()> {
+        loop {
+            match conn.dgram_recv(buf) {
+                Ok(len) => {
+                    let data =
+                        unsafe { std::str::from_utf8_unchecked(&buf[..len]) };
+                    info!("Received DATAGRAM data {:?}", data);
+
+                    // TODO
+                    if data != "quack" {
+                        match conn.close(true, 0x101, b"only quacks echo") {
+                            // Already closed.
+                            Ok(_) | Err(quiche::Error::Done) => (),
+
+                            Err(e) => panic!("error closing conn: {:?}", e),
+                        }
+
+                        break;
+                    }
+
+                    match conn.dgram_send(format!("{}-ack", data).as_bytes()) {
+                        Ok(v) => v,
+
+                        Err(quiche::Error::Done) => (),
+
+                        Err(e) => {
+                            error!("failed to send quack ack {:?}", e);
+                            return Err(From::from(e));
+                        },
+                    }
+                },
+
+                Err(quiche::Error::Done) => break,
+
+                Err(e) => {
+                    error!("failure receiving DATAGRAM failure {:?}", e);
+
+                    return Err(From::from(e));
+                },
+            }
+        }
+
+        Ok(())
+    }
+
+    pub fn handle_quack_acks(
+        &mut self, conn: &mut quiche::Connection, buf: &mut [u8],
+        start: &std::time::Instant,
+    ) {
+        trace!("handle_quack_acks");
+
+        loop {
+            match conn.dgram_recv(buf) {
+                Ok(len) => {
+                    let data =
+                        unsafe { std::str::from_utf8_unchecked(&buf[..len]) };
+
+                    info!("Received DATAGRAM data {:?}", data);
+                    self.quacks_acked += 1;
+
+                    debug!(
+                        "{}/{} quacks acked",
+                        self.quacks_acked, self.quacks_to_make
+                    );
+
+                    if self.quacks_acked == self.quacks_to_make {
+                        info!(
+                            "{}/{} dgrams(s) received in {:?}, closing...",
+                            self.quacks_acked,
+                            self.quacks_to_make,
+                            start.elapsed()
+                        );
+
+                        match conn.close(true, 0x00, b"kthxbye") {
+                            // Already closed.
+                            Ok(_) | Err(quiche::Error::Done) => (),
+
+                            Err(e) => panic!("error closing conn: {:?}", e),
+                        }
+
+                        break;
+                    }
+                },
+
+                Err(quiche::Error::Done) => {
+                    break;
+                },
+
+                Err(e) => {
+                    error!("failure receiving DATAGRAM failure {:?}", e);
+
+                    break;
+                },
+            }
+        }
+    }
+
+    pub fn report_incomplete(&self, start: &std::time::Instant) -> bool {
+        if self.quacks_acked != self.quacks_to_make {
+            error!(
+                "connection timed out after {:?} and only received {}/{} quack-acks",
+                start.elapsed(),
+                self.quacks_acked,
+                self.quacks_to_make
+            );
+
+            return true;
+        }
+
+        false
+    }
+}
+
 /// Represents an HTTP/0.9 formatted request.
 pub struct Http09Request {
     url: url::Url,
@@ -279,6 +532,8 @@
     cardinal: u64,
     stream_id: Option<u64>,
     hdrs: Vec<quiche::h3::Header>,
+    response_hdrs: Vec<quiche::h3::Header>,
+    response_body: Vec<u8>,
     response_writer: Option<std::io::BufWriter<std::fs::File>>,
 }
 
@@ -428,7 +683,7 @@
         }
     }
 
-    fn report_incomplete(&self, start: &std::time::Instant) {
+    fn report_incomplete(&self, start: &std::time::Instant) -> bool {
         if self.reqs_complete != self.reqs.len() {
             error!(
                 "connection timed out after {:?} and only completed {}/{} requests",
@@ -436,7 +691,11 @@
                 self.reqs_complete,
                 self.reqs.len()
             );
+
+            return true;
         }
+
+        false
     }
 
     fn handle_requests(
@@ -579,18 +838,41 @@
     }
 }
 
+pub struct Http3DgramSender {
+    dgram_count: u64,
+    pub dgram_content: String,
+    pub flow_id: u64,
+    pub dgrams_sent: u64,
+}
+
+impl Http3DgramSender {
+    pub fn new(dgram_count: u64, dgram_content: String, flow_id: u64) -> Self {
+        Self {
+            dgram_count,
+            dgram_content,
+            flow_id,
+            dgrams_sent: 0,
+        }
+    }
+}
+
 pub struct Http3Conn {
     h3_conn: quiche::h3::Connection,
     reqs_sent: usize,
     reqs_complete: usize,
+    largest_processed_request: u64,
     reqs: Vec<Http3Request>,
     body: Option<Vec<u8>>,
+    dump_json: bool,
+    dgram_sender: Option<Http3DgramSender>,
 }
 
 impl Http3Conn {
+    #[allow(clippy::too_many_arguments)]
     pub fn with_urls(
         conn: &mut quiche::Connection, urls: &[url::Url], reqs_cardinal: u64,
         req_headers: &[String], body: &Option<Vec<u8>>, method: &str,
+        dump_json: bool, dgram_sender: Option<Http3DgramSender>,
     ) -> Box<dyn HttpConn> {
         let mut reqs = Vec::new();
         for url in urls {
@@ -637,6 +919,8 @@
                     url: url.clone(),
                     cardinal: i,
                     hdrs,
+                    response_hdrs: Vec::new(),
+                    response_body: Vec::new(),
                     stream_id: None,
                     response_writer: None,
                 });
@@ -651,14 +935,19 @@
             .unwrap(),
             reqs_sent: 0,
             reqs_complete: 0,
+            largest_processed_request: 0,
             reqs,
             body: body.as_ref().map(|b| b.to_vec()),
+            dump_json,
+            dgram_sender,
         };
 
         Box::new(h_conn)
     }
 
-    pub fn with_conn(conn: &mut quiche::Connection) -> Box<dyn HttpConn> {
+    pub fn with_conn(
+        conn: &mut quiche::Connection, dgram_sender: Option<Http3DgramSender>,
+    ) -> Box<dyn HttpConn> {
         let h_conn = Http3Conn {
             h3_conn: quiche::h3::Connection::with_transport(
                 conn,
@@ -667,8 +956,11 @@
             .unwrap(),
             reqs_sent: 0,
             reqs_complete: 0,
+            largest_processed_request: 0,
             reqs: Vec::new(),
             body: None,
+            dump_json: false,
+            dgram_sender,
         };
 
         Box::new(h_conn)
@@ -677,12 +969,13 @@
     /// Builds an HTTP/3 response given a request.
     fn build_h3_response(
         root: &str, index: &str, request: &[quiche::h3::Header],
-    ) -> (Vec<quiche::h3::Header>, Vec<u8>) {
+    ) -> (Vec<quiche::h3::Header>, Vec<u8>, String) {
         let mut file_path = path::PathBuf::from(root);
         let mut scheme = "";
         let mut host = "";
         let mut path = "";
         let mut method = "";
+        let mut priority = "";
 
         // Parse some of the request headers.
         for hdr in request {
@@ -703,6 +996,10 @@
                     method = hdr.value();
                 },
 
+                "priority" => {
+                    priority = hdr.value();
+                },
+
                 _ => (),
             }
         }
@@ -713,7 +1010,7 @@
                 quiche::h3::Header::new("server", "quiche"),
             ];
 
-            return (headers, b"Invalid scheme".to_vec());
+            return (headers, b"Invalid scheme".to_vec(), priority.to_string());
         }
 
         let url = format!("{}://{}{}", scheme, host, path);
@@ -722,6 +1019,23 @@
         let pathbuf = path::PathBuf::from(url.path());
         let pathbuf = autoindex(pathbuf, index);
 
+        // Priority query string takes precedence over the header.
+        // So replace the header with one built here.
+        let mut query_priority = "".to_string();
+        for param in url.query_pairs() {
+            if param.0 == "u" {
+                query_priority.push_str(&format!("{}={},", param.0, param.1));
+            }
+
+            if param.0 == "i" && param.1 == "1" {
+                query_priority.push_str("i,");
+            }
+        }
+
+        if !query_priority.is_empty() {
+            priority = &query_priority;
+        }
+
         let (status, body) = match method {
             "GET" => {
                 for c in pathbuf.components() {
@@ -744,9 +1058,10 @@
             quiche::h3::Header::new(":status", &status.to_string()),
             quiche::h3::Header::new("server", "quiche"),
             quiche::h3::Header::new("content-length", &body.len().to_string()),
+            quiche::h3::Header::new("priority", &priority),
         ];
 
-        (headers, body)
+        (headers, body, priority.to_string())
     }
 }
 
@@ -799,6 +1114,35 @@
         }
 
         self.reqs_sent += reqs_done;
+
+        if let Some(ds) = self.dgram_sender.as_mut() {
+            let mut dgrams_done = 0;
+
+            for _ in ds.dgrams_sent..ds.dgram_count {
+                info!(
+                    "sending HTTP/3 DATAGRAM on flow_id={} with data {:?}",
+                    ds.flow_id,
+                    ds.dgram_content.as_bytes()
+                );
+
+                match self.h3_conn.send_dgram(
+                    conn,
+                    0,
+                    ds.dgram_content.as_bytes(),
+                ) {
+                    Ok(v) => v,
+
+                    Err(e) => {
+                        error!("failed to send dgram {:?}", e);
+                        break;
+                    },
+                }
+
+                dgrams_done += 1;
+            }
+
+            ds.dgrams_sent += dgrams_done;
+        }
     }
 
     fn handle_responses(
@@ -812,6 +1156,14 @@
                         "got response headers {:?} on stream id {}",
                         list, stream_id
                     );
+
+                    let req = self
+                        .reqs
+                        .iter_mut()
+                        .find(|r| r.stream_id == Some(stream_id))
+                        .unwrap();
+
+                    req.response_hdrs = list;
                 },
 
                 Ok((stream_id, quiche::h3::Event::Data)) => {
@@ -828,16 +1180,25 @@
                             .find(|r| r.stream_id == Some(stream_id))
                             .unwrap();
 
+                        let len = std::cmp::min(
+                            read,
+                            MAX_JSON_DUMP_PAYLOAD - req.response_body.len(),
+                        );
+                        req.response_body.extend_from_slice(&buf[..len]);
+
                         match &mut req.response_writer {
                             Some(rw) => {
                                 rw.write_all(&buf[..read]).ok();
                             },
 
-                            None => {
-                                print!("{}", unsafe {
-                                    std::str::from_utf8_unchecked(&buf[..read])
-                                });
-                            },
+                            None =>
+                                if !self.dump_json {
+                                    print!("{}", unsafe {
+                                        std::str::from_utf8_unchecked(
+                                            &buf[..read],
+                                        )
+                                    });
+                                },
                         }
                     }
                 },
@@ -859,6 +1220,10 @@
                             req_start.elapsed()
                         );
 
+                        if self.dump_json {
+                            dump_json(&self.reqs);
+                        }
+
                         match conn.close(true, 0x00, b"kthxbye") {
                             // Already closed.
                             Ok(_) | Err(quiche::Error::Done) => (),
@@ -870,6 +1235,26 @@
                     }
                 },
 
+                Ok((_flow_id, quiche::h3::Event::Datagram)) => {
+                    let (len, flow_id, flow_id_len) =
+                        self.h3_conn.recv_dgram(conn, buf).unwrap();
+
+                    info!(
+                        "Received DATAGRAM flow_id={} len={} data={:?}",
+                        flow_id,
+                        len,
+                        buf[flow_id_len..len].to_vec()
+                    );
+                },
+
+                Ok((goaway_id, quiche::h3::Event::GoAway)) => {
+                    info!(
+                        "{} got GOAWAY with ID {} ",
+                        conn.trace_id(),
+                        goaway_id
+                    );
+                },
+
                 Err(quiche::h3::Error::Done) => {
                     break;
                 },
@@ -883,7 +1268,7 @@
         }
     }
 
-    fn report_incomplete(&self, start: &std::time::Instant) {
+    fn report_incomplete(&self, start: &std::time::Instant) -> bool {
         if self.reqs_complete != self.reqs.len() {
             error!(
                 "connection timed out after {:?} and only completed {}/{} requests",
@@ -891,14 +1276,22 @@
                 self.reqs_complete,
                 self.reqs.len()
             );
+
+            if self.dump_json {
+                dump_json(&self.reqs);
+            }
+
+            return true;
         }
+
+        false
     }
 
     fn handle_requests(
         &mut self, conn: &mut std::pin::Pin<Box<quiche::Connection>>,
         _partial_requests: &mut HashMap<u64, PartialRequest>,
         partial_responses: &mut HashMap<u64, PartialResponse>, root: &str,
-        index: &str, _buf: &mut [u8],
+        index: &str, buf: &mut [u8],
     ) -> quiche::h3::Result<()> {
         // Process HTTP events.
         loop {
@@ -911,6 +1304,9 @@
                         stream_id
                     );
 
+                    self.largest_processed_request =
+                        std::cmp::max(self.largest_processed_request, stream_id);
+
                     // We decide the response based on headers alone, so
                     // stop reading the request stream so that any body
                     // is ignored and pointless Data events are not
@@ -918,13 +1314,12 @@
                     conn.stream_shutdown(stream_id, quiche::Shutdown::Read, 0)
                         .unwrap();
 
-                    let (headers, body) =
+                    let (headers, body, priority) =
                         Http3Conn::build_h3_response(root, index, &list);
 
-                    match self
-                        .h3_conn
-                        .send_response(conn, stream_id, &headers, false)
-                    {
+                    match self.h3_conn.send_response_with_priority(
+                        conn, stream_id, &headers, &priority, false,
+                    ) {
                         Ok(v) => v,
 
                         Err(quiche::h3::Error::StreamBlocked) => {
@@ -955,6 +1350,8 @@
                     {
                         Ok(v) => v,
 
+                        Err(quiche::h3::Error::Done) => 0,
+
                         Err(e) => {
                             error!(
                                 "{} stream send failed {:?}",
@@ -987,6 +1384,27 @@
 
                 Ok((_stream_id, quiche::h3::Event::Finished)) => (),
 
+                Ok((_, quiche::h3::Event::Datagram)) => {
+                    let (len, flow_id, flow_id_len) =
+                        self.h3_conn.recv_dgram(conn, buf).unwrap();
+
+                    info!(
+                        "Received DATAGRAM flow_id={} data={:?}",
+                        flow_id,
+                        &buf[flow_id_len..len].to_vec()
+                    );
+                },
+
+                Ok((goaway_id, quiche::h3::Event::GoAway)) => {
+                    trace!(
+                        "{} got GOAWAY with ID {} ",
+                        conn.trace_id(),
+                        goaway_id
+                    );
+                    self.h3_conn
+                        .send_goaway(conn, self.largest_processed_request)?;
+                },
+
                 Err(quiche::h3::Error::Done) => {
                     break;
                 },
@@ -999,6 +1417,35 @@
             }
         }
 
+        if let Some(ds) = self.dgram_sender.as_mut() {
+            let mut dgrams_done = 0;
+
+            for _ in ds.dgrams_sent..ds.dgram_count {
+                info!(
+                    "sending HTTP/3 DATAGRAM on flow_id={} with data {:?}",
+                    ds.flow_id,
+                    ds.dgram_content.as_bytes()
+                );
+
+                match self.h3_conn.send_dgram(
+                    conn,
+                    0,
+                    ds.dgram_content.as_bytes(),
+                ) {
+                    Ok(v) => v,
+
+                    Err(e) => {
+                        error!("failed to send dgram {:?}", e);
+                        break;
+                    },
+                }
+
+                dgrams_done += 1;
+            }
+
+            ds.dgrams_sent += dgrams_done;
+        }
+
         Ok(())
     }
 
@@ -1036,6 +1483,10 @@
         let written = match self.h3_conn.send_body(conn, stream_id, body, true) {
             Ok(v) => v,
 
+            Err(quiche::h3::Error::Done) => {
+                return;
+            },
+
             Err(e) => {
                 error!("{} stream send failed {:?}", conn.trace_id(), e);
                 return;
diff --git a/tools/http3_test/src/runner.rs b/tools/http3_test/src/runner.rs
index 5f4d2b0..7befde1 100644
--- a/tools/http3_test/src/runner.rs
+++ b/tools/http3_test/src/runner.rs
@@ -91,7 +91,7 @@
         .unwrap();
 
     config.set_max_idle_timeout(idle_timeout);
-    config.set_max_packet_size(MAX_DATAGRAM_SIZE as u64);
+    config.set_max_udp_payload_size(MAX_DATAGRAM_SIZE as u64);
     config.set_initial_max_data(max_data);
     config.set_initial_max_stream_data_bidi_local(max_stream_data);
     config.set_initial_max_stream_data_bidi_remote(max_stream_data);
@@ -273,6 +273,10 @@
                         }
                     },
 
+                    Ok((_flow_id, quiche::h3::Event::Datagram)) => (),
+
+                    Ok((_goaway_id, quiche::h3::Event::GoAway)) => (),
+
                     Err(quiche::h3::Error::Done) => {
                         break;
                     },
diff --git a/tools/qlog/src/event.rs b/tools/qlog/src/event.rs
index ddc2278..5748bf8 100644
--- a/tools/qlog/src/event.rs
+++ b/tools/qlog/src/event.rs
@@ -919,18 +919,15 @@
             (
                 EventCategory::Connectivity,
                 EventType::ConnectivityEventType(_),
-            ) => match &self.data {
+            ) => matches!(&self.data,
                 EventData::ServerListening { .. } |
                 EventData::ConnectionStarted { .. } |
                 EventData::ConnectionIdUpdated { .. } |
                 EventData::SpinBitUpdated { .. } |
-                EventData::ConnectionStateUpdated { .. } => true,
-
-                _ => false,
-            },
+                EventData::ConnectionStateUpdated { .. }),
 
             (EventCategory::Transport, EventType::TransportEventType(_)) =>
-                match &self.data {
+                matches!(&self.data,
                     EventData::TransportParametersSet { .. } |
                     EventData::DatagramsReceived { .. } |
                     EventData::DatagramsSent { .. } |
@@ -940,70 +937,50 @@
                     EventData::PacketDropped { .. } |
                     EventData::PacketBuffered { .. } |
                     EventData::StreamStateUpdated { .. } |
-                    EventData::FramesProcessed { .. } => true,
-
-                    _ => false,
-                },
+                    EventData::FramesProcessed { .. }),
 
             (EventCategory::Security, EventType::SecurityEventType(_)) =>
-                match &self.data {
+                matches!(&self.data,
                     EventData::KeyUpdated { .. } |
-                    EventData::KeyRetired { .. } => true,
-
-                    _ => false,
-                },
+                    EventData::KeyRetired { .. }),
 
             (EventCategory::Recovery, EventType::RecoveryEventType(_)) =>
-                match &self.data {
+                matches!(&self.data,
                     EventData::RecoveryParametersSet { .. } |
                     EventData::MetricsUpdated { .. } |
                     EventData::CongestionStateUpdated { .. } |
                     EventData::LossTimerSet { .. } |
                     EventData::PacketLost { .. } |
-                    EventData::MarkedForRetransmit { .. } => true,
+                    EventData::MarkedForRetransmit { .. }),
 
-                    _ => false,
-                },
-
-            (EventCategory::Http, EventType::Http3EventType(_)) => {
-                match &self.data {
+            (EventCategory::Http, EventType::Http3EventType(_)) =>
+                matches!(&self.data,
                     EventData::H3ParametersSet { .. } |
                     EventData::H3StreamTypeSet { .. } |
                     EventData::H3FrameCreated { .. } |
                     EventData::H3FrameParsed { .. } |
                     EventData::H3DataMoved { .. } |
-                    EventData::H3PushResolved { .. } => true,
+                    EventData::H3PushResolved { .. }),
 
-                    _ => false,
-                }
-            },
-
-            (EventCategory::Qpack, EventType::QpackEventType(_)) => {
-                match &self.data {
+            (EventCategory::Qpack, EventType::QpackEventType(_)) =>
+                matches!(&self.data,
                     EventData::QpackStateUpdated { .. } |
                     EventData::QpackStreamStateUpdated { .. } |
                     EventData::QpackDynamicTableUpdated { .. } |
                     EventData::QpackHeadersEncoded { .. } |
                     EventData::QpackHeadersDecoded { .. } |
                     EventData::QpackInstructionSent { .. } |
-                    EventData::QpackInstructionReceived { .. } => true,
-
-                    _ => false,
-                }
-            },
+                    EventData::QpackInstructionReceived { .. }),
 
             // TODO: in qlog-01 there is no sane default category defined for
             // GenericEventType
-            (_, EventType::GenericEventType(_)) => match &self.data {
+            (_, EventType::GenericEventType(_)) => matches!(&self.data,
                 EventData::ConnectionError { .. } |
                 EventData::ApplicationError { .. } |
                 EventData::InternalError { .. } |
                 EventData::InternalWarning { .. } |
                 EventData::Message { .. } |
-                EventData::Marker { .. } => true,
-
-                _ => false,
-            },
+                EventData::Marker { .. }),
 
             _ => false,
         }
diff --git a/tools/qns/run_endpoint.sh b/tools/qns/run_endpoint.sh
index 4f044ac..302e2f6 100755
--- a/tools/qns/run_endpoint.sh
+++ b/tools/qns/run_endpoint.sh
@@ -14,8 +14,8 @@
 DOWNLOAD_DIR=/downloads
 QUICHE_CLIENT=quiche-client
 QUICHE_SERVER=quiche-server
-QUICHE_CLIENT_OPT="--no-verify --dump-responses ${DOWNLOAD_DIR}"
-QUICHE_SERVER_OPT_COMMON="--cert examples/cert.crt --key examples/cert.key"
+QUICHE_CLIENT_OPT="--no-verify --dump-responses ${DOWNLOAD_DIR} --wire-version ff00001d"
+QUICHE_SERVER_OPT_COMMON="--listen [::]:443 --root $WWW_DIR --cert /certs/cert.pem --key /certs/priv.key"
 QUICHE_SERVER_OPT="$QUICHE_SERVER_OPT_COMMON --no-retry "
 LOG_DIR=/logs
 LOG=$LOG_DIR/log.txt
@@ -29,7 +29,15 @@
         ;;
     transfer )
         echo "supported"
-        RUST_LOG="info"
+        ;;
+    chacha20 )
+        if [ "$ROLE" == "client" ]; then
+            # We don't support selecting a cipher on the client-side.
+            echo "unsupported"
+            exit 127
+        elif [ "$ROLE" == "server" ]; then
+            echo "supported"
+        fi
         ;;
     resumption | zerortt )
         if [ "$ROLE" == "client" ]; then
@@ -74,8 +82,7 @@
 }
 
 run_quiche_server_tests() {
-    $QUICHE_DIR/$QUICHE_SERVER --listen 0.0.0.0:443 --root $WWW_DIR \
-        $SERVER_PARAMS $QUICHE_SERVER_OPT >& $LOG
+    $QUICHE_DIR/$QUICHE_SERVER $SERVER_PARAMS $QUICHE_SERVER_OPT >& $LOG
 }
 
 # Update config based on test case