From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id 7056A4BCA4
	for <ffmpegdev@gitmailbox.com>; Mon, 31 Mar 2025 02:38:20 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2AF9C687CC7;
	Mon, 31 Mar 2025 05:38:04 +0300 (EEST)
Received: from vidala.pars.ee (vidala.pars.ee [116.203.72.101])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C439E687B0C
 for <ffmpeg-devel@ffmpeg.org>; Mon, 31 Mar 2025 05:37:56 +0300 (EEST)
DKIM-Signature: v=1; a=rsa-sha256; s=202405r; d=lynne.ee; c=relaxed/relaxed;
 h=Message-ID:Date:Subject:To:From; t=1743388675; bh=hVm+6n6Jvb7475pJI+VwvaL
 zhEY9dw58TROIh9o5IZ0=; b=CjbHReL8OWobM/MRdiCPJoEM6ZjhKBFqT0a0CmZw5Ms11Hfsu0
 dun36BSMzm+zyDBIx3h2Xld3dPehfl44E4OTiDBqdGl4etAkjZ6oqP8eZ2ld4NBb+Uri933pVe3
 PKu7VPAUiO/Q1D6iZQ32L9nJKp1vV0TxRdsgfWB5qzddTS8WQiIHzSzKg0opo4dmpQ+3xcQRvUt
 i5u989uAK8KQ2M7DIrMlHkKKrN3PVkLFrRkarjgde/OlZF5UD767veaVRtrPmpE8Itc8vLeP5YA
 1LPDVF2e1gmet1VdG6eVE7qi1LBrLJ39Oqe8Q8zXCWixk8qGjAnt8s5+f/v7ftFvsaA==;
DKIM-Signature: v=1; a=ed25519-sha256; s=202405e; d=lynne.ee; c=relaxed/relaxed;
 h=Message-ID:Date:Subject:To:From; t=1743388675; bh=hVm+6n6Jvb7475pJI+VwvaL
 zhEY9dw58TROIh9o5IZ0=; b=xr0VYlMmiFvjm5HddTRW4HdyVEBJKyHZQ6oqgiDK2Ih6sPM/hi
 eV5bVVk+3n9uxUjSBWq3D9+1uNPxfsKkQJBA==;
From: Lynne <dev@lynne.ee>
To: ffmpeg-devel@ffmpeg.org
Date: Mon, 31 Mar 2025 04:37:41 +0200
Message-ID: <20250331023753.285499-5-dev@lynne.ee>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250331023753.285499-1-dev@lynne.ee>
References: <20250331023753.285499-1-dev@lynne.ee>
MIME-Version: 1.0
Subject: [FFmpeg-devel] [PATCH 5/6] vulkan_h264: make all temporary structs
 temporary
X-BeenThere: ffmpeg-devel@ffmpeg.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org>
List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe>
List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
List-Post: <mailto:ffmpeg-devel@ffmpeg.org>
List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help>
List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe>
Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Cc: Lynne <dev@lynne.ee>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/20250331023753.285499-5-dev@lynne.ee/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

VGhpcyBjb21taXQgbW92ZXMgYWxsIHRlbXBvcmFyeSBzdHJ1Y3RzIHVzZWQgZm9yIGRlY29kaW5n
IG91dApvZiB0aGUgY29tbW9uIHBpY3R1cmUgaGVhZGVyIGFuZCBvbnRvIHN0YWNrLgotLS0KIGxp
YmF2Y29kZWMvdnVsa2FuX2RlY29kZS5jIHwgICAxICsKIGxpYmF2Y29kZWMvdnVsa2FuX2RlY29k
ZS5oIHwgICAzICsKIGxpYmF2Y29kZWMvdnVsa2FuX2gyNjQuYyAgIHwgMzIyICsrKysrKysrKysr
KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTY4IGluc2VydGlv
bnMoKyksIDE1OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbl9k
ZWNvZGUuYyBiL2xpYmF2Y29kZWMvdnVsa2FuX2RlY29kZS5jCmluZGV4IDg5M2Y4ZmNhM2QuLjU1
MDVmYmRhMjggMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdnVsa2FuX2RlY29kZS5jCisrKyBiL2xp
YmF2Y29kZWMvdnVsa2FuX2RlY29kZS5jCkBAIC0yNTMsNiArMjUzLDcgQEAgaW50IGZmX3ZrX2Rl
Y29kZV9zdGFydF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEZGVnVsa2FuRGVjb2RlUGlj
dHVyZSAqdnAsCiAKICAgICB2cC0+bmJfc2xpY2VzID0gMDsKICAgICB2cC0+c2xpY2VzX3NpemUg
PSAwOworICAgIHZwLT5pbnRyYV9waWNfZmxhZyA9IDE7CiAKICAgICAvKiBIb3N0IG1hcCB0aGUg
aW5wdXQgc2xpY2VzIGRhdGEgaWYgc3VwcG9ydGVkICovCiAgICAgaWYgKGNvbXBsZXRlICYmIGN0
eC0+cy5leHRlbnNpb25zICYgRkZfVktfRVhUX0VYVEVSTkFMX0hPU1RfTUVNT1JZKSB7CmRpZmYg
LS1naXQgYS9saWJhdmNvZGVjL3Z1bGthbl9kZWNvZGUuaCBiL2xpYmF2Y29kZWMvdnVsa2FuX2Rl
Y29kZS5oCmluZGV4IDEwM2JlMDk5NDMuLjViMTRkOTYyZjIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29k
ZWMvdnVsa2FuX2RlY29kZS5oCisrKyBiL2xpYmF2Y29kZWMvdnVsa2FuX2RlY29kZS5oCkBAIC0x
MDUsNiArMTA1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgRkZWdWxrYW5EZWNvZGVQaWN0dXJlIHsKICAg
ICAvKiBWdWxrYW4gZnVuY3Rpb25zIG5lZWRlZCBmb3IgZGVzdHJ1Y3Rpb24sIGFzIG5vIG90aGVy
IGNvbnRleHQgaXMgZ3VhcmFudGVlZCB0byBleGlzdCAqLwogICAgIFBGTl92a1dhaXRTZW1hcGhv
cmVzICAgICAgICAgICAgd2FpdF9zZW1hcGhvcmVzOwogICAgIFBGTl92a0Rlc3Ryb3lJbWFnZVZp
ZXcgICAgICAgICAgZGVzdHJveV9pbWFnZV92aWV3OworCisgICAgLyogQ29kZWMgc3BlY2lmaWMg
Ki8KKyAgICBpbnQgaW50cmFfcGljX2ZsYWc7IC8qIE9ubHkgdXNlZCBieSBIMjY0ICovCiB9IEZG
VnVsa2FuRGVjb2RlUGljdHVyZTsKIAogLyoqCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Z1bGth
bl9oMjY0LmMgYi9saWJhdmNvZGVjL3Z1bGthbl9oMjY0LmMKaW5kZXggNzFhOWMwNjgwMS4uZTY5
NzU4M2JhOSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy92dWxrYW5faDI2NC5jCisrKyBiL2xpYmF2
Y29kZWMvdnVsa2FuX2gyNjQuYwpAQCAtMzIsOTkgKzMyLDggQEAgY29uc3QgRkZWdWxrYW5EZWNv
ZGVEZXNjcmlwdG9yIGZmX3ZrX2RlY19oMjY0X2Rlc2MgPSB7CiAgICAgfSwKIH07CiAKLXR5cGVk
ZWYgc3RydWN0IEgyNjRWdWxrYW5EZWNvZGVQaWN0dXJlIHsKLSAgICBGRlZ1bGthbkRlY29kZVBp
Y3R1cmUgICAgICAgICAgIHZwOwotCi0gICAgLyogQ3VycmVudCBwaWN0dXJlICovCi0gICAgU3Rk
VmlkZW9EZWNvZGVIMjY0UmVmZXJlbmNlSW5mbyBoMjY0X3JlZjsKLSAgICBWa1ZpZGVvRGVjb2Rl
SDI2NERwYlNsb3RJbmZvS0hSIHZraDI2NF9yZWY7Ci0KLSAgICAvKiBQaWN0dXJlIHJlZnMgKi8K
LSAgICBIMjY0UGljdHVyZSAgICAgICAgICAgICAgICAgICAgKnJlZl9zcmMgICAgW0gyNjRfTUFY
X1BJQ1RVUkVfQ09VTlRdOwotICAgIFN0ZFZpZGVvRGVjb2RlSDI2NFJlZmVyZW5jZUluZm8gaDI2
NF9yZWZzICBbSDI2NF9NQVhfUElDVFVSRV9DT1VOVF07Ci0gICAgVmtWaWRlb0RlY29kZUgyNjRE
cGJTbG90SW5mb0tIUiB2a2gyNjRfcmVmc1tIMjY0X01BWF9QSUNUVVJFX0NPVU5UXTsKLQotICAg
IC8qIEN1cnJlbnQgcGljdHVyZSAoY29udGQuKSAqLwotICAgIFN0ZFZpZGVvRGVjb2RlSDI2NFBp
Y3R1cmVJbmZvICAgaDI2NHBpYzsKLSAgICBWa1ZpZGVvRGVjb2RlSDI2NFBpY3R1cmVJbmZvS0hS
IGgyNjRfcGljX2luZm87Ci0KLSAgICAvKiBDdXJyZW50IHBpY3R1cmUgKi8KLSAgICBWa1ZpZGVv
UGljdHVyZVJlc291cmNlSW5mb0tIUiAgIHJlZjsKLSAgICBWa1ZpZGVvUmVmZXJlbmNlU2xvdElu
Zm9LSFIgICAgIHJlZl9zbG90OwotCi0gICAgLyogUGljdHVyZSByZWZzLiBIMjY0IGhhcyB0aGUg
bWF4aW11bSBudW1iZXIgb2YgcmVmcyAoMzYpIG9mIGFueSBzdXBwb3J0ZWQgY29kZWMuICovCi0g
ICAgVmtWaWRlb1BpY3R1cmVSZXNvdXJjZUluZm9LSFIgICByZWZzICAgICBbMzZdOwotICAgIFZr
VmlkZW9SZWZlcmVuY2VTbG90SW5mb0tIUiAgICAgcmVmX3Nsb3RzWzM2XTsKLQotICAgIC8qIE1h
aW4gZGVjb2Rpbmcgc3RydWN0ICovCi0gICAgVmtWaWRlb0RlY29kZUluZm9LSFIgICAgICAgICAg
ICBkZWNvZGVfaW5mbzsKLX0gSDI2NFZ1bGthbkRlY29kZVBpY3R1cmU7Ci0KIGNvbnN0IHN0YXRp
YyBpbnQgaDI2NF9zY2FsaW5nX2xpc3Q4X29yZGVyW10gPSB7IDAsIDMsIDEsIDQsIDIsIDUgfTsK
IAotc3RhdGljIGludCB2a19oMjY0X2ZpbGxfcGljdChBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEgy
NjRQaWN0dXJlICoqcmVmX3NyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtWaWRl
b1JlZmVyZW5jZVNsb3RJbmZvS0hSICpyZWZfc2xvdCwgICAgICAgLyogTWFpbiBzdHJ1Y3R1cmUg
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtWaWRlb1BpY3R1cmVSZXNvdXJjZUlu
Zm9LSFIgKnJlZiwgICAgICAgICAgLyogR29lcyBpbiBeICovCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFZrVmlkZW9EZWNvZGVIMjY0RHBiU2xvdEluZm9LSFIgKnZraDI2NF9yZWYsIC8q
IEdvZXMgaW4gXiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGRWaWRlb0RlY29k
ZUgyNjRSZWZlcmVuY2VJbmZvICpoMjY0X3JlZiwgICAvKiBHb2VzIGluIF4gKi8KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSDI2NFBpY3R1cmUgKnBpYywgaW50IGlzX2N1cnJlbnQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpc19maWVsZCwgaW50IHBpY3R1cmVfc3Ry
dWN0dXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHBiX3Nsb3RfaW5kZXgp
Ci17Ci0gICAgRkZWdWxrYW5EZWNvZGVDb250ZXh0ICpkZWMgPSBhdmN0eC0+aW50ZXJuYWwtPmh3
YWNjZWxfcHJpdl9kYXRhOwotICAgIEZGVnVsa2FuRGVjb2RlU2hhcmVkICpjdHggPSBkZWMtPnNo
YXJlZF9jdHg7Ci0gICAgSDI2NFZ1bGthbkRlY29kZVBpY3R1cmUgKmhwID0gcGljLT5od2FjY2Vs
X3BpY3R1cmVfcHJpdmF0ZTsKLSAgICBGRlZ1bGthbkRlY29kZVBpY3R1cmUgKnZrcGljID0gJmhw
LT52cDsKLQotICAgIGludCBlcnIgPSBmZl92a19kZWNvZGVfcHJlcGFyZV9mcmFtZShkZWMsIHBp
Yy0+ZiwgdmtwaWMsIGlzX2N1cnJlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlYy0+ZGVkaWNhdGVkX2RwYik7Ci0gICAgaWYgKGVyciA8IDApCi0gICAgICAg
IHJldHVybiBlcnI7Ci0KLSAgICAqaDI2NF9yZWYgPSAoU3RkVmlkZW9EZWNvZGVIMjY0UmVmZXJl
bmNlSW5mbykgewotICAgICAgICAuRnJhbWVOdW0gPSBwaWMtPmxvbmdfcmVmID8gcGljLT5waWNf
aWQgOiBwaWMtPmZyYW1lX251bSwKLSAgICAgICAgLlBpY09yZGVyQ250ID0geyBwaWMtPmZpZWxk
X3BvY1swXSwgcGljLT5maWVsZF9wb2NbMV0gfSwKLSAgICAgICAgLmZsYWdzID0gKFN0ZFZpZGVv
RGVjb2RlSDI2NFJlZmVyZW5jZUluZm9GbGFncykgewotICAgICAgICAgICAgLnRvcF9maWVsZF9m
bGFnICAgID0gaXNfZmllbGQgPyAhIShwaWN0dXJlX3N0cnVjdHVyZSAmIFBJQ1RfVE9QX0ZJRUxE
KSAgICA6IDAsCi0gICAgICAgICAgICAuYm90dG9tX2ZpZWxkX2ZsYWcgPSBpc19maWVsZCA/ICEh
KHBpY3R1cmVfc3RydWN0dXJlICYgUElDVF9CT1RUT01fRklFTEQpIDogMCwKLSAgICAgICAgICAg
IC51c2VkX2Zvcl9sb25nX3Rlcm1fcmVmZXJlbmNlID0gcGljLT5yZWZlcmVuY2UgJiYgcGljLT5s
b25nX3JlZiwKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBmbGFncy5pc19ub25fZXhp
c3RpbmcgaXMgdXNlZCB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBwaWN0dXJlIGlzIG1hcmtlZCBh
cwotICAgICAgICAgICAgICog4oCcbm9uLWV4aXN0aW5n4oCdIGFzIGRlZmluZWQgaW4gc2VjdGlv
biA4LjIuNS4yIG9mIHRoZSBJVFUtVCBILjI2NCBTcGVjaWZpY2F0aW9uOwotICAgICAgICAgICAg
ICogOC4yLjUuMiBEZWNvZGluZyBwcm9jZXNzIGZvciBnYXBzIGluIGZyYW1lX251bQotICAgICAg
ICAgICAgICogY29ycmVzcG9uZHMgdG8gdGhlIGNvZGUgaW4gaDI2NF9zbGljZS5jOmgyNjRfZmll
bGRfc3RhcnQsCi0gICAgICAgICAgICAgKiB3aGljaCBzZXRzIHRoZSBpbnZhbGlkX2dhcCBmbGFn
IHdoZW4gZGVjb2RpbmcuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIC5pc19ub25fZXhp
c3RpbmcgPSBwaWMtPmludmFsaWRfZ2FwLAotICAgICAgICB9LAotICAgIH07Ci0KLSAgICAqdmto
MjY0X3JlZiA9IChWa1ZpZGVvRGVjb2RlSDI2NERwYlNsb3RJbmZvS0hSKSB7Ci0gICAgICAgIC5z
VHlwZSA9IFZLX1NUUlVDVFVSRV9UWVBFX1ZJREVPX0RFQ09ERV9IMjY0X0RQQl9TTE9UX0lORk9f
S0hSLAotICAgICAgICAucFN0ZFJlZmVyZW5jZUluZm8gPSBoMjY0X3JlZiwKLSAgICB9OwotCi0g
ICAgKnJlZiA9IChWa1ZpZGVvUGljdHVyZVJlc291cmNlSW5mb0tIUikgewotICAgICAgICAuc1R5
cGUgPSBWS19TVFJVQ1RVUkVfVFlQRV9WSURFT19QSUNUVVJFX1JFU09VUkNFX0lORk9fS0hSLAot
ICAgICAgICAuY29kZWRPZmZzZXQgPSAoVmtPZmZzZXQyRCl7IDAsIDAgfSwKLSAgICAgICAgLmNv
ZGVkRXh0ZW50ID0gKFZrRXh0ZW50MkQpeyBwaWMtPmYtPndpZHRoLCBwaWMtPmYtPmhlaWdodCB9
LAotICAgICAgICAuYmFzZUFycmF5TGF5ZXIgPSBjdHgtPmNvbW1vbi5sYXllcmVkX2RwYiA/IGRw
Yl9zbG90X2luZGV4IDogMCwKLSAgICAgICAgLmltYWdlVmlld0JpbmRpbmcgPSB2a3BpYy0+dmll
dy5yZWZbMF0sCi0gICAgfTsKLQotICAgICpyZWZfc2xvdCA9IChWa1ZpZGVvUmVmZXJlbmNlU2xv
dEluZm9LSFIpIHsKLSAgICAgICAgLnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfVklERU9fUkVG
RVJFTkNFX1NMT1RfSU5GT19LSFIsCi0gICAgICAgIC5wTmV4dCA9IHZraDI2NF9yZWYsCi0gICAg
ICAgIC5zbG90SW5kZXggPSBkcGJfc2xvdF9pbmRleCwKLSAgICAgICAgLnBQaWN0dXJlUmVzb3Vy
Y2UgPSByZWYsCi0gICAgfTsKLQotICAgIGlmIChyZWZfc3JjKQotICAgICAgICAqcmVmX3NyYyA9
IHBpYzsKLQotICAgIHJldHVybiAwOwotfQotCiBzdGF0aWMgU3RkVmlkZW9IMjY0TGV2ZWxJZGMg
Y29udmVydF90b192a19sZXZlbF9pZGMoaW50IGxldmVsX2lkYykKIHsKICAgICBzd2l0Y2ggKGxl
dmVsX2lkYykgewpAQCAtMzY5LDE4ICsyNzgsMTI0IEBAIHN0YXRpYyBpbnQgdmtfaDI2NF9jcmVh
dGVfcGFyYW1zKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZCdWZmZXJSZWYgKipidWYpCiAgICAg
cmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgdmtfaDI2NF9maWxsX3BpY3QoQVZDb2RlY0NvbnRl
eHQgKmF2Y3R4LCBIMjY0UGljdHVyZSAqKnJlZl9zcmMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFZrVmlkZW9SZWZlcmVuY2VTbG90SW5mb0tIUiAqcmVmX3Nsb3QsICAgICAgIC8qIE1h
aW4gc3RydWN0dXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZrVmlkZW9QaWN0
dXJlUmVzb3VyY2VJbmZvS0hSICpyZWYsICAgICAgICAgIC8qIEdvZXMgaW4gXiAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBWa1ZpZGVvRGVjb2RlSDI2NERwYlNsb3RJbmZvS0hSICp2
a2gyNjRfcmVmLCAvKiBHb2VzIGluIF4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U3RkVmlkZW9EZWNvZGVIMjY0UmVmZXJlbmNlSW5mbyAqaDI2NF9yZWYsICAgLyogR29lcyBpbiBe
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEgyNjRQaWN0dXJlICpwaWMsIGludCBp
c19jdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXNfZmllbGQsIGlu
dCBwaWN0dXJlX3N0cnVjdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRw
Yl9zbG90X2luZGV4KQoreworICAgIEZGVnVsa2FuRGVjb2RlQ29udGV4dCAqZGVjID0gYXZjdHgt
PmludGVybmFsLT5od2FjY2VsX3ByaXZfZGF0YTsKKyAgICBGRlZ1bGthbkRlY29kZVNoYXJlZCAq
Y3R4ID0gZGVjLT5zaGFyZWRfY3R4OworICAgIEZGVnVsa2FuRGVjb2RlUGljdHVyZSAqdmtwaWMg
PSBwaWMtPmh3YWNjZWxfcGljdHVyZV9wcml2YXRlOworCisgICAgaW50IGVyciA9IGZmX3ZrX2Rl
Y29kZV9wcmVwYXJlX2ZyYW1lKGRlYywgcGljLT5mLCB2a3BpYywgaXNfY3VycmVudCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjLT5kZWRpY2F0ZWRfZHBiKTsK
KyAgICBpZiAoZXJyIDwgMCkKKyAgICAgICAgcmV0dXJuIGVycjsKKworICAgICpoMjY0X3JlZiA9
IChTdGRWaWRlb0RlY29kZUgyNjRSZWZlcmVuY2VJbmZvKSB7CisgICAgICAgIC5GcmFtZU51bSA9
IHBpYy0+bG9uZ19yZWYgPyBwaWMtPnBpY19pZCA6IHBpYy0+ZnJhbWVfbnVtLAorICAgICAgICAu
UGljT3JkZXJDbnQgPSB7IHBpYy0+ZmllbGRfcG9jWzBdLCBwaWMtPmZpZWxkX3BvY1sxXSB9LAor
ICAgICAgICAuZmxhZ3MgPSAoU3RkVmlkZW9EZWNvZGVIMjY0UmVmZXJlbmNlSW5mb0ZsYWdzKSB7
CisgICAgICAgICAgICAudG9wX2ZpZWxkX2ZsYWcgICAgPSBpc19maWVsZCA/ICEhKHBpY3R1cmVf
c3RydWN0dXJlICYgUElDVF9UT1BfRklFTEQpICAgIDogMCwKKyAgICAgICAgICAgIC5ib3R0b21f
ZmllbGRfZmxhZyA9IGlzX2ZpZWxkID8gISEocGljdHVyZV9zdHJ1Y3R1cmUgJiBQSUNUX0JPVFRP
TV9GSUVMRCkgOiAwLAorICAgICAgICAgICAgLnVzZWRfZm9yX2xvbmdfdGVybV9yZWZlcmVuY2Ug
PSBwaWMtPnJlZmVyZW5jZSAmJiBwaWMtPmxvbmdfcmVmLAorICAgICAgICAgICAgLyoKKyAgICAg
ICAgICAgICAqIGZsYWdzLmlzX25vbl9leGlzdGluZyBpcyB1c2VkIHRvIGluZGljYXRlIHdoZXRo
ZXIgdGhlIHBpY3R1cmUgaXMgbWFya2VkIGFzCisgICAgICAgICAgICAgKiDigJxub24tZXhpc3Rp
bmfigJ0gYXMgZGVmaW5lZCBpbiBzZWN0aW9uIDguMi41LjIgb2YgdGhlIElUVS1UIEguMjY0IFNw
ZWNpZmljYXRpb247CisgICAgICAgICAgICAgKiA4LjIuNS4yIERlY29kaW5nIHByb2Nlc3MgZm9y
IGdhcHMgaW4gZnJhbWVfbnVtCisgICAgICAgICAgICAgKiBjb3JyZXNwb25kcyB0byB0aGUgY29k
ZSBpbiBoMjY0X3NsaWNlLmM6aDI2NF9maWVsZF9zdGFydCwKKyAgICAgICAgICAgICAqIHdoaWNo
IHNldHMgdGhlIGludmFsaWRfZ2FwIGZsYWcgd2hlbiBkZWNvZGluZy4KKyAgICAgICAgICAgICAq
LworICAgICAgICAgICAgLmlzX25vbl9leGlzdGluZyA9IHBpYy0+aW52YWxpZF9nYXAsCisgICAg
ICAgIH0sCisgICAgfTsKKworICAgICp2a2gyNjRfcmVmID0gKFZrVmlkZW9EZWNvZGVIMjY0RHBi
U2xvdEluZm9LSFIpIHsKKyAgICAgICAgLnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfVklERU9f
REVDT0RFX0gyNjRfRFBCX1NMT1RfSU5GT19LSFIsCisgICAgICAgIC5wU3RkUmVmZXJlbmNlSW5m
byA9IGgyNjRfcmVmLAorICAgIH07CisKKyAgICAqcmVmID0gKFZrVmlkZW9QaWN0dXJlUmVzb3Vy
Y2VJbmZvS0hSKSB7CisgICAgICAgIC5zVHlwZSA9IFZLX1NUUlVDVFVSRV9UWVBFX1ZJREVPX1BJ
Q1RVUkVfUkVTT1VSQ0VfSU5GT19LSFIsCisgICAgICAgIC5jb2RlZE9mZnNldCA9IChWa09mZnNl
dDJEKXsgMCwgMCB9LAorICAgICAgICAuY29kZWRFeHRlbnQgPSAoVmtFeHRlbnQyRCl7IHBpYy0+
Zi0+d2lkdGgsIHBpYy0+Zi0+aGVpZ2h0IH0sCisgICAgICAgIC5iYXNlQXJyYXlMYXllciA9IGN0
eC0+Y29tbW9uLmxheWVyZWRfZHBiID8gZHBiX3Nsb3RfaW5kZXggOiAwLAorICAgICAgICAuaW1h
Z2VWaWV3QmluZGluZyA9IHZrcGljLT52aWV3LnJlZlswXSwKKyAgICB9OworCisgICAgKnJlZl9z
bG90ID0gKFZrVmlkZW9SZWZlcmVuY2VTbG90SW5mb0tIUikgeworICAgICAgICAuc1R5cGUgPSBW
S19TVFJVQ1RVUkVfVFlQRV9WSURFT19SRUZFUkVOQ0VfU0xPVF9JTkZPX0tIUiwKKyAgICAgICAg
LnBOZXh0ID0gdmtoMjY0X3JlZiwKKyAgICAgICAgLnNsb3RJbmRleCA9IGRwYl9zbG90X2luZGV4
LAorICAgICAgICAucFBpY3R1cmVSZXNvdXJjZSA9IHJlZiwKKyAgICB9OworCisgICAgaWYgKHJl
Zl9zcmMpCisgICAgICAgICpyZWZfc3JjID0gcGljOworCisgICAgcmV0dXJuIDA7Cit9CisKIHN0
YXRpYyBpbnQgdmtfaDI2NF9zdGFydF9mcmFtZShBVkNvZGVjQ29udGV4dCAgICAgICAgICAqYXZj
dHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZfdW51c2VkIGNvbnN0IEFWQnVm
ZmVyUmVmICpidWZmZXJfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2X3Vu
dXNlZCBjb25zdCB1aW50OF90ICpidWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXZfdW51c2VkIHVpbnQzMl90ICAgICAgIHNpemUpCit7CisgICAgY29uc3QgSDI2NENvbnRl
eHQgKmggPSBhdmN0eC0+cHJpdl9kYXRhOworICAgIEgyNjRQaWN0dXJlICpwaWMgPSBoLT5jdXJf
cGljX3B0cjsKKyAgICBGRlZ1bGthbkRlY29kZVBpY3R1cmUgKnZwID0gcGljLT5od2FjY2VsX3Bp
Y3R1cmVfcHJpdmF0ZTsKKworICAgIHJldHVybiBmZl92a19kZWNvZGVfc3RhcnRfZnJhbWUoYXZj
dHgsIHZwLCBidWZmZXJfcmVmLCAwKTsKK30KKwordHlwZWRlZiBzdHJ1Y3QgSDI2NFZ1bGthbkRl
Y29kZVBhcmFtcyB7CisgICAgLyogQ3VycmVudCBwaWN0dXJlICovCisgICAgU3RkVmlkZW9EZWNv
ZGVIMjY0UmVmZXJlbmNlSW5mbyBoMjY0X3JlZjsKKyAgICBWa1ZpZGVvRGVjb2RlSDI2NERwYlNs
b3RJbmZvS0hSIHZraDI2NF9yZWY7CisKKyAgICAvKiBQaWN0dXJlIHJlZnMgKi8KKyAgICBIMjY0
UGljdHVyZSAgICAgICAgICAgICAgICAgICAgKnJlZl9zcmMgICAgW0gyNjRfTUFYX1BJQ1RVUkVf
Q09VTlRdOworICAgIFN0ZFZpZGVvRGVjb2RlSDI2NFJlZmVyZW5jZUluZm8gaDI2NF9yZWZzICBb
SDI2NF9NQVhfUElDVFVSRV9DT1VOVF07CisgICAgVmtWaWRlb0RlY29kZUgyNjREcGJTbG90SW5m
b0tIUiB2a2gyNjRfcmVmc1tIMjY0X01BWF9QSUNUVVJFX0NPVU5UXTsKKworICAgIC8qIEN1cnJl
bnQgcGljdHVyZSAoY29udGQuKSAqLworICAgIFN0ZFZpZGVvRGVjb2RlSDI2NFBpY3R1cmVJbmZv
ICAgaDI2NHBpYzsKKyAgICBWa1ZpZGVvRGVjb2RlSDI2NFBpY3R1cmVJbmZvS0hSIGgyNjRfcGlj
X2luZm87CisKKyAgICAvKiBDdXJyZW50IHBpY3R1cmUgKi8KKyAgICBWa1ZpZGVvUGljdHVyZVJl
c291cmNlSW5mb0tIUiAgIHJlZjsKKyAgICBWa1ZpZGVvUmVmZXJlbmNlU2xvdEluZm9LSFIgICAg
IHJlZl9zbG90OworCisgICAgLyogUGljdHVyZSByZWZzLiBIMjY0IGhhcyB0aGUgbWF4aW11bSBu
dW1iZXIgb2YgcmVmcyAoMzYpIG9mIGFueSBzdXBwb3J0ZWQgY29kZWMuICovCisgICAgVmtWaWRl
b1BpY3R1cmVSZXNvdXJjZUluZm9LSFIgICByZWZzICAgICBbMzZdOworICAgIFZrVmlkZW9SZWZl
cmVuY2VTbG90SW5mb0tIUiAgICAgcmVmX3Nsb3RzWzM2XTsKKworICAgIC8qIE1haW50ZW5hbmNl
IDIgKi8KKyNpZmRlZiBWS19LSFJfdmlkZW9fbWFpbnRlbmFuY2UyCisgICAgU3RkVmlkZW9IMjY0
U2NhbGluZ0xpc3RzIHZrc3BzX3NjYWxpbmc7CisgICAgU3RkVmlkZW9IMjY0SHJkUGFyYW1ldGVy
cyB2a3Nwc192dWlfaGVhZGVyOworICAgIFN0ZFZpZGVvSDI2NFNlcXVlbmNlUGFyYW1ldGVyU2V0
VnVpIHZrc3BzX3Z1aTsKKyAgICBTdGRWaWRlb0gyNjRTZXF1ZW5jZVBhcmFtZXRlclNldCB2a3Nw
czsKKyAgICBTdGRWaWRlb0gyNjRTY2FsaW5nTGlzdHMgdmtwcHNfc2NhbGluZzsKKyAgICBTdGRW
aWRlb0gyNjRQaWN0dXJlUGFyYW1ldGVyU2V0IHZrcHBzOworICAgIFZrVmlkZW9EZWNvZGVIMjY0
SW5saW5lU2Vzc2lvblBhcmFtZXRlcnNJbmZvS0hSIGgyNjRfcGFyYW1zOworI2VuZGlmCisKKyAg
ICAvKiBNYWluIGRlY29kaW5nIHN0cnVjdCAqLworICAgIFZrVmlkZW9EZWNvZGVJbmZvS0hSICAg
ICAgICAgICAgZGVjb2RlX2luZm87Cit9IEgyNjRWdWxrYW5EZWNvZGVQYXJhbXM7CisKK3N0YXRp
YyBpbnQgdmtfaDI2NF9maWxsX3BhcmFtcyhBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEZGVnVsa2Fu
RGVjb2RlUGljdHVyZSAqdnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSDI2NFZ1
bGthbkRlY29kZVBhcmFtcyAqaHApCiB7CiAgICAgaW50IGVycjsKICAgICBpbnQgZHBiX3Nsb3Rf
aW5kZXggPSAwOwogICAgIEgyNjRDb250ZXh0ICpoID0gYXZjdHgtPnByaXZfZGF0YTsKLQogICAg
IEgyNjRQaWN0dXJlICpwaWMgPSBoLT5jdXJfcGljX3B0cjsKLSAgICBIMjY0VnVsa2FuRGVjb2Rl
UGljdHVyZSAqaHAgPSBwaWMtPmh3YWNjZWxfcGljdHVyZV9wcml2YXRlOwotICAgIEZGVnVsa2Fu
RGVjb2RlUGljdHVyZSAqdnAgPSAmaHAtPnZwOwogCiAgICAgLyogRmlsbCBpbiBtYWluIHNsb3Qg
Ki8KICAgICBkcGJfc2xvdF9pbmRleCA9IDA7CkBAIC00NDUsMTMgKzQ2MCwxMyBAQCBzdGF0aWMg
aW50IHZrX2gyNjRfc3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRleHQgICAgICAgICAgKmF2Y3R4LAog
ICAgIGhwLT5oMjY0cGljID0gKFN0ZFZpZGVvRGVjb2RlSDI2NFBpY3R1cmVJbmZvKSB7CiAgICAg
ICAgIC5zZXFfcGFyYW1ldGVyX3NldF9pZCA9IHBpYy0+cHBzLT5zcHNfaWQsCiAgICAgICAgIC5w
aWNfcGFyYW1ldGVyX3NldF9pZCA9IHBpYy0+cHBzLT5wcHNfaWQsCi0gICAgICAgIC5mcmFtZV9u
dW0gPSAwLCAgLyogU2V0IGxhdGVyICovCi0gICAgICAgIC5pZHJfcGljX2lkID0gMCwgLyogU2V0
IGxhdGVyICovCisgICAgICAgIC5mcmFtZV9udW0gPSBoLT5zbGljZV9jdHhbMF0uZnJhbWVfbnVt
LAorICAgICAgICAuaWRyX3BpY19pZCA9IGgtPnNsaWNlX2N0eFswXS5pZHJfcGljX2lkLAogICAg
ICAgICAuUGljT3JkZXJDbnRbMF0gPSBwaWMtPmZpZWxkX3BvY1swXSwKICAgICAgICAgLlBpY09y
ZGVyQ250WzFdID0gcGljLT5maWVsZF9wb2NbMV0sCiAgICAgICAgIC5mbGFncyA9IChTdGRWaWRl
b0RlY29kZUgyNjRQaWN0dXJlSW5mb0ZsYWdzKSB7CisgICAgICAgICAgICAuaXNfaW50cmEgPSB2
cC0+aW50cmFfcGljX2ZsYWcsCiAgICAgICAgICAgICAuZmllbGRfcGljX2ZsYWcgPSBGSUVMRF9Q
SUNUVVJFKGgpLAotICAgICAgICAgICAgLmlzX2ludHJhID0gMSwgLyogU2V0IGxhdGVyICovCiAg
ICAgICAgICAgICAuSWRyUGljRmxhZyA9IGgtPnBpY3R1cmVfaWRyLAogICAgICAgICAgICAgLmJv
dHRvbV9maWVsZF9mbGFnID0gaC0+cGljdHVyZV9zdHJ1Y3R1cmUgIT0gUElDVF9GUkFNRSAmJgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaC0+cGljdHVyZV9zdHJ1Y3R1cmUgJiBQ
SUNUX0JPVFRPTV9GSUVMRCwKQEAgLTQ2Myw2ICs0NzgsOCBAQCBzdGF0aWMgaW50IHZrX2gyNjRf
c3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRleHQgICAgICAgICAgKmF2Y3R4LAogICAgIGhwLT5oMjY0
X3BpY19pbmZvID0gKFZrVmlkZW9EZWNvZGVIMjY0UGljdHVyZUluZm9LSFIpIHsKICAgICAgICAg
LnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfVklERU9fREVDT0RFX0gyNjRfUElDVFVSRV9JTkZP
X0tIUiwKICAgICAgICAgLnBTdGRQaWN0dXJlSW5mbyA9ICZocC0+aDI2NHBpYywKKyAgICAgICAg
LnBTbGljZU9mZnNldHMgPSB2cC0+c2xpY2Vfb2Zmc2V0cywKKyAgICAgICAgLnNsaWNlQ291bnQg
PSB2cC0+bmJfc2xpY2VzLAogICAgIH07CiAKICAgICBocC0+ZGVjb2RlX2luZm8gPSAoVmtWaWRl
b0RlY29kZUluZm9LSFIpIHsKQEAgLTQ4NCwxMDAgKzUwMSw4OSBAQCBzdGF0aWMgaW50IHZrX2gy
NjRfc3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRleHQgICAgICAgICAgKmF2Y3R4LAogICAgIHJldHVy
biAwOwogfQogCi1zdGF0aWMgaW50IHZrX2gyNjRfZGVjb2RlX3NsaWNlKEFWQ29kZWNDb250ZXh0
ICphdmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAg
KmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICBz
aXplKQotewotICAgIGNvbnN0IEgyNjRDb250ZXh0ICpoID0gYXZjdHgtPnByaXZfZGF0YTsKLSAg
ICBjb25zdCBIMjY0U2xpY2VDb250ZXh0ICpzbCAgPSAmaC0+c2xpY2VfY3R4WzBdOwotICAgIEgy
NjRWdWxrYW5EZWNvZGVQaWN0dXJlICpocCA9IGgtPmN1cl9waWNfcHRyLT5od2FjY2VsX3BpY3R1
cmVfcHJpdmF0ZTsKLSAgICBGRlZ1bGthbkRlY29kZVBpY3R1cmUgKnZwID0gJmhwLT52cDsKLQot
ICAgIGludCBlcnIgPSBmZl92a19kZWNvZGVfYWRkX3NsaWNlKGF2Y3R4LCB2cCwgZGF0YSwgc2l6
ZSwgMSk7Ci0gICAgaWYgKGVyciA8IDApCi0gICAgICAgIHJldHVybiBlcnI7Ci0KLSAgICBocC0+
aDI2NHBpYy5mcmFtZV9udW0gPSBzbC0+ZnJhbWVfbnVtOwotICAgIGhwLT5oMjY0cGljLmlkcl9w
aWNfaWQgPSBzbC0+aWRyX3BpY19pZDsKLQotICAgIC8qIEZyYW1lIGlzIG9ubHkgaW50cmEgb2Yg
YWxsIHNsaWNlcyBhcmUgbWFya2VkIGFzIGludHJhICovCi0gICAgaWYgKHNsLT5zbGljZV90eXBl
ICE9IEFWX1BJQ1RVUkVfVFlQRV9JICYmIHNsLT5zbGljZV90eXBlICE9IEFWX1BJQ1RVUkVfVFlQ
RV9TSSkKLSAgICAgICAgaHAtPmgyNjRwaWMuZmxhZ3MuaXNfaW50cmEgPSAwOwotCi0gICAgcmV0
dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgdmtfaDI2NF9lbmRfZnJhbWUoQVZDb2RlY0NvbnRleHQg
KmF2Y3R4KQogeworICAgIGludCBlcnI7CiAgICAgY29uc3QgSDI2NENvbnRleHQgKmggPSBhdmN0
eC0+cHJpdl9kYXRhOwogICAgIEZGVnVsa2FuRGVjb2RlQ29udGV4dCAqZGVjID0gYXZjdHgtPmlu
dGVybmFsLT5od2FjY2VsX3ByaXZfZGF0YTsKICAgICBGRlZ1bGthbkRlY29kZVNoYXJlZCAqY3R4
ID0gZGVjLT5zaGFyZWRfY3R4OwogCiAgICAgSDI2NFBpY3R1cmUgKnBpYyA9IGgtPmN1cl9waWNf
cHRyOwotICAgIEgyNjRWdWxrYW5EZWNvZGVQaWN0dXJlICpocCA9IHBpYy0+aHdhY2NlbF9waWN0
dXJlX3ByaXZhdGU7Ci0gICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICp2cCA9ICZocC0+dnA7Cisg
ICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICp2cCA9IHBpYy0+aHdhY2NlbF9waWN0dXJlX3ByaXZh
dGU7CiAgICAgRkZWdWxrYW5EZWNvZGVQaWN0dXJlICpydnBbSDI2NF9NQVhfUElDVFVSRV9DT1VO
VF0gPSB7IDAgfTsKICAgICBBVkZyYW1lICpyYXZbSDI2NF9NQVhfUElDVFVSRV9DT1VOVF0gPSB7
IDAgfTsKIAotI2lmZGVmIFZLX0tIUl92aWRlb19tYWludGVuYW5jZTIKLSAgICBTdGRWaWRlb0gy
NjRTY2FsaW5nTGlzdHMgdmtzcHNfc2NhbGluZzsKLSAgICBTdGRWaWRlb0gyNjRIcmRQYXJhbWV0
ZXJzIHZrc3BzX3Z1aV9oZWFkZXI7Ci0gICAgU3RkVmlkZW9IMjY0U2VxdWVuY2VQYXJhbWV0ZXJT
ZXRWdWkgdmtzcHNfdnVpOwotICAgIFN0ZFZpZGVvSDI2NFNlcXVlbmNlUGFyYW1ldGVyU2V0IHZr
c3BzOwotICAgIFN0ZFZpZGVvSDI2NFNjYWxpbmdMaXN0cyB2a3Bwc19zY2FsaW5nOwotICAgIFN0
ZFZpZGVvSDI2NFBpY3R1cmVQYXJhbWV0ZXJTZXQgdmtwcHM7Ci0gICAgVmtWaWRlb0RlY29kZUgy
NjRJbmxpbmVTZXNzaW9uUGFyYW1ldGVyc0luZm9LSFIgaDI2NF9wYXJhbXM7CisgICAgSDI2NFZ1
bGthbkRlY29kZVBhcmFtcyBocCA9IHsgMCB9OworCisgICAgaWYgKCF2cC0+bmJfc2xpY2VzKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIGVyciA9IHZrX2gyNjRfZmlsbF9wYXJhbXMoYXZjdHgs
IHZwLCAmaHApOworICAgIGlmIChlcnIgPCAwKQorICAgICAgICByZXR1cm4gZXJyOwogCisjaWZk
ZWYgVktfS0hSX3ZpZGVvX21haW50ZW5hbmNlMgogICAgIGlmIChjdHgtPnMuZXh0ZW5zaW9ucyAm
IEZGX1ZLX0VYVF9WSURFT19NQUlOVEVOQU5DRV8yKSB7Ci0gICAgICAgIHNldF9zcHMoaC0+cHMu
c3BzLCAmdmtzcHNfc2NhbGluZywKLSAgICAgICAgICAgICAgICAmdmtzcHNfdnVpX2hlYWRlciwg
JnZrc3BzX3Z1aSwgJnZrc3BzKTsKLSAgICAgICAgc2V0X3BwcyhoLT5wcy5wcHMsIGgtPnBzLnNw
cywgJnZrcHBzX3NjYWxpbmcsICZ2a3Bwcyk7Ci0gICAgICAgIGgyNjRfcGFyYW1zID0gKFZrVmlk
ZW9EZWNvZGVIMjY0SW5saW5lU2Vzc2lvblBhcmFtZXRlcnNJbmZvS0hSKSB7CisgICAgICAgIHNl
dF9zcHMoaC0+cHMuc3BzLCAmaHAudmtzcHNfc2NhbGluZywKKyAgICAgICAgICAgICAgICAmaHAu
dmtzcHNfdnVpX2hlYWRlciwgJmhwLnZrc3BzX3Z1aSwgJmhwLnZrc3BzKTsKKyAgICAgICAgc2V0
X3BwcyhoLT5wcy5wcHMsIGgtPnBzLnNwcywgJmhwLnZrcHBzX3NjYWxpbmcsICZocC52a3Bwcyk7
CisgICAgICAgIGhwLmgyNjRfcGFyYW1zID0gKFZrVmlkZW9EZWNvZGVIMjY0SW5saW5lU2Vzc2lv
blBhcmFtZXRlcnNJbmZvS0hSKSB7CiAgICAgICAgICAgICAuc1R5cGUgPSBWS19TVFJVQ1RVUkVf
VFlQRV9WSURFT19ERUNPREVfSDI2NF9JTkxJTkVfU0VTU0lPTl9QQVJBTUVURVJTX0lORk9fS0hS
LAotICAgICAgICAgICAgLnBTdGRTUFMgPSAmdmtzcHMsCi0gICAgICAgICAgICAucFN0ZFBQUyA9
ICZ2a3BwcywKKyAgICAgICAgICAgIC5wU3RkU1BTID0gJmhwLnZrc3BzLAorICAgICAgICAgICAg
LnBTdGRQUFMgPSAmaHAudmtwcHMsCiAgICAgICAgIH07Ci0gICAgICAgIGhwLT5oMjY0X3BpY19p
bmZvLnBOZXh0ID0gJmgyNjRfcGFyYW1zOwotICAgIH0KKyAgICAgICAgaHAuaDI2NF9waWNfaW5m
by5wTmV4dCA9ICZocC5oMjY0X3BhcmFtczsKKyAgICB9IGVsc2UKICNlbmRpZgogCi0gICAgaHAt
PmgyNjRfcGljX2luZm8ucFNsaWNlT2Zmc2V0cyA9IHZwLT5zbGljZV9vZmZzZXRzOwotICAgIGhw
LT5oMjY0X3BpY19pbmZvLnNsaWNlQ291bnQgPSB2cC0+bmJfc2xpY2VzOwotICAgIGlmICghaHAt
PmgyNjRfcGljX2luZm8uc2xpY2VDb3VudCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAo
IWRlYy0+c2Vzc2lvbl9wYXJhbXMgJiYKLSAgICAgICAgIShjdHgtPnMuZXh0ZW5zaW9ucyAmIEZG
X1ZLX0VYVF9WSURFT19NQUlOVEVOQU5DRV8yKSkgeworICAgIGlmICghZGVjLT5zZXNzaW9uX3Bh
cmFtcykgewogICAgICAgICBpbnQgZXJyID0gdmtfaDI2NF9jcmVhdGVfcGFyYW1zKGF2Y3R4LCAm
ZGVjLT5zZXNzaW9uX3BhcmFtcyk7CiAgICAgICAgIGlmIChlcnIgPCAwKQogICAgICAgICAgICAg
cmV0dXJuIGVycjsKIAotICAgICAgICBocC0+aDI2NHBpYy5zZXFfcGFyYW1ldGVyX3NldF9pZCA9
IHBpYy0+cHBzLT5zcHNfaWQ7Ci0gICAgICAgIGhwLT5oMjY0cGljLnBpY19wYXJhbWV0ZXJfc2V0
X2lkID0gcGljLT5wcHMtPnBwc19pZDsKKyAgICAgICAgaHAuaDI2NHBpYy5zZXFfcGFyYW1ldGVy
X3NldF9pZCA9IHBpYy0+cHBzLT5zcHNfaWQ7CisgICAgICAgIGhwLmgyNjRwaWMucGljX3BhcmFt
ZXRlcl9zZXRfaWQgPSBwaWMtPnBwcy0+cHBzX2lkOwogICAgIH0KIAotICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgaHAtPmRlY29kZV9pbmZvLnJlZmVyZW5jZVNsb3RDb3VudDsgaSsrKSB7Ci0gICAg
ICAgIEgyNjRQaWN0dXJlICpycCA9IGhwLT5yZWZfc3JjW2ldOwotICAgICAgICBIMjY0VnVsa2Fu
RGVjb2RlUGljdHVyZSAqcmhwID0gcnAtPmh3YWNjZWxfcGljdHVyZV9wcml2YXRlOwotCi0gICAg
ICAgIHJ2cFtpXSA9ICZyaHAtPnZwOwotICAgICAgICByYXZbaV0gPSBocC0+cmVmX3NyY1tpXS0+
ZjsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGhwLmRlY29kZV9pbmZvLnJlZmVyZW5jZVNsb3RD
b3VudDsgaSsrKSB7CisgICAgICAgIEgyNjRQaWN0dXJlICpycCA9IGhwLnJlZl9zcmNbaV07Cisg
ICAgICAgIHJ2cFtpXSA9IHJwLT5od2FjY2VsX3BpY3R1cmVfcHJpdmF0ZTsKKyAgICAgICAgcmF2
W2ldID0gaHAucmVmX3NyY1tpXS0+ZjsKICAgICB9CiAKICAgICBhdl9sb2coYXZjdHgsIEFWX0xP
R19WRVJCT1NFLCAiRGVjb2RpbmcgZnJhbWUsICUiU0laRV9TUEVDSUZJRVIiIGJ5dGVzLCAlaSBz
bGljZXNcbiIsCi0gICAgICAgICAgIHZwLT5zbGljZXNfc2l6ZSwgaHAtPmgyNjRfcGljX2luZm8u
c2xpY2VDb3VudCk7CisgICAgICAgICAgIHZwLT5zbGljZXNfc2l6ZSwgaHAuaDI2NF9waWNfaW5m
by5zbGljZUNvdW50KTsKIAotICAgIHJldHVybiBmZl92a19kZWNvZGVfZnJhbWUoYXZjdHgsICZo
cC0+ZGVjb2RlX2luZm8sCisgICAgcmV0dXJuIGZmX3ZrX2RlY29kZV9mcmFtZShhdmN0eCwgJmhw
LmRlY29kZV9pbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljLT5mLCB2cCwg
cmF2LCBydnApOwogfQogCitzdGF0aWMgaW50IHZrX2gyNjRfZGVjb2RlX3NsaWNlKEFWQ29kZWND
b250ZXh0ICphdmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlu
dDhfdCAgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAg
ICAgICBzaXplKQoreworICAgIGNvbnN0IEgyNjRDb250ZXh0ICpoID0gYXZjdHgtPnByaXZfZGF0
YTsKKyAgICBjb25zdCBIMjY0U2xpY2VDb250ZXh0ICpzbCAgPSAmaC0+c2xpY2VfY3R4WzBdOwor
ICAgIEZGVnVsa2FuRGVjb2RlUGljdHVyZSAqdnAgPSBoLT5jdXJfcGljX3B0ci0+aHdhY2NlbF9w
aWN0dXJlX3ByaXZhdGU7CisKKyAgICBpbnQgZXJyID0gZmZfdmtfZGVjb2RlX2FkZF9zbGljZShh
dmN0eCwgdnAsIGRhdGEsIHNpemUsIDEpOworICAgIGlmIChlcnIgPCAwKQorICAgICAgICByZXR1
cm4gZXJyOworCisgICAgLyogRnJhbWUgaXMgb25seSBpbnRyYSBvZiBhbGwgc2xpY2VzIGFyZSBt
YXJrZWQgYXMgaW50cmEgKi8KKyAgICBpZiAoc2wtPnNsaWNlX3R5cGUgIT0gQVZfUElDVFVSRV9U
WVBFX0kgJiYgc2wtPnNsaWNlX3R5cGUgIT0gQVZfUElDVFVSRV9UWVBFX1NJKQorICAgICAgICB2
cC0+aW50cmFfcGljX2ZsYWcgPSAwOworCisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyB2b2lk
IHZrX2gyNjRfZnJlZV9mcmFtZV9wcml2KEFWUmVmU3RydWN0T3BhcXVlIF9od2N0eCwgdm9pZCAq
ZGF0YSkKIHsKICAgICBBVkhXRGV2aWNlQ29udGV4dCAqaHdjdHggPSBfaHdjdHgubmM7Ci0gICAg
SDI2NFZ1bGthbkRlY29kZVBpY3R1cmUgKmhwID0gZGF0YTsKKyAgICBGRlZ1bGthbkRlY29kZVBp
Y3R1cmUgKnZwID0gZGF0YTsKIAogICAgIC8qIEZyZWUgZnJhbWUgcmVzb3VyY2VzLCB0aGlzIGFs
c28gZGVzdHJveXMgdGhlIHNlc3Npb24gcGFyYW1ldGVycy4gKi8KLSAgICBmZl92a19kZWNvZGVf
ZnJlZV9mcmFtZShod2N0eCwgJmhwLT52cCk7CisgICAgZmZfdmtfZGVjb2RlX2ZyZWVfZnJhbWUo
aHdjdHgsIHZwKTsKIH0KIAogY29uc3QgRkZIV0FjY2VsIGZmX2gyNjRfdnVsa2FuX2h3YWNjZWwg
PSB7CkBAIC01ODksNyArNTk1LDcgQEAgY29uc3QgRkZIV0FjY2VsIGZmX2gyNjRfdnVsa2FuX2h3
YWNjZWwgPSB7CiAgICAgLmRlY29kZV9zbGljZSAgICAgICAgICA9ICZ2a19oMjY0X2RlY29kZV9z
bGljZSwKICAgICAuZW5kX2ZyYW1lICAgICAgICAgICAgID0gJnZrX2gyNjRfZW5kX2ZyYW1lLAog
ICAgIC5mcmVlX2ZyYW1lX3ByaXYgICAgICAgPSAmdmtfaDI2NF9mcmVlX2ZyYW1lX3ByaXYsCi0g
ICAgLmZyYW1lX3ByaXZfZGF0YV9zaXplICA9IHNpemVvZihIMjY0VnVsa2FuRGVjb2RlUGljdHVy
ZSksCisgICAgLmZyYW1lX3ByaXZfZGF0YV9zaXplICA9IHNpemVvZihGRlZ1bGthbkRlY29kZVBp
Y3R1cmUpLAogICAgIC5pbml0ICAgICAgICAgICAgICAgICAgPSAmZmZfdmtfZGVjb2RlX2luaXQs
CiAgICAgLnVwZGF0ZV90aHJlYWRfY29udGV4dCA9ICZmZl92a191cGRhdGVfdGhyZWFkX2NvbnRl
eHQsCiAgICAgLmRlY29kZV9wYXJhbXMgICAgICAgICA9ICZmZl92a19wYXJhbXNfaW52YWxpZGF0
ZSwKLS0gCjIuNDkuMApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0
dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJz
Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZm
bXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==