diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c index 2dc3e6b50d..10da0062ed 100644 --- a/libavcodec/adpcm.c +++ b/libavcodec/adpcm.c @@ -1136,16 +1136,9 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } break; case AV_CODEC_ID_ADPCM_IMA_AMV: - case AV_CODEC_ID_ADPCM_IMA_SMJPEG: - if (avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_AMV) { - c->status[0].predictor = sign_extend(bytestream2_get_le16u(&gb), 16); - c->status[0].step_index = bytestream2_get_le16u(&gb); - bytestream2_skipu(&gb, 4); - } else { - c->status[0].predictor = sign_extend(bytestream2_get_be16u(&gb), 16); - c->status[0].step_index = bytestream2_get_byteu(&gb); - bytestream2_skipu(&gb, 1); - } + c->status[0].predictor = sign_extend(bytestream2_get_le16u(&gb), 16); + c->status[0].step_index = bytestream2_get_le16u(&gb); + bytestream2_skipu(&gb, 4); if (c->status[0].step_index > 88u) { av_log(avctx, AV_LOG_ERROR, "ERROR: step_index = %i\n", c->status[0].step_index); @@ -1153,18 +1146,27 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, } for (n = nb_samples >> (1 - st); n > 0; n--) { - int hi, lo, v = bytestream2_get_byteu(&gb); + int v = bytestream2_get_byteu(&gb); - if (avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_AMV) { - hi = v & 0x0F; - lo = v >> 4; - } else { - lo = v & 0x0F; - hi = v >> 4; - } + *samples++ = adpcm_ima_expand_nibble(&c->status[0], v >> 4, 3); + *samples++ = adpcm_ima_expand_nibble(&c->status[0], v & 0xf, 3); + } + break; + case AV_CODEC_ID_ADPCM_IMA_SMJPEG: + c->status[0].predictor = sign_extend(bytestream2_get_be16u(&gb), 16); + c->status[0].step_index = bytestream2_get_byteu(&gb); + bytestream2_skipu(&gb, 1); + if (c->status[0].step_index > 88u) { + av_log(avctx, AV_LOG_ERROR, "ERROR: step_index = %i\n", + c->status[0].step_index); + return AVERROR_INVALIDDATA; + } - *samples++ = adpcm_ima_expand_nibble(&c->status[0], lo, 3); - *samples++ = adpcm_ima_expand_nibble(&c->status[0], hi, 3); + for (n = nb_samples >> (1 - st); n > 0; n--) { + int v = bytestream2_get_byteu(&gb); + + *samples++ = adpcm_ima_qt_expand_nibble(&c->status[0], v >> 4, 3); + *samples++ = adpcm_ima_qt_expand_nibble(&c->status[0], v & 0xf, 3); } break; case AV_CODEC_ID_ADPCM_CT: diff --git a/tests/ref/fate/adpcm-ima-smjpeg b/tests/ref/fate/adpcm-ima-smjpeg index ed88debc17..3a746b60d2 100644 --- a/tests/ref/fate/adpcm-ima-smjpeg +++ b/tests/ref/fate/adpcm-ima-smjpeg @@ -1,351 +1,351 @@ #tb 0: 1/22050 0, 0, 0, 512, 1024, 0x00000000 0, 512, 512, 512, 1024, 0x00000000 -0, 1024, 1024, 512, 1024, 0xd89a448e -0, 1533, 1533, 512, 1024, 0x695b369c -0, 2040, 2040, 512, 1024, 0xc8ba5707 -0, 2552, 2552, 512, 1024, 0xdf241fc6 -0, 3064, 3064, 512, 1024, 0x61cf4166 -0, 3576, 3576, 512, 1024, 0x97cbc386 -0, 4088, 4088, 512, 1024, 0x44899d04 -0, 4598, 4598, 512, 1024, 0xa7cbaa62 -0, 5110, 5110, 512, 1024, 0xa7aea60c -0, 5622, 5622, 512, 1024, 0xd7b18a89 -0, 6134, 6134, 512, 1024, 0x268e81f6 -0, 6646, 6646, 512, 1024, 0x9cf83a2f -0, 7158, 7158, 512, 1024, 0x5559b508 -0, 7670, 7670, 512, 1024, 0xe1b9e71c -0, 8182, 8182, 512, 1024, 0xdcee733e -0, 8694, 8694, 512, 1024, 0xe5918f60 -0, 9206, 9206, 512, 1024, 0x29dbd209 -0, 9718, 9718, 512, 1024, 0x9bcbcf16 -0, 10230, 10230, 512, 1024, 0x86f5f458 -0, 10742, 10742, 512, 1024, 0xabcbda86 -0, 11254, 11254, 512, 1024, 0xc51f77b9 -0, 11766, 11766, 512, 1024, 0xf6b3a504 -0, 12278, 12278, 512, 1024, 0x1af3e40e -0, 12790, 12790, 512, 1024, 0x3866b03b -0, 13302, 13302, 512, 1024, 0xbc005403 -0, 13814, 13814, 512, 1024, 0xe9dfcc51 -0, 14326, 14326, 512, 1024, 0x83c837cb -0, 14838, 14838, 512, 1024, 0xfa649580 -0, 15350, 15350, 512, 1024, 0x519452ea -0, 15862, 15862, 512, 1024, 0xd4978774 -0, 16374, 16374, 512, 1024, 0xe2a3b1cd -0, 16886, 16886, 512, 1024, 0x9a9472ad -0, 17398, 17398, 512, 1024, 0xa12d4060 -0, 17910, 17910, 512, 1024, 0x31fb0646 -0, 18422, 18422, 512, 1024, 0xfc44343f -0, 18934, 18934, 512, 1024, 0x0847751a -0, 19446, 19446, 512, 1024, 0x227968a2 -0, 19958, 19958, 512, 1024, 0x7cce9f1c -0, 20470, 20470, 512, 1024, 0xb8356713 -0, 20982, 20982, 512, 1024, 0xb29f6e6f -0, 21494, 21494, 512, 1024, 0x9e1430ab -0, 22006, 22006, 512, 1024, 0x26d85423 -0, 22518, 22518, 512, 1024, 0x6496547d -0, 23030, 23030, 512, 1024, 0x316b1a86 -0, 23542, 23542, 512, 1024, 0x3cd83afc -0, 24054, 24054, 512, 1024, 0x993ff633 -0, 24566, 24566, 512, 1024, 0x0708d1a2 -0, 25078, 25078, 512, 1024, 0xd7230db9 -0, 25590, 25590, 512, 1024, 0xbb0779ca -0, 26102, 26102, 512, 1024, 0xc6094e1b -0, 26614, 26614, 512, 1024, 0x15a8b039 -0, 27126, 27126, 512, 1024, 0xd6dbe88c -0, 27638, 27638, 512, 1024, 0x7e8d1140 -0, 28150, 28150, 512, 1024, 0xef88e525 -0, 28662, 28662, 512, 1024, 0x44e21149 -0, 29174, 29174, 512, 1024, 0x65b0f5f4 -0, 29686, 29686, 512, 1024, 0xb955f687 -0, 30198, 30198, 512, 1024, 0xc85fba9c -0, 30710, 30710, 512, 1024, 0xf59655ad -0, 31222, 31222, 512, 1024, 0x6de80bf1 -0, 31734, 31734, 512, 1024, 0x2dcf6e41 -0, 32246, 32246, 512, 1024, 0xd0ddcf8a -0, 32758, 32758, 512, 1024, 0x00135c2d -0, 33270, 33270, 512, 1024, 0x697f8efd -0, 33782, 33782, 512, 1024, 0x7a9bada5 -0, 34294, 34294, 512, 1024, 0x0d22783c -0, 34806, 34806, 512, 1024, 0x7726d07d -0, 35318, 35318, 512, 1024, 0xa2f14f67 -0, 35830, 35830, 512, 1024, 0x7f51060d -0, 36342, 36342, 512, 1024, 0xc4ec6aea -0, 36854, 36854, 512, 1024, 0x9bb37ca4 -0, 37366, 37366, 512, 1024, 0x9b085577 -0, 37878, 37878, 512, 1024, 0x8812f8af -0, 38390, 38390, 512, 1024, 0x788f5221 -0, 38902, 38902, 512, 1024, 0x3a2ce642 -0, 39414, 39414, 512, 1024, 0x72415692 -0, 39926, 39926, 512, 1024, 0xe3dcc105 -0, 40438, 40438, 512, 1024, 0xb26c0599 -0, 40950, 40950, 512, 1024, 0x5c9e55eb -0, 41462, 41462, 512, 1024, 0x8fe88707 -0, 41974, 41974, 512, 1024, 0xc5d7beb6 -0, 42486, 42486, 512, 1024, 0xe1d3a3b4 -0, 42998, 42998, 512, 1024, 0x012da0c6 -0, 43510, 43510, 512, 1024, 0x8d010922 -0, 44022, 44022, 512, 1024, 0x3366eb0d -0, 44534, 44534, 512, 1024, 0xc9381a27 -0, 45046, 45046, 512, 1024, 0x0774f685 -0, 45558, 45558, 512, 1024, 0xc5cae0a5 -0, 46070, 46070, 512, 1024, 0xa6f4737c -0, 46582, 46582, 512, 1024, 0x8fb6d0d1 -0, 47094, 47094, 512, 1024, 0x05f579c2 -0, 47606, 47606, 512, 1024, 0x56905d99 -0, 48118, 48118, 512, 1024, 0x002ee18d -0, 48630, 48630, 512, 1024, 0xeb37ef51 -0, 49142, 49142, 512, 1024, 0x38025635 -0, 49654, 49654, 512, 1024, 0x4fe643c8 -0, 50166, 50166, 512, 1024, 0x11d66ab1 -0, 50678, 50678, 512, 1024, 0xcc3051e9 -0, 51190, 51190, 512, 1024, 0xcd93e854 -0, 51702, 51702, 512, 1024, 0x38f1196d -0, 52214, 52214, 512, 1024, 0x657a15fc -0, 52726, 52726, 512, 1024, 0x669ce2a9 -0, 53238, 53238, 512, 1024, 0x95862dda -0, 53750, 53750, 512, 1024, 0x1726a7b2 -0, 54262, 54262, 512, 1024, 0xd6ece2a1 -0, 54774, 54774, 512, 1024, 0x33ab9553 -0, 55286, 55286, 512, 1024, 0xd50c73a6 -0, 55798, 55798, 512, 1024, 0xfe25b63a -0, 56310, 56310, 512, 1024, 0x7e2959e3 -0, 56822, 56822, 512, 1024, 0xa4c07b34 -0, 57334, 57334, 512, 1024, 0xd6d8f15c -0, 57846, 57846, 512, 1024, 0x1eccddd7 -0, 58358, 58358, 512, 1024, 0x2b69f9cb -0, 58870, 58870, 512, 1024, 0x667b775f -0, 59382, 59382, 512, 1024, 0xad3b84e9 -0, 59894, 59894, 512, 1024, 0x4f29fc67 -0, 60406, 60406, 512, 1024, 0x8d611ab7 -0, 60918, 60918, 512, 1024, 0x278966ea -0, 61430, 61430, 512, 1024, 0xaf33812b -0, 61942, 61942, 512, 1024, 0xa55f4265 -0, 62454, 62454, 512, 1024, 0x023cb51c -0, 62966, 62966, 512, 1024, 0x1d1f1005 -0, 63478, 63478, 512, 1024, 0x874cccf7 -0, 63990, 63990, 512, 1024, 0xda705428 -0, 64502, 64502, 512, 1024, 0x48d9b440 -0, 65014, 65014, 512, 1024, 0xa14e0712 -0, 65526, 65526, 512, 1024, 0x7efbad1f -0, 66038, 66038, 512, 1024, 0xdb82c17f -0, 66550, 66550, 512, 1024, 0xcbe87613 -0, 67062, 67062, 512, 1024, 0x3a63df1d -0, 67574, 67574, 512, 1024, 0xd5636bba -0, 68086, 68086, 512, 1024, 0x9397af23 -0, 68598, 68598, 512, 1024, 0x32a07c98 -0, 69110, 69110, 512, 1024, 0x202ca667 -0, 69622, 69622, 512, 1024, 0xdf969011 -0, 70134, 70134, 512, 1024, 0xc434d238 -0, 70646, 70646, 512, 1024, 0xe9ad7562 -0, 71158, 71158, 512, 1024, 0xb51b6b50 -0, 71670, 71670, 512, 1024, 0xe70aecd3 -0, 72182, 72182, 512, 1024, 0x03c816b2 -0, 72694, 72694, 512, 1024, 0x869fdf25 -0, 73206, 73206, 512, 1024, 0xd40a0a62 -0, 73718, 73718, 512, 1024, 0x5af7dd35 -0, 74230, 74230, 512, 1024, 0x891ffc72 -0, 74742, 74742, 512, 1024, 0x1ff68a08 -0, 75254, 75254, 512, 1024, 0x5a7517a9 -0, 75766, 75766, 512, 1024, 0x0f959f74 -0, 76278, 76278, 512, 1024, 0xe92a12a2 -0, 76790, 76790, 512, 1024, 0x38000e55 -0, 77302, 77302, 512, 1024, 0x39fbdd70 -0, 77814, 77814, 512, 1024, 0xca3d9184 -0, 78326, 78326, 512, 1024, 0x66c8995b -0, 78838, 78838, 512, 1024, 0xac25acea -0, 79350, 79350, 512, 1024, 0x3cd1046c -0, 79862, 79862, 512, 1024, 0x6a1df31c -0, 80374, 80374, 512, 1024, 0x21ca10a1 -0, 80886, 80886, 512, 1024, 0x1aeccedc -0, 81398, 81398, 512, 1024, 0xddea1335 -0, 81910, 81910, 512, 1024, 0x19f5ca9f -0, 82422, 82422, 512, 1024, 0x88e95e43 -0, 82934, 82934, 512, 1024, 0x726284fe -0, 83446, 83446, 512, 1024, 0x6b85b40e -0, 83958, 83958, 512, 1024, 0x111fee2a -0, 84470, 84470, 512, 1024, 0x3656b588 -0, 84982, 84982, 512, 1024, 0xa5a2b552 -0, 85494, 85494, 512, 1024, 0x38fb2467 -0, 86006, 86006, 512, 1024, 0xaa919ccc -0, 86518, 86518, 512, 1024, 0x15993dbc -0, 87030, 87030, 512, 1024, 0xbe01a7b9 -0, 87542, 87542, 512, 1024, 0xefe93c09 -0, 88054, 88054, 512, 1024, 0x1bb566e5 -0, 88566, 88566, 512, 1024, 0x15ce6237 -0, 89078, 89078, 512, 1024, 0xa8552e66 -0, 89590, 89590, 512, 1024, 0x9d80187e -0, 90102, 90102, 512, 1024, 0x5df3fc30 -0, 90614, 90614, 512, 1024, 0x1a312aa5 -0, 91126, 91126, 512, 1024, 0x6bb8e302 -0, 91638, 91638, 512, 1024, 0xbd9684bb -0, 92150, 92150, 512, 1024, 0x78b0b166 -0, 92662, 92662, 512, 1024, 0xd9af5eae -0, 93174, 93174, 512, 1024, 0xdb90fe82 -0, 93686, 93686, 512, 1024, 0x327614e9 -0, 94198, 94198, 512, 1024, 0x1f19b7fe -0, 94710, 94710, 512, 1024, 0x46c53f96 -0, 95222, 95222, 512, 1024, 0x921b2189 -0, 95734, 95734, 512, 1024, 0xa8fbc85a -0, 96246, 96246, 512, 1024, 0xabfdaaae -0, 96758, 96758, 512, 1024, 0x6acc7387 -0, 97270, 97270, 512, 1024, 0x0d9c27b5 -0, 97782, 97782, 512, 1024, 0xba4dd809 -0, 98294, 98294, 512, 1024, 0x2a2ad521 -0, 98806, 98806, 512, 1024, 0x892de38a -0, 99318, 99318, 512, 1024, 0xdc97a2eb -0, 99830, 99830, 512, 1024, 0x4f614ca4 -0, 100342, 100342, 512, 1024, 0x9c8a77ea -0, 100854, 100854, 512, 1024, 0x2d30e646 -0, 101366, 101366, 512, 1024, 0x74e800a7 -0, 101878, 101878, 512, 1024, 0x1e01fb02 -0, 102390, 102390, 512, 1024, 0x4ed2c1d8 -0, 102902, 102902, 512, 1024, 0xf2fdbe63 -0, 103414, 103414, 512, 1024, 0x8d6f63a1 -0, 103926, 103926, 512, 1024, 0xded468d9 -0, 104438, 104438, 512, 1024, 0xccad839e -0, 104950, 104950, 512, 1024, 0xdde7c082 -0, 105462, 105462, 512, 1024, 0x548613c5 -0, 105974, 105974, 512, 1024, 0x383909bd -0, 106486, 106486, 512, 1024, 0xfd37627b -0, 106998, 106998, 512, 1024, 0x6d95a481 -0, 107510, 107510, 512, 1024, 0x56aa87fa -0, 108022, 108022, 512, 1024, 0x7b67258c -0, 108534, 108534, 512, 1024, 0x7dd99a92 -0, 109046, 109046, 512, 1024, 0x4a66d102 -0, 109558, 109558, 512, 1024, 0x7b3fce51 -0, 110070, 110070, 512, 1024, 0xbbd968aa -0, 110582, 110582, 512, 1024, 0x8283ec36 -0, 111094, 111094, 512, 1024, 0x3c96493d -0, 111606, 111606, 512, 1024, 0xfa4f8cf8 -0, 112118, 112118, 512, 1024, 0xe2cf872d -0, 112630, 112630, 512, 1024, 0x0a9e7aa6 -0, 113142, 113142, 512, 1024, 0x6e7a0550 -0, 113654, 113654, 512, 1024, 0x3acfea2f -0, 114166, 114166, 512, 1024, 0x7111d0fa -0, 114678, 114678, 512, 1024, 0xe9a1eca9 -0, 115190, 115190, 512, 1024, 0x24da6c46 -0, 115702, 115702, 512, 1024, 0x117cff37 -0, 116214, 116214, 512, 1024, 0x0f27cab6 -0, 116726, 116726, 512, 1024, 0x69b6b4e6 -0, 117238, 117238, 512, 1024, 0x1e6cc841 -0, 117750, 117750, 512, 1024, 0xb01e2365 -0, 118262, 118262, 512, 1024, 0x14e200d3 -0, 118774, 118774, 512, 1024, 0xd1184c98 -0, 119286, 119286, 512, 1024, 0xef9140e9 -0, 119798, 119798, 512, 1024, 0x4cbb645e -0, 120310, 120310, 512, 1024, 0xe7fe2f06 -0, 120822, 120822, 512, 1024, 0xf8c45028 -0, 121334, 121334, 512, 1024, 0x561358f4 -0, 121846, 121846, 512, 1024, 0xd0129b77 -0, 122358, 122358, 512, 1024, 0xcc636e88 -0, 122870, 122870, 512, 1024, 0xe9406321 -0, 123382, 123382, 512, 1024, 0x9f16a041 -0, 123894, 123894, 512, 1024, 0x468bf409 -0, 124406, 124406, 512, 1024, 0x3df70f7b -0, 124918, 124918, 512, 1024, 0xa880b11b -0, 125430, 125430, 512, 1024, 0x3286c489 -0, 125942, 125942, 512, 1024, 0x39fe9ebc -0, 126454, 126454, 512, 1024, 0xc533d83b -0, 126966, 126966, 512, 1024, 0x153b195d -0, 127478, 127478, 512, 1024, 0xd84786a1 -0, 127990, 127990, 512, 1024, 0xdc295aaa -0, 128502, 128502, 512, 1024, 0xfb764d8c -0, 129014, 129014, 512, 1024, 0xeebc9db9 -0, 129526, 129526, 512, 1024, 0x7ba9403e -0, 130038, 130038, 512, 1024, 0x4e5571ec -0, 130550, 130550, 512, 1024, 0xd965fad4 -0, 131062, 131062, 512, 1024, 0x87e259f2 -0, 131574, 131574, 512, 1024, 0xae7e533b -0, 132086, 132086, 512, 1024, 0x313cf4d6 -0, 132598, 132598, 512, 1024, 0xe1844c90 -0, 133110, 133110, 512, 1024, 0xbb057b44 -0, 133622, 133622, 512, 1024, 0xa5099687 -0, 134134, 134134, 512, 1024, 0xbff10707 -0, 134646, 134646, 512, 1024, 0x37c4ffc0 -0, 135158, 135158, 512, 1024, 0xf9fb6caa -0, 135670, 135670, 512, 1024, 0x3b6a3a1f -0, 136182, 136182, 512, 1024, 0x83431edb -0, 136694, 136694, 512, 1024, 0x1eb713cf -0, 137206, 137206, 512, 1024, 0xd7b07a6d -0, 137718, 137718, 512, 1024, 0x81ae3391 -0, 138230, 138230, 512, 1024, 0xf150130a -0, 138742, 138742, 512, 1024, 0x09678eaa -0, 139254, 139254, 512, 1024, 0xb94e06f1 -0, 139766, 139766, 512, 1024, 0x67b1dbc9 -0, 140278, 140278, 512, 1024, 0xd6edc235 -0, 140790, 140790, 512, 1024, 0x34e4c499 -0, 141302, 141302, 512, 1024, 0xeefd89c0 -0, 141814, 141814, 512, 1024, 0x38afdaf1 -0, 142326, 142326, 512, 1024, 0x29a60d76 -0, 142838, 142838, 512, 1024, 0xe28a4372 -0, 143350, 143350, 512, 1024, 0x7089454d -0, 143862, 143862, 512, 1024, 0x0c01bb7b -0, 144374, 144374, 512, 1024, 0xbd776a72 -0, 144886, 144886, 512, 1024, 0x86776fd0 -0, 145398, 145398, 512, 1024, 0xb37c88f7 -0, 145910, 145910, 512, 1024, 0x5f90aaf8 -0, 146422, 146422, 512, 1024, 0x203d4222 -0, 146934, 146934, 512, 1024, 0x382692a6 -0, 147446, 147446, 512, 1024, 0xf37c95fd -0, 147958, 147958, 512, 1024, 0x6c0b8877 -0, 148470, 148470, 512, 1024, 0x2e54a8b6 -0, 148982, 148982, 512, 1024, 0x7f266488 -0, 149494, 149494, 512, 1024, 0xfbf20f9a -0, 150006, 150006, 512, 1024, 0xf2985cc0 -0, 150518, 150518, 512, 1024, 0xc7075340 -0, 151030, 151030, 512, 1024, 0xe4585695 -0, 151542, 151542, 512, 1024, 0xbdffa380 -0, 152054, 152054, 512, 1024, 0x2422a8a9 -0, 152566, 152566, 512, 1024, 0x59cbd75f -0, 153078, 153078, 512, 1024, 0x04ad1a8c -0, 153590, 153590, 512, 1024, 0x33c09191 -0, 154102, 154102, 512, 1024, 0x55efa6fd -0, 154614, 154614, 512, 1024, 0xf73d0e5d -0, 155126, 155126, 512, 1024, 0x6141ebae -0, 155638, 155638, 512, 1024, 0x7db17a68 -0, 156150, 156150, 512, 1024, 0xa6c690b6 -0, 156662, 156662, 512, 1024, 0xa6fd6725 -0, 157174, 157174, 512, 1024, 0x50a90b9b -0, 157686, 157686, 512, 1024, 0xef990dc8 -0, 158198, 158198, 512, 1024, 0x75adf6b5 -0, 158710, 158710, 512, 1024, 0x61eac43e -0, 159222, 159222, 512, 1024, 0x67797a19 -0, 159734, 159734, 512, 1024, 0xf325277a -0, 160246, 160246, 512, 1024, 0x18bf254a -0, 160758, 160758, 512, 1024, 0x2ce6bee3 -0, 161270, 161270, 512, 1024, 0x8d320860 -0, 161782, 161782, 512, 1024, 0xc979b6e8 -0, 162294, 162294, 512, 1024, 0xdb644b41 -0, 162806, 162806, 512, 1024, 0xe1b368ba -0, 163318, 163318, 512, 1024, 0xacc53d15 -0, 163830, 163830, 512, 1024, 0x42ea8c18 -0, 164342, 164342, 512, 1024, 0xe52c99a4 -0, 164854, 164854, 512, 1024, 0xd7db54a6 -0, 165366, 165366, 512, 1024, 0x7f27a7e3 -0, 165878, 165878, 512, 1024, 0xf7ffeaa9 -0, 166390, 166390, 512, 1024, 0x792b6088 -0, 166902, 166902, 512, 1024, 0x61d99724 -0, 167414, 167414, 512, 1024, 0x5213720e -0, 167926, 167926, 512, 1024, 0xac09dd30 -0, 168438, 168438, 512, 1024, 0x960bf6bb -0, 168950, 168950, 512, 1024, 0xc90168e1 -0, 169462, 169462, 512, 1024, 0x43b45768 -0, 169974, 169974, 512, 1024, 0x935d60a1 -0, 170486, 170486, 512, 1024, 0x9a342ef2 -0, 170998, 170998, 512, 1024, 0xc894709f -0, 171510, 171510, 512, 1024, 0x59b43b07 -0, 172022, 172022, 512, 1024, 0x36a1a98d -0, 172534, 172534, 512, 1024, 0x9e1a121c -0, 173046, 173046, 512, 1024, 0x02208b78 -0, 173558, 173558, 512, 1024, 0xd1d7b274 -0, 174070, 174070, 512, 1024, 0xdacd5096 -0, 174582, 174582, 512, 1024, 0x51b71ead -0, 175094, 175094, 512, 1024, 0xd009a7ca -0, 175606, 175606, 512, 1024, 0xb6d5a938 -0, 176118, 176118, 512, 1024, 0xf3d45e47 -0, 176630, 176630, 512, 1024, 0xea8e04fc -0, 177142, 177142, 512, 1024, 0x0b928bd8 -0, 177654, 177654, 512, 1024, 0x0f02caec -0, 178166, 178166, 512, 1024, 0xe2b137a8 -0, 178678, 178678, 512, 1024, 0xd5f94892 +0, 1024, 1024, 512, 1024, 0xed2d3f6b +0, 1533, 1533, 512, 1024, 0x51f6ccb3 +0, 2040, 2040, 512, 1024, 0x58bd75aa +0, 2552, 2552, 512, 1024, 0xd857a310 +0, 3064, 3064, 512, 1024, 0xc483a5b8 +0, 3576, 3576, 512, 1024, 0x923ecf67 +0, 4088, 4088, 512, 1024, 0xf87dcd53 +0, 4598, 4598, 512, 1024, 0xdc32c002 +0, 5110, 5110, 512, 1024, 0xb760def1 +0, 5622, 5622, 512, 1024, 0x6838d2b2 +0, 6134, 6134, 512, 1024, 0xe45aca1e +0, 6646, 6646, 512, 1024, 0xde1fb955 +0, 7158, 7158, 512, 1024, 0x9e23b949 +0, 7670, 7670, 512, 1024, 0x840cc000 +0, 8182, 8182, 512, 1024, 0x0a29cbfa +0, 8694, 8694, 512, 1024, 0x9871d4c4 +0, 9206, 9206, 512, 1024, 0xb35dc9f2 +0, 9718, 9718, 512, 1024, 0xf37fda0a +0, 10230, 10230, 512, 1024, 0xa640f990 +0, 10742, 10742, 512, 1024, 0x516fe6f5 +0, 11254, 11254, 512, 1024, 0xc78bc6a6 +0, 11766, 11766, 512, 1024, 0x700fd6ee +0, 12278, 12278, 512, 1024, 0x5383d5ad +0, 12790, 12790, 512, 1024, 0xbe01d091 +0, 13302, 13302, 512, 1024, 0x72dfcfc7 +0, 13814, 13814, 512, 1024, 0xd8fecea9 +0, 14326, 14326, 512, 1024, 0xa464d79b +0, 14838, 14838, 512, 1024, 0xf394e2cb +0, 15350, 15350, 512, 1024, 0xa301ec49 +0, 15862, 15862, 512, 1024, 0x5e09d60f +0, 16374, 16374, 512, 1024, 0xd13edd6f +0, 16886, 16886, 512, 1024, 0x7423ef39 +0, 17398, 17398, 512, 1024, 0x96e2f083 +0, 17910, 17910, 512, 1024, 0x5ed7dbee +0, 18422, 18422, 512, 1024, 0x3874f714 +0, 18934, 18934, 512, 1024, 0xa5e6edab +0, 19446, 19446, 512, 1024, 0x0a04ee3a +0, 19958, 19958, 512, 1024, 0xadfee6b9 +0, 20470, 20470, 512, 1024, 0xd0bbe6d2 +0, 20982, 20982, 512, 1024, 0x223eebb7 +0, 21494, 21494, 512, 1024, 0x0473e479 +0, 22006, 22006, 512, 1024, 0xdf15e51e +0, 22518, 22518, 512, 1024, 0xa954e483 +0, 23030, 23030, 512, 1024, 0x6df3ed03 +0, 23542, 23542, 512, 1024, 0x0860e544 +0, 24054, 24054, 512, 1024, 0xc241e8dc +0, 24566, 24566, 512, 1024, 0xd0e1d6a4 +0, 25078, 25078, 512, 1024, 0xcb2ff988 +0, 25590, 25590, 512, 1024, 0x51fae08e +0, 26102, 26102, 512, 1024, 0xae39f2fc +0, 26614, 26614, 512, 1024, 0xfd74f07c +0, 27126, 27126, 512, 1024, 0x1936edc1 +0, 27638, 27638, 512, 1024, 0x95f8deae +0, 28150, 28150, 512, 1024, 0x93bdf605 +0, 28662, 28662, 512, 1024, 0x7a07dd32 +0, 29174, 29174, 512, 1024, 0x6889fdc1 +0, 29686, 29686, 512, 1024, 0x989bf024 +0, 30198, 30198, 512, 1024, 0xc764ce80 +0, 30710, 30710, 512, 1024, 0x0e62d721 +0, 31222, 31222, 512, 1024, 0x59c2fbe3 +0, 31734, 31734, 512, 1024, 0xf14ee29d +0, 32246, 32246, 512, 1024, 0x02a0f21b +0, 32758, 32758, 512, 1024, 0xadb3d361 +0, 33270, 33270, 512, 1024, 0xdcb3d1fc +0, 33782, 33782, 512, 1024, 0x2924f9dc +0, 34294, 34294, 512, 1024, 0x7507ebec +0, 34806, 34806, 512, 1024, 0xe009f343 +0, 35318, 35318, 512, 1024, 0x21e9e7ac +0, 35830, 35830, 512, 1024, 0x845bda9e +0, 36342, 36342, 512, 1024, 0xb1b3e632 +0, 36854, 36854, 512, 1024, 0x61ccf593 +0, 37366, 37366, 512, 1024, 0x8cdbf603 +0, 37878, 37878, 512, 1024, 0xf8f7e673 +0, 38390, 38390, 512, 1024, 0x55efdd24 +0, 38902, 38902, 512, 1024, 0x4059e8ff +0, 39414, 39414, 512, 1024, 0xb3afe5be +0, 39926, 39926, 512, 1024, 0x7236e965 +0, 40438, 40438, 512, 1024, 0xe683db69 +0, 40950, 40950, 512, 1024, 0x29e3d93c +0, 41462, 41462, 512, 1024, 0x74f2f27f +0, 41974, 41974, 512, 1024, 0x32cde3ba +0, 42486, 42486, 512, 1024, 0xe907f171 +0, 42998, 42998, 512, 1024, 0x206ae2a5 +0, 43510, 43510, 512, 1024, 0x6379efa1 +0, 44022, 44022, 512, 1024, 0x0f0fee85 +0, 44534, 44534, 512, 1024, 0x3195e314 +0, 45046, 45046, 512, 1024, 0x4646ead3 +0, 45558, 45558, 512, 1024, 0x5635dcf5 +0, 46070, 46070, 512, 1024, 0xd76fc780 +0, 46582, 46582, 512, 1024, 0x847ff8a5 +0, 47094, 47094, 512, 1024, 0xaca8eda3 +0, 47606, 47606, 512, 1024, 0x9a2de1ea +0, 48118, 48118, 512, 1024, 0xc92ff23a +0, 48630, 48630, 512, 1024, 0x0e0ef038 +0, 49142, 49142, 512, 1024, 0xc32cf495 +0, 49654, 49654, 512, 1024, 0x6ab1ec79 +0, 50166, 50166, 512, 1024, 0xe43cd8d6 +0, 50678, 50678, 512, 1024, 0x4ba2deab +0, 51190, 51190, 512, 1024, 0x6d16ea0e +0, 51702, 51702, 512, 1024, 0xe5b0ee70 +0, 52214, 52214, 512, 1024, 0xcf6cf074 +0, 52726, 52726, 512, 1024, 0x2206e61d +0, 53238, 53238, 512, 1024, 0xfbb9e7e7 +0, 53750, 53750, 512, 1024, 0x2bc1e115 +0, 54262, 54262, 512, 1024, 0x4ca6e5c5 +0, 54774, 54774, 512, 1024, 0x061cead0 +0, 55286, 55286, 512, 1024, 0x3dc9f950 +0, 55798, 55798, 512, 1024, 0x9399f10d +0, 56310, 56310, 512, 1024, 0xa2bff5ae +0, 56822, 56822, 512, 1024, 0xd21de569 +0, 57334, 57334, 512, 1024, 0x1c45e3be +0, 57846, 57846, 512, 1024, 0xff5dff1c +0, 58358, 58358, 512, 1024, 0x992df5d3 +0, 58870, 58870, 512, 1024, 0xafedea2f +0, 59382, 59382, 512, 1024, 0x6e73d6a8 +0, 59894, 59894, 512, 1024, 0x72dff283 +0, 60406, 60406, 512, 1024, 0x50b5f1a6 +0, 60918, 60918, 512, 1024, 0xffe1decb +0, 61430, 61430, 512, 1024, 0x8993ecff +0, 61942, 61942, 512, 1024, 0x954bd63a +0, 62454, 62454, 512, 1024, 0x4707f577 +0, 62966, 62966, 512, 1024, 0x7a88f81f +0, 63478, 63478, 512, 1024, 0xc771f537 +0, 63990, 63990, 512, 1024, 0x7aade6af +0, 64502, 64502, 512, 1024, 0x8af5ede5 +0, 65014, 65014, 512, 1024, 0x7500f3f1 +0, 65526, 65526, 512, 1024, 0xea36f707 +0, 66038, 66038, 512, 1024, 0x1a26e39a +0, 66550, 66550, 512, 1024, 0xa04cf00d +0, 67062, 67062, 512, 1024, 0xc362f182 +0, 67574, 67574, 512, 1024, 0x79c8f82c +0, 68086, 68086, 512, 1024, 0x6480eee1 +0, 68598, 68598, 512, 1024, 0x7152eaa0 +0, 69110, 69110, 512, 1024, 0x5dfee6a9 +0, 69622, 69622, 512, 1024, 0x0afae660 +0, 70134, 70134, 512, 1024, 0xdc98e9fc +0, 70646, 70646, 512, 1024, 0x10b7da06 +0, 71158, 71158, 512, 1024, 0x0571e585 +0, 71670, 71670, 512, 1024, 0x18ddf45e +0, 72182, 72182, 512, 1024, 0x2cbef242 +0, 72694, 72694, 512, 1024, 0xf5380845 +0, 73206, 73206, 512, 1024, 0x34fff45e +0, 73718, 73718, 512, 1024, 0x6f97e490 +0, 74230, 74230, 512, 1024, 0x77d6f0db +0, 74742, 74742, 512, 1024, 0xa25ce2db +0, 75254, 75254, 512, 1024, 0x8260e4e9 +0, 75766, 75766, 512, 1024, 0xc3b2f7d2 +0, 76278, 76278, 512, 1024, 0x82a7edae +0, 76790, 76790, 512, 1024, 0x7d08dd54 +0, 77302, 77302, 512, 1024, 0x9059eda6 +0, 77814, 77814, 512, 1024, 0xbebaec88 +0, 78326, 78326, 512, 1024, 0xd9afd586 +0, 78838, 78838, 512, 1024, 0x0ca3e622 +0, 79350, 79350, 512, 1024, 0x4123e9e6 +0, 79862, 79862, 512, 1024, 0x2ff9f95c +0, 80374, 80374, 512, 1024, 0x8522e261 +0, 80886, 80886, 512, 1024, 0xe4f8f499 +0, 81398, 81398, 512, 1024, 0x34f3f2bd +0, 81910, 81910, 512, 1024, 0x82efe863 +0, 82422, 82422, 512, 1024, 0x9966fcea +0, 82934, 82934, 512, 1024, 0xe94de3fd +0, 83446, 83446, 512, 1024, 0x1ce0e27b +0, 83958, 83958, 512, 1024, 0xd718dcde +0, 84470, 84470, 512, 1024, 0xd503e724 +0, 84982, 84982, 512, 1024, 0x427ee3b2 +0, 85494, 85494, 512, 1024, 0x4512dcc4 +0, 86006, 86006, 512, 1024, 0xcf31e77c +0, 86518, 86518, 512, 1024, 0xeb41ea81 +0, 87030, 87030, 512, 1024, 0xfa43e67c +0, 87542, 87542, 512, 1024, 0x8162f3c9 +0, 88054, 88054, 512, 1024, 0x1b55f6b0 +0, 88566, 88566, 512, 1024, 0x3ebeec44 +0, 89078, 89078, 512, 1024, 0x740fe0c4 +0, 89590, 89590, 512, 1024, 0x8fb4e8b2 +0, 90102, 90102, 512, 1024, 0xe49de6a2 +0, 90614, 90614, 512, 1024, 0xd64febdf +0, 91126, 91126, 512, 1024, 0x0e74ee08 +0, 91638, 91638, 512, 1024, 0x6c0ddf07 +0, 92150, 92150, 512, 1024, 0x7fb8e3c9 +0, 92662, 92662, 512, 1024, 0x52bfe96c +0, 93174, 93174, 512, 1024, 0xfc22ee64 +0, 93686, 93686, 512, 1024, 0xe20ae718 +0, 94198, 94198, 512, 1024, 0xa94be395 +0, 94710, 94710, 512, 1024, 0xded306d0 +0, 95222, 95222, 512, 1024, 0x31f7c831 +0, 95734, 95734, 512, 1024, 0x0ffde0a8 +0, 96246, 96246, 512, 1024, 0xc692e3e0 +0, 96758, 96758, 512, 1024, 0x1d8ff7c7 +0, 97270, 97270, 512, 1024, 0x038ee172 +0, 97782, 97782, 512, 1024, 0x9a1eef59 +0, 98294, 98294, 512, 1024, 0x158fe750 +0, 98806, 98806, 512, 1024, 0xac15e42c +0, 99318, 99318, 512, 1024, 0x6323ed44 +0, 99830, 99830, 512, 1024, 0xd10ce4bb +0, 100342, 100342, 512, 1024, 0xc1cce296 +0, 100854, 100854, 512, 1024, 0x0782f094 +0, 101366, 101366, 512, 1024, 0xd109de36 +0, 101878, 101878, 512, 1024, 0x175600fb +0, 102390, 102390, 512, 1024, 0x95d5e8d9 +0, 102902, 102902, 512, 1024, 0xebb6eee1 +0, 103414, 103414, 512, 1024, 0x187cfadc +0, 103926, 103926, 512, 1024, 0xce35fa5c +0, 104438, 104438, 512, 1024, 0x8327eea2 +0, 104950, 104950, 512, 1024, 0x5543f219 +0, 105462, 105462, 512, 1024, 0xaacbe0dc +0, 105974, 105974, 512, 1024, 0xa538e9fb +0, 106486, 106486, 512, 1024, 0x4dcbe655 +0, 106998, 106998, 512, 1024, 0x86b6d93b +0, 107510, 107510, 512, 1024, 0x1a06f878 +0, 108022, 108022, 512, 1024, 0xd926e8ef +0, 108534, 108534, 512, 1024, 0xc624db2f +0, 109046, 109046, 512, 1024, 0x2153e20d +0, 109558, 109558, 512, 1024, 0x01dce868 +0, 110070, 110070, 512, 1024, 0xfa5fd3cd +0, 110582, 110582, 512, 1024, 0x2adef2d5 +0, 111094, 111094, 512, 1024, 0x4f48f8e2 +0, 111606, 111606, 512, 1024, 0x613feeee +0, 112118, 112118, 512, 1024, 0x3780de8a +0, 112630, 112630, 512, 1024, 0x2093eb65 +0, 113142, 113142, 512, 1024, 0x54baebbb +0, 113654, 113654, 512, 1024, 0x8686dd7c +0, 114166, 114166, 512, 1024, 0x7f8ae80c +0, 114678, 114678, 512, 1024, 0x7aede972 +0, 115190, 115190, 512, 1024, 0x971bebc0 +0, 115702, 115702, 512, 1024, 0x2dd5fd4b +0, 116214, 116214, 512, 1024, 0xb1b3e4a3 +0, 116726, 116726, 512, 1024, 0x192defc6 +0, 117238, 117238, 512, 1024, 0x5e46ec44 +0, 117750, 117750, 512, 1024, 0xe6d8e05a +0, 118262, 118262, 512, 1024, 0x7e2fe2b0 +0, 118774, 118774, 512, 1024, 0x9e3bdf80 +0, 119286, 119286, 512, 1024, 0xa98cd85e +0, 119798, 119798, 512, 1024, 0x6061e0c4 +0, 120310, 120310, 512, 1024, 0x6112f3fc +0, 120822, 120822, 512, 1024, 0x99bdfb01 +0, 121334, 121334, 512, 1024, 0x3f5df3ca +0, 121846, 121846, 512, 1024, 0xf5ebeb05 +0, 122358, 122358, 512, 1024, 0x8498e565 +0, 122870, 122870, 512, 1024, 0x0497f0b7 +0, 123382, 123382, 512, 1024, 0x626ae800 +0, 123894, 123894, 512, 1024, 0xfb71eec4 +0, 124406, 124406, 512, 1024, 0xa86ee739 +0, 124918, 124918, 512, 1024, 0x25c0e050 +0, 125430, 125430, 512, 1024, 0x6027e91e +0, 125942, 125942, 512, 1024, 0x6772df6e +0, 126454, 126454, 512, 1024, 0xfefff844 +0, 126966, 126966, 512, 1024, 0x547be862 +0, 127478, 127478, 512, 1024, 0xca84e795 +0, 127990, 127990, 512, 1024, 0xd124db3e +0, 128502, 128502, 512, 1024, 0xcaf3deb5 +0, 129014, 129014, 512, 1024, 0x487ce92d +0, 129526, 129526, 512, 1024, 0x117feb95 +0, 130038, 130038, 512, 1024, 0x7b63de3d +0, 130550, 130550, 512, 1024, 0xa529d8e1 +0, 131062, 131062, 512, 1024, 0x56f6da26 +0, 131574, 131574, 512, 1024, 0xffb8d5af +0, 132086, 132086, 512, 1024, 0xeecbdc04 +0, 132598, 132598, 512, 1024, 0xfc59d2d2 +0, 133110, 133110, 512, 1024, 0xaf7acef7 +0, 133622, 133622, 512, 1024, 0x3f9bf258 +0, 134134, 134134, 512, 1024, 0xcf54e9d6 +0, 134646, 134646, 512, 1024, 0x680cd0aa +0, 135158, 135158, 512, 1024, 0x3c1bdc1f +0, 135670, 135670, 512, 1024, 0x8c8ffe22 +0, 136182, 136182, 512, 1024, 0xf415d362 +0, 136694, 136694, 512, 1024, 0x8c8cdaa9 +0, 137206, 137206, 512, 1024, 0x9531e9f1 +0, 137718, 137718, 512, 1024, 0x223ce536 +0, 138230, 138230, 512, 1024, 0xdfbce5f9 +0, 138742, 138742, 512, 1024, 0x20b6ed7d +0, 139254, 139254, 512, 1024, 0x1a17e109 +0, 139766, 139766, 512, 1024, 0xc672eaea +0, 140278, 140278, 512, 1024, 0x12a7dc5e +0, 140790, 140790, 512, 1024, 0x4497f342 +0, 141302, 141302, 512, 1024, 0xdfb5db4b +0, 141814, 141814, 512, 1024, 0xde48ef6c +0, 142326, 142326, 512, 1024, 0x1d98e316 +0, 142838, 142838, 512, 1024, 0xbd2ad72f +0, 143350, 143350, 512, 1024, 0xf1aad776 +0, 143862, 143862, 512, 1024, 0x4db3e3c0 +0, 144374, 144374, 512, 1024, 0x832de0a0 +0, 144886, 144886, 512, 1024, 0xc5f0ef25 +0, 145398, 145398, 512, 1024, 0x419bda6e +0, 145910, 145910, 512, 1024, 0x5de7f77e +0, 146422, 146422, 512, 1024, 0x0063ec9a +0, 146934, 146934, 512, 1024, 0x10c3d470 +0, 147446, 147446, 512, 1024, 0xba66d226 +0, 147958, 147958, 512, 1024, 0xea47ded3 +0, 148470, 148470, 512, 1024, 0x6202d67b +0, 148982, 148982, 512, 1024, 0x3f80e7cf +0, 149494, 149494, 512, 1024, 0x4e64eaae +0, 150006, 150006, 512, 1024, 0x2108e83d +0, 150518, 150518, 512, 1024, 0x38c3dec1 +0, 151030, 151030, 512, 1024, 0x46d3f77a +0, 151542, 151542, 512, 1024, 0x4838e787 +0, 152054, 152054, 512, 1024, 0xc71df16d +0, 152566, 152566, 512, 1024, 0xdbe4ebbd +0, 153078, 153078, 512, 1024, 0xa156d07b +0, 153590, 153590, 512, 1024, 0x34eddc80 +0, 154102, 154102, 512, 1024, 0xe840e87c +0, 154614, 154614, 512, 1024, 0x6accf8f5 +0, 155126, 155126, 512, 1024, 0xa1dbebb9 +0, 155638, 155638, 512, 1024, 0x6d07d98c +0, 156150, 156150, 512, 1024, 0x94c7e805 +0, 156662, 156662, 512, 1024, 0x5199e586 +0, 157174, 157174, 512, 1024, 0xe797e1aa +0, 157686, 157686, 512, 1024, 0xff19eda7 +0, 158198, 158198, 512, 1024, 0x9cb9d040 +0, 158710, 158710, 512, 1024, 0xaeedd325 +0, 159222, 159222, 512, 1024, 0xf5ade306 +0, 159734, 159734, 512, 1024, 0x54a5e129 +0, 160246, 160246, 512, 1024, 0x6665ddeb +0, 160758, 160758, 512, 1024, 0x9d18e033 +0, 161270, 161270, 512, 1024, 0x7f23df74 +0, 161782, 161782, 512, 1024, 0x7c34f158 +0, 162294, 162294, 512, 1024, 0x47f6dae2 +0, 162806, 162806, 512, 1024, 0x5ffdd903 +0, 163318, 163318, 512, 1024, 0x8233d108 +0, 163830, 163830, 512, 1024, 0x45c6e20d +0, 164342, 164342, 512, 1024, 0xae11fa6e +0, 164854, 164854, 512, 1024, 0xa30defd2 +0, 165366, 165366, 512, 1024, 0xfc1ecccf +0, 165878, 165878, 512, 1024, 0x920edc94 +0, 166390, 166390, 512, 1024, 0xd7f3dc58 +0, 166902, 166902, 512, 1024, 0x4972d37d +0, 167414, 167414, 512, 1024, 0xfefef358 +0, 167926, 167926, 512, 1024, 0x3648e473 +0, 168438, 168438, 512, 1024, 0x58dee6c3 +0, 168950, 168950, 512, 1024, 0x9cc6df27 +0, 169462, 169462, 512, 1024, 0x6adfe99c +0, 169974, 169974, 512, 1024, 0x6a56e11f +0, 170486, 170486, 512, 1024, 0x4860edf1 +0, 170998, 170998, 512, 1024, 0x9132f10a +0, 171510, 171510, 512, 1024, 0x3e09d209 +0, 172022, 172022, 512, 1024, 0x4b6bf4d8 +0, 172534, 172534, 512, 1024, 0x0cd5e838 +0, 173046, 173046, 512, 1024, 0x080be078 +0, 173558, 173558, 512, 1024, 0xfdb0e31c +0, 174070, 174070, 512, 1024, 0xced5e7bd +0, 174582, 174582, 512, 1024, 0x65b3e435 +0, 175094, 175094, 512, 1024, 0x5b5bfe2e +0, 175606, 175606, 512, 1024, 0xa8bde3cb +0, 176118, 176118, 512, 1024, 0xfd0fdefa +0, 176630, 176630, 512, 1024, 0xbec4ef95 +0, 177142, 177142, 512, 1024, 0x683ad8dd +0, 177654, 177654, 512, 1024, 0x8eefeb77 +0, 178166, 178166, 512, 1024, 0x84fc5878 +0, 178678, 178678, 512, 1024, 0x9a0ded60