From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E406CC433F5 for ; Fri, 22 Apr 2022 15:25:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5poeHW7mmIEdnTn6FiPnT086lubzBZSyjNwg7P/IS4g=; b=YMhh5p/5qtt/+3 n0vGBOmuexKnZwzqIUIZ164XrE/5ratsiecn+eiU+L2gbig9Cb2broc+5gCPgERU3RQvSD/R/ipgw Ofepo/HG1Imgkm6tNDbL5qKGcTy5nF8LAlLna9OgobEBqwrZxPH6xVuCjv3dsXzzLxeE3ut2+wPer 0vfs671MdzlsngqADyV5epU4lUnjUDLsGwPGSZaJOn0iS1FluiepSOdXPdg5wsNy4nLu7EvefxMnt bpBO0DnUX5D6jXpaT4kSUaZjSEjRIVgXfYSA7K+O2LMaLI9IB7aCPL+zx1c4XosN8mQnE4ADUDD2Q BI6/vf+Z03ZQu0bgCmGA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nhv9i-0016d6-FV; Fri, 22 Apr 2022 15:25:10 +0000 Received: from bhuna.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e3e3]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nhv8i-0016E7-P0; Fri, 22 Apr 2022 15:24:16 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: nicolas) with ESMTPSA id EDB2E1F46A0A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1650641046; bh=dK6R0SIkmSyoaIUyv1bXXxHpwHaAoY34kpWRaFZLAaE=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=Pxe+BcI8NNOOyGmM9P9TERcoCDXKC0v6xO9c0YcoRuwXezBSsG6kdCUa1DDfuEKHZ oDH/8RNAN/cs/hS3CLty3X4iXOc+j4IJHiykOgMjRWKv1Vtx0qn5dK2EPSiLadZ0Z4 tyAcwFGNTn/vDqzQa8KBWrnz3u5VuGBpLy67DPJOJR6iRclZL0F2ZvFt5rQKBDHpjC R4q7BJ8YVuAU4mWWnYFs3XB0WRUnFvv6R13P83mNWUyUGLCfcG+M84nWPTTWUMFBB4 EUeYFbGa0CGJvIr/ZqnVDXLBVCCh5zeWDBM0rIqB5M8hvP+dZr7oYylIwmYYen/foc ysKIw4AxEsARA== Message-ID: <341b153e10a7a0d2257dda8c9b2ee6a5ebea5472.camel@collabora.com> Subject: Re: [PATCH v3 05/24] media: h264: Use v4l2_h264_reference for reflist From: Nicolas Dufresne To: Hans Verkuil , Tiffany Lin , Andrew-CT Chen , Mauro Carvalho Chehab , Ezequiel Garcia , Philipp Zabel , Greg Kroah-Hartman , Heiko Stuebner , Matthias Brugger Cc: kernel@collabora.com, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Date: Fri, 22 Apr 2022 11:23:55 -0400 In-Reply-To: <89d26979-6ba1-ef12-d39d-f71d80051505@xs4all.nl> References: <20220405204426.259074-1-nicolas.dufresne@collabora.com> <20220405204426.259074-6-nicolas.dufresne@collabora.com> <89d26979-6ba1-ef12-d39d-f71d80051505@xs4all.nl> User-Agent: Evolution 3.44.0 (3.44.0-1.fc36) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220422_082409_175113_0B3B7D21 X-CRM114-Status: GOOD ( 31.52 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org TGUgdmVuZHJlZGkgMjIgYXZyaWwgMjAyMiDDoCAwNzo0MiArMDIwMCwgSGFucyBWZXJrdWlsIGEg w6ljcml0wqA6Cj4gSGkgTmljb2xhcywKPiAKPiBPbiAwNS8wNC8yMDIyIDIyOjQ0LCBOaWNvbGFz IER1ZnJlc25lIHdyb3RlOgo+ID4gSW4gcHJlcGFyYXRpb24gZm9yIGFkZGluZyBmaWVsZCBkZWNv ZGluZyBzdXBwb3J0LCBjb252ZXJ0IHRoZSBieXRlIGFycmF5cwo+ID4gZm9yIHJlZmxpc3QgaW50 byBhcnJheSBvZiBzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZS4gVGhhdCBzdHJ1Y3Qgd2lsbAo+ ID4gYWxsb3cgdXMgdG8gbWFyayB3aGljaCBmaWVsZCBvZiB0aGUgcmVmZXJlbmNlIHBpY3R1cmUg aXMgYmVpbmcgcmVmZXJlbmNlZC4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogTmljb2xhcyBEdWZy ZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgo+ID4gUmV2aWV3ZWQtYnk6IEV6 ZXF1aWVsIEdhcmNpYSA8ZXplcXVpZWxAdmFuZ3VhcmRpYXN1ci5jb20uYXI+Cj4gPiAtLS0KPiA+ ICAuLi4vbWVkaWF0ZWsvdmNvZGVjL3ZkZWMvdmRlY19oMjY0X3JlcV9pZi5jICAgfCAxNyArKyst Cj4gCj4gQWZ0ZXIgYXBwbHlpbmcgdGhpcyBwYXRjaCBidWlsZGluZyB0aGUgbWVkaWF0ZWsgZHJp dmVyIGZhaWxzOgo+IAo+IGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbWVkaWF0ZWsvdmNvZGVjL3Zk ZWMvdmRlY19oMjY0X3JlcV9pZi5jOiBJbiBmdW5jdGlvbiDigJhnZXRfcmVmX2xpc3TigJk6Cj4g ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9tZWRpYXRlay92Y29kZWMvdmRlYy92ZGVjX2gyNjRfcmVx X2lmLmM6NDUxOjMyOiBlcnJvcjog4oCYc3RydWN0IHY0bDJfaDI2NF9yZWZsaXN0X2J1aWxkZXLi gJkgaGFzIG5vIG1lbWJlciBuYW1lZCDigJhpbmRleOKAmQo+ICAgNDUxIHwgICAgICAgICAgICAg ICAgIHJlZl9saXN0W2ldID0gYi0+aW5kZXg7Cj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn4KClNvcnJ5IGFib3V0IHRoaXMsIEkgbm9ybWFsbHkgdHJ5IHRvIGVuYWJs ZSBhbGwgdGhlIGRyaXZlcnMsIGJ1dCBmYWlsZWQgYXQgaXQsCmFuZCBmb3Jnb3QgYWJvdXQgdGhp cy4gSSdsbCBmaXggYW5kIEkgd2lsbCBldmVuIHRlc3QgZm9yIHJlZ3Jlc3Npb25zIGFzIEkgbm93 CmhhdmUgc29tZSBoYXJkd2FyZS4KCj4gZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9tZWRpYXRlay92 Y29kZWMvdmRlYy92ZGVjX2gyNjRfcmVxX2lmLmM6IEluIGZ1bmN0aW9uIOKAmGdldF92ZGVjX2Rl Y29kZV9wYXJhbWV0ZXJz4oCZOgo+IGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbWVkaWF0ZWsvdmNv ZGVjL3ZkZWMvdmRlY19oMjY0X3JlcV9pZi5jOjQ4NTo1NDogZXJyb3I6IHBhc3NpbmcgYXJndW1l bnQgMiBvZiDigJh2NGwyX2gyNjRfYnVpbGRfcF9yZWZfbGlzdOKAmSBmcm9tIGluY29tcGF0aWJs ZSBwb2ludGVyIHR5cGUgWy1XZXJyb3I9aW5jb21wYXRpYmxlLXBvaW50ZXItdHlwZXNdCj4gICA0 ODUgfCAgICAgICAgIHY0bDJfaDI2NF9idWlsZF9wX3JlZl9saXN0KCZyZWZsaXN0X2J1aWxkZXIs IHAwX3JlZmxpc3QpOwo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+Cj4gICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggKiB7YWthIHVu c2lnbmVkIGNoYXIgKn0KPiAKPiAoZHJvcHBlZCBhIGxvdCBtb3JlIGVycm9ycykKPiAKPiBEaXR0 byBmb3IgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9udmlkaWEvdGVncmEtdmRlL2gyNjQuYzoKPiAK PiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL252aWRpYS90ZWdyYS12ZGUvaDI2NC5jOiBJbiBmdW5j dGlvbiDigJh0ZWdyYV92ZGVfaDI2NF9zZXR1cF9mcmFtZXPigJk6Cj4gZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9udmlkaWEvdGVncmEtdmRlL2gyNjQuYzo4MDY6NTc6IGVycm9yOiBwYXNzaW5nIGFy Z3VtZW50IDIgb2Yg4oCYdjRsMl9oMjY0X2J1aWxkX2JfcmVmX2xpc3Rz4oCZIGZyb20gaW5jb21w YXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlc10K PiAgIDgwNiB8ICAgICAgICAgICAgICAgICB2NGwyX2gyNjRfYnVpbGRfYl9yZWZfbGlzdHMoJmIs IHJlZmxpc3RzLmIwLCByZWZsaXN0cy5iMSk7Cj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fl5+fgo+ICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHU4ICoge2FrYSB1bnNpZ25lZCBjaGFyICp9Cj4gSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGRy aXZlcnMvbWVkaWEvcGxhdGZvcm0vbnZpZGlhL3RlZ3JhLXZkZS9oMjY0LmM6MTQ6Cj4gLi9pbmNs dWRlL21lZGlhL3Y0bDItaDI2NC5oOjY2OjU3OiBub3RlOiBleHBlY3RlZCDigJhzdHJ1Y3QgdjRs Ml9oMjY0X3JlZmVyZW5jZSAq4oCZIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmHU4ICrigJkg e2FrYSDigJh1bnNpZ25lZCBjaGFyICrigJl9Cj4gICAgNjYgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHY0bDJfaDI2NF9yZWZlcmVuY2UgKmIwX3JlZmxpc3QsCj4gICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fl5+fn5+fn5+fn4KPiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL252aWRpYS90ZWdyYS12ZGUvaDI2 NC5jOjgwNjo3MDogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMyBvZiDigJh2NGwyX2gyNjRfYnVp bGRfYl9yZWZfbGlzdHPigJkgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9y PWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzXQo+ICAgODA2IHwgICAgICAgICAgICAgICAgIHY0 bDJfaDI2NF9idWlsZF9iX3JlZl9saXN0cygmYiwgcmVmbGlzdHMuYjAsIHJlZmxpc3RzLmIxKTsK PiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB+fn5+fn5+fl5+fgo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdTggKiB7YWthIHVuc2lnbmVkIGNoYXIgKn0KPiBJbiBmaWxlIGluY2x1 ZGVkIGZyb20gZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9udmlkaWEvdGVncmEtdmRlL2gyNjQuYzox NDoKPiAuL2luY2x1ZGUvbWVkaWEvdjRsMi1oMjY0Lmg6Njc6NTc6IG5vdGU6IGV4cGVjdGVkIOKA mHN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlICrigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg 4oCYdTggKuKAmSB7YWthIOKAmHVuc2lnbmVkIGNoYXIgKuKAmX0KPiAgICA2NyB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSAqYjFfcmVmbGlz dCk7Cj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fl5+fn5+fn5+fn4KPiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL252aWRpYS90 ZWdyYS12ZGUvaDI2NC5jOjgwOTo1NjogZXJyb3I6IHBhc3NpbmcgYXJndW1lbnQgMiBvZiDigJh2 NGwyX2gyNjRfYnVpbGRfcF9yZWZfbGlzdOKAmSBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5 cGUgWy1XZXJyb3I9aW5jb21wYXRpYmxlLXBvaW50ZXItdHlwZXNdCj4gICA4MDkgfCAgICAgICAg ICAgICAgICAgdjRsMl9oMjY0X2J1aWxkX3BfcmVmX2xpc3QoJmIsIHJlZmxpc3RzLnApOwo+ICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+ fn5+fl5+Cj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHU4ICoge2FrYSB1bnNpZ25lZCBjaGFyICp9Cj4gSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbnZpZGlhL3RlZ3JhLXZk ZS9oMjY0LmM6MTQ6Cj4gLi9pbmNsdWRlL21lZGlhL3Y0bDItaDI2NC5oOjgzOjU2OiBub3RlOiBl eHBlY3RlZCDigJhzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSAq4oCZIGJ1dCBhcmd1bWVudCBp cyBvZiB0eXBlIOKAmHU4ICrigJkge2FrYSDigJh1bnNpZ25lZCBjaGFyICrigJl9Cj4gICAgODMg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSAq cmVmbGlzdCk7Cj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+Xn5+fn5+fgo+IAo+IEl0IGxvb2tzIGxpa2UgeW91IGRpZG4ndCBi dWlsZCB0aGUgdGVncmEtdmRlIGRyaXZlciBlaXRoZXIuCgpEcml2ZXIgd2FzIGFkZGVkIHJlY2Vu dGx5LCBJIHdpbGwgZW5hYmxlIGFuZCBwb3J0IGl0LCBJJ2xsIGNoZWNrIHdpdGggRG1pdHJ5IGlm CmhlIGNhbiB2YWxpZGF0ZSwgdGhvdWdoIEkgd29uJ3QgaW5jbHVkIGludGVybGFjZWQgc3VwcG9y dCB0aGVyZSwgSSdsbCBqdXN0IHBvcnQKdG8gdGhlIG5ldyBzdHJ1Y3R1cmUuCgo+IAo+IFJlZ2Fy ZHMsCj4gCj4gCUhhbnMKPiAKPiA+ICBkcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWgyNjQu YyAgICAgICAgICAgfCAzMyArKysrLS0tCj4gPiAgLi4uL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hh bnRyb19nMV9oMjY0X2RlYy5jIHwgMzggKysrLS0tLQo+ID4gIGRyaXZlcnMvc3RhZ2luZy9tZWRp YS9oYW50cm8vaGFudHJvX2h3LmggICAgICB8ICA2ICstCj4gPiAgLi4uL21lZGlhL2hhbnRyby9y b2NrY2hpcF92cHUyX2h3X2gyNjRfZGVjLmMgIHwgOTggKysrKysrKysrLS0tLS0tLS0tLQo+ID4g IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLWgyNjQuYyAgICB8IDEyICstLQo+ ID4gIGluY2x1ZGUvbWVkaWEvdjRsMi1oMjY0LmggICAgICAgICAgICAgICAgICAgICB8IDE5ICsr LS0KPiA+ICA3IGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRpb25zKCspLCAxMDcgZGVsZXRpb25z KC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL21lZGlhdGVr L3Zjb2RlYy92ZGVjL3ZkZWNfaDI2NF9yZXFfaWYuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v bWVkaWF0ZWsvdmNvZGVjL3ZkZWMvdmRlY19oMjY0X3JlcV9pZi5jCj4gPiBpbmRleCA0MzU0MmRl MTFlOWMuLjcyYzU5OWUwNWE0NyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vbWVkaWF0ZWsvdmNvZGVjL3ZkZWMvdmRlY19oMjY0X3JlcV9pZi5jCj4gPiArKysgYi9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL21lZGlhdGVrL3Zjb2RlYy92ZGVjL3ZkZWNfaDI2NF9yZXFfaWYu Ywo+ID4gQEAgLTQ0Miw5ICs0NDIsMTYgQEAgc3RhdGljIHZvaWQgdXBkYXRlX2RwYihjb25zdCBz dHJ1Y3QgdjRsMl9jdHJsX2gyNjRfZGVjb2RlX3BhcmFtcyAqZGVjX3BhcmFtLAo+ID4gIC8qCj4g PiAgICogVGhlIGZpcm13YXJlIGV4cGVjdHMgdW51c2VkIHJlZmxpc3QgZW50cmllcyB0byBoYXZl IHRoZSB2YWx1ZSAweDIwLgo+ID4gICAqLwo+ID4gLXN0YXRpYyB2b2lkIGZpeHVwX3JlZl9saXN0 KHU4ICpyZWZfbGlzdCwgc2l6ZV90IG51bV92YWxpZCkKPiA+ICtzdGF0aWMgdm9pZCBnZXRfcmVm X2xpc3QodTggKnJlZl9saXN0LCBzdHJ1Y3QgdjRsMl9oMjY0X3JlZmxpc3RfYnVpbGRlciAqYikK PiA+ICB7Cj4gPiAtCW1lbXNldCgmcmVmX2xpc3RbbnVtX3ZhbGlkXSwgMHgyMCwgMzIgLSBudW1f dmFsaWQpOwo+ID4gKwl1MzIgaTsKPiA+ICsKPiA+ICsJLyogRklYTUUgbWFyayB0aGUgcmVmZXJl bmNlIHBhcml0eSAqLwo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgYi0+bnVtX3ZhbGlkOyBpKyspCj4g PiArCQlyZWZfbGlzdFtpXSA9IGItPmluZGV4Owo+ID4gKwo+ID4gKwlmb3IgKDsgaSA8IDMyOyBp KyspCj4gPiArCQlyZWZfbGlzdFtpXSA9IDB4MjA7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2 b2lkIGdldF92ZGVjX2RlY29kZV9wYXJhbWV0ZXJzKHN0cnVjdCB2ZGVjX2gyNjRfc2xpY2VfaW5z dCAqaW5zdCkKPiA+IEBAIC00NzgsOSArNDg1LDkgQEAgc3RhdGljIHZvaWQgZ2V0X3ZkZWNfZGVj b2RlX3BhcmFtZXRlcnMoc3RydWN0IHZkZWNfaDI2NF9zbGljZV9pbnN0ICppbnN0KQo+ID4gIAl2 NGwyX2gyNjRfYnVpbGRfcF9yZWZfbGlzdCgmcmVmbGlzdF9idWlsZGVyLCBwMF9yZWZsaXN0KTsK PiA+ICAJdjRsMl9oMjY0X2J1aWxkX2JfcmVmX2xpc3RzKCZyZWZsaXN0X2J1aWxkZXIsIGIwX3Jl Zmxpc3QsIGIxX3JlZmxpc3QpOwo+ID4gIAkvKiBBZGFwdCB0aGUgYnVpbHQgbGlzdHMgdG8gdGhl IGZpcm13YXJlJ3MgZXhwZWN0YXRpb25zICovCj4gPiAtCWZpeHVwX3JlZl9saXN0KHAwX3JlZmxp c3QsIHJlZmxpc3RfYnVpbGRlci5udW1fdmFsaWQpOwo+ID4gLQlmaXh1cF9yZWZfbGlzdChiMF9y ZWZsaXN0LCByZWZsaXN0X2J1aWxkZXIubnVtX3ZhbGlkKTsKPiA+IC0JZml4dXBfcmVmX2xpc3Qo YjFfcmVmbGlzdCwgcmVmbGlzdF9idWlsZGVyLm51bV92YWxpZCk7Cj4gPiArCWdldF9yZWZfbGlz dChwMF9yZWZsaXN0LCByZWZsaXN0X2J1aWxkZXIpOwo+ID4gKwlnZXRfcmVmX2xpc3QoYjBfcmVm bGlzdCwgcmVmbGlzdF9idWlsZGVyKTsKPiA+ICsJZ2V0X3JlZl9saXN0KGIxX3JlZmxpc3QsIHJl Zmxpc3RfYnVpbGRlcik7Cj4gPiAgCj4gPiAgCW1lbWNweSgmaW5zdC0+dnNpX2N0eC5oMjY0X3Ns aWNlX3BhcmFtcywgc2xpY2VfcGFyYW0sCj4gPiAgCSAgICAgICBzaXplb2YoaW5zdC0+dnNpX2N0 eC5oMjY0X3NsaWNlX3BhcmFtcykpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdjRs Mi1jb3JlL3Y0bDItaDI2NC5jIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1oMjY0LmMK PiA+IGluZGV4IGFjNDc1MTlhOWZiZS4uYWZiZmNmNzhlZmU0IDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1oMjY0LmMKPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEv djRsMi1jb3JlL3Y0bDItaDI2NC5jCj4gPiBAQCAtNzUsMTIgKzc1LDEyIEBAIHY0bDJfaDI2NF9p bml0X3JlZmxpc3RfYnVpbGRlcihzdHJ1Y3QgdjRsMl9oMjY0X3JlZmxpc3RfYnVpbGRlciAqYiwK PiA+ICAJCQlwaWNfb3JkZXJfY291bnQgPSBkcGJbaV0udG9wX2ZpZWxkX29yZGVyX2NudDsKPiA+ ICAKPiA+ICAJCWItPnJlZnNbaV0ucGljX29yZGVyX2NvdW50ID0gcGljX29yZGVyX2NvdW50Owo+ ID4gLQkJYi0+dW5vcmRlcmVkX3JlZmxpc3RbYi0+bnVtX3ZhbGlkXSA9IGk7Cj4gPiArCQliLT51 bm9yZGVyZWRfcmVmbGlzdFtiLT5udW1fdmFsaWRdLmluZGV4ID0gaTsKPiA+ICAJCWItPm51bV92 YWxpZCsrOwo+ID4gIAl9Cj4gPiAgCj4gPiAgCWZvciAoaSA9IGItPm51bV92YWxpZDsgaSA8IEFS UkFZX1NJWkUoYi0+dW5vcmRlcmVkX3JlZmxpc3QpOyBpKyspCj4gPiAtCQliLT51bm9yZGVyZWRf cmVmbGlzdFtpXSA9IGk7Cj4gPiArCQliLT51bm9yZGVyZWRfcmVmbGlzdFtpXS5pbmRleCA9IGk7 Cj4gPiAgfQo+ID4gIEVYUE9SVF9TWU1CT0xfR1BMKHY0bDJfaDI2NF9pbml0X3JlZmxpc3RfYnVp bGRlcik7Cj4gPiAgCj4gPiBAQCAtOTAsOCArOTAsOCBAQCBzdGF0aWMgaW50IHY0bDJfaDI2NF9w X3JlZl9saXN0X2NtcChjb25zdCB2b2lkICpwdHJhLCBjb25zdCB2b2lkICpwdHJiLAo+ID4gIAlj b25zdCBzdHJ1Y3QgdjRsMl9oMjY0X3JlZmxpc3RfYnVpbGRlciAqYnVpbGRlciA9IGRhdGE7Cj4g PiAgCXU4IGlkeGEsIGlkeGI7Cj4gPiAgCj4gPiAtCWlkeGEgPSAqKCh1OCAqKXB0cmEpOwo+ID4g LQlpZHhiID0gKigodTggKilwdHJiKTsKPiA+ICsJaWR4YSA9ICgoc3RydWN0IHY0bDJfaDI2NF9y ZWZlcmVuY2UgKilwdHJhKS0+aW5kZXg7Cj4gPiArCWlkeGIgPSAoKHN0cnVjdCB2NGwyX2gyNjRf cmVmZXJlbmNlICopcHRyYiktPmluZGV4Owo+ID4gIAo+ID4gIAlpZiAoV0FSTl9PTihpZHhhID49 IFY0TDJfSDI2NF9OVU1fRFBCX0VOVFJJRVMgfHwKPiA+ICAJCSAgICBpZHhiID49IFY0TDJfSDI2 NF9OVU1fRFBCX0VOVFJJRVMpKQo+ID4gQEAgLTEyNSw4ICsxMjUsOCBAQCBzdGF0aWMgaW50IHY0 bDJfaDI2NF9iMF9yZWZfbGlzdF9jbXAoY29uc3Qgdm9pZCAqcHRyYSwgY29uc3Qgdm9pZCAqcHRy YiwKPiA+ICAJczMyIHBvY2EsIHBvY2I7Cj4gPiAgCXU4IGlkeGEsIGlkeGI7Cj4gPiAgCj4gPiAt CWlkeGEgPSAqKCh1OCAqKXB0cmEpOwo+ID4gLQlpZHhiID0gKigodTggKilwdHJiKTsKPiA+ICsJ aWR4YSA9ICgoc3RydWN0IHY0bDJfaDI2NF9yZWZlcmVuY2UgKilwdHJhKS0+aW5kZXg7Cj4gPiAr CWlkeGIgPSAoKHN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlICopcHRyYiktPmluZGV4Owo+ID4g IAo+ID4gIAlpZiAoV0FSTl9PTihpZHhhID49IFY0TDJfSDI2NF9OVU1fRFBCX0VOVFJJRVMgfHwK PiA+ICAJCSAgICBpZHhiID49IFY0TDJfSDI2NF9OVU1fRFBCX0VOVFJJRVMpKQo+ID4gQEAgLTE3 MCw4ICsxNzAsOCBAQCBzdGF0aWMgaW50IHY0bDJfaDI2NF9iMV9yZWZfbGlzdF9jbXAoY29uc3Qg dm9pZCAqcHRyYSwgY29uc3Qgdm9pZCAqcHRyYiwKPiA+ICAJczMyIHBvY2EsIHBvY2I7Cj4gPiAg CXU4IGlkeGEsIGlkeGI7Cj4gPiAgCj4gPiAtCWlkeGEgPSAqKCh1OCAqKXB0cmEpOwo+ID4gLQlp ZHhiID0gKigodTggKilwdHJiKTsKPiA+ICsJaWR4YSA9ICgoc3RydWN0IHY0bDJfaDI2NF9yZWZl cmVuY2UgKilwdHJhKS0+aW5kZXg7Cj4gPiArCWlkeGIgPSAoKHN0cnVjdCB2NGwyX2gyNjRfcmVm ZXJlbmNlICopcHRyYiktPmluZGV4Owo+ID4gIAo+ID4gIAlpZiAoV0FSTl9PTihpZHhhID49IFY0 TDJfSDI2NF9OVU1fRFBCX0VOVFJJRVMgfHwKPiA+ICAJCSAgICBpZHhiID49IFY0TDJfSDI2NF9O VU1fRFBCX0VOVFJJRVMpKQo+ID4gQEAgLTIxMiw4ICsyMTIsOCBAQCBzdGF0aWMgaW50IHY0bDJf aDI2NF9iMV9yZWZfbGlzdF9jbXAoY29uc3Qgdm9pZCAqcHRyYSwgY29uc3Qgdm9pZCAqcHRyYiwK PiA+ICAgKiB2NGwyX2gyNjRfYnVpbGRfcF9yZWZfbGlzdCgpIC0gQnVpbGQgdGhlIFAgcmVmZXJl bmNlIGxpc3QKPiA+ICAgKgo+ID4gICAqIEBidWlsZGVyOiByZWZlcmVuY2UgbGlzdCBidWlsZGVy IGNvbnRleHQKPiA+IC0gKiBAcmVmbGlzdDogMTYtYnl0ZXMgYXJyYXkgdXNlZCB0byBzdG9yZSB0 aGUgUCByZWZlcmVuY2UgbGlzdC4gRWFjaCBlbnRyeQo+ID4gLSAqCSAgICAgaXMgYW4gaW5kZXgg aW4gdGhlIERQQgo+ID4gKyAqIEByZWZsaXN0OiAxNiBzaXplZCBhcnJheSB1c2VkIHRvIHN0b3Jl IHRoZSBQIHJlZmVyZW5jZSBsaXN0LiBFYWNoIGVudHJ5Cj4gPiArICoJICAgICBpcyBhIHY0bDJf aDI2NF9yZWZlcmVuY2Ugc3RydWN0dXJlCj4gPiAgICoKPiA+ICAgKiBUaGlzIGZ1bmN0aW9ucyBi dWlsZHMgdGhlIFAgcmVmZXJlbmNlIGxpc3RzLiBUaGlzIHByb2NlZHVyZSBpcyBkZXNjcmliZSBp bgo+ID4gICAqIHNlY3Rpb24gJzguMi40IERlY29kaW5nIHByb2Nlc3MgZm9yIHJlZmVyZW5jZSBw aWN0dXJlIGxpc3RzIGNvbnN0cnVjdGlvbicKPiA+IEBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGlj IGludCB2NGwyX2gyNjRfYjFfcmVmX2xpc3RfY21wKGNvbnN0IHZvaWQgKnB0cmEsIGNvbnN0IHZv aWQgKnB0cmIsCj4gPiAgICovCj4gPiAgdm9pZAo+ID4gIHY0bDJfaDI2NF9idWlsZF9wX3JlZl9s aXN0KGNvbnN0IHN0cnVjdCB2NGwyX2gyNjRfcmVmbGlzdF9idWlsZGVyICpidWlsZGVyLAo+ID4g LQkJCSAgIHU4ICpyZWZsaXN0KQo+ID4gKwkJCSAgIHN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNl ICpyZWZsaXN0KQo+ID4gIHsKPiA+ICAJbWVtY3B5KHJlZmxpc3QsIGJ1aWxkZXItPnVub3JkZXJl ZF9yZWZsaXN0LAo+ID4gIAkgICAgICAgc2l6ZW9mKGJ1aWxkZXItPnVub3JkZXJlZF9yZWZsaXN0 WzBdKSAqIGJ1aWxkZXItPm51bV92YWxpZCk7Cj4gPiBAQCAtMjM1LDEwICsyMzUsMTAgQEAgRVhQ T1JUX1NZTUJPTF9HUEwodjRsMl9oMjY0X2J1aWxkX3BfcmVmX2xpc3QpOwo+ID4gICAqIHY0bDJf aDI2NF9idWlsZF9iX3JlZl9saXN0cygpIC0gQnVpbGQgdGhlIEIwL0IxIHJlZmVyZW5jZSBsaXN0 cwo+ID4gICAqCj4gPiAgICogQGJ1aWxkZXI6IHJlZmVyZW5jZSBsaXN0IGJ1aWxkZXIgY29udGV4 dAo+ID4gLSAqIEBiMF9yZWZsaXN0OiAxNi1ieXRlcyBhcnJheSB1c2VkIHRvIHN0b3JlIHRoZSBC MCByZWZlcmVuY2UgbGlzdC4gRWFjaCBlbnRyeQo+ID4gLSAqCQlpcyBhbiBpbmRleCBpbiB0aGUg RFBCCj4gPiAtICogQGIxX3JlZmxpc3Q6IDE2LWJ5dGVzIGFycmF5IHVzZWQgdG8gc3RvcmUgdGhl IEIxIHJlZmVyZW5jZSBsaXN0LiBFYWNoIGVudHJ5Cj4gPiAtICoJCWlzIGFuIGluZGV4IGluIHRo ZSBEUEIKPiA+ICsgKiBAYjBfcmVmbGlzdDogMTYgc2l6ZWQgYXJyYXkgdXNlZCB0byBzdG9yZSB0 aGUgQjAgcmVmZXJlbmNlIGxpc3QuIEVhY2ggZW50cnkKPiA+ICsgKgkJaXMgYSB2NGwyX2gyNjRf cmVmZXJlbmNlIHN0cnVjdHVyZQo+ID4gKyAqIEBiMV9yZWZsaXN0OiAxNiBzaXplZCBhcnJheSB1 c2VkIHRvIHN0b3JlIHRoZSBCMSByZWZlcmVuY2UgbGlzdC4gRWFjaCBlbnRyeQo+ID4gKyAqCQlp cyBhIHY0bDJfaDI2NF9yZWZlcmVuY2Ugc3RydWN0dXJlCj4gPiAgICoKPiA+ICAgKiBUaGlzIGZ1 bmN0aW9ucyBidWlsZHMgdGhlIEIwL0IxIHJlZmVyZW5jZSBsaXN0cy4gVGhpcyBwcm9jZWR1cmUg aXMgZGVzY3JpYmVkCj4gPiAgICogaW4gc2VjdGlvbiAnOC4yLjQgRGVjb2RpbmcgcHJvY2VzcyBm b3IgcmVmZXJlbmNlIHBpY3R1cmUgbGlzdHMgY29uc3RydWN0aW9uJwo+ID4gQEAgLTI0Nyw3ICsy NDcsOCBAQCBFWFBPUlRfU1lNQk9MX0dQTCh2NGwyX2gyNjRfYnVpbGRfcF9yZWZfbGlzdCk7Cj4g PiAgICovCj4gPiAgdm9pZAo+ID4gIHY0bDJfaDI2NF9idWlsZF9iX3JlZl9saXN0cyhjb25zdCBz dHJ1Y3QgdjRsMl9oMjY0X3JlZmxpc3RfYnVpbGRlciAqYnVpbGRlciwKPiA+IC0JCQkgICAgdTgg KmIwX3JlZmxpc3QsIHU4ICpiMV9yZWZsaXN0KQo+ID4gKwkJCSAgICBzdHJ1Y3QgdjRsMl9oMjY0 X3JlZmVyZW5jZSAqYjBfcmVmbGlzdCwKPiA+ICsJCQkgICAgc3RydWN0IHY0bDJfaDI2NF9yZWZl cmVuY2UgKmIxX3JlZmxpc3QpCj4gPiAgewo+ID4gIAltZW1jcHkoYjBfcmVmbGlzdCwgYnVpbGRl ci0+dW5vcmRlcmVkX3JlZmxpc3QsCj4gPiAgCSAgICAgICBzaXplb2YoYnVpbGRlci0+dW5vcmRl cmVkX3JlZmxpc3RbMF0pICogYnVpbGRlci0+bnVtX3ZhbGlkKTsKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMV9oMjY0X2RlYy5jIGIvZHJpdmVy cy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzFfaDI2NF9kZWMuYwo+ID4gaW5kZXggZjQ5 ZGJmYjhhODQzLi45ZGU3ZjA1ZWZmMmEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcv bWVkaWEvaGFudHJvL2hhbnRyb19nMV9oMjY0X2RlYy5jCj4gPiArKysgYi9kcml2ZXJzL3N0YWdp bmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMV9oMjY0X2RlYy5jCj4gPiBAQCAtMTI2LDcgKzEyNiw3 IEBAIHN0YXRpYyB2b2lkIHNldF9wYXJhbXMoc3RydWN0IGhhbnRyb19jdHggKmN0eCwgc3RydWN0 IHZiMl92NGwyX2J1ZmZlciAqc3JjX2J1ZikKPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBzZXRfcmVm KHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gPiAgewo+ID4gLQljb25zdCB1OCAqYjBfcmVmbGlz dCwgKmIxX3JlZmxpc3QsICpwX3JlZmxpc3Q7Cj4gPiArCWNvbnN0IHN0cnVjdCB2NGwyX2gyNjRf cmVmZXJlbmNlICpiMF9yZWZsaXN0LCAqYjFfcmVmbGlzdCwgKnBfcmVmbGlzdDsKPiA+ICAJc3Ry dWN0IGhhbnRyb19kZXYgKnZwdSA9IGN0eC0+ZGV2Owo+ID4gIAlpbnQgcmVnX251bTsKPiA+ICAJ dTMyIHJlZzsKPiA+IEBAIC0xNTcsMTIgKzE1NywxMiBAQCBzdGF0aWMgdm9pZCBzZXRfcmVmKHN0 cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gPiAgCSAqLwo+ID4gIAlyZWdfbnVtID0gMDsKPiA+ICAJ Zm9yIChpID0gMDsgaSA8IDE1OyBpICs9IDMpIHsKPiA+IC0JCXJlZyA9IEcxX1JFR19CRF9SRUZf UElDX0JJTklUX1JMSVNUX0YwKGIwX3JlZmxpc3RbaV0pIHwKPiA+IC0JCSAgICAgIEcxX1JFR19C RF9SRUZfUElDX0JJTklUX1JMSVNUX0YxKGIwX3JlZmxpc3RbaSArIDFdKSB8Cj4gPiAtCQkgICAg ICBHMV9SRUdfQkRfUkVGX1BJQ19CSU5JVF9STElTVF9GMihiMF9yZWZsaXN0W2kgKyAyXSkgfAo+ ID4gLQkJICAgICAgRzFfUkVHX0JEX1JFRl9QSUNfQklOSVRfUkxJU1RfQjAoYjFfcmVmbGlzdFtp XSkgfAo+ID4gLQkJICAgICAgRzFfUkVHX0JEX1JFRl9QSUNfQklOSVRfUkxJU1RfQjEoYjFfcmVm bGlzdFtpICsgMV0pIHwKPiA+IC0JCSAgICAgIEcxX1JFR19CRF9SRUZfUElDX0JJTklUX1JMSVNU X0IyKGIxX3JlZmxpc3RbaSArIDJdKTsKPiA+ICsJCXJlZyA9IEcxX1JFR19CRF9SRUZfUElDX0JJ TklUX1JMSVNUX0YwKGIwX3JlZmxpc3RbaV0uaW5kZXgpIHwKPiA+ICsJCSAgICAgIEcxX1JFR19C RF9SRUZfUElDX0JJTklUX1JMSVNUX0YxKGIwX3JlZmxpc3RbaSArIDFdLmluZGV4KSB8Cj4gPiAr CQkgICAgICBHMV9SRUdfQkRfUkVGX1BJQ19CSU5JVF9STElTVF9GMihiMF9yZWZsaXN0W2kgKyAy XS5pbmRleCkgfAo+ID4gKwkJICAgICAgRzFfUkVHX0JEX1JFRl9QSUNfQklOSVRfUkxJU1RfQjAo YjFfcmVmbGlzdFtpXS5pbmRleCkgfAo+ID4gKwkJICAgICAgRzFfUkVHX0JEX1JFRl9QSUNfQklO SVRfUkxJU1RfQjEoYjFfcmVmbGlzdFtpICsgMV0uaW5kZXgpIHwKPiA+ICsJCSAgICAgIEcxX1JF R19CRF9SRUZfUElDX0JJTklUX1JMSVNUX0IyKGIxX3JlZmxpc3RbaSArIDJdLmluZGV4KTsKPiA+ ICAJCXZkcHVfd3JpdGVfcmVsYXhlZCh2cHUsIHJlZywgRzFfUkVHX0JEX1JFRl9QSUMocmVnX251 bSsrKSk7Cj4gPiAgCX0KPiA+ICAKPiA+IEBAIC0xNzEsMTIgKzE3MSwxMiBAQCBzdGF0aWMgdm9p ZCBzZXRfcmVmKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gPiAgCSAqIG9mIGZvcndhcmQgYW5k IGJhY2t3YXJkIHJlZmVyZW5jZSBwaWN0dXJlIGxpc3RzIGFuZCBmaXJzdCA0IGVudHJpZXMKPiA+ ICAJICogb2YgUCBmb3J3YXJkIHBpY3R1cmUgbGlzdC4KPiA+ICAJICovCj4gPiAtCXJlZyA9IEcx X1JFR19CRF9QX1JFRl9QSUNfQklOSVRfUkxJU1RfRjE1KGIwX3JlZmxpc3RbMTVdKSB8Cj4gPiAt CSAgICAgIEcxX1JFR19CRF9QX1JFRl9QSUNfQklOSVRfUkxJU1RfQjE1KGIxX3JlZmxpc3RbMTVd KSB8Cj4gPiAtCSAgICAgIEcxX1JFR19CRF9QX1JFRl9QSUNfUElOSVRfUkxJU1RfRjAocF9yZWZs aXN0WzBdKSB8Cj4gPiAtCSAgICAgIEcxX1JFR19CRF9QX1JFRl9QSUNfUElOSVRfUkxJU1RfRjEo cF9yZWZsaXN0WzFdKSB8Cj4gPiAtCSAgICAgIEcxX1JFR19CRF9QX1JFRl9QSUNfUElOSVRfUkxJ U1RfRjIocF9yZWZsaXN0WzJdKSB8Cj4gPiAtCSAgICAgIEcxX1JFR19CRF9QX1JFRl9QSUNfUElO SVRfUkxJU1RfRjMocF9yZWZsaXN0WzNdKTsKPiA+ICsJcmVnID0gRzFfUkVHX0JEX1BfUkVGX1BJ Q19CSU5JVF9STElTVF9GMTUoYjBfcmVmbGlzdFsxNV0uaW5kZXgpIHwKPiA+ICsJICAgICAgRzFf UkVHX0JEX1BfUkVGX1BJQ19CSU5JVF9STElTVF9CMTUoYjFfcmVmbGlzdFsxNV0uaW5kZXgpIHwK PiA+ICsJICAgICAgRzFfUkVHX0JEX1BfUkVGX1BJQ19QSU5JVF9STElTVF9GMChwX3JlZmxpc3Rb MF0uaW5kZXgpIHwKPiA+ICsJICAgICAgRzFfUkVHX0JEX1BfUkVGX1BJQ19QSU5JVF9STElTVF9G MShwX3JlZmxpc3RbMV0uaW5kZXgpIHwKPiA+ICsJICAgICAgRzFfUkVHX0JEX1BfUkVGX1BJQ19Q SU5JVF9STElTVF9GMihwX3JlZmxpc3RbMl0uaW5kZXgpIHwKPiA+ICsJICAgICAgRzFfUkVHX0JE X1BfUkVGX1BJQ19QSU5JVF9STElTVF9GMyhwX3JlZmxpc3RbM10uaW5kZXgpOwo+ID4gIAl2ZHB1 X3dyaXRlX3JlbGF4ZWQodnB1LCByZWcsIEcxX1JFR19CRF9QX1JFRl9QSUMpOwo+ID4gIAo+ID4g IAkvKgo+ID4gQEAgLTE4NSwxMiArMTg1LDEyIEBAIHN0YXRpYyB2b2lkIHNldF9yZWYoc3RydWN0 IGhhbnRyb19jdHggKmN0eCkKPiA+ICAJICovCj4gPiAgCXJlZ19udW0gPSAwOwo+ID4gIAlmb3Ig KGkgPSA0OyBpIDwgSEFOVFJPX0gyNjRfRFBCX1NJWkU7IGkgKz0gNikgewo+ID4gLQkJcmVnID0g RzFfUkVHX0ZXRF9QSUNfUElOSVRfUkxJU1RfRjAocF9yZWZsaXN0W2ldKSB8Cj4gPiAtCQkgICAg ICBHMV9SRUdfRldEX1BJQ19QSU5JVF9STElTVF9GMShwX3JlZmxpc3RbaSArIDFdKSB8Cj4gPiAt CQkgICAgICBHMV9SRUdfRldEX1BJQ19QSU5JVF9STElTVF9GMihwX3JlZmxpc3RbaSArIDJdKSB8 Cj4gPiAtCQkgICAgICBHMV9SRUdfRldEX1BJQ19QSU5JVF9STElTVF9GMyhwX3JlZmxpc3RbaSAr IDNdKSB8Cj4gPiAtCQkgICAgICBHMV9SRUdfRldEX1BJQ19QSU5JVF9STElTVF9GNChwX3JlZmxp c3RbaSArIDRdKSB8Cj4gPiAtCQkgICAgICBHMV9SRUdfRldEX1BJQ19QSU5JVF9STElTVF9GNShw X3JlZmxpc3RbaSArIDVdKTsKPiA+ICsJCXJlZyA9IEcxX1JFR19GV0RfUElDX1BJTklUX1JMSVNU X0YwKHBfcmVmbGlzdFtpXS5pbmRleCkgfAo+ID4gKwkJICAgICAgRzFfUkVHX0ZXRF9QSUNfUElO SVRfUkxJU1RfRjEocF9yZWZsaXN0W2kgKyAxXS5pbmRleCkgfAo+ID4gKwkJICAgICAgRzFfUkVH X0ZXRF9QSUNfUElOSVRfUkxJU1RfRjIocF9yZWZsaXN0W2kgKyAyXS5pbmRleCkgfAo+ID4gKwkJ ICAgICAgRzFfUkVHX0ZXRF9QSUNfUElOSVRfUkxJU1RfRjMocF9yZWZsaXN0W2kgKyAzXS5pbmRl eCkgfAo+ID4gKwkJICAgICAgRzFfUkVHX0ZXRF9QSUNfUElOSVRfUkxJU1RfRjQocF9yZWZsaXN0 W2kgKyA0XS5pbmRleCkgfAo+ID4gKwkJICAgICAgRzFfUkVHX0ZXRF9QSUNfUElOSVRfUkxJU1Rf RjUocF9yZWZsaXN0W2kgKyA1XS5pbmRleCk7Cj4gPiAgCQl2ZHB1X3dyaXRlX3JlbGF4ZWQodnB1 LCByZWcsIEcxX1JFR19GV0RfUElDKHJlZ19udW0rKykpOwo+ID4gIAl9Cj4gPiAgCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaCBiL2RyaXZl cnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3LmgKPiA+IGluZGV4IGVkMDE4ZTI5M2Jh MC4uMmJjNmI4ZjA4OGY1IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hh bnRyby9oYW50cm9faHcuaAo+ID4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9o YW50cm9faHcuaAo+ID4gQEAgLTY5LDkgKzY5LDkgQEAgc3RydWN0IGhhbnRyb19oMjY0X2RlY19j dHJscyB7Cj4gPiAgICogQGIxOgkJQjEgcmVmbGlzdAo+ID4gICAqLwo+ID4gIHN0cnVjdCBoYW50 cm9faDI2NF9kZWNfcmVmbGlzdHMgewo+ID4gLQl1OCBwW0hBTlRST19IMjY0X0RQQl9TSVpFXTsK PiA+IC0JdTggYjBbSEFOVFJPX0gyNjRfRFBCX1NJWkVdOwo+ID4gLQl1OCBiMVtIQU5UUk9fSDI2 NF9EUEJfU0laRV07Cj4gPiArCXN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlIHBbSEFOVFJPX0gy NjRfRFBCX1NJWkVdOwo+ID4gKwlzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSBiMFtIQU5UUk9f SDI2NF9EUEJfU0laRV07Cj4gPiArCXN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlIGIxW0hBTlRS T19IMjY0X0RQQl9TSVpFXTsKPiA+ICB9Owo+ID4gIAo+ID4gIC8qKgo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vcm9ja2NoaXBfdnB1Ml9od19oMjY0X2RlYy5j IGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9yb2NrY2hpcF92cHUyX2h3X2gyNjRfZGVj LmMKPiA+IGluZGV4IDY0YTYzMzA0NzVlYi4uNDZjMWE4M2JjYzRlIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9yb2NrY2hpcF92cHUyX2h3X2gyNjRfZGVjLmMK PiA+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vcm9ja2NoaXBfdnB1Ml9od19o MjY0X2RlYy5jCj4gPiBAQCAtMjk4LDcgKzI5OCw3IEBAIHN0YXRpYyB2b2lkIHNldF9wYXJhbXMo c3RydWN0IGhhbnRyb19jdHggKmN0eCwgc3RydWN0IHZiMl92NGwyX2J1ZmZlciAqc3JjX2J1ZikK PiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBzZXRfcmVmKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4g PiAgewo+ID4gLQljb25zdCB1OCAqYjBfcmVmbGlzdCwgKmIxX3JlZmxpc3QsICpwX3JlZmxpc3Q7 Cj4gPiArCWNvbnN0IHN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlICpiMF9yZWZsaXN0LCAqYjFf cmVmbGlzdCwgKnBfcmVmbGlzdDsKPiA+ICAJc3RydWN0IGhhbnRyb19kZXYgKnZwdSA9IGN0eC0+ ZGV2Owo+ID4gIAl1MzIgcmVnOwo+ID4gIAlpbnQgaTsKPiA+IEBAIC0zMDcsMjAgKzMwNywyMCBA QCBzdGF0aWMgdm9pZCBzZXRfcmVmKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gPiAgCWIxX3Jl Zmxpc3QgPSBjdHgtPmgyNjRfZGVjLnJlZmxpc3RzLmIxOwo+ID4gIAlwX3JlZmxpc3QgPSBjdHgt PmgyNjRfZGVjLnJlZmxpc3RzLnA7Cj4gPiAgCj4gPiAtCXJlZyA9IFZEUFVfUkVHX1BJTklUX1JM SVNUX0Y5KHBfcmVmbGlzdFs5XSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19QSU5JVF9STElTVF9G OChwX3JlZmxpc3RbOF0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjcocF9y ZWZsaXN0WzddKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX1BJTklUX1JMSVNUX0Y2KHBfcmVmbGlz dFs2XSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19QSU5JVF9STElTVF9GNShwX3JlZmxpc3RbNV0p IHwKPiA+IC0JICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjQocF9yZWZsaXN0WzRdKTsKPiA+ ICsJcmVnID0gVkRQVV9SRUdfUElOSVRfUkxJU1RfRjkocF9yZWZsaXN0WzldLmluZGV4KSB8Cj4g PiArCSAgICAgIFZEUFVfUkVHX1BJTklUX1JMSVNUX0Y4KHBfcmVmbGlzdFs4XS5pbmRleCkgfAo+ ID4gKwkgICAgICBWRFBVX1JFR19QSU5JVF9STElTVF9GNyhwX3JlZmxpc3RbN10uaW5kZXgpIHwK PiA+ICsJICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjYocF9yZWZsaXN0WzZdLmluZGV4KSB8 Cj4gPiArCSAgICAgIFZEUFVfUkVHX1BJTklUX1JMSVNUX0Y1KHBfcmVmbGlzdFs1XS5pbmRleCkg fAo+ID4gKwkgICAgICBWRFBVX1JFR19QSU5JVF9STElTVF9GNChwX3JlZmxpc3RbNF0uaW5kZXgp Owo+ID4gIAl2ZHB1X3dyaXRlX3JlbGF4ZWQodnB1LCByZWcsIFZEUFVfU1dSRUcoNzQpKTsKPiA+ ICAKPiA+IC0JcmVnID0gVkRQVV9SRUdfUElOSVRfUkxJU1RfRjE1KHBfcmVmbGlzdFsxNV0pIHwK PiA+IC0JICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjE0KHBfcmVmbGlzdFsxNF0pIHwKPiA+ IC0JICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjEzKHBfcmVmbGlzdFsxM10pIHwKPiA+IC0J ICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjEyKHBfcmVmbGlzdFsxMl0pIHwKPiA+IC0JICAg ICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjExKHBfcmVmbGlzdFsxMV0pIHwKPiA+IC0JICAgICAg VkRQVV9SRUdfUElOSVRfUkxJU1RfRjEwKHBfcmVmbGlzdFsxMF0pOwo+ID4gKwlyZWcgPSBWRFBV X1JFR19QSU5JVF9STElTVF9GMTUocF9yZWZsaXN0WzE1XS5pbmRleCkgfAo+ID4gKwkgICAgICBW RFBVX1JFR19QSU5JVF9STElTVF9GMTQocF9yZWZsaXN0WzE0XS5pbmRleCkgfAo+ID4gKwkgICAg ICBWRFBVX1JFR19QSU5JVF9STElTVF9GMTMocF9yZWZsaXN0WzEzXS5pbmRleCkgfAo+ID4gKwkg ICAgICBWRFBVX1JFR19QSU5JVF9STElTVF9GMTIocF9yZWZsaXN0WzEyXS5pbmRleCkgfAo+ID4g KwkgICAgICBWRFBVX1JFR19QSU5JVF9STElTVF9GMTEocF9yZWZsaXN0WzExXS5pbmRleCkgfAo+ ID4gKwkgICAgICBWRFBVX1JFR19QSU5JVF9STElTVF9GMTAocF9yZWZsaXN0WzEwXS5pbmRleCk7 Cj4gPiAgCXZkcHVfd3JpdGVfcmVsYXhlZCh2cHUsIHJlZywgVkRQVV9TV1JFRyg3NSkpOwo+ID4g IAo+ID4gIAlyZWcgPSBWRFBVX1JFR19SRUZFUjFfTkJSKGhhbnRyb19oMjY0X2dldF9yZWZfbmJy KGN0eCwgMSkpIHwKPiA+IEBAIC0zNTUsNTQgKzM1NSw1NCBAQCBzdGF0aWMgdm9pZCBzZXRfcmVm KHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gPiAgCSAgICAgIFZEUFVfUkVHX1JFRkVSMTRfTkJS KGhhbnRyb19oMjY0X2dldF9yZWZfbmJyKGN0eCwgMTQpKTsKPiA+ICAJdmRwdV93cml0ZV9yZWxh eGVkKHZwdSwgcmVnLCBWRFBVX1NXUkVHKDgzKSk7Cj4gPiAgCj4gPiAtCXJlZyA9IFZEUFVfUkVH X0JJTklUX1JMSVNUX0Y1KGIwX3JlZmxpc3RbNV0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklO SVRfUkxJU1RfRjQoYjBfcmVmbGlzdFs0XSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19CSU5JVF9S TElTVF9GMyhiMF9yZWZsaXN0WzNdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNU X0YyKGIwX3JlZmxpc3RbMl0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjEo YjBfcmVmbGlzdFsxXSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9GMChiMF9y ZWZsaXN0WzBdKTsKPiA+ICsJcmVnID0gVkRQVV9SRUdfQklOSVRfUkxJU1RfRjUoYjBfcmVmbGlz dFs1XS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9GNChiMF9yZWZs aXN0WzRdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0YzKGIwX3Jl Zmxpc3RbM10uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjIoYjBf cmVmbGlzdFsyXS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9GMShi MF9yZWZsaXN0WzFdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0Yw KGIwX3JlZmxpc3RbMF0uaW5kZXgpOwo+ID4gIAl2ZHB1X3dyaXRlX3JlbGF4ZWQodnB1LCByZWcs IFZEUFVfU1dSRUcoMTAwKSk7Cj4gPiAgCj4gPiAtCXJlZyA9IFZEUFVfUkVHX0JJTklUX1JMSVNU X0YxMShiMF9yZWZsaXN0WzExXSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9G MTAoYjBfcmVmbGlzdFsxMF0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjko YjBfcmVmbGlzdFs5XSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9GOChiMF9y ZWZsaXN0WzhdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0Y3KGIwX3JlZmxp c3RbN10pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjYoYjBfcmVmbGlzdFs2 XSk7Cj4gPiArCXJlZyA9IFZEUFVfUkVHX0JJTklUX1JMSVNUX0YxMShiMF9yZWZsaXN0WzExXS5p bmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9GMTAoYjBfcmVmbGlzdFsx MF0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjkoYjBfcmVmbGlz dFs5XS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9GOChiMF9yZWZs aXN0WzhdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0Y3KGIwX3Jl Zmxpc3RbN10uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjYoYjBf cmVmbGlzdFs2XS5pbmRleCk7Cj4gPiAgCXZkcHVfd3JpdGVfcmVsYXhlZCh2cHUsIHJlZywgVkRQ VV9TV1JFRygxMDEpKTsKPiA+ICAKPiA+IC0JcmVnID0gVkRQVV9SRUdfQklOSVRfUkxJU1RfRjE1 KGIwX3JlZmxpc3RbMTVdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0YxNChi MF9yZWZsaXN0WzE0XSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9GMTMoYjBf cmVmbGlzdFsxM10pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjEyKGIwX3Jl Zmxpc3RbMTJdKTsKPiA+ICsJcmVnID0gVkRQVV9SRUdfQklOSVRfUkxJU1RfRjE1KGIwX3JlZmxp c3RbMTVdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0YxNChiMF9y ZWZsaXN0WzE0XS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9GMTMo YjBfcmVmbGlzdFsxM10uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1Rf RjEyKGIwX3JlZmxpc3RbMTJdLmluZGV4KTsKPiA+ICAJdmRwdV93cml0ZV9yZWxheGVkKHZwdSwg cmVnLCBWRFBVX1NXUkVHKDEwMikpOwo+ID4gIAo+ID4gLQlyZWcgPSBWRFBVX1JFR19CSU5JVF9S TElTVF9CNShiMV9yZWZsaXN0WzVdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNU X0I0KGIxX3JlZmxpc3RbNF0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfQjMo YjFfcmVmbGlzdFszXSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9CMihiMV9y ZWZsaXN0WzJdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0IxKGIxX3JlZmxp c3RbMV0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfQjAoYjFfcmVmbGlzdFsw XSk7Cj4gPiArCXJlZyA9IFZEUFVfUkVHX0JJTklUX1JMSVNUX0I1KGIxX3JlZmxpc3RbNV0uaW5k ZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfQjQoYjFfcmVmbGlzdFs0XS5p bmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9CMyhiMV9yZWZsaXN0WzNd LmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0IyKGIxX3JlZmxpc3Rb Ml0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfQjEoYjFfcmVmbGlz dFsxXS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9CMChiMV9yZWZs aXN0WzBdLmluZGV4KTsKPiA+ICAJdmRwdV93cml0ZV9yZWxheGVkKHZwdSwgcmVnLCBWRFBVX1NX UkVHKDEwMykpOwo+ID4gIAo+ID4gLQlyZWcgPSBWRFBVX1JFR19CSU5JVF9STElTVF9CMTEoYjFf cmVmbGlzdFsxMV0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfQjEwKGIxX3Jl Zmxpc3RbMTBdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0I5KGIxX3JlZmxp c3RbOV0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfQjgoYjFfcmVmbGlzdFs4 XSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9CNyhiMV9yZWZsaXN0WzddKSB8 Cj4gPiAtCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0I2KGIxX3JlZmxpc3RbNl0pOwo+ID4g KwlyZWcgPSBWRFBVX1JFR19CSU5JVF9STElTVF9CMTEoYjFfcmVmbGlzdFsxMV0uaW5kZXgpIHwK PiA+ICsJICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfQjEwKGIxX3JlZmxpc3RbMTBdLmluZGV4 KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0I5KGIxX3JlZmxpc3RbOV0uaW5k ZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfQjgoYjFfcmVmbGlzdFs4XS5p bmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9CNyhiMV9yZWZsaXN0Wzdd LmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0I2KGIxX3JlZmxpc3Rb Nl0uaW5kZXgpOwo+ID4gIAl2ZHB1X3dyaXRlX3JlbGF4ZWQodnB1LCByZWcsIFZEUFVfU1dSRUco MTA0KSk7Cj4gPiAgCj4gPiAtCXJlZyA9IFZEUFVfUkVHX0JJTklUX1JMSVNUX0IxNShiMV9yZWZs aXN0WzE1XSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9CMTQoYjFfcmVmbGlz dFsxNF0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfQjEzKGIxX3JlZmxpc3Rb MTNdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0IxMihiMV9yZWZsaXN0WzEy XSk7Cj4gPiArCXJlZyA9IFZEUFVfUkVHX0JJTklUX1JMSVNUX0IxNShiMV9yZWZsaXN0WzE1XS5p bmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9CMTQoYjFfcmVmbGlzdFsx NF0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfQjEzKGIxX3JlZmxp c3RbMTNdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0IxMihiMV9y ZWZsaXN0WzEyXS5pbmRleCk7Cj4gPiAgCXZkcHVfd3JpdGVfcmVsYXhlZCh2cHUsIHJlZywgVkRQ VV9TV1JFRygxMDUpKTsKPiA+ICAKPiA+IC0JcmVnID0gVkRQVV9SRUdfUElOSVRfUkxJU1RfRjMo cF9yZWZsaXN0WzNdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX1BJTklUX1JMSVNUX0YyKHBfcmVm bGlzdFsyXSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19QSU5JVF9STElTVF9GMShwX3JlZmxpc3Rb MV0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjAocF9yZWZsaXN0WzBdKTsK PiA+ICsJcmVnID0gVkRQVV9SRUdfUElOSVRfUkxJU1RfRjMocF9yZWZsaXN0WzNdLmluZGV4KSB8 Cj4gPiArCSAgICAgIFZEUFVfUkVHX1BJTklUX1JMSVNUX0YyKHBfcmVmbGlzdFsyXS5pbmRleCkg fAo+ID4gKwkgICAgICBWRFBVX1JFR19QSU5JVF9STElTVF9GMShwX3JlZmxpc3RbMV0uaW5kZXgp IHwKPiA+ICsJICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjAocF9yZWZsaXN0WzBdLmluZGV4 KTsKPiA+ICAJdmRwdV93cml0ZV9yZWxheGVkKHZwdSwgcmVnLCBWRFBVX1NXUkVHKDEwNikpOwo+ ID4gIAo+ID4gIAlyZWcgPSBWRFBVX1JFR19SRUZFUl9MVEVSTV9FKGN0eC0+aDI2NF9kZWMuZHBi X2xvbmd0ZXJtKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVj L3JrdmRlYy1oMjY0LmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3JrdmRlYy1oMjY0 LmMKPiA+IGluZGV4IDk1MWUxOTIzMWRhMi4uM2M3ZjNkODdmYWI0IDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9zdGFnaW5nL21lZGlhL3JrdmRlYy9ya3ZkZWMtaDI2NC5jCj4gPiArKysgYi9kcml2 ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3JrdmRlYy1oMjY0LmMKPiA+IEBAIC0xMDAsOSArMTAw LDkgQEAgc3RydWN0IHJrdmRlY19oMjY0X3ByaXZfdGJsIHsKPiA+ICAjZGVmaW5lIFJLVkRFQ19I MjY0X0RQQl9TSVpFIDE2Cj4gPiAgCj4gPiAgc3RydWN0IHJrdmRlY19oMjY0X3JlZmxpc3RzIHsK PiA+IC0JdTggcFtSS1ZERUNfSDI2NF9EUEJfU0laRV07Cj4gPiAtCXU4IGIwW1JLVkRFQ19IMjY0 X0RQQl9TSVpFXTsKPiA+IC0JdTggYjFbUktWREVDX0gyNjRfRFBCX1NJWkVdOwo+ID4gKwlzdHJ1 Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSBwW1JLVkRFQ19IMjY0X0RQQl9TSVpFXTsKPiA+ICsJc3Ry dWN0IHY0bDJfaDI2NF9yZWZlcmVuY2UgYjBbUktWREVDX0gyNjRfRFBCX1NJWkVdOwo+ID4gKwlz dHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSBiMVtSS1ZERUNfSDI2NF9EUEJfU0laRV07Cj4gPiAg CXU4IG51bV92YWxpZDsKPiA+ICB9Owo+ID4gIAo+ID4gQEAgLTc2NywxMyArNzY3LDEzIEBAIHN0 YXRpYyB2b2lkIGFzc2VtYmxlX2h3X3JwcyhzdHJ1Y3Qgcmt2ZGVjX2N0eCAqY3R4LAo+ID4gIAo+ ID4gIAkJCXN3aXRjaCAoaikgewo+ID4gIAkJCWNhc2UgMDoKPiA+IC0JCQkJaWR4ID0gaDI2NF9j dHgtPnJlZmxpc3RzLnBbaV07Cj4gPiArCQkJCWlkeCA9IGgyNjRfY3R4LT5yZWZsaXN0cy5wW2ld LmluZGV4Owo+ID4gIAkJCQlicmVhazsKPiA+ICAJCQljYXNlIDE6Cj4gPiAtCQkJCWlkeCA9IGgy NjRfY3R4LT5yZWZsaXN0cy5iMFtpXTsKPiA+ICsJCQkJaWR4ID0gaDI2NF9jdHgtPnJlZmxpc3Rz LmIwW2ldLmluZGV4Owo+ID4gIAkJCQlicmVhazsKPiA+ICAJCQljYXNlIDI6Cj4gPiAtCQkJCWlk eCA9IGgyNjRfY3R4LT5yZWZsaXN0cy5iMVtpXTsKPiA+ICsJCQkJaWR4ID0gaDI2NF9jdHgtPnJl Zmxpc3RzLmIxW2ldLmluZGV4Owo+ID4gIAkJCQlicmVhazsKPiA+ICAJCQl9Cj4gPiAgCj4gPiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS92NGwyLWgyNjQuaCBiL2luY2x1ZGUvbWVkaWEvdjRs Mi1oMjY0LmgKPiA+IGluZGV4IDRiMWM3MWM5MzVlMC4uZWY5YTg5NGUzYzMyIDEwMDY0NAo+ID4g LS0tIGEvaW5jbHVkZS9tZWRpYS92NGwyLWgyNjQuaAo+ID4gKysrIGIvaW5jbHVkZS9tZWRpYS92 NGwyLWgyNjQuaAo+ID4gQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IHY0bDJfaDI2NF9yZWZsaXN0 X2J1aWxkZXIgewo+ID4gIAkJdTE2IGxvbmd0ZXJtIDogMTsKPiA+ICAJfSByZWZzW1Y0TDJfSDI2 NF9OVU1fRFBCX0VOVFJJRVNdOwo+ID4gIAlzMzIgY3VyX3BpY19vcmRlcl9jb3VudDsKPiA+IC0J dTggdW5vcmRlcmVkX3JlZmxpc3RbVjRMMl9IMjY0X05VTV9EUEJfRU5UUklFU107Cj4gPiArCXN0 cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlIHVub3JkZXJlZF9yZWZsaXN0W1Y0TDJfSDI2NF9OVU1f RFBCX0VOVFJJRVNdOwo+ID4gIAl1OCBudW1fdmFsaWQ7Cj4gPiAgfTsKPiA+ICAKPiA+IEBAIC01 MSwxMCArNTEsMTAgQEAgdjRsMl9oMjY0X2luaXRfcmVmbGlzdF9idWlsZGVyKHN0cnVjdCB2NGwy X2gyNjRfcmVmbGlzdF9idWlsZGVyICpiLAo+ID4gICAqIHY0bDJfaDI2NF9idWlsZF9iX3JlZl9s aXN0cygpIC0gQnVpbGQgdGhlIEIwL0IxIHJlZmVyZW5jZSBsaXN0cwo+ID4gICAqCj4gPiAgICog QGJ1aWxkZXI6IHJlZmVyZW5jZSBsaXN0IGJ1aWxkZXIgY29udGV4dAo+ID4gLSAqIEBiMF9yZWZs aXN0OiAxNi1ieXRlcyBhcnJheSB1c2VkIHRvIHN0b3JlIHRoZSBCMCByZWZlcmVuY2UgbGlzdC4g RWFjaCBlbnRyeQo+ID4gLSAqCQlpcyBhbiBpbmRleCBpbiB0aGUgRFBCCj4gPiAtICogQGIxX3Jl Zmxpc3Q6IDE2LWJ5dGVzIGFycmF5IHVzZWQgdG8gc3RvcmUgdGhlIEIxIHJlZmVyZW5jZSBsaXN0 LiBFYWNoIGVudHJ5Cj4gPiAtICoJCWlzIGFuIGluZGV4IGluIHRoZSBEUEIKPiA+ICsgKiBAYjBf cmVmbGlzdDogMTYgc2l6ZWQgYXJyYXkgdXNlZCB0byBzdG9yZSB0aGUgQjAgcmVmZXJlbmNlIGxp c3QuIEVhY2ggZW50cnkKPiA+ICsgKgkJaXMgYSB2NGwyX2gyNjRfcmVmZXJlbmNlIHN0cnVjdHVy ZQo+ID4gKyAqIEBiMV9yZWZsaXN0OiAxNiBzaXplZCBhcnJheSB1c2VkIHRvIHN0b3JlIHRoZSBC MSByZWZlcmVuY2UgbGlzdC4gRWFjaCBlbnRyeQo+ID4gKyAqCQlpcyBhIHY0bDJfaDI2NF9yZWZl cmVuY2Ugc3RydWN0dXJlCj4gPiAgICoKPiA+ICAgKiBUaGlzIGZ1bmN0aW9ucyBidWlsZHMgdGhl IEIwL0IxIHJlZmVyZW5jZSBsaXN0cy4gVGhpcyBwcm9jZWR1cmUgaXMgZGVzY3JpYmVkCj4gPiAg ICogaW4gc2VjdGlvbiAnOC4yLjQgRGVjb2RpbmcgcHJvY2VzcyBmb3IgcmVmZXJlbmNlIHBpY3R1 cmUgbGlzdHMgY29uc3RydWN0aW9uJwo+ID4gQEAgLTYzLDE0ICs2MywxNSBAQCB2NGwyX2gyNjRf aW5pdF9yZWZsaXN0X2J1aWxkZXIoc3RydWN0IHY0bDJfaDI2NF9yZWZsaXN0X2J1aWxkZXIgKmIs Cj4gPiAgICovCj4gPiAgdm9pZAo+ID4gIHY0bDJfaDI2NF9idWlsZF9iX3JlZl9saXN0cyhjb25z dCBzdHJ1Y3QgdjRsMl9oMjY0X3JlZmxpc3RfYnVpbGRlciAqYnVpbGRlciwKPiA+IC0JCQkgICAg dTggKmIwX3JlZmxpc3QsIHU4ICpiMV9yZWZsaXN0KTsKPiA+ICsJCQkgICAgc3RydWN0IHY0bDJf aDI2NF9yZWZlcmVuY2UgKmIwX3JlZmxpc3QsCj4gPiArCQkJICAgIHN0cnVjdCB2NGwyX2gyNjRf cmVmZXJlbmNlICpiMV9yZWZsaXN0KTsKPiA+ICAKPiA+ICAvKioKPiA+ICAgKiB2NGwyX2gyNjRf YnVpbGRfcF9yZWZfbGlzdCgpIC0gQnVpbGQgdGhlIFAgcmVmZXJlbmNlIGxpc3QKPiA+ICAgKgo+ ID4gICAqIEBidWlsZGVyOiByZWZlcmVuY2UgbGlzdCBidWlsZGVyIGNvbnRleHQKPiA+IC0gKiBA cmVmbGlzdDogMTYtYnl0ZXMgYXJyYXkgdXNlZCB0byBzdG9yZSB0aGUgUCByZWZlcmVuY2UgbGlz dC4gRWFjaCBlbnRyeQo+ID4gLSAqCSAgICAgaXMgYW4gaW5kZXggaW4gdGhlIERQQgo+ID4gKyAq IEByZWZsaXN0OiAxNiBzaXplZCBhcnJheSB1c2VkIHRvIHN0b3JlIHRoZSBQIHJlZmVyZW5jZSBs aXN0LiBFYWNoIGVudHJ5Cj4gPiArICoJICAgICBpcyBhIHY0bDJfaDI2NF9yZWZlcmVuY2Ugc3Ry dWN0dXJlCj4gPiAgICoKPiA+ICAgKiBUaGlzIGZ1bmN0aW9ucyBidWlsZHMgdGhlIFAgcmVmZXJl bmNlIGxpc3RzLiBUaGlzIHByb2NlZHVyZSBpcyBkZXNjcmliZSBpbgo+ID4gICAqIHNlY3Rpb24g JzguMi40IERlY29kaW5nIHByb2Nlc3MgZm9yIHJlZmVyZW5jZSBwaWN0dXJlIGxpc3RzIGNvbnN0 cnVjdGlvbicKPiA+IEBAIC03OSw2ICs4MCw2IEBAIHY0bDJfaDI2NF9idWlsZF9iX3JlZl9saXN0 cyhjb25zdCBzdHJ1Y3QgdjRsMl9oMjY0X3JlZmxpc3RfYnVpbGRlciAqYnVpbGRlciwKPiA+ICAg Ki8KPiA+ICB2b2lkCj4gPiAgdjRsMl9oMjY0X2J1aWxkX3BfcmVmX2xpc3QoY29uc3Qgc3RydWN0 IHY0bDJfaDI2NF9yZWZsaXN0X2J1aWxkZXIgKmJ1aWxkZXIsCj4gPiAtCQkJICAgdTggKnJlZmxp c3QpOwo+ID4gKwkJCSAgIHN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlICpyZWZsaXN0KTsKPiA+ ICAKPiA+ICAjZW5kaWYgLyogX01FRElBX1Y0TDJfSDI2NF9IICovCj4gCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFpbGlu ZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAo=