diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,16 @@
+## 1.6.3
+
+* Fixing two bugs of HPACK pointed out by h2spec v2.
+
+## 1.6.2
+
+* Improving the performance of HPACK.
+* Huffman encoding is now based on H2O's one.
+
+## 1.6.1
+
+* Improving the performance of HPACK.
+
 ## 1.6.0
 
 * Reverse indices of HPACK are now based on tokens.
diff --git a/Network/HPACK/Table/Dynamic.hs b/Network/HPACK/Table/Dynamic.hs
--- a/Network/HPACK/Table/Dynamic.hs
+++ b/Network/HPACK/Table/Dynamic.hs
@@ -385,6 +385,8 @@
 toDynamicEntry DynamicTable{..} idx = do
     !maxN <- readIORef maxNumOfEntries
     !off <- readIORef offset
+    !n <- readIORef numOfEntries
+    when (idx > n + staticTableSize) $ throwIO $ IndexOverrun idx
     !didx <- adj maxN (idx + off - staticTableSize)
     !table <- readIORef circularTable
     unsafeRead table didx
diff --git a/Network/HTTP2/Types.hs b/Network/HTTP2/Types.hs
--- a/Network/HTTP2/Types.hs
+++ b/Network/HTTP2/Types.hs
@@ -77,6 +77,7 @@
 import qualified Control.Exception as E
 import Data.Bits (setBit, testBit, clearBit)
 import Data.ByteString (ByteString)
