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 57DC9CD4F25 for ; Fri, 15 May 2026 00:12:58 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=z8n3XIqSxhpd8v/NW2Yi0cjiqHEWrs9m+WlUZDIj4cs=; b=4L4xJIlmdMCRSq /h90fbhy2eTF4VHHTyItz0fj1KPtOM7s4p4gVeGzTXD6sTJzyXsE5uXQSOSnDnRu8RgCdr6tYU3XF bD77yGWsDFcfeAHxVgPCz+mhCEs6KhEE1qUV4BPCsPBflCvmQdQdPMFEkiga6w4a8y/b19nAlNHir pxA0HuAtV95OKrgj0fpp/4dhKmTazBy+2drxI42ZR3cuZ4BmcnDpisWronx+GSBDw/GlzCG+65lEz Xytc2jRdRAobjiP6XedEYd6mtj13fF405+q/sTYmiYQTyTOBTj/cO1Ii3tZLb985LDHIrugSWdIcx uDO0eEz1ruGcqrZ8FVig==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wNgAa-00000006t8E-28Np; Fri, 15 May 2026 00:12:48 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wNgAX-00000006t7O-3Dwu; Fri, 15 May 2026 00:12:47 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 80D4040583; Fri, 15 May 2026 00:12:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BF984C2BCB3; Fri, 15 May 2026 00:12:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778803964; bh=oIma0XbaHYrL6wVyXkT/yUci4CgCDvPlVnahgbXD6rg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=BSf4LmmBBrp4Fm8NqrS99qRGLVyDH/T1orqBBJr9CMZ8Se/jijQlj0lvvcbj2maiI uCjW44+KSVuyf7nU78JU/EdwwmbT9QwxPACG9OWf1eR7C+SIgoUBD8up1A/ls/FDlY CKIE5xiYYoKTop+z3q5wY5RlngquG+3LacxkkvHxA+yQbo6S18iX0UYdWKqIgBZRYX 4paSs8JpsuPKAZMgIUGbgtqx27H6N+6fomxulyyM9T0ygTckefucAvXgMG6rxoIAt3 bo4DbDJoGx8bDUoAwZZuhDkNptD3IEgzBPV4x+5P+9werV8e6l1TzHS9HomX16YW4O Ve6NePI8I9Jzw== Date: Thu, 14 May 2026 21:12:40 -0300 From: Arnaldo Carvalho de Melo To: Ian Rogers Cc: adrian.hunter@intel.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, namhyung@kernel.org, Florian Fainelli , Li Guan , 9erthalion6@gmail.com, alex@ghiti.fr, alexander.shishkin@linux.intel.com, andrew.jones@oss.qualcomm.com, aou@eecs.berkeley.edu, atrajeev@linux.ibm.com, howardchu95@gmail.com, john.g.garry@oracle.com, jolsa@kernel.org, leo.yan@linux.dev, libunwind-devel@nongnu.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-riscv@lists.infradead.org, mingo@redhat.com, palmer@dabbelt.com, peterz@infradead.org, pjw@kernel.org, shimin.guo@skydio.com, tglozar@redhat.com, tmricht@linux.ibm.com, will@kernel.org Subject: Re: [PATCH v5 1/7] perf unwind: Refactor get_entries to allow dynamic libdw/libunwind selection Message-ID: References: <20260413024805.1316480-1-irogers@google.com> <20260513233151.572332-1-irogers@google.com> <20260513233151.572332-2-irogers@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20260513233151.572332-2-irogers@google.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260514_171245_869185_1EA0E1BE X-CRM114-Status: GOOD ( 37.63 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gV2VkLCBNYXkgMTMsIDIwMjYgYXQgMDQ6MzE6NDVQTSAtMDcwMCwgSWFuIFJvZ2VycyB3cm90 ZToKPiBDdXJyZW50bHksIGJvdGggbGliZHcgYW5kIGxpYnVud2luZCBkZWZpbmUgJ3Vud2luZF9f Z2V0X2VudHJpZXMnLiBUaGlzCj4gY2F1c2VzIGEgZHVwbGljYXRlIHN5bWJvbCBidWlsZCBmYWls dXJlIHdoZW4gYm90aCBhcmUgY29tcGlsZWQgaW50bwo+IHBlcmYuCj4gCj4gVGhpcyBjb21taXQg cmVmYWN0b3JzIHRoZSBEV0FSRiB1bndpbmQgcG9zdC1wcm9jZXNzaW5nIHRvIGJlCj4gY29uZmln dXJhYmxlIGF0IHJ1bnRpbWUgdmlhIHRoZSAucGVyZmNvbmZpZyBmaWxlIG9wdGlvbgo+ICd1bndp bmQuc3R5bGUnLCBvciB1c2luZyB0aGUgYXJndW1lbnQgJy0tdW53aW5kLXN0eWxlJyBpbiB0aGUg Y29tbWFuZHMKPiAncGVyZiByZXBvcnQnLCAncGVyZiBzY3JpcHQnIGFuZCAncGVyZiBpbmplY3Qn LCBpbiBhIHNpbWlsYXIgbWFubmVyIHRvCj4gdGhlIGFkZHIybGluZSBvciB0aGUgZGlzYXNzZW1i bGVyIHN0eWxlLgo+IAo+IFRoZSBmaWxlICd0b29scy9wZXJmL3V0aWwvdW53aW5kLmMnIGFkZHMg dGhlIHRvcC1sZXZlbCBkaXNwYXRjaAo+IGZ1bmN0aW9uICd1bndpbmRfX2dldF9lbnRyaWVzJy4g VGhlIGJhY2tlbmQgaW1wbGVtZW50YXRpb25zIGFyZQo+IHJlbmFtZWQgdG8gJ2xpYmR3X19nZXRf ZW50cmllcycgYW5kICdsaWJ1bndpbmRfX2dldF9lbnRyaWVzJy4gQm90aCBhcmUKPiBhdHRlbXB0 ZWQgYXMgZmFsbGJhY2tzIGlmIG5vdCBjb25maWd1cmVkLCBvciBpZiB0aGUgcHJpbWFyeSBiYWNr ZW5kCj4gZmFpbHMuCj4gCj4gRml4ZXM6IDJlOTE5MTU3M2E2OSAoInBlcmYgYnVpbGQ6IFJlbW92 ZSBOT19MSUJEV19EV0FSRl9VTldJTkQgb3B0aW9uIikKPiBTaWduZWQtb2ZmLWJ5OiBJYW4gUm9n ZXJzIDxpcm9nZXJzQGdvb2dsZS5jb20+Cj4gLS0tCj4gIHRvb2xzL3BlcmYvYnVpbHRpbi1pbmpl Y3QuYyAgICAgICAgICAgICAgfCAgIDQgKwo+ICB0b29scy9wZXJmL2J1aWx0aW4tcmVwb3J0LmMg ICAgICAgICAgICAgIHwgICA0ICsKPiAgdG9vbHMvcGVyZi9idWlsdGluLXNjcmlwdC5jICAgICAg ICAgICAgICB8ICAgNCArCj4gIHRvb2xzL3BlcmYvdXRpbC9CdWlsZCAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwo+ICB0b29scy9wZXJmL3V0aWwvY29uZmlnLmMgICAgICAgICAgICAgICAgIHwg ICA0ICsKPiAgdG9vbHMvcGVyZi91dGlsL3N5bWJvbF9jb25mLmggICAgICAgICAgICB8ICAxMCAr KysKPiAgdG9vbHMvcGVyZi91dGlsL3Vud2luZC1saWJkdy5jICAgICAgICAgICB8ICAxOCArKyst Cj4gIHRvb2xzL3BlcmYvdXRpbC91bndpbmQtbGlidW53aW5kLWxvY2FsLmMgfCAgMjcgKysrKy0t Cj4gIHRvb2xzL3BlcmYvdXRpbC91bndpbmQtbGlidW53aW5kLmMgICAgICAgfCAgIDIgKy0KPiAg dG9vbHMvcGVyZi91dGlsL3Vud2luZC5jICAgICAgICAgICAgICAgICB8IDEwNCArKysrKysrKysr KysrKysrKysrKysrKwo+ICB0b29scy9wZXJmL3V0aWwvdW53aW5kLmggICAgICAgICAgICAgICAg IHwgIDYxICsrKysrKysrLS0tLS0KPiAgMTEgZmlsZXMgY2hhbmdlZCwgMjA3IGluc2VydGlvbnMo KyksIDMyIGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvcGVyZi91dGls L3Vud2luZC5jCj4gCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1pbmplY3QuYyBi L3Rvb2xzL3BlcmYvYnVpbHRpbi1pbmplY3QuYwo+IGluZGV4IDZhYjIwZGYzNThjNC4uYTI0OTNm MTA5N2RmIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1pbmplY3QuYwo+ICsrKyBi L3Rvb2xzL3BlcmYvYnVpbHRpbi1pbmplY3QuYwo+IEBAIC0yNiw2ICsyNiw3IEBACj4gICNpbmNs dWRlICJ1dGlsL3N5bnRoZXRpYy1ldmVudHMuaCIKPiAgI2luY2x1ZGUgInV0aWwvdGhyZWFkLmgi Cj4gICNpbmNsdWRlICJ1dGlsL25hbWVzcGFjZXMuaCIKPiArI2luY2x1ZGUgInV0aWwvdW53aW5k LmgiCj4gICNpbmNsdWRlICJ1dGlsL3V0aWwuaCIKPiAgI2luY2x1ZGUgInV0aWwvdHNjLmgiCj4g IAo+IEBAIC0yNTYzLDYgKzI1NjQsOSBAQCBpbnQgY21kX2luamVjdChpbnQgYXJnYywgY29uc3Qg Y2hhciAqKmFyZ3YpCj4gIAkJT1BUX1NUUklORygwLCAiZ3Vlc3Rtb3VudCIsICZzeW1ib2xfY29u Zi5ndWVzdG1vdW50LCAiZGlyZWN0b3J5IiwKPiAgCQkJICAgImd1ZXN0IG1vdW50IGRpcmVjdG9y eSB1bmRlciB3aGljaCBldmVyeSBndWVzdCBvcyIKPiAgCQkJICAgIiBpbnN0YW5jZSBoYXMgYSBz dWJkaXIiKSwKPiArCQlPUFRfQ0FMTEJBQ0soMCwgInVud2luZC1zdHlsZSIsIE5VTEwsICJ1bndp bmQgc3R5bGUiLAo+ICsJCQkgICAgICJ1bndpbmQgc3R5bGVzIChsaWJkdyxsaWJ1bndpbmQpIiwK PiArCQkJICAgICB1bndpbmRfX29wdGlvbiksCj4gIAkJT1BUX0JPT0xFQU4oMCwgImNvbnZlcnQt Y2FsbGNoYWluIiwgJmluamVjdC5jb252ZXJ0X2NhbGxjaGFpbiwKPiAgCQkJICAgICJHZW5lcmF0 ZSBjYWxsY2hhaW5zIHVzaW5nIERXQVJGIGFuZCBkcm9wIHJlZ2lzdGVyL3N0YWNrIGRhdGEiKSwK PiAgCQlPUFRfRU5EKCkKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9idWlsdGluLXJlcG9ydC5j IGIvdG9vbHMvcGVyZi9idWlsdGluLXJlcG9ydC5jCj4gaW5kZXggOTVjMGJkYmE2YjExLi4wYjA5 NjZkOTQxMjggMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVyZi9idWlsdGluLXJlcG9ydC5jCj4gKysr IGIvdG9vbHMvcGVyZi9idWlsdGluLXJlcG9ydC5jCj4gQEAgLTQ4LDYgKzQ4LDcgQEAKPiAgI2lu Y2x1ZGUgInV0aWwvdGltZS11dGlscy5oIgo+ICAjaW5jbHVkZSAidXRpbC9hdXh0cmFjZS5oIgo+ ICAjaW5jbHVkZSAidXRpbC91bml0cy5oIgo+ICsjaW5jbHVkZSAidXRpbC91bndpbmQuaCIKPiAg I2luY2x1ZGUgInV0aWwvdXRpbC5oIiAvLyBwZXJmX3RpcCgpCj4gICNpbmNsdWRlICJ1aS91aS5o Igo+ICAjaW5jbHVkZSAidWkvcHJvZ3Jlc3MuaCIKPiBAQCAtMTQ0OSw2ICsxNDUwLDkgQEAgaW50 IGNtZF9yZXBvcnQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQo+ICAJT1BUX0NBTExCQUNL KDAsICJhZGRyMmxpbmUtc3R5bGUiLCBOVUxMLCAiYWRkcjJsaW5lIHN0eWxlIiwKPiAgCQkgICAg ICJhZGRyMmxpbmUgc3R5bGVzIChsaWJkdyxsbHZtLGxpYmJmZCxhZGRyMmxpbmUpIiwKPiAgCQkg ICAgIHJlcG9ydF9wYXJzZV9hZGRyMmxpbmVfY29uZmlnKSwKPiArCU9QVF9DQUxMQkFDSygwLCAi dW53aW5kLXN0eWxlIiwgTlVMTCwgInVud2luZCBzdHlsZSIsCj4gKwkJICAgICAidW53aW5kIHN0 eWxlcyAobGliZHcsbGlidW53aW5kKSIsCj4gKwkJICAgICB1bndpbmRfX29wdGlvbiksCj4gIAlP UFRfQk9PTEVBTigwLCAiZGVtYW5nbGUiLCAmc3ltYm9sX2NvbmYuZGVtYW5nbGUsCj4gIAkJICAg ICJTeW1ib2wgZGVtYW5nbGluZy4gRW5hYmxlZCBieSBkZWZhdWx0LCB1c2UgLS1uby1kZW1hbmds ZSB0byBkaXNhYmxlLiIpLAo+ICAJT1BUX0JPT0xFQU4oMCwgImRlbWFuZ2xlLWtlcm5lbCIsICZz eW1ib2xfY29uZi5kZW1hbmdsZV9rZXJuZWwsCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYnVp bHRpbi1zY3JpcHQuYyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1zY3JpcHQuYwo+IGluZGV4IGM4YWM5 ZjAxYTM2Yi4uZmQwYjQ2MDk1MTZiIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvYnVpbHRpbi1z Y3JpcHQuYwo+ICsrKyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1zY3JpcHQuYwo+IEBAIC02Myw2ICs2 Myw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KPiAgI2luY2x1ZGUgInV0aWwvZGxmaWx0 ZXIuaCIKPiAgI2luY2x1ZGUgInV0aWwvcmVjb3JkLmgiCj4gKyNpbmNsdWRlICJ1dGlsL3Vud2lu ZC5oIgo+ICAjaW5jbHVkZSAidXRpbC91dGlsLmgiCj4gICNpbmNsdWRlICJ1dGlsL2Nncm91cC5o Igo+ICAjaW5jbHVkZSAidXRpbC9hbm5vdGF0ZS5oIgo+IEBAIC00MTU5LDYgKzQxNjAsOSBAQCBp bnQgY21kX3NjcmlwdChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCj4gIAkJCSJFbmFibGUg c3ltYm9sIGRlbWFuZ2xpbmciKSwKPiAgCU9QVF9CT09MRUFOKDAsICJkZW1hbmdsZS1rZXJuZWwi LCAmc3ltYm9sX2NvbmYuZGVtYW5nbGVfa2VybmVsLAo+ICAJCQkiRW5hYmxlIGtlcm5lbCBzeW1i b2wgZGVtYW5nbGluZyIpLAo+ICsJT1BUX0NBTExCQUNLKDAsICJ1bndpbmQtc3R5bGUiLCBOVUxM LCAidW53aW5kIHN0eWxlIiwKPiArCQkgICAgICJ1bndpbmQgc3R5bGVzIChsaWJkdyxsaWJ1bndp bmQpIiwKPiArCQkgICAgIHVud2luZF9fb3B0aW9uKSwKPiAgCU9QVF9TVFJJTkcoMCwgImFkZHIy bGluZSIsICZzeW1ib2xfY29uZi5hZGRyMmxpbmVfcGF0aCwgInBhdGgiLAo+ICAJCQkiYWRkcjJs aW5lIGJpbmFyeSB0byB1c2UgZm9yIGxpbmUgbnVtYmVycyIpLAo+ICAJT1BUX1NUUklORygwLCAi dGltZSIsICZzY3JpcHQudGltZV9zdHIsICJzdHIiLAo+IGRpZmYgLS1naXQgYS90b29scy9wZXJm L3V0aWwvQnVpbGQgYi90b29scy9wZXJmL3V0aWwvQnVpbGQKPiBpbmRleCA3MGNjOTFkMDA4MDQu LjAxZWRmY2NlYmI4OCAxMDA2NDQKPiAtLS0gYS90b29scy9wZXJmL3V0aWwvQnVpbGQKPiArKysg Yi90b29scy9wZXJmL3V0aWwvQnVpbGQKPiBAQCAtMjE2LDYgKzIxNiw3IEBAIGlmbmRlZiBDT05G SUdfU0VUTlMKPiAgcGVyZi11dGlsLXkgKz0gc2V0bnMubwo+ICBlbmRpZgo+ICAKPiArcGVyZi11 dGlsLXkgKz0gdW53aW5kLm8KPiAgcGVyZi11dGlsLSQoQ09ORklHX0xJQkRXKSArPSBwcm9iZS1m aW5kZXIubwo+ICBwZXJmLXV0aWwtJChDT05GSUdfTElCRFcpICs9IGR3YXJmLWF1eC5vCj4gIHBl cmYtdXRpbC0kKENPTkZJR19MSUJEVykgKz0gZHdhcmYtcmVncy5vCj4gZGlmZiAtLWdpdCBhL3Rv b2xzL3BlcmYvdXRpbC9jb25maWcuYyBiL3Rvb2xzL3BlcmYvdXRpbC9jb25maWcuYwo+IGluZGV4 IDA4NzAwMmZiMWI5Yi4uNzk4ODE0OWRjN2VkIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvdXRp bC9jb25maWcuYwo+ICsrKyBiL3Rvb2xzL3BlcmYvdXRpbC9jb25maWcuYwo+IEBAIC0yMyw2ICsy Myw3IEBACj4gICNpbmNsdWRlICJidWlsZC1pZC5oIgo+ICAjaW5jbHVkZSAiZGVidWcuaCIKPiAg I2luY2x1ZGUgImNvbmZpZy5oIgo+ICsjaW5jbHVkZSAidW53aW5kLmgiCj4gICNpbmNsdWRlIDxz eXMvdHlwZXMuaD4KPiAgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Cj4gICNpbmNsdWRlIDxzdGRsaWIu aD4KPiBAQCAtNTI1LDYgKzUyNiw5IEBAIGludCBwZXJmX2RlZmF1bHRfY29uZmlnKGNvbnN0IGNo YXIgKnZhciwgY29uc3QgY2hhciAqdmFsdWUsCj4gIAlpZiAoc3Ryc3RhcnRzKHZhciwgImFkZHIy bGluZS4iKSkKPiAgCQlyZXR1cm4gYWRkcjJsaW5lX2NvbmZpZ3VyZSh2YXIsIHZhbHVlLCBkdW1t eSk7Cj4gIAo+ICsJaWYgKHN0cnN0YXJ0cyh2YXIsICJ1bndpbmQuIikpCj4gKwkJcmV0dXJuIHVu d2luZF9fY29uZmlndXJlKHZhciwgdmFsdWUsIGR1bW15KTsKPiArCj4gIAkvKiBBZGQgb3RoZXIg Y29uZmlnIHZhcmlhYmxlcyBoZXJlLiAqLwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0tZ2l0 IGEvdG9vbHMvcGVyZi91dGlsL3N5bWJvbF9jb25mLmggYi90b29scy9wZXJmL3V0aWwvc3ltYm9s X2NvbmYuaAo+IGluZGV4IDZjZDQ1NGQ3Yzk4ZS4uMGRlZTVhYTZhNTM0IDEwMDY0NAo+IC0tLSBh L3Rvb2xzL3BlcmYvdXRpbC9zeW1ib2xfY29uZi5oCj4gKysrIGIvdG9vbHMvcGVyZi91dGlsL3N5 bWJvbF9jb25mLmgKPiBAQCAtOSw2ICs5LDE1IEBACj4gIHN0cnVjdCBzdHJsaXN0Owo+ICBzdHJ1 Y3QgaW50bGlzdDsKPiAgCj4gK2VudW0gdW53aW5kX3N0eWxlIHsKPiArCVVOV0lORF9TVFlMRV9V TktOT1dOID0gMCwKPiArCVVOV0lORF9TVFlMRV9MSUJEVywKPiArCVVOV0lORF9TVFlMRV9MSUJV TldJTkQsCj4gK307Cj4gKwo+ICsjZGVmaW5lIE1BWF9VTldJTkRfU1RZTEUgKFVOV0lORF9TVFlM RV9MSUJVTldJTkQgKyAxKQo+ICsKPiArCj4gIGVudW0gYTJsX3N0eWxlIHsKPiAgCUEyTF9TVFlM RV9VTktOT1dOID0gMCwKPiAgCUEyTF9TVFlMRV9MSUJEVywKPiBAQCAtODEsNiArOTAsNyBAQCBz dHJ1Y3Qgc3ltYm9sX2NvbmYgewo+ICAJY29uc3QgY2hhcgkJKmFkZHIybGluZV9wYXRoOwo+ICAJ ZW51bSBhMmxfc3R5bGUJYWRkcjJsaW5lX3N0eWxlW01BWF9BMkxfU1RZTEVdOwo+ICAJaW50ICAg ICAgICAgICAgIGFkZHIybGluZV90aW1lb3V0X21zOwo+ICsJZW51bSB1bndpbmRfc3R5bGUgdW53 aW5kX3N0eWxlW01BWF9VTldJTkRfU1RZTEVdOwo+ICAJdW5zaWduZWQgbG9uZwl0aW1lX3F1YW50 dW07Cj4gICAgICAgICBzdHJ1Y3Qgc3RybGlzdAkqZHNvX2xpc3QsCj4gIAkJCSpjb21tX2xpc3Qs Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC91bndpbmQtbGliZHcuYyBiL3Rvb2xzL3Bl cmYvdXRpbC91bndpbmQtbGliZHcuYwo+IGluZGV4IDA1ZThlNjhiZDQ5Yy4uMjExNzFhNmE4Nzhj IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvdXRpbC91bndpbmQtbGliZHcuYwo+ICsrKyBiL3Rv b2xzL3BlcmYvdXRpbC91bndpbmQtbGliZHcuYwo+IEBAIC0zMzksNyArMzM5LDcgQEAgZnJhbWVf Y2FsbGJhY2soRHdmbF9GcmFtZSAqc3RhdGUsIHZvaWQgKmFyZykKPiAgCSAgICAgICBEV0FSRl9D Ql9BQk9SVCA6IERXQVJGX0NCX09LOwo+ICB9Cj4gIAo+IC1pbnQgdW53aW5kX19nZXRfZW50cmll cyh1bndpbmRfZW50cnlfY2JfdCBjYiwgdm9pZCAqYXJnLAo+ICtpbnQgbGliZHdfX2dldF9lbnRy aWVzKHVud2luZF9lbnRyeV9jYl90IGNiLCB2b2lkICphcmcsCj4gIAkJCXN0cnVjdCB0aHJlYWQg KnRocmVhZCwKPiAgCQkJc3RydWN0IHBlcmZfc2FtcGxlICpkYXRhLAo+ICAJCQlpbnQgbWF4X3N0 YWNrLAo+IEBAIC0zNTYsNyArMzU2LDcgQEAgaW50IHVud2luZF9fZ2V0X2VudHJpZXModW53aW5k X2VudHJ5X2NiX3QgY2IsIHZvaWQgKmFyZywKPiAgCWludCBlcnIgPSAtRUlOVkFMLCBpOwo+ICAK PiAgCWlmICghZGF0YS0+dXNlcl9yZWdzIHx8ICFkYXRhLT51c2VyX3JlZ3MtPnJlZ3MpCj4gLQkJ cmV0dXJuIC1FSU5WQUw7Cj4gKwkJcmV0dXJuIDA7Cj4gIAo+ICAJdWkgPSB6YWxsb2Moc2l6ZW9m KCp1aSkgKyBzaXplb2YodWktPmVudHJpZXNbMF0pICogbWF4X3N0YWNrKTsKPiAgCWlmICghdWkp Cj4gQEAgLTQzMCw2ICs0MzAsMTggQEAgaW50IHVud2luZF9fZ2V0X2VudHJpZXModW53aW5kX2Vu dHJ5X2NiX3QgY2IsIHZvaWQgKmFyZywKPiAgCQltYXBfc3ltYm9sX19leGl0KCZ1aS0+ZW50cmll c1tpXS5tcyk7Cj4gIAo+ICAJZHdmbF91aV90aS0+dWkgPSBOVUxMOwo+ICsJaW50IGVudHJpZXMg PSAoaW50KXVpLT5pZHg7CgpNb3ZlZCB0aGlzICdlbnRyaWVzJyB2YXJpYWJsZSB0byB0aGUgc3Rn YXJ0IG9mIHRoZSBmdW5jdGlvbiB0byBhZGRyZXNzCnRoaXMgb24gZmVkb3JhIDQ0OgoKICBDQyAg ICAgIC90bXAvYnVpbGQvcGVyZi10b29scy1uZXh0L3V0aWwvYnBmLWV2ZW50Lm8KICBDQyAgICAg IC90bXAvYnVpbGQvcGVyZi10b29scy1uZXh0L3V0aWwvcGZtLm8KdXRpbC91bndpbmQtbGliZHcu YzogSW4gZnVuY3Rpb24g4oCYbGliZHdfX2dldF9lbnRyaWVz4oCZOgp1dGlsL3Vud2luZC1saWJk dy5jOjQzMzo5OiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQg Y29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCiAgNDMzIHwgICAgICAg ICBpbnQgZW50cmllcyA9IChpbnQpdWktPmlkeDsKICAgICAgfCAgICAgICAgIF5+fgpjYzE6IGFs bCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzRdOiAqKiogWy9ob21lL2Fj bWUvZ2l0L3BlcmYtdG9vbHMtbmV4dC90b29scy9idWlsZC9NYWtlZmlsZS5idWlsZDo5NTogL3Rt cC9idWlsZC9wZXJmLXRvb2xzLW5leHQvdXRpbC91bndpbmQtbGliZHcub10gRXJyb3IgMQoKLSBB cm5hbGRvCgo+ICAJZnJlZSh1aSk7Cj4gLQlyZXR1cm4gMDsKPiArCS8qCj4gKwkgKiBVbndpbmRl ciByZXR1cm4gY29udHJhY3Q6Cj4gKwkgKiAgPiAwIDogdW53aW5kaW5nIHN1Y2NlZWRlZCAoc3Rv cHMgZmFsbGJhY2spLiBJZiB3ZSBmb3VuZCBmcmFtZXMgYnV0IGhpdCBhbiBlcnJvcgo+ICsJICog ICAgICAgIChlLmcuIHRydW5jYXRlZCBzdGFjayksIHJlcG9ydCBzdWNjZXNzIHRvIHByZXNlcnZl IGV4aXN0aW5nIGZyYW1lcy4KPiArCSAqICAgIDAgOiB1bndpbmRpbmcgZmFpbGVkIHdpdGhvdXQg eWllbGRpbmcgZnJhbWVzLiBJZ25vcmUgbm9uLWZhdGFsIGVycm9ycwo+ICsJICogICAgICAgIChl LmcuIG1pc3NpbmcgZGVidWcgaW5mbywgRFdBUkYgY29ycnVwdGlvbikgdG8gYWxsb3cgZmFsbGJh Y2sgdW53aW5kZXIgb3IKPiArCSAqICAgICAgICBrZXJuZWwgY2FsbGNoYWluIHJlc29sdXRpb24g dG8gcHJvY2VlZC4KPiArCSAqICA8IDAgOiBmYXRhbCBlcnJvciAoZS5nLiAtRU5PTUVNKS4gQWJv cnRzIHVud2luZGluZyBlbnRpcmVseS4KPiArCSAqLwo+ICsJaWYgKGVycikKPiArCQlyZXR1cm4g KGVyciA9PSAtRU5PTUVNKSA/IC1FTk9NRU0gOiAoZW50cmllcyA+IDAgPyAxIDogMCk7Cj4gKwly ZXR1cm4gZW50cmllczsKPiAgfQo+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvdW53aW5k LWxpYnVud2luZC1sb2NhbC5jIGIvdG9vbHMvcGVyZi91dGlsL3Vud2luZC1saWJ1bndpbmQtbG9j YWwuYwo+IGluZGV4IDg3ZDQ5NmU5ZGZhNi4uMjdlMmY3YjMxNzg5IDEwMDY0NAo+IC0tLSBhL3Rv b2xzL3BlcmYvdXRpbC91bndpbmQtbGlidW53aW5kLWxvY2FsLmMKPiArKysgYi90b29scy9wZXJm L3V0aWwvdW53aW5kLWxpYnVud2luZC1sb2NhbC5jCj4gQEAgLTc0NCw3ICs3NDQsNyBAQCBzdGF0 aWMgaW50IGdldF9lbnRyaWVzKHN0cnVjdCB1bndpbmRfaW5mbyAqdWksIHVud2luZF9lbnRyeV9j Yl90IGNiLAo+ICAJcmV0ID0gcGVyZl9yZWdfdmFsdWUoJnZhbCwgcGVyZl9zYW1wbGVfX3VzZXJf cmVncyh1aS0+c2FtcGxlKSwKPiAgCQkJICAgICBwZXJmX2FyY2hfcmVnX2lwKGVfbWFjaGluZSkp Owo+ICAJaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+ICsJCXJldHVybiAwOwo+ICAKPiAgCWlw c1tpKytdID0gKHVud193b3JkX3QpIHZhbDsKPiAgCj4gQEAgLTc1Nyw3ICs3NTcsNyBAQCBzdGF0 aWMgaW50IGdldF9lbnRyaWVzKHN0cnVjdCB1bndpbmRfaW5mbyAqdWksIHVud2luZF9lbnRyeV9j Yl90IGNiLAo+ICAJCWFkZHJfc3BhY2UgPSBtYXBzX19hZGRyX3NwYWNlKHRocmVhZF9fbWFwcyh1 aS0+dGhyZWFkKSk7Cj4gIAo+ICAJCWlmIChhZGRyX3NwYWNlID09IE5VTEwpCj4gLQkJCXJldHVy biAtMTsKPiArCQkJcmV0dXJuIDA7Cj4gIAo+ICAJCXJldCA9IHVud19pbml0X3JlbW90ZSgmYywg YWRkcl9zcGFjZSwgdWkpOwo+ICAJCWlmIChyZXQgJiYgIXVpLT5iZXN0X2VmZm9ydCkKPiBAQCAt Nzg1LDE1ICs3ODUsMzAgQEAgc3RhdGljIGludCBnZXRfZW50cmllcyhzdHJ1Y3QgdW53aW5kX2lu Zm8gKnVpLCB1bndpbmRfZW50cnlfY2JfdCBjYiwKPiAgCS8qCj4gIAkgKiBEaXNwbGF5IHdoYXQg d2UgZ290IGJhc2VkIG9uIHRoZSBvcmRlciBzZXR1cC4KPiAgCSAqLwo+ICsJaW50IGVudHJpZXMg PSAwOwo+ICAJZm9yIChpID0gMDsgaSA8IG1heF9zdGFjayAmJiAhcmV0OyBpKyspIHsKPiAgCQlp bnQgaiA9IGk7Cj4gIAo+ICAJCWlmIChjYWxsY2hhaW5fcGFyYW0ub3JkZXIgPT0gT1JERVJfQ0FM TEVSKQo+ICAJCQlqID0gbWF4X3N0YWNrIC0gaSAtIDE7Cj4gLQkJcmV0ID0gaXBzW2pdID8gZW50 cnkoaXBzW2pdLCB1aS0+dGhyZWFkLCBjYiwgYXJnKSA6IDA7Cj4gKwkJaWYgKGlwc1tqXSkgewo+ ICsJCQlyZXQgPSBlbnRyeShpcHNbal0sIHVpLT50aHJlYWQsIGNiLCBhcmcpOwo+ICsJCQlpZiAo cmV0KQo+ICsJCQkJYnJlYWs7Cj4gKwkJCWVudHJpZXMrKzsKPiArCQl9Cj4gIAl9Cj4gIAo+IC0J cmV0dXJuIHJldDsKPiArCS8qCj4gKwkgKiBVbndpbmRlciByZXR1cm4gY29udHJhY3Q6Cj4gKwkg KiAgPiAwIDogdW53aW5kaW5nIHN1Y2NlZWRlZCAoc3RvcHMgZmFsbGJhY2spLgo+ICsJICogICAg MCA6IHVud2luZGluZyBmYWlsZWQgd2l0aG91dCB5aWVsZGluZyBmcmFtZXMuIElnbm9yZSBub24t ZmF0YWwgZXJyb3JzCj4gKwkgKiAgICAgICAgKGUuZy4gc3RlcHBpbmcgZmFpbHVyZSkgdG8gYWxs b3cgZmFsbGJhY2sgdW53aW5kZXIgb3Iga2VybmVsIGNhbGxjaGFpbnMuCj4gKwkgKiAgPCAwIDog ZmF0YWwgZXJyb3IgKGUuZy4gLUVOT01FTSkuIEFib3J0cyB1bndpbmRpbmcgZW50aXJlbHkuCj4g KwkgKi8KPiArCWlmIChyZXQgPT0gLUVOT01FTSkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCXJl dHVybiAoZW50cmllcyA+IDAgfHwgcmV0ID09IDApID8gZW50cmllcyA6IDA7Cj4gIH0KPiAgCj4g IHN0YXRpYyBpbnQgX3Vud2luZF9fZ2V0X2VudHJpZXModW53aW5kX2VudHJ5X2NiX3QgY2IsIHZv aWQgKmFyZywKPiBAQCAtODA5LDEwICs4MjQsMTAgQEAgc3RhdGljIGludCBfdW53aW5kX19nZXRf ZW50cmllcyh1bndpbmRfZW50cnlfY2JfdCBjYiwgdm9pZCAqYXJnLAo+ICAJfTsKPiAgCj4gIAlp ZiAoIWRhdGEtPnVzZXJfcmVncyB8fCAhZGF0YS0+dXNlcl9yZWdzLT5yZWdzKQo+IC0JCXJldHVy biAtRUlOVkFMOwo+ICsJCXJldHVybiAwOwo+ICAKPiAgCWlmIChtYXhfc3RhY2sgPD0gMCkKPiAt CQlyZXR1cm4gLUVJTlZBTDsKPiArCQlyZXR1cm4gMDsKPiAgCj4gIAlyZXR1cm4gZ2V0X2VudHJp ZXMoJnVpLCBjYiwgYXJnLCBtYXhfc3RhY2spOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3Bl cmYvdXRpbC91bndpbmQtbGlidW53aW5kLmMgYi90b29scy9wZXJmL3V0aWwvdW53aW5kLWxpYnVu d2luZC5jCj4gaW5kZXggY2I4YmU2YWNmYjZmLi5hMDAxNmI4OTdkYWUgMTAwNjQ0Cj4gLS0tIGEv dG9vbHMvcGVyZi91dGlsL3Vud2luZC1saWJ1bndpbmQuYwo+ICsrKyBiL3Rvb2xzL3BlcmYvdXRp bC91bndpbmQtbGlidW53aW5kLmMKPiBAQCAtNzksNyArNzksNyBAQCB2b2lkIHVud2luZF9fZmlu aXNoX2FjY2VzcyhzdHJ1Y3QgbWFwcyAqbWFwcykKPiAgCQlvcHMtPmZpbmlzaF9hY2Nlc3MobWFw cyk7Cj4gIH0KPiAgCj4gLWludCB1bndpbmRfX2dldF9lbnRyaWVzKHVud2luZF9lbnRyeV9jYl90 IGNiLCB2b2lkICphcmcsCj4gK2ludCBsaWJ1bndpbmRfX2dldF9lbnRyaWVzKHVud2luZF9lbnRy eV9jYl90IGNiLCB2b2lkICphcmcsCj4gIAkJCSBzdHJ1Y3QgdGhyZWFkICp0aHJlYWQsCj4gIAkJ CSBzdHJ1Y3QgcGVyZl9zYW1wbGUgKmRhdGEsIGludCBtYXhfc3RhY2ssCj4gIAkJCSBib29sIGJl c3RfZWZmb3J0KQo+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvdW53aW5kLmMgYi90b29s cy9wZXJmL3V0aWwvdW53aW5kLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAw MDAwMDAwMC4uNGVkNGIxZDU1YzY5Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3Rvb2xzL3BlcmYv dXRpbC91bndpbmQuYwo+IEBAIC0wLDAgKzEsMTA0IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wCj4gKyNpbmNsdWRlICJkZWJ1Zy5oIgo+ICsjaW5jbHVkZSAic3ltYm9s X2NvbmYuaCIKPiArI2luY2x1ZGUgInVud2luZC5oIgo+ICsjaW5jbHVkZSA8bGludXgvc3RyaW5n Lmg+Cj4gKyNpbmNsdWRlIDxzdHJpbmcuaD4KPiArI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ICsKPiAr aW50IHVud2luZF9fZ2V0X2VudHJpZXModW53aW5kX2VudHJ5X2NiX3QgY2IgX19tYXliZV91bnVz ZWQsIHZvaWQgKmFyZyBfX21heWJlX3VudXNlZCwKPiArCQkJc3RydWN0IHRocmVhZCAqdGhyZWFk IF9fbWF5YmVfdW51c2VkLAo+ICsJCQlzdHJ1Y3QgcGVyZl9zYW1wbGUgKmRhdGEgX19tYXliZV91 bnVzZWQsCj4gKwkJCWludCBtYXhfc3RhY2sgX19tYXliZV91bnVzZWQsCj4gKwkJCWJvb2wgYmVz dF9lZmZvcnQgX19tYXliZV91bnVzZWQpCj4gK3sKPiArCWludCByZXQgPSAwOwo+ICsKPiArI2lm IGRlZmluZWQoSEFWRV9MSUJEV19TVVBQT1JUKSB8fCBkZWZpbmVkKEhBVkVfTElCVU5XSU5EX1NV UFBPUlQpCj4gKwlpZiAoc3ltYm9sX2NvbmYudW53aW5kX3N0eWxlWzBdID09IFVOV0lORF9TVFlM RV9VTktOT1dOKSB7Cj4gKwkJaW50IGkgPSAwOwo+ICsjaWZkZWYgSEFWRV9MSUJEV19TVVBQT1JU Cj4gKwkJc3ltYm9sX2NvbmYudW53aW5kX3N0eWxlW2krK10gPSBVTldJTkRfU1RZTEVfTElCRFc7 Cj4gKyNlbmRpZgo+ICsjaWZkZWYgSEFWRV9MSUJVTldJTkRfU1VQUE9SVAo+ICsJCXN5bWJvbF9j b25mLnVud2luZF9zdHlsZVtpKytdID0gVU5XSU5EX1NUWUxFX0xJQlVOV0lORDsKPiArI2VuZGlm Cj4gKwl9Cj4gKyNlbmRpZiAvL2RlZmluZWQoSEFWRV9MSUJEV19TVVBQT1JUKSB8fCBkZWZpbmVk KEhBVkVfTElCVU5XSU5EX1NVUFBPUlQpCj4gKwo+ICsJZm9yIChzaXplX3QgaSA9IDA7IGkgPCBB UlJBWV9TSVpFKHN5bWJvbF9jb25mLnVud2luZF9zdHlsZSk7IGkrKykgewo+ICsJCXN3aXRjaCAo c3ltYm9sX2NvbmYudW53aW5kX3N0eWxlW2ldKSB7Cj4gKwkJY2FzZSBVTldJTkRfU1RZTEVfTElC RFc6Cj4gKwkJCXJldCA9IGxpYmR3X19nZXRfZW50cmllcyhjYiwgYXJnLCB0aHJlYWQsIGRhdGEs IG1heF9zdGFjaywgYmVzdF9lZmZvcnQpOwo+ICsJCQlicmVhazsKPiArCQljYXNlIFVOV0lORF9T VFlMRV9MSUJVTldJTkQ6Cj4gKwkJCXJldCA9IGxpYnVud2luZF9fZ2V0X2VudHJpZXMoY2IsIGFy ZywgdGhyZWFkLCBkYXRhLCBtYXhfc3RhY2ssIGJlc3RfZWZmb3J0KTsKPiArCQkJYnJlYWs7Cj4g KwkJY2FzZSBVTldJTkRfU1RZTEVfVU5LTk9XTjoKPiArCQlkZWZhdWx0Ogo+ICsjaWYgIWRlZmlu ZWQoSEFWRV9MSUJEV19TVVBQT1JUKSAmJiAhZGVmaW5lZChIQVZFX0xJQlVOV0lORF9TVVBQT1JU KQo+ICsJCQlwcl93YXJuaW5nX29uY2UoCj4gKwkJCQkiRXJyb3I6IGR3YXJmIHVud2luZGluZyBu b3Qgc3VwcG9ydGVkLCBidWlsZCBwZXJmIHdpdGggbGliZHcgb3IgbGlidW53aW5kLlxuIik7Cj4g KyNlbmRpZgo+ICsJCQlyZXQgPSAwOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwkJaWYgKHJldCA+ IDApIHsKPiArCQkJcmV0ID0gMDsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsJCWlmIChyZXQgPCAw KQo+ICsJCQlicmVhazsKPiArCX0KPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK2ludCB1bndp bmRfX2NvbmZpZ3VyZShjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpj YiBfX21heWJlX3VudXNlZCkKPiArewo+ICsJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1bndp bmRfc3R5bGVfbmFtZXNbXSA9IHsKPiArCQlbVU5XSU5EX1NUWUxFX0xJQkRXXSA9ICJsaWJkdyIs Cj4gKwkJW1VOV0lORF9TVFlMRV9MSUJVTldJTkRdID0gImxpYnVud2luZCIsCj4gKwkJTlVMTAo+ ICsJfTsKPiArCWNoYXIgKnMsICpwLCAqc2F2ZXB0cjsKPiArCXNpemVfdCBpID0gMDsKPiArCj4g KwlpZiAoc3RyY21wKHZhciwgInVud2luZC5zdHlsZSIpKQo+ICsJCXJldHVybiAwOwo+ICsKPiAr CWlmICghdmFsdWUpCj4gKwkJcmV0dXJuIC0xOwo+ICsKPiArCXMgPSBzdHJkdXAodmFsdWUpOwo+ ICsJaWYgKCFzKQo+ICsJCXJldHVybiAtMTsKPiArCj4gKwltZW1zZXQoc3ltYm9sX2NvbmYudW53 aW5kX3N0eWxlLCAwLCBzaXplb2Yoc3ltYm9sX2NvbmYudW53aW5kX3N0eWxlKSk7Cj4gKwo+ICsJ cCA9IHN0cnRva19yKHMsICIsIiwgJnNhdmVwdHIpOwo+ICsJd2hpbGUgKHAgJiYgaSA8IEFSUkFZ X1NJWkUoc3ltYm9sX2NvbmYudW53aW5kX3N0eWxlKSkgewo+ICsJCWJvb2wgZm91bmQgPSBmYWxz ZTsKPiArCQljaGFyICpxID0gc3RyaW0ocCk7Cj4gKwo+ICsJCWZvciAoc2l6ZV90IGogPSBVTldJ TkRfU1RZTEVfTElCRFc7IGogPCBNQVhfVU5XSU5EX1NUWUxFOyBqKyspIHsKPiArCQkJaWYgKCFz dHJjYXNlY21wKHEsIHVud2luZF9zdHlsZV9uYW1lc1tqXSkpIHsKPiArCQkJCXN5bWJvbF9jb25m LnVud2luZF9zdHlsZVtpKytdID0gajsKPiArCQkJCWZvdW5kID0gdHJ1ZTsKPiArCQkJCWJyZWFr Owo+ICsJCQl9Cj4gKwkJfQo+ICsJCWlmICghZm91bmQpCj4gKwkJCXByX3dhcm5pbmcoIlVua25v d24gdW53aW5kIHN0eWxlOiAlc1xuIiwgcSk7Cj4gKwkJcCA9IHN0cnRva19yKE5VTEwsICIsIiwg JnNhdmVwdHIpOwo+ICsJfQo+ICsKPiArCWZyZWUocyk7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsK PiAraW50IHVud2luZF9fb3B0aW9uKGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdCBfX21heWJlX3Vu dXNlZCwKPiArCQkgICBjb25zdCBjaGFyICphcmcsCj4gKwkJICAgaW50IHVuc2V0IF9fbWF5YmVf dW51c2VkKQo+ICt7Cj4gKwlyZXR1cm4gdW53aW5kX19jb25maWd1cmUoInVud2luZC5zdHlsZSIs IGFyZywgTlVMTCk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3Vud2luZC5o IGIvdG9vbHMvcGVyZi91dGlsL3Vud2luZC5oCj4gaW5kZXggOWY3MTY0YzZkOWFhLi4yOGRiM2Uz YjliNTEgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVyZi91dGlsL3Vud2luZC5oCj4gKysrIGIvdG9v bHMvcGVyZi91dGlsL3Vud2luZC5oCj4gQEAgLTQsOSArNCwxMCBAQAo+ICAKPiAgI2luY2x1ZGUg PGxpbnV4L2NvbXBpbGVyLmg+Cj4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+IC0jaW5jbHVk ZSAidXRpbC9tYXBfc3ltYm9sLmgiCj4gKyNpbmNsdWRlICJtYXBfc3ltYm9sLmgiCj4gIAo+ICBz dHJ1Y3QgbWFwczsKPiArc3RydWN0IG9wdGlvbjsKPiAgc3RydWN0IHBlcmZfc2FtcGxlOwo+ICBz dHJ1Y3QgdGhyZWFkOwo+ICAKPiBAQCAtMjYsNyArMjcsOSBAQCBzdHJ1Y3QgdW53aW5kX2xpYnVu d2luZF9vcHMgewo+ICAJCQkgICBzdHJ1Y3QgcGVyZl9zYW1wbGUgKmRhdGEsIGludCBtYXhfc3Rh Y2ssIGJvb2wgYmVzdF9lZmZvcnQpOwo+ICB9Owo+ICAKPiAtI2lmZGVmIEhBVkVfRFdBUkZfVU5X SU5EX1NVUFBPUlQKPiAraW50IHVud2luZF9fY29uZmlndXJlKGNvbnN0IGNoYXIgKnZhciwgY29u c3QgY2hhciAqdmFsdWUsIHZvaWQgKmNiKTsKPiAraW50IHVud2luZF9fb3B0aW9uKGNvbnN0IHN0 cnVjdCBvcHRpb24gKm9wdCwgY29uc3QgY2hhciAqYXJnLCBpbnQgdW5zZXQpOwo+ICsKPiAgLyoK PiAgICogV2hlbiBiZXN0X2VmZm9ydCBpcyBzZXQsIGRvbid0IHJlcG9ydCBlcnJvcnMgYW5kIGZh aWwgc2lsZW50bHkuIFRoaXMgY291bGQKPiAgICogYmUgZXhwYW5kZWQgaW4gdGhlIGZ1dHVyZSB0 byBiZSBtb3JlIHBlcm1pc3NpdmUgYWJvdXQgdGhpbmdzIG90aGVyIHRoYW4KPiBAQCAtMzYsOCAr MzksMzEgQEAgaW50IHVud2luZF9fZ2V0X2VudHJpZXModW53aW5kX2VudHJ5X2NiX3QgY2IsIHZv aWQgKmFyZywKPiAgCQkJc3RydWN0IHRocmVhZCAqdGhyZWFkLAo+ICAJCQlzdHJ1Y3QgcGVyZl9z YW1wbGUgKmRhdGEsIGludCBtYXhfc3RhY2ssCj4gIAkJCWJvb2wgYmVzdF9lZmZvcnQpOwo+IC0v KiBsaWJ1bndpbmQgc3BlY2lmaWMgKi8KPiArCj4gKyNpZmRlZiBIQVZFX0xJQkRXX1NVUFBPUlQK PiAraW50IGxpYmR3X19nZXRfZW50cmllcyh1bndpbmRfZW50cnlfY2JfdCBjYiwgdm9pZCAqYXJn LAo+ICsJCSAgICAgICBzdHJ1Y3QgdGhyZWFkICp0aHJlYWQsCj4gKwkJICAgICAgIHN0cnVjdCBw ZXJmX3NhbXBsZSAqZGF0YSwgaW50IG1heF9zdGFjaywKPiArCQkgICAgICAgYm9vbCBiZXN0X2Vm Zm9ydCk7Cj4gKyNlbHNlCj4gKyNpbmNsdWRlICJkZWJ1Zy5oIgo+ICtzdGF0aWMgaW5saW5lIGlu dCBsaWJkd19fZ2V0X2VudHJpZXModW53aW5kX2VudHJ5X2NiX3QgY2IgX19tYXliZV91bnVzZWQs IHZvaWQgKmFyZyBfX21heWJlX3VudXNlZCwKPiArCQkJCSAgICAgc3RydWN0IHRocmVhZCAqdGhy ZWFkIF9fbWF5YmVfdW51c2VkLAo+ICsJCQkJICAgICBzdHJ1Y3QgcGVyZl9zYW1wbGUgKmRhdGEg X19tYXliZV91bnVzZWQsCj4gKwkJCQkgICAgIGludCBtYXhfc3RhY2sgX19tYXliZV91bnVzZWQs Cj4gKwkJCQkgICAgIGJvb2wgYmVzdF9lZmZvcnQgX19tYXliZV91bnVzZWQpCj4gK3sKPiArCXBy X2VycigiRXJyb3I6IGxpYmR3IGR3YXJmIHVud2luZGluZyBub3QgYnVpbHQgaW50byBwZXJmXG4i KTsKPiArCXJldHVybiAwOwo+ICt9Cj4gKyNlbmRpZgo+ICsKPiAgI2lmZGVmIEhBVkVfTElCVU5X SU5EX1NVUFBPUlQKPiArLyogbGlidW53aW5kIHNwZWNpZmljICovCj4gK2ludCBsaWJ1bndpbmRf X2dldF9lbnRyaWVzKHVud2luZF9lbnRyeV9jYl90IGNiLCB2b2lkICphcmcsCj4gKwkJCSAgIHN0 cnVjdCB0aHJlYWQgKnRocmVhZCwKPiArCQkJICAgc3RydWN0IHBlcmZfc2FtcGxlICpkYXRhLCBp bnQgbWF4X3N0YWNrLAo+ICsJCQkgICBib29sIGJlc3RfZWZmb3J0KTsKPiAgI2lmbmRlZiBMSUJV TldJTkRfX0FSQ0hfUkVHX0lECj4gICNkZWZpbmUgTElCVU5XSU5EX19BUkNIX1JFR19JRChyZWdu dW0pIGxpYnVud2luZF9fYXJjaF9yZWdfaWQocmVnbnVtKQo+ICAjZW5kaWYKPiBAQCAtNDcsMjUg KzczLDE1IEBAIGludCB1bndpbmRfX3ByZXBhcmVfYWNjZXNzKHN0cnVjdCBtYXBzICptYXBzLCBz dHJ1Y3QgbWFwICptYXAsIGJvb2wgKmluaXRpYWxpemVkCj4gIHZvaWQgdW53aW5kX19mbHVzaF9h Y2Nlc3Moc3RydWN0IG1hcHMgKm1hcHMpOwo+ICB2b2lkIHVud2luZF9fZmluaXNoX2FjY2Vzcyhz dHJ1Y3QgbWFwcyAqbWFwcyk7Cj4gICNlbHNlCj4gLXN0YXRpYyBpbmxpbmUgaW50IHVud2luZF9f cHJlcGFyZV9hY2Nlc3Moc3RydWN0IG1hcHMgKm1hcHMgX19tYXliZV91bnVzZWQsCj4gLQkJCQkJ IHN0cnVjdCBtYXAgKm1hcCBfX21heWJlX3VudXNlZCwKPiAtCQkJCQkgYm9vbCAqaW5pdGlhbGl6 ZWQgX19tYXliZV91bnVzZWQpCj4gLXsKPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+IC1zdGF0aWMg aW5saW5lIHZvaWQgdW53aW5kX19mbHVzaF9hY2Nlc3Moc3RydWN0IG1hcHMgKm1hcHMgX19tYXli ZV91bnVzZWQpIHt9Cj4gLXN0YXRpYyBpbmxpbmUgdm9pZCB1bndpbmRfX2ZpbmlzaF9hY2Nlc3Mo c3RydWN0IG1hcHMgKm1hcHMgX19tYXliZV91bnVzZWQpIHt9Cj4gLSNlbmRpZgo+IC0jZWxzZQo+ IC1zdGF0aWMgaW5saW5lIGludAo+IC11bndpbmRfX2dldF9lbnRyaWVzKHVud2luZF9lbnRyeV9j Yl90IGNiIF9fbWF5YmVfdW51c2VkLAo+IC0JCSAgICB2b2lkICphcmcgX19tYXliZV91bnVzZWQs Cj4gLQkJICAgIHN0cnVjdCB0aHJlYWQgKnRocmVhZCBfX21heWJlX3VudXNlZCwKPiAtCQkgICAg c3RydWN0IHBlcmZfc2FtcGxlICpkYXRhIF9fbWF5YmVfdW51c2VkLAo+IC0JCSAgICBpbnQgbWF4 X3N0YWNrIF9fbWF5YmVfdW51c2VkLAo+IC0JCSAgICBib29sIGJlc3RfZWZmb3J0IF9fbWF5YmVf dW51c2VkKQo+ICsjaW5jbHVkZSAiZGVidWcuaCIKPiArc3RhdGljIGlubGluZSBpbnQgbGlidW53 aW5kX19nZXRfZW50cmllcyh1bndpbmRfZW50cnlfY2JfdCBjYiBfX21heWJlX3VudXNlZCwKPiAr CQkJCQkgdm9pZCAqYXJnIF9fbWF5YmVfdW51c2VkLAo+ICsJCQkJCSBzdHJ1Y3QgdGhyZWFkICp0 aHJlYWQgX19tYXliZV91bnVzZWQsCj4gKwkJCQkJIHN0cnVjdCBwZXJmX3NhbXBsZSAqZGF0YSBf X21heWJlX3VudXNlZCwKPiArCQkJCQkgaW50IG1heF9zdGFjayBfX21heWJlX3VudXNlZCwKPiAr CQkJCQkgYm9vbCBiZXN0X2VmZm9ydCBfX21heWJlX3VudXNlZCkKPiAgewo+ICsJcHJfZXJyKCJF cnJvcjogbGlidW53aW5kIGR3YXJmIHVud2luZGluZyBub3QgYnVpbHQgaW50byBwZXJmXG4iKTsK PiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IEBAIC03OCw1ICs5NCw2IEBAIHN0YXRpYyBpbmxpbmUg aW50IHVud2luZF9fcHJlcGFyZV9hY2Nlc3Moc3RydWN0IG1hcHMgKm1hcHMgX19tYXliZV91bnVz ZWQsCj4gIAo+ICBzdGF0aWMgaW5saW5lIHZvaWQgdW53aW5kX19mbHVzaF9hY2Nlc3Moc3RydWN0 IG1hcHMgKm1hcHMgX19tYXliZV91bnVzZWQpIHt9Cj4gIHN0YXRpYyBpbmxpbmUgdm9pZCB1bndp bmRfX2ZpbmlzaF9hY2Nlc3Moc3RydWN0IG1hcHMgKm1hcHMgX19tYXliZV91bnVzZWQpIHt9Cj4g LSNlbmRpZiAvKiBIQVZFX0RXQVJGX1VOV0lORF9TVVBQT1JUICovCj4gKyNlbmRpZgo+ICsKPiAg I2VuZGlmIC8qIF9fVU5XSU5EX0ggKi8KPiAtLSAKPiAyLjU0LjAuNTYzLmc0ZjY5YjQ3Yjk0LWdv b2cKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK