aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Ross <pross@xvid.org>2019-01-13 15:15:29 +1100
committerPeter Ross <pross@xvid.org>2019-01-26 23:49:04 +1100
commit160ebe0a8d780f6db7c18e824d8ec6f437da33a2 (patch)
treeee73ea2f72016d83d963d06bd03098c999c490ab
parent10a57f55e60902ab91388b8a46b73f1f4532f737 (diff)
downloadffmpeg-160ebe0a8d780f6db7c18e824d8ec6f437da33a2.tar.gz
avcodec/vp6: use ff_vp3dsp_[hv]_loop_filter_12
Partially fixes: https://trac.ffmpeg.org/ticket/1282 Signed-off-by: Peter Ross <pross@xvid.org>
-rw-r--r--libavcodec/vp56.c10
-rw-r--r--libavcodec/vp56.h1
-rw-r--r--libavcodec/vp56dsp.c19
-rw-r--r--tests/ref/fate/vp61230
-rw-r--r--tests/ref/fate/vp6f340
5 files changed, 296 insertions, 304 deletions
diff --git a/libavcodec/vp56.c b/libavcodec/vp56.c
index 27b4b8b944..e9e8d5d9fd 100644
--- a/libavcodec/vp56.c
+++ b/libavcodec/vp56.c
@@ -33,6 +33,8 @@
void ff_vp56_init_dequant(VP56Context *s, int quantizer)
{
+ if (s->quantizer != quantizer)
+ ff_vp3dsp_set_bounding_values(s->bounding_values_array, ff_vp56_filter_threshold[quantizer]);
s->quantizer = quantizer;
s->dequant_dc = ff_vp56_dc_dequant[quantizer] << 2;
s->dequant_ac = ff_vp56_ac_dequant[quantizer] << 2;
@@ -320,9 +322,17 @@ static void vp56_add_predictors_dc(VP56Context *s, VP56Frame ref_frame)
static void vp56_deblock_filter(VP56Context *s, uint8_t *yuv,
ptrdiff_t stride, int dx, int dy)
{
+ if (s->avctx->codec->id == AV_CODEC_ID_VP5) {
int t = ff_vp56_filter_threshold[s->quantizer];
if (dx) s->vp56dsp.edge_filter_hor(yuv + 10-dx , stride, t);
if (dy) s->vp56dsp.edge_filter_ver(yuv + stride*(10-dy), stride, t);
+ } else {
+ int * bounding_values = s->bounding_values_array + 127;
+ if (dx)
+ ff_vp3dsp_h_loop_filter_12(yuv + 10-dx, stride, bounding_values);
+ if (dy)
+ ff_vp3dsp_v_loop_filter_12(yuv + stride*(10-dy), stride, bounding_values);
+ }
}
static void vp56_mc(VP56Context *s, int b, int plane, uint8_t *src,
diff --git a/libavcodec/vp56.h b/libavcodec/vp56.h
index 70e1d38a83..9b3036895c 100644
--- a/libavcodec/vp56.h
+++ b/libavcodec/vp56.h
@@ -170,6 +170,7 @@ struct vp56_context {
int filter_mode;
int max_vector_length;
int sample_variance_threshold;
+ DECLARE_ALIGNED(8, int, bounding_values_array)[256];
uint8_t coeff_ctx[4][64]; /* used in vp5 only */
uint8_t coeff_ctx_last[4]; /* used in vp5 only */
diff --git a/libavcodec/vp56dsp.c b/libavcodec/vp56dsp.c
index 9f299dc60f..e8d93d6680 100644
--- a/libavcodec/vp56dsp.c
+++ b/libavcodec/vp56dsp.c
@@ -72,27 +72,8 @@ av_cold void ff_vp5dsp_init(VP56DSPContext *s)
#endif /* CONFIG_VP5_DECODER */
#if CONFIG_VP6_DECODER
-static int vp6_adjust(int v, int t)
-{
- int V = v, s = v >> 31;
- V ^= s;
- V -= s;
- if (V-t-1 >= (unsigned)(t-1))
- return v;
- V = 2*t - V;
- V += s;
- V ^= s;
- return V;
-}
-
-VP56_EDGE_FILTER(vp6, hor, 1, stride)
-VP56_EDGE_FILTER(vp6, ver, stride, 1)
-
av_cold void ff_vp6dsp_init(VP56DSPContext *s)
{
- s->edge_filter_hor = vp6_edge_filter_hor;
- s->edge_filter_ver = vp6_edge_filter_ver;
-
s->vp6_filter_diag4 = ff_vp6_filter_diag4_c;
if (ARCH_ARM)
diff --git a/tests/ref/fate/vp61 b/tests/ref/fate/vp61
index a5a813e670..13146c4071 100644
--- a/tests/ref/fate/vp61
+++ b/tests/ref/fate/vp61
@@ -8,118 +8,118 @@
0, 2, 2, 1, 18816, 0x1eec8b7d
0, 3, 3, 1, 18816, 0x3817859f
0, 4, 4, 1, 18816, 0x8f487c41
-0, 5, 5, 1, 18816, 0xe1097136
-0, 6, 6, 1, 18816, 0x494161dd
-0, 7, 7, 1, 18816, 0x40c85514
-0, 8, 8, 1, 18816, 0xd1854b86
-0, 9, 9, 1, 18816, 0xdd563ad4
-0, 10, 10, 1, 18816, 0x00122fac
-0, 11, 11, 1, 18816, 0x0a6f19f4
-0, 12, 12, 1, 18816, 0x74fe0e01
-0, 13, 13, 1, 18816, 0x576e00bf
-0, 14, 14, 1, 18816, 0xcb84f7e1
-0, 15, 15, 1, 18816, 0x7f85ebf3
-0, 16, 16, 1, 18816, 0xc6c2e22b
-0, 17, 17, 1, 18816, 0x9b22cd80
-0, 18, 18, 1, 18816, 0x512fc164
-0, 19, 19, 1, 18816, 0x5c2aaf7b
-0, 20, 20, 1, 18816, 0x98a5a700
-0, 21, 21, 1, 18816, 0xccf19d74
-0, 22, 22, 1, 18816, 0x15d08d90
-0, 23, 23, 1, 18816, 0xe04f7b1b
-0, 24, 24, 1, 18816, 0x251564f6
-0, 25, 25, 1, 18816, 0x81bf5498
-0, 26, 26, 1, 18816, 0xd94f4861
-0, 27, 27, 1, 18816, 0xcb623dd3
-0, 28, 28, 1, 18816, 0x359f29ac
-0, 29, 29, 1, 18816, 0x932a1e14
-0, 30, 30, 1, 18816, 0x99e109e1
-0, 31, 31, 1, 18816, 0xafcf0391
-0, 32, 32, 1, 18816, 0x278cfdd3
-0, 33, 33, 1, 18816, 0x64a2f73e
-0, 34, 34, 1, 18816, 0x1777e80e
-0, 35, 35, 1, 18816, 0x8effdb17
-0, 36, 36, 1, 18816, 0x564bcdc9
-0, 37, 37, 1, 18816, 0xe83ac8c5
-0, 38, 38, 1, 18816, 0xaa53c337
-0, 39, 39, 1, 18816, 0xcb7bb62d
-0, 40, 40, 1, 18816, 0x435ba9e5
-0, 41, 41, 1, 18816, 0x5d759c00
-0, 42, 42, 1, 18816, 0x3411941b
-0, 43, 43, 1, 18816, 0x643d8eb3
-0, 44, 44, 1, 18816, 0x9c9a8a3f
-0, 45, 45, 1, 18816, 0xe44a7baa
-0, 46, 46, 1, 18816, 0xec457166
-0, 47, 47, 1, 18816, 0x9d84619e
-0, 48, 48, 1, 18816, 0x799b5f1f
-0, 49, 49, 1, 18816, 0x9b2a5b68
-0, 50, 50, 1, 18816, 0xa235544f
-0, 51, 51, 1, 18816, 0x725747c2
-0, 52, 52, 1, 18816, 0xe3573fb5
-0, 53, 53, 1, 18816, 0x31cb36ae
-0, 54, 54, 1, 18816, 0x6bc4350f
-0, 55, 55, 1, 18816, 0x2da53498
-0, 56, 56, 1, 18816, 0x29f127a4
-0, 57, 57, 1, 18816, 0x2dfc1eb0
-0, 58, 58, 1, 18816, 0xc9ea175d
-0, 59, 59, 1, 18816, 0xd73613a0
-0, 60, 60, 1, 18816, 0x24870eee
-0, 61, 61, 1, 18816, 0x5bf20853
-0, 62, 62, 1, 18816, 0x7778f73c
-0, 63, 63, 1, 18816, 0x7072f297
-0, 64, 64, 1, 18816, 0xd974ee82
-0, 65, 65, 1, 18816, 0xb090eec9
-0, 66, 66, 1, 18816, 0x6844f019
-0, 67, 67, 1, 18816, 0x935be67d
-0, 68, 68, 1, 18816, 0x2da5da98
-0, 69, 69, 1, 18816, 0x1cf2d8af
-0, 70, 70, 1, 18816, 0x64e3d7eb
-0, 71, 71, 1, 18816, 0x7450d12a
-0, 72, 72, 1, 18816, 0xe8cbcb7f
-0, 73, 73, 1, 18816, 0x8ebbc0df
-0, 74, 74, 1, 18816, 0x0bc5bc33
-0, 75, 75, 1, 18816, 0x3b09b8e3
-0, 76, 76, 1, 18816, 0xc5c2b619
-0, 77, 77, 1, 18816, 0xbd42af2a
-0, 78, 78, 1, 18816, 0x58daad01
-0, 79, 79, 1, 18816, 0x7ef3a780
-0, 80, 80, 1, 18816, 0x235b9df6
-0, 81, 81, 1, 18816, 0x6e918fa7
-0, 82, 82, 1, 18816, 0x06268f84
-0, 83, 83, 1, 18816, 0x279390ed
-0, 84, 84, 1, 18816, 0xfac0870f
-0, 85, 85, 1, 18816, 0x548a7e7a
-0, 86, 86, 1, 18816, 0xe8d17493
-0, 87, 87, 1, 18816, 0x5c4471d0
-0, 88, 88, 1, 18816, 0x94c17d3a
-0, 89, 89, 1, 18816, 0xa8867fc8
-0, 90, 90, 1, 18816, 0x096374c3
-0, 91, 91, 1, 18816, 0x7f9e6c9e
-0, 92, 92, 1, 18816, 0x70ab5c16
-0, 93, 93, 1, 18816, 0xb8a45ba1
-0, 94, 94, 1, 18816, 0xd19d6014
-0, 95, 95, 1, 18816, 0x5f425aa4
-0, 96, 96, 1, 18816, 0x394c4f3d
-0, 97, 97, 1, 18816, 0x07e74fc6
-0, 98, 98, 1, 18816, 0x8dec527b
-0, 99, 99, 1, 18816, 0xcf2e4b76
-0, 100, 100, 1, 18816, 0x74d744c1
-0, 101, 101, 1, 18816, 0xf22e39dd
-0, 102, 102, 1, 18816, 0x1ba334a1
-0, 103, 103, 1, 18816, 0x326d2a2b
-0, 104, 104, 1, 18816, 0x3edc26a0
-0, 105, 105, 1, 18816, 0x81a127e2
-0, 106, 106, 1, 18816, 0xc9f92698
-0, 107, 107, 1, 18816, 0x4ca320d5
-0, 108, 108, 1, 18816, 0xdea41b02
-0, 109, 109, 1, 18816, 0xff4810e5
-0, 110, 110, 1, 18816, 0x18b2118c
-0, 111, 111, 1, 18816, 0xb6cd15ed
-0, 112, 112, 1, 18816, 0xfa9b0d36
-0, 113, 113, 1, 18816, 0x0d19000b
-0, 114, 114, 1, 18816, 0x3bbdfdc4
-0, 115, 115, 1, 18816, 0x72bdfcae
-0, 116, 116, 1, 18816, 0x854ef9f7
-0, 117, 117, 1, 18816, 0x9195f5dc
-0, 118, 118, 1, 18816, 0x2452e545
-0, 119, 119, 1, 18816, 0x6b76e03d
+0, 5, 5, 1, 18816, 0x4ce87138
+0, 6, 6, 1, 18816, 0x499361dd
+0, 7, 7, 1, 18816, 0xd26c5518
+0, 8, 8, 1, 18816, 0xfb1a4b88
+0, 9, 9, 1, 18816, 0x4ac63ac7
+0, 10, 10, 1, 18816, 0x39642fad
+0, 11, 11, 1, 18816, 0x4dd219f6
+0, 12, 12, 1, 18816, 0x6c500df7
+0, 13, 13, 1, 18816, 0x700e00b4
+0, 14, 14, 1, 18816, 0xbebaf7e0
+0, 15, 15, 1, 18816, 0x22c1ebf6
+0, 16, 16, 1, 18816, 0x723fe229
+0, 17, 17, 1, 18816, 0x9b22cd91
+0, 18, 18, 1, 18816, 0x45ddc17a
+0, 19, 19, 1, 18816, 0x9b33af88
+0, 20, 20, 1, 18816, 0xf9d1a70d
+0, 21, 21, 1, 18816, 0x9bfd9d84
+0, 22, 22, 1, 18816, 0x27048da1
+0, 23, 23, 1, 18816, 0x0e497b2d
+0, 24, 24, 1, 18816, 0x508264fd
+0, 25, 25, 1, 18816, 0xf6985495
+0, 26, 26, 1, 18816, 0xa5014869
+0, 27, 27, 1, 18816, 0x426e3de4
+0, 28, 28, 1, 18816, 0xd72129b9
+0, 29, 29, 1, 18816, 0x12e51e1c
+0, 30, 30, 1, 18816, 0x754109eb
+0, 31, 31, 1, 18816, 0x2fb5039e
+0, 32, 32, 1, 18816, 0x9407fdea
+0, 33, 33, 1, 18816, 0x59f2f752
+0, 34, 34, 1, 18816, 0xb448e831
+0, 35, 35, 1, 18816, 0xf31fdb2e
+0, 36, 36, 1, 18816, 0x6bedcdec
+0, 37, 37, 1, 18816, 0xbbfec8e6
+0, 38, 38, 1, 18816, 0x104ac345
+0, 39, 39, 1, 18816, 0xd387b629
+0, 40, 40, 1, 18816, 0x4187a9e7
+0, 41, 41, 1, 18816, 0x1c649c17
+0, 42, 42, 1, 18816, 0xcc869431
+0, 43, 43, 1, 18816, 0x8bc78ed1
+0, 44, 44, 1, 18816, 0x34de8a5f
+0, 45, 45, 1, 18816, 0x42727bd0
+0, 46, 46, 1, 18816, 0x6e9c7192
+0, 47, 47, 1, 18816, 0xd93761c1
+0, 48, 48, 1, 18816, 0x69455f50
+0, 49, 49, 1, 18816, 0xa35d5b8b
+0, 50, 50, 1, 18816, 0xe6635469
+0, 51, 51, 1, 18816, 0x285d47f9
+0, 52, 52, 1, 18816, 0xdb0a3fdf
+0, 53, 53, 1, 18816, 0x608336d0
+0, 54, 54, 1, 18816, 0x39e9353f
+0, 55, 55, 1, 18816, 0xad2034bd
+0, 56, 56, 1, 18816, 0xa0f527e7
+0, 57, 57, 1, 18816, 0x5ed71ef1
+0, 58, 58, 1, 18816, 0xd2df1798
+0, 59, 59, 1, 18816, 0x932513d3
+0, 60, 60, 1, 18816, 0xab600f1b
+0, 61, 61, 1, 18816, 0x665d087e
+0, 62, 62, 1, 18816, 0x8d71f765
+0, 63, 63, 1, 18816, 0xfc80f2ae
+0, 64, 64, 1, 18816, 0x885bee81
+0, 65, 65, 1, 18816, 0x6c4feec9
+0, 66, 66, 1, 18816, 0x5010f017
+0, 67, 67, 1, 18816, 0x63d5e683
+0, 68, 68, 1, 18816, 0x216ddab5
+0, 69, 69, 1, 18816, 0xb758d8c2
+0, 70, 70, 1, 18816, 0xeae4d7e5
+0, 71, 71, 1, 18816, 0x2553d137
+0, 72, 72, 1, 18816, 0xced6cb97
+0, 73, 73, 1, 18816, 0xd332c103
+0, 74, 74, 1, 18816, 0xe84bbc67
+0, 75, 75, 1, 18816, 0x21f7b90d
+0, 76, 76, 1, 18816, 0xbd88b648
+0, 77, 77, 1, 18816, 0xe7b8af59
+0, 78, 78, 1, 18816, 0x30f5ad3d
+0, 79, 79, 1, 18816, 0x79bfa7bb
+0, 80, 80, 1, 18816, 0xd5919e34
+0, 81, 81, 1, 18816, 0x43758fda
+0, 82, 82, 1, 18816, 0x93ff8fcc
+0, 83, 83, 1, 18816, 0xa444913f
+0, 84, 84, 1, 18816, 0xc41d878b
+0, 85, 85, 1, 18816, 0x526d7f09
+0, 86, 86, 1, 18816, 0x40307528
+0, 87, 87, 1, 18816, 0xf63d725c
+0, 88, 88, 1, 18816, 0x45587ddb
+0, 89, 89, 1, 18816, 0x37018069
+0, 90, 90, 1, 18816, 0x69567572
+0, 91, 91, 1, 18816, 0xa8086d54
+0, 92, 92, 1, 18816, 0x2ab65ccc
+0, 93, 93, 1, 18816, 0xa5475c5d
+0, 94, 94, 1, 18816, 0x87dc60e2
+0, 95, 95, 1, 18816, 0x54295b5d
+0, 96, 96, 1, 18816, 0xce424fe9
+0, 97, 97, 1, 18816, 0x99e0506d
+0, 98, 98, 1, 18816, 0x6ac55324
+0, 99, 99, 1, 18816, 0xa60f4c1a
+0, 100, 100, 1, 18816, 0x7eba456e
+0, 101, 101, 1, 18816, 0xab703a88
+0, 102, 102, 1, 18816, 0xb8263539
+0, 103, 103, 1, 18816, 0x829e2abb
+0, 104, 104, 1, 18816, 0x2e9f2736
+0, 105, 105, 1, 18816, 0x7a3d2885
+0, 106, 106, 1, 18816, 0x8023274f
+0, 107, 107, 1, 18816, 0x39bf2196
+0, 108, 108, 1, 18816, 0x21cf1bcb
+0, 109, 109, 1, 18816, 0x016911b9
+0, 110, 110, 1, 18816, 0x2a791237
+0, 111, 111, 1, 18816, 0x093f16a7
+0, 112, 112, 1, 18816, 0x07a90df3
+0, 113, 113, 1, 18816, 0x8de800ca
+0, 114, 114, 1, 18816, 0xe379fe68
+0, 115, 115, 1, 18816, 0x267afd69
+0, 116, 116, 1, 18816, 0x5b29fac1
+0, 117, 117, 1, 18816, 0x3606f6b6
+0, 118, 118, 1, 18816, 0xcbdce61e
+0, 119, 119, 1, 18816, 0x28ffe113
diff --git a/tests/ref/fate/vp6f b/tests/ref/fate/vp6f
index 2da2eddc8c..c76e077cbf 100644
--- a/tests/ref/fate/vp6f
+++ b/tests/ref/fate/vp6f
@@ -4,176 +4,176 @@
#dimensions 0: 112x80
#sar 0: 0/1
0, 0, 0, 1, 13440, 0x7cb0a22f
-0, 1, 1, 1, 13440, 0xcb06a6b6
-0, 2, 2, 1, 13440, 0x812ea5c9
-0, 3, 3, 1, 13440, 0xc378b303
-0, 4, 4, 1, 13440, 0x0528ba5f
-0, 5, 5, 1, 13440, 0x5d97e8fe
-0, 6, 6, 1, 13440, 0x05d914df
-0, 7, 7, 1, 13440, 0xfdf804c6
-0, 8, 8, 1, 13440, 0x9db5fcb8
-0, 9, 9, 1, 13440, 0xd33db2ab
-0, 10, 10, 1, 13440, 0x6c147a86
-0, 11, 11, 1, 13440, 0x300f577d
-0, 12, 12, 1, 13440, 0x4f4443c8
-0, 13, 13, 1, 13440, 0x6ed84c79
-0, 14, 14, 1, 13440, 0xa0dc5e2a
-0, 15, 15, 1, 13440, 0x4ab092d4
-0, 16, 16, 1, 13440, 0x39c9cb60
-0, 17, 17, 1, 13440, 0x46c2da59
-0, 18, 18, 1, 13440, 0x0eed0e66
-0, 19, 19, 1, 13440, 0xa4a43403
-0, 20, 20, 1, 13440, 0x323939cd
-0, 21, 21, 1, 13440, 0x6b393cc0
-0, 22, 22, 1, 13440, 0x59da35b8
-0, 23, 23, 1, 13440, 0x4511224f
-0, 24, 24, 1, 13440, 0xe96cbbbf
-0, 25, 25, 1, 13440, 0x15dc9608
-0, 26, 26, 1, 13440, 0xde056e0a
-0, 27, 27, 1, 13440, 0xfde76d13
-0, 28, 28, 1, 13440, 0xd9bf6b4e
-0, 29, 29, 1, 13440, 0x0a3c85bd
-0, 30, 30, 1, 13440, 0x6edfc17f
-0, 31, 31, 1, 13440, 0xf4561c94
-0, 32, 32, 1, 13440, 0x2fdf776f
-0, 33, 33, 1, 13440, 0xb7c7cd69
-0, 34, 34, 1, 13440, 0x5247ef0d
-0, 35, 35, 1, 13440, 0xeec31762
-0, 36, 36, 1, 13440, 0x486097dd
-0, 37, 37, 1, 13440, 0x9bcf2934
-0, 38, 38, 1, 13440, 0x4a5dea6a
-0, 39, 39, 1, 13440, 0x35997d87
-0, 40, 40, 1, 13440, 0xa4bf415b
-0, 41, 41, 1, 13440, 0x677229fa
-0, 42, 42, 1, 13440, 0xbe5229bb
-0, 43, 43, 1, 13440, 0x8d012e0a
-0, 44, 44, 1, 13440, 0x74ec49b5
-0, 45, 45, 1, 13440, 0xa6f595d0
-0, 46, 46, 1, 13440, 0x23b59ba7
-0, 47, 47, 1, 13440, 0xc471baab
-0, 48, 48, 1, 13440, 0x8d6ebaee
-0, 49, 49, 1, 13440, 0x6338c1c1
-0, 50, 50, 1, 13440, 0x0d93a811
-0, 51, 51, 1, 13440, 0x260e901e
-0, 52, 52, 1, 13440, 0xad05919b
-0, 53, 53, 1, 13440, 0x04d1921d
-0, 54, 54, 1, 13440, 0xac00a249
-0, 55, 55, 1, 13440, 0xcb667031
-0, 56, 56, 1, 13440, 0x3f4236a1
-0, 57, 57, 1, 13440, 0xf38e029b
-0, 58, 58, 1, 13440, 0x3d5ae06e
-0, 59, 59, 1, 13440, 0x9b30ae5e
+0, 1, 1, 1, 13440, 0xe38fa6b7
+0, 2, 2, 1, 13440, 0xe003a5c6
+0, 3, 3, 1, 13440, 0xe502b2f6
+0, 4, 4, 1, 13440, 0xb731ba56
+0, 5, 5, 1, 13440, 0x8168e8f5
+0, 6, 6, 1, 13440, 0x776d14fb
+0, 7, 7, 1, 13440, 0xb5d0049c
+0, 8, 8, 1, 13440, 0x3434fc98
+0, 9, 9, 1, 13440, 0xd219b282
+0, 10, 10, 1, 13440, 0xd2027a7c
+0, 11, 11, 1, 13440, 0xd50b5799
+0, 12, 12, 1, 13440, 0x091543c4
+0, 13, 13, 1, 13440, 0x26374c6b
+0, 14, 14, 1, 13440, 0x5b4f5e1e
+0, 15, 15, 1, 13440, 0x55ba92da
+0, 16, 16, 1, 13440, 0x1ff5cb4d
+0, 17, 17, 1, 13440, 0x0ccbda45
+0, 18, 18, 1, 13440, 0x5ff80e6a
+0, 19, 19, 1, 13440, 0x09df3417
+0, 20, 20, 1, 13440, 0xfbed3a0f
+0, 21, 21, 1, 13440, 0xd65c3c7f
+0, 22, 22, 1, 13440, 0xc8173576
+0, 23, 23, 1, 13440, 0xd5e521f8
+0, 24, 24, 1, 13440, 0xe440bb55
+0, 25, 25, 1, 13440, 0xcbeb95c8
+0, 26, 26, 1, 13440, 0x8cd66dba
+0, 27, 27, 1, 13440, 0x5f356cbc
+0, 28, 28, 1, 13440, 0x54e16ad7
+0, 29, 29, 1, 13440, 0x17ed8566
+0, 30, 30, 1, 13440, 0x1aa1c121
+0, 31, 31, 1, 13440, 0x64e31cac
+0, 32, 32, 1, 13440, 0x869677a4
+0, 33, 33, 1, 13440, 0x7df6cdba
+0, 34, 34, 1, 13440, 0x23f3ef45
+0, 35, 35, 1, 13440, 0x176217b4
+0, 36, 36, 1, 13440, 0x493897cb
+0, 37, 37, 1, 13440, 0x0591296d
+0, 38, 38, 1, 13440, 0xb58aeae8
+0, 39, 39, 1, 13440, 0x38fd7e58
+0, 40, 40, 1, 13440, 0x200c424c
+0, 41, 41, 1, 13440, 0x2ee42b14
+0, 42, 42, 1, 13440, 0xdcba2ae5
+0, 43, 43, 1, 13440, 0xbb102f41
+0, 44, 44, 1, 13440, 0x034d4b06
+0, 45, 45, 1, 13440, 0x62d99722
+0, 46, 46, 1, 13440, 0x174d9ce4
+0, 47, 47, 1, 13440, 0xf676bbc8
+0, 48, 48, 1, 13440, 0xe2e5bbef
+0, 49, 49, 1, 13440, 0x6ef0c2af
+0, 50, 50, 1, 13440, 0x8d08a917
+0, 51, 51, 1, 13440, 0x030d90e8
+0, 52, 52, 1, 13440, 0x4d6f9232
+0, 53, 53, 1, 13440, 0xb7a792f6
+0, 54, 54, 1, 13440, 0xa0daa330
+0, 55, 55, 1, 13440, 0xe9f870a3
+0, 56, 56, 1, 13440, 0xed4f36cb
+0, 57, 57, 1, 13440, 0x8a6f02c3
+0, 58, 58, 1, 13440, 0x663ee03d
+0, 59, 59, 1, 13440, 0x2571adef
0, 60, 60, 1, 13440, 0x7533ad99
-0, 61, 61, 1, 13440, 0x29c7c2d7
-0, 62, 62, 1, 13440, 0x1aaae414
-0, 63, 63, 1, 13440, 0xd9b1fc03
-0, 64, 64, 1, 13440, 0xcd2b0549
-0, 65, 65, 1, 13440, 0x6852223c
-0, 66, 66, 1, 13440, 0xaa765ce6
-0, 67, 67, 1, 13440, 0x022169d5
-0, 68, 68, 1, 13440, 0x0e478e90
-0, 69, 69, 1, 13440, 0xc2a08d9b
-0, 70, 70, 1, 13440, 0xe16a75f1
-0, 71, 71, 1, 13440, 0x3b218252
-0, 72, 72, 1, 13440, 0x5e27b3c8
-0, 73, 73, 1, 13440, 0x27a0eaf9
-0, 74, 74, 1, 13440, 0xe002ff74
-0, 75, 75, 1, 13440, 0x8585f024
-0, 76, 76, 1, 13440, 0x5a74cfe6
-0, 77, 77, 1, 13440, 0xb10ec139
-0, 78, 78, 1, 13440, 0xe9e1de94
-0, 79, 79, 1, 13440, 0x5a29fa1c
-0, 80, 80, 1, 13440, 0x75dce5f8
-0, 81, 81, 1, 13440, 0xbceaee2c
-0, 82, 82, 1, 13440, 0xf9dc00f9
-0, 83, 83, 1, 13440, 0x4b6549f4
-0, 84, 84, 1, 13440, 0x0f2097dc
-0, 85, 85, 1, 13440, 0x844d97df
-0, 86, 86, 1, 13440, 0xee47764b
-0, 87, 87, 1, 13440, 0x647938d6
-0, 88, 88, 1, 13440, 0xf4de156a
-0, 89, 89, 1, 13440, 0x53cd02e8
-0, 90, 90, 1, 13440, 0x6f39bedb
-0, 91, 91, 1, 13440, 0x3192aa64
-0, 92, 92, 1, 13440, 0xb38591cd
-0, 93, 93, 1, 13440, 0xd4407a1b
-0, 94, 94, 1, 13440, 0x3f6f69f4
-0, 95, 95, 1, 13440, 0x62cb5c21
-0, 96, 96, 1, 13440, 0x592472ea
-0, 97, 97, 1, 13440, 0xf7748d1d
-0, 98, 98, 1, 13440, 0x88ada886
-0, 99, 99, 1, 13440, 0xdc92ebc6
-0, 100, 100, 1, 13440, 0x97700e4f
-0, 101, 101, 1, 13440, 0x77f21f6e
-0, 102, 102, 1, 13440, 0x0c9f4a72
-0, 103, 103, 1, 13440, 0xd3b44b28
-0, 104, 104, 1, 13440, 0x3a023773
-0, 105, 105, 1, 13440, 0xf3c72faf
-0, 106, 106, 1, 13440, 0x2f144498
-0, 107, 107, 1, 13440, 0x96ac81db
-0, 108, 108, 1, 13440, 0xef07bb83
-0, 109, 109, 1, 13440, 0xf220e3e7
-0, 110, 110, 1, 13440, 0x2e7201dc
-0, 111, 111, 1, 13440, 0x56da16de
-0, 112, 112, 1, 13440, 0xc9ec24ed
-0, 113, 113, 1, 13440, 0x951d31d7
-0, 114, 114, 1, 13440, 0xb4e363c3
-0, 115, 115, 1, 13440, 0x4aae996d
-0, 116, 116, 1, 13440, 0xbbe0b6f6
+0, 61, 61, 1, 13440, 0xe3aec2d4
+0, 62, 62, 1, 13440, 0x3368e416
+0, 63, 63, 1, 13440, 0xe2ecfbf5
+0, 64, 64, 1, 13440, 0x45010538
+0, 65, 65, 1, 13440, 0xc075222c
+0, 66, 66, 1, 13440, 0x5bf45cc4
+0, 67, 67, 1, 13440, 0xa06869b5
+0, 68, 68, 1, 13440, 0x1ff98e6f
+0, 69, 69, 1, 13440, 0x11c88d84
+0, 70, 70, 1, 13440, 0x95c275e8
+0, 71, 71, 1, 13440, 0x81a68285
+0, 72, 72, 1, 13440, 0xb903b402
+0, 73, 73, 1, 13440, 0xa9d2eb1c
+0, 74, 74, 1, 13440, 0x2c48ff65
+0, 75, 75, 1, 13440, 0xc024eff6
+0, 76, 76, 1, 13440, 0x41bacff0
+0, 77, 77, 1, 13440, 0x2cf9c144
+0, 78, 78, 1, 13440, 0x9e67de72
+0, 79, 79, 1, 13440, 0x3e74fa36
+0, 80, 80, 1, 13440, 0x9b9be609
+0, 81, 81, 1, 13440, 0x594eee16
+0, 82, 82, 1, 13440, 0x8a7c00d7
+0, 83, 83, 1, 13440, 0x56104a2a
+0, 84, 84, 1, 13440, 0xd94d97cc
+0, 85, 85, 1, 13440, 0x95d09887
+0, 86, 86, 1, 13440, 0xe02a769b
+0, 87, 87, 1, 13440, 0x847839d0
+0, 88, 88, 1, 13440, 0x47441606
+0, 89, 89, 1, 13440, 0x19b10373
+0, 90, 90, 1, 13440, 0x3ddfbf15
+0, 91, 91, 1, 13440, 0xf4fdab37
+0, 92, 92, 1, 13440, 0xfe9a92ad
+0, 93, 93, 1, 13440, 0xaa387bfb
+0, 94, 94, 1, 13440, 0xe57a6c85
+0, 95, 95, 1, 13440, 0x68ef5f30
+0, 96, 96, 1, 13440, 0x481d76f7
+0, 97, 97, 1, 13440, 0x5b0e9192
+0, 98, 98, 1, 13440, 0xebc1ac80
+0, 99, 99, 1, 13440, 0x13bfef3e
+0, 100, 100, 1, 13440, 0xb7b01291
+0, 101, 101, 1, 13440, 0xc8c72419
+0, 102, 102, 1, 13440, 0x9dca4f32
+0, 103, 103, 1, 13440, 0x67635158
+0, 104, 104, 1, 13440, 0x6c773e0d
+0, 105, 105, 1, 13440, 0x6c2f3777
+0, 106, 106, 1, 13440, 0x19574d97
+0, 107, 107, 1, 13440, 0xd9f48cc1
+0, 108, 108, 1, 13440, 0xd19dc87c
+0, 109, 109, 1, 13440, 0xa23cf2ab
+0, 110, 110, 1, 13440, 0x3f7611b6
+0, 111, 111, 1, 13440, 0x183d2723
+0, 112, 112, 1, 13440, 0xf79b3534
+0, 113, 113, 1, 13440, 0xcbba4280
+0, 114, 114, 1, 13440, 0x03777586
+0, 115, 115, 1, 13440, 0xea1aac72
+0, 116, 116, 1, 13440, 0xad27cae0
0, 117, 117, 1, 13440, 0xa237e05d
0, 118, 118, 1, 13440, 0xb683f189
-0, 119, 119, 1, 13440, 0xb8e7d3d3
-0, 120, 120, 1, 13440, 0x549daea3
-0, 121, 121, 1, 13440, 0x56158687
-0, 122, 122, 1, 13440, 0x25c6833f
-0, 123, 123, 1, 13440, 0x79618577
-0, 124, 124, 1, 13440, 0x4e77916c
-0, 125, 125, 1, 13440, 0x79bb946a
-0, 126, 126, 1, 13440, 0x28a69cc7
-0, 127, 127, 1, 13440, 0xcc03a6bb
-0, 128, 128, 1, 13440, 0x12e7ac2f
-0, 129, 129, 1, 13440, 0x66b099bc
-0, 130, 130, 1, 13440, 0xb218574c
-0, 131, 131, 1, 13440, 0xc55a172a
-0, 132, 132, 1, 13440, 0xefa9d1ca
-0, 133, 133, 1, 13440, 0xaedbb577
-0, 134, 134, 1, 13440, 0x279ca23c
-0, 135, 135, 1, 13440, 0x12a88c7b
-0, 136, 136, 1, 13440, 0xc3c46ae3
-0, 137, 137, 1, 13440, 0x41954bf2
-0, 138, 138, 1, 13440, 0xe19e1137
-0, 139, 139, 1, 13440, 0xd5c5fa3e
-0, 140, 140, 1, 13440, 0xe391f3a4
-0, 141, 141, 1, 13440, 0x6463f7e2
-0, 142, 142, 1, 13440, 0x4ad80409
-0, 143, 143, 1, 13440, 0x2de72edb
-0, 144, 144, 1, 13440, 0x120030f4
-0, 145, 145, 1, 13440, 0xc8f0f93a
-0, 146, 146, 1, 13440, 0x32e8f304
-0, 147, 147, 1, 13440, 0x86d62275
-0, 148, 148, 1, 13440, 0x98df3eec
-0, 149, 149, 1, 13440, 0x664d4d42
-0, 150, 150, 1, 13440, 0x3888f447
-0, 151, 151, 1, 13440, 0x959aa236
-0, 152, 152, 1, 13440, 0xebee9e20
-0, 153, 153, 1, 13440, 0xd1a197fb
-0, 154, 154, 1, 13440, 0x0e47b9f0
-0, 155, 155, 1, 13440, 0xe359e545
-0, 156, 156, 1, 13440, 0x02cae3c1
-0, 157, 157, 1, 13440, 0x7218c409
-0, 158, 158, 1, 13440, 0x0805b6b7
-0, 159, 159, 1, 13440, 0x13ae816f
-0, 160, 160, 1, 13440, 0x1cda5d9b
-0, 161, 161, 1, 13440, 0x125b509f
-0, 162, 162, 1, 13440, 0xb63500cf
-0, 163, 163, 1, 13440, 0x1229bc6a
-0, 164, 164, 1, 13440, 0x04e0ab7d
-0, 165, 165, 1, 13440, 0xee90aa6b
-0, 166, 166, 1, 13440, 0xe712cee3
-0, 167, 167, 1, 13440, 0xbdb1e8a4
-0, 168, 168, 1, 13440, 0xb651fc4b
-0, 169, 169, 1, 13440, 0xd1ba297a
-0, 170, 170, 1, 13440, 0xa64065df
-0, 171, 171, 1, 13440, 0x6865a618
-0, 172, 172, 1, 13440, 0x1922f326
-0, 173, 173, 1, 13440, 0xd2111537
+0, 119, 119, 1, 13440, 0x2058d3cd
+0, 120, 120, 1, 13440, 0x715dae96
+0, 121, 121, 1, 13440, 0xd8f88677
+0, 122, 122, 1, 13440, 0x45818329
+0, 123, 123, 1, 13440, 0x69ad852f
+0, 124, 124, 1, 13440, 0x56369125
+0, 125, 125, 1, 13440, 0xdfde941b
+0, 126, 126, 1, 13440, 0xf1209c90
+0, 127, 127, 1, 13440, 0x82e6a6aa
+0, 128, 128, 1, 13440, 0xb0ceabd1
+0, 129, 129, 1, 13440, 0x05f899a6
+0, 130, 130, 1, 13440, 0x9ef95758
+0, 131, 131, 1, 13440, 0x63e716d9
+0, 132, 132, 1, 13440, 0x7cb0d149
+0, 133, 133, 1, 13440, 0x3585b4f1
+0, 134, 134, 1, 13440, 0x623ea1fc
+0, 135, 135, 1, 13440, 0x762b8c32
+0, 136, 136, 1, 13440, 0xc1b96add
+0, 137, 137, 1, 13440, 0x95e24baf
+0, 138, 138, 1, 13440, 0x74631106
+0, 139, 139, 1, 13440, 0x78b5fa14
+0, 140, 140, 1, 13440, 0x5f33f34a
+0, 141, 141, 1, 13440, 0x7e6ff799
+0, 142, 142, 1, 13440, 0x9f8303b0
+0, 143, 143, 1, 13440, 0x7c3d2eb9
+0, 144, 144, 1, 13440, 0x3c0530d2
+0, 145, 145, 1, 13440, 0xe7ecf960
+0, 146, 146, 1, 13440, 0x82c3f316
+0, 147, 147, 1, 13440, 0x008922b4
+0, 148, 148, 1, 13440, 0x0d263f5f
+0, 149, 149, 1, 13440, 0x57dc4dd0
+0, 150, 150, 1, 13440, 0xbcbbf4f1
+0, 151, 151, 1, 13440, 0x62e9a335
+0, 152, 152, 1, 13440, 0x65699f37
+0, 153, 153, 1, 13440, 0xe4b69939
+0, 154, 154, 1, 13440, 0xbd4ebb6c
+0, 155, 155, 1, 13440, 0xb7d6e71e
+0, 156, 156, 1, 13440, 0xfc0ae5b6
+0, 157, 157, 1, 13440, 0xe55ec65c
+0, 158, 158, 1, 13440, 0x2095b8fc
+0, 159, 159, 1, 13440, 0x479c8408
+0, 160, 160, 1, 13440, 0x2981604c
+0, 161, 161, 1, 13440, 0xa4e55397
+0, 162, 162, 1, 13440, 0x0bc703f8
+0, 163, 163, 1, 13440, 0xd43bbf89
+0, 164, 164, 1, 13440, 0xdcd6aeca
+0, 165, 165, 1, 13440, 0x07b1ad84
+0, 166, 166, 1, 13440, 0xfb17d20b
+0, 167, 167, 1, 13440, 0x0c4aebd9
+0, 168, 168, 1, 13440, 0x826effc4
+0, 169, 169, 1, 13440, 0x4ccf2ca4
+0, 170, 170, 1, 13440, 0xe4f968f3
+0, 171, 171, 1, 13440, 0xe1b4a93a
+0, 172, 172, 1, 13440, 0x8597f65e
+0, 173, 173, 1, 13440, 0xb4f7184f