+import Data.List (foldl')
 import Data.Maybe (mapMaybe)
 import Data.Typeable
 import Data.Word (Word8, Word16, Word32)
@@ -276,15 +277,15 @@
 -- >>> updateSettings defaultSettings [(SettingsEnablePush,0),(SettingsMaxHeaderBlockSize,200)]
 -- Settings {headerTableSize = 4096, enablePush = False, maxConcurrentStreams = Nothing, initialWindowSize = 65535, maxFrameSize = 16384, maxHeaderBlockSize = Just 200}
 updateSettings :: Settings -> SettingsList -> Settings
-updateSettings settings kvs = foldr update settings kvs
+updateSettings settings kvs = foldl' update settings kvs
   where
-    update (SettingsHeaderTableSize,x)      def = def { headerTableSize = x }
+    update def (SettingsHeaderTableSize,x)      = def { headerTableSize = x }
     -- fixme: x should be 0 or 1
-    update (SettingsEnablePush,x)           def = def { enablePush = x > 0 }
-    update (SettingsMaxConcurrentStreams,x) def = def { maxConcurrentStreams = Just x }
-    update (SettingsInitialWindowSize,x)    def = def { initialWindowSize = x }
-    update (SettingsMaxFrameSize,x)         def = def { maxFrameSize = x }
-    update (SettingsMaxHeaderBlockSize,x)   def = def { maxHeaderBlockSize = Just x }
+    update def (SettingsEnablePush,x)           = def { enablePush = x > 0 }
+    update def (SettingsMaxConcurrentStreams,x) = def { maxConcurrentStreams = Just x }
+    update def (SettingsInitialWindowSize,x)    = def { initialWindowSize = x }
+    update def (SettingsMaxFrameSize,x)         = def { maxFrameSize = x }
+    update def (SettingsMaxHeaderBlockSize,x)   = def { maxHeaderBlockSize = Just x }
 
 -- | The type for window size.
 type WindowSize = Int
diff --git a/http2.cabal b/http2.cabal
--- a/http2.cabal
+++ b/http2.cabal
@@ -1,11 +1,12 @@
 Name:                   http2
-Version:                1.6.2
+Version:                1.6.3
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
 License-File:           LICENSE
-Synopsis:               HTTP/2.0 library including frames and HPACK
-Description:            HTTP/2.0 library including frames and HPACK.
+Synopsis:               HTTP/2 library including frames, priority queues and HPACK
+Description:            HTTP/2 library including frames, priority queues and HPACK.
+Homepage:               https://github.com/kazu-yamamoto/http2
 Category:               Network
 Cabal-Version:          >= 1.10
 Build-Type:             Simple
@@ -284,7 +285,6 @@
                       , heaps
                       , mwc-random
                       , psqueues
-                      , random
                       , stm
 
 Benchmark header-compression
diff --git a/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_26.json b/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_26.json
--- a/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_26.json
+++ b/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_26.json
@@ -623,7 +623,7 @@
         },
         {
             "seqno": 14,
-            "wire": "8858bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58015f87352398ac4c697f6495df3dbf4a05486bb141000d2800dc006e002a62d1bf6c95df3dbf4a05486bb141000d2800dc006e000a62d1bf4085aec1cd48ff86a8eb10649cbf4089f2b4b1ad495361888f9dfffdfcf8fe6e36cfd7f367f3704e7d7f3dbf9b80fafe47fcdc137ffeff4089f2b4b1ac82d9dcb67f88081775a5de7d71334088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f6196dc34fd280654d27eea0801128115c6c171b694c5a37f408721eaa8a4498f5788ea52d6b0e83772ff0f0d82699f",
+            "wire": "8858bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58015f87352398ac4c697f6495df3dbf4a05486bb141000d2800dc006e002a62d1bf6c95df3dbf4a05486bb141000d2800dc006e000a62d1bf4085aec1cd48ff86a8eb10649cbf4089f2b4b1ad495361888f1c7b2277223a35332c2272223a32362c2271223a302c2261223a32357d4089f2b4b1ac82d9dcb67f88081775a5de7d71334088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f6196dc34fd280654d27eea0801128115c6c171b694c5a37f408721eaa8a4498f5788ea52d6b0e83772ff0f0d82699f",
             "headers": [
                 {
                     ":status": "200"
@@ -1754,7 +1754,7 @@
         },
         {
             "seqno": 39,
-            "wire": "88ca5f88352398ac74acb37fcac9c84089f2b4b1ad495361888f9dfffdfcf8fe6e32cfd7f367f3702d7d7f3dbf9b80fafe47fcdc13bffeff4089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff4088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483fc7c20f0d84081965af5a839bd9ab",
+            "wire": "88ca5f88352398ac74acb37fcac9c84089f2b4b1ad495361888f1c7b2277223a33332c2272223a31342c2271223a302c2261223a32377d4089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff4088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483fc7c20f0d84081965af5a839bd9ab",
             "headers": [
                 {
                     ":status": "200"
@@ -1799,7 +1799,7 @@
         },
         {
             "seqno": 40,
-            "wire": "88cfc2cecdcc4089f2b4b1ad495361888f9dfffdfcf8fe6e34efd7f367f3704efd7f3dbf9b80fafe47fcdc135ffeff4089f2b4b1ac82d9dcb67f8908170b8d2e110576db4088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0fcbc60f0d8475f005ffc1",
+            "wire": "88cfc2cecdcc4089f2b4b1ad495361888f1c7b2277223a34372c2272223a32372c2271223a302c2261223a32347d4089f2b4b1ac82d9dcb67f8908170b8d2e110576db4088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0fcbc60f0d8475f005ffc1",
             "headers": [
                 {
                     ":status": "200"
diff --git a/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_29.json b/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_29.json
--- a/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_29.json
+++ b/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_29.json
@@ -29,7 +29,7 @@
         },
         {
             "seqno": 1,
-            "wire": "88588da8eb10649cbf4a54759093d85f4085aec1cd48ff86a8eb10649cbf5f92497ca589d34d1f6a1271d882a60b532acf7f5a839bd9ab7b8b84842d695b05443c86aa6f4083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28d0ddb6f63e1bb6c10f0dfab6e0bf936c00f8c583571876c1f17f55d804008821033f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb827d4c5a37fda921e919aa817a5152e43d3f6a5634cf031408a2d961ec21e4290f6d49f86ffd82e03ff9f4081478bbda99dd7b180200080100740892c9315621ea4d87a3f86a8eb2127b0bf6196dc34fd280654d27eea0801128166e09fb82794c5a37f0f0d84682e34f7",
+            "wire": "88588da8eb10649cbf4a54759093d85f4085aec1cd48ff86a8eb10649cbf5f92497ca589d34d1f6a1271d882a60b532acf7f5a839bd9ab7b8b84842d695b05443c86aa6f4083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28d0ddb6f63e1bb6c10f0dfab6e0bf936c00f8c583571876c1f17f55d804008821033f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb827d4c5a37fda921e919aa817a5152e43d3f6a5634cf031408a2d961ec21e4290f6d49f055b303a305d4081478bbda99dd7b180200080100740892c9315621ea4d87a3f86a8eb2127b0bf6196dc34fd280654d27eea0801128166e09fb82794c5a37f0f0d84682e34f7",
             "headers": [
                 {
                     ":status": "200"
@@ -2039,7 +2039,7 @@
         },
         {
             "seqno": 41,
-            "wire": "88588da8eb10649cbf4a54759093d85fc35f92497ca589d34d1f6a1271d882a60b532acf7fc07b8b84842d695b05443c86aa6f4083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28cdddb6f63bf068dd009b69c744ffc5f804db4e3a27fe21c3069d58756dd1f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb8c814c5a37fda921e919aa817a5152e43d3f6a5634cf031f408a2d961ec21e4290f6d49f86ffd82e03ff9f4081478cbda99dd7b180200b2c800fff40892c9315621ea4d87a3f86a8eb2127b0bfca0f0d83105f77",
+            "wire": "88588da8eb10649cbf4a54759093d85fc35f92497ca589d34d1f6a1271d882a60b532acf7fc07b8b84842d695b05443c86aa6f4083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28cdddb6f63bf068dd009b69c744ffc5f804db4e3a27fe21c3069d58756dd1f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb8c814c5a37fda921e919aa817a5152e43d3f6a5634cf031f408a2d961ec21e4290f6d49f055b303a305d4081478cbda99dd7b180200b2c800fff40892c9315621ea4d87a3f86a8eb2127b0bfca0f0d83105f77",
             "headers": [
                 {
                     ":status": "200"
@@ -2765,7 +2765,7 @@
         },
         {
             "seqno": 58,
-            "wire": "88588da8eb10649cbf4a54759093d85fc55f92497ca589d34d1f6a1271d882a60b532acf7fd0ce4083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28d1ddb6f63bf06ed1007e346e804db4e3a27fe2fc026da71d13ff10e1834eac3ab6e8fb50be6b3585441a0f57d280656d27eeb08016940b3704fdc642a62d1bfed490f48cd540bd28a9721e9fb52b1a67818f408a2d961ec21e4290f6d49f86ffd82e03ff9f4081478bbda99dd7b180200880113d40892c9315621ea4d87a3f86a8eb2127b0bfc40f0d830b8e8b",
+            "wire": "88588da8eb10649cbf4a54759093d85fc55f92497ca589d34d1f6a1271d882a60b532acf7fd0ce4083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28d1ddb6f63bf06ed1007e346e804db4e3a27fe2fc026da71d13ff10e1834eac3ab6e8fb50be6b3585441a0f57d280656d27eeb08016940b3704fdc642a62d1bfed490f48cd540bd28a9721e9fb52b1a67818f408a2d961ec21e4290f6d49f055b303a305d4081478bbda99dd7b180200880113d40892c9315621ea4d87a3f86a8eb2127b0bfc40f0d830b8e8b",
             "headers": [
                 {
                     ":status": "200"
diff --git a/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_31.json b/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_31.json
--- a/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_31.json
+++ b/test-hpack/hpack-test-case/haskell-http2-linear-huffman/story_31.json
@@ -623,7 +623,7 @@
         },
         {
             "seqno": 14,
-            "wire": "0f0d82699f884089f2b4b1ad495361888f9dfffdfcf8fe6e36cfd7f367f3704e7d7f3dbf9b80fafe47fcdc137ffeff6495df3dbf4a05486bb141000d2800dc006e002a62d1bf4089f2b4b1ac82d9dcb67f88081775a5de7d71336c95df3dbf4a05486bb141000d2800dc006e000a62d1bf408721eaa8a4498f5788ea52d6b0e83772ff4085aec1cd48ff86a8eb10649cbf58bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58016196dc34fd280654d27eea0801128115c6c171b694c5a37f5f87352398ac4c697f4088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f",
+            "wire": "0f0d82699f884089f2b4b1ad495361888f1c7b2277223a35332c2272223a32362c2271223a302c2261223a32357d6495df3dbf4a05486bb141000d2800dc006e002a62d1bf4089f2b4b1ac82d9dcb67f88081775a5de7d71336c95df3dbf4a05486bb141000d2800dc006e000a62d1bf408721eaa8a4498f5788ea52d6b0e83772ff4085aec1cd48ff86a8eb10649cbf58bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58016196dc34fd280654d27eea0801128115c6c171b694c5a37f5f87352398ac4c697f4088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f",
             "headers": [
                 {
                     "content-length": "43"
@@ -1754,7 +1754,7 @@
         },
         {
             "seqno": 39,
-            "wire": "0f0d84081965af5a839bd9ab4089f2b4b1ad495361888f9dfffdfcf8fe6e32cfd7f367f3702d7d7f3dbf9b80fafe47fcdc13bffeffcb4089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff88cac3c9c8c75f88352398ac74acb37f4088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483f",
+            "wire": "0f0d84081965af5a839bd9ab4089f2b4b1ad495361888f1c7b2277223a33332c2272223a31342c2271223a302c2261223a32377dcb4089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff88cac3c9c8c75f88352398ac74acb37f4088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483f",
             "headers": [
                 {
                     "content-length": "10334"
@@ -1799,7 +1799,7 @@
         },
         {
             "seqno": 40,
-            "wire": "0f0d8475f005ffc24089f2b4b1ad495361888f9dfffdfcf8fe6e34efd7f367f3704efd7f3dbf9b80fafe47fcdc135ffeffcf4089f2b4b1ac82d9dcb67f8908170b8d2e110576db88cec7cdcccbc14088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0f",
+            "wire": "0f0d8475f005ffc24089f2b4b1ad495361888f1c7b2277223a34372c2272223a32372c2271223a302c2261223a32347dcf4089f2b4b1ac82d9dcb67f8908170b8d2e110576db88cec7cdcccbc14088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0f",
             "headers": [
                 {
                     "content-length": "79019"
diff --git a/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_26.json b/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_26.json
--- a/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_26.json
+++ b/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_26.json
@@ -623,7 +623,7 @@
         },
         {
             "seqno": 14,
-            "wire": "0085b8848d36a3821001008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008921ea496a4ac9f5597f87352398ac4c697f00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f9dfffdfcf8fe6e36cfd7f367f3704e7d7f3dbf9b80fafe47fcdc137ffeff0089f2b4b1ac82d9dcb67f88081775a5de7d71330088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f008390692f96dc34fd280654d27eea0801128115c6c171b694c5a37f008721eaa8a4498f5788ea52d6b0e83772ff008a21ea496a4ad416a9933f82699f",
+            "wire": "0085b8848d36a3821001008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008921ea496a4ac9f5597f87352398ac4c697f00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f1c7b2277223a35332c2272223a32362c2271223a302c2261223a32357d0089f2b4b1ac82d9dcb67f88081775a5de7d71330088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f008390692f96dc34fd280654d27eea0801128115c6c171b694c5a37f008721eaa8a4498f5788ea52d6b0e83772ff008a21ea496a4ad416a9933f82699f",
             "headers": [
                 {
                     ":status": "200"
@@ -1754,7 +1754,7 @@
         },
         {
             "seqno": 39,
-            "wire": "0085b8848d36a3821001008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008921ea496a4ac9f5597f88352398ac74acb37f00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f9dfffdfcf8fe6e32cfd7f367f3702d7d7f3dbf9b80fafe47fcdc13bffeff0089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff0088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483f008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff008a21ea496a4ad416a9933f84081965af008b21ea496a4ac5a88790d54d839bd9ab",
+            "wire": "0085b8848d36a3821001008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008921ea496a4ac9f5597f88352398ac74acb37f00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f1c7b2277223a33332c2272223a31342c2271223a302c2261223a32377d0089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff0088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483f008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff008a21ea496a4ad416a9933f84081965af008b21ea496a4ac5a88790d54d839bd9ab",
             "headers": [
                 {
                     ":status": "200"
@@ -1799,7 +1799,7 @@
         },
         {
             "seqno": 40,
-            "wire": "0085b8848d36a3821001008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008921ea496a4ac9f5597f88352398ac74acb37f00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f9dfffdfcf8fe6e34efd7f367f3704efd7f3dbf9b80fafe47fcdc135ffeff0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0f008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff008a21ea496a4ad416a9933f8475f005ff008b21ea496a4ac5a88790d54d839bd9ab",
+            "wire": "0085b8848d36a3821001008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008921ea496a4ac9f5597f88352398ac74acb37f00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f1c7b2277223a34372c2272223a32372c2271223a302c2261223a32347d0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0f008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff008a21ea496a4ad416a9933f8475f005ff008b21ea496a4ac5a88790d54d839bd9ab",
             "headers": [
                 {
                     ":status": "200"
@@ -1985,7 +1985,7 @@
         },
         {
             "seqno": 44,
-            "wire": "0085b8848d36a3821001008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008921ea496a4ac9f5597f87352398ac5754df00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f9dfffdfcf8fe6e34efd7f367f3704efd7f3dbf9b80fafe47fcdc135ffeff0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0088f2b4b1ad2163b66fa472fdfab46e4d536a67011aed8f8e5cf51eddec6ae9cb266e5aa766b77f02fd1e2116083f008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff008a21ea496a4ad416a9933f8271df008b21ea496a4ac5a88790d54d839bd9ab",
+            "wire": "0085b8848d36a3821001008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008921ea496a4ac9f5597f87352398ac5754df00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f1c7b2277223a34372c2272223a32372c2271223a302c2261223a32347d0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0088f2b4b1ad2163b66fa472fdfab46e4d536a67011aed8f8e5cf51eddec6ae9cb266e5aa766b77f02fd1e2116083f008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff008a21ea496a4ad416a9933f8271df008b21ea496a4ac5a88790d54d839bd9ab",
             "headers": [
                 {
                     ":status": "200"
diff --git a/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_29.json b/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_29.json
--- a/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_29.json
+++ b/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_29.json
@@ -29,7 +29,7 @@
         },
         {
             "seqno": 1,
-            "wire": "0085b8848d36a3821001008920c9395621ea4d87a38da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf008921ea496a4ac9f5597f92497ca589d34d1f6a1271d882a60b532acf7f008b21ea496a4ac5a88790d54d839bd9ab0084ee3b3d7f8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff300874152b10e7ea62fd0ddb6f63e1bb6c10f0dfab6e0bf936c00f8c583571876c1f17f55d804008821033f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb827d4c5a37fda921e919aa817a5152e43d3f6a5634cf031008a2d961ec21e4290f6d49f86ffd82e03ff9f0081478bbda99dd7b180200080100700892c9315621ea4d87a3f86a8eb2127b0bf008390692f96dc34fd280654d27eea0801128166e09fb82794c5a37f008a21ea496a4ad416a9933f84682e34f7",
+            "wire": "0085b8848d36a3821001008920c9395621ea4d87a38da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf008921ea496a4ac9f5597f92497ca589d34d1f6a1271d882a60b532acf7f008b21ea496a4ac5a88790d54d839bd9ab0084ee3b3d7f8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff300874152b10e7ea62fd0ddb6f63e1bb6c10f0dfab6e0bf936c00f8c583571876c1f17f55d804008821033f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb827d4c5a37fda921e919aa817a5152e43d3f6a5634cf031008a2d961ec21e4290f6d49f055b303a305d0081478bbda99dd7b180200080100700892c9315621ea4d87a3f86a8eb2127b0bf008390692f96dc34fd280654d27eea0801128166e09fb82794c5a37f008a21ea496a4ad416a9933f84682e34f7",
             "headers": [
                 {
                     ":status": "200"
@@ -2039,7 +2039,7 @@
         },
         {
             "seqno": 41,
-            "wire": "0085b8848d36a3821001008920c9395621ea4d87a38da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf008921ea496a4ac9f5597f92497ca589d34d1f6a1271d882a60b532acf7f008b21ea496a4ac5a88790d54d839bd9ab0084ee3b3d7f8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff300874152b10e7ea62fcdddb6f63bf068dd009b69c744ffc5f804db4e3a27fe21c3069d58756dd1f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb8c814c5a37fda921e919aa817a5152e43d3f6a5634cf031f008a2d961ec21e4290f6d49f86ffd82e03ff9f0081478cbda99dd7b180200b2c800fff00892c9315621ea4d87a3f86a8eb2127b0bf008390692f96dc34fd280654d27eea0801128166e09fb827d4c5a37f008a21ea496a4ad416a9933f83105f77",
+            "wire": "0085b8848d36a3821001008920c9395621ea4d87a38da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf008921ea496a4ac9f5597f92497ca589d34d1f6a1271d882a60b532acf7f008b21ea496a4ac5a88790d54d839bd9ab0084ee3b3d7f8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff300874152b10e7ea62fcdddb6f63bf068dd009b69c744ffc5f804db4e3a27fe21c3069d58756dd1f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb8c814c5a37fda921e919aa817a5152e43d3f6a5634cf031f008a2d961ec21e4290f6d49f055b303a305d0081478cbda99dd7b180200b2c800fff00892c9315621ea4d87a3f86a8eb2127b0bf008390692f96dc34fd280654d27eea0801128166e09fb827d4c5a37f008a21ea496a4ad416a9933f83105f77",
             "headers": [
                 {
                     ":status": "200"
@@ -2765,7 +2765,7 @@
         },
         {
             "seqno": 58,
-            "wire": "0085b8848d36a3821001008920c9395621ea4d87a38da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf008921ea496a4ac9f5597f92497ca589d34d1f6a1271d882a60b532acf7f008b21ea496a4ac5a88790d54d839bd9ab0084ee3b3d7f8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff300874152b10e7ea62fd1ddb6f63bf06ed1007e346e804db4e3a27fe2fc026da71d13ff10e1834eac3ab6e8fb50be6b3585441a0f57d280656d27eeb08016940b3704fdc642a62d1bfed490f48cd540bd28a9721e9fb52b1a67818f008a2d961ec21e4290f6d49f86ffd82e03ff9f0081478bbda99dd7b180200880113d00892c9315621ea4d87a3f86a8eb2127b0bf008390692f96dc34fd280654d27eea0801128166e09fb8c814c5a37f008a21ea496a4ad416a9933f830b8e8b",
+            "wire": "0085b8848d36a3821001008920c9395621ea4d87a38da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf008921ea496a4ac9f5597f92497ca589d34d1f6a1271d882a60b532acf7f008b21ea496a4ac5a88790d54d839bd9ab0084ee3b3d7f8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff300874152b10e7ea62fd1ddb6f63bf06ed1007e346e804db4e3a27fe2fc026da71d13ff10e1834eac3ab6e8fb50be6b3585441a0f57d280656d27eeb08016940b3704fdc642a62d1bfed490f48cd540bd28a9721e9fb52b1a67818f008a2d961ec21e4290f6d49f055b303a305d0081478bbda99dd7b180200880113d00892c9315621ea4d87a3f86a8eb2127b0bf008390692f96dc34fd280654d27eea0801128166e09fb8c814c5a37f008a21ea496a4ad416a9933f830b8e8b",
             "headers": [
                 {
                     ":status": "200"
diff --git a/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_31.json b/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_31.json
--- a/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_31.json
+++ b/test-hpack/hpack-test-case/haskell-http2-naive-huffman/story_31.json
@@ -623,7 +623,7 @@
         },
         {
             "seqno": 14,
-            "wire": "008a21ea496a4ad416a9933f82699f0085b8848d36a38210010089f2b4b1ad495361888f9dfffdfcf8fe6e36cfd7f367f3704e7d7f3dbf9b80fafe47fcdc137ffeff00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f88081775a5de7d71330089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008390692f96dc34fd280654d27eea0801128115c6c171b694c5a37f008921ea496a4ac9f5597f87352398ac4c697f0088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f",
+            "wire": "008a21ea496a4ad416a9933f82699f0085b8848d36a38210010089f2b4b1ad495361888f1c7b2277223a35332c2272223a32362c2271223a302c2261223a32357d00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f88081775a5de7d71330089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008390692f96dc34fd280654d27eea0801128115c6c171b694c5a37f008921ea496a4ac9f5597f87352398ac4c697f0088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f",
             "headers": [
                 {
                     "content-length": "43"
@@ -1754,7 +1754,7 @@
         },
         {
             "seqno": 39,
-            "wire": "008a21ea496a4ad416a9933f84081965af008b21ea496a4ac5a88790d54d839bd9ab0089f2b4b1ad495361888f9dfffdfcf8fe6e32cfd7f367f3702d7d7f3dbf9b80fafe47fcdc13bffeff00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff0085b8848d36a38210010089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008921ea496a4ac9f5597f88352398ac74acb37f0088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483f",
+            "wire": "008a21ea496a4ad416a9933f84081965af008b21ea496a4ac5a88790d54d839bd9ab0089f2b4b1ad495361888f1c7b2277223a33332c2272223a31342c2271223a302c2261223a32377d00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff0085b8848d36a38210010089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008921ea496a4ac9f5597f88352398ac74acb37f0088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483f",
             "headers": [
                 {
                     "content-length": "10334"
@@ -1799,7 +1799,7 @@
         },
         {
             "seqno": 40,
-            "wire": "008a21ea496a4ad416a9933f8475f005ff008b21ea496a4ac5a88790d54d839bd9ab0089f2b4b1ad495361888f9dfffdfcf8fe6e34efd7f367f3704efd7f3dbf9b80fafe47fcdc135ffeff00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0085b8848d36a38210010089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008921ea496a4ac9f5597f88352398ac74acb37f0088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0f",
+            "wire": "008a21ea496a4ad416a9933f8475f005ff008b21ea496a4ac5a88790d54d839bd9ab0089f2b4b1ad495361888f1c7b2277223a34372c2272223a32372c2271223a302c2261223a32347d00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0085b8848d36a38210010089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008921ea496a4ac9f5597f88352398ac74acb37f0088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0f",
             "headers": [
                 {
                     "content-length": "79019"
@@ -1985,7 +1985,7 @@
         },
         {
             "seqno": 44,
-            "wire": "008a21ea496a4ad416a9933f8271df008b21ea496a4ac5a88790d54d839bd9ab0089f2b4b1ad495361888f9dfffdfcf8fe6e34efd7f367f3704efd7f3dbf9b80fafe47fcdc135ffeff00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0085b8848d36a38210010089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008921ea496a4ac9f5597f87352398ac5754df0088f2b4b1ad2163b66fa472fdfab46e4d536a67011aed8f8e5cf51eddec6ae9cb266e5aa766b77f02fd1e2116083f",
+            "wire": "008a21ea496a4ad416a9933f8271df008b21ea496a4ac5a88790d54d839bd9ab0089f2b4b1ad495361888f1c7b2277223a34372c2272223a32372c2271223a302c2261223a32347d00852f9acd615195df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0085b8848d36a38210010089a0684ad49e434a62c995df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf008920c9395621ea4d87a3bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc5801008390692f96dc34fd280654d27eea0801128115c6c171b7d4c5a37f008921ea496a4ac9f5597f87352398ac5754df0088f2b4b1ad2163b66fa472fdfab46e4d536a67011aed8f8e5cf51eddec6ae9cb266e5aa766b77f02fd1e2116083f",
             "headers": [
                 {
                     "content-length": "67"
diff --git a/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_26.json b/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_26.json
--- a/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_26.json
+++ b/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_26.json
@@ -623,7 +623,7 @@
         },
         {
             "seqno": 14,
-            "wire": "880f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1087352398ac4c697f0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f9dfffdfcf8fe6e36cfd7f367f3704e7d7f3dbf9b80fafe47fcdc137ffeff0089f2b4b1ac82d9dcb67f88081775a5de7d71330088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f0f1296dc34fd280654d27eea0801128115c6c171b694c5a37f008721eaa8a4498f5788ea52d6b0e83772ff0f0d82699f",
+            "wire": "880f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1087352398ac4c697f0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f1c7b2277223a35332c2272223a32362c2271223a302c2261223a32357d0089f2b4b1ac82d9dcb67f88081775a5de7d71330088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f0f1296dc34fd280654d27eea0801128115c6c171b694c5a37f008721eaa8a4498f5788ea52d6b0e83772ff0f0d82699f",
             "headers": [
                 {
                     ":status": "200"
@@ -1754,7 +1754,7 @@
         },
         {
             "seqno": 39,
-            "wire": "880f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1088352398ac74acb37f0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f9dfffdfcf8fe6e32cfd7f367f3702d7d7f3dbf9b80fafe47fcdc13bffeff0089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff0088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483f0f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff0f0d84081965af0f0b839bd9ab",
+            "wire": "880f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1088352398ac74acb37f0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f1c7b2277223a33332c2272223a31342c2271223a302c2261223a32377d0089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff0088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483f0f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff0f0d84081965af0f0b839bd9ab",
             "headers": [
                 {
                     ":status": "200"
@@ -1799,7 +1799,7 @@
         },
         {
             "seqno": 40,
-            "wire": "880f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1088352398ac74acb37f0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f9dfffdfcf8fe6e34efd7f367f3704efd7f3dbf9b80fafe47fcdc135ffeff0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0f0f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff0f0d8475f005ff0f0b839bd9ab",
+            "wire": "880f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1088352398ac74acb37f0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f1c7b2277223a34372c2272223a32372c2271223a302c2261223a32347d0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0f0f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff0f0d8475f005ff0f0b839bd9ab",
             "headers": [
                 {
                     ":status": "200"
@@ -1985,7 +1985,7 @@
         },
         {
             "seqno": 44,
-            "wire": "880f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1087352398ac5754df0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f9dfffdfcf8fe6e34efd7f367f3704efd7f3dbf9b80fafe47fcdc135ffeff0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0088f2b4b1ad2163b66fa472fdfab46e4d536a67011aed8f8e5cf51eddec6ae9cb266e5aa766b77f02fd1e2116083f0f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff0f0d8271df0f0b839bd9ab",
+            "wire": "880f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1087352398ac5754df0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf0085aec1cd48ff86a8eb10649cbf0089f2b4b1ad495361888f1c7b2277223a34372c2272223a32372c2271223a302c2261223a32347d0089f2b4b1ac82d9dcb67f8908170b8d2e110576db0088f2b4b1ad2163b66fa472fdfab46e4d536a67011aed8f8e5cf51eddec6ae9cb266e5aa766b77f02fd1e2116083f0f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f008721eaa8a4498f5788ea52d6b0e83772ff0f0d8271df0f0b839bd9ab",
             "headers": [
                 {
                     ":status": "200"
diff --git a/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_29.json b/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_29.json
--- a/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_29.json
+++ b/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_29.json
@@ -29,7 +29,7 @@
         },
         {
             "seqno": 1,
-            "wire": "880f098da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf0f1092497ca589d34d1f6a1271d882a60b532acf7f0f0b839bd9ab0f2c8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28d0ddb6f63e1bb6c10f0dfab6e0bf936c00f8c583571876c1f17f55d804008821033f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb827d4c5a37fda921e919aa817a5152e43d3f6a5634cf031008a2d961ec21e4290f6d49f86ffd82e03ff9f0081478bbda99dd7b180200080100700892c9315621ea4d87a3f86a8eb2127b0bf0f1296dc34fd280654d27eea0801128166e09fb82794c5a37f0f0d84682e34f7",
+            "wire": "880f098da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf0f1092497ca589d34d1f6a1271d882a60b532acf7f0f0b839bd9ab0f2c8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28d0ddb6f63e1bb6c10f0dfab6e0bf936c00f8c583571876c1f17f55d804008821033f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb827d4c5a37fda921e919aa817a5152e43d3f6a5634cf031008a2d961ec21e4290f6d49f055b303a305d0081478bbda99dd7b180200080100700892c9315621ea4d87a3f86a8eb2127b0bf0f1296dc34fd280654d27eea0801128166e09fb82794c5a37f0f0d84682e34f7",
             "headers": [
                 {
                     ":status": "200"
@@ -2039,7 +2039,7 @@
         },
         {
             "seqno": 41,
-            "wire": "880f098da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf0f1092497ca589d34d1f6a1271d882a60b532acf7f0f0b839bd9ab0f2c8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28cdddb6f63bf068dd009b69c744ffc5f804db4e3a27fe21c3069d58756dd1f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb8c814c5a37fda921e919aa817a5152e43d3f6a5634cf031f008a2d961ec21e4290f6d49f86ffd82e03ff9f0081478cbda99dd7b180200b2c800fff00892c9315621ea4d87a3f86a8eb2127b0bf0f1296dc34fd280654d27eea0801128166e09fb827d4c5a37f0f0d83105f77",
+            "wire": "880f098da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf0f1092497ca589d34d1f6a1271d882a60b532acf7f0f0b839bd9ab0f2c8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28cdddb6f63bf068dd009b69c744ffc5f804db4e3a27fe21c3069d58756dd1f6a17cd66b0a88341eafa500cada4fdd61002d28166e09fb8c814c5a37fda921e919aa817a5152e43d3f6a5634cf031f008a2d961ec21e4290f6d49f055b303a305d0081478cbda99dd7b180200b2c800fff00892c9315621ea4d87a3f86a8eb2127b0bf0f1296dc34fd280654d27eea0801128166e09fb827d4c5a37f0f0d83105f77",
             "headers": [
                 {
                     ":status": "200"
@@ -2765,7 +2765,7 @@
         },
         {
             "seqno": 58,
-            "wire": "880f098da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf0f1092497ca589d34d1f6a1271d882a60b532acf7f0f0b839bd9ab0f2c8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28d1ddb6f63bf06ed1007e346e804db4e3a27fe2fc026da71d13ff10e1834eac3ab6e8fb50be6b3585441a0f57d280656d27eeb08016940b3704fdc642a62d1bfed490f48cd540bd28a9721e9fb52b1a67818f008a2d961ec21e4290f6d49f86ffd82e03ff9f0081478bbda99dd7b180200880113d00892c9315621ea4d87a3f86a8eb2127b0bf0f1296dc34fd280654d27eea0801128166e09fb8c814c5a37f0f0d830b8e8b",
+            "wire": "880f098da8eb10649cbf4a54759093d85f0085aec1cd48ff86a8eb10649cbf0f1092497ca589d34d1f6a1271d882a60b532acf7f0f0b839bd9ab0f2c8b84842d695b05443c86aa6f0083ad9affafbdae0fe74ead2a70d3914bdab429a61e2a6edf0a99f55e52f70da352fe0e23535ee846a6bdd7c6a6ae1b54c9a6fff30f28d1ddb6f63bf06ed1007e346e804db4e3a27fe2fc026da71d13ff10e1834eac3ab6e8fb50be6b3585441a0f57d280656d27eeb08016940b3704fdc642a62d1bfed490f48cd540bd28a9721e9fb52b1a67818f008a2d961ec21e4290f6d49f055b303a305d0081478bbda99dd7b180200880113d00892c9315621ea4d87a3f86a8eb2127b0bf0f1296dc34fd280654d27eea0801128166e09fb8c814c5a37f0f0d830b8e8b",
             "headers": [
                 {
                     ":status": "200"
diff --git a/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_31.json b/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_31.json
--- a/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_31.json
+++ b/test-hpack/hpack-test-case/haskell-http2-static-huffman/story_31.json
@@ -623,7 +623,7 @@
         },
         {
             "seqno": 14,
-            "wire": "0f0d82699f880089f2b4b1ad495361888f9dfffdfcf8fe6e36cfd7f367f3704e7d7f3dbf9b80fafe47fcdc137ffeff0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f88081775a5de7d71330f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf0f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1296dc34fd280654d27eea0801128115c6c171b694c5a37f0f1087352398ac4c697f0088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f",
+            "wire": "0f0d82699f880089f2b4b1ad495361888f1c7b2277223a35332c2272223a32362c2271223a302c2261223a32357d0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f88081775a5de7d71330f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf0f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1296dc34fd280654d27eea0801128115c6c171b694c5a37f0f1087352398ac4c697f0088f2b4b1ad2163b66fa474d9fa23671fc45b570cdf85674d1c45e923bb8bdec071c77bae8fc632b9660b6eb9ce0f",
             "headers": [
                 {
                     "content-length": "43"
@@ -1754,7 +1754,7 @@
         },
         {
             "seqno": 39,
-            "wire": "0f0d84081965af0f0b839bd9ab0089f2b4b1ad495361888f9dfffdfcf8fe6e32cfd7f367f3702d7d7f3dbf9b80fafe47fcdc13bffeff0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff880f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf0f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f0f1088352398ac74acb37f0088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483f",
+            "wire": "0f0d84081965af0f0b839bd9ab0089f2b4b1ad495361888f1c7b2277223a33332c2272223a31342c2271223a302c2261223a32377d0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8a08170b8d2e2032bbcdff880f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf0f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f0f1088352398ac74acb37f0088f2b4b1ad2163b66fa3dd8f09af3363766bfddc7f5b1c877b47773d9edb78e23009b746d3e73e6cd0f1ce483f",
             "headers": [
                 {
                     "content-length": "10334"
@@ -1799,7 +1799,7 @@
         },
         {
             "seqno": 40,
-            "wire": "0f0d8475f005ff0f0b839bd9ab0089f2b4b1ad495361888f9dfffdfcf8fe6e34efd7f367f3704efd7f3dbf9b80fafe47fcdc135ffeff0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8908170b8d2e110576db880f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf0f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f0f1088352398ac74acb37f0088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0f",
+            "wire": "0f0d8475f005ff0f0b839bd9ab0089f2b4b1ad495361888f1c7b2277223a34372c2272223a32372c2271223a302c2261223a32347d0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8908170b8d2e110576db880f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf0f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f0f1088352398ac74acb37f0088f2b4b1ad2163b66fa4baf6fd826f1e7b2be1a3fd8aab672f4ff6ebef6274d18acfc467f39afeda6991c65c6a0f",
             "headers": [
                 {
                     "content-length": "79019"
@@ -1985,7 +1985,7 @@
         },
         {
             "seqno": 44,
-            "wire": "0f0d8271df0f0b839bd9ab0089f2b4b1ad495361888f9dfffdfcf8fe6e34efd7f367f3704efd7f3dbf9b80fafe47fcdc135ffeff0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8908170b8d2e110576db880f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf0f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f0f1087352398ac5754df0088f2b4b1ad2163b66fa472fdfab46e4d536a67011aed8f8e5cf51eddec6ae9cb266e5aa766b77f02fd1e2116083f",
+            "wire": "0f0d8271df0f0b839bd9ab0089f2b4b1ad495361888f1c7b2277223a34372c2272223a32372c2271223a302c2261223a32347d0f1595df3dbf4a05486bb141000d2800dc006e002a62d1bf0089f2b4b1ac82d9dcb67f8908170b8d2e110576db880f1d95df3dbf4a05486bb141000d2800dc006e000a62d1bf008721eaa8a4498f5788ea52d6b0e83772ff0085aec1cd48ff86a8eb10649cbf0f09bbaec3771a4bf4a54759093d85fa52a3ac419272fd294da84ad617b8e83483497e94ace84ac49ca4eb003e94aec2ac49ca4eb003e94a47e561cc58010f1296dc34fd280654d27eea0801128115c6c171b7d4c5a37f0f1087352398ac5754df0088f2b4b1ad2163b66fa472fdfab46e4d536a67011aed8f8e5cf51eddec6ae9cb266e5aa766b77f02fd1e2116083f",
             "headers": [
                 {
                     "content-length": "67"
