From patchwork Sun Jul 15 13:13:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 9728 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:104:0:0:0:0:0 with SMTP id c4-v6csp1354643jad; Sun, 15 Jul 2018 06:14:37 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcXKKu2hQMP6RmOEbDIysu45retg+fRlRG+2o2/RZuqNS2UfxWgbxEMMjHbOWB8Oba5diaU X-Received: by 2002:a1c:1748:: with SMTP id 69-v6mr7437410wmx.75.1531660477102; Sun, 15 Jul 2018 06:14:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531660477; cv=none; d=google.com; s=arc-20160816; b=qLUPLUaIgwB7Gisbx5QZqYQ7ZHKPjDEEK/wK9E5k3NlgsFkVfGTDHzzryaOb74oOLt w4mmynWVkibVSDc/MS65zUQWv3GrLiQYcwGG8ZN8rNuZG+BYkBBJMfmzEHtr5+HxfP/Q 5v5fc4Vk8TXUG5x3BTWRRb+S76SziBb0C3IK1nyrY07VN4a+cGcOq9fW7t27zNrjUIHe qopQJSoood/vmuBRikREZ31NAUFVUifL9iWUYJLDkfsfHug2fC8R54HLwnIGhQwVFewD pBvGqevGr4g3kDMt0JSOXugy/vQANA26ODhyD8vOyAX2RO2LN21jMw/agSGfU8tEMG1V b14Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to:arc-authentication-results; bh=c+pGNz1QQHs5E7zZ/gFLmFHYA92XqFevnE8R+aEVtAc=; b=rz3ax4CdacmHupIlBaFvdSvZ9Dqt+kVlHI7FlQjbE0OALlIkeTcx8OsR1zg8oJWT7d 7+d+n/5E0MGIMFHAPAtxOPzAF/fkuafhJUN9C5y2K1uRc4f4SZ/f+6CaZsGkDCHyPZoI 74tnAV0H05Q1tO9/qBpPk0xxm7eR/RCcitBj7x9R079E76BI9zTyOZQR6Bz4sAuYKCHW jEuXS/ZsuJWaJWruOReyOhrxfS9GIV1Hs4RvFDnaOjGaJDZbEJ9oZ7fWXqt4KbQJ9I4J 16p92WTOAiOrTnWiRPsLCeN7+kKvpBPZ/YVhM/5C6S5AL3nUdwRGXSEbI1IDe/TMbdGP ygzw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j16-v6si8337020wmj.207.2018.07.15.06.14.36; Sun, 15 Jul 2018 06:14:37 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 97EC568A601; Sun, 15 Jul 2018 16:14:00 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-qmta-pe01-2.mx.upcmail.net (vie01a-qmta-pe01-2.mx.upcmail.net [62.179.121.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B08E0689957 for ; Sun, 15 Jul 2018 16:13:58 +0300 (EEST) Received: from [172.31.218.41] (helo=vie01a-dmta-pe04-2.mx.upcmail.net) by vie01a-pqmta-pe01.mx.upcmail.net with esmtp (Exim 4.88) (envelope-from ) id 1fegqm-0003Ex-13 for ffmpeg-devel@ffmpeg.org; Sun, 15 Jul 2018 15:14:08 +0200 Received: from [172.31.216.43] (helo=vie01a-pemc-psmtp-pe01) by vie01a-dmta-pe04.mx.upcmail.net with esmtp (Exim 4.88) (envelope-from ) id 1fegqg-0004om-Hf for ffmpeg-devel@ffmpeg.org; Sun, 15 Jul 2018 15:14:02 +0200 Received: from localhost ([213.47.41.20]) by vie01a-pemc-psmtp-pe01 with SMTP @ mailcloud.upcmail.net id B1Ds1y00C0S5wYM011DtSr; Sun, 15 Jul 2018 15:13:53 +0200 X-SourceIP: 213.47.41.20 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Sun, 15 Jul 2018 15:13:40 +0200 Message-Id: <20180715131341.28705-4-michael@niedermayer.cc> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180715131341.28705-1-michael@niedermayer.cc> References: <20180715131341.28705-1-michael@niedermayer.cc> Subject: [FFmpeg-devel] [PATCH 4/5] avcodec/tscc: Do not duplicate images X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This improves speed Fixes: Timeout Fixes: 9010/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TSCC_fuzzer-6042614817095680 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavcodec/tscc.c | 6 +- tests/ref/fate/tscc-15bit | 138 -------------------------------------- tests/ref/fate/tscc-32bit | 121 --------------------------------- 3 files changed, 4 insertions(+), 261 deletions(-) diff --git a/libavcodec/tscc.c b/libavcodec/tscc.c index fc9510451b..b2df10ab79 100644 --- a/libavcodec/tscc.c +++ b/libavcodec/tscc.c @@ -94,6 +94,10 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, c->zstream.avail_out = c->decomp_size; ret = inflate(&c->zstream, Z_FINISH); // Z_DATA_ERROR means empty picture + if (ret == Z_DATA_ERROR && !palette_has_changed) { + return buf_size; + } + if ((ret != Z_OK) && (ret != Z_STREAM_END) && (ret != Z_DATA_ERROR)) { av_log(avctx, AV_LOG_ERROR, "Inflate error: %d\n", ret); return AVERROR_UNKNOWN; @@ -102,11 +106,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, if ((ret = ff_reget_buffer(avctx, frame)) < 0) return ret; - if (ret != Z_DATA_ERROR) { bytestream2_init(&c->gb, c->decomp_buf, c->decomp_size - c->zstream.avail_out); ff_msrle_decode(avctx, frame, c->bpp, &c->gb); - } /* make the palette available on the way out */ if (c->avctx->pix_fmt == AV_PIX_FMT_PAL8) { diff --git a/tests/ref/fate/tscc-15bit b/tests/ref/fate/tscc-15bit index abfe6a6aee..ded8ad43e0 100644 --- a/tests/ref/fate/tscc-15bit +++ b/tests/ref/fate/tscc-15bit @@ -11,93 +11,34 @@ #channel_layout_name 1: mono 0, 0, 0, 1, 657600, 0x50b3a0c2 1, 0, 0, 11025, 22050, 0x1740aaec -0, 1, 1, 1, 657600, 0x50b3a0c2 -0, 2, 2, 1, 657600, 0x50b3a0c2 0, 3, 3, 1, 657600, 0x661aa145 -0, 4, 4, 1, 657600, 0x661aa145 -0, 5, 5, 1, 657600, 0x661aa145 -0, 6, 6, 1, 657600, 0x661aa145 -0, 7, 7, 1, 657600, 0x661aa145 -0, 8, 8, 1, 657600, 0x661aa145 -0, 9, 9, 1, 657600, 0x661aa145 -0, 10, 10, 1, 657600, 0x661aa145 -0, 11, 11, 1, 657600, 0x661aa145 -0, 12, 12, 1, 657600, 0x661aa145 -0, 13, 13, 1, 657600, 0x661aa145 -0, 14, 14, 1, 657600, 0x661aa145 -0, 15, 15, 1, 657600, 0x661aa145 1, 11025, 11025, 11025, 22050, 0x75ed6086 -0, 16, 16, 1, 657600, 0x661aa145 -0, 17, 17, 1, 657600, 0x661aa145 -0, 18, 18, 1, 657600, 0x661aa145 -0, 19, 19, 1, 657600, 0x661aa145 -0, 20, 20, 1, 657600, 0x661aa145 0, 21, 21, 1, 657600, 0x3c29a73f -0, 22, 22, 1, 657600, 0x3c29a73f -0, 23, 23, 1, 657600, 0x3c29a73f 0, 24, 24, 1, 657600, 0xee2ca145 -0, 25, 25, 1, 657600, 0xee2ca145 -0, 26, 26, 1, 657600, 0xee2ca145 -0, 27, 27, 1, 657600, 0xee2ca145 -0, 28, 28, 1, 657600, 0xee2ca145 -0, 29, 29, 1, 657600, 0xee2ca145 0, 30, 30, 1, 657600, 0xeb6fa442 1, 22050, 22050, 11025, 22050, 0xca52a4e9 -0, 31, 31, 1, 657600, 0xeb6fa442 -0, 32, 32, 1, 657600, 0xeb6fa442 0, 33, 33, 1, 657600, 0xb235a145 -0, 34, 34, 1, 657600, 0xb235a145 -0, 35, 35, 1, 657600, 0xb235a145 0, 36, 36, 1, 657600, 0x39f7ad39 -0, 37, 37, 1, 657600, 0x39f7ad39 -0, 38, 38, 1, 657600, 0x39f7ad39 0, 39, 39, 1, 657600, 0xb851abda -0, 40, 40, 1, 657600, 0xb851abda -0, 41, 41, 1, 657600, 0xb851abda 0, 42, 42, 1, 657600, 0xf6574b22 0, 43, 43, 1, 657600, 0x1a154a9f 0, 44, 44, 1, 657600, 0x3de64916 0, 45, 45, 1, 657600, 0xca3d9cd5 1, 33075, 33075, 11025, 22050, 0xb306d419 -0, 46, 46, 1, 657600, 0xca3d9cd5 0, 47, 47, 1, 657600, 0x4779a2cf -0, 48, 48, 1, 657600, 0x4779a2cf -0, 49, 49, 1, 657600, 0x4779a2cf -0, 50, 50, 1, 657600, 0x4779a2cf -0, 51, 51, 1, 657600, 0x4779a2cf -0, 52, 52, 1, 657600, 0x4779a2cf -0, 53, 53, 1, 657600, 0x4779a2cf -0, 54, 54, 1, 657600, 0x4779a2cf -0, 55, 55, 1, 657600, 0x4779a2cf -0, 56, 56, 1, 657600, 0x4779a2cf 0, 57, 57, 1, 657600, 0x29af1818 -0, 58, 58, 1, 657600, 0x29af1818 -0, 59, 59, 1, 657600, 0x29af1818 0, 60, 60, 1, 657600, 0x77ace9c5 1, 44100, 44100, 11025, 22050, 0x8cbb9625 -0, 61, 61, 1, 657600, 0x77ace9c5 0, 62, 62, 1, 657600, 0x61b8e74b 0, 63, 63, 1, 657600, 0x8c6deace -0, 64, 64, 1, 657600, 0x8c6deace -0, 65, 65, 1, 657600, 0x8c6deace 0, 66, 66, 1, 657600, 0xbe1fe8d7 -0, 67, 67, 1, 657600, 0xbe1fe8d7 -0, 68, 68, 1, 657600, 0xbe1fe8d7 0, 69, 69, 1, 657600, 0x633209db -0, 70, 70, 1, 657600, 0x633209db -0, 71, 71, 1, 657600, 0x633209db 0, 72, 72, 1, 657600, 0x3148adb5 -0, 73, 73, 1, 657600, 0x3148adb5 0, 74, 74, 1, 657600, 0x3b5f5216 -0, 75, 75, 1, 657600, 0x3b5f5216 1, 55125, 55125, 11025, 22050, 0x34a11f66 -0, 76, 76, 1, 657600, 0x3b5f5216 -0, 77, 77, 1, 657600, 0x3b5f5216 0, 78, 78, 1, 657600, 0x5e51fb89 -0, 79, 79, 1, 657600, 0x5e51fb89 0, 80, 80, 1, 657600, 0x48eafb06 0, 81, 81, 1, 657600, 0x9f7a8653 -0, 82, 82, 1, 657600, 0x9f7a8653 0, 83, 83, 1, 657600, 0x29fc83d9 0, 84, 84, 1, 657600, 0xe7689f10 0, 85, 85, 1, 657600, 0x9f788dba @@ -107,145 +48,66 @@ 0, 89, 89, 1, 657600, 0xf7583802 0, 90, 90, 1, 657600, 0x239e2fc6 1, 66150, 66150, 11025, 22050, 0x1ae81230 -0, 91, 91, 1, 657600, 0x239e2fc6 -0, 92, 92, 1, 657600, 0x239e2fc6 0, 93, 93, 1, 657600, 0x001c134c 0, 94, 94, 1, 657600, 0x5c85134c -0, 95, 95, 1, 657600, 0x5c85134c -0, 96, 96, 1, 657600, 0x5c85134c -0, 97, 97, 1, 657600, 0x5c85134c -0, 98, 98, 1, 657600, 0x5c85134c 0, 99, 99, 1, 657600, 0x5fef8bea -0, 100, 100, 1, 657600, 0x5fef8bea 0, 101, 101, 1, 657600, 0x23135efa -0, 102, 102, 1, 657600, 0x23135efa -0, 103, 103, 1, 657600, 0x23135efa -0, 104, 104, 1, 657600, 0x23135efa -0, 105, 105, 1, 657600, 0x23135efa 1, 77175, 77175, 11025, 22050, 0x1217eeba -0, 106, 106, 1, 657600, 0x23135efa -0, 107, 107, 1, 657600, 0x23135efa 0, 108, 108, 1, 657600, 0x50cf63ee -0, 109, 109, 1, 657600, 0x50cf63ee -0, 110, 110, 1, 657600, 0x50cf63ee 0, 111, 111, 1, 657600, 0x2f5c5efa -0, 112, 112, 1, 657600, 0x2f5c5efa -0, 113, 113, 1, 657600, 0x2f5c5efa 0, 114, 114, 1, 657600, 0x9980d3c1 -0, 115, 115, 1, 657600, 0x9980d3c1 -0, 116, 116, 1, 657600, 0x9980d3c1 0, 117, 117, 1, 657600, 0x23f02141 -0, 118, 118, 1, 657600, 0x23f02141 -0, 119, 119, 1, 657600, 0x23f02141 0, 120, 120, 1, 657600, 0x3d31ea57 1, 88200, 88200, 11025, 22050, 0x50e70baa 0, 121, 121, 1, 657600, 0x1e9be92f -0, 122, 122, 1, 657600, 0x1e9be92f 0, 123, 123, 1, 657600, 0x05091a2e -0, 124, 124, 1, 657600, 0x05091a2e -0, 125, 125, 1, 657600, 0x05091a2e 0, 126, 126, 1, 657600, 0xd214c71a -0, 127, 127, 1, 657600, 0xd214c71a -0, 128, 128, 1, 657600, 0xd214c71a 0, 129, 129, 1, 657600, 0x3b07f720 -0, 130, 130, 1, 657600, 0x3b07f720 -0, 131, 131, 1, 657600, 0x3b07f720 0, 132, 132, 1, 657600, 0x02becc42 0, 133, 133, 1, 657600, 0x3d8fcf2e -0, 134, 134, 1, 657600, 0x3d8fcf2e 0, 135, 135, 1, 657600, 0xec51ddd7 1, 99225, 99225, 11025, 22050, 0xb19e89c0 -0, 136, 136, 1, 657600, 0xec51ddd7 -0, 137, 137, 1, 657600, 0xec51ddd7 -0, 138, 138, 1, 657600, 0xec51ddd7 -0, 139, 139, 1, 657600, 0xec51ddd7 -0, 140, 140, 1, 657600, 0xec51ddd7 0, 141, 141, 1, 657600, 0x40a3b905 -0, 142, 142, 1, 657600, 0x40a3b905 0, 143, 143, 1, 657600, 0xbfc5baa9 -0, 144, 144, 1, 657600, 0xbfc5baa9 -0, 145, 145, 1, 657600, 0xbfc5baa9 -0, 146, 146, 1, 657600, 0xbfc5baa9 -0, 147, 147, 1, 657600, 0xbfc5baa9 -0, 148, 148, 1, 657600, 0xbfc5baa9 -0, 149, 149, 1, 657600, 0xbfc5baa9 0, 150, 150, 1, 657600, 0x54a2f8dd 1, 110250, 110250, 11025, 22050, 0x78526696 0, 151, 151, 1, 657600, 0x0b96f90d -0, 152, 152, 1, 657600, 0x0b96f90d 0, 153, 153, 1, 657600, 0xa18119e9 0, 154, 154, 1, 657600, 0x70a11ce6 0, 155, 155, 1, 657600, 0xb36f19e9 0, 156, 156, 1, 657600, 0xeb2219e9 -0, 157, 157, 1, 657600, 0xeb2219e9 -0, 158, 158, 1, 657600, 0xeb2219e9 0, 159, 159, 1, 657600, 0xb98f19e9 0, 160, 160, 1, 657600, 0xa4281966 0, 161, 161, 1, 657600, 0xf0e61966 0, 162, 162, 1, 657600, 0x065c19e9 -0, 163, 163, 1, 657600, 0x065c19e9 -0, 164, 164, 1, 657600, 0x065c19e9 -0, 165, 165, 1, 657600, 0x065c19e9 1, 121275, 121275, 11025, 22050, 0x48e3bb21 -0, 166, 166, 1, 657600, 0x065c19e9 -0, 167, 167, 1, 657600, 0x065c19e9 -0, 168, 168, 1, 657600, 0x065c19e9 -0, 169, 169, 1, 657600, 0x065c19e9 -0, 170, 170, 1, 657600, 0x065c19e9 0, 171, 171, 1, 657600, 0x2f1d1ce6 -0, 172, 172, 1, 657600, 0x2f1d1ce6 0, 173, 173, 1, 657600, 0x181719e9 0, 174, 174, 1, 657600, 0x938d1ce6 -0, 175, 175, 1, 657600, 0x938d1ce6 -0, 176, 176, 1, 657600, 0x938d1ce6 0, 177, 177, 1, 657600, 0xf0acbabf -0, 178, 178, 1, 657600, 0xf0acbabf -0, 179, 179, 1, 657600, 0xf0acbabf 0, 180, 180, 1, 657600, 0x0f47804f 1, 132300, 132300, 11025, 22050, 0xbc32204a -0, 181, 181, 1, 657600, 0x0f47804f 0, 182, 182, 1, 657600, 0x5e0c7a55 0, 183, 183, 1, 657600, 0x0c8f4374 0, 184, 184, 1, 657600, 0x709a3b00 -0, 185, 185, 1, 657600, 0x709a3b00 0, 186, 186, 1, 657600, 0xf57b7a0f 0, 187, 187, 1, 657600, 0x99427f1b -0, 188, 188, 1, 657600, 0x99427f1b 0, 189, 189, 1, 657600, 0xcb3608e7 0, 190, 190, 1, 657600, 0x0992fd64 -0, 191, 191, 1, 657600, 0x0992fd64 0, 192, 192, 1, 657600, 0x7a95fa02 -0, 193, 193, 1, 657600, 0x7a95fa02 -0, 194, 194, 1, 657600, 0x7a95fa02 0, 195, 195, 1, 657600, 0xb97dd910 1, 143325, 143325, 11025, 22050, 0xdf6f1e46 -0, 196, 196, 1, 657600, 0xb97dd910 -0, 197, 197, 1, 657600, 0xb97dd910 0, 198, 198, 1, 657600, 0x3be07a66 -0, 199, 199, 1, 657600, 0x3be07a66 0, 200, 200, 1, 657600, 0x1ae77960 0, 201, 201, 1, 657600, 0x62177f5a 0, 202, 202, 1, 657600, 0xf57c7c5d 0, 203, 203, 1, 657600, 0x600e7960 0, 204, 204, 1, 657600, 0xe15d7960 0, 205, 205, 1, 657600, 0x79427663 -0, 206, 206, 1, 657600, 0x79427663 0, 207, 207, 1, 657600, 0xa7c77960 -0, 208, 208, 1, 657600, 0xa7c77960 0, 209, 209, 1, 657600, 0x75f67663 0, 210, 210, 1, 657600, 0x3a157960 1, 154350, 154350, 11025, 22050, 0x4c91da9d 0, 211, 211, 1, 657600, 0x72aa7663 -0, 212, 212, 1, 657600, 0x72aa7663 0, 213, 213, 1, 657600, 0x1b277663 -0, 214, 214, 1, 657600, 0x1b277663 -0, 215, 215, 1, 657600, 0x1b277663 0, 216, 216, 1, 657600, 0x6f5e7663 -0, 217, 217, 1, 657600, 0x6f5e7663 -0, 218, 218, 1, 657600, 0x6f5e7663 -0, 219, 219, 1, 657600, 0x6f5e7663 -0, 220, 220, 1, 657600, 0x6f5e7663 -0, 221, 221, 1, 657600, 0x6f5e7663 -0, 222, 222, 1, 657600, 0x6f5e7663 -0, 223, 223, 1, 657600, 0x6f5e7663 -0, 224, 224, 1, 657600, 0x6f5e7663 diff --git a/tests/ref/fate/tscc-32bit b/tests/ref/fate/tscc-32bit index dfb37a9be8..7e8e6b95cf 100644 --- a/tests/ref/fate/tscc-32bit +++ b/tests/ref/fate/tscc-32bit @@ -11,151 +11,30 @@ 0, 5, 5, 1, 2359296, 0xbb0e0026 0, 6, 6, 1, 2359296, 0x66a905ab 0, 7, 7, 1, 2359296, 0xe990f855 -0, 8, 8, 1, 2359296, 0xe990f855 0, 9, 9, 1, 2359296, 0x3ec2c64e 0, 13, 13, 1, 2359296, 0xda3ba3cf 0, 14, 14, 1, 2359296, 0x60a070fd 0, 15, 15, 1, 2359296, 0x42e5fedc -0, 16, 16, 1, 2359296, 0x42e5fedc 0, 17, 17, 1, 2359296, 0x699cf990 -0, 18, 18, 1, 2359296, 0x699cf990 -0, 19, 19, 1, 2359296, 0x699cf990 -0, 20, 20, 1, 2359296, 0x699cf990 -0, 21, 21, 1, 2359296, 0x699cf990 -0, 22, 22, 1, 2359296, 0x699cf990 -0, 23, 23, 1, 2359296, 0x699cf990 0, 24, 24, 1, 2359296, 0x1524160c -0, 25, 25, 1, 2359296, 0x1524160c -0, 26, 26, 1, 2359296, 0x1524160c -0, 27, 27, 1, 2359296, 0x1524160c -0, 28, 28, 1, 2359296, 0x1524160c -0, 29, 29, 1, 2359296, 0x1524160c -0, 30, 30, 1, 2359296, 0x1524160c 0, 31, 31, 1, 2359296, 0x33df0c8c -0, 32, 32, 1, 2359296, 0x33df0c8c -0, 33, 33, 1, 2359296, 0x33df0c8c -0, 34, 34, 1, 2359296, 0x33df0c8c -0, 35, 35, 1, 2359296, 0x33df0c8c -0, 36, 36, 1, 2359296, 0x33df0c8c -0, 37, 37, 1, 2359296, 0x33df0c8c 0, 38, 38, 1, 2359296, 0xfe3d29f8 -0, 39, 39, 1, 2359296, 0xfe3d29f8 -0, 40, 40, 1, 2359296, 0xfe3d29f8 -0, 41, 41, 1, 2359296, 0xfe3d29f8 -0, 42, 42, 1, 2359296, 0xfe3d29f8 -0, 43, 43, 1, 2359296, 0xfe3d29f8 -0, 44, 44, 1, 2359296, 0xfe3d29f8 0, 45, 45, 1, 2359296, 0x1b9d197f -0, 46, 46, 1, 2359296, 0x1b9d197f -0, 47, 47, 1, 2359296, 0x1b9d197f -0, 48, 48, 1, 2359296, 0x1b9d197f -0, 49, 49, 1, 2359296, 0x1b9d197f -0, 50, 50, 1, 2359296, 0x1b9d197f -0, 51, 51, 1, 2359296, 0x1b9d197f 0, 52, 52, 1, 2359296, 0x48c126fb -0, 53, 53, 1, 2359296, 0x48c126fb -0, 54, 54, 1, 2359296, 0x48c126fb -0, 55, 55, 1, 2359296, 0x48c126fb -0, 56, 56, 1, 2359296, 0x48c126fb -0, 57, 57, 1, 2359296, 0x48c126fb -0, 58, 58, 1, 2359296, 0x48c126fb 0, 59, 59, 1, 2359296, 0xcaa31c7c -0, 60, 60, 1, 2359296, 0xcaa31c7c -0, 61, 61, 1, 2359296, 0xcaa31c7c -0, 62, 62, 1, 2359296, 0xcaa31c7c -0, 63, 63, 1, 2359296, 0xcaa31c7c -0, 64, 64, 1, 2359296, 0xcaa31c7c -0, 65, 65, 1, 2359296, 0xcaa31c7c 0, 66, 66, 1, 2359296, 0xc6a333ee -0, 67, 67, 1, 2359296, 0xc6a333ee -0, 68, 68, 1, 2359296, 0xc6a333ee -0, 69, 69, 1, 2359296, 0xc6a333ee -0, 70, 70, 1, 2359296, 0xc6a333ee -0, 71, 71, 1, 2359296, 0xc6a333ee -0, 72, 72, 1, 2359296, 0xc6a333ee 0, 73, 73, 1, 2359296, 0xb96d1583 -0, 74, 74, 1, 2359296, 0xb96d1583 -0, 75, 75, 1, 2359296, 0xb96d1583 -0, 76, 76, 1, 2359296, 0xb96d1583 -0, 77, 77, 1, 2359296, 0xb96d1583 -0, 78, 78, 1, 2359296, 0xb96d1583 -0, 79, 79, 1, 2359296, 0xb96d1583 0, 80, 80, 1, 2359296, 0x878135ec -0, 82, 82, 1, 2359296, 0x878135ec -0, 83, 83, 1, 2359296, 0x878135ec -0, 84, 84, 1, 2359296, 0x878135ec -0, 85, 85, 1, 2359296, 0x878135ec -0, 86, 86, 1, 2359296, 0x878135ec -0, 87, 87, 1, 2359296, 0x878135ec 0, 88, 88, 1, 2359296, 0x76922870 -0, 89, 89, 1, 2359296, 0x76922870 -0, 90, 90, 1, 2359296, 0x76922870 -0, 91, 91, 1, 2359296, 0x76922870 -0, 92, 92, 1, 2359296, 0x76922870 -0, 93, 93, 1, 2359296, 0x76922870 -0, 94, 94, 1, 2359296, 0x76922870 0, 95, 95, 1, 2359296, 0xb0e031f0 -0, 96, 96, 1, 2359296, 0xb0e031f0 -0, 97, 97, 1, 2359296, 0xb0e031f0 -0, 98, 98, 1, 2359296, 0xb0e031f0 -0, 99, 99, 1, 2359296, 0xb0e031f0 -0, 100, 100, 1, 2359296, 0xb0e031f0 -0, 101, 101, 1, 2359296, 0xb0e031f0 0, 102, 102, 1, 2359296, 0xb2ef2a6e -0, 103, 103, 1, 2359296, 0xb2ef2a6e -0, 104, 104, 1, 2359296, 0xb2ef2a6e 0, 105, 105, 1, 2359296, 0x083c2474 -0, 106, 106, 1, 2359296, 0x083c2474 -0, 107, 107, 1, 2359296, 0x083c2474 -0, 108, 108, 1, 2359296, 0x083c2474 0, 109, 109, 1, 2359296, 0xbdfe2ef3 -0, 110, 110, 1, 2359296, 0xbdfe2ef3 -0, 111, 111, 1, 2359296, 0xbdfe2ef3 -0, 112, 112, 1, 2359296, 0xbdfe2ef3 -0, 113, 113, 1, 2359296, 0xbdfe2ef3 -0, 114, 114, 1, 2359296, 0xbdfe2ef3 -0, 115, 115, 1, 2359296, 0xbdfe2ef3 0, 116, 116, 1, 2359296, 0x934b1484 -0, 117, 117, 1, 2359296, 0x934b1484 -0, 118, 118, 1, 2359296, 0x934b1484 -0, 119, 119, 1, 2359296, 0x934b1484 0, 120, 120, 1, 2359296, 0x3e0d1a7e -0, 121, 121, 1, 2359296, 0x3e0d1a7e -0, 122, 122, 1, 2359296, 0x3e0d1a7e 0, 123, 123, 1, 2359296, 0x3ce539e8 -0, 124, 124, 1, 2359296, 0x3ce539e8 -0, 125, 125, 1, 2359296, 0x3ce539e8 -0, 126, 126, 1, 2359296, 0x3ce539e8 -0, 127, 127, 1, 2359296, 0x3ce539e8 -0, 128, 128, 1, 2359296, 0x3ce539e8 -0, 129, 129, 1, 2359296, 0x3ce539e8 0, 130, 130, 1, 2359296, 0xd46c2f69 -0, 131, 131, 1, 2359296, 0xd46c2f69 -0, 132, 132, 1, 2359296, 0xd46c2f69 -0, 133, 133, 1, 2359296, 0xd46c2f69 -0, 134, 134, 1, 2359296, 0xd46c2f69 -0, 135, 135, 1, 2359296, 0xd46c2f69 -0, 136, 136, 1, 2359296, 0xd46c2f69 0, 137, 137, 1, 2359296, 0x8d2933ee -0, 138, 138, 1, 2359296, 0x8d2933ee -0, 139, 139, 1, 2359296, 0x8d2933ee -0, 140, 140, 1, 2359296, 0x8d2933ee -0, 141, 141, 1, 2359296, 0x8d2933ee -0, 142, 142, 1, 2359296, 0x8d2933ee -0, 143, 143, 1, 2359296, 0x8d2933ee 0, 144, 144, 1, 2359296, 0xb6092b6d -0, 145, 145, 1, 2359296, 0xb6092b6d -0, 146, 146, 1, 2359296, 0xb6092b6d -0, 147, 147, 1, 2359296, 0xb6092b6d -0, 148, 148, 1, 2359296, 0xb6092b6d -0, 149, 149, 1, 2359296, 0xb6092b6d -0, 150, 150, 1, 2359296, 0xb6092b6d 0, 151, 151, 1, 2359296, 0xe4ef27fa -0, 152, 152, 1, 2359296, 0xe4ef27fa -0, 153, 153, 1, 2359296, 0xe4ef27fa -0, 154, 154, 1, 2359296, 0xe4ef27fa -0, 155, 155, 1, 2359296, 0xe4ef27fa -0, 156, 156, 1, 2359296, 0xe4ef27fa -0, 157, 157, 1, 2359296, 0xe4ef27fa 0, 158, 158, 1, 2359296, 0x5e5b2672 -0, 159, 159, 1, 2359296, 0x5e5b2672