diff mbox series

[FFmpeg-devel,2/2] avcodec/cdgraphics: fix transparency handling

Message ID 20211216110447.922332-2-onemda@gmail.com
State Accepted
Commit 8718f8cfafd28a07faf88b5a3427c04cc6fa663b
Headers show
Series [FFmpeg-devel,1/2] avcodec/cdgraphics: unbreak rendering of vertical scrolling | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished
andriy/make_ppc success Make finished
andriy/make_fate_ppc success Make fate finished

Commit Message

Paul B Mahol Dec. 16, 2021, 11:04 a.m. UTC
Signed-off-by: Paul B Mahol <onemda@gmail.com>
---
 libavcodec/cdgraphics.c   |  13 +-
 tests/ref/fate/cdgraphics | 398 +++++++++++++++++++-------------------
 2 files changed, 206 insertions(+), 205 deletions(-)
diff mbox series

Patch

diff --git a/libavcodec/cdgraphics.c b/libavcodec/cdgraphics.c
index c9e265fa53..06f8392094 100644
--- a/libavcodec/cdgraphics.c
+++ b/libavcodec/cdgraphics.c
@@ -68,7 +68,7 @@  typedef struct CDGraphicsContext {
     AVFrame *frame;
     int hscroll;
     int vscroll;
-    int transparency;
+    uint8_t alpha[CDG_PALETTE_SIZE];
     int cleared;
 } CDGraphicsContext;
 
@@ -79,7 +79,9 @@  static av_cold int cdg_decode_init(AVCodecContext *avctx)
     cc->frame = av_frame_alloc();
     if (!cc->frame)
         return AVERROR(ENOMEM);
-    cc->transparency = -1;
+
+    for (int i = 0; i < CDG_PALETTE_SIZE; i++)
+        cc->alpha[i] = 0xFFU;
 
     avctx->pix_fmt = AV_PIX_FMT_PAL8;
     return ff_set_dimensions(avctx, CDG_FULL_WIDTH, CDG_FULL_HEIGHT);
@@ -120,9 +122,7 @@  static void cdg_load_palette(CDGraphicsContext *cc, uint8_t *data, int low)
         r = ((color >> 8) & 0x000F) * 17;
         g = ((color >> 4) & 0x000F) * 17;
         b = ((color     ) & 0x000F) * 17;
-        palette[i + array_offset] = 0xFFU << 24 | r << 16 | g << 8 | b;
-        if (cc->transparency >= 0)
-            palette[cc->transparency] &= 0xFFFFFF;
+        palette[i + array_offset] = cc->alpha[i + array_offset] << 24 | r << 16 | g << 8 | b;
     }
     cc->frame->palette_has_changed = 1;
 }
@@ -346,7 +346,8 @@  static int cdg_decode_frame(AVCodecContext *avctx,
                 return ret;
             break;
         case CDG_INST_TRANSPARENT_COL:
-            cc->transparency = cdg_data[0] & 0xF;
+            for (int i = 0; i < CDG_PALETTE_SIZE; i++)
+                cc->alpha[i] = 255 - ((cdg_data[i] & 0x3f) << 2);
             break;
         default:
             break;
diff --git a/tests/ref/fate/cdgraphics b/tests/ref/fate/cdgraphics
index f079bd4df0..9ffe129397 100644
--- a/tests/ref/fate/cdgraphics
+++ b/tests/ref/fate/cdgraphics
@@ -16,202 +16,202 @@ 
 0,         10,         10,        1,   259200, 0x6779f55d
 0,         11,         11,        1,   259200, 0x6779f55d
 0,         12,         12,        1,   259200, 0x6779f55d
-0,         13,         13,        1,   259200, 0xf33cc0c4
-0,         14,         14,        1,   259200, 0xf33cc0c4
-0,         15,         15,        1,   259200, 0xf33cc0c4
-0,         16,         16,        1,   259200, 0x098280da
-0,         17,         17,        1,   259200, 0x098280da
-0,         18,         18,        1,   259200, 0x098280da
-0,         19,         19,        1,   259200, 0x098280da
-0,         20,         20,        1,   259200, 0x098280da
-0,         21,         21,        1,   259200, 0x098280da
-0,         22,         22,        1,   259200, 0x098280da
-0,         23,         23,        1,   259200, 0x098280da
-0,         24,         24,        1,   259200, 0x098280da
-0,         25,         25,        1,   259200, 0x098280da
-0,         26,         26,        1,   259200, 0x098280da
-0,         27,         27,        1,   259200, 0x098280da
-0,         28,         28,        1,   259200, 0x098280da
-0,         29,         29,        1,   259200, 0x098280da
-0,         30,         30,        1,   259200, 0x098280da
-0,         31,         31,        1,   259200, 0x098280da
-0,         32,         32,        1,   259200, 0xf33cc0c4
-0,         33,         33,        1,   259200, 0xa389d0b4
-0,         34,         34,        1,   259200, 0xecf1f094
-0,         35,         35,        1,   259200, 0xe7171c77
-0,         37,         37,        1,   259200, 0xf9d72c67
-0,         38,         38,        1,   259200, 0x7932583b
-0,         40,         40,        1,   259200, 0x1c618c07
-0,         41,         41,        1,   259200, 0x7e88c1d1
-0,         43,         43,        1,   259200, 0x2c5df59d
-0,         44,         44,        1,   259200, 0xa78f435e
-0,         46,         46,        1,   259200, 0xb96e5948
-0,         47,         47,        1,   259200, 0x85c1653c
-0,         49,         49,        1,   259200, 0xefdc930e
-0,         50,         50,        1,   259200, 0xea24bee2
-0,         52,         52,        1,   259200, 0x8feef8a8
-0,         53,         53,        1,   259200, 0x8a7b02ad
-0,         55,         55,        1,   259200, 0xe41b2689
-0,         56,         56,        1,   259200, 0x007d307f
-0,         58,         58,        1,   259200, 0xb0c9802f
-0,         59,         59,        1,   259200, 0xb50c941b
-0,         61,         61,        1,   259200, 0xdf7dc7e7
-0,         62,         62,        1,   259200, 0xbaac01bc
-0,         64,         64,        1,   259200, 0x1ef70db0
-0,         65,         65,        1,   259200, 0xeeab4b72
-0,         67,         67,        1,   259200, 0x0eaf7d40
-0,         68,         68,        1,   259200, 0xc7bec4f8
-0,         70,         70,        1,   259200, 0xa506caf2
-0,         71,         71,        1,   259200, 0x268808c3
-0,         73,         73,        1,   259200, 0xebd90ebd
-0,         74,         74,        1,   259200, 0x8d792aa1
-0,         76,         76,        1,   259200, 0x960d3a91
-0,         77,         77,        1,   259200, 0xf0395e6d
-0,         79,         79,        1,   259200, 0x3d0e8645
-0,         80,         80,        1,   259200, 0x88bc9a31
-0,         82,         82,        1,   259200, 0xda37c209
-0,         83,         83,        1,   259200, 0xafa6c803
-0,         85,         85,        1,   259200, 0xdc58f5d5
-0,         86,         86,        1,   259200, 0x1a5ffbcf
-0,         88,         88,        1,   259200, 0xc8872bae
-0,         89,         89,        1,   259200, 0xc5472dac
-0,         91,         91,        1,   259200, 0xd54e5f7a
-0,         92,         92,        1,   259200, 0xf4576574
-0,         94,         94,        1,   259200, 0xdefaad2c
-0,         95,         95,        1,   259200, 0xca44c316
-0,         97,         97,        1,   259200, 0x8102d504
-0,         98,         98,        1,   259200, 0xe0c8fcdc
-0,        100,        100,        1,   259200, 0x53c100e7
-0,        101,        101,        1,   259200, 0x8de628bf
-0,        103,        103,        1,   259200, 0x86f92eb9
-0,        104,        104,        1,   259200, 0x13c66285
-0,        106,        106,        1,   259200, 0xe5766c7b
-0,        107,        107,        1,   259200, 0x3ddb9453
-0,        109,        109,        1,   259200, 0x39559a4d
-0,        110,        110,        1,   259200, 0x507da443
-0,        112,        112,        1,   259200, 0x3b8dedf9
-0,        113,        113,        1,   259200, 0x55c9fde9
-0,        115,        115,        1,   259200, 0x7c43ffe7
-0,        116,        116,        1,   259200, 0xdf2c31c4
-0,        118,        118,        1,   259200, 0x144735c0
-0,        119,        119,        1,   259200, 0x9a716b8a
-0,        121,        121,        1,   259200, 0x5ab08174
-0,        122,        122,        1,   259200, 0x06dcb540
-0,        124,        124,        1,   259200, 0x0d09b93c
-0,        125,        125,        1,   259200, 0x5abce70e
-0,        127,        127,        1,   259200, 0x38a4ed08
-0,        128,        128,        1,   259200, 0x427b30d3
-0,        130,        130,        1,   259200, 0x7f8d34cf
-0,        131,        131,        1,   259200, 0xf5613cc7
-0,        133,        133,        1,   259200, 0x5086748f
-0,        134,        134,        1,   259200, 0x7da8788b
-0,        136,        136,        1,   259200, 0x79c8946f
-0,        137,        137,        1,   259200, 0x65d9bc47
-0,        139,        139,        1,   259200, 0x3f5a0012
-0,        140,        140,        1,   259200, 0x4d9713fe
-0,        142,        142,        1,   259200, 0x917839d8
-0,        143,        143,        1,   259200, 0x92624dc4
-0,        145,        145,        1,   259200, 0x465c739e
-0,        146,        146,        1,   259200, 0x21137f92
-0,        148,        148,        1,   259200, 0xd677a76a
-0,        149,        149,        1,   259200, 0xe1efb35e
-0,        151,        151,        1,   259200, 0xd2d6d73a
-0,        152,        152,        1,   259200, 0x06a8f31e
-0,        154,        154,        1,   259200, 0x8aaf1d03
-0,        155,        155,        1,   259200, 0x9e0a42dd
-0,        157,        157,        1,   259200, 0x1f7268b7
-0,        158,        158,        1,   259200, 0x1a3c6cb3
-0,        160,        160,        1,   259200, 0x5607aa75
-0,        161,        161,        1,   259200, 0xa19ebc63
-0,        163,        163,        1,   259200, 0x9dbaf42b
-0,        164,        164,        1,   259200, 0x2d06fe21
-0,        166,        166,        1,   259200, 0x960e2c02
-0,        167,        167,        1,   259200, 0x04f935f8
-0,        169,        169,        1,   259200, 0x488143ea
-0,        170,        170,        1,   259200, 0xcb515bd2
-0,        172,        172,        1,   259200, 0xa27c85a8
-0,        173,        173,        1,   259200, 0x3bb38da0
-0,        175,        175,        1,   259200, 0x39d9b17c
-0,        176,        176,        1,   259200, 0x3fbcbd70
-0,        178,        178,        1,   259200, 0xbc19e548
-0,        179,        179,        1,   259200, 0x29400735
-0,        181,        181,        1,   259200, 0x21612d0f
-0,        182,        182,        1,   259200, 0x66943705
-0,        184,        184,        1,   259200, 0x9efa6ccf
-0,        185,        185,        1,   259200, 0x3b4180bb
-0,        187,        187,        1,   259200, 0x9a8aa695
-0,        188,        188,        1,   259200, 0x6529b883
-0,        190,        190,        1,   259200, 0x6e1aec4f
-0,        191,        191,        1,   259200, 0x3ebc2426
-0,        193,        193,        1,   259200, 0xff6e3a10
-0,        194,        194,        1,   259200, 0x70f05dec
-0,        196,        196,        1,   259200, 0x853777d2
-0,        197,        197,        1,   259200, 0x05ea97b2
-0,        199,        199,        1,   259200, 0x03f3a7a2
-0,        200,        200,        1,   259200, 0xf4f7cb7e
-0,        202,        202,        1,   259200, 0xd411db6e
-0,        203,        203,        1,   259200, 0xfa3afb4e
-0,        205,        205,        1,   259200, 0x0a451b3d
-0,        206,        206,        1,   259200, 0x94624117
-0,        208,        208,        1,   259200, 0x00996ceb
-0,        209,        209,        1,   259200, 0x8c898ccb
-0,        211,        211,        1,   259200, 0x5d2496c1
-0,        212,        212,        1,   259200, 0x4f5fce89
-0,        214,        214,        1,   259200, 0xf6a0e671
-0,        215,        215,        1,   259200, 0xcf6f184e
-0,        217,        217,        1,   259200, 0x66e2283e
-0,        218,        218,        1,   259200, 0x7cd25016
-0,        220,        220,        1,   259200, 0xc2e05a0c
-0,        221,        221,        1,   259200, 0x33b767fe
-0,        223,        223,        1,   259200, 0x6f5583e2
-0,        224,        224,        1,   259200, 0x19f3a9bc
-0,        226,        226,        1,   259200, 0xb3f3b5b0
-0,        227,        227,        1,   259200, 0x6417d590
-0,        229,        229,        1,   259200, 0x7130e580
-0,        230,        230,        1,   259200, 0x4558096b
-0,        232,        232,        1,   259200, 0x920c3143
-0,        233,        233,        1,   259200, 0xb7e75123
-0,        235,        235,        1,   259200, 0x38e46113
-0,        236,        236,        1,   259200, 0x96ba90e3
-0,        238,        238,        1,   259200, 0xc65faac9
-0,        239,        239,        1,   259200, 0x7260caa9
-0,        241,        241,        1,   259200, 0x4983cca7
-0,        242,        242,        1,   259200, 0xc04ddc97
-0,        244,        244,        1,   259200, 0x52de0082
-0,        245,        245,        1,   259200, 0xb1cb1c66
-0,        247,        247,        1,   259200, 0x273b364c
-0,        248,        248,        1,   259200, 0xd26a661c
-0,        250,        250,        1,   259200, 0x9a9599e8
-0,        251,        251,        1,   259200, 0x2e16b5cc
-0,        253,        253,        1,   259200, 0x2d4ec9b8
-0,        254,        254,        1,   259200, 0x32d8e998
-0,        256,        256,        1,   259200, 0x5182f988
-0,        257,        257,        1,   259200, 0x48d7157b
-0,        259,        259,        1,   259200, 0xa50f335d
-0,        260,        260,        1,   259200, 0x3f274f41
-0,        262,        262,        1,   259200, 0xe9776b25
-0,        263,        263,        1,   259200, 0x76728709
-0,        265,        265,        1,   259200, 0x1960a0ef
-0,        266,        266,        1,   259200, 0x3d3acac5
-0,        268,        268,        1,   259200, 0x1c6aeaa5
-0,        269,        269,        1,   259200, 0x8bc0148a
-0,        271,        271,        1,   259200, 0xa2a72a74
-0,        272,        272,        1,   259200, 0x77db4658
-0,        274,        274,        1,   259200, 0x63705a44
-0,        275,        275,        1,   259200, 0x30db8c12
-0,        277,        277,        1,   259200, 0x32f5a3fa
-0,        278,        278,        1,   259200, 0x0107d7c6
-0,        280,        280,        1,   259200, 0xe14707a5
-0,        281,        281,        1,   259200, 0xed7e3379
-0,        283,        283,        1,   259200, 0x55bc416b
-0,        284,        284,        1,   259200, 0x1cf1614b
-0,        286,        286,        1,   259200, 0x2d507b31
-0,        287,        287,        1,   259200, 0x3fbbaefd
-0,        289,        289,        1,   259200, 0x8608d6d5
-0,        290,        290,        1,   259200, 0x169d00ba
-0,        292,        292,        1,   259200, 0x7d0b209a
-0,        293,        293,        1,   259200, 0xd5943c7e
-0,        295,        295,        1,   259200, 0x94e25664
-0,        296,        296,        1,   259200, 0x97447e3c
-0,        298,        298,        1,   259200, 0x68bc8436
-0,        299,        299,        1,   259200, 0xb7ee9426
+0,         13,         13,        1,   259200, 0x6779f55d
+0,         14,         14,        1,   259200, 0x6779f55d
+0,         15,         15,        1,   259200, 0x6779f55d
+0,         16,         16,        1,   259200, 0x29aeb27e
+0,         17,         17,        1,   259200, 0x29aeb27e
+0,         18,         18,        1,   259200, 0x29aeb27e
+0,         19,         19,        1,   259200, 0x29aeb27e
+0,         20,         20,        1,   259200, 0x29aeb27e
+0,         21,         21,        1,   259200, 0x29aeb27e
+0,         22,         22,        1,   259200, 0x29aeb27e
+0,         23,         23,        1,   259200, 0x29aeb27e
+0,         24,         24,        1,   259200, 0x29aeb27e
+0,         25,         25,        1,   259200, 0x29aeb27e
+0,         26,         26,        1,   259200, 0x29aeb27e
+0,         27,         27,        1,   259200, 0x29aeb27e
+0,         28,         28,        1,   259200, 0x29aeb27e
+0,         29,         29,        1,   259200, 0x29aeb27e
+0,         30,         30,        1,   259200, 0x29aeb27e
+0,         31,         31,        1,   259200, 0x29aeb27e
+0,         32,         32,        1,   259200, 0x6779f55d
+0,         33,         33,        1,   259200, 0xcc9cfd55
+0,         34,         34,        1,   259200, 0x0b670d54
+0,         35,         35,        1,   259200, 0x2c45233e
+0,         37,         37,        1,   259200, 0x42a92b36
+0,         38,         38,        1,   259200, 0xa61a4120
+0,         40,         40,        1,   259200, 0x22065b06
+0,         41,         41,        1,   259200, 0x7f0775eb
+0,         43,         43,        1,   259200, 0x00468fd1
+0,         44,         44,        1,   259200, 0xfd4bb6aa
+0,         46,         46,        1,   259200, 0x182fc19f
+0,         47,         47,        1,   259200, 0x8814c799
+0,         49,         49,        1,   259200, 0xe28dde82
+0,         50,         50,        1,   259200, 0x038bf46c
+0,         52,         52,        1,   259200, 0x8597115e
+0,         53,         53,        1,   259200, 0x8b001659
+0,         55,         55,        1,   259200, 0xd5192847
+0,         56,         56,        1,   259200, 0xeb652d42
+0,         58,         58,        1,   259200, 0x84ae551a
+0,         59,         59,        1,   259200, 0x171c5f10
+0,         61,         61,        1,   259200, 0xd69a78f6
+0,         62,         62,        1,   259200, 0xf36095d9
+0,         64,         64,        1,   259200, 0x2f509bd3
+0,         65,         65,        1,   259200, 0x49a1bab4
+0,         67,         67,        1,   259200, 0x8248d39b
+0,         68,         68,        1,   259200, 0x9969f777
+0,         70,         70,        1,   259200, 0x0cf6fa74
+0,         71,         71,        1,   259200, 0x801f1964
+0,         73,         73,        1,   259200, 0xe7a91c61
+0,         74,         74,        1,   259200, 0xcf402a53
+0,         76,         76,        1,   259200, 0xe08e324b
+0,         77,         77,        1,   259200, 0x2afc4439
+0,         79,         79,        1,   259200, 0x71e95825
+0,         80,         80,        1,   259200, 0xa805621b
+0,         82,         82,        1,   259200, 0x71547607
+0,         83,         83,        1,   259200, 0x60ed7904
+0,         85,         85,        1,   259200, 0x1cb98fed
+0,         86,         86,        1,   259200, 0xc08f92ea
+0,         88,         88,        1,   259200, 0x3ebeaad2
+0,         89,         89,        1,   259200, 0xbeb7abd1
+0,         91,         91,        1,   259200, 0xef67c4b8
+0,         92,         92,        1,   259200, 0x03dcc7b5
+0,         94,         94,        1,   259200, 0xb3b8eb91
+0,         95,         95,        1,   259200, 0x3b4af686
+0,         97,         97,        1,   259200, 0xa546ff7d
+0,         98,         98,        1,   259200, 0xf5b31378
+0,        100,        100,        1,   259200, 0x32781576
+0,        101,        101,        1,   259200, 0xf00d2962
+0,        103,        103,        1,   259200, 0xf1782c5f
+0,        104,        104,        1,   259200, 0x62334645
+0,        106,        106,        1,   259200, 0x53354b40
+0,        107,        107,        1,   259200, 0x9fea5f2c
+0,        109,        109,        1,   259200, 0x22906229
+0,        110,        110,        1,   259200, 0xb63f6724
+0,        112,        112,        1,   259200, 0x68018bff
+0,        113,        113,        1,   259200, 0x822393f7
+0,        115,        115,        1,   259200, 0x170894f6
+0,        116,        116,        1,   259200, 0x7129addd
+0,        118,        118,        1,   259200, 0x8ef0afdb
+0,        119,        119,        1,   259200, 0x7dfacac0
+0,        121,        121,        1,   259200, 0x6fffd5b5
+0,        122,        122,        1,   259200, 0x7062ef9b
+0,        124,        124,        1,   259200, 0xf6b2f199
+0,        125,        125,        1,   259200, 0x43060891
+0,        127,        127,        1,   259200, 0xb6d40b8e
+0,        128,        128,        1,   259200, 0x73182d6c
+0,        130,        130,        1,   259200, 0x94e22f6a
+0,        131,        131,        1,   259200, 0xd64e3366
+0,        133,        133,        1,   259200, 0x31764f4a
+0,        134,        134,        1,   259200, 0x4b485148
+0,        136,        136,        1,   259200, 0x601f5f3a
+0,        137,        137,        1,   259200, 0xf6aa7326
+0,        139,        139,        1,   259200, 0x9ac39504
+0,        140,        140,        1,   259200, 0x322e9efa
+0,        142,        142,        1,   259200, 0x7308b1e7
+0,        143,        143,        1,   259200, 0x83c2bbdd
+0,        145,        145,        1,   259200, 0xfca1ceca
+0,        146,        146,        1,   259200, 0x73c7d4c4
+0,        148,        148,        1,   259200, 0xef03e8b0
+0,        149,        149,        1,   259200, 0xfe82eeaa
+0,        151,        151,        1,   259200, 0x944600a7
+0,        152,        152,        1,   259200, 0x44f60e99
+0,        154,        154,        1,   259200, 0xa9242384
+0,        155,        155,        1,   259200, 0xd1bb3671
+0,        157,        157,        1,   259200, 0x3160495e
+0,        158,        158,        1,   259200, 0x32064b5c
+0,        160,        160,        1,   259200, 0x825b6a3d
+0,        161,        161,        1,   259200, 0xb6cb7334
+0,        163,        163,        1,   259200, 0xe2678f18
+0,        164,        164,        1,   259200, 0x32379413
+0,        166,        166,        1,   259200, 0x0c2eaafc
+0,        167,        167,        1,   259200, 0xcbb7aff7
+0,        169,        169,        1,   259200, 0x78e6b6f0
+0,        170,        170,        1,   259200, 0xcdd4c2e4
+0,        172,        172,        1,   259200, 0xdb94d7cf
+0,        173,        173,        1,   259200, 0x2eb9dbcb
+0,        175,        175,        1,   259200, 0x4b15edb9
+0,        176,        176,        1,   259200, 0xd7c2f3b3
+0,        178,        178,        1,   259200, 0xb68207ae
+0,        179,        179,        1,   259200, 0x88be189d
+0,        181,        181,        1,   259200, 0xa3b82b8a
+0,        182,        182,        1,   259200, 0xce743085
+0,        184,        184,        1,   259200, 0x969c4b6a
+0,        185,        185,        1,   259200, 0xf4fd5560
+0,        187,        187,        1,   259200, 0x439a684d
+0,        188,        188,        1,   259200, 0x378e7144
+0,        190,        190,        1,   259200, 0xe64c8b2a
+0,        191,        191,        1,   259200, 0xfc2ba70e
+0,        193,        193,        1,   259200, 0xee71b203
+0,        194,        194,        1,   259200, 0xc47bc3f1
+0,        196,        196,        1,   259200, 0xe3c5d0e4
+0,        197,        197,        1,   259200, 0x3e2ee0d4
+0,        199,        199,        1,   259200, 0xca2fe8cc
+0,        200,        200,        1,   259200, 0x6009faba
+0,        202,        202,        1,   259200, 0x5c9a02c1
+0,        203,        203,        1,   259200, 0x09be12b1
+0,        205,        205,        1,   259200, 0x2bc422a1
+0,        206,        206,        1,   259200, 0x8fbc358e
+0,        208,        208,        1,   259200, 0xe99b4b78
+0,        209,        209,        1,   259200, 0x49aa5b68
+0,        211,        211,        1,   259200, 0x3a1a6063
+0,        212,        212,        1,   259200, 0xe0be7c47
+0,        214,        214,        1,   259200, 0xc7ec883b
+0,        215,        215,        1,   259200, 0xdd00a122
+0,        217,        217,        1,   259200, 0x35c5a91a
+0,        218,        218,        1,   259200, 0x6147bd06
+0,        220,        220,        1,   259200, 0x0c78c201
+0,        221,        221,        1,   259200, 0xd038c8fa
+0,        223,        223,        1,   259200, 0x04ddd6ec
+0,        224,        224,        1,   259200, 0x790ee9d9
+0,        226,        226,        1,   259200, 0xcfd1efd3
+0,        227,        227,        1,   259200, 0xc1ebffc3
+0,        229,        229,        1,   259200, 0x558307ca
+0,        230,        230,        1,   259200, 0x5ce019b8
+0,        232,        232,        1,   259200, 0xa3c42da4
+0,        233,        233,        1,   259200, 0x50c13d94
+0,        235,        235,        1,   259200, 0x9e3c458c
+0,        236,        236,        1,   259200, 0xf4335d74
+0,        238,        238,        1,   259200, 0x213b6a67
+0,        239,        239,        1,   259200, 0x913c7a57
+0,        241,        241,        1,   259200, 0x7e6e7b56
+0,        242,        242,        1,   259200, 0xc6d7834e
+0,        244,        244,        1,   259200, 0x2d70953c
+0,        245,        245,        1,   259200, 0xf3a6a32e
+0,        247,        247,        1,   259200, 0x438cb021
+0,        248,        248,        1,   259200, 0x4037c809
+0,        250,        250,        1,   259200, 0xce92e1ef
+0,        251,        251,        1,   259200, 0x2f21efe1
+0,        253,        253,        1,   259200, 0x3f02f9d7
+0,        254,        254,        1,   259200, 0x5bcf09d6
+0,        256,        256,        1,   259200, 0x782811ce
+0,        257,        257,        1,   259200, 0x0aa11fc0
+0,        259,        259,        1,   259200, 0xd11d2eb1
+0,        260,        260,        1,   259200, 0xb4f03ca3
+0,        262,        262,        1,   259200, 0x20ee4a95
+0,        263,        263,        1,   259200, 0x7e2b5887
+0,        265,        265,        1,   259200, 0xe4c1657a
+0,        266,        266,        1,   259200, 0x98e07a65
+0,        268,        268,        1,   259200, 0xa2808a55
+0,        269,        269,        1,   259200, 0x7c5d9f40
+0,        271,        271,        1,   259200, 0x99b6aa35
+0,        272,        272,        1,   259200, 0x9b17b827
+0,        274,        274,        1,   259200, 0x212ec21d
+0,        275,        275,        1,   259200, 0x3090db04
+0,        277,        277,        1,   259200, 0x4523e6f8
+0,        278,        278,        1,   259200, 0x567900ed
+0,        280,        280,        1,   259200, 0xeda518d5
+0,        281,        281,        1,   259200, 0x97932ebf
+0,        283,        283,        1,   259200, 0xd70e35b8
+0,        284,        284,        1,   259200, 0x54b845a8
+0,        286,        286,        1,   259200, 0x720e529b
+0,        287,        287,        1,   259200, 0x25986c81
+0,        289,        289,        1,   259200, 0xe941806d
+0,        290,        290,        1,   259200, 0xd3b69558
+0,        292,        292,        1,   259200, 0x2104a548
+0,        293,        293,        1,   259200, 0xe408b33a
+0,        295,        295,        1,   259200, 0x58ddc02d
+0,        296,        296,        1,   259200, 0x7a98d419
+0,        298,        298,        1,   259200, 0xe82ed716
+0,        299,        299,        1,   259200, 0x1cdadf0e