Browse code

avpacket, bfi, bgmc, rawenc: K&R prettyprinting cosmetics

Diego Biurrun authored on 2012/04/01 17:47:39
Showing 4 changed files
... ...
@@ -19,13 +19,13 @@
19 19
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 20
  */
21 21
 
22
-#include "avcodec.h"
23 22
 #include "libavutil/avassert.h"
24
-
23
+#include "avcodec.h"
25 24
 
26 25
 void av_destruct_packet_nofree(AVPacket *pkt)
27 26
 {
28
-    pkt->data = NULL; pkt->size = 0;
27
+    pkt->data            = NULL;
28
+    pkt->size            = 0;
29 29
     pkt->side_data       = NULL;
30 30
     pkt->side_data_elems = 0;
31 31
 }
... ...
@@ -35,7 +35,8 @@ void av_destruct_packet(AVPacket *pkt)
35 35
     int i;
36 36
 
37 37
     av_free(pkt->data);
38
-    pkt->data = NULL; pkt->size = 0;
38
+    pkt->data = NULL;
39
+    pkt->size = 0;
39 40
 
40 41
     for (i = 0; i < pkt->side_data_elems; i++)
41 42
         av_free(pkt->side_data[i].data);
... ...
@@ -45,40 +46,41 @@ void av_destruct_packet(AVPacket *pkt)
45 45
 
46 46
 void av_init_packet(AVPacket *pkt)
47 47
 {
48
-    pkt->pts   = AV_NOPTS_VALUE;
49
-    pkt->dts   = AV_NOPTS_VALUE;
50
-    pkt->pos   = -1;
51
-    pkt->duration = 0;
48
+    pkt->pts                  = AV_NOPTS_VALUE;
49
+    pkt->dts                  = AV_NOPTS_VALUE;
50
+    pkt->pos                  = -1;
51
+    pkt->duration             = 0;
52 52
     pkt->convergence_duration = 0;
53
-    pkt->flags = 0;
54
-    pkt->stream_index = 0;
55
-    pkt->destruct= NULL;
56
-    pkt->side_data       = NULL;
57
-    pkt->side_data_elems = 0;
53
+    pkt->flags                = 0;
54
+    pkt->stream_index         = 0;
55
+    pkt->destruct             = NULL;
56
+    pkt->side_data            = NULL;
57
+    pkt->side_data_elems      = 0;
58 58
 }
59 59
 
60 60
 int av_new_packet(AVPacket *pkt, int size)
