BurgerLib
Classes | Defines | Typedefs | Enumerations | Functions | Variables
pkdeflate.cpp File Reference
#include "pkpack.h"
#include "mmmemory.h"
#include "clstdlib.h"
Include dependency graph for pkdeflate.cpp:

Classes

struct  ZStream_t
struct  CodeData_t
struct  StaticTreeDesc_t
struct  TreeDesc_t
struct  DeflateState_t
struct  config_s

Defines

#define MAX_WBITS   15
#define MAX_MEM_LEVEL   9
#define Z_NO_FLUSH   0
#define Z_PARTIAL_FLUSH   1 /* will be removed, use Z_SYNC_FLUSH instead */
#define Z_SYNC_FLUSH   2
#define Z_FULL_FLUSH   3
#define Z_FINISH   4
#define Z_OK   0
#define Z_STREAM_END   1
#define Z_NEED_DICT   2
#define Z_ERRNO   (-1)
#define Z_STREAM_ERROR   (-2)
#define Z_DATA_ERROR   (-3)
#define Z_MEM_ERROR   (-4)
#define Z_BUF_ERROR   (-5)
#define Z_VERSION_ERROR   (-6)
#define Z_NO_COMPRESSION   0
#define Z_BEST_SPEED   1
#define Z_BEST_COMPRESSION   9
#define Z_DEFAULT_COMPRESSION   (-1)
#define Z_FILTERED   1
#define Z_HUFFMAN_ONLY   2
#define Z_DEFAULT_STRATEGY   0
#define Z_BINARY   0
#define Z_ASCII   1
#define Z_UNKNOWN   2
#define Z_DEFLATED   8
#define TOO_FAR   4096 /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
#define MIN_LOOKAHEAD   (MAX_MATCH+MIN_MATCH+1) /* Minimum amount of lookahead, except at the end of the input file. */
#define STORED_BLOCK   0
#define STATIC_TREES   1
#define DYN_TREES   2
#define MIN_MATCH   3
#define MAX_MATCH   258
#define PRESET_DICT   0x20 /* preset dictionary flag in zlib header */
#define LENGTH_CODES   29 /* number of length codes, not counting the special END_BLOCK code */
#define LITERALS   256 /* number of literal bytes 0..255 */
#define L_CODES   (LITERALS+1+LENGTH_CODES) /* number of Literal or Length codes, including the END_BLOCK code */
#define D_CODES   30 /* number of distance codes */
#define BL_CODES   19 /* number of codes used to transfer the bit lengths */
#define HEAP_SIZE   (2*L_CODES+1) /* maximum heap size */
#define MAX_BITS   15 /* All codes must not exceed MAX_BITS bits */
#define INIT_STATE   42
#define BUSY_STATE   113
#define FINISH_STATE   666
#define max_insert_length   max_lazy_match
#define MIN_LOOKAHEAD   (MAX_MATCH+MIN_MATCH+1)
#define MAX_DIST(s)   ((s)->w_size-MIN_LOOKAHEAD)
#define d_code(dist)   ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
#define _tr_tally_lit(s, c, flush)
#define _tr_tally_dist(s, distance, length, flush)
#define MAX_BL_BITS   7 /* Bit length codes must not exceed MAX_BL_BITS bits */
#define END_BLOCK   256 /* end of block literal code */
#define REP_3_6   16 /* repeat previous bit length 3-6 times (2 bits of repeat count) */
#define REPZ_3_10   17 /* repeat a zero length 3-10 times (3 bits of repeat count) */
#define REPZ_11_138   18 /* repeat a zero length 11-138 times (7 bits of repeat count) */
#define Buf_size   (8 * 2*sizeof(char))
#define DIST_CODE_LEN   512 /* see definition of array dist_code below */
#define send_code(s, c, tree)   send_bits(s, tree[c].fc.code, tree[c].dl.len)
#define send_bits(s, value, length)
#define MAX(a, b)   (a >= b ? a : b)
#define SMALLEST   1
#define UPDATE_HASH(s, h, c)   (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
#define INSERT_STRING(s, str, match_head)
#define CLEAR_HASH(s)
#define FLUSH_BLOCK_ONLY(s, eof)
#define FLUSH_BLOCK(s, eof)

Typedefs

typedef struct ZStream_t ZStream_t
typedef struct CodeData_t CodeData_t
typedef struct StaticTreeDesc_t StaticTreeDesc_t
typedef struct TreeDesc_t TreeDesc_t
typedef struct DeflateState_t DeflateState_t
typedef struct config_s config

Enumerations

enum  block_state { need_more, block_done, finish_started, finish_done }

Functions

static Word bi_reverse (Word code, Word len)
static void putShortMSB (DeflateState_t *s, Word b)
static void bi_flush (DeflateState_t *s)
static void bi_windup (DeflateState_t *s)
static void copy_block (DeflateState_t *s, char *buf, Word len)
static void set_data_type (DeflateState_t *s)
static void init_block (DeflateState_t *s)
static void _tr_init (DeflateState_t *s)
static void pqdownheap (DeflateState_t *s, CodeData_t *tree, int k)
static void compress_block (DeflateState_t *s, CodeData_t *ltree, CodeData_t *dtree)
static int read_buf (ZStream_t *strm, Word8 *buf, Word size)
static void fill_window (DeflateState_t *s)
static void gen_bitlen (DeflateState_t *s, TreeDesc_t *desc)
static void gen_codes (CodeData_t *tree, int max_code, Word16 *bl_count)
static void build_tree (DeflateState_t *s, TreeDesc_t *desc)
static void scan_tree (DeflateState_t *s, CodeData_t *tree, int max_code)
static int build_bl_tree (DeflateState_t *s)
static void _tr_stored_block (DeflateState_t *s, char *buf, Word32 stored_len, int eof)
static void send_tree (DeflateState_t *s, CodeData_t *tree, int max_code)
static void send_all_trees (DeflateState_t *s, int lcodes, int dcodes, int blcodes)
static void _tr_flush_block (DeflateState_t *s, char *buf, Word32 stored_len, int eof)
static void flush_pending (ZStream_t *strm)
static Word longest_match (DeflateState_t *s, Word cur_match)
static block_state deflate_slow (DeflateState_t *s, int flush)
static void _tr_align (DeflateState_t *s)
static int deflateEnd (ZStream_t *strm)
static void lm_init (DeflateState_t *s)
static int deflateReset (ZStream_t *strm)
static int deflateInit (ZStream_t *strm)
static int deflate (ZStream_t *strm, int flush)
void **BURGER_API EncodeInflate (Word8 *source, WordPtr sourceLen)

Variables

static const int extra_lbits [LENGTH_CODES] = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}
static const int extra_dbits [D_CODES] = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}
static const int extra_blbits [BL_CODES] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7}
static const Word8 bl_order [BL_CODES] = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}
static const CodeData_t static_ltree [L_CODES+2]
static const CodeData_t static_dtree [D_CODES]
static const Word8 _dist_code [DIST_CODE_LEN]
static const Word8 _length_code [MAX_MATCH-MIN_MATCH+1]
static const int base_length [LENGTH_CODES]
static const int base_dist [D_CODES]
static const StaticTreeDesc_t static_l_desc
static const StaticTreeDesc_t static_d_desc
static const StaticTreeDesc_t static_bl_desc
static const config configuration_table

Define Documentation

#define _tr_tally_dist (   s,
  distance,
  length,
  flush 
)
Value:
{ Word len = (length); \
	Word dist = (distance); \
    s->d_buf[s->last_lit] = static_cast<Word16>(dist); \
    s->l_buf[s->last_lit] = static_cast<Word8>(len); \
    ++s->last_lit; \
    --dist; \
    s->dyn_ltree[_length_code[len]+LITERALS+1].fc.freq++; \
    s->dyn_dtree[d_code(dist)].fc.freq++; \
    flush = (s->last_lit == s->lit_bufsize-1); \
    }
#define _tr_tally_lit (   s,
  c,
  flush 
)
Value:
{ Word cc = (c); \
    s->d_buf[s->last_lit] = 0; \
    s->l_buf[s->last_lit] = (Word8)cc; \
    ++s->last_lit; \
    ++s->dyn_ltree[cc].fc.freq; \
    flush = (s->last_lit == s->lit_bufsize-1); \
    }
#define BL_CODES   19 /* number of codes used to transfer the bit lengths */
#define Buf_size   (8 * 2*sizeof(char))
#define BUSY_STATE   113
#define CLEAR_HASH (   s)
Value:
s->head[s->hash_size-1] = 0; \
    FastMemSet(reinterpret_cast<Word8 *>(s->head),0,static_cast<Word>((s->hash_size-1)*sizeof(*s->head)));
