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=-13.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,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 7D9E0C10F29 for ; Tue, 17 Mar 2020 10:36:58 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5A41220714 for ; Tue, 17 Mar 2020 10:36:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5A41220714 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C474889DA4; Tue, 17 Mar 2020 10:36:57 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 440AB89DA4 for ; Tue, 17 Mar 2020 10:36:57 +0000 (UTC) IronPort-SDR: CdzBF8Vixg4MRIAHtOcpcA42AnO6cx95b2+4oEJrlb0mFAwr7hEkgx1LlzqkJgT6d49+Ehd179 1ZKxmE2Tcbmg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Mar 2020 03:36:56 -0700 IronPort-SDR: HLd6bNIuRe56f7gHMR8mLpv3yB4nrYY1EnI4pHClM21HA4odac7rr0XwIiTtWRQUVc2oU+qsTT juuqp5J13bgA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,564,1574150400"; d="scan'208";a="445451083" Received: from emani-mobl.ger.corp.intel.com (HELO [10.252.44.214]) ([10.252.44.214]) by fmsmga006.fm.intel.com with ESMTP; 17 Mar 2020 03:36:54 -0700 To: Umesh Nerlige Ramappa References: <20200314103331.2512251-1-lionel.g.landwerlin@intel.com> <20200316184627.GA58692@orsosgc001.amr.corp.intel.com> From: Lionel Landwerlin Organization: Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ Message-ID: <72031564-dc9a-9d04-622b-ed66a65c3afd@intel.com> Date: Tue, 17 Mar 2020 12:36:53 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <20200316184627.GA58692@orsosgc001.amr.corp.intel.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH v6 1/3] drm/i915/perf: remove generated code X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gMTYvMDMvMjAyMCAyMDo0NiwgVW1lc2ggTmVybGlnZSBSYW1hcHBhIHdyb3RlOgo+IExvb2tz IGdvb2QuIFRoYW5rcyBmb3IgY2xlYW5pbmcgdGhpcyB1cC4KPgo+IFdpdGggcy9tdXRleF9sb2Nr L211dGV4X3VubG9jay8gYmVsb3c6Cj4KPiBSZXZpZXdlZC1ieTogVW1lc2ggTmVybGlnZSBSYW1h cHBhIDx1bWVzaC5uZXJsaWdlLnJhbWFwcGFAaW50ZWwuY29tPgo+Cj4gVGhhbmtzLAo+IFVtZXNo Cj4KPiBPbiBTYXQsIE1hciAxNCwgMjAyMCBhdCAxMjozMzoyOVBNICswMjAwLCBMaW9uZWwgTGFu ZHdlcmxpbiB3cm90ZToKPj4gQSBsaXR0bGUgYml0IG9mIGhpc3RvcnkgOgo+Pgo+PiDCoCBCYWNr IHdoZW4gaTkxNS1wZXJmIHdhcyBpbnRyb2R1Y2VkICg0LjEzKSwgdGhlcmUgd2FzIG5vIHdheSB0 bwo+PiDCoCBkeW5hbWljYWxseSBhZGQgbmV3IE9BIGNvbmZpZ3VyYXRpb25zIHRvIGk5MTUuIE9u bHkgdGhlIGdlbmVyYXRlZAo+PiDCoCBjb25maWdzIGJha2VkIGluIGF0IGJ1aWxkIHRpbWUgd2Vy ZSBhbGxvd2VkLgo+Pgo+PiDCoCBJdCBxdWlja2x5IGJlY2FtZSBvYnZpb3VzIHRoYXQgd2Ugd291 bGQgbmVlZCB0byBhbGxvdyBhcHBsaWNhdGlvbnMKPj4gwqAgdG8gdXBsb2FkIHRoZWlyIG93biBj b25maWd1cmF0aW9ucywgZm9yIGluc3RhbmNlIHRvIGJlIGFibGUgdG8gdGVzdAo+PiDCoCBuZXcg b25lcywgYW5kIHNvIGJ5IHRoZSBuZXh0IHN0YWJsZSB2ZXJzaW9uICg0LjE0KSB3ZSBhZGRlZCB1 QVBJcwo+PiDCoCB0byBhbGxvdyB1cGxvYWRpbmcgbmV3IGNvbmZpZ3VyYXRpb25zLgo+Pgo+PiDC oCBXaGVuIGFkZGluZyB0aGF0IGNhcGFiaWxpdHksIHdlIHRvb2sgdGhlIG9wcG9ydHVuaXR5IHRv IHJlbW92ZSBtb3N0Cj4+IMKgIEhXIGNvbmZpZ3VyYXRpb25zIGV4Y2VwdCB0aGUgVGVzdE9hIG9u ZSB3aGljaCBpcyBhIGNvbmZpZ3VyYXRpb24KPj4gwqAgSUdUIHdvdWxkIHJlbHkgb24gdG8gdmVy aWZ5IHRoYXQgdGhlIEhXIGlzIG91dHB1dHRpbmcgY29ycmVjdAo+PiDCoCB2YWx1ZXMuIEF0IHRo ZSB0aW1lIGl0IG1hZGUgc2Vuc2UgdG8gaGF2ZSB0aGF0IGNvbmZpdXJhdGlvbiBpbiBhdAo+PiDC oCB0aGUgc2FtZSB0aW1lIGEgZ2l2ZW4gSFcgcGxhdGZvcm0gYWRkZWQgdG8gdGhlIGk5MTUtcGVy ZiBkcml2ZXIuCj4+Cj4+IE5vdyB0aGF0IElHVCBoYXMgYmVjb21lIHRoZSByZWZlcmVuY2UgcG9p bnQgZm9yIEhXIGNvbmZpZ3VyYXRpb25zIChzZWUKPj4gY29tbWl0IDUzZjhmNTQxY2EgKCJsaWI6 IEFkZCBpOTE1X3BlcmYgbGlicmFyeSIpLCBwcmV2aW91c2x5IHRoaXMgd2FzCj4+IGxvY2F0ZWQg aW4gdGhlIEdQVVRvcCByZXBvc2l0b3J5KSwgdGhlIG5lZWQgZm9yIGhhdmluZyB0aG9zZQo+PiBj b25maWd1cmF0aW9ucyBpbiBpOTE1LXBlcmYgaXMgZ29uZS4KPj4KPj4gT24gdGhlIE1lc2Egc2lk ZSwgd2UgaGF2ZW4ndCByZWxpZWQgb24gdGhpcyB0ZXN0IGNvbmZpZ3VyYXRpb24gZm9yIGEKPj4g d2hpbGUuIFRoZSBNREFQSSBsaWJyYXJ5IGFsd2F5cyByZXF1aXJlZCA0LjE0IGZlYXR1cmUgbGV2 ZWwgYW5kIGFsd2F5cwo+PiBsb2FkZWQgaXRzIGNvbmZpZ3VyYXRpb24gaW50byBpOTE1Lgo+Pgo+ PiBJJ20gc3VyZSBub2JvZHkgd2lsbCBtaXNzIHRoaXMgZ2VuZXJhdGVkIHN0dWZmIGluIGk5MTUg OikKPj4KPj4gdjI6IEZpeCBzZWxmdGVzdHMgYnkgY3JlYXRpbmcgYW4gZW1wdHkgY29uZmlnCj4+ Cj4+IHYzOiBGaXggdW5sb2NraW5nIG9uIGFsbG9jYXRpb24gZXJyb3IgKERhbiBDYXJwZW50ZXIp Cj4+Cj4+IHY0OiBGaXh1cCBjaGVja3BhdGNoIHdhcm5pbmdzCj4+Cj4+IFNpZ25lZC1vZmYtYnk6 IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KPj4gLS0t Cj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgIDE3IC0tLQo+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuY8KgwqDCoMKg wqDCoMKgwqDCoMKgIHzCoCA4MSArLS0tLS0tLS0tLS0tLQo+PiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3BlcmZfdHlwZXMuaMKgwqDCoMKgIHzCoMKgIDIgLQo+PiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9vYS9pOTE1X29hX2Jkdy5jwqDCoMKgwqDCoCB8wqAgOTAgLS0tLS0tLS0tLS0tLS0tCj4+ IGRyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfYmR3LmjCoMKgwqDCoMKgIHzCoCAxNiAt LS0KPj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9ieHQuY8KgwqDCoMKgwqAgfMKg IDg4IC0tLS0tLS0tLS0tLS0tLQo+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2J4 dC5owqDCoMKgwqDCoCB8wqAgMTYgLS0tCj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVf b2FfY2ZsZ3QyLmPCoMKgIHzCoCA4OSAtLS0tLS0tLS0tLS0tLS0KPj4gZHJpdmVycy9ncHUvZHJt L2k5MTUvb2EvaTkxNV9vYV9jZmxndDIuaMKgwqAgfMKgIDE2IC0tLQo+PiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0My5jwqDCoCB8wqAgODkgLS0tLS0tLS0tLS0tLS0tCj4+ IGRyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QzLmjCoMKgIHzCoCAxNiAtLS0K Pj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jaHYuY8KgwqDCoMKgwqAgfMKgIDg5 IC0tLS0tLS0tLS0tLS0tLQo+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2Nodi5o wqDCoMKgwqDCoCB8wqAgMTYgLS0tCj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ff Y25sLmPCoMKgwqDCoMKgIHwgMTAxIC0tLS0tLS0tLS0tLS0tLS0tCj4+IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L29hL2k5MTVfb2FfY25sLmjCoMKgwqDCoMKgIHzCoCAxNiAtLS0KPj4gZHJpdmVycy9n cHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9nbGsuY8KgwqDCoMKgwqAgfMKgIDg4IC0tLS0tLS0tLS0t LS0tLQo+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2dsay5owqDCoMKgwqDCoCB8 wqAgMTYgLS0tCj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaHN3LmPCoMKgwqDC oMKgIHwgMTE4IC0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L29h L2k5MTVfb2FfaHN3LmjCoMKgwqDCoMKgIHzCoCAxNiAtLS0KPj4gZHJpdmVycy9ncHUvZHJtL2k5 MTUvb2EvaTkxNV9vYV9pY2wuY8KgwqDCoMKgwqAgfMKgIDk4IC0tLS0tLS0tLS0tLS0tLS0tCj4+ IGRyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaWNsLmjCoMKgwqDCoMKgIHzCoCAxNiAt LS0KPj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9rYmxndDIuY8KgwqAgfMKgIDg5 IC0tLS0tLS0tLS0tLS0tLQo+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2tibGd0 Mi5owqDCoCB8wqAgMTYgLS0tCj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2Js Z3QzLmPCoMKgIHzCoCA4OSAtLS0tLS0tLS0tLS0tLS0KPj4gZHJpdmVycy9ncHUvZHJtL2k5MTUv b2EvaTkxNV9vYV9rYmxndDMuaMKgwqAgfMKgIDE2IC0tLQo+PiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9vYS9pOTE1X29hX3NrbGd0Mi5jwqDCoCB8wqAgODggLS0tLS0tLS0tLS0tLS0tCj4+IGRyaXZl cnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3QyLmjCoMKgIHzCoCAxNiAtLS0KPj4gZHJp dmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDMuY8KgwqAgfMKgIDg5IC0tLS0tLS0t LS0tLS0tLQo+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0My5owqDCoCB8 wqAgMTYgLS0tCj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3Q0LmPCoMKg IHzCoCA4OSAtLS0tLS0tLS0tLS0tLS0KPj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9v YV9za2xndDQuaMKgwqAgfMKgIDE2IC0tLQo+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1 X29hX3RnbC5jwqDCoMKgwqDCoCB8IDEyMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gZHJpdmVy cy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV90Z2wuaMKgwqDCoMKgwqAgfMKgIDE2IC0tLQo+PiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9wZXJmLmMgfMKgIDk4ICsrKysrKysr KysrKysrKystCj4+IDM0IGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDE3NTcgZGVs ZXRpb25zKC0pCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9p OTE1X29hX2Jkdy5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9v YS9pOTE1X29hX2Jkdy5oCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkx NS9vYS9pOTE1X29hX2J4dC5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0v aTkxNS9vYS9pOTE1X29hX2J4dC5oCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0Mi5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0Mi5oCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0My5jCj4+IGRlbGV0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0My5oCj4+IGRlbGV0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2Nodi5jCj4+IGRlbGV0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2Nodi5oCj4+IGRl bGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NubC5jCj4+ IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NubC5o Cj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2ds ay5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29h X2dsay5oCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1 X29hX2hzdy5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9p OTE1X29hX2hzdy5oCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9v YS9pOTE1X29hX2ljbC5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkx NS9vYS9pOTE1X29hX2ljbC5oCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0v aTkxNS9vYS9pOTE1X29hX2tibGd0Mi5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vaTkxNS9vYS9pOTE1X29hX2tibGd0Mi5oCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2tibGd0My5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2tibGd0My5oCj4+IGRlbGV0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0Mi5jCj4+IGRlbGV0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0Mi5oCj4+ IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0 My5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29h X3NrbGd0My5oCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9p OTE1X29hX3NrbGd0NC5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkx NS9vYS9pOTE1X29hX3NrbGd0NC5oCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vaTkxNS9vYS9pOTE1X29hX3RnbC5jCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vaTkxNS9vYS9pOTE1X29hX3RnbC5oCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZSAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ PiBpbmRleCA5Zjg4N2E4NmU1NTUuLjZiZmY4YWYxODg0MiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUKPj4gQEAgLTI0MywyMyArMjQzLDYgQEAgaTkxNS15ICs9IFwKPj4gwqDCoMKgwqBkaXNw bGF5L3Zsdl9kc2kubyBcCj4+IMKgwqDCoMKgZGlzcGxheS92bHZfZHNpX3BsbC5vCj4+Cj4+IC0j IHBlcmYgY29kZQo+PiAtaTkxNS15ICs9IFwKPj4gLcKgwqDCoCBvYS9pOTE1X29hX2hzdy5vIFwK Pj4gLcKgwqDCoCBvYS9pOTE1X29hX2Jkdy5vIFwKPj4gLcKgwqDCoCBvYS9pOTE1X29hX2Nodi5v IFwKPj4gLcKgwqDCoCBvYS9pOTE1X29hX3NrbGd0Mi5vIFwKPj4gLcKgwqDCoCBvYS9pOTE1X29h X3NrbGd0My5vIFwKPj4gLcKgwqDCoCBvYS9pOTE1X29hX3NrbGd0NC5vIFwKPj4gLcKgwqDCoCBv YS9pOTE1X29hX2J4dC5vIFwKPj4gLcKgwqDCoCBvYS9pOTE1X29hX2tibGd0Mi5vIFwKPj4gLcKg wqDCoCBvYS9pOTE1X29hX2tibGd0My5vIFwKPj4gLcKgwqDCoCBvYS9pOTE1X29hX2dsay5vIFwK Pj4gLcKgwqDCoCBvYS9pOTE1X29hX2NmbGd0Mi5vIFwKPj4gLcKgwqDCoCBvYS9pOTE1X29hX2Nm bGd0My5vIFwKPj4gLcKgwqDCoCBvYS9pOTE1X29hX2NubC5vIFwKPj4gLcKgwqDCoCBvYS9pOTE1 X29hX2ljbC5vIFwKPj4gLcKgwqDCoCBvYS9pOTE1X29hX3RnbC5vCj4+IGk5MTUteSArPSBpOTE1 X3BlcmYubwo+Pgo+PiAjIFBvc3QtbW9ydGVtIGRlYnVnIGFuZCBHUFUgaGFuZyBzdGF0ZSBjYXB0 dXJlCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyAKPj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+PiBpbmRleCAxYjA3NGJiNGE3ZmUu LjAwNjlmMDliOTg4YyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w ZXJmLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKPj4gQEAgLTIw NCwyMSArMjA0LDYgQEAKPj4KPj4gI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4+ICNpbmNsdWRlICJp OTE1X3BlcmYuaCIKPj4gLSNpbmNsdWRlICJvYS9pOTE1X29hX2hzdy5oIgo+PiAtI2luY2x1ZGUg Im9hL2k5MTVfb2FfYmR3LmgiCj4+IC0jaW5jbHVkZSAib2EvaTkxNV9vYV9jaHYuaCIKPj4gLSNp bmNsdWRlICJvYS9pOTE1X29hX3NrbGd0Mi5oIgo+PiAtI2luY2x1ZGUgIm9hL2k5MTVfb2Ffc2ts Z3QzLmgiCj4+IC0jaW5jbHVkZSAib2EvaTkxNV9vYV9za2xndDQuaCIKPj4gLSNpbmNsdWRlICJv YS9pOTE1X29hX2J4dC5oIgo+PiAtI2luY2x1ZGUgIm9hL2k5MTVfb2Ffa2JsZ3QyLmgiCj4+IC0j aW5jbHVkZSAib2EvaTkxNV9vYV9rYmxndDMuaCIKPj4gLSNpbmNsdWRlICJvYS9pOTE1X29hX2ds ay5oIgo+PiAtI2luY2x1ZGUgIm9hL2k5MTVfb2FfY2ZsZ3QyLmgiCj4+IC0jaW5jbHVkZSAib2Ev aTkxNV9vYV9jZmxndDMuaCIKPj4gLSNpbmNsdWRlICJvYS9pOTE1X29hX2NubC5oIgo+PiAtI2lu Y2x1ZGUgIm9hL2k5MTVfb2FfaWNsLmgiCj4+IC0jaW5jbHVkZSAib2EvaTkxNV9vYV90Z2wuaCIK Pj4KPj4gLyogSFcgcmVxdWlyZXMgdGhpcyB0byBiZSBhIHBvd2VyIG9mIHR3bywgYmV0d2VlbiAx MjhrIGFuZCAxNk0sIAo+PiB0aG91Z2ggZHJpdmVyCj4+IMKgKiBpcyBjdXJyZW50bHkgZ2VuZXJh bGx5IGRlc2lnbmVkIGFzc3VtaW5nIHRoZSBsYXJnZXN0IDE2TSBzaXplIGlzIAo+PiB1c2VkIHN1 Y2gKPj4gQEAgLTQwOSwxMCArMzk0LDcgQEAgaTkxNV9wZXJmX2dldF9vYV9jb25maWcoc3RydWN0 IGk5MTVfcGVyZiAqcGVyZiwgCj4+IGludCBtZXRyaWNzX3NldCkKPj4gwqDCoMKgwqBzdHJ1Y3Qg aTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZzsKPj4KPj4gwqDCoMKgwqByY3VfcmVhZF9sb2NrKCk7 Cj4+IC3CoMKgwqAgaWYgKG1ldHJpY3Nfc2V0ID09IDEpCj4+IC3CoMKgwqDCoMKgwqDCoCBvYV9j b25maWcgPSAmcGVyZi0+dGVzdF9jb25maWc7Cj4+IC3CoMKgwqAgZWxzZQo+PiAtwqDCoMKgwqDC oMKgwqAgb2FfY29uZmlnID0gaWRyX2ZpbmQoJnBlcmYtPm1ldHJpY3NfaWRyLCBtZXRyaWNzX3Nl dCk7Cj4+ICvCoMKgwqAgb2FfY29uZmlnID0gaWRyX2ZpbmQoJnBlcmYtPm1ldHJpY3NfaWRyLCBt ZXRyaWNzX3NldCk7Cj4+IMKgwqDCoMKgaWYgKG9hX2NvbmZpZykKPj4gwqDCoMKgwqDCoMKgwqAg b2FfY29uZmlnID0gaTkxNV9vYV9jb25maWdfZ2V0KG9hX2NvbmZpZyk7Cj4+IMKgwqDCoMKgcmN1 X3JlYWRfdW5sb2NrKCk7Cj4+IEBAIC0zNzE2LDcgKzM2OTgsNiBAQCBpbnQgaTkxNV9wZXJmX29w ZW5faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgCj4+ICpkZXYsIHZvaWQgKmRhdGEsCj4+IHZvaWQg aTkxNV9wZXJmX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+PiB7Cj4+ IMKgwqDCoMKgc3RydWN0IGk5MTVfcGVyZiAqcGVyZiA9ICZpOTE1LT5wZXJmOwo+PiAtwqDCoMKg IGludCByZXQ7Cj4+Cj4+IMKgwqDCoMKgaWYgKCFwZXJmLT5pOTE1KQo+PiDCoMKgwqDCoMKgwqDC oCByZXR1cm47Cj4+IEBAIC0zNzMwLDY0ICszNzExLDcgQEAgdm9pZCBpOTE1X3BlcmZfcmVnaXN0 ZXIoc3RydWN0IAo+PiBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+PiDCoMKgwqDCoHBlcmYtPm1l dHJpY3Nfa29iaiA9Cj4+IMKgwqDCoMKgwqDCoMKgIGtvYmplY3RfY3JlYXRlX2FuZF9hZGQoIm1l dHJpY3MiLAo+PiAmaTkxNS0+ZHJtLnByaW1hcnktPmtkZXYtPmtvYmopOwo+PiAtwqDCoMKgIGlm ICghcGVyZi0+bWV0cmljc19rb2JqKQo+PiAtwqDCoMKgwqDCoMKgwqAgZ290byBleGl0Owo+PiAt Cj4+IC0gc3lzZnNfYXR0cl9pbml0KCZwZXJmLT50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQu YXR0cik7Cj4+IC0KPj4gLcKgwqDCoCBpZiAoSVNfVElHRVJMQUtFKGk5MTUpKSB7Cj4+IC3CoMKg wqDCoMKgwqDCoCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ190Z2woaTkxNSk7Cj4+IC3CoMKg wqAgfSBlbHNlIGlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpIHsKPj4gLcKgwqDCoMKgwqDCoMKg IGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2ljbChpOTE1KTsKPj4gLcKgwqDCoCB9IGVsc2Ug aWYgKElTX0NBTk5PTkxBS0UoaTkxNSkpIHsKPj4gLcKgwqDCoMKgwqDCoMKgIGk5MTVfcGVyZl9s b2FkX3Rlc3RfY29uZmlnX2NubChpOTE1KTsKPj4gLcKgwqDCoCB9IGVsc2UgaWYgKElTX0NPRkZF RUxBS0UoaTkxNSkpIHsKPj4gLcKgwqDCoMKgwqDCoMKgIGlmIChJU19DRkxfR1QyKGk5MTUpKQo+ PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jZmxn dDIoaTkxNSk7Cj4+IC3CoMKgwqDCoMKgwqDCoCBpZiAoSVNfQ0ZMX0dUMyhpOTE1KSkKPj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY2ZsZ3QzKGk5 MTUpOwo+PiAtwqDCoMKgIH0gZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShpOTE1KSkgewo+PiAtwqDC oMKgwqDCoMKgwqAgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfZ2xrKGk5MTUpOwo+PiAtwqDC oMKgIH0gZWxzZSBpZiAoSVNfS0FCWUxBS0UoaTkxNSkpIHsKPj4gLcKgwqDCoMKgwqDCoMKgIGlm IChJU19LQkxfR1QyKGk5MTUpKQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpOTE1X3BlcmZf bG9hZF90ZXN0X2NvbmZpZ19rYmxndDIoaTkxNSk7Cj4+IC3CoMKgwqDCoMKgwqDCoCBlbHNlIGlm IChJU19LQkxfR1QzKGk5MTUpKQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpOTE1X3BlcmZf bG9hZF90ZXN0X2NvbmZpZ19rYmxndDMoaTkxNSk7Cj4+IC3CoMKgwqAgfSBlbHNlIGlmIChJU19C Uk9YVE9OKGk5MTUpKSB7Cj4+IC3CoMKgwqDCoMKgwqDCoCBpOTE1X3BlcmZfbG9hZF90ZXN0X2Nv bmZpZ19ieHQoaTkxNSk7Cj4+IC3CoMKgwqAgfSBlbHNlIGlmIChJU19TS1lMQUtFKGk5MTUpKSB7 Cj4+IC3CoMKgwqDCoMKgwqDCoCBpZiAoSVNfU0tMX0dUMihpOTE1KSkKPj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3QyKGk5MTUpOwo+PiAt wqDCoMKgwqDCoMKgwqAgZWxzZSBpZiAoSVNfU0tMX0dUMyhpOTE1KSkKPj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3QzKGk5MTUpOwo+PiAt wqDCoMKgwqDCoMKgwqAgZWxzZSBpZiAoSVNfU0tMX0dUNChpOTE1KSkKPj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3Q0KGk5MTUpOwo+PiAt wqDCoMKgIH0gZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhpOTE1KSkgewo+PiAtwqDCoMKgwqDCoMKg wqAgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY2h2KGk5MTUpOwo+PiAtwqDCoMKgIH0gZWxz ZSBpZiAoSVNfQlJPQURXRUxMKGk5MTUpKSB7Cj4+IC3CoMKgwqDCoMKgwqDCoCBpOTE1X3BlcmZf bG9hZF90ZXN0X2NvbmZpZ19iZHcoaTkxNSk7Cj4+IC3CoMKgwqAgfSBlbHNlIGlmIChJU19IQVNX RUxMKGk5MTUpKSB7Cj4+IC3CoMKgwqDCoMKgwqDCoCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZp Z19oc3coaTkxNSk7Cj4+IC3CoMKgwqAgfQo+PiAtCj4+IC3CoMKgwqAgaWYgKHBlcmYtPnRlc3Rf Y29uZmlnLmlkID09IDApCj4+IC3CoMKgwqDCoMKgwqDCoCBnb3RvIHN5c2ZzX2Vycm9yOwo+PiAt Cj4+IC3CoMKgwqAgcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKHBlcmYtPm1ldHJpY3Nfa29iaiwK Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZwZXJmLT50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWMpOwo+PiAtwqDCoMKgIGlmIChyZXQpCj4+IC3CoMKgwqDCoMKgwqDCoCBnb3Rv IHN5c2ZzX2Vycm9yOwo+Pgo+PiAtwqDCoMKgIHBlcmYtPnRlc3RfY29uZmlnLnBlcmYgPSBwZXJm Owo+PiAtwqDCoMKgIGtyZWZfaW5pdCgmcGVyZi0+dGVzdF9jb25maWcucmVmKTsKPj4gLQo+PiAt wqDCoMKgIGdvdG8gZXhpdDsKPj4gLQo+PiAtc3lzZnNfZXJyb3I6Cj4+IC3CoMKgwqAga29iamVj dF9wdXQocGVyZi0+bWV0cmljc19rb2JqKTsKPj4gLcKgwqDCoCBwZXJmLT5tZXRyaWNzX2tvYmog PSBOVUxMOwo+PiAtCj4+IC1leGl0Ogo+PiDCoMKgwqDCoG11dGV4X3VubG9jaygmcGVyZi0+bG9j ayk7Cj4+IH0KPj4KPj4gQEAgLTM4MDcsOSArMzczMSw2IEBAIHZvaWQgaTkxNV9wZXJmX3VucmVn aXN0ZXIoc3RydWN0IAo+PiBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+PiDCoMKgwqDCoGlmICgh cGVyZi0+bWV0cmljc19rb2JqKQo+PiDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+Cj4+IC3CoMKg wqAgc3lzZnNfcmVtb3ZlX2dyb3VwKHBlcmYtPm1ldHJpY3Nfa29iaiwKPj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgJnBlcmYtPnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYyk7Cj4+IC0K Pj4gwqDCoMKgwqBrb2JqZWN0X3B1dChwZXJmLT5tZXRyaWNzX2tvYmopOwo+PiDCoMKgwqDCoHBl cmYtPm1ldHJpY3Nfa29iaiA9IE5VTEw7Cj4+IH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcGVyZl90eXBlcy5oIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcGVyZl90eXBlcy5oCj4+IGluZGV4IGEwZTIyZjAwZjZjZi4uZjRjY2QyYWRmZWU2IDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmZfdHlwZXMuaAo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmZfdHlwZXMuaAo+PiBAQCAtNDEzLDggKzQx Myw2IEBAIHN0cnVjdCBpOTE1X3BlcmYgewo+PiDCoMKgwqDCoCAqLwo+PiDCoMKgwqDCoHN0cnVj dCByYXRlbGltaXRfc3RhdGUgc3B1cmlvdXNfcmVwb3J0X3JzOwo+Pgo+PiAtwqDCoMKgIHN0cnVj dCBpOTE1X29hX2NvbmZpZyB0ZXN0X2NvbmZpZzsKPj4gLQo+PiDCoMKgwqDCoHUzMiBnZW43X2xh dGNoZWRfb2FzdGF0dXMxOwo+PiDCoMKgwqDCoHUzMiBjdHhfb2FjdHhjdHJsX29mZnNldDsKPj4g wqDCoMKgwqB1MzIgY3R4X2ZsZXhldTBfb2Zmc2V0Owo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9iZHcuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9v YS9pOTE1X29hX2Jkdy5jCj4+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAxNGRh NWMzYjU2OWQuLjAwMDAwMDAwMDAwMAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9p OTE1X29hX2Jkdy5jCj4+ICsrKyAvZGV2L251bGwKPj4gQEAgLTEsOTAgKzAsMCBAQAo+PiAtLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+PiAtLyoKPj4gLSAqIENvcHlyaWdodCDCqSAy MDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZp bGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBO T1QgRURJVCBtYW51YWxseSEKPj4gLSAqLwo+PiAtCj4+IC0jaW5jbHVkZSA8bGludXgvc3lzZnMu aD4KPj4gLQo+PiAtI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4+IC0jaW5jbHVkZSAiaTkxNV9vYV9i ZHcuaCIKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJf Y29uZmlnX3Rlc3Rfb2FbXSA9IHsKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAw MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjcx MCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3NCks IDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4NCksIDB4 MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5NCksIDB4MDAw MGZmY2YgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 MjdhMCksIDB4MDAxMDAwYzIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZm ZTcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0gewo+PiAt fTsKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rl c3Rfb2FbXSA9IHsKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwYTAgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MTk4YjAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4OTg4OCksIDB4MDc4YjAwNjYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MTE4 YjAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MjU4YjAwMDAgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MjE4NTAwMDggfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 OTg4OCksIDB4MGQ4MzQwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MDc4NDQw MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MTc4MDQwMDAgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4OTg4OCksIDB4MjE4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4 OCksIDB4NGY4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NDE4MDAwMDAg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MzE4MDAwMDAgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBzc2l6 ZV90Cj4+IC1zaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsIAo+PiBjaGFyICpidWYpCj4+IC17Cj4+IC3CoMKgwqAgcmV0dXJu IHNwcmludGYoYnVmLCAiMVxuIik7Cj4+IC19Cj4+IC0KPj4gLXZvaWQKPj4gLWk5MTVfcGVyZl9s b2FkX3Rlc3RfY29uZmlnX2JkdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ IC17Cj4+IC3CoMKgwqAgc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAo+ PiAtwqDCoMKgwqDCoMKgwqAgImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1YzA5MDQ0ZSIs Cj4+IC3CoMKgwqDCoMKgwqDCoCBzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVp ZCkpOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKPj4gLQo+ PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZp Z190ZXN0X29hOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdz X2xlbiA9IAo+PiBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4gLcKgwqDC oCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IAo+PiBiX2NvdW50 ZXJfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu Yl9jb3VudGVyX3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0 X29hKTsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVn cyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuZmxleF9yZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rl c3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNf bWV0cmljLm5hbWUgPSAKPj4gImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1YzA5MDQ0ZSI7 Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJz ID0gCj4+IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwo+PiAtCj4+IC3CoMKgwqAg ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAKPj4gJmRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4+ IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIu bW9kZSA9IDA0NDQ7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNf bWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4+IC19Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2Jkdy5oIAo+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L29hL2k5MTVfb2FfYmR3LmgKPj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGlu ZGV4IDBjZWUzMzM0ZjBhNi4uMDAwMDAwMDAwMDAwCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L29hL2k5MTVfb2FfYmR3LmgKPj4gKysrIC9kZXYvbnVsbAo+PiBAQCAtMSwxNiArMCwwIEBA Cj4+IC0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4+IC0vKgo+PiAtICogQ29w eXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+PiAtICoKPj4gLSAqIEF1dG9n ZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AK Pj4gLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQo+PiAtICovCj4+IC0KPj4gLSNpZm5kZWYgX19J OTE1X09BX0JEV19IX18KPj4gLSNkZWZpbmUgX19JOTE1X09BX0JEV19IX18KPj4gLQo+PiAtc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGU7Cj4+IC0KPj4gLXZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9j b25maWdfYmR3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+IC0KPj4gLSNl bmRpZgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9ieHQu YyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2J4dC5jCj4+IGRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAzZTc4NWJhZmNmOTkuLjAwMDAwMDAwMDAwMAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2J4dC5jCj4+ICsrKyAvZGV2L251 bGwKPj4gQEAgLTEsODggKzAsMCBAQAo+PiAtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1J VAo+PiAtLyoKPj4gLSAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24K Pj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0 aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKPj4gLSAqLwo+ PiAtCj4+IC0jaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KPj4gLQo+PiAtI2luY2x1ZGUgImk5MTVf ZHJ2LmgiCj4+IC0jaW5jbHVkZSAiaTkxNV9vYV9ieHQuaCIKPj4gLQo+PiAtc3RhdGljIGNvbnN0 IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKPj4gLcKg wqDCoCB7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 Mjc0NCksIDB4MDA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAw MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjcy MCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3Yyks IDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4YyksIDB4 MDAwMGZmZjcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5YyksIDB4MDAw MGZmZWYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 MjdhOCksIDB4MDAxMDAwMDEgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZm ZTcgfSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxl eF9ldV9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtfTsKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0 cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKPj4gLcKgwqDCoCB7IF9N TUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4 MTk4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MDc4MDAwNjMgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MTE4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4OTg4OCksIDB4MjM4MTAwMDggfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MWQ5 NTA0MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MGY5MjIwMDAgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 OTg4OCksIDB4Mzc5MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NTU5MDAw MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NDc5MDAwMDAgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBz c2l6ZV90Cj4+IC1zaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgKmF0dHIsIAo+PiBjaGFyICpidWYpCj4+IC17Cj4+IC3CoMKgwqAgcmV0 dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Cj4+IC19Cj4+IC0KPj4gLXZvaWQKPj4gLWk5MTVfcGVy Zl9sb2FkX3Rlc3RfY29uZmlnX2J4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4+IC17Cj4+IC3CoMKgwqAgc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlk LAo+PiAtwqDCoMKgwqDCoMKgwqAgIjVlZTcyZjVjLTA5MmYtNDIxZS04YjcwLTIyNWY3YzNlOTYx MiIsCj4+IC3CoMKgwqDCoMKgwqDCoCBzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu dXVpZCkpOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKPj4g LQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2Nv bmZpZ190ZXN0X29hOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9y ZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4gLcKg wqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IAo+PiBiX2Nv dW50ZXJfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190 ZXN0X29hKTsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhf cmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmln X3Rlc3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljLm5hbWUgPSAKPj4gIjVlZTcyZjVjLTA5MmYtNDIxZS04YjcwLTIyNWY3YzNlOTYx MiI7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0 dHJzID0gCj4+IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwo+PiAtCj4+IC3CoMKg wqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAKPj4gJmRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwo+PiAtCj4+IC3CoMKgwqAgZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7 Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0 dHIubW9kZSA9IDA0NDQ7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4+IC19Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2J4dC5oIAo+PiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L29hL2k5MTVfb2FfYnh0LmgKPj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4+ IGluZGV4IDBiZGYzOTEzMjNlYy4uMDAwMDAwMDAwMDAwCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L29hL2k5MTVfb2FfYnh0LmgKPj4gKysrIC9kZXYvbnVsbAo+PiBAQCAtMSwxNiArMCww IEBACj4+IC0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4+IC0vKgo+PiAtICog Q29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+PiAtICoKPj4gLSAqIEF1 dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0 b3AKPj4gLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQo+PiAtICovCj4+IC0KPj4gLSNpZm5kZWYg X19JOTE1X09BX0JYVF9IX18KPj4gLSNkZWZpbmUgX19JOTE1X09BX0JYVF9IX18KPj4gLQo+PiAt c3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Cj4+IC0KPj4gLXZvaWQgaTkxNV9wZXJmX2xvYWRfdGVz dF9jb25maWdfYnh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+IC0KPj4g LSNlbmRpZgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9j ZmxndDIuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0Mi5jCj4+ IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwZWE4NmY3MGEwNmMuLjAwMDAwMDAw MDAwMAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0Mi5jCj4+ ICsrKyAvZGV2L251bGwKPj4gQEAgLTEsODkgKzAsMCBAQAo+PiAtLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IE1JVAo+PiAtLyoKPj4gLSAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwg Q29ycG9yYXRpb24KPj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6 IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBOT1QgRURJVCBtYW51YWxs eSEKPj4gLSAqLwo+PiAtCj4+IC0jaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KPj4gLQo+PiAtI2lu Y2x1ZGUgImk5MTVfZHJ2LmgiCj4+IC0jaW5jbHVkZSAiaTkxNV9vYV9jZmxndDIuaCIKPj4gLQo+ PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rf b2FbXSA9IHsKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 MjcxNCksIDB4ZjA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAw MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3 MCksIDB4MDAwMDAwMDQgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4MCks IDB4MDAwMDAwMDcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5MCksIDB4 MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhMCksIDB4MDAx MDAwYzIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 MjdhYyksIDB4MDAwMGZmZTcgfSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtfTsKPj4gLQo+PiAt c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4OTg4OCksIDB4MTE4MTAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4 MDc4MTAwMTMgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MWY4MTAwMDAgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MTAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4OTg4OCksIDB4MWI5MzAwNDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MDdl NTQwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 OTg4OCksIDB4Mzc5MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAw MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBz c2l6ZV90Cj4+IC1zaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgKmF0dHIsIAo+PiBjaGFyICpidWYpCj4+IC17Cj4+IC3CoMKgwqAgcmV0 dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Cj4+IC19Cj4+IC0KPj4gLXZvaWQKPj4gLWk5MTVfcGVy Zl9sb2FkX3Rlc3RfY29uZmlnX2NmbGd0MihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4+IC17Cj4+IC3CoMKgwqAgc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51 dWlkLAo+PiAtwqDCoMKgwqDCoMKgwqAgIjc0ZmI0OTAyLWQzZDMtNDIzNy05ZTkwLWNiZGM2OGQw YTQ0NiIsCj4+IC3CoMKgwqDCoMKgwqDCoCBzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcudXVpZCkpOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsK Pj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4 X2NvbmZpZ190ZXN0X29hOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11 eF9yZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4g LcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IAo+PiBi X2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZp Z190ZXN0X29hKTsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZs ZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpFKGZsZXhfZXVfY29u ZmlnX3Rlc3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu c3lzZnNfbWV0cmljLm5hbWUgPSAKPj4gIjc0ZmI0OTAyLWQzZDMtNDIzNy05ZTkwLWNiZGM2OGQw YTQ0NiI7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj LmF0dHJzID0gCj4+IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwo+PiAtCj4+IC3C oMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAKPj4gJmRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwo+PiAtCj4+IC3CoMKgwqAg ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJp ZCI7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lk LmF0dHIubW9kZSA9IDA0NDQ7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu c3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4+IC19Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0Mi5oIAo+PiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QyLmgKPj4gZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0Cj4+IGluZGV4IDZiODYyMjgwYWI3OC4uMDAwMDAwMDAwMDAwCj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QyLmgKPj4gKysrIC9kZXYvbnVsbAo+PiBA QCAtMSwxNiArMCwwIEBACj4+IC0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4+ IC0vKgo+PiAtICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+PiAt ICoKPj4gLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIu Y29tL3JpYi9ncHV0b3AKPj4gLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQo+PiAtICovCj4+IC0K Pj4gLSNpZm5kZWYgX19JOTE1X09BX0NGTEdUMl9IX18KPj4gLSNkZWZpbmUgX19JOTE1X09BX0NG TEdUMl9IX18KPj4gLQo+PiAtc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Cj4+IC0KPj4gLXZvaWQg aTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY2ZsZ3QyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl IAo+PiAqZGV2X3ByaXYpOwo+PiAtCj4+IC0jZW5kaWYKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QzLmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvb2EvaTkxNV9vYV9jZmxndDMuYwo+PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5k ZXggZmM2MzJkZDg5MGJmLi4wMDAwMDAwMDAwMDAKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvb2EvaTkxNV9vYV9jZmxndDMuYwo+PiArKysgL2Rldi9udWxsCj4+IEBAIC0xLDg5ICswLDAg QEAKPj4gLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKPj4gLS8qCj4+IC0gKiBDb3B5 cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCj4+IC0gKgo+PiAtICogQXV0b2dl bmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAo+ PiAtICogRE8gTk9UIEVESVQgbWFudWFsbHkhCj4+IC0gKi8KPj4gLQo+PiAtI2luY2x1ZGUgPGxp bnV4L3N5c2ZzLmg+Cj4+IC0KPj4gLSNpbmNsdWRlICJpOTE1X2Rydi5oIgo+PiAtI2luY2x1ZGUg Imk5MTVfb2FfY2ZsZ3QzLmgiCj4+IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9y ZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10gPSB7Cj4+IC3CoMKgwqAgeyBfTU1JTygweDI3 NDApLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAw IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCj4+IC3CoMKgwqAg eyBfTU1JTygweDI3MTApLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3MjQp LCAweGYwODAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0s Cj4+IC3CoMKgwqAgeyBfTU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCj4+IC3CoMKgwqAgeyBf TU1JTygweDI3NzQpLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3NzgpLCAw eDAwMDAwMDAzIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCj4+ IC3CoMKgwqAgeyBfTU1JTygweDI3ODApLCAweDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1J TygweDI3ODQpLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3ODgpLCAweDAw MTAwMDAyIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCj4+IC3C oMKgwqAgeyBfTU1JTygweDI3OTApLCAweDAwMTAwMDAyIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygw eDI3OTQpLCAweDAwMDBmZmNmIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3OTgpLCAweDAwMTAw MDgyIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCj4+IC3CoMKg wqAgeyBfTU1JTygweDI3YTApLCAweDAwMTAwMGMyIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3 YTQpLCAweDAwMDBmZmU3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAx IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCj4+IC19Owo+PiAt Cj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rf b2FbXSA9IHsKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcg bXV4X2NvbmZpZ190ZXN0X29hW10gPSB7Cj4+IC3CoMKgwqAgeyBfTU1JTygweDk4NDApLCAweDAw MDAwMDgwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDExODEwMDAwIH0sCj4+IC3C oMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDA3ODEwMDEzIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygw eDk4ODgpLCAweDFmODEwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDFkODEw MDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDFiOTMwMDQwIH0sCj4+IC3CoMKg wqAgeyBfTU1JTygweDk4ODgpLCAweDA3ZTU0MDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4 ODgpLCAweDFmOTA4MDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDExOTAwMDAw IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCj4+IC3CoMKgwqAg eyBfTU1JTygweDk4ODgpLCAweDUzOTAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgp LCAweDQ1OTAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0s Cj4+IC19Owo+PiAtCj4+IC1zdGF0aWMgc3NpemVfdAo+PiAtc2hvd190ZXN0X29hX2lkKHN0cnVj dCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCAKPj4gY2hhciAq YnVmKQo+PiAtewo+PiAtwqDCoMKgIHJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOwo+PiAtfQo+ PiAtCj4+IC12b2lkCj4+IC1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jZmxndDMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAtewo+PiAtwqDCoMKgIHN0cmxjcHkoZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKPj4gLcKgwqDCoMKgwqDCoMKgICI1NzdlOGUy Yy0zZmEwLTQ4NzUtODc0My0zNTM4ZDU4NWUzYjAiLAo+PiAtwqDCoMKgwqDCoMKgwqAgc2l6ZW9m KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKPj4gLcKgwqDCoCBkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSAKPj4gQVJSQVlfU0laRShtdXhf Y29uZmlnX3Rlc3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuYl9jb3VudGVyX3JlZ3MgPSAKPj4gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwo+PiAtwqDC oMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IAo+PiBB UlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4gLcKgwqDCoCBkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29h Owo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSAK Pj4gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKPj4gLQo+PiAtwqDCoMKgIGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gCj4+ICI1NzdlOGUy Yy0zZmEwLTQ4NzUtODc0My0zNTM4ZDU4NWUzYjAiOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IAo+PiBkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5hdHRyczsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LmF0dHJzWzBdID0gCj4+ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuYXR0cjsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owo+PiAtwqDCoMKgIGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0 X29hX2lkOwo+PiAtfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkx NV9vYV9jZmxndDMuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0 My5oCj4+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCA0Y2E5ZDhmODliMmYuLjAw MDAwMDAwMDAwMAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NmbGd0 My5oCj4+ICsrKyAvZGV2L251bGwKPj4gQEAgLTEsMTYgKzAsMCBAQAo+PiAtLyogU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+PiAtLyoKPj4gLSAqIENvcHlyaWdodCDCqSAyMDE4LTIw MTkgSW50ZWwgQ29ycG9yYXRpb24KPj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkg R1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBOT1QgRURJ VCBtYW51YWxseSEKPj4gLSAqLwo+PiAtCj4+IC0jaWZuZGVmIF9fSTkxNV9PQV9DRkxHVDNfSF9f Cj4+IC0jZGVmaW5lIF9fSTkxNV9PQV9DRkxHVDNfSF9fCj4+IC0KPj4gLXN0cnVjdCBkcm1faTkx NV9wcml2YXRlOwo+PiAtCj4+IC12b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NmbGd0 MyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAKPj4gKmRldl9wcml2KTsKPj4gLQo+PiAtI2VuZGlm Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2Nodi5jIAo+ PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2h2LmMKPj4gZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDZjZDRlOTkyMWE4YS4uMDAwMDAwMDAwMDAwCj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2h2LmMKPj4gKysrIC9kZXYvbnVsbAo+ PiBAQCAtMSw4OSArMCwwIEBACj4+IC0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4+ IC0vKgo+PiAtICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+PiAt ICoKPj4gLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIu Y29tL3JpYi9ncHV0b3AKPj4gLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQo+PiAtICovCj4+IC0K Pj4gLSNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgo+PiAtCj4+IC0jaW5jbHVkZSAiaTkxNV9kcnYu aCIKPj4gLSNpbmNsdWRlICJpOTE1X29hX2Nodi5oIgo+PiAtCj4+IC1zdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtwqDCoMKg IHsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzQ0 KSwgMHgwMDgwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9 LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsg X01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzIwKSwg MHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9LAo+ PiAtwqDCoMKgIHsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01N SU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzdjKSwgMHgw MDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAo+PiAt wqDCoMKgIHsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8o MHgyNzg4KSwgMHgwMDEwMDAwMiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzhjKSwgMHgwMDAw ZmZmNyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAo+PiAtwqDC oMKgIHsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgy Nzk4KSwgMHgwMDEwMDA4MiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZl ZiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAo+PiAtwqDCoMKg IHsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyN2E4 KSwgMHgwMDEwMDAwMSB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9 LAo+PiAtfTsKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1 X2NvbmZpZ190ZXN0X29hW10gPSB7Cj4+IC19Owo+PiAtCj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtwqDCoMKgIHsgX01NSU8o MHg5ODQwKSwgMHgwMDAwMDBhMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHg1OTgw MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHg1OTgwMDAwMSB9LAo+PiAtwqDC oMKgIHsgX01NSU8oMHg5ODg4KSwgMHgzMzhiMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5 ODg4KSwgMHgyNThiMDA2NiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgwNThiMDAw MCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgwMzhiMDAwMCB9LAo+PiAtwqDCoMKg IHsgX01NSU8oMHg5ODg4KSwgMHgwMzg0NDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4 KSwgMHg0NzgwMDA4MCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHg1NzgwMDAwMCB9 LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgxODIzYTQpLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAg eyBfTU1JTygweDk4ODgpLCAweDU5ODAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4NDAp LCAweDAwMDAwMDgwIH0sCj4+IC19Owo+PiAtCj4+IC1zdGF0aWMgc3NpemVfdAo+PiAtc2hvd190 ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICph dHRyLCAKPj4gY2hhciAqYnVmKQo+PiAtewo+PiAtwqDCoMKgIHJldHVybiBzcHJpbnRmKGJ1Ziwg IjFcbiIpOwo+PiAtfQo+PiAtCj4+IC12b2lkCj4+IC1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZp Z19jaHYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAtewo+PiAtwqDCoMKg IHN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKPj4gLcKgwqDCoMKgwqDC oMKgICI0YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBlODgzYWEiLAo+PiAtwqDCoMKgwqDC oMKgwqAgc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKPj4gLcKgwqDC oCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7Cj4+IC0KPj4gLcKgwqDCoCBkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKPj4g LcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSAKPj4gQVJS QVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSAKPj4gYl9jb3VudGVyX2NvbmZpZ190ZXN0 X29hOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdz X2xlbiA9IAo+PiBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4g LcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2Nv bmZpZ190ZXN0X29hOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhf cmVnc19sZW4gPSAKPj4gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKPj4gLQo+ PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0g Cj4+ICI0YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBlODgzYWEiOwo+PiAtwqDCoMKgIGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IAo+PiBkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLmF0dHJzWzBdID0gCj4+ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWNfaWQuYXR0cjsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwo+PiAtwqDCoMKgIGRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owo+ PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93 ID0gc2hvd190ZXN0X29hX2lkOwo+PiAtfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvb2EvaTkxNV9vYV9jaHYuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1 X29hX2Nodi5oCj4+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAzY2FjN2JiYzlj NzEuLjAwMDAwMDAwMDAwMAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29h X2Nodi5oCj4+ICsrKyAvZGV2L251bGwKPj4gQEAgLTEsMTYgKzAsMCBAQAo+PiAtLyogU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+PiAtLyoKPj4gLSAqIENvcHlyaWdodCDCqSAyMDE4 LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUg YnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBOT1Qg RURJVCBtYW51YWxseSEKPj4gLSAqLwo+PiAtCj4+IC0jaWZuZGVmIF9fSTkxNV9PQV9DSFZfSF9f Cj4+IC0jZGVmaW5lIF9fSTkxNV9PQV9DSFZfSF9fCj4+IC0KPj4gLXN0cnVjdCBkcm1faTkxNV9w cml2YXRlOwo+PiAtCj4+IC12b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NodihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiAtCj4+IC0jZW5kaWYKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY25sLmMgCj4+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jbmwuYwo+PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKPj4gaW5kZXggMTA0MWU4OTE0OTkzLi4wMDAwMDAwMDAwMDAKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jbmwuYwo+PiArKysgL2Rldi9udWxsCj4+IEBAIC0xLDEw MSArMCwwIEBACj4+IC0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4+IC0vKgo+PiAt ICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+PiAtICoKPj4gLSAq IEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9n cHV0b3AKPj4gLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQo+PiAtICovCj4+IC0KPj4gLSNpbmNs dWRlIDxsaW51eC9zeXNmcy5oPgo+PiAtCj4+IC0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKPj4gLSNp bmNsdWRlICJpOTE1X29hX2NubC5oIgo+PiAtCj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVf b2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtwqDCoMKgIHsgX01NSU8o MHgyNzQwKSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzEwKSwgMHgwMDAw MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAo+PiAtwqDC oMKgIHsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgy NzI0KSwgMHhmMDgwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAw NCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzc0KSwgMHgwMDAwZmZmZiB9LAo+PiAtwqDCoMKg IHsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzdj KSwgMHgwMDAwZmZmZiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9 LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzg0KSwgMHgwMDAwZmZmZiB9LAo+PiAtwqDCoMKgIHsg X01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzhjKSwg MHgwMDAwZmZmNyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAo+ PiAtwqDCoMKgIHsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAo+PiAtwqDCoMKgIHsgX01N SU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzljKSwgMHgw MDAwZmZlZiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAo+PiAt wqDCoMKgIHsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAo+PiAtwqDCoMKgIHsgX01NSU8o MHgyN2E4KSwgMHgwMDEwMDAwMSB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyN2FjKSwgMHgwMDAw ZmZlNyB9LAo+PiAtfTsKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBm bGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Cj4+IC19Owo+PiAtCj4+IC1zdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtwqDCoMKgIHsg X01NSU8oMHhkMDQpLCAweDAwMDAwMjAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODQpLCAw eDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDE3MDYwMDAwIH0sCj4+ IC3CoMKgwqAgeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1J TygweDk4ODQpLCAweDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDEz MDM0MDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODQpLCAweDAwMDAwMDA3IH0sCj4+IC3C oMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDA3MDYwMDY2IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygw eDk4ODQpLCAweDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDA1MDYw MDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODQpLCAweDAwMDAwMDA3IH0sCj4+IC3CoMKg wqAgeyBfTU1JTygweDk4ODgpLCAweDBmMDgwMDQwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4 ODQpLCAweDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDA3MDkxMDAw IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODQpLCAweDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAg eyBfTU1JTygweDk4ODgpLCAweDBmMDQxMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODQp LCAweDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDFkMDA0MDAwIH0s Cj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODQpLCAweDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBf TU1JTygweDk4ODgpLCAweDM1MDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODQpLCAw eDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDQ5MDAwMDAwIH0sCj4+ IC3CoMKgwqAgeyBfTU1JTygweDk4ODQpLCAweDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1J TygweDk4ODgpLCAweDNkMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODQpLCAweDAw MDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDMxMDAwMDAwIH0sCj4+IC19 Owo+PiAtCj4+IC1zdGF0aWMgc3NpemVfdAo+PiAtc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZp Y2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCAKPj4gY2hhciAqYnVmKQo+ PiAtewo+PiAtwqDCoMKgIHJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOwo+PiAtfQo+PiAtCj4+ IC12b2lkCj4+IC1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jbmwoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+PiAtewo+PiAtwqDCoMKgIHN0cmxjcHkoZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcudXVpZCwKPj4gLcKgwqDCoMKgwqDCoMKgICJkYjQxZWRkNC1kOGU3LTQ3 MzAtYWQxMS1iOWEyZDY4MzM1MDMiLAo+PiAtwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKGRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5pZCA9IDE7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSAKPj4gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rl c3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3Vu dGVyX3JlZ3MgPSAKPj4gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwo+PiAtwqDCoMKgIGRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpF KGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwo+PiAtwqDC oMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSAKPj4gQVJSQVlf U0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gCj4+ICJkYjQxZWRkNC1kOGU3LTQ3 MzAtYWQxMS1iOWEyZDY4MzM1MDMiOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IAo+PiBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5h dHRyczsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBd ID0gCj4+ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsK Pj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19p ZC5hdHRyLm5hbWUgPSAiaWQiOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owo+PiAtwqDCoMKgIGRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwo+ PiAtfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jbmwu aCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NubC5oCj4+IGRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCBkYjM3OWY1ZmNiYjkuLjAwMDAwMDAwMDAwMAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2NubC5oCj4+ICsrKyAvZGV2L251 bGwKPj4gQEAgLTEsMTYgKzAsMCBAQAo+PiAtLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1J VCAqLwo+PiAtLyoKPj4gLSAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRp b24KPj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8v Z2l0aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKPj4gLSAq Lwo+PiAtCj4+IC0jaWZuZGVmIF9fSTkxNV9PQV9DTkxfSF9fCj4+IC0jZGVmaW5lIF9fSTkxNV9P QV9DTkxfSF9fCj4+IC0KPj4gLXN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwo+PiAtCj4+IC12b2lk IGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NubChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwo+PiAtCj4+IC0jZW5kaWYKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L29hL2k5MTVfb2FfZ2xrLmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkx NV9vYV9nbGsuYwo+PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggYmQxNWViZTlh ZWViLi4wMDAwMDAwMDAwMDAKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9v YV9nbGsuYwo+PiArKysgL2Rldi9udWxsCj4+IEBAIC0xLDg4ICswLDAgQEAKPj4gLS8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBNSVQKPj4gLS8qCj4+IC0gKiBDb3B5cmlnaHQgwqkgMjAxOC0y MDE5IEludGVsIENvcnBvcmF0aW9uCj4+IC0gKgo+PiAtICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5 IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAo+PiAtICogRE8gTk9UIEVE SVQgbWFudWFsbHkhCj4+IC0gKi8KPj4gLQo+PiAtI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Cj4+ IC0KPj4gLSNpbmNsdWRlICJpOTE1X2Rydi5oIgo+PiAtI2luY2x1ZGUgImk5MTVfb2FfZ2xrLmgi Cj4+IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZp Z190ZXN0X29hW10gPSB7Cj4+IC3CoMKgwqAgeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0s Cj4+IC3CoMKgwqAgeyBfTU1JTygweDI3NDQpLCAweDAwODAwMDAwIH0sCj4+IC3CoMKgwqAgeyBf TU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3MTApLCAw eDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0sCj4+ IC3CoMKgwqAgeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1J TygweDI3NzApLCAweDAwMDAwMDA0IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3NzQpLCAweDAw MDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCj4+IC3C oMKgwqAgeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygw eDI3ODApLCAweDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3ODQpLCAweDAwMDAw MDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCj4+IC3CoMKg wqAgeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3 OTApLCAweDAwMTAwMDAyIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3OTQpLCAweDAwMDBmZmNm IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCj4+IC3CoMKgwqAg eyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3YTAp LCAweDAwMTAwMGMyIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3IH0s Cj4+IC3CoMKgwqAgeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCj4+IC3CoMKgwqAgeyBf TU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCj4+IC19Owo+PiAtCj4+IC1zdGF0aWMgY29uc3Qg c3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKPj4gLX07Cj4+ IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0X29h W10gPSB7Cj4+IC3CoMKgwqAgeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDgwIH0sCj4+IC3CoMKg wqAgeyBfTU1JTygweDk4ODgpLCAweDE5ODAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4 ODgpLCAweDA3ODAwMDYzIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDExODAwMDAw IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDIzODEwMDA4IH0sCj4+IC3CoMKgwqAg eyBfTU1JTygweDk4ODgpLCAweDFkOTUwNDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgp LCAweDBmOTIyMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAwIH0s Cj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCj4+IC3CoMKgwqAgeyBf TU1JTygweDk4ODgpLCAweDU1OTAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAw eDQ3OTAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCj4+ IC19Owo+PiAtCj4+IC1zdGF0aWMgc3NpemVfdAo+PiAtc2hvd190ZXN0X29hX2lkKHN0cnVjdCBk ZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCAKPj4gY2hhciAqYnVm KQo+PiAtewo+PiAtwqDCoMKgIHJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOwo+PiAtfQo+PiAt Cj4+IC12b2lkCj4+IC1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19nbGsoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAtewo+PiAtwqDCoMKgIHN0cmxjcHkoZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcudXVpZCwKPj4gLcKgwqDCoMKgwqDCoMKgICJkZDNmZDc4OS1lNzgz LTQyMDQtOGNkMC1iNjcxYmJjY2IwY2YiLAo+PiAtwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKGRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5pZCA9IDE7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSAKPj4gQVJSQVlfU0laRShtdXhfY29uZmln X3Rlc3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9j b3VudGVyX3JlZ3MgPSAKPj4gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwo+PiAtwqDCoMKgIGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IAo+PiBBUlJBWV9T SVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwo+PiAt wqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSAKPj4gQVJS QVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gCj4+ICJkZDNmZDc4OS1lNzgz LTQyMDQtOGNkMC1iNjcxYmJjY2IwY2YiOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IAo+PiBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5hdHRyczsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJz WzBdID0gCj4+ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0 cjsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Y19pZC5hdHRyLm5hbWUgPSAiaWQiOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owo+PiAtwqDCoMKgIGRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lk Owo+PiAtfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9n bGsuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2dsay5oCj4+IGRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCA3NzlmMzQzZWZkMTEuLjAwMDAwMDAwMDAwMAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX2dsay5oCj4+ICsrKyAvZGV2 L251bGwKPj4gQEAgLTEsMTYgKzAsMCBAQAo+PiAtLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1JVCAqLwo+PiAtLyoKPj4gLSAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9y YXRpb24KPj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBz Oi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKPj4g LSAqLwo+PiAtCj4+IC0jaWZuZGVmIF9fSTkxNV9PQV9HTEtfSF9fCj4+IC0jZGVmaW5lIF9fSTkx NV9PQV9HTEtfSF9fCj4+IC0KPj4gLXN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwo+PiAtCj4+IC12 b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2dsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwo+PiAtCj4+IC0jZW5kaWYKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L29hL2k5MTVfb2FfaHN3LmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2Ev aTkxNV9vYV9oc3cuYwo+PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMTMzNzIx YTg2MTlmLi4wMDAwMDAwMDAwMDAKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkx NV9vYV9oc3cuYwo+PiArKysgL2Rldi9udWxsCj4+IEBAIC0xLDExOCArMCwwIEBACj4+IC0vLyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4+IC0vKgo+PiAtICogQ29weXJpZ2h0IMKpIDIw MTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+PiAtICoKPj4gLSAqIEF1dG9nZW5lcmF0ZWQgZmls ZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKPj4gLSAqIERPIE5P VCBFRElUIG1hbnVhbGx5IQo+PiAtICovCj4+IC0KPj4gLSNpbmNsdWRlIDxsaW51eC9zeXNmcy5o Pgo+PiAtCj4+IC0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKPj4gLSNpbmNsdWRlICJpOTE1X29hX2hz dy5oIgo+PiAtCj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9j b25maWdfcmVuZGVyX2Jhc2ljW10gPSB7Cj4+IC3CoMKgwqAgeyBfTU1JTygweDI3MjQpLCAweDAw ODAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCj4+IC3C oMKgwqAgeyBfTU1JTygweDI3MTQpLCAweDAwODAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygw eDI3MTApLCAweDAwMDAwMDAwIH0sCj4+IC19Owo+PiAtCj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3JlbmRlcl9iYXNpY1tdID0gewo+PiAtfTsKPj4g LQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3JlbmRlcl9i YXNpY1tdID0gewo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAo+PiAt wqDCoMKgIHsgX01NSU8oMHgyNTNhNCksIDB4MDE2MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4MjU0NDApLCAweDAwMTAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI1MTI4KSwgMHgw MDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNjkxYyksIDB4MDAwMDA4MDAgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4MjZhYTApLCAweDAxNTAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1J TygweDI2YjljKSwgMHgwMDAwNjAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzkxYyksIDB4 MDAwMDA4MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhYTApLCAweDAxNTAwMDAwIH0sCj4+ IC3CoMKgwqAgeyBfTU1JTygweDI3YjljKSwgMHgwMDAwNjAwMCB9LAo+PiAtwqDCoMKgIHsgX01N SU8oMHgyNjQxYyksIDB4MDAwMDA0MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjUzODApLCAw eDAwMDAwMDEwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI1MzhjKSwgMHgwMDAwMDAwMCB9LAo+ PiAtwqDCoMKgIHsgX01NSU8oMHgyNTM4NCksIDB4MDgwMGFhYWEgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4MjU0MDApLCAweDAwMDAwMDA0IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI1NDBjKSwg MHgwNjAyOTAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNTQxMCksIDB4MDAwMDAwMDIgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4MjU0MDQpLCAweDVjMzBmZmZmIH0sCj4+IC3CoMKgwqAgeyBf TU1JTygweDI1MTAwKSwgMHgwMDAwMDAxNiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNTExMCks IDB4MDAwMDA0MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjUxMDQpLCAweDAwMDAwMDAwIH0s Cj4+IC3CoMKgwqAgeyBfTU1JTygweDI2ODA0KSwgMHgwMDAwMTIxMSB9LAo+PiAtwqDCoMKgIHsg X01NSU8oMHgyNjg4NCksIDB4MDAwMDAxMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjY5MDAp LCAweDAwMDAwMDAyIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI2OTA4KSwgMHgwMDcwMDAwMCB9 LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNjkwNCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4MjY5ODQpLCAweDAwMDAxMDIyIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI2YTA0 KSwgMHgwMDAwMDAxMSB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNmE4MCksIDB4MDAwMDAwMDYg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjZhODgpLCAweDAwMDAwYzAyIH0sCj4+IC3CoMKgwqAg eyBfTU1JTygweDI2YTg0KSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNmIw NCksIDB4MDAwMDEwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjZiODApLCAweDAwMDAwMDAy IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI2YjhjKSwgMHgwMDAwMDAwNyB9LAo+PiAtwqDCoMKg IHsgX01NSU8oMHgyNmI4NCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4 MDQpLCAweDAwMDA0ODQ0IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3ODg0KSwgMHgwMDAwMDQw MCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzkwMCksIDB4MDAwMDAwMDIgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4Mjc5MDgpLCAweDBlMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3 OTA0KSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzk4NCksIDB4MDAwMDQw ODggfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhMDQpLCAweDAwMDAwMDQ0IH0sCj4+IC3CoMKg wqAgeyBfTU1JTygweDI3YTgwKSwgMHgwMDAwMDAwNiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgy N2E4OCksIDB4MDAwMTgwNDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhODQpLCAweDAwMDAw MDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3YjA0KSwgMHgwMDAwNDAwMCB9LAo+PiAtwqDC oMKgIHsgX01NSU8oMHgyN2I4MCksIDB4MDAwMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 MjdiOGMpLCAweDAwMDAwMGUwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3Yjg0KSwgMHgwMDAw MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNjEwNCksIDB4MDAwMDIyMjIgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4MjYxODQpLCAweDBjMDA2NjY2IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygw eDI2Mjg0KSwgMHgwNDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNjMwNCksIDB4MDQw MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjY0MDApLCAweDAwMDAwMDAyIH0sCj4+IC3C oMKgwqAgeyBfTU1JTygweDI2NDEwKSwgMHgwMDAwMDBhMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8o MHgyNjQwNCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjU0MjApLCAweDA0 MTA4MDIwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI1NDI0KSwgMHgxMjg0YTQyMCB9LAo+PiAt wqDCoMKgIHsgX01NSU8oMHgyNTQxYyksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4MjU0MjgpLCAweDAwMDQyMDQ5IH0sCj4+IC19Owo+PiAtCj4+IC1zdGF0aWMgc3NpemVfdAo+ PiAtc2hvd19yZW5kZXJfYmFzaWNfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgCj4+ICphdHRyLCBjaGFyICpidWYpCj4+IC17Cj4+IC3CoMKgwqAgcmV0dXJu IHNwcmludGYoYnVmLCAiMVxuIik7Cj4+IC19Cj4+IC0KPj4gLXZvaWQKPj4gLWk5MTVfcGVyZl9s b2FkX3Rlc3RfY29uZmlnX2hzdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ IC17Cj4+IC3CoMKgwqAgc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAo+ PiAtwqDCoMKgwqDCoMKgwqAgIjQwM2Q4ODMyLTFhMjctNGFhNi1hNjRlLWY1Mzg5Y2U3YjIxMiIs Cj4+IC3CoMKgwqDCoMKgwqDCoCBzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVp ZCkpOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKPj4gLQo+ PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZp Z19yZW5kZXJfYmFzaWM7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4 X3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19yZW5kZXJfYmFzaWMpOwo+PiAt Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSAK Pj4gYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWM7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUoYl9jb3Vu dGVyX2NvbmZpZ19yZW5kZXJfYmFzaWMpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljOwo+PiAt wqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSAKPj4gQVJS QVlfU0laRShmbGV4X2V1X2NvbmZpZ19yZW5kZXJfYmFzaWMpOwo+PiAtCj4+IC3CoMKgwqAgZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAKPj4gIjQwM2Q4ODMy LTFhMjctNGFhNi1hNjRlLWY1Mzg5Y2U3YjIxMiI7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gCj4+IGRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmF0dHJzOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu YXR0cnNbMF0gPSAKPj4gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19p ZC5hdHRyOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNf bWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Cj4+IC3CoMKgwqAgZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSAKPj4gc2hvd19y ZW5kZXJfYmFzaWNfaWQ7Cj4+IC19Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9vYS9pOTE1X29hX2hzdy5oIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ff aHN3LmgKPj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IGJhOTdmNzMyZjEzNi4u MDAwMDAwMDAwMDAwCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaHN3 LmgKPj4gKysrIC9kZXYvbnVsbAo+PiBAQCAtMSwxNiArMCwwIEBACj4+IC0vKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogTUlUICovCj4+IC0vKgo+PiAtICogQ29weXJpZ2h0IMKpIDIwMTgtMjAx OSBJbnRlbCBDb3Jwb3JhdGlvbgo+PiAtICoKPj4gLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBH UFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKPj4gLSAqIERPIE5PVCBFRElU IG1hbnVhbGx5IQo+PiAtICovCj4+IC0KPj4gLSNpZm5kZWYgX19JOTE1X09BX0hTV19IX18KPj4g LSNkZWZpbmUgX19JOTE1X09BX0hTV19IX18KPj4gLQo+PiAtc3RydWN0IGRybV9pOTE1X3ByaXZh dGU7Cj4+IC0KPj4gLXZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaHN3KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+IC0KPj4gLSNlbmRpZgo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9pY2wuYyAKPj4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9vYS9pOTE1X29hX2ljbC5jCj4+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+ PiBpbmRleCAyZDkyMDQxYjc1NGYuLjAwMDAwMDAwMDAwMAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9vYS9pOTE1X29hX2ljbC5jCj4+ICsrKyAvZGV2L251bGwKPj4gQEAgLTEsOTggKzAs MCBAQAo+PiAtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+PiAtLyoKPj4gLSAqIENv cHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPj4gLSAqCj4+IC0gKiBBdXRv Z2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9w Cj4+IC0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKPj4gLSAqLwo+PiAtCj4+IC0jaW5jbHVkZSA8 bGludXgvc3lzZnMuaD4KPj4gLQo+PiAtI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4+IC0jaW5jbHVk ZSAiaTkxNV9vYV9pY2wuaCIKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3Jl ZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc0 MCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcyNCks IDB4ZjA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMGZmZmYgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3YyksIDB4 MDAwMGZmZmYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMGZmZmYgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4YyksIDB4MDAw MGZmZjcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 Mjc5OCksIDB4MDAxMDAwODIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZm ZWYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjdh OCksIDB4MDAxMDAwMDEgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcg fSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9l dV9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtfTsKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKPj4gLcKgwqDCoCB7IF9NTUlP KDB4ZDA0KSwgMHgwMDAwMDIwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODQwKSwgMHgwMDAw MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDC oMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxMDA2MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5 ODg4KSwgMHgyMjA2MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxNjA2MDAw MCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgyNDA2MDAwMCB9LAo+PiAtwqDCoMKg IHsgX01NSU8oMHg5ODg4KSwgMHgxODA2MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4 KSwgMHgxYTA2MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxMjA2MDAwMCB9 LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxNDA2MDAwMCB9LAo+PiAtwqDCoMKgIHsg X01NSU8oMHg5ODg4KSwgMHgxMDA2MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwg MHgyMjA2MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg0KSwgMHgwMDAwMDAwMyB9LAo+ PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxNjEzMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01N SU8oMHg5ODg4KSwgMHgyNDAwMDAwMSB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgw ZTEzMDA1NiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxMDEzMDAwMCB9LAo+PiAt wqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxYTEzMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8o MHg5ODg4KSwgMHg1NDFmMDAwMSB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxODFm MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHg0YzFmMDAwMCB9LAo+PiAtwqDC oMKgIHsgX01NSU8oMHg5ODg4KSwgMHgzMDFmMDAwMCB9LAo+PiAtfTsKPj4gLQo+PiAtc3RhdGlj IHNzaXplX3QKPj4gLXNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgCj4+IGNoYXIgKmJ1ZikKPj4gLXsKPj4gLcKgwqDCoCBy ZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKPj4gLX0KPj4gLQo+PiAtdm9pZAo+PiAtaTkxNV9w ZXJmX2xvYWRfdGVzdF9jb25maWdfaWNsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPj4gLXsKPj4gLcKgwqDCoCBzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1 aWQsCj4+IC3CoMKgwqDCoMKgwqDCoCAiYTI5MTY2NWUtMjQ0Yi00Yjc2LTliOWEtMDFkZTlkM2M4 MDY4IiwKPj4gLcKgwqDCoMKgwqDCoMKgIHNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy51dWlkKSk7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwo+ PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhf Y29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4 X3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPj4gLQo+PiAt wqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gCj4+IGJf Y291bnRlcl9jb25maWdfdGVzdF9vYTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSAKPj4gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmln X3Rlc3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxl eF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUoZmxleF9ldV9jb25m aWdfdGVzdF9vYSk7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWMubmFtZSA9IAo+PiAiYTI5MTY2NWUtMjQ0Yi00Yjc2LTliOWEtMDFkZTlkM2M4 MDY4IjsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMu YXR0cnMgPSAKPj4gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7Cj4+IC0KPj4gLcKg wqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9IAo+PiAmZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Cj4+IC0KPj4gLcKgwqDCoCBk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlk IjsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQu YXR0ci5tb2RlID0gMDQ0NDsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKPj4gLX0KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaWNsLmggCj4+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9pY2wuaAo+PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Pj4gaW5kZXggNWM2NDExMmQ3MjBlLi4wMDAwMDAwMDAwMDAKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvb2EvaTkxNV9vYV9pY2wuaAo+PiArKysgL2Rldi9udWxsCj4+IEBAIC0xLDE2ICsw LDAgQEAKPj4gLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KPj4gLS8qCj4+IC0g KiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCj4+IC0gKgo+PiAtICog QXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dw dXRvcAo+PiAtICogRE8gTk9UIEVESVQgbWFudWFsbHkhCj4+IC0gKi8KPj4gLQo+PiAtI2lmbmRl ZiBfX0k5MTVfT0FfSUNMX0hfXwo+PiAtI2RlZmluZSBfX0k5MTVfT0FfSUNMX0hfXwo+PiAtCj4+ IC1zdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKPj4gLQo+PiAtdm9pZCBpOTE1X3BlcmZfbG9hZF90 ZXN0X2NvbmZpZ19pY2woc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gLQo+ PiAtI2VuZGlmCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29h X2tibGd0Mi5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2JsZ3QyLmMK Pj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDFjM2E2N2M5Y2ZlMC4uMDAwMDAw MDAwMDAwCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2JsZ3QyLmMK Pj4gKysrIC9kZXYvbnVsbAo+PiBAQCAtMSw4OSArMCwwIEBACj4+IC0vLyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogTUlUCj4+IC0vKgo+PiAtICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRl bCBDb3Jwb3JhdGlvbgo+PiAtICoKPj4gLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9w IDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKPj4gLSAqIERPIE5PVCBFRElUIG1hbnVh bGx5IQo+PiAtICovCj4+IC0KPj4gLSNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgo+PiAtCj4+IC0j aW5jbHVkZSAiaTkxNV9kcnYuaCIKPj4gLSNpbmNsdWRlICJpOTE1X29hX2tibGd0Mi5oIgo+PiAt Cj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVz dF9vYVtdID0gewo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAo+PiAt wqDCoMKgIHsgX01NSU8oMHgyNzQ0KSwgMHgwMDgwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8o MHgyNzE0KSwgMHhmMDgwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzEwKSwgMHgwMDAw MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAo+PiAtwqDC oMKgIHsgX01NSU8oMHgyNzIwKSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgy NzcwKSwgMHgwMDAwMDAwNCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAw MCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzc4KSwgMHgwMDAwMDAwMyB9LAo+PiAtwqDCoMKg IHsgX01NSU8oMHgyNzdjKSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzgw KSwgMHgwMDAwMDAwNyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9 LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzg4KSwgMHgwMDEwMDAwMiB9LAo+PiAtwqDCoMKgIHsg X01NSU8oMHgyNzhjKSwgMHgwMDAwZmZmNyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzkwKSwg MHgwMDEwMDAwMiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAo+ PiAtwqDCoMKgIHsgX01NSU8oMHgyNzk4KSwgMHgwMDEwMDA4MiB9LAo+PiAtwqDCoMKgIHsgX01N SU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyN2EwKSwgMHgw MDEwMDBjMiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAo+PiAt wqDCoMKgIHsgX01NSU8oMHgyN2E4KSwgMHgwMDEwMDAwMSB9LAo+PiAtwqDCoMKgIHsgX01NSU8o MHgyN2FjKSwgMHgwMDAwZmZlNyB9LAo+PiAtfTsKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVj dCBpOTE1X29hX3JlZyBmbGV4X2V1X2NvbmZpZ190ZXN0X29hW10gPSB7Cj4+IC19Owo+PiAtCj4+ IC1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0g ewo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODQwKSwgMHgwMDAwMDA4MCB9LAo+PiAtwqDCoMKgIHsg X01NSU8oMHg5ODg4KSwgMHgxMTgxMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwg MHgwNzgxMDAxMyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxZjgxMDAwMCB9LAo+ PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxZDgxMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01N SU8oMHg5ODg4KSwgMHgxYjkzMDA0MCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgw N2U1NDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9LAo+PiAt wqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxMTkwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8o MHg5ODg4KSwgMHgzNzkwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHg1Mzkw MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAo+PiAtwqDC oMKgIHsgX01NSU8oMHg5ODg4KSwgMHgzMzkwMDAwMCB9LAo+PiAtfTsKPj4gLQo+PiAtc3RhdGlj IHNzaXplX3QKPj4gLXNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgCj4+IGNoYXIgKmJ1ZikKPj4gLXsKPj4gLcKgwqDCoCBy ZXR1cm4gc3ByaW50ZihidWYsICIxXG4iKTsKPj4gLX0KPj4gLQo+PiAtdm9pZAo+PiAtaTkxNV9w ZXJmX2xvYWRfdGVzdF9jb25maWdfa2JsZ3QyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPj4gLXsKPj4gLcKgwqDCoCBzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LnV1aWQsCj4+IC3CoMKgwqDCoMKgwqDCoCAiYmFhM2M3ZTQtNTJiNi00Yjg1LTgwMWUtNDY1YTk0 Yjc0NmRkIiwKPj4gLcKgwqDCoMKgwqDCoMKgIHNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy51dWlkKSk7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAx Owo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBt dXhfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu bXV4X3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPj4gLQo+ PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gCj4+ IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSAKPj4gQVJSQVlfU0laRShiX2NvdW50ZXJfY29u ZmlnX3Rlc3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu ZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUoZmxleF9ldV9j b25maWdfdGVzdF9vYSk7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWMubmFtZSA9IAo+PiAiYmFhM2M3ZTQtNTJiNi00Yjg1LTgwMWUtNDY1YTk0 Yjc0NmRkIjsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWMuYXR0cnMgPSAKPj4gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7Cj4+IC0KPj4g LcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9IAo+PiAmZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Cj4+IC0KPj4gLcKgwqDC oCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0g ImlkIjsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuYXR0ci5tb2RlID0gMDQ0NDsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKPj4gLX0KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2JsZ3QyLmggCj4+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9rYmxndDIuaAo+PiBkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKPj4gaW5kZXggODEwNTMyZmE2YjYzLi4wMDAwMDAwMDAwMDAKPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9rYmxndDIuaAo+PiArKysgL2Rldi9udWxsCj4+ IEBAIC0xLDE2ICswLDAgQEAKPj4gLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8K Pj4gLS8qCj4+IC0gKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCj4+ IC0gKgo+PiAtICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1 Yi5jb20vcmliL2dwdXRvcAo+PiAtICogRE8gTk9UIEVESVQgbWFudWFsbHkhCj4+IC0gKi8KPj4g LQo+PiAtI2lmbmRlZiBfX0k5MTVfT0FfS0JMR1QyX0hfXwo+PiAtI2RlZmluZSBfX0k5MTVfT0Ff S0JMR1QyX0hfXwo+PiAtCj4+IC1zdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKPj4gLQo+PiAtdm9p ZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19rYmxndDIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgCj4+ICpkZXZfcHJpdik7Cj4+IC0KPj4gLSNlbmRpZgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9rYmxndDMuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9vYS9pOTE1X29hX2tibGd0My5jCj4+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+PiBp bmRleCBlYmJlNWE5YzlmZGMuLjAwMDAwMDAwMDAwMAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9vYS9pOTE1X29hX2tibGd0My5jCj4+ICsrKyAvZGV2L251bGwKPj4gQEAgLTEsODkgKzAs MCBAQAo+PiAtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+PiAtLyoKPj4gLSAqIENv cHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPj4gLSAqCj4+IC0gKiBBdXRv Z2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9w Cj4+IC0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKPj4gLSAqLwo+PiAtCj4+IC0jaW5jbHVkZSA8 bGludXgvc3lzZnMuaD4KPj4gLQo+PiAtI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4+IC0jaW5jbHVk ZSAiaTkxNV9vYV9rYmxndDMuaCIKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29h X3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 Mjc0MCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAw MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4MjcxMCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjcy NCksIDB4ZjA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3MCksIDB4MDAwMDAwMDQgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3OCks IDB4MDAwMDAwMDMgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4MCksIDB4MDAwMDAwMDcgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4OCksIDB4 MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4Mjc5MCksIDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5OCksIDB4MDAx MDAwODIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4MjdhMCksIDB4MDAxMDAwYzIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 MjdhNCksIDB4MDAwMGZmZTcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAw MDEgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKPj4gLX07Cj4+ IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVz dF9vYVtdID0gewo+PiAtfTsKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3Jl ZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg0MCksIDB4 MDAwMDAwODAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MTE4MTAwMDAgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MDc4MTAwMTMgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4OTg4OCksIDB4MWY4MTAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MWQ4 MTAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MWI5MzAwNDAgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MDdlNTQwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 OTg4OCksIDB4MWY5MDgwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAw MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4OTg4OCksIDB4NTM5MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4 OCksIDB4NDU5MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAg fSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBzc2l6ZV90Cj4+IC1zaG93X3Rlc3Rfb2FfaWQoc3Ry dWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIAo+PiBjaGFy ICpidWYpCj4+IC17Cj4+IC3CoMKgwqAgcmV0dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Cj4+IC19 Cj4+IC0KPj4gLXZvaWQKPj4gLWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2tibGd0MyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+IC17Cj4+IC3CoMKgwqAgc3RybGNweShk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAo+PiAtwqDCoMKgwqDCoMKgwqAgImYxNzky ZjMyLTZkYjItNGI1MC1iNGIyLTU1NzEyOGYxNjg4ZCIsCj4+IC3CoMKgwqDCoMKgwqDCoCBzaXpl b2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOwo+PiAtwqDCoMKgIGRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwo+PiAtwqDCoMKgIGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpFKG11 eF9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5iX2NvdW50ZXJfcmVncyA9IAo+PiBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3C oMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gCj4+ IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKPj4gLQo+PiAtwqDCoMKgIGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rf b2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9 IAo+PiBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAg ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAKPj4gImYxNzky ZjMyLTZkYjItNGI1MC1iNGIyLTU1NzEyOGYxNjg4ZCI7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gCj4+IGRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLmF0dHJzOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuYXR0cnNbMF0gPSAKPj4gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Y19pZC5hdHRyOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Cj4+IC3CoMKgwqAg ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rl c3Rfb2FfaWQ7Cj4+IC19Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9p OTE1X29hX2tibGd0My5oIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2Js Z3QzLmgKPj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDEzZDcwNDU2ZmFiZC4u MDAwMDAwMDAwMDAwCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2Js Z3QzLmgKPj4gKysrIC9kZXYvbnVsbAo+PiBAQCAtMSwxNiArMCwwIEBACj4+IC0vKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4+IC0vKgo+PiAtICogQ29weXJpZ2h0IMKpIDIwMTgt MjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+PiAtICoKPj4gLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBi eSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3JpYi9ncHV0b3AKPj4gLSAqIERPIE5PVCBF RElUIG1hbnVhbGx5IQo+PiAtICovCj4+IC0KPj4gLSNpZm5kZWYgX19JOTE1X09BX0tCTEdUM19I X18KPj4gLSNkZWZpbmUgX19JOTE1X09BX0tCTEdUM19IX18KPj4gLQo+PiAtc3RydWN0IGRybV9p OTE1X3ByaXZhdGU7Cj4+IC0KPj4gLXZvaWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfa2Js Z3QzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIAo+PiAqZGV2X3ByaXYpOwo+PiAtCj4+IC0jZW5k aWYKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3Qy LmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDIuYwo+PiBkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMWJjMzU5ZWQzNGU4Li4wMDAwMDAwMDAwMDAK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDIuYwo+PiArKysg L2Rldi9udWxsCj4+IEBAIC0xLDg4ICswLDAgQEAKPj4gLS8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBNSVQKPj4gLS8qCj4+IC0gKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDE5IEludGVsIENvcnBv cmF0aW9uCj4+IC0gKgo+PiAtICogQXV0b2dlbmVyYXRlZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRw czovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAo+PiAtICogRE8gTk9UIEVESVQgbWFudWFsbHkhCj4+ IC0gKi8KPj4gLQo+PiAtI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Cj4+IC0KPj4gLSNpbmNsdWRl ICJpOTE1X2Rydi5oIgo+PiAtI2luY2x1ZGUgImk5MTVfb2Ffc2tsZ3QyLmgiCj4+IC0KPj4gLXN0 YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hW10g PSB7Cj4+IC3CoMKgwqAgeyBfTU1JTygweDI3NDApLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAg eyBfTU1JTygweDI3MTQpLCAweGYwODAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3MTAp LCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3MjQpLCAweGYwODAwMDAwIH0s Cj4+IC3CoMKgwqAgeyBfTU1JTygweDI3MjApLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBf TU1JTygweDI3NzApLCAweDAwMDAwMDA0IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3NzQpLCAw eDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3NzgpLCAweDAwMDAwMDAzIH0sCj4+ IC3CoMKgwqAgeyBfTU1JTygweDI3N2MpLCAweDAwMDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1J TygweDI3ODApLCAweDAwMDAwMDA3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3ODQpLCAweDAw MDAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3ODgpLCAweDAwMTAwMDAyIH0sCj4+IC3C oMKgwqAgeyBfTU1JTygweDI3OGMpLCAweDAwMDBmZmY3IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygw eDI3OTApLCAweDAwMTAwMDAyIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3OTQpLCAweDAwMDBm ZmNmIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3OTgpLCAweDAwMTAwMDgyIH0sCj4+IC3CoMKg wqAgeyBfTU1JTygweDI3OWMpLCAweDAwMDBmZmVmIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3 YTApLCAweDAwMTAwMGMyIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3YTQpLCAweDAwMDBmZmU3 IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDI3YTgpLCAweDAwMTAwMDAxIH0sCj4+IC3CoMKgwqAg eyBfTU1JTygweDI3YWMpLCAweDAwMDBmZmU3IH0sCj4+IC19Owo+PiAtCj4+IC1zdGF0aWMgY29u c3Qgc3RydWN0IGk5MTVfb2FfcmVnIGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2FbXSA9IHsKPj4gLX07 Cj4+IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9yZWcgbXV4X2NvbmZpZ190ZXN0 X29hW10gPSB7Cj4+IC3CoMKgwqAgeyBfTU1JTygweDk4NDApLCAweDAwMDAwMDgwIH0sCj4+IC3C oMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDExODEwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygw eDk4ODgpLCAweDA3ODEwMDE2IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDFmODEw MDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDFkODEwMDAwIH0sCj4+IC3CoMKg wqAgeyBfTU1JTygweDk4ODgpLCAweDFiOTMwMDQwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4 ODgpLCAweDA3ZTU0MDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDFmOTA4MDAw IH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDExOTAwMDAwIH0sCj4+IC3CoMKgwqAg eyBfTU1JTygweDk4ODgpLCAweDM3OTAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgp LCAweDUzOTAwMDAwIH0sCj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDQ1OTAwMDAwIH0s Cj4+IC3CoMKgwqAgeyBfTU1JTygweDk4ODgpLCAweDMzOTAwMDAwIH0sCj4+IC19Owo+PiAtCj4+ IC1zdGF0aWMgc3NpemVfdAo+PiAtc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYs IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCAKPj4gY2hhciAqYnVmKQo+PiAtewo+PiAt wqDCoMKgIHJldHVybiBzcHJpbnRmKGJ1ZiwgIjFcbiIpOwo+PiAtfQo+PiAtCj4+IC12b2lkCj4+ IC1pOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19za2xndDIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+PiAtewo+PiAtwqDCoMKgIHN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcudXVpZCwKPj4gLcKgwqDCoMKgwqDCoMKgICIxNjUxOTQ5Zi0wYWMwLTRjYjEtYTA2 Zi1kYWZkNzRhNDA3ZDEiLAo+PiAtwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKGRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnV1aWQpKTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5pZCA9IDE7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhf cmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5tdXhfcmVnc19sZW4gPSAKPj4gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2Ep Owo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3Jl Z3MgPSAKPj4gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwo+PiAtwqDCoMKgIGRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwo+PiAtwqDCoMKgIGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSAKPj4gQVJSQVlfU0laRShm bGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gCj4+ICIxNjUxOTQ5Zi0wYWMwLTRjYjEtYTA2 Zi1kYWZkNzRhNDA3ZDEiOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpYy5hdHRycyA9IAo+PiBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsK Pj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gCj4+ ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKPj4gLQo+ PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRy Lm5hbWUgPSAiaWQiOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwo+PiAtfQo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDIuaCAK Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0Mi5oCj4+IGRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCBmZGE3MGM1MWE2ZWMuLjAwMDAwMDAwMDAwMAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0Mi5oCj4+ICsrKyAvZGV2 L251bGwKPj4gQEAgLTEsMTYgKzAsMCBAQAo+PiAtLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1JVCAqLwo+PiAtLyoKPj4gLSAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50ZWwgQ29ycG9y YXRpb24KPj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRvcCA6IGh0dHBz Oi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBOT1QgRURJVCBtYW51YWxseSEKPj4g LSAqLwo+PiAtCj4+IC0jaWZuZGVmIF9fSTkxNV9PQV9TS0xHVDJfSF9fCj4+IC0jZGVmaW5lIF9f STkxNV9PQV9TS0xHVDJfSF9fCj4+IC0KPj4gLXN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwo+PiAt Cj4+IC12b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX3NrbGd0MihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAKPj4gKmRldl9wcml2KTsKPj4gLQo+PiAtI2VuZGlmCj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0My5jIAo+PiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3QzLmMKPj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0Cj4+IGluZGV4IDZlMzUyZjg4MTMxMC4uMDAwMDAwMDAwMDAwCj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3QzLmMKPj4gKysrIC9kZXYvbnVsbAo+PiBAQCAt MSw4OSArMCwwIEBACj4+IC0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4+IC0vKgo+ PiAtICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+PiAtICoKPj4g LSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRodWIuY29tL3Jp Yi9ncHV0b3AKPj4gLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQo+PiAtICovCj4+IC0KPj4gLSNp bmNsdWRlIDxsaW51eC9zeXNmcy5oPgo+PiAtCj4+IC0jaW5jbHVkZSAiaTkxNV9kcnYuaCIKPj4g LSNpbmNsdWRlICJpOTE1X29hX3NrbGd0My5oIgo+PiAtCj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfb2FfcmVnIGJfY291bnRlcl9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtwqDCoMKgIHsg X01NSU8oMHgyNzQwKSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzQ0KSwg MHgwMDgwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzE0KSwgMHhmMDgwMDAwMCB9LAo+ PiAtwqDCoMKgIHsgX01NSU8oMHgyNzEwKSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01N SU8oMHgyNzI0KSwgMHhmMDgwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzIwKSwgMHgw MDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzcwKSwgMHgwMDAwMDAwNCB9LAo+PiAt wqDCoMKgIHsgX01NSU8oMHgyNzc0KSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8o MHgyNzc4KSwgMHgwMDAwMDAwMyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzdjKSwgMHgwMDAw MDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzgwKSwgMHgwMDAwMDAwNyB9LAo+PiAtwqDC oMKgIHsgX01NSU8oMHgyNzg0KSwgMHgwMDAwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgy Nzg4KSwgMHgwMDEwMDAwMiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzhjKSwgMHgwMDAwZmZm NyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzkwKSwgMHgwMDEwMDAwMiB9LAo+PiAtwqDCoMKg IHsgX01NSU8oMHgyNzk0KSwgMHgwMDAwZmZjZiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzk4 KSwgMHgwMDEwMDA4MiB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyNzljKSwgMHgwMDAwZmZlZiB9 LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyN2EwKSwgMHgwMDEwMDBjMiB9LAo+PiAtwqDCoMKgIHsg X01NSU8oMHgyN2E0KSwgMHgwMDAwZmZlNyB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyN2E4KSwg MHgwMDEwMDAwMSB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHgyN2FjKSwgMHgwMDAwZmZlNyB9LAo+ PiAtfTsKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBmbGV4X2V1X2Nv bmZpZ190ZXN0X29hW10gPSB7Cj4+IC19Owo+PiAtCj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGk5 MTVfb2FfcmVnIG11eF9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtwqDCoMKgIHsgX01NSU8oMHg5 ODQwKSwgMHgwMDAwMDA4MCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxMTgxMDAw MCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgwNzgxMDAxMyB9LAo+PiAtwqDCoMKg IHsgX01NSU8oMHg5ODg4KSwgMHgxZjgxMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4 KSwgMHgxZDgxMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgxYjkzMDA0MCB9 LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgwN2U1NDAwMCB9LAo+PiAtwqDCoMKgIHsg X01NSU8oMHg5ODg4KSwgMHgxZjkwODAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwg MHgxMTkwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgzNzkwMDAwMCB9LAo+ PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHg1MzkwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01N SU8oMHg5ODg4KSwgMHg0NTkwMDAwMCB9LAo+PiAtwqDCoMKgIHsgX01NSU8oMHg5ODg4KSwgMHgz MzkwMDAwMCB9LAo+PiAtfTsKPj4gLQo+PiAtc3RhdGljIHNzaXplX3QKPj4gLXNob3dfdGVzdF9v YV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwg Cj4+IGNoYXIgKmJ1ZikKPj4gLXsKPj4gLcKgwqDCoCByZXR1cm4gc3ByaW50ZihidWYsICIxXG4i KTsKPj4gLX0KPj4gLQo+PiAtdm9pZAo+PiAtaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2ts Z3QzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gLXsKPj4gLcKgwqDCoCBz dHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCj4+IC3CoMKgwqDCoMKgwqDC oCAiMmI5ODU4MDMtZDNjOS00NjI5LThhNGYtNjM0YmZlY2JhMGU4IiwKPj4gLcKgwqDCoMKgwqDC oMKgIHNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7Cj4+IC3CoMKgwqAg ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3C oMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gCj4+IEFSUkFZ X1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gCj4+IGJfY291bnRlcl9jb25maWdfdGVzdF9v YTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19s ZW4gPSAKPj4gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwo+PiAtCj4+IC3C oMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25m aWdfdGVzdF9vYTsKPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3Jl Z3NfbGVuID0gCj4+IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4g LcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9IAo+ PiAiMmI5ODU4MDMtZDNjOS00NjI5LThhNGYtNjM0YmZlY2JhMGU4IjsKPj4gLcKgwqDCoCBkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSAKPj4gZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuYXR0cnM7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5hdHRyc1swXSA9IAo+PiAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLmF0dHI7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKPj4gLcKgwqDCoCBkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKPj4g LcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9 IHNob3dfdGVzdF9vYV9pZDsKPj4gLX0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L29hL2k5MTVfb2Ffc2tsZ3QzLmggCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkx NV9vYV9za2xndDMuaAo+PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggZGY3NGVi YTU3OTllLi4wMDAwMDAwMDAwMDAKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkx NV9vYV9za2xndDMuaAo+PiArKysgL2Rldi9udWxsCj4+IEBAIC0xLDE2ICswLDAgQEAKPj4gLS8q IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KPj4gLS8qCj4+IC0gKiBDb3B5cmlnaHQg wqkgMjAxOC0yMDE5IEludGVsIENvcnBvcmF0aW9uCj4+IC0gKgo+PiAtICogQXV0b2dlbmVyYXRl ZCBmaWxlIGJ5IEdQVSBUb3AgOiBodHRwczovL2dpdGh1Yi5jb20vcmliL2dwdXRvcAo+PiAtICog RE8gTk9UIEVESVQgbWFudWFsbHkhCj4+IC0gKi8KPj4gLQo+PiAtI2lmbmRlZiBfX0k5MTVfT0Ff U0tMR1QzX0hfXwo+PiAtI2RlZmluZSBfX0k5MTVfT0FfU0tMR1QzX0hfXwo+PiAtCj4+IC1zdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKPj4gLQo+PiAtdm9pZCBpOTE1X3BlcmZfbG9hZF90ZXN0X2Nv bmZpZ19za2xndDMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgCj4+ICpkZXZfcHJpdik7Cj4+IC0K Pj4gLSNlbmRpZgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9v YV9za2xndDQuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0NC5j Cj4+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCA4ZjM0NTExNWEzMDYuLjAwMDAw MDAwMDAwMAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0NC5j Cj4+ICsrKyAvZGV2L251bGwKPj4gQEAgLTEsODkgKzAsMCBAQAo+PiAtLy8gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IE1JVAo+PiAtLyoKPj4gLSAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgSW50 ZWwgQ29ycG9yYXRpb24KPj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUgYnkgR1BVIFRv cCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBOT1QgRURJVCBtYW51 YWxseSEKPj4gLSAqLwo+PiAtCj4+IC0jaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KPj4gLQo+PiAt I2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4+IC0jaW5jbHVkZSAiaTkxNV9vYV9za2xndDQuaCIKPj4g LQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJfY29uZmlnX3Rl c3Rfb2FbXSA9IHsKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc0MCksIDB4MDAwMDAwMDAgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4Mjc0NCksIDB4MDA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4MjcxNCksIDB4ZjA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcxMCksIDB4MDAw MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjcyNCksIDB4ZjA4MDAwMDAgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4MjcyMCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 Mjc3MCksIDB4MDAwMDAwMDQgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3NCksIDB4MDAwMDAw MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc3OCksIDB4MDAwMDAwMDMgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4Mjc3YyksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4 MCksIDB4MDAwMDAwMDcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4NCksIDB4MDAwMDAwMDAg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc4OCksIDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4Mjc4YyksIDB4MDAwMGZmZjcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5MCks IDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5NCksIDB4MDAwMGZmY2YgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4Mjc5OCksIDB4MDAxMDAwODIgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4Mjc5YyksIDB4MDAwMGZmZWYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhMCksIDB4 MDAxMDAwYzIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4MjdhNCksIDB4MDAwMGZmZTcgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4MjdhOCksIDB4MDAxMDAwMDEgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4MjdhYyksIDB4MDAwMGZmZTcgfSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgaTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtfTsKPj4gLQo+ PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9 IHsKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg0MCksIDB4MDAwMDAwODAgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4OTg4OCksIDB4MTE4MTAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCks IDB4MDc4MTAwMTMgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MWY4MTAwMDAgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MWQ4MTAwMDAgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4OTg4OCksIDB4MWI5MzAwNDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4 MDdlNTQwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MWY5MDgwMDAgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MTE5MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4OTg4OCksIDB4Mzc5MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NTM5 MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NDU5MDAwMDAgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MzM5MDAwMDAgfSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRp YyBzc2l6ZV90Cj4+IC1zaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIAo+PiBjaGFyICpidWYpCj4+IC17Cj4+IC3CoMKgwqAg cmV0dXJuIHNwcmludGYoYnVmLCAiMVxuIik7Cj4+IC19Cj4+IC0KPj4gLXZvaWQKPj4gLWk5MTVf cGVyZl9sb2FkX3Rlc3RfY29uZmlnX3NrbGd0NChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4+IC17Cj4+IC3CoMKgwqAgc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy51dWlkLAo+PiAtwqDCoMKgwqDCoMKgwqAgIjg4MmZhNDMzLTFmNGEtNGE2Ny1hOTYyLWM3NDE4 ODhmZTVmNSIsCj4+IC3CoMKgwqDCoMKgwqDCoCBzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcudXVpZCkpOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0g MTsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0g bXV4X2NvbmZpZ190ZXN0X29hOwo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln Lm11eF9yZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7Cj4+IC0K Pj4gLcKgwqDCoCBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IAo+ PiBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUoYl9jb3VudGVyX2Nv bmZpZ190ZXN0X29hKTsKPj4gLQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpFKGZsZXhfZXVf Y29uZmlnX3Rlc3Rfb2EpOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljLm5hbWUgPSAKPj4gIjg4MmZhNDMzLTFmNGEtNGE2Ny1hOTYyLWM3NDE4 ODhmZTVmNSI7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljLmF0dHJzID0gCj4+IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwo+PiAtCj4+ IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAKPj4gJmRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwo+PiAtCj4+IC3CoMKg wqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9 ICJpZCI7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIubW9kZSA9IDA0NDQ7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4+IC19Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9vYS9pOTE1X29hX3NrbGd0NC5oIAo+PiBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3Q0LmgKPj4gZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0Cj4+IGluZGV4IDM3OGFiN2FiNzhkNS4uMDAwMDAwMDAwMDAwCj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3Q0LmgKPj4gKysrIC9kZXYvbnVsbAo+ PiBAQCAtMSwxNiArMCwwIEBACj4+IC0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICov Cj4+IC0vKgo+PiAtICogQ29weXJpZ2h0IMKpIDIwMTgtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+ PiAtICoKPj4gLSAqIEF1dG9nZW5lcmF0ZWQgZmlsZSBieSBHUFUgVG9wIDogaHR0cHM6Ly9naXRo dWIuY29tL3JpYi9ncHV0b3AKPj4gLSAqIERPIE5PVCBFRElUIG1hbnVhbGx5IQo+PiAtICovCj4+ IC0KPj4gLSNpZm5kZWYgX19JOTE1X09BX1NLTEdUNF9IX18KPj4gLSNkZWZpbmUgX19JOTE1X09B X1NLTEdUNF9IX18KPj4gLQo+PiAtc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Cj4+IC0KPj4gLXZv aWQgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3Q0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlIAo+PiAqZGV2X3ByaXYpOwo+PiAtCj4+IC0jZW5kaWYKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfdGdsLmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvb2EvaTkxNV9vYV90Z2wuYwo+PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXgg YTI5ZDkzNzA3MzQ1Li4wMDAwMDAwMDAwMDAKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv b2EvaTkxNV9vYV90Z2wuYwo+PiArKysgL2Rldi9udWxsCj4+IEBAIC0xLDEyMSArMCwwIEBACj4+ IC0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4+IC0vKgo+PiAtICogQ29weXJpZ2h0 IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KPj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZp bGUgYnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBO T1QgRURJVCBtYW51YWxseSEKPj4gLSAqLwo+PiAtCj4+IC0jaW5jbHVkZSA8bGludXgvc3lzZnMu aD4KPj4gLQo+PiAtI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4+IC0jaW5jbHVkZSAiaTkxNV9vYV90 Z2wuaCIKPj4gLQo+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBiX2NvdW50ZXJf Y29uZmlnX3Rlc3Rfb2FbXSA9IHsKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDkyMCksIDB4MDAwMDAw MDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDkwMCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4RDkwNCksIDB4RjA4MDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDkx MCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDkxNCksIDB4RjA4MDAwMDAg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4REM0MCksIDB4MDBGRjAwMDAgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4RDk0MCksIDB4MDAwMDAwMDQgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk0NCks IDB4MDAwMEZGRkYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4REMwMCksIDB4MDAwMDAwMDQgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4REMwNCksIDB4MDAwMEZGRkYgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4RDk0OCksIDB4MDAwMDAwMDMgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk0QyksIDB4 MDAwMEZGRkYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4REMwOCksIDB4MDAwMDAwMDMgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4REMwQyksIDB4MDAwMEZGRkYgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4RDk1MCksIDB4MDAwMDAwMDcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk1NCksIDB4MDAw MEZGRkYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4REMxMCksIDB4MDAwMDAwMDcgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4REMxNCksIDB4MDAwMEZGRkYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 RDk1OCksIDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk1QyksIDB4MDAwMEZG RjcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4REMxOCksIDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4REMxQyksIDB4MDAwMEZGRjcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk2 MCksIDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk2NCksIDB4MDAwMEZGQ0Yg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4REMyMCksIDB4MDAxMDAwMDIgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4REMyNCksIDB4MDAwMEZGQ0YgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk2OCks IDB4MDAxMDAwODIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk2QyksIDB4MDAwMEZGRUYgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4REMyOCksIDB4MDAxMDAwODIgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4REMyQyksIDB4MDAwMEZGRUYgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk3MCksIDB4 MDAxMDAwQzIgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk3NCksIDB4MDAwMEZGRTcgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4REMzMCksIDB4MDAxMDAwQzIgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4REMzNCksIDB4MDAwMEZGRTcgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk3OCksIDB4MDAx MDAwMDEgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4RDk3QyksIDB4MDAwMEZGRTcgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4REMzOCksIDB4MDAxMDAwMDEgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 REMzQyksIDB4MDAwMEZGRTcgfSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg aTkxNV9vYV9yZWcgZmxleF9ldV9jb25maWdfdGVzdF9vYVtdID0gewo+PiAtfTsKPj4gLQo+PiAt c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X29hX3JlZyBtdXhfY29uZmlnX3Rlc3Rfb2FbXSA9IHsK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4MEQwNCksIDB4MDAwMDAyMDAgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4OTg0MCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4NCksIDB4 MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MjgwRTAwMDAgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MUUwRTAxNDcgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4OTg4OCksIDB4MTgwRTAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MTYw RTAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MUUwRjEwMDAgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MUUxMDQwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 OTg4OCksIDB4MkUwMjAxMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MkMwMzAw MDQgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MzgwMDMwMDAgfSwKPj4gLcKgwqDC oCB7IF9NTUlPKDB4OTg4OCksIDB4MUUwQTgwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4 NCksIDB4MDAwMDAwMDMgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NDkxMTAwMDAg fSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NUQxMDE0MDAgfSwKPj4gLcKgwqDCoCB7 IF9NTUlPKDB4OTg4OCksIDB4MUQxNDAwMjAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCks IDB4MUQxMTAzQTMgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4MDExMTAwMDAgfSwK Pj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NjExMTEwMDAgfSwKPj4gLcKgwqDCoCB7IF9N TUlPKDB4OTg4OCksIDB4MUYxMjgwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4 MTcxMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NTUxMDA2MzAgfSwKPj4g LcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NTcxMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlP KDB4OTg4OCksIDB4MzExMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4NCksIDB4MDAw MDAwMDMgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4OTg4OCksIDB4NjUxMDAwMDIgfSwKPj4gLcKg wqDCoCB7IF9NTUlPKDB4OTg4NCksIDB4MDAwMDAwMDAgfSwKPj4gLcKgwqDCoCB7IF9NTUlPKDB4 OTg4OCksIDB4NDIwMDAwMDEgfSwKPj4gLX07Cj4+IC0KPj4gLXN0YXRpYyBzc2l6ZV90Cj4+IC1z aG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgKmF0dHIsIAo+PiBjaGFyICpidWYpCj4+IC17Cj4+IC3CoMKgwqAgcmV0dXJuIHNwcmludGYo YnVmLCAiMVxuIik7Cj4+IC19Cj4+IC0KPj4gLXZvaWQKPj4gLWk5MTVfcGVyZl9sb2FkX3Rlc3Rf Y29uZmlnX3RnbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+IC17Cj4+IC3C oMKgwqAgc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAo+PiAtwqDCoMKg wqDCoMKgwqAgIjgwYTgzM2YwLTI1MDQtNDMyMS04ODk0LWU5Mjc3ODQ0Y2U3YiIsCj4+IC3CoMKg wqDCoMKgwqDCoCBzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOwo+PiAt wqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKPj4gLQo+PiAtwqDCoMKg IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29h Owo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IAo+ PiBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7Cj4+IC0KPj4gLcKgwqDCoCBkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IAo+PiBiX2NvdW50ZXJfY29uZmln X3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVy X3JlZ3NfbGVuID0gCj4+IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKPj4g LQo+PiAtwqDCoMKgIGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhf ZXVfY29uZmlnX3Rlc3Rfb2E7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu ZmxleF9yZWdzX2xlbiA9IAo+PiBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwo+ PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5h bWUgPSAKPj4gIjgwYTgzM2YwLTI1MDQtNDMyMS04ODk0LWU5Mjc3ODQ0Y2U3YiI7Cj4+IC3CoMKg wqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gCj4+IGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAKPj4gJmRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwo+PiAtCj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4+IC3CoMKgwqAg ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0 NDQ7Cj4+IC3CoMKgwqAgZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lk LnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4+IC19Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9vYS9pOTE1X29hX3RnbC5oIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29h L2k5MTVfb2FfdGdsLmgKPj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDRjMjVm MGJlODI1Yy4uMDAwMDAwMDAwMDAwCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5 MTVfb2FfdGdsLmgKPj4gKysrIC9kZXYvbnVsbAo+PiBAQCAtMSwxNiArMCwwIEBACj4+IC0vKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4+IC0vKgo+PiAtICogQ29weXJpZ2h0IMKp IDIwMTggSW50ZWwgQ29ycG9yYXRpb24KPj4gLSAqCj4+IC0gKiBBdXRvZ2VuZXJhdGVkIGZpbGUg YnkgR1BVIFRvcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaWIvZ3B1dG9wCj4+IC0gKiBETyBOT1Qg RURJVCBtYW51YWxseSEKPj4gLSAqLwo+PiAtCj4+IC0jaWZuZGVmIF9fSTkxNV9PQV9UR0xfSF9f Cj4+IC0jZGVmaW5lIF9fSTkxNV9PQV9UR0xfSF9fCj4+IC0KPj4gLXN0cnVjdCBkcm1faTkxNV9w cml2YXRlOwo+PiAtCj4+IC12b2lkIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX3RnbChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiAtCj4+IC0jZW5kaWYKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3BlcmYuYyAKPj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9wZXJmLmMKPj4gaW5kZXggZDFhMTU2 OGM0N2JhLi5iNjRkZWI3YzNhYzcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9pOTE1X3BlcmYuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaTkxNV9wZXJmLmMKPj4gQEAgLTE0LDEwICsxNCw4NSBAQAo+PiAjaW5jbHVkZSAiaWd0 X2ZsdXNoX3Rlc3QuaCIKPj4gI2luY2x1ZGUgImxpYl9zd19mZW5jZS5oIgo+Pgo+PiArI2RlZmlu ZSBURVNUX09BX0NPTkZJR19VVUlEICIxMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkw YWIiCj4+ICsKPj4gK3N0YXRpYyBpbnQKPj4gK2FsbG9jX2VtcHR5X2NvbmZpZyhzdHJ1Y3QgaTkx NV9wZXJmICpwZXJmKQo+PiArewo+PiArwqDCoMKgIHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2Ff Y29uZmlnOwo+PiArCj4+ICvCoMKgwqAgb2FfY29uZmlnID0ga3phbGxvYyhzaXplb2YoKm9hX2Nv bmZpZyksIEdGUF9LRVJORUwpOwo+PiArwqDCoMKgIGlmICghb2FfY29uZmlnKQo+PiArwqDCoMKg wqDCoMKgwqAgcmV0dXJuIC1FTk9NRU07Cj4+ICsKPj4gK8KgwqDCoCBvYV9jb25maWctPnBlcmYg PSBwZXJmOwo+PiArwqDCoMKgIGtyZWZfaW5pdCgmb2FfY29uZmlnLT5yZWYpOwo+PiArCj4+ICvC oMKgwqAgc3RybGNweShvYV9jb25maWctPnV1aWQsIFRFU1RfT0FfQ09ORklHX1VVSUQsIAo+PiBz aXplb2Yob2FfY29uZmlnLT51dWlkKSk7Cj4+ICsKPj4gK8KgwqDCoCBtdXRleF9sb2NrKCZwZXJm LT5tZXRyaWNzX2xvY2spOwo+PiArCj4+ICvCoMKgwqAgb2FfY29uZmlnLT5pZCA9IGlkcl9hbGxv YygmcGVyZi0+bWV0cmljc19pZHIsIG9hX2NvbmZpZywgMiwgMCwgCj4+IEdGUF9LRVJORUwpOwo+ Cj4gTm93IHRoYXQgVGVzdE9hIG1vdmVkIG91dCBvZiB0aGUgZHJpdmVyLCBhbnkgcmVhc29uIHdo eSB3ZSBhcmUgbm90IAo+IHN0YXJ0aW5nIHRoZSBpZHIgd2l0aCAxIGluc3RlYWQgb2YgMj8KCgpK dXN0IGEgd2F5IHRvIGlkZW50aWZ5IGFwcHMgdGhhdCBtaWdodCByZWx5IG9uIHRoZSBvbGQgaW50 ZXJuYWwgY29uZmlnIDspCgoKPgo+PiArwqDCoMKgIGlmIChvYV9jb25maWctPmlkIDwgMCnCoCB7 Cj4+ICvCoMKgwqDCoMKgwqDCoCBtdXRleF9sb2NrKCZwZXJmLT5tZXRyaWNzX2xvY2spOwo+Cj4g bXV0ZXhfJ3VuJ2xvY2sgaGVyZSBvbiBlcnJvcj8KCgpEdWghIFRoYW5rcyEKCgotTGlvbmVsCgo+ Cj4+ICvCoMKgwqDCoMKgwqDCoCBpOTE1X29hX2NvbmZpZ19wdXQob2FfY29uZmlnKTsKPj4gK8Kg wqDCoMKgwqDCoMKgIHJldHVybiAtRU5PTUVNOwo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKg IG11dGV4X3VubG9jaygmcGVyZi0+bWV0cmljc19sb2NrKTsKPj4gKwo+PiArwqDCoMKgIHJldHVy biAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZAo+PiArZGVzdHJveV9lbXB0eV9jb25maWco c3RydWN0IGk5MTVfcGVyZiAqcGVyZikKPj4gK3sKPj4gK8KgwqDCoCBzdHJ1Y3QgaTkxNV9vYV9j b25maWcgKm9hX2NvbmZpZyA9IE5VTEwsICp0bXA7Cj4+ICvCoMKgwqAgaW50IGlkOwo+PiArCj4+ ICvCoMKgwqAgbXV0ZXhfbG9jaygmcGVyZi0+bWV0cmljc19sb2NrKTsKPj4gKwo+PiArwqDCoMKg IGlkcl9mb3JfZWFjaF9lbnRyeSgmcGVyZi0+bWV0cmljc19pZHIsIHRtcCwgaWQpIHsKPj4gK8Kg wqDCoMKgwqDCoMKgIGlmICghc3RyY21wKHRtcC0+dXVpZCwgVEVTVF9PQV9DT05GSUdfVVVJRCkp IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb2FfY29uZmlnID0gdG1wOwo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoCB9 Cj4+ICsKPj4gK8KgwqDCoCBpZiAob2FfY29uZmlnKQo+PiArwqDCoMKgwqDCoMKgwqAgaWRyX3Jl bW92ZSgmcGVyZi0+bWV0cmljc19pZHIsIG9hX2NvbmZpZy0+aWQpOwo+PiArCj4+ICvCoMKgwqAg bXV0ZXhfdW5sb2NrKCZwZXJmLT5tZXRyaWNzX2xvY2spOwo+PiArCj4+ICvCoMKgwqAgaWYgKG9h X2NvbmZpZykKPj4gK8KgwqDCoMKgwqDCoMKgIGk5MTVfb2FfY29uZmlnX3B1dChvYV9jb25maWcp Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgc3RydWN0IGk5MTVfb2FfY29uZmlnICoKPj4gK2dldF9l bXB0eV9jb25maWcoc3RydWN0IGk5MTVfcGVyZiAqcGVyZikKPj4gK3sKPj4gK8KgwqDCoCBzdHJ1 Y3QgaTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZyA9IE5VTEwsICp0bXA7Cj4+ICvCoMKgwqAgaW50 IGlkOwo+PiArCj4+ICvCoMKgwqAgbXV0ZXhfbG9jaygmcGVyZi0+bWV0cmljc19sb2NrKTsKPj4g Kwo+PiArwqDCoMKgIGlkcl9mb3JfZWFjaF9lbnRyeSgmcGVyZi0+bWV0cmljc19pZHIsIHRtcCwg aWQpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmICghc3RyY21wKHRtcC0+dXVpZCwgVEVTVF9PQV9D T05GSUdfVVVJRCkpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb2FfY29uZmlnID0gaTkx NV9vYV9jb25maWdfZ2V0KHRtcCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+ PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIG11dGV4X3Vu bG9jaygmcGVyZi0+bWV0cmljc19sb2NrKTsKPj4gKwo+PiArwqDCoMKgIHJldHVybiBvYV9jb25m aWc7Cj4+ICt9Cj4+ICsKPj4gc3RhdGljIHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICoKPj4gdGVz dF9zdHJlYW0oc3RydWN0IGk5MTVfcGVyZiAqcGVyZikKPj4gewo+PiDCoMKgwqDCoHN0cnVjdCBk cm1faTkxNV9wZXJmX29wZW5fcGFyYW0gcGFyYW0gPSB7fTsKPj4gK8KgwqDCoCBzdHJ1Y3QgaTkx NV9vYV9jb25maWcgKm9hX2NvbmZpZyA9IGdldF9lbXB0eV9jb25maWcocGVyZik7Cj4+IMKgwqDC oMKgc3RydWN0IHBlcmZfb3Blbl9wcm9wZXJ0aWVzIHByb3BzID0gewo+PiDCoMKgwqDCoMKgwqDC oCAuZW5naW5lID0gaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKHBlcmYtPmk5MTUsCj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSTkxNV9FTkdJ TkVfQ0xBU1NfUkVOREVSLAo+PiBAQCAtMjUsMTMgKzEwMCwxOSBAQCB0ZXN0X3N0cmVhbShzdHJ1 Y3QgaTkxNV9wZXJmICpwZXJmKQo+PiDCoMKgwqDCoMKgwqDCoCAuc2FtcGxlX2ZsYWdzID0gU0FN UExFX09BX1JFUE9SVCwKPj4gwqDCoMKgwqDCoMKgwqAgLm9hX2Zvcm1hdCA9IElTX0dFTihwZXJm LT5pOTE1LCAxMikgPwo+PiDCoMKgwqDCoMKgwqDCoCBJOTE1X09BX0ZPUk1BVF9BMzJ1NDBfQTR1 MzJfQjhfQzggOiBJOTE1X09BX0ZPUk1BVF9DNF9COCwKPj4gLcKgwqDCoMKgwqDCoMKgIC5tZXRy aWNzX3NldCA9IDEsCj4+IMKgwqDCoMKgfTsKPj4gwqDCoMKgwqBzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtOwo+Pgo+PiArwqDCoMKgIGlmICghb2FfY29uZmlnKQo+PiArwqDCoMKgwqDC oMKgwqAgcmV0dXJuIE5VTEw7Cj4+ICsKPj4gK8KgwqDCoCBwcm9wcy5tZXRyaWNzX3NldCA9IG9h X2NvbmZpZy0+aWQ7Cj4+ICsKPj4gwqDCoMKgwqBzdHJlYW0gPSBremFsbG9jKHNpemVvZigqc3Ry ZWFtKSwgR0ZQX0tFUk5FTCk7Cj4+IC3CoMKgwqAgaWYgKCFzdHJlYW0pCj4+ICvCoMKgwqAgaWYg KCFzdHJlYW0pIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGk5MTVfb2FfY29uZmlnX3B1dChvYV9jb25m aWcpOwo+PiDCoMKgwqDCoMKgwqDCoCByZXR1cm4gTlVMTDsKPj4gK8KgwqDCoCB9Cj4+Cj4+IMKg wqDCoMKgc3RyZWFtLT5wZXJmID0gcGVyZjsKPj4KPj4gQEAgLTQyLDYgKzEyMyw4IEBAIHRlc3Rf c3RyZWFtKHN0cnVjdCBpOTE1X3BlcmYgKnBlcmYpCj4+IMKgwqDCoMKgfQo+PiDCoMKgwqDCoG11 dGV4X3VubG9jaygmcGVyZi0+bG9jayk7Cj4+Cj4+ICvCoMKgwqAgaTkxNV9vYV9jb25maWdfcHV0 KG9hX2NvbmZpZyk7Cj4+ICsKPj4gwqDCoMKgwqByZXR1cm4gc3RyZWFtOwo+PiB9Cj4+Cj4+IEBA IC0yMDYsNiArMjg5LDcgQEAgaW50IGk5MTVfcGVyZl9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgCj4+ IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+IMKgwqDCoMKgwqDCoMKgIFNVQlRFU1QobGl2ZV9u b2FfZGVsYXkpLAo+PiDCoMKgwqDCoH07Cj4+IMKgwqDCoMKgc3RydWN0IGk5MTVfcGVyZiAqcGVy ZiA9ICZpOTE1LT5wZXJmOwo+PiArwqDCoMKgIGludCBlcnI7Cj4+Cj4+IMKgwqDCoMKgaWYgKCFw ZXJmLT5tZXRyaWNzX2tvYmogfHwgIXBlcmYtPm9wcy5lbmFibGVfbWV0cmljX3NldCkKPj4gwqDC oMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IEBAIC0yMTMsNSArMjk3LDEzIEBAIGludCBpOTE1X3Bl cmZfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IAo+PiBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+PiDC oMKgwqDCoGlmIChpbnRlbF9ndF9pc193ZWRnZWQoJmk5MTUtPmd0KSkKPj4gwqDCoMKgwqDCoMKg wqAgcmV0dXJuIDA7Cj4+Cj4+IC3CoMKgwqAgcmV0dXJuIGk5MTVfc3VidGVzdHModGVzdHMsIGk5 MTUpOwo+PiArwqDCoMKgIGVyciA9IGFsbG9jX2VtcHR5X2NvbmZpZygmaTkxNS0+cGVyZik7Cj4+ ICvCoMKgwqAgaWYgKGVycikKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7Cj4+ICsKPj4g K8KgwqDCoCBlcnIgPSBpOTE1X3N1YnRlc3RzKHRlc3RzLCBpOTE1KTsKPj4gKwo+PiArwqDCoMKg IGRlc3Ryb3lfZW1wdHlfY29uZmlnKCZpOTE1LT5wZXJmKTsKPj4gKwo+PiArwqDCoMKgIHJldHVy biBlcnI7Cj4+IH0KPj4gLS0gCj4+IDIuMjUuMQo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+IElu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK