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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 39DC5CD4F21 for ; Wed, 13 May 2026 20:29:23 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9F68910E33B; Wed, 13 May 2026 20:29:22 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=ragnatech.se header.i=@ragnatech.se header.b="fjiQTc7h"; dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="nAh+rT53"; dkim-atps=neutral Received: from fhigh-a5-smtp.messagingengine.com (fhigh-a5-smtp.messagingengine.com [103.168.172.156]) by gabe.freedesktop.org (Postfix) with ESMTPS id 589C610E33B for ; Wed, 13 May 2026 20:29:20 +0000 (UTC) Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfhigh.phl.internal (Postfix) with ESMTP id 8F3B4140006F; Wed, 13 May 2026 16:29:19 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-04.internal (MEProxy); Wed, 13 May 2026 16:29:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm2; t=1778704159; x=1778790559; bh=y5a2nV0GlXSaHt6JVrLElF4ebI97LY+C2LTARzE1pu4=; b= fjiQTc7hMv91jRZcxAcLih1yL0ESdZgCjHtK1f4Wowm0wZgEziqhTyQPcLViU/QC F2zw6z1J4UPtA21+Cxm+eCT6xyDGdAKAcvG+vjNZkHCu6kcf1ch/dk2yuRw7+U3e pnV+NSzIdUPOuksvJXkFzJXQgXnNgAJGSmIBftNxwTDJaR+OC1f/hN3OA+KtDcS/ 4e1/l/Q4ogqCBQkRlJyiE4Pn/aCuoVpRdkJZtlUGG/12ylJ65OQnEMV3JocHo6mq g/KHFhwOn1MukAvgwo693RCyKAx/LqiCG3IIVjrtcSRmRahvoy+UiW5+buL2uduy gruVMNTaLAuDfxcG/Qd5Qg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1778704159; x= 1778790559; bh=y5a2nV0GlXSaHt6JVrLElF4ebI97LY+C2LTARzE1pu4=; b=n Ah+rT53eNstSzEHa2MEhbE9HlF3OhSHTPS9cxB9UEzUua+RwWs16tN6wH1Z3dpR3 e+R4UowR08BmZoWFplkU+ryyai4ylf8rpZW9ooeH00Ab3knYQnQrRM0lk6F00psH BXXS9mGRtWxoeqYVwQO572VNEGIBq/4mhlO1X2Stafip+RaPkGhOwG5N+C8LqPEZ zR2NvvVfB1EOvfiBxZgiYm/FgkV5bznlAgulLQAOLxH30MJqvBx788qsKO+z+dRZ Xku1+RzzBlmw/TJ3HBzW5a6hYLGXgOGpx9eVdkvArBAGzFzDveKCzBJwPjdjek2T VQWB9jr3T+r+AxUa9QokQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduvdehieduucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepfffhvfevuffkfhggtggugfgjsehtkeertddttdejnecuhfhrohhmpefpihhklhgr shcuufpnuggvrhhluhhnugcuoehnihhklhgrshdrshhouggvrhhluhhnugesrhgrghhnrg htvggthhdrshgvqeenucggtffrrghtthgvrhhnpeevteegtddvvdfhtdekgefhfeefheet heekkeegfeejudeiudeuleegtdehkeekteenucevlhhushhtvghrufhiiigvpedtnecurf grrhgrmhepmhgrihhlfhhrohhmpehnihhklhgrshdrshhouggvrhhluhhnugesrhgrghhn rghtvggthhdrshgvpdhnsggprhgtphhtthhopeelpdhmohguvgepshhmthhpohhuthdprh gtphhtthhopehlrghurhgvnhhtrdhpihhntghhrghrthdorhgvnhgvshgrshesihguvggr shhonhgsohgrrhgurdgtohhmpdhrtghpthhtoheplhhinhhugidqmhgvughirgesvhhgvg hrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopegurhhiqdguvghvvghlsehlihhsthhs rdhfrhgvvgguvghskhhtohhprdhorhhgpdhrtghpthhtoheplhhinhhugidqrhgvnhgvsh grshdqshhotgesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehtohhmihdr vhgrlhhkvghinhgvnhesihguvggrshhonhgsohgrrhgurdgtohhmpdhrtghpthhtohepkh hivghrrghnrdgsihhnghhhrghmsehiuggvrghsohhnsghorghrugdrtghomhdprhgtphht thhopegsihhjuhdruggrshdrjhiisegsphdrrhgvnhgvshgrshdrtghomhdprhgtphhtth hopegrihhrlhhivggusehgmhgrihhlrdgtohhmpdhrtghpthhtohepshhimhhonhgrsehf fhiflhhlrdgthh X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 13 May 2026 16:29:18 -0400 (EDT) Date: Wed, 13 May 2026 22:29:16 +0200 From: Niklas =?utf-8?Q?S=C3=B6derlund?= To: Laurent Pinchart Cc: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, Tomi Valkeinen , Kieran Bingham , Biju Das , David Airlie , Simona Vetter Subject: Re: [PATCH 10/11] media: renesas: vsp1: Declare index variables in for loop statement Message-ID: <20260513202916.GM332351@ragnatech.se> References: <20260511235637.3468558-1-laurent.pinchart+renesas@ideasonboard.com> <20260511235637.3468558-11-laurent.pinchart+renesas@ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: base64 In-Reply-To: <20260511235637.3468558-11-laurent.pinchart+renesas@ideasonboard.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgTGF1cmVudCwKClRoYW5rcyBmb3IgeW91ciBwYXRjaC4KCk9uIDIwMjYtMDUtMTIgMDI6NTY6 MzQgKzAzMDAsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gVXNpbmcgbG9vcCBpbmRpY2VzIG91 dHNpZGUgb2YgdGhlIGxvb3AgaXMgYSBzb3VyY2Ugb2Ygb3V0LW9mLWJvdW5kcwo+IGFjY2Vzc2Vz IGFuZCBvdGhlciBidWdzLiBJdCBpcyBpbXBvcnRhbnQgdG8gY2FyZWZ1bGx5IHJldmlldyB0aG9z ZQo+IHVzYWdlcy4gVG8gbWFrZSB0aGVtIHN0YW5kIG91dCwgZGVjbGFyZSBhbGwgbG9vcCBpbmRl eCB2YXJpYWJsZXMgdGhhdAo+IGFyZSBub3QgdXNlZCBvdXRzaWRlIG9mIHRoZSBsb29wIGluc2lk ZSB0aGUgbG9vcCBzdGF0ZW1lbnQuCj4gCj4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQu Cj4gCj4gU2lnbmVkLW9mZi1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydCty ZW5lc2FzQGlkZWFzb25ib2FyZC5jb20+CgpSZXZpZXdlZC1ieTogTmlrbGFzIFPDtmRlcmx1bmQg PG5pa2xhcy5zb2Rlcmx1bmQrcmVuZXNhc0ByYWduYXRlY2guc2U+Cgo+IC0tLQo+ICAuLi4vbWVk aWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfYnJ4LmMgICAgfCAgNyArLS0tCj4gIC4uLi9t ZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9jbHUuYyAgICB8ICAzICstCj4gIGRyaXZl cnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfZGwuYyB8IDEyICsrLS0tLQo+ICAu Li4vbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfZHJtLmMgICAgfCAxNCArKystLS0t Cj4gIC4uLi9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9kcnYuYyAgICB8IDQyICsr KysrKysrLS0tLS0tLS0tLS0KPiAgLi4uL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3Ax X2VudGl0eS5jIHwgIDQgKy0KPiAgLi4uL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3Ax X2hnby5jICAgIHwgIDcgKystLQo+ICAuLi4vbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3Zz cDFfaGd0LmMgICAgfCAxMyArKystLS0KPiAgLi4uL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNw MS92c3AxX2x1dC5jICAgIHwgIDMgKy0KPiAgLi4uL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNw MS92c3AxX3BpcGUuYyAgIHwgIDUgKy0tCj4gIC4uLi9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3Zz cDEvdnNwMV92aWRlby5jICB8IDM0ICsrKysrKy0tLS0tLS0tLQo+ICAuLi4vbWVkaWEvcGxhdGZv cm0vcmVuZXNhcy92c3AxL3ZzcDFfd3BmLmMgICAgfCAgOCArKy0tCj4gIDEyIGZpbGVzIGNoYW5n ZWQsIDU2IGluc2VydGlvbnMoKyksIDk2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2JyeC5jIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9icnguYwo+IGluZGV4IDMyNWJlMzA4MzZk Ny4uMzYwYTQyNTAyOTQ3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVu ZXNhcy92c3AxL3ZzcDFfYnJ4LmMKPiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVz YXMvdnNwMS92c3AxX2JyeC5jCj4gQEAgLTE1NSw5ICsxNTUsNyBAQCBzdGF0aWMgaW50IGJyeF9z ZXRfZm9ybWF0KHN0cnVjdCB2NGwyX3N1YmRldiAqc3ViZGV2LAo+ICAKPiAgCS8qIFByb3BhZ2F0 ZSB0aGUgZm9ybWF0IGNvZGUgdG8gYWxsIHBhZHMuICovCj4gIAlpZiAoZm10LT5wYWQgPT0gQlJY X1BBRF9TSU5LKDApKSB7Cj4gLQkJdW5zaWduZWQgaW50IGk7Cj4gLQo+IC0JCWZvciAoaSA9IDA7 IGkgPD0gYnJ4LT5lbnRpdHkuc291cmNlX3BhZDsgKytpKSB7Cj4gKwkJZm9yICh1bnNpZ25lZCBp bnQgaSA9IDA7IGkgPD0gYnJ4LT5lbnRpdHkuc291cmNlX3BhZDsgKytpKSB7Cj4gIAkJCWZvcm1h dCA9IHY0bDJfc3ViZGV2X3N0YXRlX2dldF9mb3JtYXQoc3RhdGUsIGkpOwo+ICAJCQlmb3JtYXQt PmNvZGUgPSBmbXQtPmZvcm1hdC5jb2RlOwo+ICAJCX0KPiBAQCAtMjcxLDcgKzI2OSw2IEBAIHN0 YXRpYyB2b2lkIGJyeF9jb25maWd1cmVfc3RyZWFtKHN0cnVjdCB2c3AxX2VudGl0eSAqZW50aXR5 LAo+ICAJc3RydWN0IHZzcDFfYnJ4ICpicnggPSB0b19icngoJmVudGl0eS0+c3ViZGV2KTsKPiAg CXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKmZvcm1hdDsKPiAgCXVuc2lnbmVkIGludCBmbGFn czsKPiAtCXVuc2lnbmVkIGludCBpOwo+ICAKPiAgCWZvcm1hdCA9IHY0bDJfc3ViZGV2X3N0YXRl X2dldF9mb3JtYXQoc3RhdGUsIGJyeC0+ZW50aXR5LnNvdXJjZV9wYWQpOwo+ICAKPiBAQCAtMzE1 LDcgKzMxMiw3IEBAIHN0YXRpYyB2b2lkIGJyeF9jb25maWd1cmVfc3RyZWFtKHN0cnVjdCB2c3Ax X2VudGl0eSAqZW50aXR5LAo+ICAJCQkgICAgICAgVkk2X0JSVV9ST1BfQ1JPUChWSTZfUk9QX05P UCkgfAo+ICAJCQkgICAgICAgVkk2X0JSVV9ST1BfQVJPUChWSTZfUk9QX05PUCkpOwo+ICAKPiAt CWZvciAoaSA9IDA7IGkgPCBicngtPmVudGl0eS5zb3VyY2VfcGFkOyArK2kpIHsKPiArCWZvciAo dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgYnJ4LT5lbnRpdHkuc291cmNlX3BhZDsgKytpKSB7Cj4g IAkJYm9vbCBwcmVtdWx0aXBsaWVkID0gZmFsc2U7Cj4gIAkJdTMyIGN0cmwgPSAwOwo+ICAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9jbHUu YyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfY2x1LmMKPiBpbmRl eCBhNmU0YmNhYjUxMDEuLjRiN2QwN2Q3MzBkYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2NsdS5jCj4gKysrIGIvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9jbHUuYwo+IEBAIC00MywxNCArNDMsMTMgQEAgc3Rh dGljIGlubGluZSB2b2lkIHZzcDFfY2x1X3dyaXRlKHN0cnVjdCB2c3AxX2NsdSAqY2x1LAo+ICBz dGF0aWMgaW50IGNsdV9zZXRfdGFibGUoc3RydWN0IHZzcDFfY2x1ICpjbHUsIHN0cnVjdCB2NGwy X2N0cmwgKmN0cmwpCj4gIHsKPiAgCXN0cnVjdCB2c3AxX2RsX2JvZHkgKmRsYjsKPiAtCXVuc2ln bmVkIGludCBpOwo+ICAKPiAgCWRsYiA9IHZzcDFfZGxfYm9keV9nZXQoY2x1LT5wb29sKTsKPiAg CWlmICghZGxiKQo+ICAJCXJldHVybiAtRU5PTUVNOwo+ICAKPiAgCXZzcDFfZGxfYm9keV93cml0 ZShkbGIsIFZJNl9DTFVfQUREUiwgMCk7Cj4gLQlmb3IgKGkgPSAwOyBpIDwgQ0xVX1NJWkU7ICsr aSkKPiArCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgQ0xVX1NJWkU7ICsraSkKPiAgCQl2 c3AxX2RsX2JvZHlfd3JpdGUoZGxiLCBWSTZfQ0xVX0RBVEEsIGN0cmwtPnBfbmV3LnBfdTMyW2ld KTsKPiAgCj4gIAlzY29wZWRfZ3VhcmQoc3BpbmxvY2tfaXJxLCAmY2x1LT5sb2NrKSB7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfZGwuYyBi L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfZGwuYwo+IGluZGV4IDNk Yzc0ZmVkOTFkYy4uNjQzMGYyZWM4YjMyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfZGwuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vcmVuZXNhcy92c3AxL3ZzcDFfZGwuYwo+IEBAIC0yNTcsNyArMjU3LDYgQEAgdnNwMV9kbF9i b2R5X3Bvb2xfY3JlYXRlKHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSwgdW5zaWduZWQgaW50IG51 bV9ib2RpZXMsCj4gIHsKPiAgCXN0cnVjdCB2c3AxX2RsX2JvZHlfcG9vbCAqcG9vbDsKPiAgCXNp emVfdCBkbGJfc2l6ZTsKPiAtCXVuc2lnbmVkIGludCBpOwo+ICAKPiAgCXBvb2wgPSBremFsbG9j X29iaigqcG9vbCk7Cj4gIAlpZiAoIXBvb2wpCj4gQEAgLTI5MSw3ICsyOTAsNyBAQCB2c3AxX2Rs X2JvZHlfcG9vbF9jcmVhdGUoc3RydWN0IHZzcDFfZGV2aWNlICp2c3AxLCB1bnNpZ25lZCBpbnQg bnVtX2JvZGllcywKPiAgCXNwaW5fbG9ja19pbml0KCZwb29sLT5sb2NrKTsKPiAgCUlOSVRfTElT VF9IRUFEKCZwb29sLT5mcmVlKTsKPiAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgbnVtX2JvZGllczsg KytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG51bV9ib2RpZXM7ICsraSkg ewo+ICAJCXN0cnVjdCB2c3AxX2RsX2JvZHkgKmRsYiA9ICZwb29sLT5ib2RpZXNbaV07Cj4gIAo+ ICAJCWRsYi0+cG9vbCA9IHBvb2w7Cj4gQEAgLTQyNiw3ICs0MjUsNiBAQCB2c3AxX2RsX2NtZF9w b29sX2NyZWF0ZShzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEsIGVudW0gdnNwMV9leHRjbWRfdHlw ZSB0eXBlLAo+ICAJCQl1bnNpZ25lZCBpbnQgbnVtX2NtZHMpCj4gIHsKPiAgCXN0cnVjdCB2c3Ax X2RsX2NtZF9wb29sICpwb29sOwo+IC0JdW5zaWduZWQgaW50IGk7Cj4gIAlzaXplX3QgY21kX3Np emU7Cj4gIAo+ICAJcG9vbCA9IGt6YWxsb2Nfb2JqKCpwb29sKTsKPiBAQCAtNDU3LDcgKzQ1NSw3 IEBAIHZzcDFfZGxfY21kX3Bvb2xfY3JlYXRlKHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSwgZW51 bSB2c3AxX2V4dGNtZF90eXBlIHR5cGUsCj4gIAkJcmV0dXJuIE5VTEw7Cj4gIAl9Cj4gIAo+IC0J Zm9yIChpID0gMDsgaSA8IG51bV9jbWRzOyArK2kpIHsKPiArCWZvciAodW5zaWduZWQgaW50IGkg PSAwOyBpIDwgbnVtX2NtZHM7ICsraSkgewo+ICAJCXN0cnVjdCB2c3AxX2RsX2V4dF9jbWQgKmNt ZCA9ICZwb29sLT5jbWRzW2ldOwo+ICAJCXNpemVfdCBjbWRfb2Zmc2V0ID0gaSAqIGNtZF9zaXpl Owo+ICAJCS8qIGRhdGFfb2Zmc2V0IG11c3QgYmUgMTYgYnl0ZSBhbGlnbmVkIGZvciBETUEuICov Cj4gQEAgLTEwNDYsNyArMTA0NCw2IEBAIHVuc2lnbmVkIGludCB2c3AxX2RsbV9pcnFfZnJhbWVf ZW5kKHN0cnVjdCB2c3AxX2RsX21hbmFnZXIgKmRsbSkKPiAgLyogSGFyZHdhcmUgU2V0dXAgKi8K PiAgdm9pZCB2c3AxX2RsbV9zZXR1cChzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEpCj4gIHsKPiAt CXVuc2lnbmVkIGludCBpOwo+ICAJdTMyIGN0cmwgPSAoMjU2IDw8IFZJNl9ETF9DVFJMX0FSX1dB SVRfU0hJRlQpCj4gIAkJIHwgVkk2X0RMX0NUUkxfREMyIHwgVkk2X0RMX0NUUkxfREMxIHwgVkk2 X0RMX0NUUkxfREMwCj4gIAkJIHwgVkk2X0RMX0NUUkxfRExFOwo+IEBAIC0xMDU0LDcgKzEwNTEs NyBAQCB2b2lkIHZzcDFfZGxtX3NldHVwKHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSkKPiAgCQkg ICB8IFZJNl9ETF9FWFRfQ1RSTF9ETFBSSSB8IFZJNl9ETF9FWFRfQ1RSTF9FWFQ7Cj4gIAo+ICAJ aWYgKHZzcDFfZmVhdHVyZSh2c3AxLCBWU1AxX0hBU19FWFRfREwpKSB7Cj4gLQkJZm9yIChpID0g MDsgaSA8IHZzcDEtPmluZm8tPndwZl9jb3VudDsgKytpKQo+ICsJCWZvciAodW5zaWduZWQgaW50 IGkgPSAwOyBpIDwgdnNwMS0+aW5mby0+d3BmX2NvdW50OyArK2kpCj4gIAkJCXZzcDFfd3JpdGUo dnNwMSwgVkk2X0RMX0VYVF9DVFJMKGkpLCBleHRfZGwpOwo+ICAJfQo+ICAKPiBAQCAtMTA5Miw3 ICsxMDg5LDYgQEAgc3RydWN0IHZzcDFfZGxfbWFuYWdlciAqdnNwMV9kbG1fY3JlYXRlKHN0cnVj dCB2c3AxX2RldmljZSAqdnNwMSwKPiAgewo+ICAJc3RydWN0IHZzcDFfZGxfbWFuYWdlciAqZGxt Owo+ICAJc2l6ZV90IGhlYWRlcl9zaXplOwo+IC0JdW5zaWduZWQgaW50IGk7Cj4gIAo+ICAJZGxt ID0gZGV2bV9remFsbG9jKHZzcDEtPmRldiwgc2l6ZW9mKCpkbG0pLCBHRlBfS0VSTkVMKTsKPiAg CWlmICghZGxtKQo+IEBAIC0xMTI4LDcgKzExMjQsNyBAQCBzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2Vy ICp2c3AxX2RsbV9jcmVhdGUoc3RydWN0IHZzcDFfZGV2aWNlICp2c3AxLAo+ICAJaWYgKCFkbG0t PnBvb2wpCj4gIAkJcmV0dXJuIE5VTEw7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IHByZWFsbG9j OyArK2kpIHsKPiArCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcHJlYWxsb2M7ICsraSkg ewo+ICAJCXN0cnVjdCB2c3AxX2RsX2xpc3QgKmRsOwo+ICAKPiAgCQlkbCA9IHZzcDFfZGxfbGlz dF9hbGxvYyhkbG0pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVz YXMvdnNwMS92c3AxX2RybS5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEv dnNwMV9kcm0uYwo+IGluZGV4IGY2ZmJkMzQ3NTMyOS4uOWNkNWMwMjVkMmJlIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfZHJtLmMKPiArKysg Yi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2RybS5jCj4gQEAgLTQx OSwxMyArNDE5LDEyIEBAIHN0YXRpYyBpbnQgdnNwMV9kdV9waXBlbGluZV9zZXR1cF9pbnB1dHMo c3RydWN0IHZzcDFfZGV2aWNlICp2c3AxLAo+ICAJc3RydWN0IHZzcDFfZW50aXR5ICp1aWY7Cj4g IAlib29sIHVzZV91aWYgPSBmYWxzZTsKPiAgCXN0cnVjdCB2c3AxX2JyeCAqYnJ4Owo+IC0JdW5z aWduZWQgaW50IGk7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCS8qIENvdW50IHRoZSBudW1iZXIgb2Yg ZW5hYmxlZCBpbnB1dHMgYW5kIHNvcnQgdGhlbSBieSBaLW9yZGVyLiAqLwo+ICAJcGlwZS0+bnVt X2lucHV0cyA9IDA7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IHZzcDEtPmluZm8tPnJwZl9jb3Vu dDsgKytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHZzcDEtPmluZm8tPnJw Zl9jb3VudDsgKytpKSB7Cj4gIAkJc3RydWN0IHZzcDFfcndwZiAqcnBmID0gdnNwMS0+cnBmW2ld Owo+ICAJCXVuc2lnbmVkIGludCBqOwo+ICAKPiBAQCAtNDU3LDcgKzQ1Niw3IEBAIHN0YXRpYyBp bnQgdnNwMV9kdV9waXBlbGluZV9zZXR1cF9pbnB1dHMoc3RydWN0IHZzcDFfZGV2aWNlICp2c3Ax LAo+ICAJYnJ4ID0gdG9fYnJ4KCZwaXBlLT5icngtPnN1YmRldik7Cj4gIAo+ICAJLyogU2V0dXAg dGhlIFJQRiBpbnB1dCBwaXBlbGluZSBmb3IgZXZlcnkgZW5hYmxlZCBpbnB1dC4gKi8KPiAtCWZv ciAoaSA9IDA7IGkgPCBwaXBlLT5icngtPnNvdXJjZV9wYWQ7ICsraSkgewo+ICsJZm9yICh1bnNp Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXBlLT5icngtPnNvdXJjZV9wYWQ7ICsraSkgewo+ICAJCXN0 cnVjdCB2c3AxX3J3cGYgKnJwZiA9IGlucHV0c1tpXTsKPiAgCj4gIAkJaWYgKCFycGYpIHsKPiBA QCAtNzMyLDcgKzczMSw2IEBAIGludCB2c3AxX2R1X2Rpc2FibGUoc3RydWN0IGRldmljZSAqZGV2 LCB1bnNpZ25lZCBpbnQgcGlwZV9pbmRleCkKPiAgCXN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICAJc3RydWN0IHZzcDFfZHJtX3BpcGVsaW5lICpkcm1f cGlwZTsKPiAgCXN0cnVjdCB2c3AxX3BpcGVsaW5lICpwaXBlOwo+IC0JdW5zaWduZWQgaW50IGk7 Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCWlmIChwaXBlX2luZGV4ID49IHZzcDEtPmluZm8tPmxpZl9j b3VudCkKPiBAQCAtNzQ4LDcgKzc0Niw3IEBAIGludCB2c3AxX2R1X2Rpc2FibGUoc3RydWN0IGRl dmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZV9pbmRleCkKPiAgCQlpZiAocmV0ID09IC1FVElN RURPVVQpCj4gIAkJCWRldl9lcnIodnNwMS0+ZGV2LCAiRFJNIHBpcGVsaW5lIHN0b3AgdGltZW91 dFxuIik7Cj4gIAo+IC0JCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBpcGUtPmlucHV0cyk7 ICsraSkgewo+ICsJCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShwaXBl LT5pbnB1dHMpOyArK2kpIHsKPiAgCQkJc3RydWN0IHZzcDFfcndwZiAqcnBmID0gcGlwZS0+aW5w dXRzW2ldOwo+ICAKPiAgCQkJaWYgKCFycGYpCj4gQEAgLTk2NCw4ICs5NjIsNiBAQCBFWFBPUlRf U1lNQk9MX0dQTCh2c3AxX2R1X3VubWFwX3NnKTsKPiAgCj4gIGludCB2c3AxX2RybV9pbml0KHN0 cnVjdCB2c3AxX2RldmljZSAqdnNwMSkKPiAgewo+IC0JdW5zaWduZWQgaW50IGk7Cj4gLQo+ICAJ dnNwMS0+ZHJtID0gZGV2bV9remFsbG9jKHZzcDEtPmRldiwgc2l6ZW9mKCp2c3AxLT5kcm0pLCBH RlBfS0VSTkVMKTsKPiAgCWlmICghdnNwMS0+ZHJtKQo+ICAJCXJldHVybiAtRU5PTUVNOwo+IEBA IC05NzMsNyArOTY5LDcgQEAgaW50IHZzcDFfZHJtX2luaXQoc3RydWN0IHZzcDFfZGV2aWNlICp2 c3AxKQo+ICAJbXV0ZXhfaW5pdCgmdnNwMS0+ZHJtLT5sb2NrKTsKPiAgCj4gIAkvKiBDcmVhdGUg b25lIERSTSBwaXBlbGluZSBwZXIgTElGLiAqLwo+IC0JZm9yIChpID0gMDsgaSA8IHZzcDEtPmlu Zm8tPmxpZl9jb3VudDsgKytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHZz cDEtPmluZm8tPmxpZl9jb3VudDsgKytpKSB7Cj4gIAkJc3RydWN0IHZzcDFfZHJtX3BpcGVsaW5l ICpkcm1fcGlwZSA9ICZ2c3AxLT5kcm0tPnBpcGVbaV07Cj4gIAkJc3RydWN0IHZzcDFfcGlwZWxp bmUgKnBpcGUgPSAmZHJtX3BpcGUtPnBpcGU7Cj4gIAo+IEBAIC0xMDEwLDcgKzEwMDYsNyBAQCBp bnQgdnNwMV9kcm1faW5pdChzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEpCj4gIAl9Cj4gIAo+ICAJ LyogRGlzYWJsZSBhbGwgUlBGcyBpbml0aWFsbHkuICovCj4gLQlmb3IgKGkgPSAwOyBpIDwgdnNw MS0+aW5mby0+cnBmX2NvdW50OyArK2kpIHsKPiArCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp IDwgdnNwMS0+aW5mby0+cnBmX2NvdW50OyArK2kpIHsKPiAgCQlzdHJ1Y3QgdnNwMV9yd3BmICpp bnB1dCA9IHZzcDEtPnJwZltpXTsKPiAgCj4gIAkJSU5JVF9MSVNUX0hFQUQoJmlucHV0LT5lbnRp dHkubGlzdF9waXBlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5l c2FzL3ZzcDEvdnNwMV9kcnYuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3Ax L3ZzcDFfZHJ2LmMKPiBpbmRleCA2MjdiNTA0NmZhODAuLjNmYTVhNDQxNWZjNiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2Rydi5jCj4gKysr IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9kcnYuYwo+IEBAIC01 MSwxMCArNTEsOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdnNwMV9pcnFfaGFuZGxlcihpbnQgaXJx LCB2b2lkICpkYXRhKQo+ICAJCSAgIFZJNl9XUEZfSVJRX1NUQV9VTkQ7Cj4gIAlzdHJ1Y3QgdnNw MV9kZXZpY2UgKnZzcDEgPSBkYXRhOwo+ICAJaXJxcmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7Cj4g LQl1bnNpZ25lZCBpbnQgaTsKPiAgCXUzMiBzdGF0dXM7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8 IHZzcDEtPmluZm8tPndwZl9jb3VudDsgKytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0g MDsgaSA8IHZzcDEtPmluZm8tPndwZl9jb3VudDsgKytpKSB7Cj4gIAkJc3RydWN0IHZzcDFfcndw ZiAqd3BmID0gdnNwMS0+d3BmW2ldOwo+ICAKPiAgCQlpZiAod3BmID09IE5VTEwpCj4gQEAgLTEw Myw3ICsxMDIsNiBAQCBzdGF0aWMgaW50IHZzcDFfY3JlYXRlX3NpbmtfbGlua3Moc3RydWN0IHZz cDFfZGV2aWNlICp2c3AxLAo+ICB7Cj4gIAlzdHJ1Y3QgbWVkaWFfZW50aXR5ICplbnRpdHkgPSAm c2luay0+c3ViZGV2LmVudGl0eTsKPiAgCXN0cnVjdCB2c3AxX2VudGl0eSAqc291cmNlOwo+IC0J dW5zaWduZWQgaW50IHBhZDsKPiAgCWludCByZXQ7Cj4gIAo+ICAJbGlzdF9mb3JfZWFjaF9lbnRy eShzb3VyY2UsICZ2c3AxLT5lbnRpdGllcywgbGlzdF9kZXYpIHsKPiBAQCAtMTIzLDcgKzEyMSw3 IEBAIHN0YXRpYyBpbnQgdnNwMV9jcmVhdGVfc2lua19saW5rcyhzdHJ1Y3QgdnNwMV9kZXZpY2Ug KnZzcDEsCj4gIAkJCXNvdXJjZS0+aW5kZXggPT0gc2luay0+aW5kZXgKPiAgCQkgICAgICA/IE1F RElBX0xOS19GTF9FTkFCTEVEIDogMDsKPiAgCj4gLQkJZm9yIChwYWQgPSAwOyBwYWQgPCBlbnRp dHktPm51bV9wYWRzOyArK3BhZCkgewo+ICsJCWZvciAodW5zaWduZWQgaW50IHBhZCA9IDA7IHBh ZCA8IGVudGl0eS0+bnVtX3BhZHM7ICsrcGFkKSB7Cj4gIAkJCWlmICghKGVudGl0eS0+cGFkc1tw YWRdLmZsYWdzICYgTUVESUFfUEFEX0ZMX1NJTkspKQo+ICAJCQkJY29udGludWU7Cj4gIAo+IEBA IC0xNDQsNyArMTQyLDYgQEAgc3RhdGljIGludCB2c3AxX2NyZWF0ZV9zaW5rX2xpbmtzKHN0cnVj dCB2c3AxX2RldmljZSAqdnNwMSwKPiAgc3RhdGljIGludCB2c3AxX3VhcGlfY3JlYXRlX2xpbmtz KHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSkKPiAgewo+ICAJc3RydWN0IHZzcDFfZW50aXR5ICpl bnRpdHk7Cj4gLQl1bnNpZ25lZCBpbnQgaTsKPiAgCWludCByZXQ7Cj4gIAo+ICAJbGlzdF9mb3Jf ZWFjaF9lbnRyeShlbnRpdHksICZ2c3AxLT5lbnRpdGllcywgbGlzdF9kZXYpIHsKPiBAQCAtMTc3 LDcgKzE3NCw3IEBAIHN0YXRpYyBpbnQgdnNwMV91YXBpX2NyZWF0ZV9saW5rcyhzdHJ1Y3QgdnNw MV9kZXZpY2UgKnZzcDEpCj4gIAkJCXJldHVybiByZXQ7Cj4gIAl9Cj4gIAo+IC0JZm9yIChpID0g MDsgaSA8IHZzcDEtPmluZm8tPmxpZl9jb3VudDsgKytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGlu dCBpID0gMDsgaSA8IHZzcDEtPmluZm8tPmxpZl9jb3VudDsgKytpKSB7Cj4gIAkJaWYgKCF2c3Ax LT5saWZbaV0pCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiBAQCAtMTg5LDcgKzE4Niw3IEBAIHN0YXRp YyBpbnQgdnNwMV91YXBpX2NyZWF0ZV9saW5rcyhzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEpCj4g IAkJCXJldHVybiByZXQ7Cj4gIAl9Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IHZzcDEtPmluZm8t PnJwZl9jb3VudDsgKytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHZzcDEt PmluZm8tPnJwZl9jb3VudDsgKytpKSB7Cj4gIAkJc3RydWN0IHZzcDFfcndwZiAqcnBmID0gdnNw MS0+cnBmW2ldOwo+ICAKPiAgCQlyZXQgPSBtZWRpYV9jcmVhdGVfcGFkX2xpbmsoJnJwZi0+dmlk ZW8tPnZpZGVvLmVudGl0eSwgMCwKPiBAQCAtMjAxLDcgKzE5OCw3IEBAIHN0YXRpYyBpbnQgdnNw MV91YXBpX2NyZWF0ZV9saW5rcyhzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEpCj4gIAkJCXJldHVy biByZXQ7Cj4gIAl9Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IHZzcDEtPmluZm8tPndwZl9jb3Vu dDsgKytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHZzcDEtPmluZm8tPndw Zl9jb3VudDsgKytpKSB7Cj4gIAkJLyoKPiAgCQkgKiBDb25uZWN0IHRoZSB2aWRlbyBkZXZpY2Ug dG8gdGhlIFdQRi4gQWxsIGNvbm5lY3Rpb25zIGFyZQo+ICAJCSAqIGltbXV0YWJsZS4KPiBAQCAt MjUzLDcgKzI1MCw2IEBAIHN0YXRpYyBpbnQgdnNwMV9jcmVhdGVfZW50aXRpZXMoc3RydWN0IHZz cDFfZGV2aWNlICp2c3AxKQo+ICAJc3RydWN0IG1lZGlhX2RldmljZSAqbWRldiA9ICZ2c3AxLT5t ZWRpYV9kZXY7Cj4gIAlzdHJ1Y3QgdjRsMl9kZXZpY2UgKnZkZXYgPSAmdnNwMS0+djRsMl9kZXY7 Cj4gIAlzdHJ1Y3QgdnNwMV9lbnRpdHkgKmVudGl0eTsKPiAtCXVuc2lnbmVkIGludCBpOwo+ICAJ aW50IHJldDsKPiAgCj4gIAltZGV2LT5kZXYgPSB2c3AxLT5kZXY7Cj4gQEAgLTM2NSw3ICszNjEs NyBAQCBzdGF0aWMgaW50IHZzcDFfY3JlYXRlX2VudGl0aWVzKHN0cnVjdCB2c3AxX2RldmljZSAq dnNwMSkKPiAgCSAqIGVuYWJsZWQgc2tpcCB0aGUgTElGcywgZXZlbiB3aGVuIHByZXNlbnQuCj4g IAkgKi8KPiAgCWlmICghdnNwMS0+aW5mby0+dWFwaSkgewo+IC0JCWZvciAoaSA9IDA7IGkgPCB2 c3AxLT5pbmZvLT5saWZfY291bnQ7ICsraSkgewo+ICsJCWZvciAodW5zaWduZWQgaW50IGkgPSAw OyBpIDwgdnNwMS0+aW5mby0+bGlmX2NvdW50OyArK2kpIHsKPiAgCQkJc3RydWN0IHZzcDFfbGlm ICpsaWY7Cj4gIAo+ICAJCQlsaWYgPSB2c3AxX2xpZl9jcmVhdGUodnNwMSwgaSk7Cj4gQEAgLTM4 OSw3ICszODUsNyBAQCBzdGF0aWMgaW50IHZzcDFfY3JlYXRlX2VudGl0aWVzKHN0cnVjdCB2c3Ax X2RldmljZSAqdnNwMSkKPiAgCQlsaXN0X2FkZF90YWlsKCZ2c3AxLT5sdXQtPmVudGl0eS5saXN0 X2RldiwgJnZzcDEtPmVudGl0aWVzKTsKPiAgCX0KPiAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgdnNw MS0+aW5mby0+cnBmX2NvdW50OyArK2kpIHsKPiArCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp IDwgdnNwMS0+aW5mby0+cnBmX2NvdW50OyArK2kpIHsKPiAgCQlzdHJ1Y3QgdnNwMV9yd3BmICpy cGY7Cj4gIAo+ICAJCXJwZiA9IHZzcDFfcnBmX2NyZWF0ZSh2c3AxLCBpKTsKPiBAQCAtNDIzLDcg KzQxOSw3IEBAIHN0YXRpYyBpbnQgdnNwMV9jcmVhdGVfZW50aXRpZXMoc3RydWN0IHZzcDFfZGV2 aWNlICp2c3AxKQo+ICAJCWxpc3RfYWRkX3RhaWwoJnZzcDEtPnNydS0+ZW50aXR5Lmxpc3RfZGV2 LCAmdnNwMS0+ZW50aXRpZXMpOwo+ICAJfQo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCB2c3AxLT5p bmZvLT51ZHNfY291bnQ7ICsraSkgewo+ICsJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCB2 c3AxLT5pbmZvLT51ZHNfY291bnQ7ICsraSkgewo+ICAJCXN0cnVjdCB2c3AxX3VkcyAqdWRzOwo+ ICAKPiAgCQl1ZHMgPSB2c3AxX3Vkc19jcmVhdGUodnNwMSwgaSk7Cj4gQEAgLTQzNiw3ICs0MzIs NyBAQCBzdGF0aWMgaW50IHZzcDFfY3JlYXRlX2VudGl0aWVzKHN0cnVjdCB2c3AxX2RldmljZSAq dnNwMSkKPiAgCQlsaXN0X2FkZF90YWlsKCZ1ZHMtPmVudGl0eS5saXN0X2RldiwgJnZzcDEtPmVu dGl0aWVzKTsKPiAgCX0KPiAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgdnNwMS0+aW5mby0+dWlmX2Nv dW50OyArK2kpIHsKPiArCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgdnNwMS0+aW5mby0+ dWlmX2NvdW50OyArK2kpIHsKPiAgCQlzdHJ1Y3QgdnNwMV91aWYgKnVpZjsKPiAgCj4gIAkJdWlm ID0gdnNwMV91aWZfY3JlYXRlKHZzcDEsIGkpOwo+IEBAIC00NDksNyArNDQ1LDcgQEAgc3RhdGlj IGludCB2c3AxX2NyZWF0ZV9lbnRpdGllcyhzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEpCj4gIAkJ bGlzdF9hZGRfdGFpbCgmdWlmLT5lbnRpdHkubGlzdF9kZXYsICZ2c3AxLT5lbnRpdGllcyk7Cj4g IAl9Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IHZzcDEtPmluZm8tPndwZl9jb3VudDsgKytpKSB7 Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHZzcDEtPmluZm8tPndwZl9jb3VudDsg KytpKSB7Cj4gIAkJc3RydWN0IHZzcDFfcndwZiAqd3BmOwo+ICAKPiAgCQl3cGYgPSB2c3AxX3dw Zl9jcmVhdGUodnNwMSwgaSk7Cj4gQEAgLTU0MywxMSArNTM5LDEwIEBAIGludCB2c3AxX3Jlc2V0 X3dwZihzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEsIHVuc2lnbmVkIGludCBpbmRleCkKPiAgCj4g IHN0YXRpYyBpbnQgdnNwMV9kZXZpY2VfaW5pdChzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEpCj4g IHsKPiAtCXVuc2lnbmVkIGludCBpOwo+ICAJaW50IHJldDsKPiAgCj4gIAkvKiBSZXNldCBhbnkg Y2hhbm5lbCB0aGF0IG1pZ2h0IGJlIHJ1bm5pbmcuICovCj4gLQlmb3IgKGkgPSAwOyBpIDwgdnNw MS0+aW5mby0+d3BmX2NvdW50OyArK2kpIHsKPiArCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp IDwgdnNwMS0+aW5mby0+d3BmX2NvdW50OyArK2kpIHsKPiAgCQlyZXQgPSB2c3AxX3Jlc2V0X3dw Zih2c3AxLCBpKTsKPiAgCQlpZiAocmV0IDwgMCkKPiAgCQkJcmV0dXJuIHJldDsKPiBAQCAtNTU2 LDEzICs1NTEsMTMgQEAgc3RhdGljIGludCB2c3AxX2RldmljZV9pbml0KHN0cnVjdCB2c3AxX2Rl dmljZSAqdnNwMSkKPiAgCXZzcDFfd3JpdGUodnNwMSwgVkk2X0NMS19EQ1NXVCwgKDggPDwgVkk2 X0NMS19EQ1NXVF9DU1RQV19TSElGVCkgfAo+ICAJCSAgICg4IDw8IFZJNl9DTEtfRENTV1RfQ1NU UldfU0hJRlQpKTsKPiAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgdnNwMS0+aW5mby0+cnBmX2NvdW50 OyArK2kpCj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHZzcDEtPmluZm8tPnJwZl9j b3VudDsgKytpKQo+ICAJCXZzcDFfd3JpdGUodnNwMSwgVkk2X0RQUl9SUEZfUk9VVEUoaSksIFZJ Nl9EUFJfTk9ERV9VTlVTRUQpOwo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCB2c3AxLT5pbmZvLT51 ZHNfY291bnQ7ICsraSkKPiArCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgdnNwMS0+aW5m by0+dWRzX2NvdW50OyArK2kpCj4gIAkJdnNwMV93cml0ZSh2c3AxLCBWSTZfRFBSX1VEU19ST1VU RShpKSwgVkk2X0RQUl9OT0RFX1VOVVNFRCk7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IHZzcDEt PmluZm8tPnVpZl9jb3VudDsgKytpKQo+ICsJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCB2 c3AxLT5pbmZvLT51aWZfY291bnQ7ICsraSkKPiAgCQl2c3AxX3dyaXRlKHZzcDEsIFZJNl9EUFJf VUlGX1JPVVRFKGkpLCBWSTZfRFBSX05PREVfVU5VU0VEKTsKPiAgCj4gIAl2c3AxX3dyaXRlKHZz cDEsIFZJNl9EUFJfU1JVX1JPVVRFLCBWSTZfRFBSX05PREVfVU5VU0VEKTsKPiBAQCAtNTg3LDEx ICs1ODIsOSBAQCBzdGF0aWMgaW50IHZzcDFfZGV2aWNlX2luaXQoc3RydWN0IHZzcDFfZGV2aWNl ICp2c3AxKQo+ICAKPiAgc3RhdGljIHZvaWQgdnNwMV9tYXNrX2FsbF9pbnRlcnJ1cHRzKHN0cnVj dCB2c3AxX2RldmljZSAqdnNwMSkKPiAgewo+IC0JdW5zaWduZWQgaW50IGk7Cj4gLQo+IC0JZm9y IChpID0gMDsgaSA8IHZzcDEtPmluZm8tPmxpZl9jb3VudDsgKytpKQo+ICsJZm9yICh1bnNpZ25l ZCBpbnQgaSA9IDA7IGkgPCB2c3AxLT5pbmZvLT5saWZfY291bnQ7ICsraSkKPiAgCQl2c3AxX3dy aXRlKHZzcDEsIFZJNl9ESVNQX0lSUV9FTkIoaSksIDApOwo+IC0JZm9yIChpID0gMDsgaSA8IHZz cDEtPmluZm8tPndwZl9jb3VudDsgKytpKQo+ICsJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg PCB2c3AxLT5pbmZvLT53cGZfY291bnQ7ICsraSkKPiAgCQl2c3AxX3dyaXRlKHZzcDEsIFZJNl9X UEZfSVJRX0VOQihpKSwgMCk7Cj4gIH0KPiAgCj4gQEAgLTg5MSw3ICs4ODQsNiBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHZzcDFfZGV2aWNlX2luZm8gcnpnMmxfdnNwMl9kZXZpY2VfaW5mbyA9IHsK PiAgc3RhdGljIGNvbnN0IHN0cnVjdCB2c3AxX2RldmljZV9pbmZvICp2c3AxX2xvb2t1cF9pbmZv KHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSkKPiAgewo+ICAJY29uc3Qgc3RydWN0IHZzcDFfZGV2 aWNlX2luZm8gKmluZm87Cj4gLQl1bnNpZ25lZCBpbnQgaTsKPiAgCXUzMiBtb2RlbDsKPiAgCXUz MiBzb2M7Cj4gIAo+IEBAIC05MDksNyArOTAxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2c3Ax X2RldmljZV9pbmZvICp2c3AxX2xvb2t1cF9pbmZvKHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSkK PiAgCW1vZGVsID0gdnNwMS0+dmVyc2lvbiAmIFZJNl9JUF9WRVJTSU9OX01PREVMX01BU0s7Cj4g IAlzb2MgPSB2c3AxLT52ZXJzaW9uICYgVkk2X0lQX1ZFUlNJT05fU09DX01BU0s7Cj4gIAo+IC0J Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodnNwMV9kZXZpY2VfaW5mb3MpOyArK2kpIHsKPiAr CWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRSh2c3AxX2RldmljZV9pbmZv cyk7ICsraSkgewo+ICAJCWluZm8gPSAmdnNwMV9kZXZpY2VfaW5mb3NbaV07Cj4gIAo+ICAJCWlm IChtb2RlbCA9PSBpbmZvLT52ZXJzaW9uICYmICghaW5mby0+c29jIHx8IHNvYyA9PSBpbmZvLT5z b2MpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92 c3AxX2VudGl0eS5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9l bnRpdHkuYwo+IGluZGV4IDJhZTJhNTczZjBkZS4uMjZiMjE1NTk4NzhkIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfZW50aXR5LmMKPiArKysg Yi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2VudGl0eS5jCj4gQEAg LTM3MiwxMCArMzcyLDggQEAgaW50IHZzcDFfc3ViZGV2X3NldF9wYWRfZm9ybWF0KHN0cnVjdCB2 NGwyX3N1YmRldiAqc3ViZGV2LAo+ICBzdGF0aWMgaW50IHZzcDFfZW50aXR5X2luaXRfc3RhdGUo c3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCj4gIAkJCQkgIHN0cnVjdCB2NGwyX3N1YmRldl9z dGF0ZSAqc2Rfc3RhdGUpCj4gIHsKPiAtCXVuc2lnbmVkIGludCBwYWQ7Cj4gLQo+ICAJLyogSW5p dGlhbGl6ZSBhbGwgcGFkIGZvcm1hdHMgd2l0aCBkZWZhdWx0IHZhbHVlcy4gKi8KPiAtCWZvciAo cGFkID0gMDsgcGFkIDwgc3ViZGV2LT5lbnRpdHkubnVtX3BhZHMgLSAxOyArK3BhZCkgewo+ICsJ Zm9yICh1bnNpZ25lZCBpbnQgcGFkID0gMDsgcGFkIDwgc3ViZGV2LT5lbnRpdHkubnVtX3BhZHMg LSAxOyArK3BhZCkgewo+ICAJCXN0cnVjdCB2NGwyX3N1YmRldl9mb3JtYXQgZm9ybWF0ID0gewo+ ICAJCQkucGFkID0gcGFkLAo+ICAJCQkud2hpY2ggPSBzZF9zdGF0ZSA/IFY0TDJfU1VCREVWX0ZP Uk1BVF9UUlkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3Zz cDEvdnNwMV9oZ28uYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFf aGdvLmMKPiBpbmRleCAwZWY1MTJlM2E5NGIuLmQzZWFhN2MyZDU5NSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2hnby5jCj4gKysrIGIvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9oZ28uYwo+IEBAIC00Miw3ICs0 Miw2IEBAIHZvaWQgdnNwMV9oZ29fZnJhbWVfZW5kKHN0cnVjdCB2c3AxX2VudGl0eSAqZW50aXR5 KQo+ICB7Cj4gIAlzdHJ1Y3QgdnNwMV9oZ28gKmhnbyA9IHRvX2hnbygmZW50aXR5LT5zdWJkZXYp Owo+ICAJc3RydWN0IHZzcDFfaGlzdG9ncmFtX2J1ZmZlciAqYnVmOwo+IC0JdW5zaWduZWQgaW50 IGk7Cj4gIAlzaXplX3Qgc2l6ZTsKPiAgCXUzMiAqZGF0YTsKPiAgCj4gQEAgLTU2LDcgKzU1LDcg QEAgdm9pZCB2c3AxX2hnb19mcmFtZV9lbmQoc3RydWN0IHZzcDFfZW50aXR5ICplbnRpdHkpCj4g IAkJKmRhdGErKyA9IHZzcDFfaGdvX3JlYWQoaGdvLCBWSTZfSEdPX0dfTUFYTUlOKTsKPiAgCQkq ZGF0YSsrID0gdnNwMV9oZ29fcmVhZChoZ28sIFZJNl9IR09fR19TVU0pOwo+ICAKPiAtCQlmb3Ig KGkgPSAwOyBpIDwgMjU2OyArK2kpIHsKPiArCQlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8 IDI1NjsgKytpKSB7Cj4gIAkJCXZzcDFfd3JpdGUoaGdvLT5oaXN0by5lbnRpdHkudnNwMSwKPiAg CQkJCSAgIFZJNl9IR09fRVhUX0hJU1RfQUREUiwgaSk7Cj4gIAkJCSpkYXRhKysgPSB2c3AxX2hn b19yZWFkKGhnbywgVkk2X0hHT19FWFRfSElTVF9EQVRBKTsKPiBAQCAtNjcsNyArNjYsNyBAQCB2 b2lkIHZzcDFfaGdvX2ZyYW1lX2VuZChzdHJ1Y3QgdnNwMV9lbnRpdHkgKmVudGl0eSkKPiAgCQkq ZGF0YSsrID0gdnNwMV9oZ29fcmVhZChoZ28sIFZJNl9IR09fR19NQVhNSU4pOwo+ICAJCSpkYXRh KysgPSB2c3AxX2hnb19yZWFkKGhnbywgVkk2X0hHT19HX1NVTSk7Cj4gIAo+IC0JCWZvciAoaSA9 IDA7IGkgPCA2NDsgKytpKQo+ICsJCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgNjQ7ICsr aSkKPiAgCQkJKmRhdGErKyA9IHZzcDFfaGdvX3JlYWQoaGdvLCBWSTZfSEdPX0dfSElTVE8oaSkp Owo+ICAKPiAgCQlzaXplID0gKDIgKyA2NCkgKiBzaXplb2YodTMyKTsKPiBAQCAtODAsNyArNzks NyBAQCB2b2lkIHZzcDFfaGdvX2ZyYW1lX2VuZChzdHJ1Y3QgdnNwMV9lbnRpdHkgKmVudGl0eSkK PiAgCQkqZGF0YSsrID0gdnNwMV9oZ29fcmVhZChoZ28sIFZJNl9IR09fR19TVU0pOwo+ICAJCSpk YXRhKysgPSB2c3AxX2hnb19yZWFkKGhnbywgVkk2X0hHT19CX1NVTSk7Cj4gIAo+IC0JCWZvciAo aSA9IDA7IGkgPCA2NDsgKytpKSB7Cj4gKwkJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCA2 NDsgKytpKSB7Cj4gIAkJCWRhdGFbaV0gPSB2c3AxX2hnb19yZWFkKGhnbywgVkk2X0hHT19SX0hJ U1RPKGkpKTsKPiAgCQkJZGF0YVtpKzY0XSA9IHZzcDFfaGdvX3JlYWQoaGdvLCBWSTZfSEdPX0df SElTVE8oaSkpOwo+ICAJCQlkYXRhW2krMTI4XSA9IHZzcDFfaGdvX3JlYWQoaGdvLCBWSTZfSEdP X0JfSElTVE8oaSkpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVz YXMvdnNwMS92c3AxX2hndC5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEv dnNwMV9oZ3QuYwo+IGluZGV4IDc4YjVhOTIwMWM3MC4uOGMwNGJkZWM4NTEwIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfaGd0LmMKPiArKysg Yi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2hndC5jCj4gQEAgLTQy LDggKzQyLDYgQEAgdm9pZCB2c3AxX2hndF9mcmFtZV9lbmQoc3RydWN0IHZzcDFfZW50aXR5ICpl bnRpdHkpCj4gIHsKPiAgCXN0cnVjdCB2c3AxX2hndCAqaGd0ID0gdG9faGd0KCZlbnRpdHktPnN1 YmRldik7Cj4gIAlzdHJ1Y3QgdnNwMV9oaXN0b2dyYW1fYnVmZmVyICpidWY7Cj4gLQl1bnNpZ25l ZCBpbnQgbTsKPiAtCXVuc2lnbmVkIGludCBuOwo+ICAJdTMyICpkYXRhOwo+ICAKPiAgCWJ1ZiA9 IHZzcDFfaGlzdG9ncmFtX2J1ZmZlcl9nZXQoJmhndC0+aGlzdG8pOwo+IEBAIC01NSw5ICs1Mywx MCBAQCB2b2lkIHZzcDFfaGd0X2ZyYW1lX2VuZChzdHJ1Y3QgdnNwMV9lbnRpdHkgKmVudGl0eSkK PiAgCSpkYXRhKysgPSB2c3AxX2hndF9yZWFkKGhndCwgVkk2X0hHVF9NQVhNSU4pOwo+ICAJKmRh dGErKyA9IHZzcDFfaGd0X3JlYWQoaGd0LCBWSTZfSEdUX1NVTSk7Cj4gIAo+IC0JZm9yIChtID0g MDsgbSA8IDY7ICsrbSkKPiAtCQlmb3IgKG4gPSAwOyBuIDwgMzI7ICsrbikKPiArCWZvciAodW5z aWduZWQgaW50IG0gPSAwOyBtIDwgNjsgKyttKSB7Cj4gKwkJZm9yICh1bnNpZ25lZCBpbnQgbiA9 IDA7IG4gPCAzMjsgKytuKQo+ICAJCQkqZGF0YSsrID0gdnNwMV9oZ3RfcmVhZChoZ3QsIFZJNl9I R1RfSElTVE8obSwgbikpOwo+ICsJfQo+ICAKPiAgCXZzcDFfaGlzdG9ncmFtX2J1ZmZlcl9jb21w bGV0ZSgmaGd0LT5oaXN0bywgYnVmLCBIR1RfREFUQV9TSVpFKTsKPiAgfQo+IEBAIC03MSw3ICs3 MCw2IEBAIHZvaWQgdnNwMV9oZ3RfZnJhbWVfZW5kKHN0cnVjdCB2c3AxX2VudGl0eSAqZW50aXR5 KQo+ICBzdGF0aWMgaW50IGhndF9odWVfYXJlYXNfdHJ5X2N0cmwoc3RydWN0IHY0bDJfY3RybCAq Y3RybCkKPiAgewo+ICAJY29uc3QgdTggKnZhbHVlcyA9IGN0cmwtPnBfbmV3LnBfdTg7Cj4gLQl1 bnNpZ25lZCBpbnQgaTsKPiAgCj4gIAkvKgo+ICAJICogVGhlIGhhcmR3YXJlIGhhcyBjb25zdHJh aW50cyBvbiB0aGUgaHVlIGFyZWEgYm91bmRhcmllcyBiZXlvbmQgdGhlCj4gQEAgLTgzLDcgKzgx LDcgQEAgc3RhdGljIGludCBoZ3RfaHVlX2FyZWFzX3RyeV9jdHJsKHN0cnVjdCB2NGwyX2N0cmwg KmN0cmwpCj4gIAkgKgo+ICAJICogU3RhcnQgYnkgdmVyaWZ5aW5nIHRoZSBjb21tb24gcGFydC4u Lgo+ICAJICovCj4gLQlmb3IgKGkgPSAxOyBpIDwgKEhHVF9OVU1fSFVFX0FSRUFTICogMikgLSAx OyArK2kpIHsKPiArCWZvciAodW5zaWduZWQgaW50IGkgPSAxOyBpIDwgKEhHVF9OVU1fSFVFX0FS RUFTICogMikgLSAxOyArK2kpIHsKPiAgCQlpZiAodmFsdWVzW2ldID4gdmFsdWVzW2krMV0pCj4g IAkJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+IEBAIC0xMzgsNyArMTM2LDYgQEAgc3RhdGljIHZv aWQgaGd0X2NvbmZpZ3VyZV9zdHJlYW0oc3RydWN0IHZzcDFfZW50aXR5ICplbnRpdHksCj4gIAl1 bnNpZ25lZCBpbnQgdnJhdGlvOwo+ICAJdTggbG93ZXI7Cj4gIAl1OCB1cHBlcjsKPiAtCXVuc2ln bmVkIGludCBpOwo+ICAKPiAgCWNyb3AgPSB2NGwyX3N1YmRldl9zdGF0ZV9nZXRfY3JvcChzdGF0 ZSwgSElTVE9fUEFEX1NJTkspOwo+ICAJY29tcG9zZSA9IHY0bDJfc3ViZGV2X3N0YXRlX2dldF9j b21wb3NlKHN0YXRlLCBISVNUT19QQURfU0lOSyk7Cj4gQEAgLTE1Myw3ICsxNTAsNyBAQCBzdGF0 aWMgdm9pZCBoZ3RfY29uZmlndXJlX3N0cmVhbShzdHJ1Y3QgdnNwMV9lbnRpdHkgKmVudGl0eSwK PiAgCQkgICAgICAgKGNyb3AtPmhlaWdodCA8PCBWSTZfSEdUX1NJWkVfVlNJWkVfU0hJRlQpKTsK PiAgCj4gIAlzY29wZWRfZ3VhcmQobXV0ZXgsIGhndC0+Y3RybHMubG9jaykgewo+IC0JCWZvciAo aSA9IDA7IGkgPCBIR1RfTlVNX0hVRV9BUkVBUzsgKytpKSB7Cj4gKwkJZm9yICh1bnNpZ25lZCBp bnQgaSA9IDA7IGkgPCBIR1RfTlVNX0hVRV9BUkVBUzsgKytpKSB7Cj4gIAkJCWxvd2VyID0gaGd0 LT5odWVfYXJlYXNbaSoyICsgMF07Cj4gIAkJCXVwcGVyID0gaGd0LT5odWVfYXJlYXNbaSoyICsg MV07Cj4gIAkJCXZzcDFfaGd0X3dyaXRlKGhndCwgZGxiLCBWSTZfSEdUX0hVRV9BUkVBKGkpLAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2x1 dC5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9sdXQuYwo+IGlu ZGV4IGEyMmMzMWUxN2NiNy4uNjQzM2I1NTE1ZWY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVk aWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfbHV0LmMKPiArKysgYi9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2x1dC5jCj4gQEAgLTQwLDEzICs0MCwxMiBAQCBz dGF0aWMgaW5saW5lIHZvaWQgdnNwMV9sdXRfd3JpdGUoc3RydWN0IHZzcDFfbHV0ICpsdXQsCj4g IHN0YXRpYyBpbnQgbHV0X3NldF90YWJsZShzdHJ1Y3QgdnNwMV9sdXQgKmx1dCwgc3RydWN0IHY0 bDJfY3RybCAqY3RybCkKPiAgewo+ICAJc3RydWN0IHZzcDFfZGxfYm9keSAqZGxiOwo+IC0JdW5z aWduZWQgaW50IGk7Cj4gIAo+ICAJZGxiID0gdnNwMV9kbF9ib2R5X2dldChsdXQtPnBvb2wpOwo+ ICAJaWYgKCFkbGIpCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8 IExVVF9TSVpFOyArK2kpCj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IExVVF9TSVpF OyArK2kpCj4gIAkJdnNwMV9kbF9ib2R5X3dyaXRlKGRsYiwgVkk2X0xVVF9UQUJMRSArIDQgKiBp LAo+ICAJCQkJICAgICAgIGN0cmwtPnBfbmV3LnBfdTMyW2ldKTsKPiAgCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfcGlwZS5jIGIvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9waXBlLmMKPiBpbmRleCA3MTk3ZjI5 MTc0MTcuLmNhMGVjMDBiOWRlYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3JlbmVzYXMvdnNwMS92c3AxX3BpcGUuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v cmVuZXNhcy92c3AxL3ZzcDFfcGlwZS5jCj4gQEAgLTM5MSwxNiArMzkxLDE1IEBAIHZvaWQgdnNw MV9hZGp1c3RfY29sb3Jfc3BhY2UodTMyIGNvZGUsIHUzMiAqY29sb3JzcGFjZSwgdTggKnhmZXJf ZnVuYywKPiAgdm9pZCB2c3AxX3BpcGVsaW5lX3Jlc2V0KHN0cnVjdCB2c3AxX3BpcGVsaW5lICpw aXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgdnNwMV9lbnRpdHkgKmVudGl0eTsKPiAtCXVuc2lnbmVkIGlu dCBpOwo+ICAKPiAgCWlmIChwaXBlLT5icngpIHsKPiAgCQlzdHJ1Y3QgdnNwMV9icnggKmJyeCA9 IHRvX2JyeCgmcGlwZS0+YnJ4LT5zdWJkZXYpOwo+ICAKPiAtCQlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShicngtPmlucHV0cyk7ICsraSkKPiArCQlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg aSA8IEFSUkFZX1NJWkUoYnJ4LT5pbnB1dHMpOyArK2kpCj4gIAkJCWJyeC0+aW5wdXRzW2ldLnJw ZiA9IE5VTEw7Cj4gIAl9Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocGlwZS0+ aW5wdXRzKTsgKytpKQo+ICsJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpF KHBpcGUtPmlucHV0cyk7ICsraSkKPiAgCQlwaXBlLT5pbnB1dHNbaV0gPSBOVUxMOwo+ICAKPiAg CXBpcGUtPm91dHB1dCA9IE5VTEw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vcmVuZXNhcy92c3AxL3ZzcDFfdmlkZW8uYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVu ZXNhcy92c3AxL3ZzcDFfdmlkZW8uYwo+IGluZGV4IGIwZWFlNTQyNzNhMC4uZmE1N2UyNDFmODI3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFf dmlkZW8uYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFf dmlkZW8uYwo+IEBAIC0xMDQsMTQgKzEwNCwxMyBAQCBzdGF0aWMgaW50IF9fdnNwMV92aWRlb190 cnlfZm9ybWF0KHN0cnVjdCB2c3AxX3ZpZGVvICp2aWRlbywKPiAgCWNvbnN0IHN0cnVjdCB2c3Ax X2Zvcm1hdF9pbmZvICppbmZvOwo+ICAJdW5zaWduZWQgaW50IHdpZHRoID0gcGl4LT53aWR0aDsK PiAgCXVuc2lnbmVkIGludCBoZWlnaHQgPSBwaXgtPmhlaWdodDsKPiAtCXVuc2lnbmVkIGludCBp Owo+ICAKPiAgCS8qCj4gIAkgKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5OiByZXBsYWNlIGRlcHJl Y2F0ZWQgUkdCIGZvcm1hdHMgYnkgdGhlaXIgWFJHQgo+ICAJICogZXF1aXZhbGVudC4gVGhpcyBz ZWxlY3RzIHRoZSBmb3JtYXQgb2xkZXIgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucyB3YW50Cj4gIAkg KiB3aGlsZSBzdGlsbCBleHBvc2luZyB0aGUgbmV3IGZvcm1hdC4KPiAgCSAqLwo+IC0JZm9yIChp ID0gMDsgaSA8IEFSUkFZX1NJWkUoeHJnYl9mb3JtYXRzKTsgKytpKSB7Cj4gKwlmb3IgKHVuc2ln bmVkIGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoeHJnYl9mb3JtYXRzKTsgKytpKSB7Cj4gIAkJ aWYgKHhyZ2JfZm9ybWF0c1tpXVswXSA9PSBwaXgtPnBpeGVsZm9ybWF0KSB7Cj4gIAkJCXBpeC0+ cGl4ZWxmb3JtYXQgPSB4cmdiX2Zvcm1hdHNbaV1bMV07Cj4gIAkJCWJyZWFrOwo+IEBAIC0xNjEs NyArMTYwLDcgQEAgc3RhdGljIGludCBfX3ZzcDFfdmlkZW9fdHJ5X2Zvcm1hdChzdHJ1Y3QgdnNw MV92aWRlbyAqdmlkZW8sCj4gIAkgKiB0aGUgZGF0YXNoZWV0LCBzdHJpZGVzIG5vdCBhbGlnbmVk IHRvIGEgbXVsdGlwbGUgb2YgMTI4IGJ5dGVzIHJlc3VsdAo+ICAJICogaW4gaW1hZ2UgY29ycnVw dGlvbi4KPiAgCSAqLwo+IC0JZm9yIChpID0gMDsgaSA8IG1pbihpbmZvLT5wbGFuZXMsIDJVKTsg KytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG1pbihpbmZvLT5wbGFuZXMs IDJVKTsgKytpKSB7Cj4gIAkJdW5zaWduZWQgaW50IGhzdWIgPSBpID4gMCA/IGluZm8tPmhzdWIg OiAxOwo+ICAJCXVuc2lnbmVkIGludCB2c3ViID0gaSA+IDAgPyBpbmZvLT52c3ViIDogMTsKPiAg CQl1bnNpZ25lZCBpbnQgYWxpZ24gPSAxMjg7Cj4gQEAgLTIwOSw3ICsyMDgsNiBAQCB2c3AxX3Zp ZGVvX2NvbXBsZXRlX2J1ZmZlcihzdHJ1Y3QgdnNwMV92aWRlbyAqdmlkZW8pCj4gIAlzdHJ1Y3Qg dnNwMV9waXBlbGluZSAqcGlwZSA9IHZpZGVvLT5yd3BmLT5lbnRpdHkucGlwZTsKPiAgCXN0cnVj dCB2c3AxX3ZiMl9idWZmZXIgKm5leHQgPSBOVUxMOwo+ICAJc3RydWN0IHZzcDFfdmIyX2J1ZmZl ciAqZG9uZTsKPiAtCXVuc2lnbmVkIGludCBpOwo+ICAKPiAgCXNjb3BlZF9ndWFyZChzcGlubG9j a19pcnFzYXZlLCAmdmlkZW8tPmlycWxvY2spIHsKPiAgCQlpZiAobGlzdF9lbXB0eSgmdmlkZW8t PmlycXF1ZXVlKSkKPiBAQCAtMjI3LDcgKzIyNSw3IEBAIHZzcDFfdmlkZW9fY29tcGxldGVfYnVm ZmVyKHN0cnVjdCB2c3AxX3ZpZGVvICp2aWRlbykKPiAgCj4gIAlkb25lLT5idWYuc2VxdWVuY2Ug PSBwaXBlLT5zZXF1ZW5jZTsKPiAgCWRvbmUtPmJ1Zi52YjJfYnVmLnRpbWVzdGFtcCA9IGt0aW1l X2dldF9ucygpOwo+IC0JZm9yIChpID0gMDsgaSA8IGRvbmUtPmJ1Zi52YjJfYnVmLm51bV9wbGFu ZXM7ICsraSkKPiArCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgZG9uZS0+YnVmLnZiMl9i dWYubnVtX3BsYW5lczsgKytpKQo+ICAJCXZiMl9zZXRfcGxhbmVfcGF5bG9hZCgmZG9uZS0+YnVm LnZiMl9idWYsIGksCj4gIAkJCQkgICAgICB2YjJfcGxhbmVfc2l6ZSgmZG9uZS0+YnVmLnZiMl9i dWYsIGkpKTsKPiAgCXZiMl9idWZmZXJfZG9uZSgmZG9uZS0+YnVmLnZiMl9idWYsIFZCMl9CVUZf U1RBVEVfRE9ORSk7Cj4gQEAgLTI2Nyw3ICsyNjUsNiBAQCBzdGF0aWMgdm9pZCB2c3AxX3ZpZGVv X3BpcGVsaW5lX3J1bihzdHJ1Y3QgdnNwMV9waXBlbGluZSAqcGlwZSkKPiAgCXN0cnVjdCB2c3Ax X2VudGl0eSAqZW50aXR5Owo+ICAJc3RydWN0IHZzcDFfZGxfYm9keSAqZGxiOwo+ICAJc3RydWN0 IHZzcDFfZGxfbGlzdCAqZGw7Cj4gLQl1bnNpZ25lZCBpbnQgcGFydGl0aW9uOwo+ICAKPiAgCWRs ID0gdnNwMV9kbF9saXN0X2dldChwaXBlLT5vdXRwdXQtPmRsbSk7Cj4gIAo+IEBAIC0yODksNyAr Mjg2LDcgQEAgc3RhdGljIHZvaWQgdnNwMV92aWRlb19waXBlbGluZV9ydW4oc3RydWN0IHZzcDFf cGlwZWxpbmUgKnBpcGUpCj4gIAl2c3AxX3ZpZGVvX3BpcGVsaW5lX3J1bl9wYXJ0aXRpb24ocGlw ZSwgZGwsIDApOwo+ICAKPiAgCS8qIFByb2Nlc3MgY29uc2VjdXRpdmUgcGFydGl0aW9ucyBhcyBu ZWNlc3NhcnkuICovCj4gLQlmb3IgKHBhcnRpdGlvbiA9IDE7IHBhcnRpdGlvbiA8IHBpcGUtPnBh cnRpdGlvbnM7ICsrcGFydGl0aW9uKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBwYXJ0aXRpb24g PSAxOyBwYXJ0aXRpb24gPCBwaXBlLT5wYXJ0aXRpb25zOyArK3BhcnRpdGlvbikgewo+ICAJCXN0 cnVjdCB2c3AxX2RsX2xpc3QgKmRsX25leHQ7Cj4gIAo+ICAJCWRsX25leHQgPSB2c3AxX2RsX2xp c3RfZ2V0KHBpcGUtPm91dHB1dC0+ZGxtKTsKPiBAQCAtMzIwLDEzICszMTcsMTIgQEAgc3RhdGlj IHZvaWQgdnNwMV92aWRlb19waXBlbGluZV9mcmFtZV9lbmQoc3RydWN0IHZzcDFfcGlwZWxpbmUg KnBpcGUsCj4gIHsKPiAgCXN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSA9IHBpcGUtPm91dHB1dC0+ ZW50aXR5LnZzcDE7Cj4gIAllbnVtIHZzcDFfcGlwZWxpbmVfc3RhdGUgc3RhdGU7Cj4gLQl1bnNp Z25lZCBpbnQgaTsKPiAgCj4gIAkvKiBNMk0gUGlwZWxpbmVzIHNob3VsZCBuZXZlciBjYWxsIGhl cmUgd2l0aCBhbiBpbmNvbXBsZXRlIGZyYW1lLiAqLwo+ICAJV0FSTl9PTl9PTkNFKCEoY29tcGxl dGlvbiAmIFZTUDFfRExfRlJBTUVfRU5EX0NPTVBMRVRFRCkpOwo+ICAKPiAgCS8qIENvbXBsZXRl IGJ1ZmZlcnMgb24gYWxsIHZpZGVvIG5vZGVzLiAqLwo+IC0JZm9yIChpID0gMDsgaSA8IHZzcDEt PmluZm8tPnJwZl9jb3VudDsgKytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8 IHZzcDEtPmluZm8tPnJwZl9jb3VudDsgKytpKSB7Cj4gIAkJaWYgKCFwaXBlLT5pbnB1dHNbaV0p Cj4gIAkJCWNvbnRpbnVlOwo+ICAKPiBAQCAtNDQ0LDcgKzQ0MCw2IEBAIHN0YXRpYyBpbnQgdnNw MV92aWRlb19waXBlbGluZV9idWlsZChzdHJ1Y3QgdnNwMV9waXBlbGluZSAqcGlwZSwKPiAgCXN0 cnVjdCBtZWRpYV9ncmFwaCBncmFwaDsKPiAgCXN0cnVjdCBtZWRpYV9lbnRpdHkgKmVudGl0eSA9 ICZ2aWRlby0+dmlkZW8uZW50aXR5Owo+ICAJc3RydWN0IG1lZGlhX2RldmljZSAqbWRldiA9IGVu dGl0eS0+Z3JhcGhfb2JqLm1kZXY7Cj4gLQl1bnNpZ25lZCBpbnQgaTsKPiAgCWludCByZXQ7Cj4g IAo+ICAJLyogV2FsayB0aGUgZ3JhcGggdG8gbG9jYXRlIHRoZSBlbnRpdGllcyBhbmQgdmlkZW8g bm9kZXMuICovCj4gQEAgLTUxMiw3ICs1MDcsNyBAQCBzdGF0aWMgaW50IHZzcDFfdmlkZW9fcGlw ZWxpbmVfYnVpbGQoc3RydWN0IHZzcDFfcGlwZWxpbmUgKnBpcGUsCj4gIAkgKiBGb2xsb3cgbGlu a3MgZG93bnN0cmVhbSBmb3IgZWFjaCBpbnB1dCBhbmQgbWFrZSBzdXJlIHRoZSBncmFwaAo+ICAJ ICogY29udGFpbnMgbm8gbG9vcCBhbmQgdGhhdCBhbGwgYnJhbmNoZXMgZW5kIGF0IHRoZSBvdXRw dXQgV1BGLgo+ICAJICovCj4gLQlmb3IgKGkgPSAwOyBpIDwgdmlkZW8tPnZzcDEtPmluZm8tPnJw Zl9jb3VudDsgKytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHZpZGVvLT52 c3AxLT5pbmZvLT5ycGZfY291bnQ7ICsraSkgewo+ICAJCWlmICghcGlwZS0+aW5wdXRzW2ldKQo+ ICAJCQljb250aW51ZTsKPiAgCj4gQEAgLTYwMSwxMyArNTk2LDEyIEBAIHZzcDFfdmlkZW9fcXVl dWVfc2V0dXAoc3RydWN0IHZiMl9xdWV1ZSAqdnEsCj4gIHsKPiAgCXN0cnVjdCB2c3AxX3ZpZGVv ICp2aWRlbyA9IHZiMl9nZXRfZHJ2X3ByaXYodnEpOwo+ICAJY29uc3Qgc3RydWN0IHY0bDJfcGl4 X2Zvcm1hdF9tcGxhbmUgKmZvcm1hdCA9ICZ2aWRlby0+cndwZi0+Zm9ybWF0Owo+IC0JdW5zaWdu ZWQgaW50IGk7Cj4gIAo+ICAJaWYgKCpucGxhbmVzKSB7Cj4gIAkJaWYgKCpucGxhbmVzICE9IGZv cm1hdC0+bnVtX3BsYW5lcykKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+IC0JCWZvciAoaSA9 IDA7IGkgPCAqbnBsYW5lczsgaSsrKQo+ICsJCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwg Km5wbGFuZXM7IGkrKykKPiAgCQkJaWYgKHNpemVzW2ldIDwgZm9ybWF0LT5wbGFuZV9mbXRbaV0u c2l6ZWltYWdlKQo+ICAJCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAkJcmV0dXJuIDA7Cj4gQEAgLTYx NSw3ICs2MDksNyBAQCB2c3AxX3ZpZGVvX3F1ZXVlX3NldHVwKHN0cnVjdCB2YjJfcXVldWUgKnZx LAo+ICAKPiAgCSpucGxhbmVzID0gZm9ybWF0LT5udW1fcGxhbmVzOwo+ICAKPiAtCWZvciAoaSA9 IDA7IGkgPCBmb3JtYXQtPm51bV9wbGFuZXM7ICsraSkKPiArCWZvciAodW5zaWduZWQgaW50IGkg PSAwOyBpIDwgZm9ybWF0LT5udW1fcGxhbmVzOyArK2kpCj4gIAkJc2l6ZXNbaV0gPSBmb3JtYXQt PnBsYW5lX2ZtdFtpXS5zaXplaW1hZ2U7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gQEAgLTY3Nyw3ICs2 NzEsNiBAQCBzdGF0aWMgaW50IHZzcDFfdmlkZW9fcGlwZWxpbmVfc2V0dXBfcGFydGl0aW9ucyhz dHJ1Y3QgdnNwMV9waXBlbGluZSAqcGlwZSkKPiAgCWNvbnN0IHN0cnVjdCB2NGwyX21idXNfZnJh bWVmbXQgKmZvcm1hdDsKPiAgCXN0cnVjdCB2c3AxX2VudGl0eSAqZW50aXR5Owo+ICAJdW5zaWdu ZWQgaW50IGRpdl9zaXplOwo+IC0JdW5zaWduZWQgaW50IGk7Cj4gIAo+ICAJLyoKPiAgCSAqIFBh cnRpdGlvbnMgYXJlIGNvbXB1dGVkIG9uIHRoZSBzaXplIGJlZm9yZSByb3RhdGlvbiwgdXNlIHRo ZSBmb3JtYXQKPiBAQCAtNzExLDcgKzcwNCw3IEBAIHN0YXRpYyBpbnQgdnNwMV92aWRlb19waXBl bGluZV9zZXR1cF9wYXJ0aXRpb25zKHN0cnVjdCB2c3AxX3BpcGVsaW5lICpwaXBlKQo+ICAJaWYg KCFwaXBlLT5wYXJ0X3RhYmxlKQo+ICAJCXJldHVybiAtRU5PTUVNOwo+ICAKPiAtCWZvciAoaSA9 IDA7IGkgPCBwaXBlLT5wYXJ0aXRpb25zOyArK2kpCj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0g MDsgaSA8IHBpcGUtPnBhcnRpdGlvbnM7ICsraSkKPiAgCQl2c3AxX3BpcGVsaW5lX2NhbGN1bGF0 ZV9wYXJ0aXRpb24ocGlwZSwgJnBpcGUtPnBhcnRfdGFibGVbaV0sCj4gIAkJCQkJCSAgZGl2X3Np emUsIGkpOwo+ICAKPiBAQCAtMTExMSw3ICsxMTA0LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBt ZWRpYV9lbnRpdHlfb3BlcmF0aW9ucyB2c3AxX3ZpZGVvX21lZGlhX29wcyA9IHsKPiAgCj4gIHZv aWQgdnNwMV92aWRlb19zdXNwZW5kKHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSkKPiAgewo+IC0J dW5zaWduZWQgaW50IGk7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCS8qCj4gQEAgLTExMTksNyArMTEx MSw3IEBAIHZvaWQgdnNwMV92aWRlb19zdXNwZW5kKHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSkK PiAgCSAqIHBpcGVsaW5lcyB0d2ljZSwgZmlyc3QgdG8gc2V0IHRoZW0gYWxsIHRvIHRoZSBzdG9w cGluZyBzdGF0ZSwgYW5kCj4gIAkgKiB0aGVuIHRvIHdhaXQgZm9yIHRoZSBzdG9wIHRvIGNvbXBs ZXRlLgo+ICAJICovCj4gLQlmb3IgKGkgPSAwOyBpIDwgdnNwMS0+aW5mby0+d3BmX2NvdW50OyAr K2kpIHsKPiArCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgdnNwMS0+aW5mby0+d3BmX2Nv dW50OyArK2kpIHsKPiAgCQlzdHJ1Y3QgdnNwMV9yd3BmICp3cGYgPSB2c3AxLT53cGZbaV07Cj4g IAkJc3RydWN0IHZzcDFfcGlwZWxpbmUgKnBpcGU7Cj4gIAo+IEBAIC0xMTM2LDcgKzExMjgsNyBA QCB2b2lkIHZzcDFfdmlkZW9fc3VzcGVuZChzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEpCj4gIAkJ fQo+ICAJfQo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCB2c3AxLT5pbmZvLT53cGZfY291bnQ7ICsr aSkgewo+ICsJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCB2c3AxLT5pbmZvLT53cGZfY291 bnQ7ICsraSkgewo+ICAJCXN0cnVjdCB2c3AxX3J3cGYgKndwZiA9IHZzcDEtPndwZltpXTsKPiAg CQlzdHJ1Y3QgdnNwMV9waXBlbGluZSAqcGlwZTsKPiAgCj4gQEAgLTExNTcsMTAgKzExNDksOCBA QCB2b2lkIHZzcDFfdmlkZW9fc3VzcGVuZChzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEpCj4gIAo+ ICB2b2lkIHZzcDFfdmlkZW9fcmVzdW1lKHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSkKPiAgewo+ IC0JdW5zaWduZWQgaW50IGk7Cj4gLQo+ICAJLyogUmVzdW1lIGFsbCBydW5uaW5nIHBpcGVsaW5l cy4gKi8KPiAtCWZvciAoaSA9IDA7IGkgPCB2c3AxLT5pbmZvLT53cGZfY291bnQ7ICsraSkgewo+ ICsJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCB2c3AxLT5pbmZvLT53cGZfY291bnQ7ICsr aSkgewo+ICAJCXN0cnVjdCB2c3AxX3J3cGYgKndwZiA9IHZzcDEtPndwZltpXTsKPiAgCQlzdHJ1 Y3QgdnNwMV9waXBlbGluZSAqcGlwZTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfd3BmLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3JlbmVzYXMvdnNwMS92c3AxX3dwZi5jCj4gaW5kZXggMGVjNzA3ZDI5MTNmLi44MjE4ODc4MTVl YjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNw MV93cGYuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFf d3BmLmMKPiBAQCAtMjMyLDcgKzIzMiw2IEBAIHN0YXRpYyB2b2lkIHdwZl9jb25maWd1cmVfc3Ry ZWFtKHN0cnVjdCB2c3AxX2VudGl0eSAqZW50aXR5LAo+ICAJY29uc3Qgc3RydWN0IHY0bDJfbWJ1 c19mcmFtZWZtdCAqc291cmNlX2Zvcm1hdDsKPiAgCWNvbnN0IHN0cnVjdCB2NGwyX21idXNfZnJh bWVmbXQgKnNpbmtfZm9ybWF0Owo+ICAJdW5zaWduZWQgaW50IGluZGV4ID0gd3BmLT5lbnRpdHku aW5kZXg7Cj4gLQl1bnNpZ25lZCBpbnQgaTsKPiAgCXUzMiBvdXRmbXQgPSAwOwo+ICAJdTMyIHNy Y3JwZiA9IDA7Cj4gIAlpbnQgcmV0Owo+IEBAIC0zMTQsNyArMzEzLDcgQEAgc3RhdGljIHZvaWQg d3BmX2NvbmZpZ3VyZV9zdHJlYW0oc3RydWN0IHZzcDFfZW50aXR5ICplbnRpdHksCj4gIAkgKiBp bnB1dHMgYXMgc3ViLWxheWVycyBhbmQgc2VsZWN0IHRoZSB2aXJ0dWFsIFJQRiBhcyB0aGUgbWFz dGVyCj4gIAkgKiBsYXllci4gRm9yIFZTUFggY29uZmlndXJlIHRoZSBlbmFibGVkIHNvdXJjZXMg YXMgbWFzdGVycy4KPiAgCSAqLwo+IC0JZm9yIChpID0gMDsgaSA8IHZzcDEtPmluZm8tPnJwZl9j b3VudDsgKytpKSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHZzcDEtPmluZm8t PnJwZl9jb3VudDsgKytpKSB7Cj4gIAkJc3RydWN0IHZzcDFfcndwZiAqaW5wdXQgPSBwaXBlLT5p bnB1dHNbaV07Cj4gIAo+ICAJCWlmICghaW5wdXQpCj4gQEAgLTM5OSw3ICszOTgsNiBAQCBzdGF0 aWMgdm9pZCB3cGZfY29uZmlndXJlX3BhcnRpdGlvbihzdHJ1Y3QgdnNwMV9lbnRpdHkgKmVudGl0 eSwKPiAgCXVuc2lnbmVkIGludCBsZWZ0Owo+ICAJdW5zaWduZWQgaW50IG9mZnNldDsKPiAgCXVu c2lnbmVkIGludCBmbGlwOwo+IC0JdW5zaWduZWQgaW50IGk7Cj4gIAo+ICAJLyoKPiAgCSAqIENy b3BwaW5nLiBUaGUgcGFydGl0aW9uIGFsZ29yaXRobSBjYW4gc3BsaXQgdGhlIGltYWdlIGludG8g bXVsdGlwbGUKPiBAQCAtNDQ4LDcgKzQ0Niw3IEBAIHN0YXRpYyB2b2lkIHdwZl9jb25maWd1cmVf cGFydGl0aW9uKHN0cnVjdCB2c3AxX2VudGl0eSAqZW50aXR5LAo+ICAJZWxzZQo+ICAJCW9mZnNl dCA9IGxlZnQ7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IGZvcm1hdC0+bnVtX3BsYW5lczsgKytp KSB7Cj4gKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGZvcm1hdC0+bnVtX3BsYW5lczsg KytpKSB7Cj4gIAkJdW5zaWduZWQgaW50IGhzdWIgPSBpID4gMCA/IGZtdGluZm8tPmhzdWIgOiAx Owo+ICAJCXVuc2lnbmVkIGludCB2c3ViID0gaSA+IDAgPyBmbXRpbmZvLT52c3ViIDogMTsKPiAg Cj4gQEAgLTQ5MCw3ICs0ODgsNyBAQCBzdGF0aWMgdm9pZCB3cGZfY29uZmlndXJlX3BhcnRpdGlv bihzdHJ1Y3QgdnNwMV9lbnRpdHkgKmVudGl0eSwKPiAgCQkgKiBDb21wdXRlIHRoZSBvdXRwdXQg Y29vcmRpbmF0ZS4gVGhlIHBhcnRpdGlvbgo+ICAJCSAqIGhvcml6b250YWwgKGxlZnQpIG9mZnNl dCBiZWNvbWVzIGEgdmVydGljYWwgb2Zmc2V0Lgo+ICAJCSAqLwo+IC0JCWZvciAoaSA9IDA7IGkg PCBmb3JtYXQtPm51bV9wbGFuZXM7ICsraSkgewo+ICsJCWZvciAodW5zaWduZWQgaW50IGkgPSAw OyBpIDwgZm9ybWF0LT5udW1fcGxhbmVzOyArK2kpIHsKPiAgCQkJdW5zaWduZWQgaW50IGhzdWIg PSBpID4gMCA/IGZtdGluZm8tPmhzdWIgOiAxOwo+ICAKPiAgCQkJbWVtLmFkZHJbaV0gKz0gaG9m ZnNldCAvIGhzdWIKPiAtLSAKPiBSZWdhcmRzLAo+IAo+IExhdXJlbnQgUGluY2hhcnQKPiAKPiAK Ci0tIApLaW5kIFJlZ2FyZHMsCk5pa2xhcyBTw7ZkZXJsdW5kCg==