#define d_code (   dist)    ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
#define D_CODES   30 /* number of distance codes */
#define DIST_CODE_LEN   512 /* see definition of array dist_code below */
#define DYN_TREES   2
#define END_BLOCK   256 /* end of block literal code */
#define FINISH_STATE   666
#define FLUSH_BLOCK (   s,
  eof 
)
Value:
{ \
   FLUSH_BLOCK_ONLY(s, eof); \
   if (s->strm->avail_out == 0) return (eof) ? finish_started : need_more; \
}
#define FLUSH_BLOCK_ONLY (   s,
  eof 
)
Value:
{ \
   _tr_flush_block(s, (s->block_start >= 0L ? \
                   (char *)&s->window[(unsigned)s->block_start] : \
                   (char *)0), \
        (Word32)((long)s->strstart - s->block_start), \
        (eof)); \
   s->block_start = s->strstart; \
   flush_pending(s->strm); \
}
#define HEAP_SIZE   (2*L_CODES+1) /* maximum heap size */
#define INIT_STATE   42
#define INSERT_STRING (   s,
  str,
  match_head 
)
Value:
(UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
    match_head = s->head[s->ins_h], s->prev[(str) & s->w_mask] = static_cast<Word16>(match_head), \
    s->head[s->ins_h] = static_cast<Word16>(str))
#define L_CODES   (LITERALS+1+LENGTH_CODES) /* number of Literal or Length codes, including the END_BLOCK code */
#define LENGTH_CODES   29 /* number of length codes, not counting the special END_BLOCK code */
#define LITERALS   256 /* number of literal bytes 0..255 */
#define MAX (   a,
 
)    (a >= b ? a : b)
#define MAX_BITS   15 /* All codes must not exceed MAX_BITS bits */
#define MAX_BL_BITS   7 /* Bit length codes must not exceed MAX_BL_BITS bits */
#define MAX_DIST (   s)    ((s)->w_size-MIN_LOOKAHEAD)
#define max_insert_length   max_lazy_match
#define MAX_MATCH   258
#define MAX_MEM_LEVEL   9
#define MAX_WBITS   15
#define MIN_LOOKAHEAD   (MAX_MATCH+MIN_MATCH+1) /* Minimum amount of lookahead, except at the end of the input file. */
#define MIN_LOOKAHEAD   (MAX_MATCH+MIN_MATCH+1)
#define MIN_MATCH   3
#define PRESET_DICT   0x20 /* preset dictionary flag in zlib header */
#define REP_3_6   16 /* repeat previous bit length 3-6 times (2 bits of repeat count) */
#define REPZ_11_138   18 /* repeat a zero length 11-138 times (7 bits of repeat count) */
#define REPZ_3_10   17 /* repeat a zero length 3-10 times (3 bits of repeat count) */
#define send_bits (   s,
  value,
  length 
)
Value:
{ int len = (length); \
    int val = (value); \
	Word Bits; \
    Bits = s->bi_buf | (val<<s->bi_valid);\
    if (s->bi_valid > (int)(Buf_size - len)) {\
		Word8 *SendPtr; \
		Word index; \
        index = s->pending; \
        SendPtr = &s->pending_buf[index]; \
        s->pending = index+2; \
        SendPtr[0] = ((Word8)(Bits & 0xff)); \
        SendPtr[1] = ((Word8)(Bits >> 8)); \
        Bits = (Word16)val >> (Buf_size - s->bi_valid);\
        len -= Buf_size;\
    } \
    s->bi_buf = Bits; \
    s->bi_valid += len;\
}
#define send_code (   s,
  c,
  tree 
)    send_bits(s, tree[c].fc.code, tree[c].dl.len)
#define SMALLEST   1
#define STATIC_TREES   1
#define STORED_BLOCK   0
#define TOO_FAR   4096 /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
#define UPDATE_HASH (   s,
  h,
 
)    (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
#define Z_ASCII   1
#define Z_BEST_COMPRESSION   9
#define Z_BEST_SPEED   1
#define Z_BINARY   0
#define Z_BUF_ERROR   (-5)
#define Z_DATA_ERROR   (-3)
#define Z_DEFAULT_COMPRESSION   (-1)
#define Z_DEFAULT_STRATEGY   0
#define Z_DEFLATED   8
#define Z_ERRNO   (-1)
#define Z_FILTERED   1
#define Z_FINISH   4
#define Z_FULL_FLUSH   3
#define Z_HUFFMAN_ONLY   2
#define Z_MEM_ERROR   (-4)
#define Z_NEED_DICT   2
#define Z_NO_COMPRESSION   0
#define Z_NO_FLUSH   0
#define Z_OK   0
#define Z_PARTIAL_FLUSH   1 /* will be removed, use Z_SYNC_FLUSH instead */
#define Z_STREAM_END   1
#define Z_STREAM_ERROR   (-2)
#define Z_SYNC_FLUSH   2
#define Z_UNKNOWN   2
#define Z_VERSION_ERROR   (-6)

Typedef Documentation

typedef struct CodeData_t CodeData_t
typedef struct config_s config
typedef struct TreeDesc_t TreeDesc_t
typedef struct ZStream_t ZStream_t

Enumeration Type Documentation

Enumerator:
need_more 
block_done 
finish_started 
finish_done 

Function Documentation

static void _tr_align ( DeflateState_t s) [static]
static void _tr_flush_block ( DeflateState_t s,
char *  buf,
Word32  stored_len,
int  eof 
) [static]
static void _tr_init ( DeflateState_t s) [static]
static void _tr_stored_block ( DeflateState_t s,
char *  buf,
Word32  stored_len,
int  eof 
) [static]
static void bi_flush ( DeflateState_t s) [static]
static Word bi_reverse ( Word  code,
Word  len 
) [static]
static void bi_windup ( DeflateState_t s) [static]
static int build_bl_tree ( DeflateState_t s) [static]
static void build_tree ( DeflateState_t s,
TreeDesc_t desc 
) [static]
static void compress_block ( DeflateState_t s,
CodeData_t ltree,
CodeData_t dtree 
) [static]
static void copy_block ( DeflateState_t s,
char *  buf,
Word  len 
) [static]
static int deflate ( ZStream_t strm,
int  flush 
) [static]
static block_state deflate_slow ( DeflateState_t s,
int  flush 
) [static]
static int deflateEnd ( ZStream_t strm) [static]
static int deflateInit ( ZStream_t strm) [static]
static int deflateReset ( ZStream_t strm) [static]
void** BURGER_API EncodeInflate ( Word8 source,
WordPtr  sourceLen 
)
static void fill_window ( DeflateState_t s) [static]
static void flush_pending ( ZStream_t strm) [static]
static void gen_bitlen ( DeflateState_t s,
TreeDesc_t desc 
) [static]
static void gen_codes ( CodeData_t tree,
int  max_code,
Word16 bl_count 
) [static]
static void init_block ( DeflateState_t s) [static]
static void lm_init ( DeflateState_t s) [static]
static Word longest_match ( DeflateState_t s,
Word  cur_match 
) [static]
static void pqdownheap ( DeflateState_t s,
CodeData_t tree,
int  k 
) [static]
static void putShortMSB ( DeflateState_t s,
Word  b 
) [static]
static int read_buf ( ZStream_t strm,
Word8 buf,
Word  size 
) [static]
static void scan_tree ( DeflateState_t s,
CodeData_t tree,
int  max_code 
) [static]
static void send_all_trees ( DeflateState_t s,
int  lcodes,
int  dcodes,
int  blcodes 
) [static]
static void send_tree ( DeflateState_t s,
CodeData_t tree,
int  max_code 
) [static]
static void set_data_type ( DeflateState_t s) [static]

Variable Documentation

const Word8 _dist_code[DIST_CODE_LEN] [static]
Initial value:
 {
 0,  1,  2,  3,  4,  4,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  8,
 8,  8,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,  0,  0, 16, 17,
18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29
}
Initial value:
 {
 0,  1,  2,  3,  4,  5,  6,  7,  8,  8,  9,  9, 10, 10, 11, 11, 12, 12, 12, 12,
13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19,
19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28
}
const int base_dist[D_CODES] [static]
Initial value:
 {
    0,     1,     2,     3,     4,     6,     8,    12,    16,    24,
   32,    48,    64,    96,   128,   192,   256,   384,   512,   768,
 1024,  1536,  2048,  3072,  4096,  6144,  8192, 12288, 16384, 24576
}
const int base_length[LENGTH_CODES] [static]
Initial value:
 {
0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
64, 80, 96, 112, 128, 160, 192, 224, 0
}
const Word8 bl_order[BL_CODES] = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15} [static]
const config configuration_table [static]
Initial value:
 
    {32, 258, 258, 4096}
const int extra_blbits[BL_CODES] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7} [static]
const int extra_dbits[D_CODES] = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13} [static]
const int extra_lbits[LENGTH_CODES] = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0} [static]
Initial value:
Initial value:
const CodeData_t static_dtree[D_CODES] [static]
Initial value:
 {
{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}},
{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}},
{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}},
{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}},
{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}},
{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}}
}
const CodeData_t static_ltree[L_CODES+2] [static]