Browse code

avfilter: add showpalette filter

Clément Bœsch authored on 2015/01/15 19:39:06
Showing 8 changed files
... ...
@@ -15,6 +15,7 @@ version <next>:
15 15
 - VOC seeking support
16 16
 - Closed caption Decoder
17 17
 - fspp, uspp, pp7 MPlayer postprocessing filters ported to native filters
18
+- showpalette filter
18 19
 
19 20
 
20 21
 version 2.5:
... ...
@@ -6885,6 +6885,19 @@ pad="2*iw:2*ih:ow-iw:oh-ih"
6885 6885
 @end example
6886 6886
 @end itemize
6887 6887
 
6888
+@section showpalette
6889
+
6890
+Displays the 256 colors palette of each frame. This filter is only relevant for
6891
+@var{pal8} pixel format frames.
6892
+
6893
+It accepts the following option:
6894
+
6895
+@table @option
6896
+@item s
6897
+Set the size of the box used to represent one palette color entry. Default is
6898
+@code{30} (for a @code{30x30} pixel box).
6899
+@end table
6900
+
6888 6901
 @section perspective
6889 6902
 
6890 6903
 Correct perspective of video not recorded perpendicular to the screen.
... ...
@@ -181,6 +181,7 @@ OBJS-$(CONFIG_SETPTS_FILTER)                 += setpts.o
181 181
 OBJS-$(CONFIG_SETSAR_FILTER)                 += vf_aspect.o
182 182
 OBJS-$(CONFIG_SETTB_FILTER)                  += settb.o
183 183
 OBJS-$(CONFIG_SHOWINFO_FILTER)               += vf_showinfo.o
184
+OBJS-$(CONFIG_SHOWPALETTE_FILTER)            += vf_showpalette.o
184 185
 OBJS-$(CONFIG_SHUFFLEPLANES_FILTER)          += vf_shuffleplanes.o
185 186
 OBJS-$(CONFIG_SIGNALSTATS_FILTER)            += vf_signalstats.o
186 187
 OBJS-$(CONFIG_SMARTBLUR_FILTER)              += vf_smartblur.o
... ...
@@ -196,6 +196,7 @@ void avfilter_register_all(void)
196 196
     REGISTER_FILTER(SETSAR,         setsar,         vf);
197 197
     REGISTER_FILTER(SETTB,          settb,          vf);
198 198
     REGISTER_FILTER(SHOWINFO,       showinfo,       vf);
199
+    REGISTER_FILTER(SHOWPALETTE,    showpalette,    vf);
199 200
     REGISTER_FILTER(SHUFFLEPLANES,  shuffleplanes,  vf);
200 201
     REGISTER_FILTER(SIGNALSTATS,    signalstats,    vf);
201 202
     REGISTER_FILTER(SMARTBLUR,      smartblur,      vf);
... ...
@@ -30,8 +30,8 @@
30 30
 #include "libavutil/version.h"
31 31
 
32 32
 #define LIBAVFILTER_VERSION_MAJOR  5
33
-#define LIBAVFILTER_VERSION_MINOR  7
34
-#define LIBAVFILTER_VERSION_MICRO 101
33
+#define LIBAVFILTER_VERSION_MINOR  8
34
+#define LIBAVFILTER_VERSION_MICRO 100
35 35
 
36 36
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
37 37
                                                LIBAVFILTER_VERSION_MINOR, \
