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 X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6E7F7C49ED7 for ; Thu, 19 Sep 2019 09:15:56 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 300C1217D6 for ; Thu, 19 Sep 2019 09:15:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 300C1217D6 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iAsX7-0006Q6-4v; Thu, 19 Sep 2019 09:15:25 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iAsX5-0006Q0-KT for xen-devel@lists.xenproject.org; Thu, 19 Sep 2019 09:15:23 +0000 X-Inumbo-ID: ff4110d0-dabd-11e9-978d-bc764e2007e4 Received: from foss.arm.com (unknown [217.140.110.172]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id ff4110d0-dabd-11e9-978d-bc764e2007e4; Thu, 19 Sep 2019 09:15:18 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7B714337; Thu, 19 Sep 2019 02:15:17 -0700 (PDT) Received: from [10.1.196.50] (e108454-lin.cambridge.arm.com [10.1.196.50]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 490E53F575; Thu, 19 Sep 2019 02:15:05 -0700 (PDT) To: Roger Pau Monne , xen-devel@lists.xenproject.org References: <20190822065132.48200-1-roger.pau@citrix.com> From: Julien Grall Message-ID: Date: Thu, 19 Sep 2019 10:15:04 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20190822065132.48200-1-roger.pau@citrix.com> Content-Language: en-US Subject: Re: [Xen-devel] [PATCH v2] print: introduce a format specifier for pci_sbdf_t X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Tian , Stefano Stabellini , Suravee Suthikulpanit , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Jan Beulich , Brian Woods Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SGkgUm9nZXIsCgpPbiAyMi8wOC8yMDE5IDA3OjUxLCBSb2dlciBQYXUgTW9ubmUgd3JvdGU6Cj4g VGhlIG5ldyBmb3JtYXQgc3BlY2lmaWVyIGlzICclcHAnLCBhbmQgcHJpbnRzIGEgcGNpX3NiZGZf dCB1c2luZyB0aGUKPiBzZWc6YnVzOmRldi5mdW5jIGZvcm1hdC4gUmVwbGFjZSBhbGwgU0JERnMg cHJpbnRlZCB1c2luZwo+ICclMDR4OiUwMng6JTAyeC4ldScgdG8gdXNlIHRoZSBuZXcgZm9ybWF0 IHNwZWNpZmllci4KPiAKPiBObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZC4KPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KCkZvciB0 aGUgY29tbW9uIGNvZGU6CgpBY2tlZC1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJt LmNvbT4KCkNoZWVycywKCj4gLS0tCj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAgIC0gVXNlIGJhc2Ug OCB0byBwcmludCB0aGUgZnVuY3Rpb24gbnVtYmVyLgo+ICAgLSBTb3J0IHRoZSBhZGRpdGlvbiBp biB0aGUgcG9pbnRlciBmdW5jdGlvbiBhbHBoYWJldGljYWxseS4KPiAtLS0KPiAgIGRvY3MvbWlz Yy9wcmludGstZm9ybWF0cy50eHQgICAgICAgICAgICAgICAgfCAgIDUgKwo+ICAgeGVuL2FyY2gv eDg2L2h2bS92bXNpLmMgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQo+ICAgeGVuL2FyY2gv eDg2L21zaS5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNSArKystLS0KPiAgIHhlbi9j b21tb24vdnNwcmludGYuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTggKysrKwo+ICAgeGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2FjcGkuYyAgICB8ICAxNyArKy0KPiAgIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9jbWQuYyAgICAgfCAgIDUgKy0KPiAgIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9kZXRlY3QuYyAgfCAgIDUgKy0KPiAgIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMgICAgfCAgMTIgKy0tCj4gICB4 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW50ci5jICAgIHwgICAzICstCj4gICB4 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jIHwgIDI1ICsrLS0tCj4g ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyAgICAgICAgICAgICAgIHwgMTE0ICsrKysr KysrLS0tLS0tLS0tLS0tCj4gICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5jICAg ICAgICAgIHwgIDI1ICsrKy0tCj4gICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW50cmVt YXAuYyAgICAgIHwgIDExICstCj4gICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUu YyAgICAgICAgIHwgIDgwICsrKysrKy0tLS0tLS0tCj4gICB4ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvcXVpcmtzLmMgICAgICAgIHwgIDIyICsrLS0KPiAgIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC91dGlscy5jICAgICAgICAgfCAgIDYgKy0KPiAgIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3g4Ni9hdHMuYyAgICAgICAgICAgfCAgMTMgKy0tCj4gICB4ZW4vZHJpdmVycy92cGNpL2hl YWRlci5jICAgICAgICAgICAgICAgICAgIHwgIDExICstCj4gICB4ZW4vZHJpdmVycy92cGNpL21z aS5jICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCj4gICB4ZW4vZHJpdmVycy92cGNpL21z aXguYyAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICsrLS0tCj4gICAyMCBmaWxlcyBjaGFuZ2Vk LCAxODkgaW5zZXJ0aW9ucygrKSwgMjU4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9k b2NzL21pc2MvcHJpbnRrLWZvcm1hdHMudHh0IGIvZG9jcy9taXNjL3ByaW50ay1mb3JtYXRzLnR4 dAo+IGluZGV4IDA4MGY0OThmNjUuLjhmNjY2ZjY5NmEgMTAwNjQ0Cj4gLS0tIGEvZG9jcy9taXNj L3ByaW50ay1mb3JtYXRzLnR4dAo+ICsrKyBiL2RvY3MvbWlzYy9wcmludGstZm9ybWF0cy50eHQK PiBAQCAtNDgsMyArNDgsOCBAQCBEb21haW4gYW5kIHZDUFUgaW5mb3JtYXRpb246Cj4gICAgICAg ICAgICAgICAgICBUaGUgZG9tYWluIHBhcnQgYXMgYWJvdmUsIHdpdGggdGhlIHZjcHVfaWQgcHJp bnRlZCBpbiBkZWNpbWFsLgo+ICAgICAgICAgICAgICAgICAgICBlLmcuICBkMHYxCj4gICAgICAg ICAgICAgICAgICAgICAgICAgIGRbSURMRV12MAo+ICsKPiArUENJOgo+ICsKPiArICAgICAgICVw cCAgICAgUENJIGRldmljZSBhZGRyZXNzIGluIFM6QjpELkYgZm9ybWF0IGZyb20gYSBwY2lfc2Jk Zl90Lgo+ICsgICAgICAgICAgICAgICAgIGUuZy4gIDAwMDQ6MDI6MDAuMAo+IGRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm1zaS5jCj4gaW5k ZXggNjU5N2Q5ZjcxOS4uYzljZDFjMjZjNiAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvaHZt L3Ztc2kuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm1zaS5jCj4gQEAgLTY5MywxMCArNjkz LDggQEAgc3RhdGljIGludCB2cGNpX21zaV91cGRhdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBk ZXYsIHVpbnQzMl90IGRhdGEsCj4gICAKPiAgICAgICAgICAgaWYgKCByYyApCj4gICAgICAgICAg IHsKPiAtICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwKPiAtICAgICAgICAgICAgICAg ICAgICAgIiUwNHg6JTAyeDolMDJ4LiV1OiBmYWlsZWQgdG8gYmluZCBQSVJRICV1OiAlZFxuIiwK PiAtICAgICAgICAgICAgICAgICAgICAgcGRldi0+c2VnLCBwZGV2LT5idXMsIFBDSV9TTE9UKHBk ZXYtPmRldmZuKSwKPiAtICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMocGRldi0+ZGV2Zm4p LCBwaXJxICsgaSwgcmMpOwo+ICsgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfRVJSLCAiJXBw OiBmYWlsZWQgdG8gYmluZCBQSVJRICV1OiAlZFxuIiwKPiArICAgICAgICAgICAgICAgICAgICAg JnBkZXYtPnNiZGYsIHBpcnEgKyBpLCByYyk7Cj4gICAgICAgICAgICAgICB3aGlsZSAoIGJpbmQu bWFjaGluZV9pcnEtLSA+IHBpcnEgKQo+ICAgICAgICAgICAgICAgICAgIHB0X2lycV9kZXN0cm95 X2JpbmQocGRldi0+ZG9tYWluLCAmYmluZCk7Cj4gICAgICAgICAgICAgICByZXR1cm4gcmM7Cj4g QEAgLTc1MCw5ICs3NDgsNyBAQCBzdGF0aWMgaW50IHZwY2lfbXNpX2VuYWJsZShjb25zdCBzdHJ1 Y3QgcGNpX2RldiAqcGRldiwgdWludDMyX3QgZGF0YSwKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJm1zaV9pbmZvKTsKPiAgICAgICBpZiAoIHJjICkKPiAgICAgICB7Cj4g LSAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIiUwNHg6JTAyeDolMDJ4LiV1OiBmYWlsZWQg dG8gbWFwIFBJUlE6ICVkXG4iLAo+IC0gICAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+ YnVzLCBQQ0lfU0xPVChwZGV2LT5kZXZmbiksCj4gLSAgICAgICAgICAgICAgICAgUENJX0ZVTkMo cGRldi0+ZGV2Zm4pLCByYyk7Cj4gKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIiVwcDog ZmFpbGVkIHRvIG1hcCBQSVJROiAlZFxuIiwgJnBkZXYtPnNiZGYsIHJjKTsKPiAgICAgICAgICAg cmV0dXJuIHJjOwo+ICAgICAgIH0KPiAgIAo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbXNp LmMgYi94ZW4vYXJjaC94ODYvbXNpLmMKPiBpbmRleCBkNjMwNjAwNWE5Li4xNGQ4NmY5MTk1IDEw MDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9tc2kuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9tc2ku Ywo+IEBAIC00MjgsOCArNDI4LDggQEAgc3RhdGljIGJvb2wgbXNpX3NldF9tYXNrX2JpdChzdHJ1 Y3QgaXJxX2Rlc2MgKmRlc2MsIGJvb2wgaG9zdCwgYm9vbCBndWVzdCkKPiAgICAgICAgICAgICAg IHsKPiAgICAgICAgICAgICAgICAgICBwZGV2LT5tc2l4LT53YXJuZWQgPSBkb21pZDsKPiAgICAg ICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORwo+IC0gICAgICAgICAgICAgICAg ICAgICAgICJjYW5ub3QgbWFzayBJUlEgJWQ6IG1hc2tpbmcgTVNJLVggb24gRG9tJWQncyAlMDR4 OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICBkZXNjLT5pcnEsIGRv bWlkLCBzZWcsIGJ1cywgc2xvdCwgZnVuYyk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgImNh bm5vdCBtYXNrIElSUSAlZDogbWFza2luZyBNU0ktWCBvbiBEb20lZCdzICVwcFxuIiwKPiArICAg ICAgICAgICAgICAgICAgICAgICBkZXNjLT5pcnEsIGRvbWlkLCAmcGRldi0+c2JkZik7Cj4gICAg ICAgICAgICAgICB9Cj4gICAgICAgICAgIH0KPiAgICAgICAgICAgcGRldi0+bXNpeC0+aG9zdF9t YXNrYWxsID0gbWFza2FsbDsKPiBAQCAtOTg3LDExICs5ODcsMTEgQEAgc3RhdGljIGludCBtc2l4 X2NhcGFiaWxpdHlfaW5pdChzdHJ1Y3QgcGNpX2RldiAqZGV2LAo+ICAgICAgICAgICAgICAgc3Ry dWN0IGRvbWFpbiAqZCA9IGRldi0+ZG9tYWluID86IGN1cnJkOwo+ICAgCj4gICAgICAgICAgICAg ICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oY3VycmQpIHx8IGQgIT0gY3VycmQgKQo+IC0gICAg ICAgICAgICAgICAgcHJpbnRrKCIlcyB1c2Ugb2YgTVNJLVggb24gJTA0eDolMDJ4OiUwMnguJXUg YnkgRG9tJWRcbiIsCj4gKyAgICAgICAgICAgICAgICBwcmludGsoIiVzIHVzZSBvZiBNU0ktWCBv biAlcHAgYnkgJXBkXG4iLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICBpc19oYXJkd2FyZV9k b21haW4oY3VycmQpCj4gICAgICAgICAgICAgICAgICAgICAgICAgID8gWEVOTE9HX1dBUk5JTkcg IlBvdGVudGlhbGx5IGluc2VjdXJlIgo+ICAgICAgICAgICAgICAgICAgICAgICAgICA6IFhFTkxP R19FUlIgIkluc2VjdXJlIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1cywgc2xv dCwgZnVuYywgZC0+ZG9tYWluX2lkKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAmZGV2LT5z YmRmLCBkKTsKPiAgICAgICAgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSAmJgo+ ICAgICAgICAgICAgICAgICAgICAvKiBBc3N1bWUgYSBkb21haW4gd2l0aG91dCBtZW1vcnkgaGFz IG5vIG1hcHBpbmdzIHlldC4gKi8KPiAgICAgICAgICAgICAgICAgICAgKCFpc19oYXJkd2FyZV9k b21haW4oY3VycmQpIHx8IGQtPnRvdF9wYWdlcykgKQo+IEBAIC0xMDQ2LDE4ICsxMDQ2LDE1IEBA IHN0YXRpYyBpbnQgX19wY2lfZW5hYmxlX21zaShzdHJ1Y3QgbXNpX2luZm8gKm1zaSwgc3RydWN0 IG1zaV9kZXNjICoqZGVzYykKPiAgICAgICBvbGRfZGVzYyA9IGZpbmRfbXNpX2VudHJ5KHBkZXYs IG1zaS0+aXJxLCBQQ0lfQ0FQX0lEX01TSSk7Cj4gICAgICAgaWYgKCBvbGRfZGVzYyApCj4gICAg ICAgewo+IC0gICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJpcnEgJWQgYWxyZWFkeSBtYXBwZWQg dG8gTVNJIG9uICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICBtc2ktPmly cSwgbXNpLT5zZWcsIG1zaS0+YnVzLAo+IC0gICAgICAgICAgICAgICBQQ0lfU0xPVChtc2ktPmRl dmZuKSwgUENJX0ZVTkMobXNpLT5kZXZmbikpOwo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJS ICJpcnEgJWQgYWxyZWFkeSBtYXBwZWQgdG8gTVNJIG9uICVwcFxuIiwKPiArICAgICAgICAgICAg ICAgbXNpLT5pcnEsICZwZGV2LT5zYmRmKTsKPiAgICAgICAgICAgcmV0dXJuIC1FRVhJU1Q7Cj4g ICAgICAgfQo+ICAgCj4gICAgICAgb2xkX2Rlc2MgPSBmaW5kX21zaV9lbnRyeShwZGV2LCAtMSwg UENJX0NBUF9JRF9NU0lYKTsKPiAgICAgICBpZiAoIG9sZF9kZXNjICkKPiAgICAgICB7Cj4gLSAg ICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJNU0ktWCBhbHJlYWR5IGluIHVzZSBvbiAlMDR4 OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgbXNpLT5zZWcsIG1zaS0+YnVzLAo+ IC0gICAgICAgICAgICAgICBQQ0lfU0xPVChtc2ktPmRldmZuKSwgUENJX0ZVTkMobXNpLT5kZXZm bikpOwo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyAiTVNJLVggYWxyZWFkeSBpbiB1 c2Ugb24gJXBwXG4iLCAmcGRldi0+c2JkZik7Cj4gICAgICAgICAgIF9fcGNpX2Rpc2FibGVfbXNp eChvbGRfZGVzYyk7Cj4gICAgICAgfQo+ICAgCj4gQEAgLTExMTQsMTYgKzExMTEsMTUgQEAgc3Rh dGljIGludCBfX3BjaV9lbmFibGVfbXNpeChzdHJ1Y3QgbXNpX2luZm8gKm1zaSwgc3RydWN0IG1z aV9kZXNjICoqZGVzYykKPiAgICAgICBvbGRfZGVzYyA9IGZpbmRfbXNpX2VudHJ5KHBkZXYsIG1z aS0+aXJxLCBQQ0lfQ0FQX0lEX01TSVgpOwo+ICAgICAgIGlmICggb2xkX2Rlc2MgKQo+ICAgICAg IHsKPiAtICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAiaXJxICVkIGFscmVhZHkgbWFwcGVkIHRv IE1TSS1YIG9uICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICBtc2ktPmly cSwgbXNpLT5zZWcsIG1zaS0+YnVzLCBzbG90LCBmdW5jKTsKPiArICAgICAgICBwcmludGsoWEVO TE9HX0VSUiAiaXJxICVkIGFscmVhZHkgbWFwcGVkIHRvIE1TSS1YIG9uICVwcFxuIiwKPiArICAg ICAgICAgICAgICAgbXNpLT5pcnEsICZwZGV2LT5zYmRmKTsKPiAgICAgICAgICAgcmV0dXJuIC1F RVhJU1Q7Cj4gICAgICAgfQo+ICAgCj4gICAgICAgb2xkX2Rlc2MgPSBmaW5kX21zaV9lbnRyeShw ZGV2LCAtMSwgUENJX0NBUF9JRF9NU0kpOwo+ICAgICAgIGlmICggb2xkX2Rlc2MgKQo+ICAgICAg IHsKPiAtICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIk1TSSBhbHJlYWR5IGluIHVzZSBv biAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgbXNpLT5zZWcsIG1zaS0+ YnVzLCBzbG90LCBmdW5jKTsKPiArICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIk1TSSBh bHJlYWR5IGluIHVzZSBvbiAlcHBcbiIsICZwZGV2LT5zYmRmKTsKPiAgICAgICAgICAgX19wY2lf ZGlzYWJsZV9tc2kob2xkX2Rlc2MpOwo+ICAgICAgIH0KPiAgIAo+IEBAIC0xMTcwLDkgKzExNjYs OCBAQCBzdGF0aWMgdm9pZCBfX3BjaV9kaXNhYmxlX21zaXgoc3RydWN0IG1zaV9kZXNjICplbnRy eSkKPiAgICAgICAgICAgd3JpdGVsKDEsIGVudHJ5LT5tYXNrX2Jhc2UgKyBQQ0lfTVNJWF9FTlRS WV9WRUNUT1JfQ1RSTF9PRkZTRVQpOwo+ICAgICAgIGVsc2UgaWYgKCAhKGNvbnRyb2wgJiBQQ0lf TVNJWF9GTEFHU19NQVNLQUxMKSApCj4gICAgICAgewo+IC0gICAgICAgIHByaW50ayhYRU5MT0df V0FSTklORwo+IC0gICAgICAgICAgICAgICAiY2Fubm90IGRpc2FibGUgSVJRICVkOiBtYXNraW5n IE1TSS1YIG9uICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICBlbnRyeS0+ aXJxLCBzZWcsIGJ1cywgc2xvdCwgZnVuYyk7Cj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJO SU5HICJjYW5ub3QgZGlzYWJsZSBJUlEgJWQ6IG1hc2tpbmcgTVNJLVggb24gJXBwXG4iLAo+ICsg ICAgICAgICAgICAgICBlbnRyeS0+aXJxLCAmZGV2LT5zYmRmKTsKPiAgICAgICAgICAgbWFza2Fs bCA9IHRydWU7Cj4gICAgICAgfQo+ICAgICAgIGRldi0+bXNpeC0+aG9zdF9tYXNrYWxsID0gbWFz a2FsbDsKPiBAQCAtMTM0MCw3ICsxMzM1LDYgQEAgaW50IHBjaV9yZXN0b3JlX21zaV9zdGF0ZShz dHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgICAgICBzdHJ1Y3QgbXNpX2Rlc2MgKmVudHJ5LCAqdG1w Owo+ICAgICAgIHN0cnVjdCBpcnFfZGVzYyAqZGVzYzsKPiAgICAgICBzdHJ1Y3QgbXNpX21zZyBt c2c7Cj4gLSAgICB1OCBzbG90ID0gUENJX1NMT1QocGRldi0+ZGV2Zm4pLCBmdW5jID0gUENJX0ZV TkMocGRldi0+ZGV2Zm4pOwo+ICAgICAgIHVuc2lnbmVkIGludCB0eXBlID0gMCwgcG9zID0gMDsK PiAgICAgICB1MTYgY29udHJvbCA9IDA7Cj4gICAKPiBAQCAtMTM2OSw5ICsxMzYzLDggQEAgaW50 IHBjaV9yZXN0b3JlX21zaV9zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgICAgICAgICAg aWYgKGRlc2MtPm1zaV9kZXNjICE9IGVudHJ5KQo+ICAgICAgICAgICB7Cj4gICAgICAgYm9ndXM6 Cj4gLSAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwKPiAtICAgICAgICAgICAgICAgICAg ICAiUmVzdG9yZSBNU0kgZm9yICUwNHg6JTAyeDolMDJ4OiV1IGVudHJ5ICV1IG5vdCBzZXQ/XG4i LAo+IC0gICAgICAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBzbG90LCBmdW5j LCBpKTsKPiArICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCAiUmVzdG9yZSBNU0kgZm9y ICVwcCBlbnRyeSAldSBub3Qgc2V0P1xuIiwKPiArICAgICAgICAgICAgICAgICAgICAmcGRldi0+ c2JkZiwgaSk7Cj4gICAgICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5s b2NrLCBmbGFncyk7Cj4gICAgICAgICAgICAgICBpZiAoIHR5cGUgPT0gUENJX0NBUF9JRF9NU0lY ICkKPiAgICAgICAgICAgICAgICAgICBwY2lfY29uZl93cml0ZTE2KHBkZXYtPnNiZGYsIG1zaXhf Y29udHJvbF9yZWcocG9zKSwKPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi92c3ByaW50Zi5jIGIv eGVuL2NvbW1vbi92c3ByaW50Zi5jCj4gaW5kZXggMTgzZDNlZDRiYi4uMTg1YTRiZDU2MSAxMDA2 NDQKPiAtLS0gYS94ZW4vY29tbW9uL3ZzcHJpbnRmLmMKPiArKysgYi94ZW4vY29tbW9uL3ZzcHJp bnRmLmMKPiBAQCAtMzk0LDYgKzM5NCwyMCBAQCBzdGF0aWMgY2hhciAqcHJpbnRfdmNwdShjaGFy ICpzdHIsIGNvbnN0IGNoYXIgKmVuZCwgY29uc3Qgc3RydWN0IHZjcHUgKnYpCj4gICAgICAgcmV0 dXJuIG51bWJlcihzdHIgKyAxLCBlbmQsIHYtPnZjcHVfaWQsIDEwLCAtMSwgLTEsIDApOwo+ICAg fQo+ICAgCj4gK3N0YXRpYyBjaGFyICpwcmludF9wY2lfYWRkcihjaGFyICpzdHIsIGNvbnN0IGNo YXIgKmVuZCwgY29uc3QgcGNpX3NiZGZfdCAqc2JkZikKPiArewo+ICsgICAgc3RyID0gbnVtYmVy KHN0ciwgZW5kLCBzYmRmLT5zZWcsIDE2LCA0LCAtMSwgWkVST1BBRCk7Cj4gKyAgICBpZiAoIHN0 ciA8IGVuZCApCj4gKyAgICAgICAgKnN0ciA9ICc6JzsKPiArICAgIHN0ciA9IG51bWJlcihzdHIg KyAxLCBlbmQsIHNiZGYtPmJ1cywgMTYsIDIsIC0xLCBaRVJPUEFEKTsKPiArICAgIGlmICggc3Ry IDwgZW5kICkKPiArICAgICAgICAqc3RyID0gJzonOwo+ICsgICAgc3RyID0gbnVtYmVyKHN0ciAr IDEsIGVuZCwgc2JkZi0+ZGV2LCAxNiwgMiwgLTEsIFpFUk9QQUQpOwo+ICsgICAgaWYgKCBzdHIg PCBlbmQgKQo+ICsgICAgICAgICpzdHIgPSAnLic7Cj4gKyAgICByZXR1cm4gbnVtYmVyKHN0ciAr IDEsIGVuZCwgc2JkZi0+Zm4sIDgsIC0xLCAtMSwgMCk7Cj4gK30KPiArCj4gICBzdGF0aWMgY2hh ciAqcG9pbnRlcihjaGFyICpzdHIsIGNvbnN0IGNoYXIgKmVuZCwgY29uc3QgY2hhciAqKmZtdF9w dHIsCj4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICphcmcsIGludCBmaWVsZF93 aWR0aCwgaW50IHByZWNpc2lvbiwKPiAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFncykK PiBAQCAtNDc2LDYgKzQ5MCwxMCBAQCBzdGF0aWMgY2hhciAqcG9pbnRlcihjaGFyICpzdHIsIGNv bnN0IGNoYXIgKmVuZCwgY29uc3QgY2hhciAqKmZtdF9wdHIsCj4gICAgICAgICAgIH0KPiAgICAg ICB9Cj4gICAKPiArICAgIGNhc2UgJ3AnOiAvKiBQQ0kgU0JERi4gKi8KPiArICAgICAgICArKypm bXRfcHRyOwo+ICsgICAgICAgIHJldHVybiBwcmludF9wY2lfYWRkcihzdHIsIGVuZCwgYXJnKTsK PiArCj4gICAgICAgY2FzZSAncyc6IC8qIFN5bWJvbCBuYW1lIHdpdGggb2Zmc2V0IGFuZCBzaXpl IChpZmYgb2Zmc2V0ICE9IDApICovCj4gICAgICAgY2FzZSAnUyc6IC8qIFN5bWJvbCBuYW1lIHVu Y29uZGl0aW9uYWxseSB3aXRoIG9mZnNldCBhbmQgc2l6ZSAqLwo+ICAgICAgIHsKPiBkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2FjcGkuYyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9hY3BpLmMKPiBpbmRleCA2NjhhOTgwNWVmLi45NDdh MjRkNzE5IDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9h Y3BpLmMKPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfYWNwaS5jCj4g QEAgLTcyNCw5ICs3MjQsOCBAQCBzdGF0aWMgdTE2IF9faW5pdCBwYXJzZV9pdmhkX2RldmljZV9z cGVjaWFsKAo+ICAgICAgICAgICByZXR1cm4gMDsKPiAgICAgICB9Cj4gICAKPiAtICAgIEFNRF9J T01NVV9ERUJVRygiSVZIRCBTcGVjaWFsOiAlMDR4OiUwMng6JTAyeC4ldSB2YXJpZXR5ICUjeCBo YW5kbGUgJSN4XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgIHNlZywgUENJX0JVUyhiZGYpLCBQ Q0lfU0xPVChiZGYpLCBQQ0lfRlVOQyhiZGYpLAo+IC0gICAgICAgICAgICAgICAgICAgIHNwZWNp YWwtPnZhcmlldHksIHNwZWNpYWwtPmhhbmRsZSk7Cj4gKyAgICBBTURfSU9NTVVfREVCVUcoIklW SEQgU3BlY2lhbDogJXBwIHZhcmlldHkgJSN4IGhhbmRsZSAlI3hcbiIsCj4gKyAgICAgICAgICAg ICAgICAgICAgJlBDSV9TQkRGMihzZWcsIGJkZiksIHNwZWNpYWwtPnZhcmlldHksIHNwZWNpYWwt PmhhbmRsZSk7Cj4gICAgICAgYWRkX2l2cnNfbWFwcGluZ19lbnRyeShiZGYsIGJkZiwgc3BlY2lh bC0+aGVhZGVyLmRhdGFfc2V0dGluZywgaW9tbXUpOwo+ICAgCj4gICAgICAgc3dpdGNoICggc3Bl Y2lhbC0+dmFyaWV0eSApCj4gQEAgLTc0OSw5ICs3NDgsOSBAQCBzdGF0aWMgdTE2IF9faW5pdCBw YXJzZV9pdmhkX2RldmljZV9zcGVjaWFsKAo+ICAgICAgICAgICBpZiAoIGlkeCA8IG5yX2lvYXBp Y19zYmRmICkKPiAgICAgICAgICAgewo+ICAgICAgICAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJJ VkhEOiBDb21tYW5kIGxpbmUgb3ZlcnJpZGUgcHJlc2VudCBmb3IgSU8tQVBJQyAlI3giCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiKElWUlM6ICUjeCBkZXZJRCAlMDR4OiUwMng6JTAy eC4ldSlcbiIsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb2FwaWNfc2JkZltpZHhd LmlkLCBzcGVjaWFsLT5oYW5kbGUsIHNlZywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBDSV9CVVMoYmRmKSwgUENJX1NMT1QoYmRmKSwgUENJX0ZVTkMoYmRmKSk7Cj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiKElWUlM6ICUjeCBkZXZJRCAlcHApXG4iLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW9hcGljX3NiZGZbaWR4XS5pZCwgc3BlY2lhbC0+aGFuZGxl LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlBDSV9TQkRGMihzZWcsIGJkZikpOwo+ ICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgIH0KPiAgIAo+IEBAIC04MjEsOSArODIw LDkgQEAgc3RhdGljIHUxNiBfX2luaXQgcGFyc2VfaXZoZF9kZXZpY2Vfc3BlY2lhbCgKPiAgICAg ICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgICBjYXNlIEhQRVRfQ01ETDoKPiAgICAgICAgICAg ICAgIEFNRF9JT01NVV9ERUJVRygiSVZIRDogQ29tbWFuZCBsaW5lIG92ZXJyaWRlIHByZXNlbnQg Zm9yIEhQRVQgJSN4ICIKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoSVZSUzogJSN4 IGRldklEICUwNHg6JTAyeDolMDJ4LiV1KVxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGhwZXRfc2JkZi5pZCwgc3BlY2lhbC0+aGFuZGxlLCBzZWcsIFBDSV9CVVMoYmRmKSwKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGJkZiksIFBDSV9GVU5DKGJkZikp Owo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihJVlJTOiAlI3ggZGV2SUQgJXBwKVxu IiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhwZXRfc2JkZi5pZCwgc3BlY2lhbC0+ aGFuZGxlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlBDSV9TQkRGMihzZWcsIGJk ZikpOwo+ICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgIGNhc2UgSFBFVF9OT05FOgo+ ICAgICAgICAgICAgICAgLyogc2V0IGRldmljZSBpZCBvZiBocGV0ICovCj4gZGlmZiAtLWdpdCBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9jbWQuYyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FtZC9pb21tdV9jbWQuYwo+IGluZGV4IGFmM2ExZmI4NjUuLjNlZWIyMTRiYTMg MTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCj4g KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCj4gQEAgLTI5Niw5 ICsyOTYsOCBAQCB2b2lkIGFtZF9pb21tdV9mbHVzaF9pb3RsYih1OCBkZXZmbiwgY29uc3Qgc3Ry dWN0IHBjaV9kZXYgKnBkZXYsCj4gICAKPiAgICAgICBpZiAoICFpb21tdSApCj4gICAgICAgewo+ IC0gICAgICAgIEFNRF9JT01NVV9ERUJVRygiJXM6IENhbid0IGZpbmQgaW9tbXUgZm9yICUwNHg6 JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgcGRl di0+c2VnLCBwZGV2LT5idXMsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKHBk ZXYtPmRldmZuKSwgUENJX0ZVTkMocGRldi0+ZGV2Zm4pKTsKPiArICAgICAgICBBTURfSU9NTVVf REVCVUcoIiVzOiBDYW4ndCBmaW5kIGlvbW11IGZvciAlcHBcbiIsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIF9fZnVuY19fLCAmcGRldi0+c2JkZik7Cj4gICAgICAgICAgIHJldHVybjsKPiAg ICAgICB9Cj4gICAKPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lv bW11X2RldGVjdC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2RldGVjdC5j Cj4gaW5kZXggZDc4MmU2NmVlZS4uMjFhNTI3NWQ2ZCAxMDA2NDQKPiAtLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZGV0ZWN0LmMKPiArKysgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hbWQvaW9tbXVfZGV0ZWN0LmMKPiBAQCAtMTg1LDkgKzE4NSw4IEBAIGludCBfX2lu aXQgYW1kX2lvbW11X2RldGVjdF9vbmVfYWNwaSgKPiAgIAo+ICAgICAgIHJ0ID0gcGNpX3JvX2Rl dmljZShpb21tdS0+c2VnLCBidXMsIFBDSV9ERVZGTihkZXYsIGZ1bmMpKTsKPiAgICAgICBpZiAo IHJ0ICkKPiAtICAgICAgICBwcmludGsoWEVOTE9HX0VSUgo+IC0gICAgICAgICAgICAgICAiQ291 bGQgbm90IG1hcmsgY29uZmlnIHNwYWNlIG9mICUwNHg6JTAyeDolMDJ4LiV1IHJlYWQtb25seSAo JWQpXG4iLAo+IC0gICAgICAgICAgICAgICBpb21tdS0+c2VnLCBidXMsIGRldiwgZnVuYywgcnQp Owo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJDb3VsZCBub3QgbWFyayBjb25maWcgc3Bh Y2Ugb2YgJXBwIHJlYWQtb25seSAoJWQpXG4iLAo+ICsgICAgICAgICAgICAgICAmUENJX1NCREYy KGlvbW11LT5zZWcsIGlvbW11LT5iZGYpLCBydCk7Cj4gICAKPiAgICAgICBsaXN0X2FkZF90YWls KCZpb21tdS0+bGlzdCwgJmFtZF9pb21tdV9oZWFkKTsKPiAgICAgICBydCA9IDA7Cj4gZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jCj4gaW5kZXggYmI1YTNlNTdjOS4uNjM0 YzE2Nzk4MiAxMDA2NDQKPiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVf aW5pdC5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYwo+ IEBAIC03NzgsOSArNzc4LDggQEAgc3RhdGljIGJvb2xfdCBfX2luaXQgc2V0X2lvbW11X2ludGVy cnVwdF9oYW5kbGVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQo+ICAgICAgIHBjaWRldnNfdW5s b2NrKCk7Cj4gICAgICAgaWYgKCAhaW9tbXUtPm1zaS5kZXYgKQo+ICAgICAgIHsKPiAtICAgICAg ICBBTURfSU9NTVVfREVCVUcoIklPTU1VOiBubyBwZGV2IGZvciAlMDR4OiUwMng6JTAyeC4ldVxu IiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgaW9tbXUtPnNlZywgUENJX0JVUyhpb21tdS0+ YmRmKSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QoaW9tbXUtPmJkZiksIFBD SV9GVU5DKGlvbW11LT5iZGYpKTsKPiArICAgICAgICBBTURfSU9NTVVfREVCVUcoIklPTU1VOiBu byBwZGV2IGZvciAlcHBcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERjIo aW9tbXUtPnNlZywgaW9tbXUtPmJkZikpOwo+ICAgICAgICAgICByZXR1cm4gMDsKPiAgICAgICB9 Cj4gICAKPiBAQCAtODY2LDkgKzg2NSw2IEBAIF9faW5pdGNhbGwoaW92X2FkanVzdF9pcnFfYWZm aW5pdGllcyk7Cj4gICBzdGF0aWMgdm9pZCBhbWRfaW9tbXVfZXJyYXR1bV83NDZfd29ya2Fyb3Vu ZChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKPiAgIHsKPiAgICAgICB1MzIgdmFsdWU7Cj4gLSAg ICB1OCBidXMgPSBQQ0lfQlVTKGlvbW11LT5iZGYpOwo+IC0gICAgdTggZGV2ID0gUENJX1NMT1Qo aW9tbXUtPmJkZik7Cj4gLSAgICB1OCBmdW5jID0gUENJX0ZVTkMoaW9tbXUtPmJkZik7Cj4gICAK PiAgICAgICBpZiAoIChib290X2NwdV9kYXRhLng4NiAhPSAweDE1KSB8fAo+ICAgICAgICAgICAg KGJvb3RfY3B1X2RhdGEueDg2X21vZGVsIDwgMHgxMCkgfHwKPiBAQCAtODg2LDggKzg4Miw4IEBA IHN0YXRpYyB2b2lkIGFtZF9pb21tdV9lcnJhdHVtXzc0Nl93b3JrYXJvdW5kKHN0cnVjdCBhbWRf aW9tbXUgKmlvbW11KQo+ICAgCj4gICAgICAgcGNpX2NvbmZfd3JpdGUzMihQQ0lfU0JERjIoaW9t bXUtPnNlZywgaW9tbXUtPmJkZiksIDB4ZjQsIHZhbHVlIHwgKDEgPDwgMikpOwo+ICAgICAgIHBy aW50ayhYRU5MT0dfSU5GTwo+IC0gICAgICAgICAgICJBTUQtVmk6IEFwcGx5aW5nIGVycmF0dW0g NzQ2IHdvcmthcm91bmQgZm9yIElPTU1VIGF0ICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAg ICAgICAgIGlvbW11LT5zZWcsIGJ1cywgZGV2LCBmdW5jKTsKPiArICAgICAgICAgICAiQU1ELVZp OiBBcHBseWluZyBlcnJhdHVtIDc0NiB3b3JrYXJvdW5kIGZvciBJT01NVSBhdCAlcHBcbiIsCj4g KyAgICAgICAgICAgJlBDSV9TQkRGMihpb21tdS0+c2VnLCBpb21tdS0+YmRmKSk7Cj4gICAKPiAg ICAgICAvKiBDbGVhciB0aGUgZW5hYmxlIHdyaXRpbmcgYml0ICovCj4gICAgICAgcGNpX2NvbmZf d3JpdGUzMihQQ0lfU0JERjIoaW9tbXUtPnNlZywgaW9tbXUtPmJkZiksIDB4ZjAsIDB4OTApOwo+ IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW50ci5jIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2ludHIuYwo+IGluZGV4IDAxNjRjZWFj M2IuLjY4N2E3ZmE5MjIgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L2lvbW11X2ludHIuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9p bnRyLmMKPiBAQCAtNjg1LDggKzY4NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgYW1kX2lvbW11ICpfZmlu ZF9pb21tdV9mb3JfZGV2aWNlKGludCBzZWcsIGludCBiZGYpCj4gICAgICAgaWYgKCBpb21tdSAp Cj4gICAgICAgICAgIHJldHVybiBpb21tdTsKPiAgIAo+IC0gICAgQU1EX0lPTU1VX0RFQlVHKCJO byBJT01NVSBmb3IgTVNJIGRldiA9ICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAg ICAgICAgICAgIHNlZywgUENJX0JVUyhiZGYpLCBQQ0lfU0xPVChiZGYpLCBQQ0lfRlVOQyhiZGYp KTsKPiArICAgIEFNRF9JT01NVV9ERUJVRygiTm8gSU9NTVUgZm9yIE1TSSBkZXYgPSAlcHBcbiIs ICZQQ0lfU0JERjIoc2VnLCBiZGYpKTsKPiAgICAgICByZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsK PiAgIH0KPiAgIAo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNp X2FtZF9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUu Ywo+IGluZGV4IDhkNGE1ZmJjMzcuLmFlMjBlOWI2ZTUgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKPiBAQCAtNTIsOSArNTIsOCBAQCBzdHJ1Y3Qg YW1kX2lvbW11ICpmaW5kX2lvbW11X2Zvcl9kZXZpY2UoaW50IHNlZywgaW50IGJkZikKPiAgICAg ICAgICAgICAgICAgICB0bXAuZHRlX3JlcXVlc3Rvcl9pZCA9IGJkZjsKPiAgICAgICAgICAgICAg IGl2cnNfbWFwcGluZ3NbYmRmXSA9IHRtcDsKPiAgIAo+IC0gICAgICAgICAgICBwcmludGsoWEVO TE9HX1dBUk5JTkcgIiUwNHg6JTAyeDolMDJ4LiV1IG5vdCBmb3VuZCBpbiBBQ1BJIHRhYmxlczsi Cj4gLSAgICAgICAgICAgICAgICAgICAiIHVzaW5nIHNhbWUgSU9NTVUgYXMgZnVuY3Rpb24gMFxu IiwKPiAtICAgICAgICAgICAgICAgICAgIHNlZywgUENJX0JVUyhiZGYpLCBQQ0lfU0xPVChiZGYp LCBQQ0lfRlVOQyhiZGYpKTsKPiArICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICIl cHAgbm90IGZvdW5kIGluIEFDUEkgdGFibGVzOyIKPiArICAgICAgICAgICAgICAgICAgICIgdXNp bmcgc2FtZSBJT01NVSBhcyBmdW5jdGlvbiAwXG4iLCAmUENJX1NCREYyKHNlZywgYmRmKSk7Cj4g ICAKPiAgICAgICAgICAgICAgIC8qIHdyaXRlIGlvbW11IGZpZWxkIGxhc3QgKi8KPiAgICAgICAg ICAgICAgIGl2cnNfbWFwcGluZ3NbYmRmXS5pb21tdSA9IGl2cnNfbWFwcGluZ3NbYmQwXS5pb21t dTsKPiBAQCAtMzM3LDkgKzMzNiw4IEBAIHN0YXRpYyBpbnQgcmVhc3NpZ25fZGV2aWNlKHN0cnVj dCBkb21haW4gKnNvdXJjZSwgc3RydWN0IGRvbWFpbiAqdGFyZ2V0LAo+ICAgICAgICAgICByZXR1 cm4gcmM7Cj4gICAKPiAgICAgICBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSh0YXJnZXQs IGlvbW11LCBkZXZmbiwgcGRldik7Cj4gLSAgICBBTURfSU9NTVVfREVCVUcoIlJlLWFzc2lnbiAl MDR4OiUwMng6JTAyeC4ldSBmcm9tIGRvbSVkIHRvIGRvbSVkXG4iLAo+IC0gICAgICAgICAgICAg ICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRl dmZuKSwKPiAtICAgICAgICAgICAgICAgICAgICBzb3VyY2UtPmRvbWFpbl9pZCwgdGFyZ2V0LT5k b21haW5faWQpOwo+ICsgICAgQU1EX0lPTU1VX0RFQlVHKCJSZS1hc3NpZ24gJXBwIGZyb20gZG9t JWQgdG8gZG9tJWRcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIHNvdXJj ZS0+ZG9tYWluX2lkLCB0YXJnZXQtPmRvbWFpbl9pZCk7Cj4gICAKPiAgICAgICByZXR1cm4gMDsK PiAgIH0KPiBAQCAtNDQ2LDE1ICs0NDQsMTIgQEAgc3RhdGljIGludCBhbWRfaW9tbXVfYWRkX2Rl dmljZSh1OCBkZXZmbiwgc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gICAgICAgICAgIGlmICggcGRl di0+dHlwZSA9PSBERVZfVFlQRV9QQ0lfSE9TVF9CUklER0UgJiYKPiAgICAgICAgICAgICAgICBp c19oYXJkd2FyZV9kb21haW4ocGRldi0+ZG9tYWluKSApCj4gICAgICAgICAgIHsKPiAtICAgICAg ICAgICAgQU1EX0lPTU1VX0RFQlVHKCJTa2lwcGluZyBob3N0IGJyaWRnZSAlMDR4OiUwMng6JTAy eC4ldVxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+ YnVzLCBQQ0lfU0xPVChkZXZmbiksCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lf RlVOQyhkZXZmbikpOwo+ICsgICAgICAgICAgICBBTURfSU9NTVVfREVCVUcoIlNraXBwaW5nIGhv c3QgYnJpZGdlICVwcFxuIiwgJnBkZXYtPnNiZGYpOwo+ICAgICAgICAgICAgICAgcmV0dXJuIDA7 Cj4gICAgICAgICAgIH0KPiAgIAo+IC0gICAgICAgIEFNRF9JT01NVV9ERUJVRygiTm8gaW9tbXUg Zm9yICUwNHg6JTAyeDolMDJ4LiV1OyBjYW5ub3QgYmUgaGFuZGVkIHRvIGQlZFxuIiwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgcGRldi0+c2VnLCBwZGV2LT5idXMsIFBDSV9TTE9UKGRldmZu KSwgUENJX0ZVTkMoZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21h aW4tPmRvbWFpbl9pZCk7Cj4gKyAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJObyBpb21tdSBmb3Ig JXBwOyBjYW5ub3QgYmUgaGFuZGVkIHRvIGQlZFxuIiwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgJnBkZXYtPnNiZGYsIHBkZXYtPmRvbWFpbi0+ZG9tYWluX2lkKTsKPiAgICAgICAgICAgcmV0 dXJuIC1FTk9ERVY7Cj4gICAgICAgfQo+ICAgCj4gQEAgLTQ3MywxMCArNDY4LDggQEAgc3RhdGlj IGludCBhbWRfaW9tbXVfcmVtb3ZlX2RldmljZSh1OCBkZXZmbiwgc3RydWN0IHBjaV9kZXYgKnBk ZXYpCj4gICAgICAgaW9tbXUgPSBmaW5kX2lvbW11X2Zvcl9kZXZpY2UocGRldi0+c2VnLCBiZGYp Owo+ICAgICAgIGlmICggIWlvbW11ICkKPiAgICAgICB7Cj4gLSAgICAgICAgQU1EX0lPTU1VX0RF QlVHKCJGYWlsIHRvIGZpbmQgaW9tbXUuIgo+IC0gICAgICAgICAgICAgICAgICAgICAgICAiICUw NHg6JTAyeDolMDJ4LiV1IGNhbm5vdCBiZSByZW1vdmVkIGZyb20gZG9tJWRcbiIsCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChkZXZmbiks IFBDSV9GVU5DKGRldmZuKSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWlu LT5kb21haW5faWQpOwo+ICsgICAgICAgIEFNRF9JT01NVV9ERUJVRygiRmFpbCB0byBmaW5kIGlv bW11LiAlcHAgY2Fubm90IGJlIHJlbW92ZWQgZnJvbSAlcGRcbiIsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICZwZGV2LT5zYmRmLCBwZGV2LT5kb21haW4pOwo+ICAgICAgICAgICByZXR1cm4g LUVOT0RFVjsKPiAgICAgICB9Cj4gICAKPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvcGNpLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYwo+IGluZGV4IDdjMTk2 YmE1OGIuLmJiOTE2ZDQyOTQgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv cGNpLmMKPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYwo+IEBAIC0yMzgsMTEg KzIzOCw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3BkZXYoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBk ZXYpCj4gICAgICAgKFBDSV9TVEFUVVNfUEFSSVRZIHwgUENJX1NUQVRVU19TSUdfVEFSR0VUX0FC T1JUIHwgXAo+ICAgICAgICBQQ0lfU1RBVFVTX1JFQ19UQVJHRVRfQUJPUlQgfCBQQ0lfU1RBVFVT X1JFQ19NQVNURVJfQUJPUlQgfCBcCj4gICAgICAgIFBDSV9TVEFUVVNfU0lHX1NZU1RFTV9FUlJP UiB8IFBDSV9TVEFUVVNfREVURUNURURfUEFSSVRZKQo+IC0gICAgdTE2IHNlZyA9IHBkZXYtPnNl ZzsKPiAtICAgIHU4IGJ1cyA9IHBkZXYtPmJ1czsKPiAtICAgIHU4IGRldiA9IFBDSV9TTE9UKHBk ZXYtPmRldmZuKTsKPiAtICAgIHU4IGZ1bmMgPSBQQ0lfRlVOQyhwZGV2LT5kZXZmbik7Cj4gLSAg ICB1MTYgdmFsOwo+ICsgICAgIHUxNiB2YWw7Cj4gICAKPiAgICAgICBpZiAoIGNvbW1hbmRfbWFz ayApCj4gICAgICAgewo+IEBAIC0yNTIsOCArMjQ4LDggQEAgc3RhdGljIHZvaWQgY2hlY2tfcGRl dihjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgICAgICAgICAgdmFsID0gcGNpX2NvbmZf cmVhZDE2KHBkZXYtPnNiZGYsIFBDSV9TVEFUVVMpOwo+ICAgICAgICAgICBpZiAoIHZhbCAmIFBD SV9TVEFUVVNfQ0hFQ0sgKQo+ICAgICAgICAgICB7Cj4gLSAgICAgICAgICAgIHByaW50ayhYRU5M T0dfSU5GTyAiJTA0eDolMDJ4OiUwMnguJXUgc3RhdHVzICUwNHggLT4gJTA0eFxuIiwKPiAtICAg ICAgICAgICAgICAgICAgIHNlZywgYnVzLCBkZXYsIGZ1bmMsIHZhbCwgdmFsICYgflBDSV9TVEFU VVNfQ0hFQ0spOwo+ICsgICAgICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gIiVwcCBzdGF0dXMg JTA0eCAtPiAlMDR4XG4iLAo+ICsgICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIHZhbCwg dmFsICYgflBDSV9TVEFUVVNfQ0hFQ0spOwo+ICAgICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUx NihwZGV2LT5zYmRmLCBQQ0lfU1RBVFVTLCB2YWwgJiBQQ0lfU1RBVFVTX0NIRUNLKTsKPiAgICAg ICAgICAgfQo+ICAgICAgIH0KPiBAQCAtMjcwLDkgKzI2Niw4IEBAIHN0YXRpYyB2b2lkIGNoZWNr X3BkZXYoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gICAgICAgICAgIHZhbCA9IHBjaV9j b25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lfU0VDX1NUQVRVUyk7Cj4gICAgICAgICAgIGlmICgg dmFsICYgUENJX1NUQVRVU19DSEVDSyApCj4gICAgICAgICAgIHsKPiAtICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19JTkZPCj4gLSAgICAgICAgICAgICAgICAgICAiJTA0eDolMDJ4OiUwMnguJXUg c2Vjb25kYXJ5IHN0YXR1cyAlMDR4IC0+ICUwNHhcbiIsCj4gLSAgICAgICAgICAgICAgICAgICBz ZWcsIGJ1cywgZGV2LCBmdW5jLCB2YWwsIHZhbCAmIH5QQ0lfU1RBVFVTX0NIRUNLKTsKPiArICAg ICAgICAgICAgcHJpbnRrKFhFTkxPR19JTkZPICIlcHAgc2Vjb25kYXJ5IHN0YXR1cyAlMDR4IC0+ ICUwNHhcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAmcGRldi0+c2JkZiwgdmFsLCB2YWwgJiB+ UENJX1NUQVRVU19DSEVDSyk7Cj4gICAgICAgICAgICAgICBwY2lfY29uZl93cml0ZTE2KHBkZXYt PnNiZGYsIFBDSV9TRUNfU1RBVFVTLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 YWwgJiBQQ0lfU1RBVFVTX0NIRUNLKTsKPiAgICAgICAgICAgfQo+IEBAIC00MTEsOCArNDA2LDgg QEAgc3RhdGljIHN0cnVjdCBwY2lfZGV2ICphbGxvY19wZGV2KHN0cnVjdCBwY2lfc2VnICpwc2Vn LCB1OCBidXMsIHU4IGRldmZuKQo+ICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAKPiAgICAgICAg ICAgZGVmYXVsdDoKPiAtICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICIlMDR4OiUw Mng6JTAyeC4ldTogdW5rbm93biB0eXBlICVkXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgcHNl Zy0+bnIsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksIHBkZXYtPnR5cGUp Owo+ICsgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIiVwcDogdW5rbm93biB0eXBl ICVkXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIHBkZXYtPnR5cGUpOwo+ ICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgfQo+ICAgCj4gQEAgLTY0NCw5ICs2MzksOSBA QCB1bnNpZ25lZCBpbnQgcGNpX3NpemVfbWVtX2JhcihwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVk IGludCBwb3MsCj4gICAgICAgICAgIGlmICggZmxhZ3MgJiBQQ0lfQkFSX0xBU1QgKQo+ICAgICAg ICAgICB7Cj4gICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcKPiAtICAgICAgICAg ICAgICAgICAgICIlc2RldmljZSAlMDR4OiUwMng6JTAyeC4ldSB3aXRoIDY0LWJpdCAlc0JBUiBp biBsYXN0IHNsb3RcbiIsCj4gLSAgICAgICAgICAgICAgICAgICAoZmxhZ3MgJiBQQ0lfQkFSX1ZG KSA/ICJTUi1JT1YgIiA6ICIiLCBzYmRmLnNlZywgc2JkZi5idXMsCj4gLSAgICAgICAgICAgICAg ICAgICBzYmRmLmRldiwgc2JkZi5mbiwgKGZsYWdzICYgUENJX0JBUl9WRikgPyAidmYgIiA6ICIi KTsKPiArICAgICAgICAgICAgICAgICAgICIlc2RldmljZSAlcHAgd2l0aCA2NC1iaXQgJXNCQVIg aW4gbGFzdCBzbG90XG4iLAo+ICsgICAgICAgICAgICAgICAgICAgKGZsYWdzICYgUENJX0JBUl9W RikgPyAiU1ItSU9WICIgOiAiIiwgJnNiZGYsCj4gKyAgICAgICAgICAgICAgICAgICAoZmxhZ3Mg JiBQQ0lfQkFSX1ZGKSA/ICJ2ZiAiIDogIiIpOwo+ICAgICAgICAgICAgICAgKnBzaXplID0gMDsK PiAgICAgICAgICAgICAgIHJldHVybiAxOwo+ICAgICAgICAgICB9Cj4gQEAgLTc1MCw5ICs3NDUs OCBAQCBpbnQgcGNpX2FkZF9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbiwKPiAgICAg ICAgICAgICAgICAgICAgICAgIFBDSV9CQVNFX0FERFJFU1NfU1BBQ0VfSU8gKQo+ICAgICAgICAg ICAgICAgICAgIHsKPiAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJTUi1JT1YgZGV2aWNlICUwNHg6JTAyeDol MDJ4LiV1IHdpdGggdmYgQkFSJXUiCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICIgaW4g SU8gc3BhY2VcbiIsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZywgYnVzLCBzbG90 LCBmdW5jLCBpKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNSLUlPViBkZXZpY2Ug JXBwIHdpdGggdmYgQkFSJXUgaW4gSU8gc3BhY2VcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICZwZGV2LT5zYmRmLCBpKTsKPiAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 Cj4gICAgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICAgICAgIHJldCA9IHBjaV9zaXpl X21lbV9iYXIoc2JkZiwgaWR4LCBOVUxMLCAmcGRldi0+dmZfcmxlbltpXSwKPiBAQCAtNzY0LDEw ICs3NTgsOCBAQCBpbnQgcGNpX2FkZF9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbiwK PiAgICAgICAgICAgICAgIH0KPiAgICAgICAgICAgfQo+ICAgICAgICAgICBlbHNlCj4gLSAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORwo+IC0gICAgICAgICAgICAgICAgICAgIlNSLUlP ViBkZXZpY2UgJTA0eDolMDJ4OiUwMnguJXUgaGFzIGl0cyB2aXJ0dWFsIgo+IC0gICAgICAgICAg ICAgICAgICAgIiBmdW5jdGlvbnMgYWxyZWFkeSBlbmFibGVkICglMDR4KVxuIiwKPiAtICAgICAg ICAgICAgICAgICAgIHNlZywgYnVzLCBzbG90LCBmdW5jLCBjdHJsKTsKPiArICAgICAgICAgICAg cHJpbnRrKFhFTkxPR19XQVJOSU5HICJTUi1JT1YgZGV2aWNlICVwcCBoYXMgaXRzIHZpcnR1YWwi Cj4gKyAgICAgICAgICAgICAgICAgICAiIGZ1bmN0aW9ucyBhbHJlYWR5IGVuYWJsZWQgKCUwNHgp XG4iLCAmcGRldi0+c2JkZiwgY3RybCk7Cj4gICAgICAgfQo+ICAgCj4gICAgICAgY2hlY2tfcGRl dihwZGV2KTsKPiBAQCAtNzk0LDE1ICs3ODYsMTQgQEAgb3V0Ogo+ICAgICAgIHBjaWRldnNfdW5s b2NrKCk7Cj4gICAgICAgaWYgKCAhcmV0ICkKPiAgICAgICB7Cj4gLSAgICAgICAgcHJpbnRrKFhF TkxPR19ERUJVRyAiUENJIGFkZCAlcyAlMDR4OiUwMng6JTAyeC4ldVxuIiwgcGRldl90eXBlLAo+ IC0gICAgICAgICAgICAgICBzZWcsIGJ1cywgc2xvdCwgZnVuYyk7Cj4gKyAgICAgICAgcHJpbnRr KFhFTkxPR19ERUJVRyAiUENJIGFkZCAlcyAlcHBcbiIsIHBkZXZfdHlwZSwgICZwZGV2LT5zYmRm KTsKPiAgICAgICAgICAgd2hpbGUgKCBwZGV2LT5waGFudG9tX3N0cmlkZSApCj4gICAgICAgICAg IHsKPiAgICAgICAgICAgICAgIGZ1bmMgKz0gcGRldi0+cGhhbnRvbV9zdHJpZGU7Cj4gICAgICAg ICAgICAgICBpZiAoIFBDSV9TTE9UKGZ1bmMpICkKPiAgICAgICAgICAgICAgICAgICBicmVhazsK PiAtICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19ERUJVRyAiUENJIHBoYW50b20gJTA0eDolMDJ4 OiUwMnguJXVcbiIsCj4gLSAgICAgICAgICAgICAgICAgICBzZWcsIGJ1cywgc2xvdCwgZnVuYyk7 Cj4gKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfREVCVUcgIlBDSSBwaGFudG9tICVwcFxuIiwK PiArICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERihzZWcsIGJ1cywgc2xvdCwgZnVuYykpOwo+ ICAgICAgICAgICB9Cj4gICAgICAgfQo+ICAgICAgIHJldHVybiByZXQ7Cj4gQEAgLTgzMSw5ICs4 MjIsOCBAQCBpbnQgcGNpX3JlbW92ZV9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbikK PiAgICAgICAgICAgICAgIGlmICggcGRldi0+ZG9tYWluICkKPiAgICAgICAgICAgICAgICAgICBs aXN0X2RlbCgmcGRldi0+ZG9tYWluX2xpc3QpOwo+ICAgICAgICAgICAgICAgcGNpX2NsZWFudXBf bXNpKHBkZXYpOwo+ICsgICAgICAgICAgICBwcmludGsoWEVOTE9HX0RFQlVHICJQQ0kgcmVtb3Zl IGRldmljZSAlcHBcbiIsICZwZGV2LT5zYmRmKTsKPiAgICAgICAgICAgICAgIGZyZWVfcGRldihw c2VnLCBwZGV2KTsKPiAtICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19ERUJVRyAiUENJIHJlbW92 ZSBkZXZpY2UgJTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAgICAgICAgICAgICAgICBzZWcs IGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwo+ICAgICAgICAgICAgICAg YnJlYWs7Cj4gICAgICAgICAgIH0KPiAgIAo+IEBAIC05MDcsOSArODk3LDggQEAgaW50IHBjaV9y ZWxlYXNlX2RldmljZXMoc3RydWN0IGRvbWFpbiAqZCkKPiAgICAgICAgICAgYnVzID0gcGRldi0+ YnVzOwo+ICAgICAgICAgICBkZXZmbiA9IHBkZXYtPmRldmZuOwo+ICAgICAgICAgICBpZiAoIGRl YXNzaWduX2RldmljZShkLCBwZGV2LT5zZWcsIGJ1cywgZGV2Zm4pICkKPiAtICAgICAgICAgICAg cHJpbnRrKCJkb21haW4gJWQ6IGRlYXNzaWduIGRldmljZSAoJTA0eDolMDJ4OiUwMnguJXUpIGZh aWxlZCFcbiIsCj4gLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHBkZXYtPnNlZywg YnVzLAo+IC0gICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZm bikpOwo+ICsgICAgICAgICAgICBwcmludGsoImRvbWFpbiAlZDogZGVhc3NpZ24gZGV2aWNlICgl cHApIGZhaWxlZCFcbiIsCj4gKyAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsICZwZGV2 LT5zYmRmKTsKPiAgICAgICB9Cj4gICAgICAgcGNpZGV2c191bmxvY2soKTsKPiAgIAo+IEBAIC0x MDU2LDggKzEwNDUsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBfc2Nhbl9wY2lfZGV2aWNlcyhzdHJ1 Y3QgcGNpX3NlZyAqcHNlZywgdm9pZCAqYXJnKQo+ICAgICAgICAgICAgICAgICAgIHBkZXYgPSBh bGxvY19wZGV2KHBzZWcsIGJ1cywgUENJX0RFVkZOKGRldiwgZnVuYykpOwo+ICAgICAgICAgICAg ICAgICAgIGlmICggIXBkZXYgKQo+ICAgICAgICAgICAgICAgICAgIHsKPiAtICAgICAgICAgICAg ICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIiUwNHg6JTAyeDolMDJ4LiV1OiBhbGxvY19w ZGV2IGZhaWxlZFxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNlZy0+bnIsIGJ1 cywgZGV2LCBmdW5jKTsKPiArICAgICAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J TkcgIiVwcDogYWxsb2NfcGRldiBmYWlsZWRcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICZQQ0lfU0JERihwc2VnLT5uciwgYnVzLCBkZXYsIGZ1bmMpKTsKPiAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gICAgICAgICAgICAgICAgICAgfQo+ICAgCj4gQEAg LTEwOTgsOSArMTA4Nyw4IEBAIHN0YXRpYyB2b2lkIF9faHdkb21faW5pdCBzZXR1cF9vbmVfaHdk b21fZGV2aWNlKGNvbnN0IHN0cnVjdCBzZXR1cF9od2RvbSAqY3R4dCwKPiAgICAgICAgICAgZXJy ID0gY3R4dC0+aGFuZGxlcihkZXZmbiwgcGRldik7Cj4gICAgICAgICAgIGlmICggZXJyICkKPiAg ICAgICAgICAgewo+IC0gICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAic2V0dXAgJTA0eDol MDJ4OiUwMnguJXUgZm9yIGQlZCBmYWlsZWQgKCVkKVxuIiwKPiAtICAgICAgICAgICAgICAgICAg IHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwK PiAtICAgICAgICAgICAgICAgICAgIGN0eHQtPmQtPmRvbWFpbl9pZCwgZXJyKTsKPiArICAgICAg ICAgICAgcHJpbnRrKFhFTkxPR19FUlIgInNldHVwICVwcCBmb3IgZCVkIGZhaWxlZCAoJWQpXG4i LAo+ICsgICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIGN0eHQtPmQtPmRvbWFpbl9pZCwg ZXJyKTsKPiAgICAgICAgICAgICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gKQo+ICAgICAg ICAgICAgICAgICAgIHJldHVybjsKPiAgICAgICAgICAgfQo+IEBAIC0xMTQxLDkgKzExMjksOCBA QCBzdGF0aWMgaW50IF9faHdkb21faW5pdCBfc2V0dXBfaHdkb21fcGNpX2RldmljZXMoc3RydWN0 IHBjaV9zZWcgKnBzZWcsIHZvaWQgKmFyZwo+ICAgICAgICAgICAgICAgICAgIHBkZXYtPmRvbWFp biA9IGRvbV94ZW47Cj4gICAgICAgICAgICAgICB9Cj4gICAgICAgICAgICAgICBlbHNlIGlmICgg cGRldi0+ZG9tYWluICE9IGN0eHQtPmQgKQo+IC0gICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19XQVJOSU5HICJEb20lZCBvd25pbmcgJTA0eDolMDJ4OiUwMnguJXU/XG4iLAo+IC0gICAgICAg ICAgICAgICAgICAgICAgIHBkZXYtPmRvbWFpbi0+ZG9tYWluX2lkLCBwc2VnLT5uciwgYnVzLAo+ IC0gICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4p KTsKPiArICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyAiRG9tJWQgb3duaW5n ICVwcD9cbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5kb21haW5f aWQsICZwZGV2LT5zYmRmKTsKPiAgIAo+ICAgICAgICAgICAgICAgaWYgKCBpb21tdV92ZXJib3Nl ICkKPiAgICAgICAgICAgICAgIHsKPiBAQCAtMTI3OSwxMCArMTI2Niw4IEBAIHN0YXRpYyBpbnQg X2R1bXBfcGNpX2RldmljZXMoc3RydWN0IHBjaV9zZWcgKnBzZWcsIHZvaWQgKmFyZykKPiAgIAo+ ICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBwZGV2LCAmcHNlZy0+YWxsZGV2c19saXN0LCBh bGxkZXZzX2xpc3QgKQo+ICAgICAgIHsKPiAtICAgICAgICBwcmludGsoIiUwNHg6JTAyeDolMDJ4 LiV1IC0gZG9tICUtM2QgLSBub2RlICUtM2QgLSBNU0lzIDwgIiwKPiAtICAgICAgICAgICAgICAg cHNlZy0+bnIsIHBkZXYtPmJ1cywKPiAtICAgICAgICAgICAgICAgUENJX1NMT1QocGRldi0+ZGV2 Zm4pLCBQQ0lfRlVOQyhwZGV2LT5kZXZmbiksCj4gLSAgICAgICAgICAgICAgIHBkZXYtPmRvbWFp biA/IHBkZXYtPmRvbWFpbi0+ZG9tYWluX2lkIDogLTEsCj4gKyAgICAgICAgcHJpbnRrKCIlcHAg LSBkb20gJS0zZCAtIG5vZGUgJS0zZCAtIE1TSXMgPCAiLAo+ICsgICAgICAgICAgICAgICAmcGRl di0+c2JkZiwgcGRldi0+ZG9tYWluID8gcGRldi0+ZG9tYWluLT5kb21haW5faWQgOiAtMSwKPiAg ICAgICAgICAgICAgICAgIChwZGV2LT5ub2RlICE9IE5VTUFfTk9fTk9ERSkgPyBwZGV2LT5ub2Rl IDogLTEpOwo+ICAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggbXNpLCAmcGRldi0+bXNp X2xpc3QsIGxpc3QgKQo+ICAgICAgICAgICAgICAgICAgcHJpbnRrKCIlZCAiLCBtc2ktPmlycSk7 Cj4gQEAgLTEzNDcsOCArMTMzMiw4IEBAIHN0YXRpYyBpbnQgaW9tbXVfYWRkX2RldmljZShzdHJ1 Y3QgcGNpX2RldiAqcGRldikKPiAgICAgICAgICAgICAgIHJldHVybiAwOwo+ICAgICAgICAgICBy YyA9IGhkLT5wbGF0Zm9ybV9vcHMtPmFkZF9kZXZpY2UoZGV2Zm4sIHBjaV90b19kZXYocGRldikp Owo+ICAgICAgICAgICBpZiAoIHJjICkKPiAtICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJO SU5HICJJT01NVTogYWRkICUwNHg6JTAyeDolMDJ4LiV1IGZhaWxlZCAoJWQpXG4iLAo+IC0gICAg ICAgICAgICAgICAgICAgcGRldi0+c2VnLCBwZGV2LT5idXMsIFBDSV9TTE9UKGRldmZuKSwgUENJ X0ZVTkMoZGV2Zm4pLCByYyk7Cj4gKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyAi SU9NTVU6IGFkZCAlcHAgZmFpbGVkICglZClcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAmcGRl di0+c2JkZiwgcmMpOwo+ICAgICAgIH0KPiAgIH0KPiAgIAo+IEBAIC0xMzkyLDggKzEzNzcsNyBA QCBzdGF0aWMgaW50IGlvbW11X3JlbW92ZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4g ICAgICAgICAgIGlmICggIXJjICkKPiAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICAgCj4gLSAg ICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIklPTU1VOiByZW1vdmUgJTA0eDolMDJ4OiUwMnguJXUg ZmFpbGVkICglZClcbiIsCj4gLSAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQ Q0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwgcmMpOwo+ICsgICAgICAgIHByaW50ayhY RU5MT0dfRVJSICJJT01NVTogcmVtb3ZlICVwcCBmYWlsZWQgKCVkKVxuIiwgJnBkZXYtPnNiZGYs IHJjKTsKPiAgICAgICAgICAgcmV0dXJuIHJjOwo+ICAgICAgIH0KPiAgIAo+IEBAIC0xNDYzLDkg KzE0NDcsOCBAQCBzdGF0aWMgaW50IGFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgdTE2 IHNlZywgdTggYnVzLCB1OCBkZXZmbiwgdTMyIGZsYWcpCj4gICAgICAgICAgICAgICBicmVhazsK PiAgICAgICAgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5hc3NpZ25fZGV2aWNlKGQsIGRldmZu LCBwY2lfdG9fZGV2KHBkZXYpLCBmbGFnKTsKPiAgICAgICAgICAgaWYgKCByYyApCj4gLSAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5HICJkJWQ6IGFzc2lnbiAlMDR4OiUwMng6JTAy eC4ldSBmYWlsZWQgKCVkKVxuIiwKPiAtICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwg c2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAo+IC0gICAgICAgICAg ICAgICAgICAgcmMpOwo+ICsgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORyAiZCVk OiBhc3NpZ24gJXBwIGZhaWxlZCAoJWQpXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgZC0+ZG9t YWluX2lkLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbiksIHJjKTsKPiAgICAgICB9Cj4gICAK PiAgICBkb25lOgo+IEBAIC0xNTAxLDggKzE0ODQsOCBAQCBpbnQgZGVhc3NpZ25fZGV2aWNlKHN0 cnVjdCBkb21haW4gKmQsIHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCj4gICAgICAgICAgIGlm ICggIXJldCApCj4gICAgICAgICAgICAgICBjb250aW51ZTsKPiAgIAo+IC0gICAgICAgIHByaW50 ayhYRU5MT0dfR19FUlIgImQlZDogZGVhc3NpZ24gJTA0eDolMDJ4OiUwMnguJXUgZmFpbGVkICgl ZClcbiIsCj4gLSAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgc2VnLCBidXMsIFBDSV9TTE9U KGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLCByZXQpOwo+ICsgICAgICAgIHByaW50ayhYRU5MT0df R19FUlIgImQlZDogZGVhc3NpZ24gJXBwIGZhaWxlZCAoJWQpXG4iLAo+ICsgICAgICAgICAgICAg ICBkLT5kb21haW5faWQsICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSwgcmV0KTsKPiAgICAg ICAgICAgcmV0dXJuIHJldDsKPiAgICAgICB9Cj4gICAKPiBAQCAtMTUxMSw5ICsxNDk0LDggQEAg aW50IGRlYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCB1MTYgc2VnLCB1OCBidXMsIHU4 IGRldmZuKQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Y2lfdG9fZGV2KHBkZXYpKTsKPiAgICAgICBpZiAoIHJldCApCj4gICAgICAgewo+IC0gICAgICAg IGRwcmludGsoWEVOTE9HX0dfRVJSLAo+IC0gICAgICAgICAgICAgICAgImQlZDogZGVhc3NpZ24g ZGV2aWNlICglMDR4OiUwMng6JTAyeC4ldSkgZmFpbGVkXG4iLAo+IC0gICAgICAgICAgICAgICAg ZC0+ZG9tYWluX2lkLCBzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikp Owo+ICsgICAgICAgIGRwcmludGsoWEVOTE9HX0dfRVJSLCAiZCVkOiBkZWFzc2lnbiBkZXZpY2Ug KCVwcCkgZmFpbGVkXG4iLAo+ICsgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCAmcGRldi0+ c2JkZik7Cj4gICAgICAgICAgIHJldHVybiByZXQ7Cj4gICAgICAgfQo+ICAgCj4gQEAgLTE1OTAs MTAgKzE1NzIsOCBAQCB2b2lkIGlvbW11X2Rldl9pb3RsYl9mbHVzaF90aW1lb3V0KHN0cnVjdCBk b21haW4gKmQsIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ICAgICAgIF9wY2lfaGlkZV9kZXZpY2Uo cGRldik7Cj4gICAKPiAgICAgICBpZiAoICFkLT5pc19zaHV0dGluZ19kb3duICYmIHByaW50a19y YXRlbGltaXQoKSApCj4gLSAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKPiAtICAgICAgICAgICAg ICAgImRvbSVkOiBBVFMgZGV2aWNlICUwNHg6JTAyeDolMDJ4LiV1IGZsdXNoIGZhaWxlZFxuIiwK PiAtICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBwZGV2LT5zZWcsIHBkZXYtPmJ1cywgUENJ X1NMT1QocGRldi0+ZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICBQQ0lfRlVOQyhwZGV2LT5kZXZm bikpOwo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJkb20lZDogQVRTIGRldmljZSAlcHAg Zmx1c2ggZmFpbGVkXG4iLAo+ICsgICAgICAgICAgICAgICBkLT5kb21haW5faWQsICZwZGV2LT5z YmRmKTsKPiAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQo+ICAgICAgICAgICBk b21haW5fY3Jhc2goZCk7Cj4gICAKPiBAQCAtMTY4Miw5ICsxNjYyLDggQEAgaW50IGlvbW11X2Rv X3BjaV9kb21jdGwoCj4gICAgICAgICAgIHsKPiAgICAgICAgICAgICAgIGlmICggcmV0ICkKPiAg ICAgICAgICAgICAgIHsKPiAtICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZPCj4g LSAgICAgICAgICAgICAgICAgICAgICAgIiUwNHg6JTAyeDolMDJ4LiV1IGFscmVhZHkgYXNzaWdu ZWQsIG9yIG5vbi1leGlzdGVudFxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1 cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwo+ICsgICAgICAgICAgICAgICAg cHJpbnRrKFhFTkxPR19HX0lORk8gIiVwcCBhbHJlYWR5IGFzc2lnbmVkLCBvciBub24tZXhpc3Rl bnRcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2 Zm4pKTsKPiAgICAgICAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+ICAgICAgICAgICAgICAg fQo+ICAgICAgICAgICAgICAgYnJlYWs7Cj4gQEAgLTE2OTYsOSArMTY3NSw4IEBAIGludCBpb21t dV9kb19wY2lfZG9tY3RsKAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImgiLCB1X2RvbWN0bCk7Cj4gICAgICAgICAgIGVsc2UgaWYgKCByZXQgKQo+ ICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAiWEVOX0RPTUNUTF9hc3NpZ25fZGV2 aWNlOiAiCj4gLSAgICAgICAgICAgICAgICAgICAiYXNzaWduICUwNHg6JTAyeDolMDJ4LiV1IHRv IGRvbSVkIGZhaWxlZCAoJWQpXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIFBD SV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICAgICAgZC0+ ZG9tYWluX2lkLCByZXQpOwo+ICsgICAgICAgICAgICAgICAgICAgImFzc2lnbiAlcHAgdG8gZG9t JWQgZmFpbGVkICglZClcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAmUENJX1NCREYzKHNlZywg YnVzLCBkZXZmbiksIGQtPmRvbWFpbl9pZCwgcmV0KTsKPiAgIAo+ICAgICAgICAgICBicmVhazsK PiAgIAo+IEBAIC0xNzMyLDEwICsxNzEwLDggQEAgaW50IGlvbW11X2RvX3BjaV9kb21jdGwoCj4g ICAgICAgICAgIHJldCA9IGRlYXNzaWduX2RldmljZShkLCBzZWcsIGJ1cywgZGV2Zm4pOwo+ICAg ICAgICAgICBwY2lkZXZzX3VubG9jaygpOwo+ICAgICAgICAgICBpZiAoIHJldCApCj4gLSAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIKPiAtICAgICAgICAgICAgICAgICAgICJkZWFzc2ln biAlMDR4OiUwMng6JTAyeC4ldSBmcm9tIGRvbSVkIGZhaWxlZCAoJWQpXG4iLAo+IC0gICAgICAg ICAgICAgICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAo+ IC0gICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCByZXQpOwo+ICsgICAgICAgICAgICBw cmludGsoWEVOTE9HX0dfRVJSICJkZWFzc2lnbiAlcHAgZnJvbSBkb20lZCBmYWlsZWQgKCVkKVxu IiwKPiArICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSwgZC0+ ZG9tYWluX2lkLCByZXQpOwo+ICAgCj4gICAgICAgICAgIGJyZWFrOwo+ICAgCj4gZGlmZiAtLWdp dCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmMgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQvZG1hci5jCj4gaW5kZXggOWM5NGRlYWMwYi4uNGMwZDJmNjY3MiAxMDA2NDQK PiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5jCj4gKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2RtYXIuYwo+IEBAIC0zNjEsOSArMzYxLDggQEAgc3RhdGlj IGludCBfX2luaXQgYWNwaV9wYXJzZV9kZXZfc2NvcGUoCj4gICAgICAgICAgICAgICBzdWJfYnVz ID0gcGNpX2NvbmZfcmVhZDgoUENJX1NCREYoc2VnLCBidXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4p LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TVUJPUkRJTkFU RV9CVVMpOwo+ICAgICAgICAgICAgICAgaWYgKCBpb21tdV92ZXJib3NlICkKPiAtICAgICAgICAg ICAgICAgIHByaW50ayhWVERQUkVGSVgKPiAtICAgICAgICAgICAgICAgICAgICAgICAiIGJyaWRn ZTogJTA0eDolMDJ4OiUwMnguJXUgc3RhcnQ9JXggc2VjPSV4IHN1Yj0leFxuIiwKPiAtICAgICAg ICAgICAgICAgICAgICAgICBzZWcsIGJ1cywgcGF0aC0+ZGV2LCBwYXRoLT5mbiwKPiArICAgICAg ICAgICAgICAgIHByaW50ayhWVERQUkVGSVggIiBicmlkZ2U6ICVwcCBzdGFydD0leCBzZWM9JXgg c3ViPSV4XG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERihzZWcsIGJ1cywg cGF0aC0+ZGV2LCBwYXRoLT5mbiksCj4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjcGlfc2Nv cGUtPmJ1cywgc2VjX2J1cywgc3ViX2J1cyk7Cj4gICAKPiAgICAgICAgICAgICAgIGRtYXJfc2Nv cGVfYWRkX2J1c2VzKHNjb3BlLCBzZWNfYnVzLCBzdWJfYnVzKTsKPiBAQCAtMzcxLDggKzM3MCw4 IEBAIHN0YXRpYyBpbnQgX19pbml0IGFjcGlfcGFyc2VfZGV2X3Njb3BlKAo+ICAgCj4gICAgICAg ICAgIGNhc2UgQUNQSV9ETUFSX1NDT1BFX1RZUEVfSFBFVDoKPiAgICAgICAgICAgICAgIGlmICgg aW9tbXVfdmVyYm9zZSApCj4gLSAgICAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIgTVNJ IEhQRVQ6ICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgICAgIHNl ZywgYnVzLCBwYXRoLT5kZXYsIHBhdGgtPmZuKTsKPiArICAgICAgICAgICAgICAgIHByaW50ayhW VERQUkVGSVggIiBNU0kgSFBFVDogJXBwXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICZQ Q0lfU0JERihzZWcsIGJ1cywgcGF0aC0+ZGV2LCBwYXRoLT5mbikpOwo+ICAgCj4gICAgICAgICAg ICAgICBpZiAoIGRyaGQgKQo+ICAgICAgICAgICAgICAgewo+IEBAIC0zOTMsOCArMzkyLDggQEAg c3RhdGljIGludCBfX2luaXQgYWNwaV9wYXJzZV9kZXZfc2NvcGUoCj4gICAKPiAgICAgICAgICAg Y2FzZSBBQ1BJX0RNQVJfU0NPUEVfVFlQRV9FTkRQT0lOVDoKPiAgICAgICAgICAgICAgIGlmICgg aW9tbXVfdmVyYm9zZSApCj4gLSAgICAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIgZW5k cG9pbnQ6ICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgICAgIHNl ZywgYnVzLCBwYXRoLT5kZXYsIHBhdGgtPmZuKTsKPiArICAgICAgICAgICAgICAgIHByaW50ayhW VERQUkVGSVggIiBlbmRwb2ludDogJXBwXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICZQ Q0lfU0JERihzZWcsIGJ1cywgcGF0aC0+ZGV2LCBwYXRoLT5mbikpOwo+ICAgCj4gICAgICAgICAg ICAgICBpZiAoIGRyaGQgKQo+ICAgICAgICAgICAgICAgewo+IEBAIC00MDcsOCArNDA2LDggQEAg c3RhdGljIGludCBfX2luaXQgYWNwaV9wYXJzZV9kZXZfc2NvcGUoCj4gICAKPiAgICAgICAgICAg Y2FzZSBBQ1BJX0RNQVJfU0NPUEVfVFlQRV9JT0FQSUM6Cj4gICAgICAgICAgICAgICBpZiAoIGlv bW11X3ZlcmJvc2UgKQo+IC0gICAgICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiIElPQVBJ QzogJTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgc2VnLCBi dXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4pOwo+ICsgICAgICAgICAgICAgICAgcHJpbnRrKFZURFBS RUZJWCAiIElPQVBJQzogJXBwXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JE RihzZWcsIGJ1cywgcGF0aC0+ZGV2LCBwYXRoLT5mbikpOwo+ICAgCj4gICAgICAgICAgICAgICBp ZiAoIGRyaGQgKQo+ICAgICAgICAgICAgICAgewo+IEBAIC01MzcsOCArNTM2LDggQEAgYWNwaV9w YXJzZV9vbmVfZHJoZChzdHJ1Y3QgYWNwaV9kbWFyX2hlYWRlciAqaGVhZGVyKQo+ICAgCj4gICAg ICAgICAgICAgICBpZiAoICFwY2lfZGV2aWNlX2RldGVjdChkcmhkLT5zZWdtZW50LCBiLCBkLCBm KSApCj4gICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWAo+ IC0gICAgICAgICAgICAgICAgICAgICAgICIgTm9uLWV4aXN0ZW50IGRldmljZSAoJTA0eDolMDJ4 OiUwMnguJXUpIGluIHRoaXMgRFJIRCdzIHNjb3BlIVxuIiwKPiAtICAgICAgICAgICAgICAgICAg ICAgICBkcmhkLT5zZWdtZW50LCBiLCBkLCBmKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAi IE5vbi1leGlzdGVudCBkZXZpY2UgKCVwcCkgaW4gdGhpcyBEUkhEJ3Mgc2NvcGUhXG4iLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERihkcmhkLT5zZWdtZW50LCBiLCBkLCBmKSk7 Cj4gICAgICAgICAgIH0KPiAgIAo+ICAgICAgICAgICBhY3BpX3JlZ2lzdGVyX2RyaGRfdW5pdChk bWFydSk7Cj4gQEAgLTU3NCw5ICs1NzMsOSBAQCBzdGF0aWMgaW50IHJlZ2lzdGVyX29uZV9ybXJy KHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1ycnUpCj4gICAgICAgICAgIGlmICggcGNpX2Rldmlj ZV9kZXRlY3Qocm1ycnUtPnNlZ21lbnQsIGIsIGQsIGYpID09IDAgKQo+ICAgICAgICAgICB7Cj4g ICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWCwKPiAtICAgICAg ICAgICAgICAgICAgICAiIE5vbi1leGlzdGVudCBkZXZpY2UgKCUwNHg6JTAyeDolMDJ4LiV1KSBp cyByZXBvcnRlZCIKPiArICAgICAgICAgICAgICAgICAgICAiIE5vbi1leGlzdGVudCBkZXZpY2Ug KCVwcCkgaXMgcmVwb3J0ZWQiCj4gICAgICAgICAgICAgICAgICAgICAgICIgaW4gUk1SUiAoJSJQ Ukl4NjQiLCAlIlBSSXg2NCIpJ3Mgc2NvcGUhXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgIHJt cnJ1LT5zZWdtZW50LCBiLCBkLCBmLAo+ICsgICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERihy bXJydS0+c2VnbWVudCwgYiwgZCwgZiksCj4gICAgICAgICAgICAgICAgICAgICAgIHJtcnJ1LT5i YXNlX2FkZHJlc3MsIHJtcnJ1LT5lbmRfYWRkcmVzcyk7Cj4gICAgICAgICAgICAgICBpZ25vcmUg PSB0cnVlOwo+ICAgICAgICAgICB9Cj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pbnRyZW1hcC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2ludHJlbWFw LmMKPiBpbmRleCBkZjBlOGFjNWNiLi45Yjg2ZmE4YmI3IDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL2ludHJlbWFwLmMKPiBAQCAtNTI0LDE2ICs1MjQsMTMgQEAgc3RhdGljIHZvaWQg c2V0X21zaV9zb3VyY2VfaWQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBpcmVtYXBfZW50 cnkgKmlyZSkKPiAgICAgICAgICAgfQo+ICAgICAgICAgICBlbHNlCj4gICAgICAgICAgICAgICBk cHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWCwKPiAtICAgICAgICAgICAgICAgICAgICAi ZCVkOiBubyB1cHN0cmVhbSBicmlkZ2UgZm9yICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAg ICAgICAgICAgICAgICAgIHBkZXYtPmRvbWFpbi0+ZG9tYWluX2lkLAo+IC0gICAgICAgICAgICAg ICAgICAgIHNlZywgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7Cj4gKyAg ICAgICAgICAgICAgICAgICAgImQlZDogbm8gdXBzdHJlYW0gYnJpZGdlIGZvciAlcHBcbiIsCj4g KyAgICAgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5kb21haW5faWQsICZwZGV2LT5zYmRm KTsKPiAgICAgICAgICAgYnJlYWs7Cj4gICAKPiAgICAgICBkZWZhdWx0Ogo+IC0gICAgICAgIGRw cmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYLAo+IC0gICAgICAgICAgICAgICAgImQlZDog dW5rbm93bigldSk6ICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICAgcGRl di0+ZG9tYWluLT5kb21haW5faWQsIHBkZXYtPnR5cGUsCj4gLSAgICAgICAgICAgICAgICBzZWcs IGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwo+ICsgICAgICAgIGRwcmlu dGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYLCAiZCVkOiB1bmtub3duKCV1KTogJXBwXG4iLAo+ ICsgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5kb21haW5faWQsIHBkZXYtPnR5cGUsICZw ZGV2LT5zYmRmKTsKPiAgICAgICAgICAgYnJlYWs7Cj4gICAgICB9Cj4gICB9Cj4gZGlmZiAtLWdp dCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvdnRkL2lvbW11LmMKPiBpbmRleCA1ZDcyMjcwYzViLi5jZmFlZTE1MDNmIDEwMDY0 NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCj4gKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKPiBAQCAtODgyLDI3ICs4ODIsMjQgQEAg c3RhdGljIGludCBpb21tdV9wYWdlX2ZhdWx0X2RvX29uZShzdHJ1Y3QgaW9tbXUgKmlvbW11LCBp bnQgdHlwZSwKPiAgICAgICB7Cj4gICAgICAgY2FzZSBETUFfUkVNQVA6Cj4gICAgICAgICAgIHBy aW50ayhYRU5MT0dfR19XQVJOSU5HIFZURFBSRUZJWAo+IC0gICAgICAgICAgICAgICAiRE1BUjpb JXNdIFJlcXVlc3QgZGV2aWNlIFslMDR4OiUwMng6JTAyeC4ldV0gIgo+ICsgICAgICAgICAgICAg ICAiRE1BUjpbJXNdIFJlcXVlc3QgZGV2aWNlIFslcHBdICIKPiAgICAgICAgICAgICAgICAgICJm YXVsdCBhZGRyICUiUFJJeDY0IiwgaW9tbXUgcmVnID0gJXBcbiIsCj4gICAgICAgICAgICAgICAg ICAodHlwZSA/ICJETUEgUmVhZCIgOiAiRE1BIFdyaXRlIiksCj4gLSAgICAgICAgICAgICAgIHNl ZywgUENJX0JVUyhzb3VyY2VfaWQpLCBQQ0lfU0xPVChzb3VyY2VfaWQpLAo+IC0gICAgICAgICAg ICAgICBQQ0lfRlVOQyhzb3VyY2VfaWQpLCBhZGRyLCBpb21tdS0+cmVnKTsKPiArICAgICAgICAg ICAgICAgJlBDSV9TQkRGMihzZWcsIHNvdXJjZV9pZCksIGFkZHIsIGlvbW11LT5yZWcpOwo+ICAg ICAgICAgICBraW5kID0gIkRNQVIiOwo+ICAgICAgICAgICBicmVhazsKPiAgICAgICBjYXNlIElO VFJfUkVNQVA6Cj4gICAgICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5HIFZURFBSRUZJWAo+ IC0gICAgICAgICAgICAgICAiSU5UUi1SRU1BUDogUmVxdWVzdCBkZXZpY2UgWyUwNHg6JTAyeDol MDJ4LiV1XSAiCj4gKyAgICAgICAgICAgICAgICJJTlRSLVJFTUFQOiBSZXF1ZXN0IGRldmljZSBb JXBwXSAiCj4gICAgICAgICAgICAgICAgICAiZmF1bHQgaW5kZXggJSJQUkl4NjQiLCBpb21tdSBy ZWcgPSAlcFxuIiwKPiAtICAgICAgICAgICAgICAgc2VnLCBQQ0lfQlVTKHNvdXJjZV9pZCksIFBD SV9TTE9UKHNvdXJjZV9pZCksCj4gLSAgICAgICAgICAgICAgIFBDSV9GVU5DKHNvdXJjZV9pZCks IGFkZHIgPj4gNDgsIGlvbW11LT5yZWcpOwo+ICsgICAgICAgICAgICAgICAmUENJX1NCREYyKHNl Zywgc291cmNlX2lkKSwgYWRkciA+PiA0OCwgaW9tbXUtPnJlZyk7Cj4gICAgICAgICAgIGtpbmQg PSAiSU5UUi1SRU1BUCI7Cj4gICAgICAgICAgIGJyZWFrOwo+ICAgICAgIGRlZmF1bHQ6Cj4gICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5HIFZURFBSRUZJWAo+IC0gICAgICAgICAgICAg ICAiVU5LTk9XTjogUmVxdWVzdCBkZXZpY2UgWyUwNHg6JTAyeDolMDJ4LiV1XSAiCj4gKyAgICAg ICAgICAgICAgICJVTktOT1dOOiBSZXF1ZXN0IGRldmljZSBbJXBwXSAiCj4gICAgICAgICAgICAg ICAgICAiZmF1bHQgYWRkciAlIlBSSXg2NCIsIGlvbW11IHJlZyA9ICVwXG4iLAo+IC0gICAgICAg ICAgICAgICBzZWcsIFBDSV9CVVMoc291cmNlX2lkKSwgUENJX1NMT1Qoc291cmNlX2lkKSwKPiAt ICAgICAgICAgICAgICAgUENJX0ZVTkMoc291cmNlX2lkKSwgYWRkciwgaW9tbXUtPnJlZyk7Cj4g KyAgICAgICAgICAgICAgICZQQ0lfU0JERjIoc2VnLCBzb3VyY2VfaWQpLCBhZGRyLCBpb21tdS0+ cmVnKTsKPiAgICAgICAgICAga2luZCA9ICJVTktOT1dOIjsKPiAgICAgICAgICAgYnJlYWs7Cj4g ICAgICAgfQo+IEBAIC0xMzU0LDExICsxMzUxLDkgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBp bmdfb25lKAo+ICAgICAgICAgICB7Cj4gICAgICAgICAgICAgICBpZiAoIHBkZXYtPmRvbWFpbiAh PSBkb21haW4gKQo+ICAgICAgICAgICAgICAgewo+IC0gICAgICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19HX0lORk8gVlREUFJFRklYCj4gLSAgICAgICAgICAgICAgICAgICAgICAgImQlZDogJTA0 eDolMDJ4OiUwMnguJXUgb3duZWQgYnkgZCVkISIsCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ZG9tYWluLT5kb21haW5faWQsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIFBD SV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICAgICAgICAg IHBkZXYtPmRvbWFpbiA/IHBkZXYtPmRvbWFpbi0+ZG9tYWluX2lkIDogLTEpOwo+ICsgICAgICAg ICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0lORk8gVlREUFJFRklYICIlcGQ6ICVwcCBvd25lZCBi eSAlcGQhIiwKPiArICAgICAgICAgICAgICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2Vn LCBidXMsIGRldmZuKSwKPiArICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21haW4gPzog TlVMTCk7Cj4gICAgICAgICAgICAgICAgICAgcmVzID0gLUVJTlZBTDsKPiAgICAgICAgICAgICAg IH0KPiAgICAgICAgICAgfQo+IEBAIC0xMzcwLDE4ICsxMzY1LDE1IEBAIGludCBkb21haW5fY29u dGV4dF9tYXBwaW5nX29uZSgKPiAgICAgICAgICAgICAgIGlmICggY2RvbWFpbiA8IDAgKQo+ICAg ICAgICAgICAgICAgewo+ICAgICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5H IFZURFBSRUZJWAo+IC0gICAgICAgICAgICAgICAgICAgICAgICJkJWQ6ICUwNHg6JTAyeDolMDJ4 LiV1IG1hcHBlZCwgYnV0IGNhbid0IGZpbmQgb3duZXIhXG4iLAo+IC0gICAgICAgICAgICAgICAg ICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLAo+IC0gICAgICAgICAgICAgICAgICAgICAgIHNlZywg YnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7Cj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIiVwZDogJXBwIG1hcHBlZCwgYnV0IGNhbid0IGZpbmQgb3duZXIhXG4iLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4p KTsKPiAgICAgICAgICAgICAgICAgICByZXMgPSAtRUlOVkFMOwo+ICAgICAgICAgICAgICAgfQo+ ICAgICAgICAgICAgICAgZWxzZSBpZiAoIGNkb21haW4gIT0gZG9tYWluLT5kb21haW5faWQgKQo+ ICAgICAgICAgICAgICAgewo+ICAgICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZP IFZURFBSRUZJWAo+IC0gICAgICAgICAgICAgICAgICAgICAgICJkJWQ6ICUwNHg6JTAyeDolMDJ4 LiV1IGFscmVhZHkgbWFwcGVkIHRvIGQlZCEiLAo+IC0gICAgICAgICAgICAgICAgICAgICAgIGRv bWFpbi0+ZG9tYWluX2lkLAo+IC0gICAgICAgICAgICAgICAgICAgICAgIHNlZywgYnVzLCBQQ0lf U0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwKPiAtICAgICAgICAgICAgICAgICAgICAgICBj ZG9tYWluKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAiJXBkOiAlcHAgYWxyZWFkeSBtYXBw ZWQgdG8gZCVkISIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLCAmUENJX1NCREYz KHNlZywgYnVzLCBkZXZmbiksIGNkb21haW4pOwo+ICAgICAgICAgICAgICAgICAgIHJlcyA9IC1F SU5WQUw7Cj4gICAgICAgICAgICAgICB9Cj4gICAgICAgICAgIH0KPiBAQCAtMTQ5Niw5ICsxNDg4 LDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmRv bWFpbiwgdTggZGV2Zm4sCj4gICAgICAgewo+ICAgICAgIGNhc2UgREVWX1RZUEVfUENJX0hPU1Rf QlJJREdFOgo+ICAgICAgICAgICBpZiAoIGlvbW11X2RlYnVnICkKPiAtICAgICAgICAgICAgcHJp bnRrKFZURFBSRUZJWCAiZCVkOkhvc3RicmlkZ2U6IHNraXAgJTA0eDolMDJ4OiUwMnguJXUgbWFw XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIHNlZywgYnVzLAo+ IC0gICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwo+ ICsgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIlcGQ6SG9zdGJyaWRnZTogc2tpcCAlcHAg bWFwXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywgYnVz LCBkZXZmbikpOwo+ICAgICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZG9tYWluKSAp Cj4gICAgICAgICAgICAgICByZXR1cm4gLUVQRVJNOwo+ICAgICAgICAgICBicmVhazsKPiBAQCAt MTUxMCw5ICsxNTAxLDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVj dCBkb21haW4gKmRvbWFpbiwgdTggZGV2Zm4sCj4gICAKPiAgICAgICBjYXNlIERFVl9UWVBFX1BD SWVfRU5EUE9JTlQ6Cj4gICAgICAgICAgIGlmICggaW9tbXVfZGVidWcgKQo+IC0gICAgICAgICAg ICBwcmludGsoVlREUFJFRklYICJkJWQ6UENJZTogbWFwICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+ IC0gICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIHNlZywgYnVzLAo+IC0gICAg ICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwo+ICsgICAg ICAgICAgICBwcmludGsoVlREUFJFRklYICIlcGQ6UENJZTogbWFwICVwcFxuIiwKPiArICAgICAg ICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsKPiAgICAg ICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21t dSwgYnVzLCBkZXZmbiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGRldik7Cj4gICAgICAgICAgIGlmICggIXJldCAmJiBkZXZmbiA9PSBwZGV2LT5kZXZmbiAm JiBhdHNfZGV2aWNlKHBkZXYsIGRyaGQpID4gMCApCj4gQEAgLTE1MjIsOSArMTUxMiw4IEBAIHN0 YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU4 IGRldmZuLAo+ICAgCj4gICAgICAgY2FzZSBERVZfVFlQRV9QQ0k6Cj4gICAgICAgICAgIGlmICgg aW9tbXVfZGVidWcgKQo+IC0gICAgICAgICAgICBwcmludGsoVlREUFJFRklYICJkJWQ6UENJOiBt YXAgJTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAgICAgICAgICAgICAgICBkb21haW4tPmRv bWFpbl9pZCwgc2VnLCBidXMsCj4gLSAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChkZXZmbiks IFBDSV9GVU5DKGRldmZuKSk7Cj4gKyAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggIiVwZDpQ Q0k6IG1hcCAlcHBcbiIsCj4gKyAgICAgICAgICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMo c2VnLCBidXMsIGRldmZuKSk7Cj4gICAKPiAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRf bWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRldik7Cj4gQEAgLTE1NTAsOSArMTUz OSw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpk b21haW4sIHU4IGRldmZuLAo+ICAgICAgICAgICBicmVhazsKPiAgIAo+ICAgICAgIGRlZmF1bHQ6 Cj4gLSAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJWCwgImQlZDp1bmtub3duKCV1 KTogJTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFp bl9pZCwgcGRldi0+dHlwZSwKPiAtICAgICAgICAgICAgICAgIHNlZywgYnVzLCBQQ0lfU0xPVChk ZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7Cj4gKyAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSIFZU RFBSRUZJWCwgIiVwZDp1bmtub3duKCV1KTogJXBwXG4iLAo+ICsgICAgICAgICAgICAgICAgZG9t YWluLCBwZGV2LT50eXBlLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbikpOwo+ICAgICAgICAg ICByZXQgPSAtRUlOVkFMOwo+ICAgICAgICAgICBicmVhazsKPiAgICAgICB9Cj4gQEAgLTE2NDcs OSArMTYzNSw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGRvbWFp biAqZG9tYWluLCB1OCBkZXZmbiwKPiAgICAgICB7Cj4gICAgICAgY2FzZSBERVZfVFlQRV9QQ0lf SE9TVF9CUklER0U6Cj4gICAgICAgICAgIGlmICggaW9tbXVfZGVidWcgKQo+IC0gICAgICAgICAg ICBwcmludGsoVlREUFJFRklYICJkJWQ6SG9zdGJyaWRnZTogc2tpcCAlMDR4OiUwMng6JTAyeC4l dSB1bm1hcFxuIiwKPiAtICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBzZWcs IGJ1cywKPiAtICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2 Zm4pKTsKPiArICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiJXBkOkhvc3RicmlkZ2U6IHNr aXAgJXBwIHVubWFwXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgZG9tYWluLCAmUENJX1NCREYz KHNlZywgYnVzLCBkZXZmbikpOwo+ICAgICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4o ZG9tYWluKSApCj4gICAgICAgICAgICAgICByZXR1cm4gLUVQRVJNOwo+ICAgICAgICAgICBnb3Rv IG91dDsKPiBAQCAtMTY2MSw5ICsxNjQ4LDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91 bm1hcChzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU4IGRldmZuLAo+ICAgCj4gICAgICAgY2FzZSBE RVZfVFlQRV9QQ0llX0VORFBPSU5UOgo+ICAgICAgICAgICBpZiAoIGlvbW11X2RlYnVnICkKPiAt ICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVkOlBDSWU6IHVubWFwICUwNHg6JTAyeDol MDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIHNlZywg YnVzLAo+IC0gICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZm bikpOwo+ICsgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIlcGQ6UENJZTogdW5tYXAgJXBw XG4iLAo+ICsgICAgICAgICAgICAgICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBk ZXZmbikpOwo+ICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWlu LCBpb21tdSwgYnVzLCBkZXZmbik7Cj4gICAgICAgICAgIGlmICggIXJldCAmJiBkZXZmbiA9PSBw ZGV2LT5kZXZmbiAmJiBhdHNfZGV2aWNlKHBkZXYsIGRyaGQpID4gMCApCj4gICAgICAgICAgICAg ICBkaXNhYmxlX2F0c19kZXZpY2UocGRldik7Cj4gQEAgLTE2NzIsOCArMTY1OCw4IEBAIHN0YXRp YyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1OCBkZXZm biwKPiAgIAo+ICAgICAgIGNhc2UgREVWX1RZUEVfUENJOgo+ICAgICAgICAgICBpZiAoIGlvbW11 X2RlYnVnICkKPiAtICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVkOlBDSTogdW5tYXAg JTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFp bl9pZCwgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKPiArICAg ICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiJXBkOlBDSTogdW5tYXAgJXBwXG4iLAo+ICsgICAg ICAgICAgICAgICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbikpOwo+ICAg ICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgYnVz LCBkZXZmbik7Cj4gICAgICAgICAgIGlmICggcmV0ICkKPiAgICAgICAgICAgICAgIGJyZWFrOwo+ IEBAIC0xNjk4LDkgKzE2ODQsOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwKHN0 cnVjdCBkb21haW4gKmRvbWFpbiwgdTggZGV2Zm4sCj4gICAgICAgICAgIGJyZWFrOwo+ICAgCj4g ICAgICAgZGVmYXVsdDoKPiAtICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLCAi ZCVkOnVua25vd24oJXUpOiAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAgICAgICAg IGRvbWFpbi0+ZG9tYWluX2lkLCBwZGV2LT50eXBlLAo+IC0gICAgICAgICAgICAgICAgc2VnLCBi dXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKPiArICAgICAgICBkcHJpbnRr KFhFTkxPR19FUlIgVlREUFJFRklYLCAiJXBkOnVua25vd24oJXUpOiAlcHBcbiIsCj4gKyAgICAg ICAgICAgICAgICBkb21haW4sIHBkZXYtPnR5cGUsICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZu KSk7Cj4gICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4gICAgICAgICAgIGdvdG8gb3V0Owo+ICAg ICAgIH0KPiBAQCAtMjQ5OCwxMiArMjQ4MywxMSBAQCBzdGF0aWMgaW50IGludGVsX2lvbW11X2Fz c2lnbl9kZXZpY2UoCj4gICAgICAgICAgICAgICBib29sX3QgcmVsYXhlZCA9ICEhKGZsYWcgJiBY RU5fRE9NQ1RMX0RFVl9SRE1fUkVMQVhFRCk7Cj4gICAKPiAgICAgICAgICAgICAgIHByaW50ayhY RU5MT0dfR1VFU1QgIiVzIiBWVERQUkVGSVgKPiAtICAgICAgICAgICAgICAgICAgICIgSXQncyAl cyB0byBhc3NpZ24gJTA0eDolMDJ4OiUwMnguJXUiCj4gLSAgICAgICAgICAgICAgICAgICAiIHdp dGggc2hhcmVkIFJNUlIgYXQgJSJQUkl4NjQiIGZvciBEb20lZC5cbiIsCj4gKyAgICAgICAgICAg ICAgICAgICAiIEl0J3MgJXMgdG8gYXNzaWduICVwcCIKPiArICAgICAgICAgICAgICAgICAgICIg d2l0aCBzaGFyZWQgUk1SUiBhdCAlIlBSSXg2NCIgZm9yICVwZC5cbiIsCj4gICAgICAgICAgICAg ICAgICAgICAgcmVsYXhlZCA/IFhFTkxPR19XQVJOSU5HIDogWEVOTE9HX0VSUiwKPiAgICAgICAg ICAgICAgICAgICAgICByZWxheGVkID8gInJpc2t5IiA6ICJkaXNhbGxvd2VkIiwKPiAtICAgICAg ICAgICAgICAgICAgIHNlZywgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwK PiAtICAgICAgICAgICAgICAgICAgIHJtcnItPmJhc2VfYWRkcmVzcywgZC0+ZG9tYWluX2lkKTsK PiArICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSwgcm1yci0+ YmFzZV9hZGRyZXNzLCBkKTsKPiAgICAgICAgICAgICAgIGlmICggIXJlbGF4ZWQgKQo+ICAgICAg ICAgICAgICAgICAgIHJldHVybiAtRVBFUk07Cj4gICAgICAgICAgIH0KPiBkaWZmIC0tZ2l0IGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3F1aXJrcy5jIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL3F1aXJrcy5jCj4gaW5kZXggMTlmZmFlNjljOS4uY2Q4ODQyZWQ0MyAxMDA2NDQK PiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMKPiArKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMKPiBAQCAtNDE1LDggKzQxNSw2IEBAIHZv aWQgcGNpX3Z0ZF9xdWlyayhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgIHsKPiAgICAg ICBpbnQgc2VnID0gcGRldi0+c2VnOwo+ICAgICAgIGludCBidXMgPSBwZGV2LT5idXM7Cj4gLSAg ICBpbnQgZGV2ID0gUENJX1NMT1QocGRldi0+ZGV2Zm4pOwo+IC0gICAgaW50IGZ1bmMgPSBQQ0lf RlVOQyhwZGV2LT5kZXZmbik7Cj4gICAgICAgaW50IHBvczsKPiAgICAgICBib29sX3QgZmY7Cj4g ICAgICAgdTMyIHZhbCwgdmFsMjsKPiBAQCAtNDQwLDggKzQzOCw3IEBAIHZvaWQgcGNpX3Z0ZF9x dWlyayhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgICAgICBjYXNlIDB4M2MyODogLyog U2FuZHlicmlkZ2UgKi8KPiAgICAgICAgICAgdmFsID0gcGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNi ZGYsIDB4MUFDKTsKPiAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUzMihwZGV2LT5zYmRmLCAweDFB QywgdmFsIHwgKDEgPDwgMzEpKTsKPiAtICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gIk1hc2tl ZCBWVC1kIGVycm9yIHNpZ25hbGluZyBvbiAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAg ICAgICAgICAgc2VnLCBidXMsIGRldiwgZnVuYyk7Cj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19J TkZPICJNYXNrZWQgVlQtZCBlcnJvciBzaWduYWxpbmcgb24gJXBwXG4iLCAmcGRldi0+c2JkZik7 Cj4gICAgICAgICAgIGJyZWFrOwo+ICAgCj4gICAgICAgLyogVHlsZXJzYnVyZyAoRVApL0JveGJv cm8gKE1QKSBjaGlwc2V0cyAoTkhNLUVQL0VYLCBXU00tRVAvRVgpICovCj4gQEAgLTQ3Niw4ICs0 NzMsNyBAQCB2b2lkIHBjaV92dGRfcXVpcmsoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4g ICAgICAgICAgICAgICBmZiA9IHBjaWVfYWVyX2dldF9maXJtd2FyZV9maXJzdChwZGV2KTsKPiAg ICAgICAgICAgaWYgKCAhcG9zICkKPiAgICAgICAgICAgewo+IC0gICAgICAgICAgICBwcmludGso WEVOTE9HX1dBUk5JTkcgIiUwNHg6JTAyeDolMDJ4LiV1IHdpdGhvdXQgQUVSIGNhcGFiaWxpdHk/ XG4iLAo+IC0gICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIGRldiwgZnVuYyk7Cj4gKyAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyAiJXBwIHdpdGhvdXQgQUVSIGNhcGFiaWxpdHk/ XG4iLCAmcGRldi0+c2JkZik7Cj4gICAgICAgICAgICAgICBicmVhazsKPiAgICAgICAgICAgfQo+ ICAgCj4gQEAgLTUwMCw4ICs0OTYsNyBAQCB2b2lkIHBjaV92dGRfcXVpcmsoY29uc3Qgc3RydWN0 IHBjaV9kZXYgKnBkZXYpCj4gICAgICAgICAgIHZhbCA9IHBjaV9jb25mX3JlYWQzMihwZGV2LT5z YmRmLCAweDIwYyk7Cj4gICAgICAgICAgIHBjaV9jb25mX3dyaXRlMzIocGRldi0+c2JkZiwgMHgy MGMsIHZhbCB8ICgxIDw8IDQpKTsKPiAgIAo+IC0gICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAi JXMgVVIgc2lnbmFsaW5nIG9uICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+IC0gICAgICAgICAgICAg ICBhY3Rpb24sIHNlZywgYnVzLCBkZXYsIGZ1bmMpOwo+ICsgICAgICAgIHByaW50ayhYRU5MT0df SU5GTyAiJXMgVVIgc2lnbmFsaW5nIG9uICVwcFxuIiwgYWN0aW9uLCAmcGRldi0+c2JkZik7Cj4g ICAgICAgICAgIGJyZWFrOwo+ICAgCj4gICAgICAgY2FzZSAweDAwNDA6IGNhc2UgMHgwMDQ0OiBj YXNlIDB4MDA0ODogLyogTmVoYWxlbS9XZXN0bWVyZSAqLwo+IEBAIC01MjYsMTYgKzUyMSwxNSBA QCB2b2lkIHBjaV92dGRfcXVpcmsoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gICAgICAg ICAgICAgICB7Cj4gICAgICAgICAgICAgICAgICAgX19zZXRfYml0KDB4MWM4ICogOCArIDIwLCB2 YSk7Cj4gICAgICAgICAgICAgICAgICAgaW91bm1hcCh2YSk7Cj4gLSAgICAgICAgICAgICAgICBw cmludGsoWEVOTE9HX0lORk8gIk1hc2tlZCBVUiBzaWduYWxpbmcgb24gJTA0eDolMDJ4OiUwMngu JXVcbiIsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIGRldiwgZnVuYyk7Cj4g KyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gIk1hc2tlZCBVUiBzaWduYWxpbmcg b24gJXBwXG4iLCAmcGRldi0+c2JkZik7Cj4gICAgICAgICAgICAgICB9Cj4gICAgICAgICAgICAg ICBlbHNlCj4gLSAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAiQ291bGQgbm90IG1h cCAlIlBSSXBhZGRyIiBmb3IgJTA0eDolMDJ4OiUwMnguJXVcbiIsCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgcGEsIHNlZywgYnVzLCBkZXYsIGZ1bmMpOwo+ICsgICAgICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19FUlIgIkNvdWxkIG5vdCBtYXAgJSJQUklwYWRkciIgZm9yICVwcFxuIiwKPiAr ICAgICAgICAgICAgICAgICAgICAgICBwYSwgJnBkZXYtPnNiZGYpOwo+ICAgICAgICAgICB9Cj4g ICAgICAgICAgIGVsc2UKPiAtICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJCb2d1 cyBETUlCQVIgJSMiUFJJeDY0IiBvbiAlMDR4OiUwMng6JTAyeC4ldVxuIiwKPiAtICAgICAgICAg ICAgICAgICAgIGJhciwgc2VnLCBidXMsIGRldiwgZnVuYyk7Cj4gKyAgICAgICAgICAgIHByaW50 ayhYRU5MT0dfV0FSTklORyAiQm9ndXMgRE1JQkFSICUjIlBSSXg2NCIgb24gJXBwXG4iLAo+ICsg ICAgICAgICAgICAgICAgICAgYmFyLCAmcGRldi0+c2JkZik7Cj4gICAgICAgICAgIGJyZWFrOwo+ ICAgICAgIH0KPiAgIH0KPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L3V0aWxzLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdXRpbHMuYwo+IGluZGV4IDk0 YTZlNGVlYzkuLjY4MzA0YTYxZTggMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvdnRkL3V0aWxzLmMKPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdXRpbHMu Ywo+IEBAIC05NSw5ICs5NSw5IEBAIHZvaWQgcHJpbnRfdnRkX2VudHJpZXMoc3RydWN0IGlvbW11 ICppb21tdSwgaW50IGJ1cywgaW50IGRldmZuLCB1NjQgZ21mbikKPiAgICAgICB1NjQgKmwsIHZh bDsKPiAgICAgICB1MzIgbF9pbmRleCwgbGV2ZWw7Cj4gICAKPiAtICAgIHByaW50aygicHJpbnRf dnRkX2VudHJpZXM6IGlvbW11ICMldSBkZXYgJTA0eDolMDJ4OiUwMnguJXUgZ21mbiAlIlBSSV9n Zm4iXG4iLAo+IC0gICAgICAgICAgIGlvbW11LT5pbmRleCwgaW9tbXUtPmludGVsLT5kcmhkLT5z ZWdtZW50LCBidXMsCj4gLSAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZm biksIGdtZm4pOwo+ICsgICAgcHJpbnRrKCJwcmludF92dGRfZW50cmllczogaW9tbXUgIyV1IGRl diAlcHAgZ21mbiAlIlBSSV9nZm4iXG4iLAo+ICsgICAgICAgICAgIGlvbW11LT5pbmRleCwgJlBD SV9TQkRGMyhpb21tdS0+aW50ZWwtPmRyaGQtPnNlZ21lbnQsIGJ1cywgZGV2Zm4pLAo+ICsgICAg ICAgICAgIGdtZm4pOwo+ICAgCj4gICAgICAgaWYgKCBpb21tdS0+cm9vdF9tYWRkciA9PSAwICkK PiAgICAgICB7Cj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9hdHMu YyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9hdHMuYwo+IGluZGV4IDNlZWE3Zjg5ZmMu LmRjMDU4NGI0MjMgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2F0 cy5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2F0cy5jCj4gQEAgLTMxLDgg KzMxLDcgQEAgaW50IGVuYWJsZV9hdHNfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1 Y3QgbGlzdF9oZWFkICphdHNfbGlzdCkKPiAgICAgICBCVUdfT04oIXBvcyk7Cj4gICAKPiAgICAg ICBpZiAoIGlvbW11X3ZlcmJvc2UgKQo+IC0gICAgICAgIGRwcmludGsoWEVOTE9HX0lORk8sICIl MDR4OiUwMng6JTAyeC4ldTogQVRTIGNhcGFiaWxpdHkgZm91bmRcbiIsCj4gLSAgICAgICAgICAg ICAgICBzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwo+ICsgICAg ICAgIGRwcmludGsoWEVOTE9HX0lORk8sICIlcHA6IEFUUyBjYXBhYmlsaXR5IGZvdW5kXG4iLCAm cGRldi0+c2JkZik7Cj4gICAKPiAgICAgICB2YWx1ZSA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5z YmRmLCBwb3MgKyBBVFNfUkVHX0NUTCk7Cj4gICAgICAgaWYgKCB2YWx1ZSAmIEFUU19FTkFCTEUg KQo+IEBAIC02Myw5ICs2Miw4IEBAIGludCBlbmFibGVfYXRzX2RldmljZShzdHJ1Y3QgcGNpX2Rl diAqcGRldiwgc3RydWN0IGxpc3RfaGVhZCAqYXRzX2xpc3QpCj4gICAgICAgfQo+ICAgCj4gICAg ICAgaWYgKCBpb21tdV92ZXJib3NlICkKPiAtICAgICAgICBkcHJpbnRrKFhFTkxPR19JTkZPLCAi JTA0eDolMDJ4OiUwMnguJXU6IEFUUyAlcyBlbmFibGVkXG4iLAo+IC0gICAgICAgICAgICAgICAg c2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAo+IC0gICAgICAgICAg ICAgICAgcG9zID8gImlzIiA6ICJ3YXMiKTsKPiArICAgICAgICBkcHJpbnRrKFhFTkxPR19JTkZP LCAiJXBwOiBBVFMgJXMgZW5hYmxlZFxuIiwKPiArICAgICAgICAgICAgICAgICZwZGV2LT5zYmRm LCBwb3MgPyAiaXMiIDogIndhcyIpOwo+ICAgCj4gICAgICAgcmV0dXJuIHBvczsKPiAgIH0KPiBA QCAtNzMsOCArNzEsNiBAQCBpbnQgZW5hYmxlX2F0c19kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBk ZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmF0c19saXN0KQo+ICAgdm9pZCBkaXNhYmxlX2F0c19kZXZp Y2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gICB7Cj4gICAgICAgdTMyIHZhbHVlOwo+IC0gICAg dTE2IHNlZyA9IHBkZXYtPnNlZzsKPiAtICAgIHU4IGJ1cyA9IHBkZXYtPmJ1cywgZGV2Zm4gPSBw ZGV2LT5kZXZmbjsKPiAgIAo+ICAgICAgIEJVR19PTighcGRldi0+YXRzLmNhcF9wb3MpOwo+ICAg Cj4gQEAgLTg1LDYgKzgxLDUgQEAgdm9pZCBkaXNhYmxlX2F0c19kZXZpY2Uoc3RydWN0IHBjaV9k ZXYgKnBkZXYpCj4gICAgICAgbGlzdF9kZWwoJnBkZXYtPmF0cy5saXN0KTsKPiAgIAo+ICAgICAg IGlmICggaW9tbXVfdmVyYm9zZSApCj4gLSAgICAgICAgZHByaW50ayhYRU5MT0dfSU5GTywgIiUw NHg6JTAyeDolMDJ4LiV1OiBBVFMgaXMgZGlzYWJsZWRcbiIsCj4gLSAgICAgICAgICAgICAgICBz ZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwo+ICsgICAgICAgIGRw cmludGsoWEVOTE9HX0lORk8sICIlcHA6IEFUUyBpcyBkaXNhYmxlZFxuIiwgJnBkZXYtPnNiZGYp Owo+ICAgfQo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jIGIveGVuL2Ry aXZlcnMvdnBjaS9oZWFkZXIuYwo+IGluZGV4IDNjNzk0ZjQ4NmQuLmJhOWEwMzYyMDIgMTAwNjQ0 Cj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3Zw Y2kvaGVhZGVyLmMKPiBAQCAtMzU1LDcgKzM1NSw2IEBAIHN0YXRpYyB2b2lkIGJhcl93cml0ZShj b25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IHJlZywKPiAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50MzJfdCB2YWwsIHZvaWQgKmRhdGEpCj4gICB7Cj4gICAgICAgc3Ry dWN0IHZwY2lfYmFyICpiYXIgPSBkYXRhOwo+IC0gICAgdWludDhfdCBzbG90ID0gUENJX1NMT1Qo cGRldi0+ZGV2Zm4pLCBmdW5jID0gUENJX0ZVTkMocGRldi0+ZGV2Zm4pOwo+ICAgICAgIGJvb2wg aGkgPSBmYWxzZTsKPiAgIAo+ICAgICAgIGlmICggYmFyLT50eXBlID09IFZQQ0lfQkFSX01FTTY0 X0hJICkKPiBAQCAtMzcyLDkgKzM3MSw4IEBAIHN0YXRpYyB2b2lkIGJhcl93cml0ZShjb25zdCBz dHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IHJlZywKPiAgICAgICAgICAgLyogSWYg dGhlIHZhbHVlIHdyaXR0ZW4gaXMgdGhlIGN1cnJlbnQgb25lIGF2b2lkIHByaW50aW5nIGEgd2Fy bmluZy4gKi8KPiAgICAgICAgICAgaWYgKCB2YWwgIT0gKHVpbnQzMl90KShiYXItPmFkZHIgPj4g KGhpID8gMzIgOiAwKSkgKQo+ICAgICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfV0FSTklORywK PiAtICAgICAgICAgICAgICAgICAgICAiJTA0eDolMDJ4OiUwMnguJXU6IGlnbm9yZWQgQkFSICVs dSB3cml0ZSB3aXRoIG1lbW9yeSBkZWNvZGluZyBlbmFibGVkXG4iLAo+IC0gICAgICAgICAgICAg ICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBzbG90LCBmdW5jLAo+IC0gICAgICAgICAgICAg ICAgICAgIGJhciAtIHBkZXYtPnZwY2ktPmhlYWRlci5iYXJzICsgaGkpOwo+ICsgICAgICAgICAg ICAgICAgICAgICIlcHA6IGlnbm9yZWQgQkFSICVsdSB3cml0ZSB3aXRoIG1lbW9yeSBkZWNvZGlu ZyBlbmFibGVkXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBiYXIgLSBw ZGV2LT52cGNpLT5oZWFkZXIuYmFycyArIGhpKTsKPiAgICAgICAgICAgcmV0dXJuOwo+ICAgICAg IH0KPiAgIAo+IEBAIC00MDIsMTUgKzQwMCwxNCBAQCBzdGF0aWMgdm9pZCByb21fd3JpdGUoY29u c3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsCj4gICB7Cj4gICAgICAg c3RydWN0IHZwY2lfaGVhZGVyICpoZWFkZXIgPSAmcGRldi0+dnBjaS0+aGVhZGVyOwo+ICAgICAg IHN0cnVjdCB2cGNpX2JhciAqcm9tID0gZGF0YTsKPiAtICAgIHVpbnQ4X3Qgc2xvdCA9IFBDSV9T TE9UKHBkZXYtPmRldmZuKSwgZnVuYyA9IFBDSV9GVU5DKHBkZXYtPmRldmZuKTsKPiAgICAgICB1 aW50MTZfdCBjbWQgPSBwY2lfY29uZl9yZWFkMTYocGRldi0+c2JkZiwgUENJX0NPTU1BTkQpOwo+ ICAgICAgIGJvb2wgbmV3X2VuYWJsZWQgPSB2YWwgJiBQQ0lfUk9NX0FERFJFU1NfRU5BQkxFOwo+ ICAgCj4gICAgICAgaWYgKCAoY21kICYgUENJX0NPTU1BTkRfTUVNT1JZKSAmJiBoZWFkZXItPnJv bV9lbmFibGVkICYmIG5ld19lbmFibGVkICkKPiAgICAgICB7Cj4gICAgICAgICAgIGdwcmludGso WEVOTE9HX1dBUk5JTkcsCj4gLSAgICAgICAgICAgICAgICAiJTA0eDolMDJ4OiUwMnguJXU6IGln bm9yZWQgUk9NIEJBUiB3cml0ZSB3aXRoIG1lbW9yeSBkZWNvZGluZyBlbmFibGVkXG4iLAo+IC0g ICAgICAgICAgICAgICAgcGRldi0+c2VnLCBwZGV2LT5idXMsIHNsb3QsIGZ1bmMpOwo+ICsgICAg ICAgICAgICAgICAgIiVwcDogaWdub3JlZCBST00gQkFSIHdyaXRlIHdpdGggbWVtb3J5IGRlY29k aW5nIGVuYWJsZWRcbiIsCj4gKyAgICAgICAgICAgICAgICAmcGRldi0+c2JkZik7Cj4gICAgICAg ICAgIHJldHVybjsKPiAgICAgICB9Cj4gICAKPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBj aS9tc2kuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvbXNpLmMKPiBpbmRleCA1YjY2MDJmM2MyLi40MGU0 ZmNhMTMyIDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvbXNpLmMKPiArKysgYi94ZW4v ZHJpdmVycy92cGNpL21zaS5jCj4gQEAgLTI5MCw4ICsyOTAsNyBAQCB2b2lkIHZwY2lfZHVtcF9t c2kodm9pZCkKPiAgICAgICAgICAgICAgIG1zaSA9IHBkZXYtPnZwY2ktPm1zaTsKPiAgICAgICAg ICAgICAgIGlmICggbXNpICYmIG1zaS0+ZW5hYmxlZCApCj4gICAgICAgICAgICAgICB7Cj4gLSAg ICAgICAgICAgICAgICBwcmludGsoIiUwNHg6JTAyeDolMDJ4LiV1IE1TSVxuIiwgcGRldi0+c2Vn LCBwZGV2LT5idXMsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QocGRldi0+ZGV2 Zm4pLCBQQ0lfRlVOQyhwZGV2LT5kZXZmbikpOwo+ICsgICAgICAgICAgICAgICAgcHJpbnRrKCIl cHAgTVNJXG4iLCAmcGRldi0+c2JkZik7Cj4gICAKPiAgICAgICAgICAgICAgICAgICBwcmludGso IiAgZW5hYmxlZDogJWQgNjQtYml0OiAlZCIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgIG1z aS0+ZW5hYmxlZCwgbXNpLT5hZGRyZXNzNjQpOwo+IEBAIC0zMDgsOCArMzA3LDcgQEAgdm9pZCB2 cGNpX2R1bXBfbXNpKHZvaWQpCj4gICAgICAgICAgICAgICB7Cj4gICAgICAgICAgICAgICAgICAg aW50IHJjOwo+ICAgCj4gLSAgICAgICAgICAgICAgICBwcmludGsoIiUwNHg6JTAyeDolMDJ4LiV1 IE1TSS1YXG4iLCBwZGV2LT5zZWcsIHBkZXYtPmJ1cywKPiAtICAgICAgICAgICAgICAgICAgICAg ICBQQ0lfU0xPVChwZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBkZXYtPmRldmZuKSk7Cj4gKyAgICAg ICAgICAgICAgICBwcmludGsoIiVwcCBNU0ktWFxuIiwgJnBkZXYtPnNiZGYpOwo+ICAgCj4gICAg ICAgICAgICAgICAgICAgcHJpbnRrKCIgIGVudHJpZXM6ICV1IG1hc2thbGw6ICVkIGVuYWJsZWQ6 ICVkXG4iLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICBtc2l4LT5tYXhfZW50cmllcywgbXNp eC0+bWFza2VkLCBtc2l4LT5lbmFibGVkKTsKPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBj aS9tc2l4LmMgYi94ZW4vZHJpdmVycy92cGNpL21zaXguYwo+IGluZGV4IDM4YzFlN2U1ZGQuLjY0 ZGQwYTkyOWMgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9tc2l4LmMKPiArKysgYi94 ZW4vZHJpdmVycy92cGNpL21zaXguYwo+IEBAIC00MiwxNSArNDIsMTQgQEAgc3RhdGljIHVpbnQz Ml90IGNvbnRyb2xfcmVhZChjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50 IHJlZywKPiAgIHN0YXRpYyBpbnQgdXBkYXRlX2VudHJ5KHN0cnVjdCB2cGNpX21zaXhfZW50cnkg KmVudHJ5LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYg KnBkZXYsIHVuc2lnbmVkIGludCBucikKPiAgIHsKPiAtICAgIHVpbnQ4X3Qgc2xvdCA9IFBDSV9T TE9UKHBkZXYtPmRldmZuKSwgZnVuYyA9IFBDSV9GVU5DKHBkZXYtPmRldmZuKTsKPiAgICAgICBp bnQgcmMgPSB2cGNpX21zaXhfYXJjaF9kaXNhYmxlX2VudHJ5KGVudHJ5LCBwZGV2KTsKPiAgIAo+ ICAgICAgIC8qIElnbm9yZSBFTk9FTlQsIGl0IG1lYW5zIHRoZSBlbnRyeSB3YXNuJ3Qgc2V0dXAu ICovCj4gICAgICAgaWYgKCByYyAmJiByYyAhPSAtRU5PRU5UICkKPiAgICAgICB7Cj4gICAgICAg ICAgIGdwcmludGsoWEVOTE9HX1dBUk5JTkcsCj4gLSAgICAgICAgICAgICAgICAiJTA0eDolMDJ4 OiUwMnguJXU6IHVuYWJsZSB0byBkaXNhYmxlIGVudHJ5ICV1IGZvciB1cGRhdGU6ICVkXG4iLAo+ IC0gICAgICAgICAgICAgICAgcGRldi0+c2VnLCBwZGV2LT5idXMsIHNsb3QsIGZ1bmMsIG5yLCBy Yyk7Cj4gKyAgICAgICAgICAgICAgICAiJXBwOiB1bmFibGUgdG8gZGlzYWJsZSBlbnRyeSAldSBm b3IgdXBkYXRlOiAlZFxuIiwKPiArICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBuciwgcmMp Owo+ICAgICAgICAgICByZXR1cm4gcmM7Cj4gICAgICAgfQo+ICAgCj4gQEAgLTU5LDkgKzU4LDgg QEAgc3RhdGljIGludCB1cGRhdGVfZW50cnkoc3RydWN0IHZwY2lfbXNpeF9lbnRyeSAqZW50cnks Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWUENJX01TSVhfVEFCTEUpKTsKPiAgICAgICBpZiAoIHJjICkKPiAgICAgICB7Cj4gLSAgICAg ICAgZ3ByaW50ayhYRU5MT0dfV0FSTklORywKPiAtICAgICAgICAgICAgICAgICIlMDR4OiUwMng6 JTAyeC4ldTogdW5hYmxlIHRvIGVuYWJsZSBlbnRyeSAldTogJWRcbiIsCj4gLSAgICAgICAgICAg ICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1cywgc2xvdCwgZnVuYywgbnIsIHJjKTsKPiArICAgICAg ICBncHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiJXBwOiB1bmFibGUgdG8gZW5hYmxlIGVudHJ5ICV1 OiAlZFxuIiwKPiArICAgICAgICAgICAgICAgICZwZGV2LT5zYmRmLCBuciwgcmMpOwo+ICAgICAg ICAgICAvKiBFbnRyeSBpcyBsaWtlbHkgbm90IHByb3Blcmx5IGNvbmZpZ3VyZWQuICovCj4gICAg ICAgICAgIHJldHVybiByYzsKPiAgICAgICB9Cj4gQEAgLTcyLDcgKzcwLDYgQEAgc3RhdGljIGlu dCB1cGRhdGVfZW50cnkoc3RydWN0IHZwY2lfbXNpeF9lbnRyeSAqZW50cnksCj4gICBzdGF0aWMg dm9pZCBjb250cm9sX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBp bnQgcmVnLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWwsIHZvaWQg KmRhdGEpCj4gICB7Cj4gLSAgICB1aW50OF90IHNsb3QgPSBQQ0lfU0xPVChwZGV2LT5kZXZmbiks IGZ1bmMgPSBQQ0lfRlVOQyhwZGV2LT5kZXZmbik7Cj4gICAgICAgc3RydWN0IHZwY2lfbXNpeCAq bXNpeCA9IGRhdGE7Cj4gICAgICAgYm9vbCBuZXdfbWFza2VkID0gdmFsICYgUENJX01TSVhfRkxB R1NfTUFTS0FMTDsKPiAgICAgICBib29sIG5ld19lbmFibGVkID0gdmFsICYgUENJX01TSVhfRkxB R1NfRU5BQkxFOwo+IEBAIC0xMzMsOSArMTMwLDggQEAgc3RhdGljIHZvaWQgY29udHJvbF93cml0 ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IHJlZywKPiAgICAgICAg ICAgICAgICAgICAvKiBJZ25vcmUgbm9uLXByZXNlbnQgZW50cnkuICovCj4gICAgICAgICAgICAg ICAgICAgYnJlYWs7Cj4gICAgICAgICAgICAgICBkZWZhdWx0Ogo+IC0gICAgICAgICAgICAgICAg Z3ByaW50ayhYRU5MT0dfV0FSTklORywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgIiUwNHg6 JTAyeDolMDJ4LiV1OiB1bmFibGUgdG8gZGlzYWJsZSBlbnRyeSAldTogJWRcbiIsCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBzbG90LCBmdW5jLCBpLCBy Yyk7Cj4gKyAgICAgICAgICAgICAgICBncHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiJXBwOiB1bmFi bGUgdG8gZGlzYWJsZSBlbnRyeSAldTogJWRcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICZwZGV2LT5zYmRmLCBpLCByYyk7Cj4gICAgICAgICAgICAgICAgICAgcmV0dXJuOwo+ICAgICAg ICAgICAgICAgfQo+ICAgICAgICAgICB9Cj4gQEAgLTE4MCw4ICsxNzYsNyBAQCBzdGF0aWMgYm9v bCBhY2Nlc3NfYWxsb3dlZChjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgbG9u ZyBhZGRyLAo+ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKPiAgIAo+ICAgICAgIGdwcmludGsoWEVO TE9HX1dBUk5JTkcsCj4gLSAgICAgICAgICAgICIlMDR4OiUwMng6JTAyeC4ldTogdW5hbGlnbmVk IG9yIGludmFsaWQgc2l6ZSBNU0ktWCB0YWJsZSBhY2Nlc3NcbiIsCj4gLSAgICAgICAgICAgIHBk ZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChwZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBkZXYt PmRldmZuKSk7Cj4gKyAgICAgICAgICAgICIlcHA6IHVuYWxpZ25lZCBvciBpbnZhbGlkIHNpemUg TVNJLVggdGFibGUgYWNjZXNzXG4iLCAmcGRldi0+c2JkZik7Cj4gICAKPiAgICAgICByZXR1cm4g ZmFsc2U7Cj4gICB9Cj4gQEAgLTQzMSwxMCArNDI2LDkgQEAgaW50IHZwY2lfbWFrZV9tc2l4X2hv bGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gICAgICAgICAgICAgICBkZWZhdWx0Ogo+ ICAgICAgICAgICAgICAgICAgIHB1dF9nZm4oZCwgc3RhcnQpOwo+ICAgICAgICAgICAgICAgICAg IGdwcmludGsoWEVOTE9HX1dBUk5JTkcsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICIlMDR4 OiUwMng6JTAyeC4ldTogZXhpc3RpbmcgbWFwcGluZyAobWZuOiAlIiBQUklfbWZuCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICIlcHA6IGV4aXN0aW5nIG1hcHBpbmcgKG1mbjogJSIgUFJJX21m bgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGU6ICVkKSBhdCAlI2x4IGNsb2JiZXJz IE1TSVggTU1JTyBhcmVhXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5zZWcs IHBkZXYtPmJ1cywgUENJX1NMT1QocGRldi0+ZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICAgICAg ICAgICBQQ0lfRlVOQyhwZGV2LT5kZXZmbiksIG1mbl94KG1mbiksIHQsIHN0YXJ0KTsKPiArICAg ICAgICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIG1mbl94KG1mbiksIHQsIHN0YXJ0KTsK PiAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVFWElTVDsKPiAgICAgICAgICAgICAgIH0KPiAg ICAgICAgICAgICAgIHB1dF9nZm4oZCwgc3RhcnQpOwo+IAoKLS0gCkp1bGllbiBHcmFsbAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==