61 61
 {
62
-    uint8_t *data= NULL;
63
-    if((unsigned)size < (unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE)
62
+    uint8_t *data = NULL;
63
+    if ((unsigned)size < (unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE)
64 64
         data = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
65
-    if (data){
65
+    if (data) {
66 66
         memset(data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
67
-    }else
68
-        size=0;
67
+    } else
68
+        size = 0;
69 69
 
70 70
     av_init_packet(pkt);
71
-    pkt->data = data;
72
-    pkt->size = size;
71
+    pkt->data     = data;
72
+    pkt->size     = size;
73 73
     pkt->destruct = av_destruct_packet;
74
-    if(!data)
74
+    if (!data)
75 75
         return AVERROR(ENOMEM);
76 76
     return 0;
77 77
 }
78 78
 
79 79
 void av_shrink_packet(AVPacket *pkt, int size)
80 80
 {
81
-    if (pkt->size <= size) return;
81
+    if (pkt->size <= size)
82
+        return;
82 83
     pkt->size = size;
83 84
     memset(pkt->data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
84 85
 }
... ...
@@ -89,40 +91,45 @@ int av_grow_packet(AVPacket *pkt, int grow_by)
89 89
     av_assert0((unsigned)pkt->size <= INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE);
90 90
     if (!pkt->size)
91 91
         return av_new_packet(pkt, grow_by);
92
-    if ((unsigned)grow_by > INT_MAX - (pkt->size + FF_INPUT_BUFFER_PADDING_SIZE))
92
+    if ((unsigned)grow_by >
93
+        INT_MAX - (pkt->size + FF_INPUT_BUFFER_PADDING_SIZE))
93 94
         return -1;
94
-    new_ptr = av_realloc(pkt->data, pkt->size + grow_by + FF_INPUT_BUFFER_PADDING_SIZE);
95
+    new_ptr = av_realloc(pkt->data,
96
+                         pkt->size + grow_by + FF_INPUT_BUFFER_PADDING_SIZE);
95 97
     if (!new_ptr)
96 98
         return AVERROR(ENOMEM);
97
-    pkt->data = new_ptr;
99
+    pkt->data  = new_ptr;
98 100
     pkt->size += grow_by;
99 101
     memset(pkt->data + pkt->size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
100 102
     return 0;
101 103
 }
102 104
 
103
-#define DUP_DATA(dst, src, size, padding) \
104
-    do { \
105
-        void *data; \
106
-        if (padding) { \
107
-            if ((unsigned)(size) > (unsigned)(size) + FF_INPUT_BUFFER_PADDING_SIZE) \
108
-                goto failed_alloc; \
109
-            data = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE); \
110
-        } else { \
111
-            data = av_malloc(size); \
112
-        } \
113
-        if (!data) \
114
-            goto failed_alloc; \
115
-        memcpy(data, src, size); \
116
-        if (padding) \
117
-            memset((uint8_t*)data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE); \
118
-        dst = data; \
119
-    } while(0)
105
+#define DUP_DATA(dst, src, size, padding)                               \
106
+    do {                                                                \
107
+        void *data;                                                     \
108
+        if (padding) {                                                  \
109
+            if ((unsigned)(size) >                                      \
110
+                (unsigned)(size) + FF_INPUT_BUFFER_PADDING_SIZE)        \
111
+                goto failed_alloc;                                      \
112
+            data = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);      \
113
+        } else {                                                        \
114
+            data = av_malloc(size);                                     \
115
+        }                                                               \
116
+        if (!data)                                                      \
117
+            goto failed_alloc;                                          \
118
+        memcpy(data, src, size);                                        \
119
+        if (padding)                                                    \
120
+            memset((uint8_t *)data + size, 0,                           \
121
+                   FF_INPUT_BUFFER_PADDING_SIZE);                       \
122
+        dst = data;                                                     \
123
+    } while (0)
120 124
 
121 125
 int av_dup_packet(AVPacket *pkt)
122 126
 {
123 127
     AVPacket tmp_pkt;
124 128
 
125
-    if (((pkt->destruct == av_destruct_packet_nofree) || (pkt->destruct == NULL)) && pkt->data) {
129
+    if (((pkt->destruct == av_destruct_packet_nofree) ||
130
+         (pkt->destruct == NULL)) && pkt->data) {
126 131
         tmp_pkt = *pkt;
127 132
 
128 133
         pkt->data      = NULL;
... ...
@@ -135,14 +142,15 @@ int av_dup_packet(AVPacket *pkt)
135 135
 
136 136
             DUP_DATA(pkt->side_data, tmp_pkt.side_data,
137 137
                      pkt->side_data_elems * sizeof(*pkt->side_data), 0);
138
-            memset(pkt->side_data, 0, pkt->side_data_elems * sizeof(*pkt->side_data));
139
-            for (i = 0; i < pkt->side_data_elems; i++) {
138
+            memset(pkt->side_data, 0,
139
+                   pkt->side_data_elems * sizeof(*pkt->side_data));
140
+            for (i = 0; i < pkt->side_data_elems; i++)
140 141
                 DUP_DATA(pkt->side_data[i].data, tmp_pkt.side_data[i].data,
141 142
                          pkt->side_data[i].size, 1);
142
-            }
143 143
         }
144 144
     }
145 145
     return 0;
146
+
146 147
 failed_alloc:
147 148
     av_destruct_packet(pkt);
148 149
     return AVERROR(ENOMEM);
... ...
@@ -151,14 +159,16 @@ failed_alloc:
151 151
 void av_free_packet(AVPacket *pkt)
152 152
 {
153 153
     if (pkt) {
154
-        if (pkt->destruct) pkt->destruct(pkt);
155
-        pkt->data = NULL; pkt->size = 0;
154
+        if (pkt->destruct)
155
+            pkt->destruct(pkt);
156
+        pkt->data            = NULL;
157
+        pkt->size            = 0;
156 158
         pkt->side_data       = NULL;
157 159
         pkt->side_data_elems = 0;
158 160
     }
159 161
 }
160 162
 
161
-uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
163
+uint8_t *av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
162 164
                                  int size)
163 165
 {
164 166
     int elems = pkt->side_data_elems;
... ...
@@ -168,7 +178,8 @@ uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
168 168
     if ((unsigned)size > INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE)
169 169
         return NULL;
170 170
 
171
-    pkt->side_data = av_realloc(pkt->side_data, (elems + 1) * sizeof(*pkt->side_data));
171
+    pkt->side_data = av_realloc(pkt->side_data,
172
+                                (elems + 1) * sizeof(*pkt->side_data));
172 173
     if (!pkt->side_data)
173 174
         return NULL;
174 175
 
... ...
@@ -182,7 +193,7 @@ uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
182 182
     return pkt->side_data[elems].data;
183 183
 }
184 184
 
185
-uint8_t* av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
185
+uint8_t *av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
186 186
                                  int *size)
187 187
 {
188 188
     int i;
... ...
@@ -39,8 +39,8 @@ typedef struct BFIContext {
39 39
 static av_cold int bfi_decode_init(AVCodecContext *avctx)
40 40
 {
41 41
     BFIContext *bfi = avctx->priv_data;
42
-    avctx->pix_fmt = PIX_FMT_PAL8;
43
-    bfi->dst = av_mallocz(avctx->width * avctx->height);
42
+    avctx->pix_fmt  = PIX_FMT_PAL8;
43
+    bfi->dst        = av_mallocz(avctx->width * avctx->height);
44 44
     return 0;
45 45
 }
46 46
 
... ...
@@ -48,9 +48,9 @@ static int bfi_decode_frame(AVCodecContext *avctx, void *data,
48 48
                             int *data_size, AVPacket *avpkt)
49 49
 {
50 50
     GetByteContext g;
51
-    int buf_size = avpkt->size;
51
+    int buf_size    = avpkt->size;
52 52
     BFIContext *bfi = avctx->priv_data;
53
-    uint8_t *dst = bfi->dst;
53
+    uint8_t *dst    = bfi->dst;
54 54
     uint8_t *src, *dst_offset, colour1, colour2;
55 55
     uint8_t *frame_end = bfi->dst + avctx->width * avctx->height;
56 56
     uint32_t *pal;
... ...
@@ -82,9 +82,8 @@ static int bfi_decode_frame(AVCodecContext *avctx, void *data,
82 82
             int shift = 16;
83 83
             *pal = 0;
84 84
             for (j = 0; j < 3; j++, shift -= 8)
85
-                *pal +=
86
-                    ((avctx->extradata[i * 3 + j] << 2) |
87
-                    (avctx->extradata[i * 3 + j] >> 4)) << shift;
85
+                *pal += ((avctx->extradata[i * 3 + j] << 2) |
86
+                         (avctx->extradata[i * 3 + j] >> 4)) << shift;
88 87
             pal++;
89 88
         }
90 89
         bfi->frame.palette_has_changed = 1;
... ...
@@ -107,7 +106,7 @@ static int bfi_decode_frame(AVCodecContext *avctx, void *data,
107 107
             return -1;
108 108
         }
109 109
 
110
-        /* Get length and offset(if required) */
110
+        /* Get length and offset (if required) */
111 111
         if (length == 0) {
112 112
             if (code == 1) {
113 113
                 length = bytestream2_get_byte(&g);
... ...
@@ -127,8 +126,7 @@ static int bfi_decode_frame(AVCodecContext *avctx, void *data,
127 127
             break;
128 128
 
129 129
         switch (code) {
130
-
131
-        case 0:                //Normal Chain
130
+        case 0:                // normal chain
132 131
             if (length >= bytestream2_get_bytes_left(&g)) {
133 132
                 av_log(avctx, AV_LOG_ERROR, "Frame larger than buffer.\n");
134 133
                 return -1;
... ...
@@ -136,21 +134,18 @@ static int bfi_decode_frame(AVCodecContext *avctx, void *data,
136 136
             bytestream2_get_buffer(&g, dst, length);
137 137
             dst += length;
138 138
             break;
139
-
140
-        case 1:                //Back Chain
139
+        case 1:                // back chain
141 140
             dst_offset = dst - offset;
142
-            length *= 4;        //Convert dwords to bytes.
141
+            length    *= 4;     // Convert dwords to bytes.
143 142
             if (dst_offset < bfi->dst)
144 143
                 break;
145 144
             while (length--)
146 145
                 *dst++ = *dst_offset++;
147 146
             break;
148
-
149
-        case 2:                //Skip Chain
147
+        case 2:                // skip chain
150 148
             dst += length;
151 149
             break;
152
-
153
-        case 3:                //Fill Chain
150
+        case 3:                // fill chain
154 151
             colour1 = bytestream2_get_byte(&g);
155 152
             colour2 = bytestream2_get_byte(&g);
156 153
             while (length--) {
... ...
@@ -158,7 +153,6 @@ static int bfi_decode_frame(AVCodecContext *avctx, void *data,
158 158
                 *dst++ = colour2;
159 159
             }
160 160
             break;
161
-
162 161
         }
163 162
     }
164 163
 
... ...
@@ -169,12 +163,12 @@ static int bfi_decode_frame(AVCodecContext *avctx, void *data,
169 169
         src += avctx->width;
170 170
         dst += bfi->frame.linesize[0];
171 171
     }
172
-    *data_size = sizeof(AVFrame);
172
+    *data_size       = sizeof(AVFrame);
173 173
     *(AVFrame *)data = bfi->frame;
174 174
     return buf_size;
175 175
 }
176 176
 
177
-static av_cold int bfi_decode_close(AVCodecContext * avctx)
177
+static av_cold int bfi_decode_close(AVCodecContext *avctx)
178 178
 {
179 179
     BFIContext *bfi = avctx->priv_data;
180 180
     if (bfi->frame.data[0])
... ...
@@ -25,10 +25,8 @@
25 25
  * @author Thilo Borgmann <thilo.borgmann _at_ googlemail.com>
26 26
  */
27 27
 
28
-
29 28
 #include "bgmc.h"
30 29
 
31
-
32 30
 #define FREQ_BITS  14                      // bits used by frequency counters
33 31
 #define VALUE_BITS 18                      // bits used to represent the values
34 32
 #define TOP_VALUE  ((1 << VALUE_BITS) - 1) // maximum value
... ...
@@ -41,382 +39,381 @@
41 41
 #define LUT_BUFF   4                       // number of buffered lookup tables
42 42
 
43 43
 
44
-/** Cumulative frequency tables for block Gilbert-Moore coding.
45
- */
44
+/** Cumulative frequency tables for block Gilbert-Moore coding. */
46 45
 static const uint16_t cf_tables_1[3][129] = {
47 46
     {
48
-    16384, 16066, 15748, 15431, 15114, 14799, 14485, 14173, 13861, 13552,
49
-    13243, 12939, 12635, 12336, 12038, 11745, 11452, 11161, 10870, 10586,
50
-    10303, 10027,  9751,  9483,  9215,  8953,  8692,  8440,  8189,  7946,
51
-     7704,  7472,  7240,  7008,  6776,  6554,  6333,  6122,  5912,  5711,
52
-     5512,  5320,  5128,  4947,  4766,  4595,  4425,  4264,  4104,  3946,
53
-     3788,  3640,  3493,  3355,  3218,  3090,  2963,  2842,  2721,  2609,
54
-     2498,  2395,  2292,  2196,  2100,  2004,  1908,  1820,  1732,  1651,
55
-     1570,  1497,  1424,  1355,  1287,  1223,  1161,  1100,  1044,   988,
56
-      938,   888,   839,   790,   746,   702,   662,   623,   588,   553,
57
-      520,   488,   459,   431,   405,   380,   357,   334,   311,   288,
58
-      268,   248,   230,   213,   197,   182,   168,   154,   142,   130,
59
-      119,   108,    99,    90,    81,    72,    64,    56,    49,    42,
60
-       36,    30,    25,    20,    15,    11,     7,     3,     0
61
-   },
62
-   {
63
-    16384, 16080, 15776, 15473, 15170, 14868, 14567, 14268, 13970, 13674,
64
-    13378, 13086, 12794, 12505, 12218, 11936, 11654, 11373, 11092, 10818,
65
-    10544, 10276, 10008,  9749,  9490,  9236,  8982,  8737,  8492,  8256,
66
-     8020,  7792,  7564,  7336,  7108,  6888,  6669,  6459,  6249,  6050,
67
-     5852,  5660,  5468,  5286,  5104,  4931,  4760,  4598,  4436,  4275,
68
-     4115,  3965,  3816,  3674,  3534,  3403,  3272,  3147,  3023,  2907,
69
-     2792,  2684,  2577,  2476,  2375,  2274,  2173,  2079,  1986,  1897,
70
-     1810,  1724,  1645,  1567,  1493,  1419,  1351,  1284,  1222,  1161,
71
-     1105,  1050,   995,   941,   891,   842,   797,   753,   713,   673,
72
-      636,   599,   566,   533,   503,   473,   446,   419,   392,   365,
73
-      340,   316,   294,   272,   253,   234,   216,   199,   184,   169,
74
-      155,   142,   130,   118,   106,    95,    85,    75,    66,    57,
75
-       49,    41,    34,    27,    21,    15,    10,     5,     0
76
-   },
77
-   {
78
-    16384, 16092, 15801, 15510, 15219, 14930, 14641, 14355, 14069, 13785,
79
-    13501, 13219, 12938, 12661, 12384, 12112, 11841, 11571, 11301, 11037,
80
-    10773, 10514, 10256, 10005,  9754,  9508,  9263,  9025,  8787,  8557,
81
-     8327,  8103,  7879,  7655,  7431,  7215,  7000,  6792,  6585,  6387,
82
-     6190,  5998,  5807,  5625,  5445,  5272,  5100,  4937,  4774,  4613,
83
-     4452,  4301,  4150,  4007,  3865,  3731,  3597,  3469,  3341,  3218,
84
-     3099,  2981,  2869,  2758,  2652,  2546,  2440,  2334,  2234,  2134,
85
-     2041,  1949,  1864,  1779,  1699,  1620,  1547,  1474,  1407,  1340,
86
-     1278,  1217,  1157,  1097,  1043,   989,   940,   891,   846,   801,
87
-      759,   718,   680,   643,   609,   575,   543,   511,   479,   447,
88
-      418,   389,   363,   337,   314,   291,   270,   249,   230,   212,
89
-      195,   179,   164,   149,   135,   121,   108,    96,    85,    74,
90
-       64,    54,    45,    36,    28,    20,    13,     6,     0
91
-   }
47
+        16384, 16066, 15748, 15431, 15114, 14799, 14485, 14173, 13861, 13552,
48
+        13243, 12939, 12635, 12336, 12038, 11745, 11452, 11161, 10870, 10586,
49
+        10303, 10027,  9751,  9483,  9215,  8953,  8692,  8440,  8189,  7946,
50
+         7704,  7472,  7240,  7008,  6776,  6554,  6333,  6122,  5912,  5711,
51
+         5512,  5320,  5128,  4947,  4766,  4595,  4425,  4264,  4104,  3946,
52
+         3788,  3640,  3493,  3355,  3218,  3090,  2963,  2842,  2721,  2609,
53
+         2498,  2395,  2292,  2196,  2100,  2004,  1908,  1820,  1732,  1651,
54
+         1570,  1497,  1424,  1355,  1287,  1223,  1161,  1100,  1044,   988,
55
+          938,   888,   839,   790,   746,   702,   662,   623,   588,   553,
56
+          520,   488,   459,   431,   405,   380,   357,   334,   311,   288,
57
+          268,   248,   230,   213,   197,   182,   168,   154,   142,   130,
58
+          119,   108,    99,    90,    81,    72,    64,    56,    49,    42,
59
+           36,    30,    25,    20,    15,    11,     7,     3,     0
60
+    },
61
+    {
62
+        16384, 16080, 15776, 15473, 15170, 14868, 14567, 14268, 13970, 13674,
63
+        13378, 13086, 12794, 12505, 12218, 11936, 11654, 11373, 11092, 10818,
64
+        10544, 10276, 10008,  9749,  9490,  9236,  8982,  8737,  8492,  8256,
65
+         8020,  7792,  7564,  7336,  7108,  6888,  6669,  6459,  6249,  6050,
66
+         5852,  5660,  5468,  5286,  5104,  4931,  4760,  4598,  4436,  4275,
67
+         4115,  3965,  3816,  3674,  3534,  3403,  3272,  3147,  3023,  2907,
68
+         2792,  2684,  2577,  2476,  2375,  2274,  2173,  2079,  1986,  1897,
69
+         1810,  1724,  1645,  1567,  1493,  1419,  1351,  1284,  1222,  1161,
70
+         1105,  1050,   995,   941,   891,   842,   797,   753,   713,   673,
71
+          636,   599,   566,   533,   503,   473,   446,   419,   392,   365,
72
+          340,   316,   294,   272,   253,   234,   216,   199,   184,   169,
73
+          155,   142,   130,   118,   106,    95,    85,    75,    66,    57,
74
+           49,    41,    34,    27,    21,    15,    10,     5,     0
75
+    },
76
+    {
77
+        16384, 16092, 15801, 15510, 15219, 14930, 14641, 14355, 14069, 13785,
78
+        13501, 13219, 12938, 12661, 12384, 12112, 11841, 11571, 11301, 11037,
79
+        10773, 10514, 10256, 10005,  9754,  9508,  9263,  9025,  8787,  8557,
80
+         8327,  8103,  7879,  7655,  7431,  7215,  7000,  6792,  6585,  6387,
81
+         6190,  5998,  5807,  5625,  5445,  5272,  5100,  4937,  4774,  4613,
82
+         4452,  4301,  4150,  4007,  3865,  3731,  3597,  3469,  3341,  3218,
83
+         3099,  2981,  2869,  2758,  2652,  2546,  2440,  2334,  2234,  2134,
84
+         2041,  1949,  1864,  1779,  1699,  1620,  1547,  1474,  1407,  1340,
85
+         1278,  1217,  1157,  1097,  1043,   989,   940,   891,   846,   801,
86
+          759,   718,   680,   643,   609,   575,   543,   511,   479,   447,
87
+          418,   389,   363,   337,   314,   291,   270,   249,   230,   212,
88
+          195,   179,   164,   149,   135,   121,   108,    96,    85,    74,
89
+          64,     54,    45,    36,    28,    20,    13,     6,     0
90
+    }
92 91
 };
93 92
 
94 93
 
95 94
 static const uint16_t cf_tables_2[8][193] = {
96 95
     {
97
-    16384, 16104, 15825, 15546, 15268, 14991, 14714, 14439, 14164, 13891,
98
-    13620, 13350, 13081, 12815, 12549, 12287, 12025, 11765, 11505, 11250,
99
-    10996, 10746, 10497, 10254, 10011,  9772,  9534,  9303,  9072,  8848,
100
-     8624,  8406,  8188,  7970,  7752,  7539,  7327,  7123,  6919,  6724,
101
-     6529,  6339,  6150,  5970,  5790,  5618,  5446,  5282,  5119,  4957,
102
-     4795,  4642,  4490,  4345,  4201,  4065,  3929,  3798,  3669,  3547,
103
-     3425,  3310,  3196,  3086,  2976,  2866,  2756,  2650,  2545,  2447,
104
-     2350,  2260,  2170,  2085,  2000,  1921,  1843,  1770,  1698,  1632,
105
-     1566,  1501,  1436,  1376,  1316,  1261,  1207,  1157,  1108,  1061,
106
-     1015,   973,   931,   893,   855,   819,   783,   747,   711,   677,
107
-      644,   614,   584,   557,   530,   505,   480,   458,   436,   416,
108
-      396,   378,   360,   343,   326,   310,   295,   281,   267,   255,
109
-      243,   232,   221,   211,   201,   192,   183,   174,   166,   158,
110
-      150,   142,   134,   126,   119,   112,   106,   100,    95,    90,
111
-       85,    80,    76,    72,    69,    66,    63,    60,    57,    54,
112
-       51,    48,    46,    44,    42,    40,    38,    36,    34,    33,
113
-       32,    31,    30,    29,    28,    27,    26,    25,    24,    23,
114
-       22,    21,    20,    19,    18,    17,    16,    15,    14,    13,
115
-       12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
116
-        2,     1,     0
96
+        16384, 16104, 15825, 15546, 15268, 14991, 14714, 14439, 14164, 13891,
97
+        13620, 13350, 13081, 12815, 12549, 12287, 12025, 11765, 11505, 11250,
98
+        10996, 10746, 10497, 10254, 10011,  9772,  9534,  9303,  9072,  8848,
99
+         8624,  8406,  8188,  7970,  7752,  7539,  7327,  7123,  6919,  6724,
100
+         6529,  6339,  6150,  5970,  5790,  5618,  5446,  5282,  5119,  4957,
101
+         4795,  4642,  4490,  4345,  4201,  4065,  3929,  3798,  3669,  3547,
102
+         3425,  3310,  3196,  3086,  2976,  2866,  2756,  2650,  2545,  2447,
103
+         2350,  2260,  2170,  2085,  2000,  1921,  1843,  1770,  1698,  1632,
104
+         1566,  1501,  1436,  1376,  1316,  1261,  1207,  1157,  1108,  1061,
105
+         1015,   973,   931,   893,   855,   819,   783,   747,   711,   677,
106
+          644,   614,   584,   557,   530,   505,   480,   458,   436,   416,
107
+          396,   378,   360,   343,   326,   310,   295,   281,   267,   255,
108
+          243,   232,   221,   211,   201,   192,   183,   174,   166,   158,
109
+          150,   142,   134,   126,   119,   112,   106,   100,    95,    90,
110
+           85,    80,    76,    72,    69,    66,    63,    60,    57,    54,
111
+           51,    48,    46,    44,    42,    40,    38,    36,    34,    33,
112
+           32,    31,    30,    29,    28,    27,    26,    25,    24,    23,
113
+           22,    21,    20,    19,    18,    17,    16,    15,    14,    13,
114
+           12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
115
+            2,     1,     0
117 116
     },
118 117
     {
119
-    16384, 16116, 15849, 15582, 15316, 15050, 14785, 14521, 14257, 13995,
120
-    13734, 13476, 13218, 12963, 12708, 12457, 12206, 11956, 11706, 11460,
121
-    11215, 10975, 10735, 10500, 10265, 10034,  9803,  9579,  9355,  9136,
122
-     8917,  8703,  8489,  8275,  8061,  7853,  7645,  7444,  7244,  7051,
123
-     6858,  6671,  6484,  6305,  6127,  5956,  5785,  5622,  5459,  5298,
124
-     5137,  4983,  4830,  4684,  4539,  4401,  4263,  4131,  3999,  3874,
125
-     3750,  3632,  3515,  3401,  3287,  3173,  3059,  2949,  2840,  2737,
126
-     2635,  2539,  2444,  2354,  2264,  2181,  2098,  2020,  1943,  1872,
127
-     1801,  1731,  1661,  1596,  1532,  1472,  1412,  1357,  1303,  1251,
128
-     1200,  1153,  1106,  1063,  1020,   979,   938,   897,   856,   818,
129
-      780,   746,   712,   681,   650,   621,   592,   566,   540,   517,
130
-      494,   473,   452,   431,   410,   391,   373,   356,   340,   325,
131
-      310,   296,   282,   270,   258,   247,   236,   225,   214,   203,
132
-      192,   182,   172,   162,   153,   144,   136,   128,   121,   114,
133
-      108,   102,    97,    92,    87,    82,    77,    73,    69,    65,
134
-       62,    59,    56,    53,    50,    47,    45,    43,    41,    39,
135
-       37,    35,    33,    31,    29,    27,    26,    25,    24,    23,
136
-       22,    21,    20,    19,    18,    17,    16,    15,    14,    13,
137
-       12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
138
-        2,     1,     0
118
+        16384, 16116, 15849, 15582, 15316, 15050, 14785, 14521, 14257, 13995,
119
+        13734, 13476, 13218, 12963, 12708, 12457, 12206, 11956, 11706, 11460,
120
+        11215, 10975, 10735, 10500, 10265, 10034,  9803,  9579,  9355,  9136,
121
+         8917,  8703,  8489,  8275,  8061,  7853,  7645,  7444,  7244,  7051,
122
+         6858,  6671,  6484,  6305,  6127,  5956,  5785,  5622,  5459,  5298,
123
+         5137,  4983,  4830,  4684,  4539,  4401,  4263,  4131,  3999,  3874,
124
+         3750,  3632,  3515,  3401,  3287,  3173,  3059,  2949,  2840,  2737,
125
+         2635,  2539,  2444,  2354,  2264,  2181,  2098,  2020,  1943,  1872,
126
+         1801,  1731,  1661,  1596,  1532,  1472,  1412,  1357,  1303,  1251,
127
+         1200,  1153,  1106,  1063,  1020,   979,   938,   897,   856,   818,
128
+          780,   746,   712,   681,   650,   621,   592,   566,   540,   517,
129
+          494,   473,   452,   431,   410,   391,   373,   356,   340,   325,
130
+          310,   296,   282,   270,   258,   247,   236,   225,   214,   203,
131
+          192,   182,   172,   162,   153,   144,   136,   128,   121,   114,
132
+          108,   102,    97,    92,    87,    82,    77,    73,    69,    65,
133
+           62,    59,    56,    53,    50,    47,    45,    43,    41,    39,
134
+           37,    35,    33,    31,    29,    27,    26,    25,    24,    23,
135
+           22,    21,    20,    19,    18,    17,    16,    15,    14,    13,
136
+           12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
137
+            2,     1,     0
139 138
     },
140 139
     {
141
-    16384, 16128, 15872, 15617, 15362, 15107, 14853, 14600, 14347, 14096,
142
-    13846, 13597, 13350, 13105, 12860, 12618, 12376, 12135, 11894, 11657,
143
-    11421, 11189, 10957, 10730, 10503, 10279, 10056,  9838,  9620,  9407,
144
-     9195,  8987,  8779,  8571,  8363,  8159,  7955,  7758,  7561,  7371,
145
-     7182,  6997,  6812,  6635,  6459,  6289,  6120,  5957,  5795,  5634,
146
-     5473,  5319,  5165,  5018,  4871,  4732,  4593,  4458,  4324,  4197,
147
-     4071,  3951,  3831,  3714,  3597,  3480,  3363,  3250,  3138,  3032,
148
-     2927,  2828,  2729,  2635,  2541,  2453,  2366,  2284,  2202,  2126,
149
-     2050,  1975,  1900,  1830,  1761,  1697,  1633,  1574,  1515,  1459,
150
-     1403,  1351,  1300,  1252,  1205,  1160,  1115,  1070,  1025,   982,
151
-      939,   899,   860,   824,   789,   756,   723,   693,   663,   636,
152
-      609,   584,   559,   535,   511,   489,   467,   447,   427,   409,
153
-      391,   374,   358,   343,   328,   313,   300,   287,   274,   261,
154
-      248,   235,   223,   211,   200,   189,   179,   169,   160,   151,
155
-      143,   135,   128,   121,   115,   109,   103,    97,    92,    87,
156
-       82,    77,    73,    69,    65,    61,    58,    55,    52,    49,
157
-       46,    43,    40,    37,    35,    33,    31,    29,    27,    25,
158
-       23,    21,    20,    19,    18,    17,    16,    15,    14,    13,
159
-       12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
160
-        2,     1,     0
140
+        16384, 16128, 15872, 15617, 15362, 15107, 14853, 14600, 14347, 14096,
141
+        13846, 13597, 13350, 13105, 12860, 12618, 12376, 12135, 11894, 11657,
142
+        11421, 11189, 10957, 10730, 10503, 10279, 10056,  9838,  9620,  9407,
143
+         9195,  8987,  8779,  8571,  8363,  8159,  7955,  7758,  7561,  7371,
144
+         7182,  6997,  6812,  6635,  6459,  6289,  6120,  5957,  5795,  5634,
145
+         5473,  5319,  5165,  5018,  4871,  4732,  4593,  4458,  4324,  4197,
146
+         4071,  3951,  3831,  3714,  3597,  3480,  3363,  3250,  3138,  3032,
147
+         2927,  2828,  2729,  2635,  2541,  2453,  2366,  2284,  2202,  2126,
148
+         2050,  1975,  1900,  1830,  1761,  1697,  1633,  1574,  1515,  1459,
149
+         1403,  1351,  1300,  1252,  1205,  1160,  1115,  1070,  1025,   982,
150
+          939,   899,   860,   824,   789,   756,   723,   693,   663,   636,
151
+          609,   584,   559,   535,   511,   489,   467,   447,   427,   409,
152
+          391,   374,   358,   343,   328,   313,   300,   287,   274,   261,
153
+          248,   235,   223,   211,   200,   189,   179,   169,   160,   151,
154
+          143,   135,   128,   121,   115,   109,   103,    97,    92,    87,
155
+           82,    77,    73,    69,    65,    61,    58,    55,    52,    49,
156
+           46,    43,    40,    37,    35,    33,    31,    29,    27,    25,
157
+           23,    21,    20,    19,    18,    17,    16,    15,    14,    13,
158
+           12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
159
+            2,     1,     0
161 160
     },
162 161
     {
163
-    16384, 16139, 15894, 15649, 15405, 15162, 14919, 14677, 14435, 14195,
164
-    13955, 13717, 13479, 13243, 13008, 12775, 12542, 12310, 12079, 11851,
165
-    11623, 11399, 11176, 10956, 10737, 10521, 10305, 10094,  9883,  9677,
166
-     9471,  9268,  9065,  8862,  8659,  8459,  8260,  8067,  7874,  7688,
167
-     7502,  7321,  7140,  6965,  6790,  6621,  6452,  6290,  6128,  5968,
168
-     5808,  5655,  5503,  5356,  5209,  5069,  4929,  4794,  4660,  4532,
169
-     4404,  4282,  4160,  4041,  3922,  3803,  3684,  3568,  3452,  3343,
170
-     3234,  3131,  3029,  2931,  2833,  2741,  2649,  2563,  2477,  2396,
171
-     2316,  2236,  2157,  2083,  2009,  1940,  1871,  1807,  1743,  1683,
172
-     1623,  1567,  1511,  1459,  1407,  1357,  1307,  1257,  1207,  1159,
173
-     1111,  1067,  1023,   983,   943,   905,   868,   834,   800,   769,
174
-      738,   709,   681,   653,   625,   600,   575,   552,   529,   508,
175
-      487,   466,   447,   428,   410,   392,   376,   360,   344,   328,
176
-      313,   298,   283,   268,   255,   242,   230,   218,   207,   196,
177
-      186,   176,   167,   158,   150,   142,   135,   128,   121,   114,
178
-      108,   102,    97,    92,    87,    82,    78,    74,    70,    66,
179
-       62,    58,    54,    50,    47,    44,    41,    38,    35,    32,
180
-       30,    28,    26,    24,    22,    20,    18,    16,    14,    13,
181
-       12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
182
-        2,     1,     0
162
+        16384, 16139, 15894, 15649, 15405, 15162, 14919, 14677, 14435, 14195,
163
+        13955, 13717, 13479, 13243, 13008, 12775, 12542, 12310, 12079, 11851,
164
+        11623, 11399, 11176, 10956, 10737, 10521, 10305, 10094,  9883,  9677,
165
+         9471,  9268,  9065,  8862,  8659,  8459,  8260,  8067,  7874,  7688,
166
+         7502,  7321,  7140,  6965,  6790,  6621,  6452,  6290,  6128,  5968,
167
+         5808,  5655,  5503,  5356,  5209,  5069,  4929,  4794,  4660,  4532,
168
+         4404,  4282,  4160,  4041,  3922,  3803,  3684,  3568,  3452,  3343,
169
+         3234,  3131,  3029,  2931,  2833,  2741,  2649,  2563,  2477,  2396,
170
+         2316,  2236,  2157,  2083,  2009,  1940,  1871,  1807,  1743,  1683,
171
+         1623,  1567,  1511,  1459,  1407,  1357,  1307,  1257,  1207,  1159,
172
+         1111,  1067,  1023,   983,   943,   905,   868,   834,   800,   769,
173
+          738,   709,   681,   653,   625,   600,   575,   552,   529,   508,
174
+          487,   466,   447,   428,   410,   392,   376,   360,   344,   328,
175
+          313,   298,   283,   268,   255,   242,   230,   218,   207,   196,
176
+          186,   176,   167,   158,   150,   142,   135,   128,   121,   114,
177
+          108,   102,    97,    92,    87,    82,    78,    74,    70,    66,
178
+           62,    58,    54,    50,    47,    44,    41,    38,    35,    32,
179
+           30,    28,    26,    24,    22,    20,    18,    16,    14,    13,
180
+           12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
181
+            2,     1,     0
183 182
     },
184 183
     {
185
-    16384, 16149, 15915, 15681, 15447, 15214, 14981, 14749, 14517, 14286,
186
-    14055, 13827, 13599, 13373, 13147, 12923, 12699, 12476, 12253, 12034,
187
-    11815, 11599, 11383, 11171, 10959, 10750, 10541, 10337, 10133,  9933,
188
-     9733,  9536,  9339,  9142,  8945,  8751,  8557,  8369,  8181,  7998,
189
-     7816,  7638,  7460,  7288,  7116,  6950,  6785,  6625,  6465,  6306,
190
-     6147,  5995,  5843,  5697,  5551,  5411,  5271,  5135,  5000,  4871,
191
-     4742,  4618,  4495,  4374,  4253,  4132,  4011,  3893,  3775,  3663,
192
-     3552,  3446,  3340,  3239,  3138,  3043,  2948,  2858,  2768,  2684,
193
-     2600,  2516,  2433,  2355,  2278,  2205,  2133,  2065,  1997,  1932,
194
-     1867,  1807,  1747,  1690,  1634,  1580,  1526,  1472,  1418,  1366,
195
-     1314,  1266,  1218,  1174,  1130,  1088,  1047,  1009,   971,   936,
196
-      901,   868,   836,   804,   772,   743,   714,   685,   658,   631,
197
-      606,   582,   559,   536,   515,   494,   475,   456,   437,   418,
198
-      399,   380,   362,   344,   328,   312,   297,   283,   270,   257,
199
-      245,   233,   222,   211,   201,   191,   181,   172,   163,   155,
200
-      147,   139,   132,   125,   119,   113,   107,   101,    96,    91,
201
-       86,    81,    76,    71,    66,    62,    58,    54,    50,    46,
202
-       43,    40,    37,    34,    31,    28,    26,    24,    22,    20,
203
-       18,    16,    14,    12,    10,     8,     6,     5,     4,     3,
204
-        2,     1,     0
184
+        16384, 16149, 15915, 15681, 15447, 15214, 14981, 14749, 14517, 14286,
185
+        14055, 13827, 13599, 13373, 13147, 12923, 12699, 12476, 12253, 12034,
186
+        11815, 11599, 11383, 11171, 10959, 10750, 10541, 10337, 10133,  9933,
187
+         9733,  9536,  9339,  9142,  8945,  8751,  8557,  8369,  8181,  7998,
188
+         7816,  7638,  7460,  7288,  7116,  6950,  6785,  6625,  6465,  6306,
189
+         6147,  5995,  5843,  5697,  5551,  5411,  5271,  5135,  5000,  4871,
190
+         4742,  4618,  4495,  4374,  4253,  4132,  4011,  3893,  3775,  3663,
191
+         3552,  3446,  3340,  3239,  3138,  3043,  2948,  2858,  2768,  2684,
192
+         2600,  2516,  2433,  2355,  2278,  2205,  2133,  2065,  1997,  1932,
193
+         1867,  1807,  1747,  1690,  1634,  1580,  1526,  1472,  1418,  1366,
194
+         1314,  1266,  1218,  1174,  1130,  1088,  1047,  1009,   971,   936,
195
+          901,   868,   836,   804,   772,   743,   714,   685,   658,   631,
196
+          606,   582,   559,   536,   515,   494,   475,   456,   437,   418,
197
+          399,   380,   362,   344,   328,   312,   297,   283,   270,   257,
198
+          245,   233,   222,   211,   201,   191,   181,   172,   163,   155,
199
+          147,   139,   132,   125,   119,   113,   107,   101,    96,    91,
200
+           86,    81,    76,    71,    66,    62,    58,    54,    50,    46,
201
+           43,    40,    37,    34,    31,    28,    26,    24,    22,    20,
202
+           18,    16,    14,    12,    10,     8,     6,     5,     4,     3,
203
+            2,     1,     0
205 204
     },
206 205
     {
207
-    16384, 16159, 15934, 15709, 15485, 15261, 15038, 14816, 14594, 14373,
208
-    14152, 13933, 13714, 13497, 13280, 13065, 12850, 12636, 12422, 12211,
209
-    12000, 11791, 11583, 11378, 11173, 10971, 10769, 10571, 10373, 10179,
210
-     9985,  9793,  9601,  9409,  9217,  9029,  8842,  8658,  8475,  8297,
211
-     8120,  7946,  7773,  7604,  7435,  7271,  7108,  6950,  6792,  6634,
212
-     6477,  6326,  6175,  6029,  5883,  5742,  5602,  5466,  5330,  5199,
213
-     5068,  4943,  4818,  4696,  4574,  4452,  4330,  4211,  4093,  3979,
214
-     3866,  3759,  3652,  3549,  3446,  3348,  3250,  3157,  3065,  2977,
215
-     2889,  2802,  2716,  2634,  2553,  2476,  2399,  2326,  2254,  2185,
216
-     2117,  2052,  1987,  1926,  1866,  1808,  1750,  1692,  1634,  1578,
217
-     1522,  1470,  1418,  1369,  1321,  1275,  1229,  1187,  1145,  1105,
218
-     1066,  1027,   991,   955,   919,   883,   850,   817,   786,   756,
219
-      728,   700,   674,   648,   624,   600,   578,   556,   534,   512,
220
-      490,   468,   447,   426,   407,   388,   371,   354,   338,   322,
221
-      307,   293,   280,   267,   255,   243,   231,   219,   209,   199,
222
-      189,   179,   170,   161,   153,   145,   138,   131,   124,   117,
223
-      111,   105,    99,    93,    87,    81,    76,    71,    66,    61,
224
-       57,    53,    49,    45,    42,    39,    36,    33,    30,    27,
225
-       24,    21,    19,    17,    15,    13,    11,     9,     7,     5,
226
-        3,     1,     0
206
+        16384, 16159, 15934, 15709, 15485, 15261, 15038, 14816, 14594, 14373,
207
+        14152, 13933, 13714, 13497, 13280, 13065, 12850, 12636, 12422, 12211,
208
+        12000, 11791, 11583, 11378, 11173, 10971, 10769, 10571, 10373, 10179,
209
+         9985,  9793,  9601,  9409,  9217,  9029,  8842,  8658,  8475,  8297,
210
+         8120,  7946,  7773,  7604,  7435,  7271,  7108,  6950,  6792,  6634,
211
+         6477,  6326,  6175,  6029,  5883,  5742,  5602,  5466,  5330,  5199,
212
+         5068,  4943,  4818,  4696,  4574,  4452,  4330,  4211,  4093,  3979,
213
+         3866,  3759,  3652,  3549,  3446,  3348,  3250,  3157,  3065,  2977,
214
+         2889,  2802,  2716,  2634,  2553,  2476,  2399,  2326,  2254,  2185,
215
+         2117,  2052,  1987,  1926,  1866,  1808,  1750,  1692,  1634,  1578,
216
+         1522,  1470,  1418,  1369,  1321,  1275,  1229,  1187,  1145,  1105,
217
+         1066,  1027,   991,   955,   919,   883,   850,   817,   786,   756,
218
+          728,   700,   674,   648,   624,   600,   578,   556,   534,   512,
219
+          490,   468,   447,   426,   407,   388,   371,   354,   338,   322,
220
+          307,   293,   280,   267,   255,   243,   231,   219,   209,   199,
221
+          189,   179,   170,   161,   153,   145,   138,   131,   124,   117,
222
+          111,   105,    99,    93,    87,    81,    76,    71,    66,    61,
223
+           57,    53,    49,    45,    42,    39,    36,    33,    30,    27,
224
+           24,    21,    19,    17,    15,    13,    11,     9,     7,     5,
225
+            3,     1,     0
227 226
     },
228 227
     {
229
-    16384, 16169, 15954, 15739, 15524, 15310, 15096, 14883, 14670, 14458,
230
-    14246, 14035, 13824, 13614, 13405, 13198, 12991, 12785, 12579, 12376,
231
-    12173, 11972, 11772, 11574, 11377, 11182, 10987, 10795, 10603, 10414,
232
-    10226, 10040,  9854,  9668,  9482,  9299,  9116,  8937,  8759,  8585,
233
-     8411,  8241,  8071,  7906,  7741,  7580,  7419,  7263,  7107,  6952,
234
-     6797,  6647,  6497,  6353,  6209,  6070,  5931,  5796,  5661,  5531,
235
-     5401,  5275,  5150,  5027,  4904,  4781,  4658,  4538,  4419,  4304,
236
-     4190,  4081,  3972,  3867,  3762,  3662,  3562,  3467,  3372,  3281,
237
-     3191,  3101,  3012,  2928,  2844,  2764,  2684,  2608,  2533,  2460,
238
-     2387,  2318,  2250,  2185,  2121,  2059,  1997,  1935,  1873,  1813,
239
-     1754,  1698,  1642,  1588,  1535,  1483,  1433,  1384,  1338,  1292,
240
-     1249,  1206,  1165,  1125,  1085,  1045,  1008,   971,   937,   903,
241
-      871,   840,   810,   780,   752,   724,   698,   672,   647,   622,
242
-      597,   572,   548,   524,   502,   480,   460,   440,   421,   403,
243
-      386,   369,   353,   337,   323,   309,   295,   281,   268,   255,
244
-      243,   231,   220,   209,   199,   189,   180,   171,   163,   155,
245
-      147,   139,   131,   123,   116,   109,   102,    95,    89,    83,
246
-       77,    72,    67,    62,    57,    52,    48,    44,    40,    36,
247
-       32,    28,    25,    22,    19,    16,    13,    10,     8,     6,
248
-        4,     2,     0
228
+        16384, 16169, 15954, 15739, 15524, 15310, 15096, 14883, 14670, 14458,
229
+        14246, 14035, 13824, 13614, 13405, 13198, 12991, 12785, 12579, 12376,
230
+        12173, 11972, 11772, 11574, 11377, 11182, 10987, 10795, 10603, 10414,
231
+        10226, 10040,  9854,  9668,  9482,  9299,  9116,  8937,  8759,  8585,
232
+         8411,  8241,  8071,  7906,  7741,  7580,  7419,  7263,  7107,  6952,
233
+         6797,  6647,  6497,  6353,  6209,  6070,  5931,  5796,  5661,  5531,
234
+         5401,  5275,  5150,  5027,  4904,  4781,  4658,  4538,  4419,  4304,
235
+         4190,  4081,  3972,  3867,  3762,  3662,  3562,  3467,  3372,  3281,
236
+         3191,  3101,  3012,  2928,  2844,  2764,  2684,  2608,  2533,  2460,
237
+         2387,  2318,  2250,  2185,  2121,  2059,  1997,  1935,  1873,  1813,
238
+         1754,  1698,  1642,  1588,  1535,  1483,  1433,  1384,  1338,  1292,
239
+         1249,  1206,  1165,  1125,  1085,  1045,  1008,   971,   937,   903,
240
+          871,   840,   810,   780,   752,   724,   698,   672,   647,   622,
241
+          597,   572,   548,   524,   502,   480,   460,   440,   421,   403,
242
+          386,   369,   353,   337,   323,   309,   295,   281,   268,   255,
243
+          243,   231,   220,   209,   199,   189,   180,   171,   163,   155,
244
+          147,   139,   131,   123,   116,   109,   102,    95,    89,    83,
245
+           77,    72,    67,    62,    57,    52,    48,    44,    40,    36,
246
+           32,    28,    25,    22,    19,    16,    13,    10,     8,     6,
247
+            4,     2,     0
249 248
     },
250 249
     {
251
-    16384, 16177, 15970, 15764, 15558, 15353, 15148, 14944, 14740, 14537,
252
-    14334, 14132, 13930, 13729, 13529, 13330, 13131, 12933, 12735, 12539,
253
-    12343, 12150, 11957, 11766, 11576, 11388, 11200, 11015, 10830, 10647,
254
-    10465, 10285, 10105,  9925,  9745,  9568,  9391,  9218,  9045,  8876,
255
-     8707,  8541,  8375,  8213,  8051,  7894,  7737,  7583,  7429,  7277,
256
-     7125,  6977,  6830,  6687,  6544,  6406,  6268,  6133,  5998,  5868,
257
-     5738,  5612,  5487,  5364,  5241,  5118,  4995,  4875,  4755,  4640,
258
-     4525,  4414,  4304,  4198,  4092,  3990,  3888,  3790,  3693,  3600,
259
-     3507,  3415,  3323,  3235,  3147,  3064,  2981,  2902,  2823,  2746,
260
-     2670,  2594,  2522,  2450,  2382,  2314,  2248,  2182,  2116,  2050,
261
-     1987,  1924,  1864,  1804,  1748,  1692,  1638,  1585,  1534,  1484,
262
-     1437,  1390,  1346,  1302,  1258,  1215,  1174,  1133,  1095,  1057,
263
-     1021,   986,   952,   918,   887,   856,   827,   798,   770,   742,
264
-      714,   686,   659,   632,   607,   582,   559,   536,   514,   492,
265
-      472,   452,   433,   415,   398,   381,   364,   348,   333,   318,
266
-      304,   290,   277,   264,   252,   240,   229,   218,   208,   198,
267
-      188,   178,   168,   158,   149,   140,   132,   124,   116,   108,
268
-      101,    94,    87,    81,    75,    69,    64,    59,    54,    49,
269
-       44,    39,    35,    31,    27,    23,    19,    15,    12,     9,
270
-        6,     3,     0
250
+        16384, 16177, 15970, 15764, 15558, 15353, 15148, 14944, 14740, 14537,
251
+        14334, 14132, 13930, 13729, 13529, 13330, 13131, 12933, 12735, 12539,
252
+        12343, 12150, 11957, 11766, 11576, 11388, 11200, 11015, 10830, 10647,
253
+        10465, 10285, 10105,  9925,  9745,  9568,  9391,  9218,  9045,  8876,
254
+         8707,  8541,  8375,  8213,  8051,  7894,  7737,  7583,  7429,  7277,
255
+         7125,  6977,  6830,  6687,  6544,  6406,  6268,  6133,  5998,  5868,
256
+         5738,  5612,  5487,  5364,  5241,  5118,  4995,  4875,  4755,  4640,
257
+         4525,  4414,  4304,  4198,  4092,  3990,  3888,  3790,  3693,  3600,
258
+         3507,  3415,  3323,  3235,  3147,  3064,  2981,  2902,  2823,  2746,
259
+         2670,  2594,  2522,  2450,  2382,  2314,  2248,  2182,  2116,  2050,
260
+         1987,  1924,  1864,  1804,  1748,  1692,  1638,  1585,  1534,  1484,
261
+         1437,  1390,  1346,  1302,  1258,  1215,  1174,  1133,  1095,  1057,
262
+         1021,   986,   952,   918,   887,   856,   827,   798,   770,   742,
263
+          714,   686,   659,   632,   607,   582,   559,   536,   514,   492,
264
+          472,   452,   433,   415,   398,   381,   364,   348,   333,   318,
265
+          304,   290,   277,   264,   252,   240,   229,   218,   208,   198,
266
+          188,   178,   168,   158,   149,   140,   132,   124,   116,   108,
267
+          101,    94,    87,    81,    75,    69,    64,    59,    54,    49,
268
+           44,    39,    35,    31,    27,    23,    19,    15,    12,     9,
269
+            6,     3,     0
271 270
     }
272 271
 };
273 272
 
274 273
 
275 274
 static const uint16_t cf_tables_3[5][257] = {
276 275
     {
277
-    16384, 16187, 15990, 15793, 15597, 15401, 15205, 15009, 14813, 14618,
278
-    14423, 14230, 14037, 13845, 13653, 13463, 13273, 13083, 12894, 12706,
279
-    12518, 12332, 12146, 11962, 11778, 11597, 11416, 11237, 11059, 10882,
280
-    10706, 10532, 10358, 10184, 10010,  9838,  9666,  9497,  9328,  9163,
281
-     8999,  8837,  8675,  8517,  8359,  8205,  8051,  7901,  7751,  7602,
282
-     7453,  7308,  7163,  7022,  6882,  6745,  6609,  6476,  6343,  6214,
283
-     6085,  5960,  5835,  5712,  5589,  5466,  5343,  5223,  5103,  4987,
284
-     4872,  4761,  4650,  4542,  4435,  4332,  4229,  4130,  4031,  3936,
285
-     3841,  3747,  3653,  3563,  3473,  3387,  3302,  3220,  3138,  3059,
286
-     2980,  2905,  2830,  2759,  2688,  2619,  2550,  2481,  2412,  2345,
287
-     2278,  2215,  2152,  2092,  2032,  1974,  1917,  1863,  1809,  1758,
288
-     1707,  1659,  1611,  1564,  1517,  1473,  1429,  1387,  1346,  1307,
289
-     1268,  1230,  1193,  1158,  1123,  1090,  1058,  1026,   994,   962,
290
-      930,   899,   869,   841,   813,   786,   760,   735,   710,   687,
291
-      664,   643,   622,   602,   582,   562,   543,   525,   507,   490,
292
-      473,   457,   442,   427,   412,   398,   385,   373,   361,   349,
293
-      337,   325,   313,   301,   290,   279,   269,   259,   249,   240,
294
-      231,   222,   214,   206,   199,   192,   185,   178,   171,   165,
295
-      159,   153,   148,   143,   138,   133,   128,   123,   119,   115,
296
-      111,   107,   103,    99,    95,    91,    87,    83,    80,    77,
297
-       74,    71,    68,    65,    63,    61,    59,    57,    55,    53,
298
-       51,    49,    47,    45,    43,    41,    40,    39,    38,    37,
299
-       36,    35,    34,    33,    32,    31,    30,    29,    28,    27,
300
-       26,    25,    24,    23,    22,    21,    20,    19,    18,    17,
301
-       16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
302
-        6,     5,     4,     3,     2,     1,     0
276
+        16384, 16187, 15990, 15793, 15597, 15401, 15205, 15009, 14813, 14618,
277
+        14423, 14230, 14037, 13845, 13653, 13463, 13273, 13083, 12894, 12706,
278
+        12518, 12332, 12146, 11962, 11778, 11597, 11416, 11237, 11059, 10882,
279
+        10706, 10532, 10358, 10184, 10010,  9838,  9666,  9497,  9328,  9163,
280
+         8999,  8837,  8675,  8517,  8359,  8205,  8051,  7901,  7751,  7602,
281
+         7453,  7308,  7163,  7022,  6882,  6745,  6609,  6476,  6343,  6214,
282
+         6085,  5960,  5835,  5712,  5589,  5466,  5343,  5223,  5103,  4987,
283
+         4872,  4761,  4650,  4542,  4435,  4332,  4229,  4130,  4031,  3936,
284
+         3841,  3747,  3653,  3563,  3473,  3387,  3302,  3220,  3138,  3059,
285
+         2980,  2905,  2830,  2759,  2688,  2619,  2550,  2481,  2412,  2345,
286
+         2278,  2215,  2152,  2092,  2032,  1974,  1917,  1863,  1809,  1758,
287
+         1707,  1659,  1611,  1564,  1517,  1473,  1429,  1387,  1346,  1307,
288
+         1268,  1230,  1193,  1158,  1123,  1090,  1058,  1026,   994,   962,
289
+          930,   899,   869,   841,   813,   786,   760,   735,   710,   687,
290
+          664,   643,   622,   602,   582,   562,   543,   525,   507,   490,
291
+          473,   457,   442,   427,   412,   398,   385,   373,   361,   349,
292
+          337,   325,   313,   301,   290,   279,   269,   259,   249,   240,
293
+          231,   222,   214,   206,   199,   192,   185,   178,   171,   165,
294
+          159,   153,   148,   143,   138,   133,   128,   123,   119,   115,
295
+          111,   107,   103,    99,    95,    91,    87,    83,    80,    77,
296
+           74,    71,    68,    65,    63,    61,    59,    57,    55,    53,
297
+           51,    49,    47,    45,    43,    41,    40,    39,    38,    37,
298
+           36,    35,    34,    33,    32,    31,    30,    29,    28,    27,
299
+           26,    25,    24,    23,    22,    21,    20,    19,    18,    17,
300
+           16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
301
+            6,     5,     4,     3,     2,     1,     0
303 302
     },
304 303
     {
305
-    16384, 16195, 16006, 15817, 15629, 15441, 15253, 15065, 14878, 14692,
306
-    14506, 14321, 14136, 13952, 13768, 13585, 13402, 13219, 13037, 12857,
307
-    12677, 12499, 12321, 12144, 11967, 11792, 11617, 11444, 11271, 11100,
308
-    10930, 10762, 10594, 10426, 10258, 10091,  9925,  9761,  9598,  9438,
309
-     9278,  9120,  8963,  8809,  8655,  8504,  8354,  8207,  8060,  7914,
310
-     7769,  7627,  7485,  7347,  7209,  7074,  6939,  6807,  6676,  6548,
311
-     6420,  6296,  6172,  6050,  5928,  5806,  5684,  5564,  5444,  5328,
312
-     5212,  5100,  4988,  4879,  4771,  4667,  4563,  4462,  4362,  4265,
313
-     4169,  4073,  3978,  3886,  3795,  3707,  3619,  3535,  3451,  3369,
314
-     3288,  3210,  3133,  3059,  2985,  2913,  2841,  2769,  2697,  2627,
315
-     2557,  2490,  2424,  2360,  2297,  2237,  2177,  2119,  2062,  2007,
316
-     1953,  1901,  1849,  1798,  1748,  1700,  1652,  1607,  1562,  1519,
317
-     1476,  1435,  1394,  1355,  1317,  1281,  1245,  1210,  1175,  1140,
318
-     1105,  1071,  1037,  1005,   973,   943,   913,   885,   857,   830,
319
-      804,   779,   754,   731,   708,   685,   663,   642,   621,   601,
320
-      581,   563,   545,   528,   511,   495,   479,   463,   448,   433,
321
-      419,   405,   391,   377,   364,   351,   338,   326,   314,   302,
322
-      291,   280,   270,   260,   251,   242,   234,   226,   218,   210,
323
-      202,   195,   188,   181,   174,   168,   162,   156,   150,   144,
324
-      139,   134,   129,   124,   119,   114,   109,   104,   100,    96,
325
-       92,    88,    84,    80,    77,    74,    71,    68,    65,    62,
326
-       59,    56,    54,    52,    50,    48,    46,    44,    42,    40,
327
-       38,    36,    34,    33,    32,    31,    30,    29,    28,    27,
328
-       26,    25,    24,    23,    22,    21,    20,    19,    18,    17,
329
-       16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
330
-        6,     5,     4,     3,     2,     1,     0
304
+        16384, 16195, 16006, 15817, 15629, 15441, 15253, 15065, 14878, 14692,
305
+        14506, 14321, 14136, 13952, 13768, 13585, 13402, 13219, 13037, 12857,
306
+        12677, 12499, 12321, 12144, 11967, 11792, 11617, 11444, 11271, 11100,
307
+        10930, 10762, 10594, 10426, 10258, 10091,  9925,  9761,  9598,  9438,
308
+         9278,  9120,  8963,  8809,  8655,  8504,  8354,  8207,  8060,  7914,
309
+         7769,  7627,  7485,  7347,  7209,  7074,  6939,  6807,  6676,  6548,
310
+         6420,  6296,  6172,  6050,  5928,  5806,  5684,  5564,  5444,  5328,
311
+         5212,  5100,  4988,  4879,  4771,  4667,  4563,  4462,  4362,  4265,
312
+         4169,  4073,  3978,  3886,  3795,  3707,  3619,  3535,  3451,  3369,
313
+         3288,  3210,  3133,  3059,  2985,  2913,  2841,  2769,  2697,  2627,
314
+         2557,  2490,  2424,  2360,  2297,  2237,  2177,  2119,  2062,  2007,
315
+         1953,  1901,  1849,  1798,  1748,  1700,  1652,  1607,  1562,  1519,
316
+         1476,  1435,  1394,  1355,  1317,  1281,  1245,  1210,  1175,  1140,
317
+         1105,  1071,  1037,  1005,   973,   943,   913,   885,   857,   830,
318
+          804,   779,   754,   731,   708,   685,   663,   642,   621,   601,
319
+          581,   563,   545,   528,   511,   495,   479,   463,   448,   433,
320
+          419,   405,   391,   377,   364,   351,   338,   326,   314,   302,
321
+          291,   280,   270,   260,   251,   242,   234,   226,   218,   210,
322
+          202,   195,   188,   181,   174,   168,   162,   156,   150,   144,
323
+          139,   134,   129,   124,   119,   114,   109,   104,   100,    96,
324
+           92,    88,    84,    80,    77,    74,    71,    68,    65,    62,
325
+           59,    56,    54,    52,    50,    48,    46,    44,    42,    40,
326
+           38,    36,    34,    33,    32,    31,    30,    29,    28,    27,
327
+           26,    25,    24,    23,    22,    21,    20,    19,    18,    17,
328
+           16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
329
+            6,     5,     4,     3,     2,     1,     0
331 330
     },
332 331
     {
333
-    16384, 16203, 16022, 15842, 15662, 15482, 15302, 15122, 14942, 14763,
334
-    14584, 14406, 14228, 14051, 13874, 13698, 13522, 13347, 13172, 12998,
335
-    12824, 12652, 12480, 12310, 12140, 11971, 11803, 11637, 11471, 11307,
336
-    11143, 10980, 10817, 10654, 10491, 10330, 10169, 10011,  9853,  9697,
337
-     9542,  9389,  9236,  9086,  8936,  8789,  8642,  8498,  8355,  8212,
338
-     8070,  7931,  7792,  7656,  7520,  7388,  7256,  7126,  6996,  6870,
339
-     6744,  6621,  6498,  6377,  6256,  6135,  6014,  5895,  5776,  5660,
340
-     5545,  5433,  5321,  5212,  5104,  4999,  4895,  4793,  4692,  4594,
341
-     4496,  4400,  4304,  4211,  4118,  4028,  3939,  3853,  3767,  3684,
342
-     3601,  3521,  3441,  3364,  3287,  3212,  3137,  3062,  2987,  2915,
343
-     2843,  2773,  2704,  2638,  2572,  2508,  2445,  2384,  2324,  2266,
344
-     2208,  2153,  2098,  2044,  1990,  1939,  1888,  1839,  1791,  1745,
345
-     1699,  1655,  1611,  1569,  1527,  1487,  1448,  1409,  1370,  1331,
346
-     1292,  1255,  1218,  1183,  1148,  1115,  1082,  1051,  1020,   990,
347
-      960,   932,   904,   878,   852,   826,   801,   777,   753,   731,
348
-      709,   687,   666,   645,   625,   605,   586,   567,   550,   533,
349
-      516,   499,   482,   465,   449,   433,   418,   403,   389,   375,
350
-      362,   349,   337,   325,   314,   303,   293,   283,   273,   263,
351
-      254,   245,   236,   227,   219,   211,   204,   197,   190,   183,
352
-      177,   171,   165,   159,   153,   147,   141,   135,   130,   125,
353
-      120,   115,   110,   105,   101,    97,    93,    89,    85,    81,
354
-       77,    74,    71,    68,    65,    62,    59,    56,    53,    51,
355
-       49,    47,    45,    43,    41,    39,    37,    35,    33,    31,
356
-       29,    27,    25,    23,    22,    21,    20,    19,    18,    17,
357
-       16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
358
-        6,     5,     4,     3,     2,     1,     0
332
+        16384, 16203, 16022, 15842, 15662, 15482, 15302, 15122, 14942, 14763,
333
+        14584, 14406, 14228, 14051, 13874, 13698, 13522, 13347, 13172, 12998,
334
+        12824, 12652, 12480, 12310, 12140, 11971, 11803, 11637, 11471, 11307,
335
+        11143, 10980, 10817, 10654, 10491, 10330, 10169, 10011,  9853,  9697,
336
+         9542,  9389,  9236,  9086,  8936,  8789,  8642,  8498,  8355,  8212,
337
+         8070,  7931,  7792,  7656,  7520,  7388,  7256,  7126,  6996,  6870,
338
+         6744,  6621,  6498,  6377,  6256,  6135,  6014,  5895,  5776,  5660,
339
+         5545,  5433,  5321,  5212,  5104,  4999,  4895,  4793,  4692,  4594,
340
+         4496,  4400,  4304,  4211,  4118,  4028,  3939,  3853,  3767,  3684,
341
+         3601,  3521,  3441,  3364,  3287,  3212,  3137,  3062,  2987,  2915,
342
+         2843,  2773,  2704,  2638,  2572,  2508,  2445,  2384,  2324,  2266,
343
+         2208,  2153,  2098,  2044,  1990,  1939,  1888,  1839,  1791,  1745,
344
+         1699,  1655,  1611,  1569,  1527,  1487,  1448,  1409,  1370,  1331,
345
+         1292,  1255,  1218,  1183,  1148,  1115,  1082,  1051,  1020,   990,
346
+          960,   932,   904,   878,   852,   826,   801,   777,   753,   731,
347
+          709,   687,   666,   645,   625,   605,   586,   567,   550,   533,
348
+          516,   499,   482,   465,   449,   433,   418,   403,   389,   375,
349
+          362,   349,   337,   325,   314,   303,   293,   283,   273,   263,
350
+          254,   245,   236,   227,   219,   211,   204,   197,   190,   183,
351
+          177,   171,   165,   159,   153,   147,   141,   135,   130,   125,
352
+          120,   115,   110,   105,   101,    97,    93,    89,    85,    81,
353
+           77,    74,    71,    68,    65,    62,    59,    56,    53,    51,
354
+           49,    47,    45,    43,    41,    39,    37,    35,    33,    31,
355
+           29,    27,    25,    23,    22,    21,    20,    19,    18,    17,
356
+           16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
357
+            6,     5,     4,     3,     2,     1,     0
359 358
     },
360 359
     {
361
-    16384, 16210, 16036, 15863, 15690, 15517, 15344, 15172, 15000, 14828,
362
-    14656, 14485, 14314, 14145, 13976, 13808, 13640, 13472, 13304, 13137,
363
-    12970, 12804, 12639, 12475, 12312, 12149, 11987, 11827, 11667, 11508,
364
-    11349, 11192, 11035, 10878, 10721, 10565, 10410, 10257, 10104,  9953,
365
-     9802,  9654,  9506,  9359,  9213,  9070,  8927,  8787,  8647,  8508,
366
-     8369,  8233,  8097,  7964,  7831,  7700,  7570,  7442,  7315,  7190,
367
-     7065,  6943,  6821,  6701,  6581,  6461,  6341,  6223,  6105,  5990,
368
-     5876,  5764,  5653,  5545,  5437,  5331,  5226,  5124,  5022,  4924,
369
-     4826,  4729,  4632,  4538,  4444,  4353,  4262,  4174,  4087,  4002,
370
-     3917,  3835,  3753,  3674,  3595,  3518,  3441,  3364,  3287,  3212,
371
-     3138,  3066,  2995,  2926,  2858,  2792,  2726,  2662,  2599,  2538,
372
-     2478,  2420,  2362,  2305,  2249,  2195,  2141,  2089,  2037,  1988,
373
-     1939,  1891,  1844,  1799,  1754,  1711,  1668,  1626,  1584,  1542,
374
-     1500,  1459,  1418,  1380,  1342,  1305,  1269,  1234,  1199,  1166,
375
-     1133,  1102,  1071,  1041,  1012,   983,   954,   926,   899,   872,
376
-      847,   822,   798,   774,   751,   728,   707,   686,   666,   646,
377
-      627,   608,   589,   570,   552,   534,   517,   500,   484,   468,
378
-      453,   438,   424,   410,   397,   384,   372,   360,   348,   336,
379
-      325,   314,   303,   293,   283,   273,   264,   255,   246,   237,
380
-      229,   221,   213,   205,   197,   189,   181,   174,   167,   160,
381
-      154,   148,   142,   136,   131,   126,   121,   116,   111,   106,
382
-      101,    97,    93,    89,    85,    81,    77,    73,    70,    67,
383
-       64,    61,    58,    55,    52,    49,    46,    43,    40,    37,
384
-       35,    33,    31,    29,    27,    25,    23,    21,    19,    17,
385
-       16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
386
-        6,     5,     4,     3,     2,     1,     0
360
+        16384, 16210, 16036, 15863, 15690, 15517, 15344, 15172, 15000, 14828,
361
+        14656, 14485, 14314, 14145, 13976, 13808, 13640, 13472, 13304, 13137,
362
+        12970, 12804, 12639, 12475, 12312, 12149, 11987, 11827, 11667, 11508,
363
+        11349, 11192, 11035, 10878, 10721, 10565, 10410, 10257, 10104,  9953,
364
+         9802,  9654,  9506,  9359,  9213,  9070,  8927,  8787,  8647,  8508,
365
+         8369,  8233,  8097,  7964,  7831,  7700,  7570,  7442,  7315,  7190,
366
+         7065,  6943,  6821,  6701,  6581,  6461,  6341,  6223,  6105,  5990,
367
+         5876,  5764,  5653,  5545,  5437,  5331,  5226,  5124,  5022,  4924,
368
+         4826,  4729,  4632,  4538,  4444,  4353,  4262,  4174,  4087,  4002,
369
+         3917,  3835,  3753,  3674,  3595,  3518,  3441,  3364,  3287,  3212,
370
+         3138,  3066,  2995,  2926,  2858,  2792,  2726,  2662,  2599,  2538,
371
+         2478,  2420,  2362,  2305,  2249,  2195,  2141,  2089,  2037,  1988,
372
+         1939,  1891,  1844,  1799,  1754,  1711,  1668,  1626,  1584,  1542,
373
+         1500,  1459,  1418,  1380,  1342,  1305,  1269,  1234,  1199,  1166,
374
+         1133,  1102,  1071,  1041,  1012,   983,   954,   926,   899,   872,
375
+          847,   822,   798,   774,   751,   728,   707,   686,   666,   646,
376
+          627,   608,   589,   570,   552,   534,   517,   500,   484,   468,
377
+          453,   438,   424,   410,   397,   384,   372,   360,   348,   336,
378
+          325,   314,   303,   293,   283,   273,   264,   255,   246,   237,
379
+          229,   221,   213,   205,   197,   189,   181,   174,   167,   160,
380
+          154,   148,   142,   136,   131,   126,   121,   116,   111,   106,
381
+          101,    97,    93,    89,    85,    81,    77,    73,    70,    67,
382
+           64,    61,    58,    55,    52,    49,    46,    43,    40,    37,
383
+           35,    33,    31,    29,    27,    25,    23,    21,    19,    17,
384
+           16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
385
+            6,     5,     4,     3,     2,     1,     0
387 386
     },
388 387
     {
389
-    16384, 16218, 16052, 15886, 15720, 15554, 15389, 15224, 15059, 14895,
390
-    14731, 14567, 14403, 14240, 14077, 13915, 13753, 13591, 13429, 13269,
391
-    13109, 12950, 12791, 12633, 12476, 12320, 12164, 12009, 11854, 11701,
392
-    11548, 11396, 11244, 11092, 10940, 10790, 10640, 10492, 10344, 10198,
393
-    10052,  9908,  9764,  9622,  9481,  9342,  9203,  9066,  8929,  8793,
394
-     8657,  8524,  8391,  8261,  8131,  8003,  7875,  7749,  7624,  7502,
395
-     7380,  7260,  7140,  7022,  6904,  6786,  6668,  6551,  6435,  6322,
396
-     6209,  6099,  5989,  5881,  5773,  5668,  5563,  5461,  5359,  5260,
397
-     5161,  5063,  4965,  4871,  4777,  4686,  4595,  4506,  4417,  4331,
398
-     4245,  4162,  4079,  3999,  3919,  3841,  3763,  3685,  3607,  3530,
399
-     3454,  3380,  3307,  3236,  3166,  3097,  3029,  2963,  2897,  2834,
400
-     2771,  2710,  2650,  2591,  2532,  2475,  2418,  2363,  2309,  2257,
401
-     2205,  2155,  2105,  2057,  2009,  1963,  1918,  1873,  1828,  1783,
402
-     1738,  1694,  1650,  1607,  1565,  1524,  1484,  1445,  1407,  1369,
403
-     1333,  1297,  1263,  1229,  1197,  1165,  1134,  1103,  1073,  1043,
404
-     1015,   987,   960,   933,   907,   882,   858,   834,   811,   788,
405
-      766,   744,   722,   700,   679,   658,   638,   618,   599,   581,
406
-      563,   545,   528,   511,   495,   480,   465,   451,   437,   423,
407
-      410,   397,   384,   372,   360,   348,   337,   326,   315,   305,
408
-      295,   285,   275,   265,   255,   245,   236,   227,   219,   211,
409
-      203,   195,   188,   181,   174,   167,   161,   155,   149,   143,
410
-      137,   131,   126,   121,   116,   111,   106,   101,    97,    93,
411
-       89,    85,    81,    77,    73,    69,    65,    61,    58,    55,
412
-       52,    49,    46,    43,    40,    37,    34,    32,    30,    28,
413
-       26,    24,    22,    20,    18,    16,    14,    12,    10,     8,
414
-        6,     5,     4,     3,     2,     1,     0
388
+        16384, 16218, 16052, 15886, 15720, 15554, 15389, 15224, 15059, 14895,
389
+        14731, 14567, 14403, 14240, 14077, 13915, 13753, 13591, 13429, 13269,
390
+        13109, 12950, 12791, 12633, 12476, 12320, 12164, 12009, 11854, 11701,
391
+        11548, 11396, 11244, 11092, 10940, 10790, 10640, 10492, 10344, 10198,
392
+        10052,  9908,  9764,  9622,  9481,  9342,  9203,  9066,  8929,  8793,
393
+         8657,  8524,  8391,  8261,  8131,  8003,  7875,  7749,  7624,  7502,
394
+         7380,  7260,  7140,  7022,  6904,  6786,  6668,  6551,  6435,  6322,
395
+         6209,  6099,  5989,  5881,  5773,  5668,  5563,  5461,  5359,  5260,
396
+         5161,  5063,  4965,  4871,  4777,  4686,  4595,  4506,  4417,  4331,
397
+         4245,  4162,  4079,  3999,  3919,  3841,  3763,  3685,  3607,  3530,
398
+         3454,  3380,  3307,  3236,  3166,  3097,  3029,  2963,  2897,  2834,
399
+         2771,  2710,  2650,  2591,  2532,  2475,  2418,  2363,  2309,  2257,
400
+         2205,  2155,  2105,  2057,  2009,  1963,  1918,  1873,  1828,  1783,
401
+         1738,  1694,  1650,  1607,  1565,  1524,  1484,  1445,  1407,  1369,
402
+         1333,  1297,  1263,  1229,  1197,  1165,  1134,  1103,  1073,  1043,
403
+         1015,   987,   960,   933,   907,   882,   858,   834,   811,   788,
404
+          766,   744,   722,   700,   679,   658,   638,   618,   599,   581,
405
+          563,   545,   528,   511,   495,   480,   465,   451,   437,   423,
406
+          410,   397,   384,   372,   360,   348,   337,   326,   315,   305,
407
+          295,   285,   275,   265,   255,   245,   236,   227,   219,   211,
408
+          203,   195,   188,   181,   174,   167,   161,   155,   149,   143,
409
+          137,   131,   126,   121,   116,   111,   106,   101,    97,    93,
410
+           89,    85,    81,    77,    73,    69,    65,    61,    58,    55,
411
+           52,    49,    46,    43,    40,    37,    34,    32,    30,    28,
412
+           26,    24,    22,    20,    18,    16,    14,    12,    10,     8,
413
+            6,     5,     4,     3,     2,     1,     0
415 414
     }
416 415
 };
417 416
 
418 417
 
419
-static const uint16_t * const cf_table[16] = {
418
+static const uint16_t *const cf_table[16] = {
420 419
     cf_tables_1[0], cf_tables_1[1], cf_tables_1[2], cf_tables_2[0],
421 420
     cf_tables_2[1], cf_tables_2[2], cf_tables_2[3], cf_tables_2[4],
422 421
     cf_tables_2[5], cf_tables_2[6], cf_tables_2[7], cf_tables_3[0],
... ...
@@ -424,10 +421,8 @@ static const uint16_t * const cf_table[16] = {
424 424
 };
425 425
 
426 426
 
427
-/** Initialize a given lookup table using a given delta
428
- */
429
-static void bgmc_lut_fillp(uint8_t *lut, int *lut_status,
430
-                           int delta)
427
+/** Initialize a given lookup table using a given delta */
428
+static void bgmc_lut_fillp(uint8_t *lut, int *lut_status, int delta)
431 429
 {
432 430
     unsigned int sx, i;
433 431
 
... ...
@@ -446,10 +441,8 @@ static void bgmc_lut_fillp(uint8_t *lut, int *lut_status,
446 446
 }
447 447
 
448 448
 
449
-/** Retune the index of a suitable lookup table for a given delta
450
- */
451
-static uint8_t* bgmc_lut_getp(uint8_t *lut, int *lut_status,
452
-                              int delta)
449
+/** Retune the index of a suitable lookup table for a given delta */
450
+static uint8_t *bgmc_lut_getp(uint8_t *lut, int *lut_status, int delta)
453 451
 {
454 452
     unsigned int i = av_clip(delta, 0, LUT_BUFF - 1);
455 453
 
... ...
@@ -462,11 +455,10 @@ static uint8_t* bgmc_lut_getp(uint8_t *lut, int *lut_status,
462 462
 }
463 463
 
464 464
 
465
-/** Initialize the lookup table arrays
466
- */
465
+/** Initialize the lookup table arrays */
467 466
 int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, int **cf_lut_status)
468 467
 {
469
-    *cf_lut        = av_malloc(sizeof(*cf_lut       ) * LUT_BUFF * 16 * LUT_SIZE);
468
+    *cf_lut        = av_malloc(sizeof(*cf_lut)        * LUT_BUFF * 16 * LUT_SIZE);
470 469
     *cf_lut_status = av_malloc(sizeof(*cf_lut_status) * LUT_BUFF);
471 470
 
472 471
     if (!cf_lut || !cf_lut_status) {
... ...
@@ -474,8 +466,7 @@ int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, int **cf_lut_status)
474 474
         av_log(avctx, AV_LOG_ERROR, "Allocating buffer memory failed.\n");
475 475
         return AVERROR(ENOMEM);
476 476
     } else {
477
-        // initialize lut_status buffer to a value never used to compare
478
-        // against
477
+        // initialize lut_status buffer to a value never used to compare against
479 478
         memset(*cf_lut_status, -1, sizeof(*cf_lut_status) * LUT_BUFF);
480 479
     }
481 480
 
... ...
@@ -483,8 +474,7 @@ int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, int **cf_lut_status)
483 483
 }
484 484
 
485 485
 
486
-/** Release the lookup table arrays
487
- */
486
+/** Release the lookup table arrays */
488 487
 void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status)
489 488
 {
490 489
     av_freep(cf_lut);
... ...
@@ -492,10 +482,9 @@ void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status)
492 492
 }
493 493
 
494 494
 
495
-/** Initialize decoding and reads the first value
496
- */
497
-void ff_bgmc_decode_init(GetBitContext *gb,
498
-                         unsigned int *h, unsigned int *l, unsigned int *v)
495
+/** Initialize decoding and reads the first value */
496
+void ff_bgmc_decode_init(GetBitContext *gb, unsigned int *h, unsigned int *l,
497
+                         unsigned int *v)
499 498
 {
500 499
     *h = TOP_VALUE;
501 500
     *l = 0;
... ...
@@ -503,16 +492,14 @@ void ff_bgmc_decode_init(GetBitContext *gb,
503 503
 }
504 504
 
505 505
 
506
-/** Finish decoding
507
- */
506
+/** Finish decoding */
508 507
 void ff_bgmc_decode_end(GetBitContext *gb)
509 508
 {
510 509
     skip_bits_long(gb, -(VALUE_BITS - 2));
511 510
 }
512 511
 
513 512
 
514
-/** Read and decode a block Gilbert-Moore coded symbol
515
- */
513
+/** Read and decode a block Gilbert-Moore coded symbol */
516 514
 void ff_bgmc_decode(GetBitContext *gb, unsigned int num, int32_t *dst,
517 515
                     int delta, unsigned int sx,
518 516
                     unsigned int *h, unsigned int *l, unsigned int *v,
... ...
@@ -522,9 +509,9 @@ void ff_bgmc_decode(GetBitContext *gb, unsigned int num, int32_t *dst,
522 522
     uint8_t *lut = bgmc_lut_getp(cf_lut, cf_lut_status, delta);
523 523
 
524 524
     // read current state
525
-    unsigned int high   = *h;
526
-    unsigned int low    = *l;
527
-    unsigned int value  = *v;
525
+    unsigned int high  = *h;
526
+    unsigned int low   = *l;
527
+    unsigned int value = *v;
528 528
 
529 529
     lut += sx * LUT_SIZE;
530 530
 
... ...
@@ -539,12 +526,12 @@ void ff_bgmc_decode(GetBitContext *gb, unsigned int num, int32_t *dst,
539 539
 
540 540
         symbol = (symbol >> delta) - 1;
541 541
 
542
-        high = low + ((range * cf_table[sx][(symbol    ) << delta] - (1 << FREQ_BITS)) >> FREQ_BITS);
543
-        low  = low + ((range * cf_table[sx][(symbol + 1) << delta]                   ) >> FREQ_BITS);
542
+        high = low + ((range * cf_table[sx][(symbol)     << delta] - (1 << FREQ_BITS)) >> FREQ_BITS);
543
+        low  = low + ((range * cf_table[sx][(symbol + 1) << delta])                    >> FREQ_BITS);
544 544
 
545 545
         while (1) {
546 546
             if (high >= HALF) {
547
-                if        (low >= HALF) {
547
+                if (low >= HALF) {
548 548
                     value -= HALF;
549 549
                     low   -= HALF;
550 550
                     high  -= HALF;
... ...
@@ -552,12 +539,13 @@ void ff_bgmc_decode(GetBitContext *gb, unsigned int num, int32_t *dst,
552 552
                     value -= FIRST_QTR;
553 553
                     low   -= FIRST_QTR;
554 554
                     high  -= FIRST_QTR;
555
-                } else break;
555
+                } else
556
+                    break;
556 557
             }
557 558
 
558
-            low   *= 2;
559
-            high   = 2 * high  + 1;
560
-            value  = 2 * value + get_bits1(gb);
559
+            low  *= 2;
560
+            high  = 2 * high + 1;
561
+            value = 2 * value + get_bits1(gb);
561 562
         }
562 563
 
563 564
         *dst++ = symbol;
... ...
@@ -57,6 +57,18 @@ AVOutputFormat ff_adx_muxer = {
57 57
 };
58 58
 #endif
59 59
 
60
+#if CONFIG_CAVSVIDEO_MUXER
61
+AVOutputFormat ff_cavsvideo_muxer = {
62
+    .name              = "cavsvideo",
63
+    .long_name         = NULL_IF_CONFIG_SMALL("raw Chinese AVS video"),
64
+    .extensions        = "cavs",
65
+    .audio_codec       = CODEC_ID_NONE,
66
+    .video_codec       = CODEC_ID_CAVS,
67
+    .write_packet      = ff_raw_write_packet,
68
+    .flags             = AVFMT_NOTIMESTAMPS,
69
+};
70
+#endif
71
+
60 72
 #if CONFIG_DIRAC_MUXER
61 73
 AVOutputFormat ff_dirac_muxer = {
62 74
     .name              = "dirac",
... ...
@@ -158,18 +170,6 @@ AVOutputFormat ff_h264_muxer = {
158 158
 };
159 159
 #endif
160 160
 
161
-#if CONFIG_CAVSVIDEO_MUXER
162
-AVOutputFormat ff_cavsvideo_muxer = {
163
-    .name              = "cavsvideo",
164
-    .long_name         = NULL_IF_CONFIG_SMALL("raw Chinese AVS video"),
165
-    .extensions        = "cavs",
166
-    .audio_codec       = CODEC_ID_NONE,
167
-    .video_codec       = CODEC_ID_CAVS,
168
-    .write_packet      = ff_raw_write_packet,
169
-    .flags             = AVFMT_NOTIMESTAMPS,
170
-};
171
-#endif
172
-
173 161
 #if CONFIG_M4V_MUXER
174 162
 AVOutputFormat ff_m4v_muxer = {
175 163
     .name              = "m4v",
... ...
@@ -207,30 +207,6 @@ AVOutputFormat ff_mlp_muxer = {
207 207
 };
208 208
 #endif
209 209
 
210
-#if CONFIG_SRT_MUXER
211
-AVOutputFormat ff_srt_muxer = {
212
-    .name           = "srt",
213
-    .long_name      = NULL_IF_CONFIG_SMALL("SubRip subtitle format"),
214
-    .mime_type      = "application/x-subrip",
215
-    .extensions     = "srt",
216
-    .write_packet   = ff_raw_write_packet,
217
-    .flags          = AVFMT_NOTIMESTAMPS,
218
-    .subtitle_codec = CODEC_ID_SRT,
219
-};
220
-#endif
221
-
222
-#if CONFIG_TRUEHD_MUXER
223
-AVOutputFormat ff_truehd_muxer = {
224
-    .name              = "truehd",
225
-    .long_name         = NULL_IF_CONFIG_SMALL("raw TrueHD"),
226
-    .extensions        = "thd",
227
-    .audio_codec       = CODEC_ID_TRUEHD,
228
-    .video_codec       = CODEC_ID_NONE,
229
-    .write_packet      = ff_raw_write_packet,
230
-    .flags             = AVFMT_NOTIMESTAMPS,
231
-};
232
-#endif
233
-
234 210
 #if CONFIG_MPEG1VIDEO_MUXER
235 211
 AVOutputFormat ff_mpeg1video_muxer = {
236 212
     .name              = "mpeg1video",
... ...
@@ -267,3 +243,27 @@ AVOutputFormat ff_rawvideo_muxer = {
267 267
     .flags             = AVFMT_NOTIMESTAMPS,
268 268
 };
269 269
 #endif
270
+
271
+#if CONFIG_SRT_MUXER
272
+AVOutputFormat ff_srt_muxer = {
273
+    .name              = "srt",
274
+    .long_name         = NULL_IF_CONFIG_SMALL("SubRip subtitle format"),
275
+    .mime_type         = "application/x-subrip",
276
+    .extensions        = "srt",
277
+    .write_packet      = ff_raw_write_packet,
278
+    .flags             = AVFMT_NOTIMESTAMPS,
279
+    .subtitle_codec    = CODEC_ID_SRT,
280
+};
281
+#endif
282
+
283
+#if CONFIG_TRUEHD_MUXER
284
+AVOutputFormat ff_truehd_muxer = {
285
+    .name              = "truehd",
286
+    .long_name         = NULL_IF_CONFIG_SMALL("raw TrueHD"),
287
+    .extensions        = "thd",
288
+    .audio_codec       = CODEC_ID_TRUEHD,
289
+    .video_codec       = CODEC_ID_NONE,
290
+    .write_packet      = ff_raw_write_packet,
291
+    .flags             = AVFMT_NOTIMESTAMPS,
292
+};
293
+#endif