38 38
new file mode 100644
... ...
@@ -0,0 +1,127 @@
0
+/*
1
+ * This file is part of FFmpeg.
2
+ *
3
+ * FFmpeg is free software; you can redistribute it and/or
4
+ * modify it under the terms of the GNU Lesser General Public
5
+ * License as published by the Free Software Foundation; either
6
+ * version 2.1 of the License, or (at your option) any later version.
7
+ *
8
+ * FFmpeg is distributed in the hope that it will be useful,
9
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11
+ * Lesser General Public License for more details.
12
+ *
13
+ * You should have received a copy of the GNU Lesser General Public
14
+ * License along with FFmpeg; if not, write to the Free Software
15
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+ */
17
+
18
+/**
19
+ * @file
20
+ * Display frame palette (AV_PIX_FMT_PAL8)
21
+ */
22
+
23
+#include "libavutil/avassert.h"
24
+#include "libavutil/opt.h"
25
+#include "avfilter.h"
26
+#include "formats.h"
27
+#include "internal.h"
28
+#include "video.h"
29
+
30
+typedef struct {
31
+    const AVClass *class;
32
+    int size;
33
+} ShowPaletteContext;
34
+
35
+#define OFFSET(x) offsetof(ShowPaletteContext, x)
36
+#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
37
+static const AVOption showpalette_options[] = {
38
+    { "s", "set pixel box size", OFFSET(size), AV_OPT_TYPE_INT, {.i64=30}, 1, 100, FLAGS },
39
+    { NULL }
40
+};
41
+
42
+AVFILTER_DEFINE_CLASS(showpalette);
43
+
44
+static int query_formats(AVFilterContext *ctx)
45
+{
46
+    static const enum AVPixelFormat in_fmts[]  = {AV_PIX_FMT_PAL8,  AV_PIX_FMT_NONE};
47
+    static const enum AVPixelFormat out_fmts[] = {AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE};
48
+    AVFilterFormats *in  = ff_make_format_list(in_fmts);
49
+    AVFilterFormats *out = ff_make_format_list(out_fmts);
50
+    if (!in || !out)
51
+        return AVERROR(ENOMEM);
52
+    ff_formats_ref(in,  &ctx->inputs[0]->out_formats);
53
+    ff_formats_ref(out, &ctx->outputs[0]->in_formats);
54
+    return 0;
55
+}
56
+
57
+static int config_output(AVFilterLink *outlink)
58
+{
59
+    AVFilterContext *ctx = outlink->src;
60
+    const ShowPaletteContext *s = ctx->priv;
61
+    outlink->w = outlink->h = 16 * s->size;
62
+    return 0;
63
+}
64
+
65
+static int disp_palette(AVFrame *out, const AVFrame *in, int size)
66
+{
67
+    int x, y, i, j;
68
+    uint32_t *dst = (uint32_t *)out->data[0];
69
+    const int dst_linesize = out->linesize[0] >> 2;
70
+    const uint32_t *pal = (uint32_t *)in->data[1];
71
+
72
+    for (y = 0; y < 16; y++)
73
+        for (x = 0; x < 16; x++)
74
+            for (j = 0; j < size; j++)
75
+                for (i = 0; i < size; i++)
76
+                    dst[(y*dst_linesize + x) * size + j*dst_linesize + i] = pal[y*16 + x];
77
+    return 0;
78
+}
79
+
80
+static int filter_frame(AVFilterLink *inlink, AVFrame *in)
81
+{
82
+    int ret;
83
+    AVFrame *out;
84
+    AVFilterContext *ctx = inlink->dst;
85
+    const ShowPaletteContext *s= ctx->priv;
86
+    AVFilterLink *outlink = ctx->outputs[0];
87
+
88
+    out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
89
+    if (!out) {
90
+        av_frame_free(&in);
91
+        return AVERROR(ENOMEM);
92
+    }
93
+    av_frame_copy_props(out, in);
94
+    ret = disp_palette(out, in, s->size);
95
+    av_frame_free(&in);
96
+    return ret < 0 ? ret : ff_filter_frame(outlink, out);
97
+}
98
+
99
+static const AVFilterPad showpalette_inputs[] = {
100
+    {
101
+        .name         = "default",
102
+        .type         = AVMEDIA_TYPE_VIDEO,
103
+        .filter_frame = filter_frame,
104
+    },
105
+    { NULL }
106
+};
107
+
108
+static const AVFilterPad showpalette_outputs[] = {
109
+    {
110
+        .name         = "default",
111
+        .type         = AVMEDIA_TYPE_VIDEO,
112
+        .config_props = config_output,
113
+    },
114
+    { NULL }
115
+};
116
+
117
+AVFilter ff_vf_showpalette = {
118
+    .name          = "showpalette",
119
+    .description   = NULL_IF_CONFIG_SMALL("Display frame palette"),
120
+    .priv_size     = sizeof(ShowPaletteContext),
121
+    .query_formats = query_formats,
122
+    .inputs        = showpalette_inputs,
123
+    .outputs       = showpalette_outputs,
124
+    .priv_class    = &showpalette_class,
125
+    .flags         = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
126
+};
... ...
@@ -26,6 +26,9 @@ FATE_FILTER-$(call ALLYES, MCDEINT_FILTER, MPEGTS_DEMUXER, MPEG2VIDEO_DECODER SN
26 26
 FATE_FILTER-$(call ALLYES, CODECVIEW_FILTER RM_DEMUXER RV40_DECODER) += fate-filter-codecview-mvs
27 27
 fate-filter-codecview-mvs: CMD = framecrc -flags2 +export_mvs -i $(TARGET_SAMPLES)/real/spygames-2MB.rmvb -vf codecview=mv=pf+bf+bb -vframes 60 -an
28 28
 
29
+FATE_FILTER-$(call ALLYES, SHOWPALETTE_FILTER FLIC_DEMUXER FLIC_DECODER) += fate-filter-showpalette
30
+fate-filter-showpalette: CMD = framecrc -i $(TARGET_SAMPLES)/fli/fli-engines.fli -vf showpalette=3 -pix_fmt bgra
31
+
29 32
 FATE_SAMPLES_AVCONV += $(FATE_FILTER-yes)
30 33
 
31 34
 FATE_FILTER-$(call ALLYES, AVDEVICE LIFE_FILTER) += fate-filter-lavd-life
32 35
new file mode 100644
... ...
@@ -0,0 +1,316 @@
0
+#tb 0: 1/35
1
+0,          0,          0,        1,     9216, 0xc72e034e
2
+0,          1,          1,        1,     9216, 0xc72e034e
3
+0,          2,          2,        1,     9216, 0xc72e034e
4
+0,          3,          3,        1,     9216, 0xc72e034e
5
+0,          4,          4,        1,     9216, 0xc72e034e
6
+0,          5,          5,        1,     9216, 0xc72e034e
7
+0,          6,          6,        1,     9216, 0xc72e034e
8
+0,          7,          7,        1,     9216, 0xc72e034e
9
+0,          8,          8,        1,     9216, 0xc72e034e
10
+0,          9,          9,        1,     9216, 0xc72e034e
11
+0,         10,         10,        1,     9216, 0xc72e034e
12
+0,         11,         11,        1,     9216, 0xc72e034e
13
+0,         12,         12,        1,     9216, 0xc72e034e
14
+0,         13,         13,        1,     9216, 0xc72e034e
15
+0,         14,         14,        1,     9216, 0xc72e034e
16
+0,         15,         15,        1,     9216, 0xc72e034e
17
+0,         16,         16,        1,     9216, 0xc72e034e
18
+0,         17,         17,        1,     9216, 0xc72e034e
19
+0,         18,         18,        1,     9216, 0xc72e034e
20
+0,         19,         19,        1,     9216, 0xc72e034e
21
+0,         20,         20,        1,     9216, 0xc72e034e
22
+0,         21,         21,        1,     9216, 0xc72e034e
23
+0,         22,         22,        1,     9216, 0xc72e034e
24
+0,         23,         23,        1,     9216, 0xc72e034e
25
+0,         24,         24,        1,     9216, 0xc72e034e
26
+0,         25,         25,        1,     9216, 0xc72e034e
27
+0,         26,         26,        1,     9216, 0xc72e034e
28
+0,         27,         27,        1,     9216, 0xc72e034e
29
+0,         28,         28,        1,     9216, 0xc72e034e
30
+0,         29,         29,        1,     9216, 0xc72e034e
31
+0,         30,         30,        1,     9216, 0xc72e034e
32
+0,         31,         31,        1,     9216, 0xc72e034e
33
+0,         32,         32,        1,     9216, 0xc72e034e
34
+0,         33,         33,        1,     9216, 0xc72e034e
35
+0,         34,         34,        1,     9216, 0xc72e034e
36
+0,         35,         35,        1,     9216, 0xc72e034e
37
+0,         36,         36,        1,     9216, 0xc72e034e
38
+0,         37,         37,        1,     9216, 0xc72e034e
39
+0,         38,         38,        1,     9216, 0xc72e034e
40
+0,         39,         39,        1,     9216, 0xc72e034e
41
+0,         40,         40,        1,     9216, 0xc72e034e
42
+0,         41,         41,        1,     9216, 0xc72e034e
43
+0,         42,         42,        1,     9216, 0xc72e034e
44
+0,         43,         43,        1,     9216, 0xc72e034e
45
+0,         44,         44,        1,     9216, 0xc72e034e
46
+0,         45,         45,        1,     9216, 0xc72e034e
47
+0,         46,         46,        1,     9216, 0xc72e034e
48
+0,         47,         47,        1,     9216, 0xc72e034e
49
+0,         48,         48,        1,     9216, 0xc72e034e
50
+0,         49,         49,        1,     9216, 0xc72e034e
51
+0,         50,         50,        1,     9216, 0xc72e034e
52
+0,         51,         51,        1,     9216, 0xc72e034e
53
+0,         52,         52,        1,     9216, 0xc72e034e
54
+0,         53,         53,        1,     9216, 0xc72e034e
55
+0,         54,         54,        1,     9216, 0xc72e034e
56
+0,         55,         55,        1,     9216, 0xc72e034e
57
+0,         56,         56,        1,     9216, 0xc72e034e
58
+0,         57,         57,        1,     9216, 0xc72e034e
59
+0,         58,         58,        1,     9216, 0xc72e034e
60
+0,         59,         59,        1,     9216, 0xc72e034e
61
+0,         60,         60,        1,     9216, 0xc72e034e
62
+0,         61,         61,        1,     9216, 0xc72e034e
63
+0,         62,         62,        1,     9216, 0xc72e034e
64
+0,         63,         63,        1,     9216, 0xc72e034e
65
+0,         64,         64,        1,     9216, 0xc72e034e
66
+0,         65,         65,        1,     9216, 0xc72e034e
67
+0,         66,         66,        1,     9216, 0xc72e034e
68
+0,         67,         67,        1,     9216, 0xc72e034e
69
+0,         68,         68,        1,     9216, 0xc72e034e
70
+0,         69,         69,        1,     9216, 0xc72e034e
71
+0,         70,         70,        1,     9216, 0xc72e034e
72
+0,         71,         71,        1,     9216, 0xc72e034e
73
+0,         72,         72,        1,     9216, 0xc72e034e
74
+0,         73,         73,        1,     9216, 0xc72e034e
75
+0,         74,         74,        1,     9216, 0xc72e034e
76
+0,         75,         75,        1,     9216, 0xc72e034e
77
+0,         76,         76,        1,     9216, 0xc72e034e
78
+0,         77,         77,        1,     9216, 0xc72e034e
79
+0,         78,         78,        1,     9216, 0xc72e034e
80
+0,         79,         79,        1,     9216, 0xc72e034e
81
+0,         80,         80,        1,     9216, 0xc72e034e
82
+0,         81,         81,        1,     9216, 0xc72e034e
83
+0,         82,         82,        1,     9216, 0xc72e034e
84
+0,         83,         83,        1,     9216, 0xc72e034e
85
+0,         84,         84,        1,     9216, 0xc72e034e
86
+0,         85,         85,        1,     9216, 0xc72e034e
87
+0,         86,         86,        1,     9216, 0xc72e034e
88
+0,         87,         87,        1,     9216, 0xc72e034e
89
+0,         88,         88,        1,     9216, 0xc72e034e
90
+0,         89,         89,        1,     9216, 0xc72e034e
91
+0,         90,         90,        1,     9216, 0xf75be32f
92
+0,         91,         91,        1,     9216, 0xf75be32f
93
+0,         92,         92,        1,     9216, 0xbb5bc1ae
94
+0,         93,         93,        1,     9216, 0xbb5bc1ae
95
+0,         94,         94,        1,     9216, 0x67e4a45c
96
+0,         95,         95,        1,     9216, 0x67e4a45c
97
+0,         96,         96,        1,     9216, 0x6a42832c
98
+0,         97,         97,        1,     9216, 0x6a42832c
99
+0,         98,         98,        1,     9216, 0x44da649f
100
+0,         99,         99,        1,     9216, 0x44da649f
101
+0,        100,        100,        1,     9216, 0x60273f76
102
+0,        101,        101,        1,     9216, 0x60273f76
103
+0,        102,        102,        1,     9216, 0x5f0b20aa
104
+0,        103,        103,        1,     9216, 0x5f0b20aa
105
+0,        104,        104,        1,     9216, 0xd382ff8f
106
+0,        105,        105,        1,     9216, 0xd382ff8f
107
+0,        106,        106,        1,     9216, 0x5a29e2a0
108
+0,        107,        107,        1,     9216, 0x5a29e2a0
109
+0,        108,        108,        1,     9216, 0x13ffc143
110
+0,        109,        109,        1,     9216, 0x93aba0d9
111
+0,        110,        110,        1,     9216, 0x93aba0d9
112
+0,        111,        111,        1,     9216, 0x93aba0d9
113
+0,        112,        112,        1,     9216, 0x93aba0d9
114
+0,        113,        113,        1,     9216, 0x93aba0d9
115
+0,        114,        114,        1,     9216, 0x93aba0d9
116
+0,        115,        115,        1,     9216, 0x93aba0d9
117
+0,        116,        116,        1,     9216, 0x93aba0d9
118
+0,        117,        117,        1,     9216, 0x93aba0d9
119
+0,        118,        118,        1,     9216, 0x93aba0d9
120
+0,        119,        119,        1,     9216, 0x93aba0d9
121
+0,        120,        120,        1,     9216, 0x93aba0d9
122
+0,        121,        121,        1,     9216, 0x93aba0d9
123
+0,        122,        122,        1,     9216, 0x93aba0d9
124
+0,        123,        123,        1,     9216, 0x93aba0d9
125
+0,        124,        124,        1,     9216, 0x93aba0d9
126
+0,        125,        125,        1,     9216, 0x93aba0d9
127
+0,        126,        126,        1,     9216, 0x93aba0d9
128
+0,        127,        127,        1,     9216, 0x93aba0d9
129
+0,        128,        128,        1,     9216, 0x93aba0d9
130
+0,        129,        129,        1,     9216, 0x93aba0d9
131
+0,        130,        130,        1,     9216, 0x93aba0d9
132
+0,        131,        131,        1,     9216, 0x93aba0d9
133
+0,        132,        132,        1,     9216, 0x93aba0d9
134
+0,        133,        133,        1,     9216, 0x93aba0d9
135
+0,        134,        134,        1,     9216, 0x93aba0d9
136
+0,        135,        135,        1,     9216, 0x93aba0d9
137
+0,        136,        136,        1,     9216, 0x93aba0d9
138
+0,        137,        137,        1,     9216, 0x93aba0d9
139
+0,        138,        138,        1,     9216, 0x93aba0d9
140
+0,        139,        139,        1,     9216, 0x93aba0d9
141
+0,        140,        140,        1,     9216, 0x93aba0d9
142
+0,        141,        141,        1,     9216, 0x93aba0d9
143
+0,        142,        142,        1,     9216, 0x93aba0d9
144
+0,        143,        143,        1,     9216, 0x93aba0d9
145
+0,        144,        144,        1,     9216, 0x93aba0d9
146
+0,        145,        145,        1,     9216, 0x93aba0d9
147
+0,        146,        146,        1,     9216, 0x93aba0d9
148
+0,        147,        147,        1,     9216, 0x93aba0d9
149
+0,        148,        148,        1,     9216, 0x93aba0d9
150
+0,        149,        149,        1,     9216, 0x93aba0d9
151
+0,        150,        150,        1,     9216, 0x93aba0d9
152
+0,        151,        151,        1,     9216, 0x93aba0d9
153
+0,        152,        152,        1,     9216, 0x93aba0d9
154
+0,        153,        153,        1,     9216, 0x93aba0d9
155
+0,        154,        154,        1,     9216, 0x93aba0d9
156
+0,        155,        155,        1,     9216, 0x93aba0d9
157
+0,        156,        156,        1,     9216, 0x93aba0d9
158
+0,        157,        157,        1,     9216, 0x93aba0d9
159
+0,        158,        158,        1,     9216, 0x93aba0d9
160
+0,        159,        159,        1,     9216, 0x93aba0d9
161
+0,        160,        160,        1,     9216, 0x93aba0d9
162
+0,        161,        161,        1,     9216, 0x93aba0d9
163
+0,        162,        162,        1,     9216, 0x93aba0d9
164
+0,        163,        163,        1,     9216, 0x93aba0d9
165
+0,        164,        164,        1,     9216, 0x93aba0d9
166
+0,        165,        165,        1,     9216, 0x93aba0d9
167
+0,        166,        166,        1,     9216, 0x93aba0d9
168
+0,        167,        167,        1,     9216, 0x93aba0d9
169
+0,        168,        168,        1,     9216, 0x93aba0d9
170
+0,        169,        169,        1,     9216, 0x93aba0d9
171
+0,        170,        170,        1,     9216, 0x93aba0d9
172
+0,        171,        171,        1,     9216, 0x93aba0d9
173
+0,        172,        172,        1,     9216, 0x93aba0d9
174
+0,        173,        173,        1,     9216, 0x93aba0d9
175
+0,        174,        174,        1,     9216, 0x93aba0d9
176
+0,        175,        175,        1,     9216, 0x93aba0d9
177
+0,        176,        176,        1,     9216, 0x93aba0d9
178
+0,        177,        177,        1,     9216, 0x93aba0d9
179
+0,        178,        178,        1,     9216, 0x93aba0d9
180
+0,        179,        179,        1,     9216, 0x93aba0d9
181
+0,        180,        180,        1,     9216, 0x93aba0d9
182
+0,        181,        181,        1,     9216, 0x93aba0d9
183
+0,        182,        182,        1,     9216, 0x93aba0d9
184
+0,        183,        183,        1,     9216, 0x93aba0d9
185
+0,        184,        184,        1,     9216, 0x93aba0d9
186
+0,        185,        185,        1,     9216, 0x93aba0d9
187
+0,        186,        186,        1,     9216, 0x93aba0d9
188
+0,        187,        187,        1,     9216, 0x93aba0d9
189
+0,        188,        188,        1,     9216, 0x93aba0d9
190
+0,        189,        189,        1,     9216, 0x93aba0d9
191
+0,        190,        190,        1,     9216, 0x93aba0d9
192
+0,        191,        191,        1,     9216, 0x93aba0d9
193
+0,        192,        192,        1,     9216, 0x93aba0d9
194
+0,        193,        193,        1,     9216, 0x93aba0d9
195
+0,        194,        194,        1,     9216, 0x93aba0d9
196
+0,        195,        195,        1,     9216, 0x93aba0d9
197
+0,        196,        196,        1,     9216, 0x93aba0d9
198
+0,        197,        197,        1,     9216, 0x93aba0d9
199
+0,        198,        198,        1,     9216, 0x93aba0d9
200
+0,        199,        199,        1,     9216, 0x93aba0d9
201
+0,        200,        200,        1,     9216, 0x93aba0d9
202
+0,        201,        201,        1,     9216, 0x93aba0d9
203
+0,        202,        202,        1,     9216, 0x93aba0d9
204
+0,        203,        203,        1,     9216, 0x93aba0d9
205
+0,        204,        204,        1,     9216, 0x93aba0d9
206
+0,        205,        205,        1,     9216, 0x93aba0d9
207
+0,        206,        206,        1,     9216, 0x93aba0d9
208
+0,        207,        207,        1,     9216, 0x93aba0d9
209
+0,        208,        208,        1,     9216, 0x93aba0d9
210
+0,        209,        209,        1,     9216, 0x93aba0d9
211
+0,        210,        210,        1,     9216, 0xb57cbdda
212
+0,        211,        211,        1,     9216, 0xfad4d7a8
213
+0,        212,        212,        1,     9216, 0x4a0bf635
214
+0,        213,        213,        1,     9216, 0x44880d81
215
+0,        214,        214,        1,     9216, 0x4de02b90
216
+0,        215,        215,        1,     9216, 0x2a4f4ac8
217
+0,        216,        216,        1,     9216, 0x96616376
218
+0,        217,        217,        1,     9216, 0x65c88629
219
+0,        218,        218,        1,     9216, 0x3d4a9efb
220
+0,        219,        219,        1,     9216, 0x85a5bdbe
221
+0,        220,        220,        1,     9216, 0x653edbd6
222
+0,        221,        221,        1,     9216, 0x9f28f433
223
+0,        222,        222,        1,     9216, 0x8f3f13ef
224
+0,        223,        223,        1,     9216, 0x43e32e56
225
+0,        224,        224,        1,     9216, 0x780d3969
226
+0,        225,        225,        1,     9216, 0x780d3969
227
+0,        226,        226,        1,     9216, 0x780d3969
228
+0,        227,        227,        1,     9216, 0x780d3969
229
+0,        228,        228,        1,     9216, 0x780d3969
230
+0,        229,        229,        1,     9216, 0x780d3969
231
+0,        230,        230,        1,     9216, 0x780d3969
232
+0,        231,        231,        1,     9216, 0x780d3969
233
+0,        232,        232,        1,     9216, 0x780d3969
234
+0,        233,        233,        1,     9216, 0x780d3969
235
+0,        234,        234,        1,     9216, 0x780d3969
236
+0,        235,        235,        1,     9216, 0x780d3969
237
+0,        236,        236,        1,     9216, 0x780d3969
238
+0,        237,        237,        1,     9216, 0x780d3969
239
+0,        238,        238,        1,     9216, 0x780d3969
240
+0,        239,        239,        1,     9216, 0x780d3969
241
+0,        240,        240,        1,     9216, 0x780d3969
242
+0,        241,        241,        1,     9216, 0x780d3969
243
+0,        242,        242,        1,     9216, 0x780d3969
244
+0,        243,        243,        1,     9216, 0x780d3969
245
+0,        244,        244,        1,     9216, 0x780d3969
246
+0,        245,        245,        1,     9216, 0x780d3969
247
+0,        246,        246,        1,     9216, 0x780d3969
248
+0,        247,        247,        1,     9216, 0x780d3969
249
+0,        248,        248,        1,     9216, 0x780d3969
250
+0,        249,        249,        1,     9216, 0x780d3969
251
+0,        250,        250,        1,     9216, 0x780d3969
252
+0,        251,        251,        1,     9216, 0x780d3969
253
+0,        252,        252,        1,     9216, 0x780d3969
254
+0,        253,        253,        1,     9216, 0x780d3969
255
+0,        254,        254,        1,     9216, 0x780d3969
256
+0,        255,        255,        1,     9216, 0x780d3969
257
+0,        256,        256,        1,     9216, 0x780d3969
258
+0,        257,        257,        1,     9216, 0x780d3969
259
+0,        258,        258,        1,     9216, 0x780d3969
260
+0,        259,        259,        1,     9216, 0x780d3969
261
+0,        260,        260,        1,     9216, 0x780d3969
262
+0,        261,        261,        1,     9216, 0x780d3969
263
+0,        262,        262,        1,     9216, 0x780d3969
264
+0,        263,        263,        1,     9216, 0x780d3969
265
+0,        264,        264,        1,     9216, 0x780d3969
266
+0,        265,        265,        1,     9216, 0x780d3969
267
+0,        266,        266,        1,     9216, 0x780d3969
268
+0,        267,        267,        1,     9216, 0x780d3969
269
+0,        268,        268,        1,     9216, 0x780d3969
270
+0,        269,        269,        1,     9216, 0x780d3969
271
+0,        270,        270,        1,     9216, 0x780d3969
272
+0,        271,        271,        1,     9216, 0x780d3969
273
+0,        272,        272,        1,     9216, 0x780d3969
274
+0,        273,        273,        1,     9216, 0x780d3969
275
+0,        274,        274,        1,     9216, 0x780d3969
276
+0,        275,        275,        1,     9216, 0x780d3969
277
+0,        276,        276,        1,     9216, 0x780d3969
278
+0,        277,        277,        1,     9216, 0x780d3969
279
+0,        278,        278,        1,     9216, 0x780d3969
280
+0,        279,        279,        1,     9216, 0x780d3969
281
+0,        280,        280,        1,     9216, 0x780d3969
282
+0,        281,        281,        1,     9216, 0x780d3969
283
+0,        282,        282,        1,     9216, 0x780d3969
284
+0,        283,        283,        1,     9216, 0x780d3969
285
+0,        284,        284,        1,     9216, 0x780d3969
286
+0,        285,        285,        1,     9216, 0x780d3969
287
+0,        286,        286,        1,     9216, 0x780d3969
288
+0,        287,        287,        1,     9216, 0x780d3969
289
+0,        288,        288,        1,     9216, 0x780d3969
290
+0,        289,        289,        1,     9216, 0x780d3969
291
+0,        290,        290,        1,     9216, 0x780d3969
292
+0,        291,        291,        1,     9216, 0x780d3969
293
+0,        292,        292,        1,     9216, 0x780d3969
294
+0,        293,        293,        1,     9216, 0x780d3969
295
+0,        294,        294,        1,     9216, 0x780d3969
296
+0,        295,        295,        1,     9216, 0x780d3969
297
+0,        296,        296,        1,     9216, 0x780d3969
298
+0,        297,        297,        1,     9216, 0x780d3969
299
+0,        298,        298,        1,     9216, 0x780d3969
300
+0,        299,        299,        1,     9216, 0x780d3969
301
+0,        300,        300,        1,     9216, 0x780d3969
302
+0,        301,        301,        1,     9216, 0x780d3969
303
+0,        302,        302,        1,     9216, 0x780d3969
304
+0,        303,        303,        1,     9216, 0x780d3969
305
+0,        304,        304,        1,     9216, 0x780d3969
306
+0,        305,        305,        1,     9216, 0x780d3969
307
+0,        306,        306,        1,     9216, 0x780d3969
308
+0,        307,        307,        1,     9216, 0x780d3969
309
+0,        308,        308,        1,     9216, 0x780d3969
310
+0,        309,        309,        1,     9216, 0x780d3969
311
+0,        310,        310,        1,     9216, 0x780d3969
312
+0,        311,        311,        1,     9216, 0x780d3969
313
+0,        312,        312,        1,     9216, 0x780d3969
314
+0,        313,        313,        1,     9216, 0x780d3969
315
+0,        314,        314,        1,     9216, 0xc72e034e