diff --git a/c/common/constants.h b/c/common/constants.h
index 31e5bd3..637ad74 100644
--- a/c/common/constants.h
+++ b/c/common/constants.h
@@ -12,9 +12,6 @@
 #ifndef BROTLI_COMMON_CONSTANTS_H_
 #define BROTLI_COMMON_CONSTANTS_H_
 
-#include <brotli/port.h>
-#include <brotli/types.h>
-
 #include "platform.h"
 
 /* Specification: 7.3. Encoding of the context map */
diff --git a/c/common/context.c b/c/common/context.c
index 7f9c958..2a4cd68 100644
--- a/c/common/context.c
+++ b/c/common/context.c
@@ -1,6 +1,6 @@
 #include "context.h"
 
-#include <brotli/types.h>
+#include "platform.h"
 
 /* Common context lookup table for all context modes. */
 const uint8_t _kBrotliContextLookupTable[2048] = {
diff --git a/c/common/context.h b/c/common/context.h
index 685a279..45b57d8 100644
--- a/c/common/context.h
+++ b/c/common/context.h
@@ -88,8 +88,7 @@
 #ifndef BROTLI_COMMON_CONTEXT_H_
 #define BROTLI_COMMON_CONTEXT_H_
 
-#include <brotli/port.h>
-#include <brotli/types.h>
+#include "platform.h"
 
 typedef enum ContextType {
   CONTEXT_LSB6 = 0,
diff --git a/c/common/dictionary.h b/c/common/dictionary.h
index b1c6f7f..ed683b0 100644
--- a/c/common/dictionary.h
+++ b/c/common/dictionary.h
@@ -9,8 +9,7 @@
 #ifndef BROTLI_COMMON_DICTIONARY_H_
 #define BROTLI_COMMON_DICTIONARY_H_
 
-#include <brotli/port.h>
-#include <brotli/types.h>
+#include "platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/common/platform.c b/c/common/platform.c
index 25d84a9..1e047ce 100644
--- a/c/common/platform.c
+++ b/c/common/platform.c
@@ -4,10 +4,6 @@
    See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
 */
 
-#include <stdlib.h>
-
-#include <brotli/types.h>
-
 #include "platform.h"
 
 /* Default brotli_alloc_func */
diff --git a/c/common/platform.h b/c/common/platform.h
index 713119e..b238218 100644
--- a/c/common/platform.h
+++ b/c/common/platform.h
@@ -24,13 +24,13 @@
 #ifndef BROTLI_COMMON_PLATFORM_H_
 #define BROTLI_COMMON_PLATFORM_H_
 
-#include <string.h>  /* memcpy */
-
-#include <brotli/port.h>
-#include <brotli/types.h>
-
+#include <string.h>  /* IWYU pragma: export memcmp, memcpy, memset */
+#include <stdlib.h>  /* IWYU pragma: export exit, free, malloc */
 #include <sys/types.h>  /* should include endian.h for us */
 
+#include <brotli/port.h>  /* IWYU pragma: export */
+#include <brotli/types.h>  /* IWYU pragma: export */
+
 #if BROTLI_MSVC_VERSION_CHECK(18, 0, 0)
 #include <intrin.h>
 #endif
@@ -546,19 +546,36 @@
   BROTLI_UNUSED(&BrotliDump);
 #endif
 
-#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86)) && !defined(_M_ARM64EC)  /* _mm_prefetch() is not defined outside of x86/x64 */
-#  include <mmintrin.h>   /* https://msdn.microsoft.com/fr-fr/library/84szxsww(v=vs.90).aspx */
-#  define PREFETCH_L1(ptr)  _mm_prefetch((const char*)(ptr), _MM_HINT_T0)
-#  define PREFETCH_L2(ptr)  _mm_prefetch((const char*)(ptr), _MM_HINT_T1)
+#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86)) && \
+    !defined(_M_ARM64EC)
+/* _mm_prefetch() is not defined outside of x86/x64 */
+/* https://msdn.microsoft.com/fr-fr/library/84szxsww(v=vs.90).aspx */
+#include <mmintrin.h>
+#define PREFETCH_L1(ptr) _mm_prefetch((const char*)(ptr), _MM_HINT_T0)
+#define PREFETCH_L2(ptr) _mm_prefetch((const char*)(ptr), _MM_HINT_T1)
 #elif BROTLI_GNUC_HAS_BUILTIN(__builtin_prefetch, 3, 1, 0)
-#  define PREFETCH_L1(ptr)  __builtin_prefetch((ptr), 0 /* rw==read */, 3 /* locality */)
-#  define PREFETCH_L2(ptr)  __builtin_prefetch((ptr), 0 /* rw==read */, 2 /* locality */)
+#define PREFETCH_L1(ptr) \
+  __builtin_prefetch((ptr), 0 /* rw==read */, 3 /* locality */)
+#define PREFETCH_L2(ptr) \
+  __builtin_prefetch((ptr), 0 /* rw==read */, 2 /* locality */)
 #elif defined(__aarch64__)
-#  define PREFETCH_L1(ptr)  do { __asm__ __volatile__("prfm pldl1keep, %0" ::"Q"(*(ptr))); } while (0)
-#  define PREFETCH_L2(ptr)  do { __asm__ __volatile__("prfm pldl2keep, %0" ::"Q"(*(ptr))); } while (0)
+#define PREFETCH_L1(ptr)                                      \
+  do {                                                        \
+    __asm__ __volatile__("prfm pldl1keep, %0" ::"Q"(*(ptr))); \
+  } while (0)
+#define PREFETCH_L2(ptr)                                      \
+  do {                                                        \
+    __asm__ __volatile__("prfm pldl2keep, %0" ::"Q"(*(ptr))); \
+  } while (0)
 #else
-#  define PREFETCH_L1(ptr) do { (void)(ptr); } while (0)  /* disabled */
-#  define PREFETCH_L2(ptr) do { (void)(ptr); } while (0)  /* disabled */
+#define PREFETCH_L1(ptr) \
+  do {                   \
+    (void)(ptr);         \
+  } while (0) /* disabled */
+#define PREFETCH_L2(ptr) \
+  do {                   \
+    (void)(ptr);         \
+  } while (0) /* disabled */
 #endif
 
 /* The SIMD matchers are only faster at certain quality levels. */
diff --git a/c/common/shared_dictionary.c b/c/common/shared_dictionary.c
index 49f1c9b..b8ebc68 100644
--- a/c/common/shared_dictionary.c
+++ b/c/common/shared_dictionary.c
@@ -8,10 +8,6 @@
 
 #include <brotli/shared_dictionary.h>
 
-#include <memory.h>
-#include <stdlib.h>  /* malloc, free */
-#include <stdio.h>
-
 #include "dictionary.h"
 #include "platform.h"
 #include "shared_dictionary_internal.h"
diff --git a/c/common/shared_dictionary_internal.h b/c/common/shared_dictionary_internal.h
index 963762e..c6a90fa 100644
--- a/c/common/shared_dictionary_internal.h
+++ b/c/common/shared_dictionary_internal.h
@@ -10,9 +10,9 @@
 #define BROTLI_COMMON_SHARED_DICTIONARY_INTERNAL_H_
 
 #include <brotli/shared_dictionary.h>
-#include <brotli/types.h>
 
 #include "dictionary.h"
+#include "platform.h"
 #include "transform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/common/transform.h b/c/common/transform.h
index b6f86cc..c6176d8 100644
--- a/c/common/transform.h
+++ b/c/common/transform.h
@@ -8,8 +8,7 @@
 #ifndef BROTLI_COMMON_TRANSFORM_H_
 #define BROTLI_COMMON_TRANSFORM_H_
 
-#include <brotli/port.h>
-#include <brotli/types.h>
+#include "platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/dec/bit_reader.c b/c/dec/bit_reader.c
index 35101dd..d4ac6c5 100644
--- a/c/dec/bit_reader.c
+++ b/c/dec/bit_reader.c
@@ -8,8 +8,6 @@
 
 #include "bit_reader.h"
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/dec/bit_reader.h b/c/dec/bit_reader.h
index 930dc60..ef6b047 100644
--- a/c/dec/bit_reader.h
+++ b/c/dec/bit_reader.h
@@ -9,10 +9,6 @@
 #ifndef BROTLI_DEC_BIT_READER_H_
 #define BROTLI_DEC_BIT_READER_H_
 
-#include <string.h>  /* memcpy */
-
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/platform.h"
 
diff --git a/c/dec/decode.c b/c/dec/decode.c
index 70d594b..c53cbb8 100644
--- a/c/dec/decode.c
+++ b/c/dec/decode.c
@@ -6,9 +6,6 @@
 
 #include <brotli/decode.h>
 
-#include <stdlib.h>  /* free, malloc */
-#include <string.h>  /* memcpy, memset */
-
 #include "../common/constants.h"
 #include "../common/context.h"
 #include "../common/dictionary.h"
diff --git a/c/dec/huffman.c b/c/dec/huffman.c
index 3806454..5f084a1 100644
--- a/c/dec/huffman.c
+++ b/c/dec/huffman.c
@@ -8,10 +8,6 @@
 
 #include "huffman.h"
 
-#include <string.h>  /* memcpy, memset */
-
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/platform.h"
 
diff --git a/c/dec/huffman.h b/c/dec/huffman.h
index 5036096..53daf60 100644
--- a/c/dec/huffman.h
+++ b/c/dec/huffman.h
@@ -9,8 +9,6 @@
 #ifndef BROTLI_DEC_HUFFMAN_H_
 #define BROTLI_DEC_HUFFMAN_H_
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/dec/prefix.h b/c/dec/prefix.h
index e8acf07..78cb402 100644
--- a/c/dec/prefix.h
+++ b/c/dec/prefix.h
@@ -10,9 +10,8 @@
 #ifndef BROTLI_DEC_PREFIX_H_
 #define BROTLI_DEC_PREFIX_H_
 
-#include <brotli/types.h>
-
 #include "../common/constants.h"
+#include "../common/platform.h"
 
 typedef struct CmdLutElement {
   uint8_t insert_len_extra_bits;
diff --git a/c/dec/state.c b/c/dec/state.c
index 8b15459..dcf61b9 100644
--- a/c/dec/state.c
+++ b/c/dec/state.c
@@ -6,11 +6,8 @@
 
 #include "state.h"
 
-#include <stdlib.h>  /* free, malloc */
-
-#include <brotli/types.h>
-
 #include "../common/dictionary.h"
+#include "../common/platform.h"
 #include "huffman.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/dec/state.h b/c/dec/state.h
index fd250b6..caefef0 100644
--- a/c/dec/state.h
+++ b/c/dec/state.h
@@ -11,7 +11,6 @@
 
 #include <brotli/decode.h>
 #include <brotli/shared_dictionary.h>
-#include <brotli/types.h>
 
 #include "../common/constants.h"
 #include "../common/dictionary.h"
diff --git a/c/enc/backward_references.c b/c/enc/backward_references.c
index 94fd704..5d1c0ed 100644
--- a/c/enc/backward_references.c
+++ b/c/enc/backward_references.c
@@ -8,17 +8,15 @@
 
 #include "backward_references.h"
 
-#include <brotli/types.h>
-
 #include "../common/constants.h"
-#include "../common/dictionary.h"
+#include "../common/context.h"
 #include "../common/platform.h"
 #include "command.h"
 #include "compound_dictionary.h"
-#include "dictionary_hash.h"
 #include "encoder_dict.h"
-#include "memory.h"
-#include "quality.h"
+#include "hash.h"
+#include "params.h"
+#include "quality.h"  /* IWYU pragma: keep for inc */
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/backward_references.h b/c/enc/backward_references.h
index 20fb98a..17f0c84 100644
--- a/c/enc/backward_references.h
+++ b/c/enc/backward_references.h
@@ -9,15 +9,11 @@
 #ifndef BROTLI_ENC_BACKWARD_REFERENCES_H_
 #define BROTLI_ENC_BACKWARD_REFERENCES_H_
 
-#include <brotli/types.h>
-
-#include "../common/constants.h"
 #include "../common/context.h"
-#include "../common/dictionary.h"
 #include "../common/platform.h"
 #include "command.h"
 #include "hash.h"
-#include "quality.h"
+#include "params.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/backward_references_hq.c b/c/enc/backward_references_hq.c
index f8b506e..02ccb88 100644
--- a/c/enc/backward_references_hq.c
+++ b/c/enc/backward_references_hq.c
@@ -8,17 +8,15 @@
 
 #include "backward_references_hq.h"
 
-#include <string.h>  /* memcpy, memset */
-
-#include <brotli/types.h>
-
 #include "../common/constants.h"
+#include "../common/context.h"
 #include "../common/platform.h"
 #include "command.h"
 #include "compound_dictionary.h"
 #include "encoder_dict.h"
 #include "fast_log.h"
 #include "find_match_length.h"
+#include "hash.h"
 #include "literal_cost.h"
 #include "memory.h"
 #include "params.h"
diff --git a/c/enc/backward_references_hq.h b/c/enc/backward_references_hq.h
index 8acf975..4aa2706 100644
--- a/c/enc/backward_references_hq.h
+++ b/c/enc/backward_references_hq.h
@@ -9,16 +9,12 @@
 #ifndef BROTLI_ENC_BACKWARD_REFERENCES_HQ_H_
 #define BROTLI_ENC_BACKWARD_REFERENCES_HQ_H_
 
-#include <brotli/types.h>
-
-#include "../common/constants.h"
 #include "../common/context.h"
-#include "../common/dictionary.h"
 #include "../common/platform.h"
 #include "command.h"
 #include "hash.h"
 #include "memory.h"
-#include "quality.h"
+#include "params.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/bit_cost.c b/c/enc/bit_cost.c
index 6b7c904..e0ba2b0 100644
--- a/c/enc/bit_cost.c
+++ b/c/enc/bit_cost.c
@@ -8,12 +8,7 @@
 
 #include "bit_cost.h"
 
-#include <brotli/types.h>
-
-#include "../common/constants.h"
-#include "../common/platform.h"
-#include "fast_log.h"
-#include "histogram.h"
+// #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/bit_cost.h b/c/enc/bit_cost.h
index f6f2773..230b533 100644
--- a/c/enc/bit_cost.h
+++ b/c/enc/bit_cost.h
@@ -9,8 +9,6 @@
 #ifndef BROTLI_ENC_BIT_COST_H_
 #define BROTLI_ENC_BIT_COST_H_
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 #include "fast_log.h"
 #include "histogram.h"
diff --git a/c/enc/block_splitter.c b/c/enc/block_splitter.c
index 5a131f5..470fabb 100644
--- a/c/enc/block_splitter.c
+++ b/c/enc/block_splitter.c
@@ -8,8 +8,6 @@
 
 #include "block_splitter.h"
 
-#include <string.h>  /* memcpy, memset */
-
 #include "../common/platform.h"
 #include "bit_cost.h"
 #include "cluster.h"
diff --git a/c/enc/block_splitter.h b/c/enc/block_splitter.h
index 6046b90..c927794 100644
--- a/c/enc/block_splitter.h
+++ b/c/enc/block_splitter.h
@@ -9,12 +9,9 @@
 #ifndef BROTLI_ENC_BLOCK_SPLITTER_H_
 #define BROTLI_ENC_BLOCK_SPLITTER_H_
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 #include "command.h"
 #include "memory.h"
-#include "quality.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/brotli_bit_stream.c b/c/enc/brotli_bit_stream.c
index 5fa0c69..779c843 100644
--- a/c/enc/brotli_bit_stream.c
+++ b/c/enc/brotli_bit_stream.c
@@ -10,10 +10,6 @@
 
 #include "brotli_bit_stream.h"
 
-#include <string.h>  /* memcpy, memset */
-
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/context.h"
 #include "../common/platform.h"
diff --git a/c/enc/brotli_bit_stream.h b/c/enc/brotli_bit_stream.h
index a289509..9ca493d 100644
--- a/c/enc/brotli_bit_stream.h
+++ b/c/enc/brotli_bit_stream.h
@@ -16,8 +16,6 @@
 #ifndef BROTLI_ENC_BROTLI_BIT_STREAM_H_
 #define BROTLI_ENC_BROTLI_BIT_STREAM_H_
 
-#include <brotli/types.h>
-
 #include "../common/context.h"
 #include "../common/platform.h"
 #include "command.h"
diff --git a/c/enc/cluster.c b/c/enc/cluster.c
index b0faf81..4bf94ab 100644
--- a/c/enc/cluster.c
+++ b/c/enc/cluster.c
@@ -8,8 +8,6 @@
 
 #include "cluster.h"
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 #include "bit_cost.h"  /* BrotliPopulationCost */
 #include "fast_log.h"
diff --git a/c/enc/cluster.h b/c/enc/cluster.h
index 013629c..6519116 100644
--- a/c/enc/cluster.h
+++ b/c/enc/cluster.h
@@ -9,8 +9,6 @@
 #ifndef BROTLI_ENC_CLUSTER_H_
 #define BROTLI_ENC_CLUSTER_H_
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 #include "histogram.h"
 #include "memory.h"
diff --git a/c/enc/command.c b/c/enc/command.c
index bf80561..699fa80 100644
--- a/c/enc/command.c
+++ b/c/enc/command.c
@@ -6,7 +6,7 @@
 
 #include "command.h"
 
-#include <brotli/types.h>
+#include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/command.h b/c/enc/command.h
index ba4de7e..ba58f14 100644
--- a/c/enc/command.h
+++ b/c/enc/command.h
@@ -9,8 +9,6 @@
 #ifndef BROTLI_ENC_COMMAND_H_
 #define BROTLI_ENC_COMMAND_H_
 
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/platform.h"
 #include "fast_log.h"
diff --git a/c/enc/compound_dictionary.c b/c/enc/compound_dictionary.c
index 59ec864..6a79510 100644
--- a/c/enc/compound_dictionary.c
+++ b/c/enc/compound_dictionary.c
@@ -6,11 +6,10 @@
 
 #include "compound_dictionary.h"
 
-#include <brotli/types.h>
+#include <brotli/shared_dictionary.h>
 
 #include "../common/platform.h"
 #include "memory.h"
-#include "quality.h"
 
 static PreparedDictionary* CreatePreparedDictionaryWithParams(MemoryManager* m,
     const uint8_t* source, size_t source_size, uint32_t bucket_bits,
diff --git a/c/enc/compound_dictionary.h b/c/enc/compound_dictionary.h
index 9c531d5..6f5a13a 100644
--- a/c/enc/compound_dictionary.h
+++ b/c/enc/compound_dictionary.h
@@ -8,10 +8,8 @@
 #define BROTLI_ENC_PREPARED_DICTIONARY_H_
 
 #include <brotli/shared_dictionary.h>
-#include <brotli/types.h>
 
 #include "../common/platform.h"
-#include "../common/constants.h"
 #include "memory.h"
 
 /* "Fat" prepared dictionary, could be cooked outside of C implementation,
diff --git a/c/enc/compress_fragment.c b/c/enc/compress_fragment.c
index 13890ea..1d9ae99 100644
--- a/c/enc/compress_fragment.c
+++ b/c/enc/compress_fragment.c
@@ -14,15 +14,13 @@
 
 #include "compress_fragment.h"
 
-#include <string.h>  /* memcmp, memcpy, memset */
-
-#include <brotli/types.h>
-
+#include "../common/constants.h"
 #include "../common/platform.h"
 #include "brotli_bit_stream.h"
 #include "entropy_encode.h"
 #include "fast_log.h"
 #include "find_match_length.h"
+#include "hash_base.h"
 #include "write_bits.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
@@ -31,14 +29,6 @@
 
 #define MAX_DISTANCE (long)BROTLI_MAX_BACKWARD_LIMIT(18)
 
-/* kHashMul32 multiplier has these properties:
-   * The multiplier must be odd. Otherwise we may lose the highest bit.
-   * No long streaks of ones or zeros.
-   * There is no effort to ensure that it is a prime, the oddity is enough
-     for this use.
-   * The number has been tuned heuristically against compression benchmarks. */
-static const uint32_t kHashMul32 = 0x1E35A7BD;
-
 static BROTLI_INLINE uint32_t Hash(const uint8_t* p, size_t shift) {
   const uint64_t h = (BROTLI_UNALIGNED_LOAD64LE(p) << 24) * kHashMul32;
   return (uint32_t)(h >> shift);
diff --git a/c/enc/compress_fragment.h b/c/enc/compress_fragment.h
index 9c0780f..462f366 100644
--- a/c/enc/compress_fragment.h
+++ b/c/enc/compress_fragment.h
@@ -12,8 +12,6 @@
 #ifndef BROTLI_ENC_COMPRESS_FRAGMENT_H_
 #define BROTLI_ENC_COMPRESS_FRAGMENT_H_
 
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/platform.h"
 #include "entropy_encode.h"
diff --git a/c/enc/compress_fragment_two_pass.c b/c/enc/compress_fragment_two_pass.c
index a762679..1b7d1b1 100644
--- a/c/enc/compress_fragment_two_pass.c
+++ b/c/enc/compress_fragment_two_pass.c
@@ -12,10 +12,6 @@
 
 #include "compress_fragment_two_pass.h"
 
-#include <string.h>  /* memcmp, memcpy, memset */
-
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/platform.h"
 #include "bit_cost.h"
@@ -23,6 +19,7 @@
 #include "entropy_encode.h"
 #include "fast_log.h"
 #include "find_match_length.h"
+#include "hash_base.h"
 #include "write_bits.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
@@ -31,14 +28,6 @@
 
 #define MAX_DISTANCE (long)BROTLI_MAX_BACKWARD_LIMIT(18)
 
-/* kHashMul32 multiplier has these properties:
-   * The multiplier must be odd. Otherwise we may lose the highest bit.
-   * No long streaks of ones or zeros.
-   * There is no effort to ensure that it is a prime, the oddity is enough
-     for this use.
-   * The number has been tuned heuristically against compression benchmarks. */
-static const uint32_t kHashMul32 = 0x1E35A7BD;
-
 static BROTLI_INLINE uint32_t Hash(const uint8_t* p,
     size_t shift, size_t length) {
   const uint64_t h =
diff --git a/c/enc/compress_fragment_two_pass.h b/c/enc/compress_fragment_two_pass.h
index 6d28d9b..e98b5e0 100644
--- a/c/enc/compress_fragment_two_pass.h
+++ b/c/enc/compress_fragment_two_pass.h
@@ -13,8 +13,6 @@
 #ifndef BROTLI_ENC_COMPRESS_FRAGMENT_TWO_PASS_H_
 #define BROTLI_ENC_COMPRESS_FRAGMENT_TWO_PASS_H_
 
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/platform.h"
 #include "entropy_encode.h"
diff --git a/c/enc/dictionary_hash.h b/c/enc/dictionary_hash.h
index e553ea5..bbfceed 100644
--- a/c/enc/dictionary_hash.h
+++ b/c/enc/dictionary_hash.h
@@ -9,7 +9,7 @@
 #ifndef BROTLI_ENC_DICTIONARY_HASH_H_
 #define BROTLI_ENC_DICTIONARY_HASH_H_
 
-#include <brotli/types.h>
+#include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/encode.c b/c/enc/encode.c
index fb2c0ce..9417d8f 100644
--- a/c/enc/encode.c
+++ b/c/enc/encode.c
@@ -8,33 +8,30 @@
 
 #include <brotli/encode.h>
 #include <brotli/shared_dictionary.h>
-#include <brotli/types.h>
-
-#include <stdlib.h>  /* free, malloc */
-#include <string.h>  /* memcpy, memset */
 
 #include "../common/constants.h"
 #include "../common/context.h"
 #include "../common/platform.h"
 #include "../common/version.h"
-#include "backward_references.h"
 #include "backward_references_hq.h"
+#include "backward_references.h"
 #include "bit_cost.h"
 #include "brotli_bit_stream.h"
-#include "compress_fragment.h"
+#include "command.h"
+#include "compound_dictionary.h"
 #include "compress_fragment_two_pass.h"
+#include "compress_fragment.h"
 #include "dictionary_hash.h"
 #include "encoder_dict.h"
-#include "entropy_encode.h"
 #include "fast_log.h"
 #include "hash.h"
 #include "histogram.h"
 #include "memory.h"
 #include "metablock.h"
-#include "prefix.h"
-#include "state.h"
+#include "params.h"
 #include "quality.h"
 #include "ringbuffer.h"
+#include "state.h"
 #include "utf8_util.h"
 #include "write_bits.h"
 
diff --git a/c/enc/encoder_dict.c b/c/enc/encoder_dict.c
index 0984281..26ffda8 100644
--- a/c/enc/encoder_dict.c
+++ b/c/enc/encoder_dict.c
@@ -6,7 +6,8 @@
 
 #include "encoder_dict.h"
 
-#include <stdlib.h>  /* malloc, free */
+#include <brotli/encode.h>
+#include <brotli/shared_dictionary.h>
 
 #include "../common/dictionary.h"
 #include "../common/platform.h"
@@ -14,9 +15,11 @@
 #include "../common/transform.h"
 #include "compound_dictionary.h"
 #include "dictionary_hash.h"
+#include "hash_base.h"
+#include "hash.h"
 #include "memory.h"
 #include "quality.h"
-#include "hash.h"
+#include "static_dict_lut.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/encoder_dict.h b/c/enc/encoder_dict.h
index 81bb942..dcb6aef 100644
--- a/c/enc/encoder_dict.h
+++ b/c/enc/encoder_dict.h
@@ -8,7 +8,6 @@
 #define BROTLI_ENC_ENCODER_DICT_H_
 
 #include <brotli/shared_dictionary.h>
-#include <brotli/types.h>
 
 #include "../common/dictionary.h"
 #include "../common/platform.h"
diff --git a/c/enc/entropy_encode.c b/c/enc/entropy_encode.c
index 9aed43b..aad2993 100644
--- a/c/enc/entropy_encode.c
+++ b/c/enc/entropy_encode.c
@@ -8,10 +8,6 @@
 
 #include "entropy_encode.h"
 
-#include <string.h>  /* memset */
-
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/platform.h"
 
diff --git a/c/enc/entropy_encode.h b/c/enc/entropy_encode.h
index e1c779c..7bd3d3b 100644
--- a/c/enc/entropy_encode.h
+++ b/c/enc/entropy_encode.h
@@ -9,8 +9,6 @@
 #ifndef BROTLI_ENC_ENTROPY_ENCODE_H_
 #define BROTLI_ENC_ENTROPY_ENCODE_H_
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
@@ -67,7 +65,7 @@
    of a Huffman tree. The generated Huffman tree is to be compressed once
    more using a Huffman tree */
 BROTLI_INTERNAL void BrotliWriteHuffmanTree(const uint8_t* depth,
-                                            size_t num,
+                                            size_t length,
                                             size_t* tree_size,
                                             uint8_t* tree,
                                             uint8_t* extra_bits_data);
diff --git a/c/enc/entropy_encode_static.h b/c/enc/entropy_encode_static.h
index ecff1fe..168b473 100644
--- a/c/enc/entropy_encode_static.h
+++ b/c/enc/entropy_encode_static.h
@@ -9,8 +9,6 @@
 #ifndef BROTLI_ENC_ENTROPY_ENCODE_STATIC_H_
 #define BROTLI_ENC_ENTROPY_ENCODE_STATIC_H_
 
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/platform.h"
 #include "write_bits.h"
diff --git a/c/enc/fast_log.h b/c/enc/fast_log.h
index f82f4cf..3a1a3f6 100644
--- a/c/enc/fast_log.h
+++ b/c/enc/fast_log.h
@@ -11,8 +11,6 @@
 
 #include <math.h>
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/enc/find_match_length.h b/c/enc/find_match_length.h
index f3de0bd..096be93 100644
--- a/c/enc/find_match_length.h
+++ b/c/enc/find_match_length.h
@@ -9,8 +9,6 @@
 #ifndef BROTLI_ENC_FIND_MATCH_LENGTH_H_
 #define BROTLI_ENC_FIND_MATCH_LENGTH_H_
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/enc/hash.h b/c/enc/hash.h
index f210246..d86fa18 100644
--- a/c/enc/hash.h
+++ b/c/enc/hash.h
@@ -10,11 +10,6 @@
 #ifndef BROTLI_ENC_HASH_H_
 #define BROTLI_ENC_HASH_H_
 
-#include <stdlib.h>  /* exit */
-#include <string.h>  /* memcmp, memset */
-
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/dictionary.h"
 #include "../common/platform.h"
@@ -22,8 +17,10 @@
 #include "encoder_dict.h"
 #include "fast_log.h"
 #include "find_match_length.h"
+#include "hash_base.h"
 #include "matching_tag_mask.h"
 #include "memory.h"
+#include "params.h"
 #include "quality.h"
 #include "static_dict.h"
 
@@ -72,23 +69,6 @@
   int len_code_delta; /* == len_code - len */
 } HasherSearchResult;
 
-/* kHashMul32 multiplier has these properties:
-   * The multiplier must be odd. Otherwise we may lose the highest bit.
-   * No long streaks of ones or zeros.
-   * There is no effort to ensure that it is a prime, the oddity is enough
-     for this use.
-   * The number has been tuned heuristically against compression benchmarks. */
-static const uint32_t kHashMul32 = 0x1E35A7BD;
-static const uint64_t kHashMul64 =
-    BROTLI_MAKE_UINT64_T(0x1FE35A7Bu, 0xD3579BD3u);
-
-static BROTLI_INLINE uint32_t Hash14(const uint8_t* data) {
-  uint32_t h = BROTLI_UNALIGNED_LOAD32LE(data) * kHashMul32;
-  /* The higher bits contain more mixture from the multiplication,
-     so we take our results from there. */
-  return h >> (32 - 14);
-}
-
 static BROTLI_INLINE void PrepareDistanceCache(
     int* BROTLI_RESTRICT distance_cache, const int num_distances) {
   if (num_distances > 4) {
diff --git a/c/enc/hash_base.h b/c/enc/hash_base.h
new file mode 100644
index 0000000..edf1ef0
--- /dev/null
+++ b/c/enc/hash_base.h
@@ -0,0 +1,38 @@
+/* Copyright 2025 Google Inc. All Rights Reserved.
+
+   Distributed under MIT license.
+   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
+*/
+
+/* Basic common hash functions / constants. */
+
+#ifndef THIRD_PARTY_BROTLI_ENC_HASH_BASE_H_
+#define THIRD_PARTY_BROTLI_ENC_HASH_BASE_H_
+
+#include "../common/platform.h"
+
+/* kHashMul32 multiplier has these properties:
+   * The multiplier must be odd. Otherwise we may lose the highest bit.
+   * No long streaks of ones or zeros.
+   * There is no effort to ensure that it is a prime, the oddity is enough
+     for this use.
+   * The number has been tuned heuristically against compression benchmarks. */
+static const uint32_t kHashMul32 = 0x1E35A7BD;
+static const uint64_t kHashMul64 =
+    BROTLI_MAKE_UINT64_T(0x1FE35A7Bu, 0xD3579BD3u);
+
+static BROTLI_INLINE uint32_t Hash14(const uint8_t* data) {
+  uint32_t h = BROTLI_UNALIGNED_LOAD32LE(data) * kHashMul32;
+  /* The higher bits contain more mixture from the multiplication,
+     so we take our results from there. */
+  return h >> (32 - 14);
+}
+
+static BROTLI_INLINE uint32_t Hash15(const uint8_t* data) {
+  uint32_t h = BROTLI_UNALIGNED_LOAD32LE(data) * kHashMul32;
+  /* The higher bits contain more mixture from the multiplication,
+     so we take our results from there. */
+  return h >> (32 - 15);
+}
+
+#endif  // THIRD_PARTY_BROTLI_ENC_HASH_BASE_H_
diff --git a/c/enc/histogram.c b/c/enc/histogram.c
index 4dbb87f..43e4b38 100644
--- a/c/enc/histogram.c
+++ b/c/enc/histogram.c
@@ -9,6 +9,7 @@
 #include "histogram.h"
 
 #include "../common/context.h"
+#include "../common/platform.h"
 #include "block_splitter.h"
 #include "command.h"
 
diff --git a/c/enc/histogram.h b/c/enc/histogram.h
index d1abd97..a2accc3 100644
--- a/c/enc/histogram.h
+++ b/c/enc/histogram.h
@@ -9,10 +9,6 @@
 #ifndef BROTLI_ENC_HISTOGRAM_H_
 #define BROTLI_ENC_HISTOGRAM_H_
 
-#include <string.h>  /* memset */
-
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/context.h"
 #include "../common/platform.h"
diff --git a/c/enc/literal_cost.c b/c/enc/literal_cost.c
index a129657..c4e207d 100644
--- a/c/enc/literal_cost.c
+++ b/c/enc/literal_cost.c
@@ -9,10 +9,6 @@
 
 #include "literal_cost.h"
 
-#include <string.h>  /* memset */
-
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 #include "fast_log.h"
 #include "utf8_util.h"
diff --git a/c/enc/literal_cost.h b/c/enc/literal_cost.h
index 284a8e5..eb3f338 100644
--- a/c/enc/literal_cost.h
+++ b/c/enc/literal_cost.h
@@ -10,8 +10,6 @@
 #ifndef BROTLI_ENC_LITERAL_COST_H_
 #define BROTLI_ENC_LITERAL_COST_H_
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/enc/matching_tag_mask.h b/c/enc/matching_tag_mask.h
index c166255..8a1be1d 100644
--- a/c/enc/matching_tag_mask.h
+++ b/c/enc/matching_tag_mask.h
@@ -3,7 +3,8 @@
 
 #include "../common/platform.h"
 
-#if defined(__SSE2__) || defined(_M_AMD64) || (defined (_M_IX86) && defined(_M_IX86_FP) && (_M_IX86_FP >= 2))
+#if defined(__SSE2__) || defined(_M_AMD64) || \
+    (defined(_M_IX86) && defined(_M_IX86_FP) && (_M_IX86_FP >= 2))
 #define SUPPORTS_SSE_2
 #endif
 
diff --git a/c/enc/memory.c b/c/enc/memory.c
index bb5e364..67f81ff 100644
--- a/c/enc/memory.c
+++ b/c/enc/memory.c
@@ -9,11 +9,6 @@
 
 #include "memory.h"
 
-#include <stdlib.h>  /* exit, free, malloc */
-#include <string.h>  /* memcpy */
-
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/enc/memory.h b/c/enc/memory.h
index a4417df..d837481 100644
--- a/c/enc/memory.h
+++ b/c/enc/memory.h
@@ -9,10 +9,6 @@
 #ifndef BROTLI_ENC_MEMORY_H_
 #define BROTLI_ENC_MEMORY_H_
 
-#include <string.h>  /* memcpy */
-
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/enc/metablock.c b/c/enc/metablock.c
index 5fe43a5..c9bed76 100644
--- a/c/enc/metablock.c
+++ b/c/enc/metablock.c
@@ -9,18 +9,18 @@
 
 #include "metablock.h"
 
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/context.h"
 #include "../common/platform.h"
 #include "bit_cost.h"
 #include "block_splitter.h"
 #include "cluster.h"
+#include "command.h"
 #include "entropy_encode.h"
 #include "histogram.h"
 #include "memory.h"
-#include "quality.h"
+#include "params.h"
+#include "prefix.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/metablock.h b/c/enc/metablock.h
index e574bae..e7d1052 100644
--- a/c/enc/metablock.h
+++ b/c/enc/metablock.h
@@ -10,15 +10,13 @@
 #ifndef BROTLI_ENC_METABLOCK_H_
 #define BROTLI_ENC_METABLOCK_H_
 
-#include <brotli/types.h>
-
 #include "../common/context.h"
 #include "../common/platform.h"
 #include "block_splitter.h"
 #include "command.h"
 #include "histogram.h"
 #include "memory.h"
-#include "quality.h"
+#include "params.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/prefix.h b/c/enc/prefix.h
index 0f006f1..24c0afc 100644
--- a/c/enc/prefix.h
+++ b/c/enc/prefix.h
@@ -10,8 +10,6 @@
 #ifndef BROTLI_ENC_PREFIX_H_
 #define BROTLI_ENC_PREFIX_H_
 
-#include <brotli/types.h>
-
 #include "../common/constants.h"
 #include "../common/platform.h"
 #include "fast_log.h"
diff --git a/c/enc/ringbuffer.h b/c/enc/ringbuffer.h
index 27245b7..5bb75ed 100644
--- a/c/enc/ringbuffer.h
+++ b/c/enc/ringbuffer.h
@@ -9,12 +9,9 @@
 #ifndef BROTLI_ENC_RINGBUFFER_H_
 #define BROTLI_ENC_RINGBUFFER_H_
 
-#include <string.h>  /* memcpy */
-
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 #include "memory.h"
+#include "params.h"
 #include "quality.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/enc/state.h b/c/enc/state.h
index cb82987..325f9f3 100644
--- a/c/enc/state.h
+++ b/c/enc/state.h
@@ -9,8 +9,8 @@
 #ifndef BROTLI_ENC_STATE_H_
 #define BROTLI_ENC_STATE_H_
 
-#include <brotli/types.h>
-
+#include "../common/constants.h"
+#include "../common/platform.h"
 #include "command.h"
 #include "compress_fragment.h"
 #include "compress_fragment_two_pass.h"
diff --git a/c/enc/static_dict.c b/c/enc/static_dict.c
index 291d283..8546746 100644
--- a/c/enc/static_dict.c
+++ b/c/enc/static_dict.c
@@ -11,18 +11,12 @@
 #include "../common/transform.h"
 #include "encoder_dict.h"
 #include "find_match_length.h"
+#include "hash_base.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
 #endif
 
-static BROTLI_INLINE uint32_t Hash(const uint8_t* data) {
-  uint32_t h = BROTLI_UNALIGNED_LOAD32LE(data) * kDictHashMul32;
-  /* The higher bits contain more mixture from the multiplication,
-     so we take our results from there. */
-  return h >> (32 - kDictNumBits);
-}
-
 static BROTLI_INLINE void AddMatch(size_t distance, size_t len, size_t len_code,
                                    uint32_t* matches) {
   uint32_t match = (uint32_t)((distance << 5) + len_code);
@@ -96,7 +90,7 @@
   }
 #endif  /* BROTLI_EXPERIMENTAL */
   {
-    size_t offset = dictionary->buckets[Hash(data)];
+    size_t offset = dictionary->buckets[Hash15(data)];
     BROTLI_BOOL end = !offset;
     while (!end) {
       DictWord w = dictionary->dict_words[offset++];
@@ -341,7 +335,7 @@
   /* Transforms with prefixes " " and "." */
   if (max_length >= 5 && (data[0] == ' ' || data[0] == '.')) {
     BROTLI_BOOL is_space = TO_BROTLI_BOOL(data[0] == ' ');
-    size_t offset = dictionary->buckets[Hash(&data[1])];
+    size_t offset = dictionary->buckets[Hash15(&data[1])];
     BROTLI_BOOL end = !offset;
     while (!end) {
       DictWord w = dictionary->dict_words[offset++];
@@ -436,7 +430,7 @@
     if ((data[1] == ' ' &&
          (data[0] == 'e' || data[0] == 's' || data[0] == ',')) ||
         (data[0] == 0xC2 && data[1] == 0xA0)) {
-      size_t offset = dictionary->buckets[Hash(&data[2])];
+      size_t offset = dictionary->buckets[Hash15(&data[2])];
       BROTLI_BOOL end = !offset;
       while (!end) {
         DictWord w = dictionary->dict_words[offset++];
@@ -465,7 +459,7 @@
          data[3] == 'e' && data[4] == ' ') ||
         (data[0] == '.' && data[1] == 'c' && data[2] == 'o' &&
          data[3] == 'm' && data[4] == '/')) {
-      size_t offset = dictionary->buckets[Hash(&data[5])];
+      size_t offset = dictionary->buckets[Hash15(&data[5])];
       BROTLI_BOOL end = !offset;
       while (!end) {
         DictWord w = dictionary->dict_words[offset++];
diff --git a/c/enc/static_dict.h b/c/enc/static_dict.h
index ab83220..bc69b15 100644
--- a/c/enc/static_dict.h
+++ b/c/enc/static_dict.h
@@ -9,10 +9,8 @@
 #ifndef BROTLI_ENC_STATIC_DICT_H_
 #define BROTLI_ENC_STATIC_DICT_H_
 
-#include <brotli/types.h>
-
-#include "../common/dictionary.h"
 #include "../common/platform.h"
+
 #include "encoder_dict.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/enc/static_dict_lut.h b/c/enc/static_dict_lut.h
index a465ffd..0fef6dd 100644
--- a/c/enc/static_dict_lut.h
+++ b/c/enc/static_dict_lut.h
@@ -9,7 +9,7 @@
 #ifndef BROTLI_ENC_STATIC_DICT_LUT_H_
 #define BROTLI_ENC_STATIC_DICT_LUT_H_
 
-#include <brotli/types.h>
+#include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
@@ -23,9 +23,6 @@
 } DictWord;
 
 /* GENERATED CODE START */
-static const int kDictNumBits = 15;
-static const uint32_t kDictHashMul32 = 0x1E35A7BD;
-
 static const uint16_t kStaticDictionaryBuckets[32768] = {
 1,0,0,0,0,0,0,0,0,3,6,0,0,0,0,0,20,0,0,0,21,0,22,0,0,0,0,0,0,0,0,23,0,0,25,0,29,
 0,53,0,0,0,0,0,0,55,0,0,0,0,0,0,61,76,0,0,0,94,0,0,0,0,0,0,96,0,97,0,98,0,0,0,0,
diff --git a/c/enc/utf8_util.c b/c/enc/utf8_util.c
index 65ec3f5..d46c364 100644
--- a/c/enc/utf8_util.c
+++ b/c/enc/utf8_util.c
@@ -8,7 +8,7 @@
 
 #include "utf8_util.h"
 
-#include <brotli/types.h>
+#include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/enc/utf8_util.h b/c/enc/utf8_util.h
index a38a953..cae3dba 100644
--- a/c/enc/utf8_util.h
+++ b/c/enc/utf8_util.h
@@ -9,8 +9,6 @@
 #ifndef BROTLI_ENC_UTF8_UTIL_H_
 #define BROTLI_ENC_UTF8_UTIL_H_
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/enc/write_bits.h b/c/enc/write_bits.h
index 242754b..0cdc337 100644
--- a/c/enc/write_bits.h
+++ b/c/enc/write_bits.h
@@ -9,8 +9,6 @@
 #ifndef BROTLI_ENC_WRITE_BITS_H_
 #define BROTLI_ENC_WRITE_BITS_H_
 
-#include <brotli/types.h>
-
 #include "../common/platform.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/c/include/brotli/decode.h b/c/include/brotli/decode.h
index af1aa23..8d436db 100644
--- a/c/include/brotli/decode.h
+++ b/c/include/brotli/decode.h
@@ -14,7 +14,7 @@
 
 #include <brotli/port.h>
 #include <brotli/shared_dictionary.h>
-#include <brotli/types.h>
+#include <brotli/types.h>  /* IWYU pragma: export */
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/include/brotli/encode.h b/c/include/brotli/encode.h
index dea9931..6267749 100644
--- a/c/include/brotli/encode.h
+++ b/c/include/brotli/encode.h
@@ -14,7 +14,7 @@
 
 #include <brotli/port.h>
 #include <brotli/shared_dictionary.h>
-#include <brotli/types.h>
+#include <brotli/types.h>  /* IWYU pragma: export */
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/c/include/brotli/types.h b/c/include/brotli/types.h
index eff1a3c..2dc61ff 100644
--- a/c/include/brotli/types.h
+++ b/c/include/brotli/types.h
@@ -12,7 +12,7 @@
 #ifndef BROTLI_COMMON_TYPES_H_
 #define BROTLI_COMMON_TYPES_H_
 
-#include <stddef.h>  /* for size_t */
+#include <stddef.h>  /* IWYU pragma: export */
 
 #if defined(_MSC_VER) && (_MSC_VER < 1600)
 typedef __int8 int8_t;
@@ -24,7 +24,7 @@
 typedef unsigned __int64 uint64_t;
 typedef __int64 int64_t;
 #else
-#include <stdint.h>
+#include <stdint.h>  /* IWYU pragma: export */
 #endif  /* defined(_MSC_VER) && (_MSC_VER < 1600) */
 
 /**
