From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id C1C9D48BF0 for ; Mon, 10 Jun 2024 06:22:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 37CB668D709; Mon, 10 Jun 2024 09:22:27 +0300 (EEST) Received: from fout6-smtp.messagingengine.com (fout6-smtp.messagingengine.com [103.168.172.149]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 69E7568D5D0 for ; Mon, 10 Jun 2024 09:22:20 +0300 (EEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfout.nyi.internal (Postfix) with ESMTP id D4B3C13800F0 for ; Mon, 10 Jun 2024 02:22:18 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Mon, 10 Jun 2024 02:22:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=itanimul.li; h= cc:content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:message-id:mime-version:reply-to:subject :subject:to:to; s=fm2; t=1718000538; x=1718086938; bh=+R3NUsSbPT ttoBTLf9QvBCBMghn+conP2jzjpLpgusk=; b=c4pdj3vRRRfVMEisXnmY5fg9mP 0KmG7LuD01P70P5K7vmUTvKNfLiqllR0XQ0CThGvVkiKpC9eUF+VKYH1908QZy1o wmfWbjc0PONdsZuDNgvetyefHFmk1blVdcQgloJxBju9WhyeYMClZLrOLiq1ikzA 42QvsggeS+vhh6ThXXR7q8A1gqkbv1Uiub22lfNxj9hLZq1iBOqjkLiwG6WdDmN7 cZIdGF2hYYoBgjTkfBAg6hfNQ2SOytjChYpmi+PLOfsQDXdXNpuUcsS/DyVrvtbt l+RDk2efvqHmZDooKDSqp07BxvR68d6Ict8F3Pkijsya0enQN0/LUDdjvu7g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:message-id:mime-version:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1718000538; x=1718086938; bh=+R3NUsSbPTttoBTLf9QvBCBMghn+ conP2jzjpLpgusk=; b=mymexICm9invLYa5ThroTu3GNVh+ZGdz8k/DNy6Cv+XB o/RDGKQdKXqft2jjz/Uo6Dn/twGaTMqP+aNEC+I2B4rBrwo2penT/iUMkhx1UG5m 6D+tFv02tue5Crkan0WMdr9NP3c+KHUJG4ScOD2loe0Aqyq1uYlnfHtzA5jWuQFU 6CBBqD8S3sMkpGCylgSLmQ8Hdpz8HIC2K11VaiUt1L/T2PH6hkZunBKhFzAtAOW/ ZaDqqIZ2rKwrSqlbLfeO2q5nOYdo2JYUNE2E0TdZiKED4wPfI3ks7Xm/+/pPtgpn ppHnQFT4dmci4yH/TY1sZHZKBlUqlCdfKSxCWoU4Ew== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrfedtledghedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofggtgfgsehtkeertd ertdejnecuhfhrohhmpedflfdrucffvghkkhgvrhdfuceojhguvghksehithgrnhhimhhu lhdrlhhiqeenucggtffrrghtthgvrhhnpeekuedvvddtffeludfgjeefgfeiffdtteehhf etgeevtdfgteevjefghffhjeffudenucffohhmrghinhephhdvieegughsphgprhhvvhdr shgsnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepjh guvghksehithgrnhhimhhulhdrlhhi X-ME-Proxy: Feedback-ID: i84994747:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Mon, 10 Jun 2024 02:22:17 -0400 (EDT) From: "J. Dekker" To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Jun 2024 06:22:14 +0000 Message-ID: <20240610062216.30053-1-jdek@itanimul.li> X-Mailer: git-send-email 2.45.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/riscv: add h264 dc idct rvv X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Y2hlY2thc206IGJlbmNoIHJ1bnMgMTMxMDcyICgxIDw8IDE3KQpoMjY0X2lkY3Q0X2FkZF9kY184 YnBwX2M6IDEuNQpoMjY0X2lkY3Q0X2FkZF9kY184YnBwX3J2dl9pNjQ6IDAuNwpoMjY0X2lkY3Q0 X2FkZF9kY185YnBwX2M6IDEuNQpoMjY0X2lkY3Q0X2FkZF9kY185YnBwX3J2dl9pNjQ6IDAuNwpo MjY0X2lkY3Q0X2FkZF9kY18xMGJwcF9jOiAxLjUKaDI2NF9pZGN0NF9hZGRfZGNfMTBicHBfcnZ2 X2k2NDogMC43CmgyNjRfaWRjdDRfYWRkX2RjXzEyYnBwX2M6IDEuMgpoMjY0X2lkY3Q0X2FkZF9k Y18xMmJwcF9ydnZfaTY0OiAwLjcKaDI2NF9pZGN0NF9hZGRfZGNfMTRicHBfYzogMS4yCmgyNjRf aWRjdDRfYWRkX2RjXzE0YnBwX3J2dl9pNjQ6IDAuNwpoMjY0X2lkY3Q4X2FkZF9kY184YnBwX2M6 IDUuMgpoMjY0X2lkY3Q4X2FkZF9kY184YnBwX3J2dl9pNjQ6IDEuNQpoMjY0X2lkY3Q4X2FkZF9k Y185YnBwX2M6IDUuNQpoMjY0X2lkY3Q4X2FkZF9kY185YnBwX3J2dl9pNjQ6IDEuMgpoMjY0X2lk Y3Q4X2FkZF9kY18xMGJwcF9jOiA1LjUKaDI2NF9pZGN0OF9hZGRfZGNfMTBicHBfcnZ2X2k2NDog MS4yCmgyNjRfaWRjdDhfYWRkX2RjXzEyYnBwX2M6IDQuMgpoMjY0X2lkY3Q4X2FkZF9kY18xMmJw cF9ydnZfaTY0OiAxLjIKaDI2NF9pZGN0OF9hZGRfZGNfMTRicHBfYzogNC4yCmgyNjRfaWRjdDhf YWRkX2RjXzE0YnBwX3J2dl9pNjQ6IDEuMgoKU2lnbmVkLW9mZi1ieTogSi4gRGVra2VyIDxqZGVr QGl0YW5pbXVsLmxpPgotLS0KIGxpYmF2Y29kZWMvcmlzY3YvTWFrZWZpbGUgICAgICAgfCAgIDEg KwogbGliYXZjb2RlYy9yaXNjdi9oMjY0ZHNwX2luaXQuYyB8ICA0MCArKysrKysrKystCiBsaWJh dmNvZGVjL3Jpc2N2L2gyNjRkc3BfcnZ2LlMgIHwgMTI5ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE2NyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvcmlzY3YvaDI2NGRzcF9ydnYuUwoK ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcmlzY3YvTWFrZWZpbGUgYi9saWJhdmNvZGVjL3Jpc2N2 L01ha2VmaWxlCmluZGV4IDU5MDY1NWY4MjkuLmNiNjM2MzFkZTQgMTAwNjQ0Ci0tLSBhL2xpYmF2 Y29kZWMvcmlzY3YvTWFrZWZpbGUKKysrIGIvbGliYXZjb2RlYy9yaXNjdi9NYWtlZmlsZQpAQCAt MzEsNiArMzEsNyBAQCBSVlYtT0JKUy0kKENPTkZJR19IMjYzRFNQKSArPSByaXNjdi9oMjYzZHNw X3J2di5vCiBPQkpTLSQoQ09ORklHX0gyNjRDSFJPTUEpICs9IHJpc2N2L2gyNjRfY2hyb21hX2lu aXRfcmlzY3YubwogUlZWLU9CSlMtJChDT05GSUdfSDI2NENIUk9NQSkgKz0gcmlzY3YvaDI2NF9t Y19jaHJvbWEubwogT0JKUy0kKENPTkZJR19IMjY0RFNQKSArPSByaXNjdi9oMjY0ZHNwX2luaXQu bworUlZWLU9CSlMtJChDT05GSUdfSDI2NERTUCkgKz0gcmlzY3YvaDI2NGRzcF9ydnYubwogT0JK Uy0kKENPTkZJR19IVUZGWVVWX0RFQ09ERVIpICs9IHJpc2N2L2h1ZmZ5dXZkc3BfaW5pdC5vCiBS VlYtT0JKUy0kKENPTkZJR19IVUZGWVVWX0RFQ09ERVIpICs9IHJpc2N2L2h1ZmZ5dXZkc3BfcnZ2 Lm8KIE9CSlMtJChDT05GSUdfSURDVERTUCkgKz0gcmlzY3YvaWRjdGRzcF9pbml0Lm8KZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvcmlzY3YvaDI2NGRzcF9pbml0LmMgYi9saWJhdmNvZGVjL3Jpc2N2 L2gyNjRkc3BfaW5pdC5jCmluZGV4IGRiYmYzZGI0MDAuLmZlM2NhZjY4NmQgMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMvcmlzY3YvaDI2NGRzcF9pbml0LmMKKysrIGIvbGliYXZjb2RlYy9yaXNjdi9o MjY0ZHNwX2luaXQuYwpAQCAtMSw0ICsxLDUgQEAKIC8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjQg Si4gRGVra2VyIDxqZGVrQGl0YW5pbXVsLmxpPgogICogQ29weXJpZ2h0IMKpIDIwMjQgUsOpbWkg RGVuaXMtQ291cm1vbnQuCiAgKgogICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgpAQCAt MjQsMjIgKzI1LDU1IEBACiAKICNpbmNsdWRlICJsaWJhdnV0aWwvYXR0cmlidXRlcy5oIgogI2lu Y2x1ZGUgImxpYmF2dXRpbC9jcHUuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvcmlzY3YvY3B1Lmgi CiAjaW5jbHVkZSAibGliYXZjb2RlYy9oMjY0ZHNwLmgiCiAKIGV4dGVybiBpbnQgZmZfc3RhcnRj b2RlX2ZpbmRfY2FuZGlkYXRlX3J2Yihjb25zdCB1aW50OF90ICosIGludCk7CiBleHRlcm4gaW50 IGZmX3N0YXJ0Y29kZV9maW5kX2NhbmRpZGF0ZV9ydnYoY29uc3QgdWludDhfdCAqLCBpbnQpOwor dm9pZCBmZl9oMjY0X2lkY3Q0X2RjX2FkZF84X3J2dih1aW50OF90ICpkc3QsIGludDE2X3QgKmJs b2NrLCBpbnQgc3RyaWRlKTsKK3ZvaWQgZmZfaDI2NF9pZGN0OF9kY19hZGRfOF9ydnYodWludDhf dCAqZHN0LCBpbnQxNl90ICpibG9jaywgaW50IHN0cmlkZSk7Cit2b2lkIGZmX2gyNjRfaWRjdDRf ZGNfYWRkXzlfcnZ2KHVpbnQ4X3QgKmRzdCwgaW50MTZfdCAqYmxvY2ssIGludCBzdHJpZGUpOwor dm9pZCBmZl9oMjY0X2lkY3Q4X2RjX2FkZF85X3J2dih1aW50OF90ICpkc3QsIGludDE2X3QgKmJs b2NrLCBpbnQgc3RyaWRlKTsKK3ZvaWQgZmZfaDI2NF9pZGN0NF9kY19hZGRfMTBfcnZ2KHVpbnQ4 X3QgKmRzdCwgaW50MTZfdCAqYmxvY2ssIGludCBzdHJpZGUpOwordm9pZCBmZl9oMjY0X2lkY3Q4 X2RjX2FkZF8xMF9ydnYodWludDhfdCAqZHN0LCBpbnQxNl90ICpibG9jaywgaW50IHN0cmlkZSk7 Cit2b2lkIGZmX2gyNjRfaWRjdDRfZGNfYWRkXzEyX3J2dih1aW50OF90ICpkc3QsIGludDE2X3Qg KmJsb2NrLCBpbnQgc3RyaWRlKTsKK3ZvaWQgZmZfaDI2NF9pZGN0OF9kY19hZGRfMTJfcnZ2KHVp bnQ4X3QgKmRzdCwgaW50MTZfdCAqYmxvY2ssIGludCBzdHJpZGUpOwordm9pZCBmZl9oMjY0X2lk Y3Q0X2RjX2FkZF8xNF9ydnYodWludDhfdCAqZHN0LCBpbnQxNl90ICpibG9jaywgaW50IHN0cmlk ZSk7Cit2b2lkIGZmX2gyNjRfaWRjdDhfZGNfYWRkXzE0X3J2dih1aW50OF90ICpkc3QsIGludDE2 X3QgKmJsb2NrLCBpbnQgc3RyaWRlKTsKIAotYXZfY29sZCB2b2lkIGZmX2gyNjRkc3BfaW5pdF9y aXNjdihIMjY0RFNQQ29udGV4dCAqZHNwLCBjb25zdCBpbnQgYml0X2RlcHRoLAorYXZfY29sZCB2 b2lkIGZmX2gyNjRkc3BfaW5pdF9yaXNjdihIMjY0RFNQQ29udGV4dCAqYywgY29uc3QgaW50IGJp dF9kZXB0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IGNo cm9tYV9mb3JtYXRfaWRjKQogewogI2lmIEhBVkVfUlYKICAgICBpbnQgZmxhZ3MgPSBhdl9nZXRf Y3B1X2ZsYWdzKCk7CiAKICAgICBpZiAoZmxhZ3MgJiBBVl9DUFVfRkxBR19SVkJfQkFTSUMpCi0g ICAgICAgIGRzcC0+c3RhcnRjb2RlX2ZpbmRfY2FuZGlkYXRlID0gZmZfc3RhcnRjb2RlX2ZpbmRf Y2FuZGlkYXRlX3J2YjsKKyAgICAgICAgYy0+c3RhcnRjb2RlX2ZpbmRfY2FuZGlkYXRlID0gZmZf c3RhcnRjb2RlX2ZpbmRfY2FuZGlkYXRlX3J2YjsKICMgaWYgSEFWRV9SVlYKICAgICBpZiAoZmxh Z3MgJiBBVl9DUFVfRkxBR19SVlZfSTMyKQotICAgICAgICBkc3AtPnN0YXJ0Y29kZV9maW5kX2Nh bmRpZGF0ZSA9IGZmX3N0YXJ0Y29kZV9maW5kX2NhbmRpZGF0ZV9ydnY7CisgICAgICAgIGMtPnN0 YXJ0Y29kZV9maW5kX2NhbmRpZGF0ZSA9IGZmX3N0YXJ0Y29kZV9maW5kX2NhbmRpZGF0ZV9ydnY7 CiAjIGVuZGlmCisgICAgaWYgKChmbGFncyAmIEFWX0NQVV9GTEFHX1JWVl9JNjQpICYmIGZmX2dl dF9ydl92bGVuYigpID49IDE2KSB7CisgICAgICAgIGlmIChiaXRfZGVwdGggPT0gOCkgeworICAg ICAgICAgICAgYy0+aDI2NF9pZGN0X2RjX2FkZCAgPSBmZl9oMjY0X2lkY3Q0X2RjX2FkZF84X3J2 djsKKyAgICAgICAgICAgIGMtPmgyNjRfaWRjdDhfZGNfYWRkID0gZmZfaDI2NF9pZGN0OF9kY19h ZGRfOF9ydnY7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJpdF9kZXB0aCA9PSA5KSB7CisgICAg ICAgICAgICBjLT5oMjY0X2lkY3RfZGNfYWRkICA9IGZmX2gyNjRfaWRjdDRfZGNfYWRkXzlfcnZ2 OworICAgICAgICAgICAgYy0+aDI2NF9pZGN0OF9kY19hZGQgPSBmZl9oMjY0X2lkY3Q4X2RjX2Fk ZF85X3J2djsKKyAgICAgICAgfQorICAgICAgICBpZiAoYml0X2RlcHRoID09IDEwKSB7CisgICAg ICAgICAgICBjLT5oMjY0X2lkY3RfZGNfYWRkICA9IGZmX2gyNjRfaWRjdDRfZGNfYWRkXzEwX3J2 djsKKyAgICAgICAgICAgIGMtPmgyNjRfaWRjdDhfZGNfYWRkID0gZmZfaDI2NF9pZGN0OF9kY19h ZGRfMTBfcnZ2OworICAgICAgICB9CisgICAgICAgIGlmIChiaXRfZGVwdGggPT0gMTIpIHsKKyAg ICAgICAgICAgIGMtPmgyNjRfaWRjdF9kY19hZGQgID0gZmZfaDI2NF9pZGN0NF9kY19hZGRfMTJf cnZ2OworICAgICAgICAgICAgYy0+aDI2NF9pZGN0OF9kY19hZGQgPSBmZl9oMjY0X2lkY3Q4X2Rj X2FkZF8xMl9ydnY7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJpdF9kZXB0aCA9PSAxNCkgewor ICAgICAgICAgICAgYy0+aDI2NF9pZGN0X2RjX2FkZCAgPSBmZl9oMjY0X2lkY3Q0X2RjX2FkZF8x NF9ydnY7CisgICAgICAgICAgICBjLT5oMjY0X2lkY3Q4X2RjX2FkZCA9IGZmX2gyNjRfaWRjdDhf ZGNfYWRkXzE0X3J2djsKKyAgICAgICAgfQorICAgIH0KICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy9yaXNjdi9oMjY0ZHNwX3J2di5TIGIvbGliYXZjb2RlYy9yaXNjdi9oMjY0ZHNw X3J2di5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmMzOTI0MDNhZGQK LS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmNvZGVjL3Jpc2N2L2gyNjRkc3BfcnZ2LlMKQEAgLTAs MCArMSwxMjkgQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl CisgKgorICogQ29weXJpZ2h0IChjKSAyMDI0IEouIERla2tlciA8amRla0BpdGFuaW11bC5saT4K KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0 CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKKyAqIEFORCBBTlkgRVhQUkVTUyBP UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKKyAqIExJQUJMRSBGT1Ig QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKKyAqIFBPU1NJQklMSVRZIE9G IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJsaWJhdnV0aWwvcmlzY3YvYXNtLlMiCisK Ky5tYWNybyBjbGlwIG1pbiwgbWF4LCByZWdzOnZhcmFyZworLmlycCB4LCBccmVncworICAgICAg ICB2bWF4LnZ4ICAgICAgICAgXHgsIFx4LCBcbWluCisuZW5kcgorLmlycCB4LCBccmVncworICAg ICAgICB2bWluLnZ4ICAgICAgICAgXHgsIFx4LCBcbWF4CisuZW5kcgorLmVuZG0KKworLm1hY3Jv IGlkY3RfZGNfYWRkIGRlcHRoCitmdW5jIGZmX2gyNjRfaWRjdF9kY19hZGRfXGRlcHRoXCgpX3J2 diwgenZlNjR4LCB6YmIKKy5pZiBcZGVwdGggPT0gOAorICAgICAgICBsaCAgICAgICAgICAgICAg YTMsIDAoYTEpCisuZWxzZQorICAgICAgICBsdyAgICAgICAgICAgICAgYTMsIDAoYTEpCisuZW5k aWYKKyAgICAgICAgYWRkaSAgICAgICAgICAgIGEzLCBhMywgMzIKKyAgICAgICAgbXYgICAgICAg ICAgICAgIHQxLCBhNCAgICAgLy8gbGluZXMgPSBjb2xzCisgICAgICAgIHNyYWkgICAgICAgICAg ICBhMywgYTMsIDYKKy5pZiBcZGVwdGggPT0gOAorICAgICAgICBzaCAgICAgICAgICAgICAgemVy bywgMChhMSkKKy5lbHNlCisgICAgICAgIHN3ICAgICAgICAgICAgICB6ZXJvLCAwKGExKQorLmVu ZGlmCisxOiAgICAgIGFkZCAgICAgICAgICAgICB0NCwgYTAsIGEyIC8vICZzcmNbbGluZSAqIDFd CisgICAgICAgIHNoMWFkZCAgICAgICAgICB0NSwgYTIsIGEwIC8vICZzcmNbbGluZSAqIDJdCisg ICAgICAgIHNoMWFkZCAgICAgICAgICB0NiwgYTIsIHQ0IC8vICZzcmNbbGluZSAqIDNdCisuaWYg XGRlcHRoID09IDgKKyAgICAgICAgdnNldHZsaSAgICAgICAgIHplcm8sIGE0LCBlOCwgbWYyLCB0 YSwgbWEKKyAgICAgICAgdmxlOC52ICAgICAgICAgIHYwLCAoYTApCisgICAgICAgIHZsZTgudiAg ICAgICAgICB2MSwgKHQ0KQorICAgICAgICB2bGU4LnYgICAgICAgICAgdjIsICh0NSkKKyAgICAg ICAgdmxlOC52ICAgICAgICAgIHYzLCAodDYpCisgICAgICAgIHZ3Y3Z0dS54LngudiAgICB2OCwg djAKKyAgICAgICAgdndjdnR1LngueC52ICAgIHY5LCB2MQorICAgICAgICB2d2N2dHUueC54LnYg ICAgdjEwLCB2MgorICAgICAgICB2d2N2dHUueC54LnYgICAgdjExLCB2MworICAgICAgICB2c2V0 dmxpICAgICAgICAgemVybywgYTQsIGUxNiwgbTEsIHRhLCBtYQorLmVsc2UKKyAgICAgICAgdnNl dHZsaSAgICAgICAgIHplcm8sIGE0LCBlMTYsIG0xLCB0YSwgbWEKKyAgICAgICAgdmxlMTYudiAg ICAgICAgIHY4LCAoYTApCisgICAgICAgIHZsZTE2LnYgICAgICAgICB2OSwgKHQ0KQorICAgICAg ICB2bGUxNi52ICAgICAgICAgdjEwLCAodDUpCisgICAgICAgIHZsZTE2LnYgICAgICAgICB2MTEs ICh0NikKKy5lbmRpZgorICAgICAgICB2YWRkLnZ4ICAgICAgICAgdjgsIHY4LCBhMworICAgICAg ICB2YWRkLnZ4ICAgICAgICAgdjksIHY5LCBhMworICAgICAgICB2YWRkLnZ4ICAgICAgICAgdjEw LCB2MTAsIGEzCisgICAgICAgIHZhZGQudnggICAgICAgICB2MTEsIHYxMSwgYTMKKyAgICAgICAg Y2xpcCAgICAgICAgICAgIHplcm8sIGE1LCB2OCwgdjksIHYxMCwgdjExCisgICAgICAgIGFkZGkg ICAgICAgICAgICB0MSwgdDEsIC00CisuaWYgXGRlcHRoID09IDgKKyAgICAgICAgdnNldHZsaSAg ICAgICAgIHplcm8sIGE0LCBlOCwgbWYyLCB0YSwgbWEKKyAgICAgICAgdm5jdnQueC54LncgICAg IHYwLCB2OAorICAgICAgICB2bmN2dC54LngudyAgICAgdjEsIHY5CisgICAgICAgIHZuY3Z0Lngu eC53ICAgICB2MiwgdjEwCisgICAgICAgIHZuY3Z0LngueC53ICAgICB2MywgdjExCisgICAgICAg IHZzZTgudiAgICAgICAgICB2MCwgKGEwKQorICAgICAgICB2c2U4LnYgICAgICAgICAgdjEsICh0 NCkKKyAgICAgICAgdnNlOC52ICAgICAgICAgIHYyLCAodDUpCisgICAgICAgIHZzZTgudiAgICAg ICAgICB2MywgKHQ2KQorLmVsc2UKKyAgICAgICAgdnNlMTYudiAgICAgICAgIHY4LCAoYTApCisg ICAgICAgIHZzZTE2LnYgICAgICAgICB2OSwgKHQ0KQorICAgICAgICB2c2UxNi52ICAgICAgICAg djEwLCAodDUpCisgICAgICAgIHZzZTE2LnYgICAgICAgICB2MTEsICh0NikKKy5lbmRpZgorICAg ICAgICBzaDJhZGQgICAgICAgICAgYTAsIGEyLCBhMCAvLyBzcmMgKz0gc3RyaWRlICogNAorICAg ICAgICBibmV6ICAgICAgICAgICAgdDEsIDFiCisgICAgICAgIHJldAorZW5kZnVuYworLmVuZG0K KworaWRjdF9kY19hZGQgOAoraWRjdF9kY19hZGQgMTYKKworZnVuYyBmZl9oMjY0X2lkY3Q0X2Rj X2FkZF84X3J2diwgenZlNjR4CisgICAgICAgIGxpICAgICAgICAgICAgICBhNCwgNAorICAgICAg ICBsaSAgICAgICAgICAgICAgYTUsIDI1NQorICAgICAgICBqICAgICAgICAgICAgICAgZmZfaDI2 NF9pZGN0X2RjX2FkZF84X3J2dgorZW5kZnVuYworZnVuYyBmZl9oMjY0X2lkY3Q4X2RjX2FkZF84 X3J2diwgenZlNjR4CisgICAgICAgIGxpICAgICAgICAgICAgICBhNCwgOAorICAgICAgICBsaSAg ICAgICAgICAgICAgYTUsIDI1NQorICAgICAgICBqICAgICAgICAgICAgICAgZmZfaDI2NF9pZGN0 X2RjX2FkZF84X3J2dgorZW5kZnVuYworCisuaXJwIGRlcHRoLDksMTAsMTIsMTQKK2Z1bmMgZmZf aDI2NF9pZGN0NF9kY19hZGRfXGRlcHRoXCgpX3J2diwgenZlNjR4CisgICAgICAgIGxpICAgICAg ICAgICAgICBhNCwgNAorICAgICAgICBsaSAgICAgICAgICAgICAgYTUsICgxIDw8IFxkZXB0aCkg LSAxCisgICAgICAgIGogICAgICAgICAgICAgICBmZl9oMjY0X2lkY3RfZGNfYWRkXzE2X3J2dgor ZW5kZnVuYworCitmdW5jIGZmX2gyNjRfaWRjdDhfZGNfYWRkX1xkZXB0aFwoKV9ydnYsIHp2ZTY0 eAorICAgICAgICBsaSAgICAgICAgICAgICAgYTQsIDgKKyAgICAgICAgbGkgICAgICAgICAgICAg IGE1LCAoMSA8PCBcZGVwdGgpIC0gMQorICAgICAgICBqICAgICAgICAgICAgICAgZmZfaDI2NF9p ZGN0X2RjX2FkZF8xNl9ydnYKK2VuZGZ1bmMKKy5lbmRyCi0tIAoyLjQ1LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5n IGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4v bGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwg b3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVu c3Vic2NyaWJlIi4K