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.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 22035C433DB for ; Thu, 7 Jan 2021 15:40:31 +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 8F59323403 for ; Thu, 7 Jan 2021 15:40:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8F59323403 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 1D3156E303; Thu, 7 Jan 2021 15:40:30 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id E03FA6E303 for ; Thu, 7 Jan 2021 15:40:28 +0000 (UTC) IronPort-SDR: HGrAIwliACqbWtl3KjP8M65Eq9ZgpHPtzY1pfy8FdJjJIQ2zbv4eIIUOXi9XR6Aqzyb1jNqlN9 38NYLdH0w8yQ== X-IronPort-AV: E=McAfee;i="6000,8403,9857"; a="157222039" X-IronPort-AV: E=Sophos;i="5.79,329,1602572400"; d="scan'208";a="157222039" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jan 2021 07:40:22 -0800 IronPort-SDR: mZmgCu1H2BXk60Gi4iUhufeh2xJBYHlCUP2L+tFsqBzrSAAqaO8POToiNpaKnaNdXxmUIGfTAK u2z+T5sgxzsA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,329,1602572400"; d="scan'208";a="398655542" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga002.fm.intel.com with ESMTP; 07 Jan 2021 07:40:22 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 7 Jan 2021 07:40:21 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 7 Jan 2021 07:40:21 -0800 Received: from fmsmsx610.amr.corp.intel.com ([10.18.126.90]) by fmsmsx610.amr.corp.intel.com ([10.18.126.90]) with mapi id 15.01.1713.004; Thu, 7 Jan 2021 07:40:21 -0800 From: "Vivi, Rodrigo" To: "Huang, Sean Z" , "Intel-gfx@lists.freedesktop.org" Thread-Topic: [Intel-gfx] [RFC-v19 04/13] drm/i915/pxp: Create the arbitrary session after boot Thread-Index: AQHW5IFxXLRgouaaEEyNfrI40ecYoqoc0+eA Date: Thu, 7 Jan 2021 15:40:21 +0000 Message-ID: <9fda3ca20d17aea3de043f108e5436399d880542.camel@intel.com> References: <20210106231223.8323-1-sean.z.huang@intel.com> <20210106231223.8323-5-sean.z.huang@intel.com> In-Reply-To: <20210106231223.8323-5-sean.z.huang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.38.2 (3.38.2-1.fc33) x-originating-ip: [10.1.200.100] Content-ID: <46551D333B60784084A565FBD4B804D6@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [RFC-v19 04/13] drm/i915/pxp: Create the arbitrary session after boot 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCAyMDIxLTAxLTA2IGF0IDE1OjEyIC0wODAwLCBIdWFuZywgU2VhbiBaIHdyb3RlOg0K PiBDcmVhdGUgdGhlIGFyYml0cmFyeSBzZXNzaW9uLCB3aXRoIHRoZSBmaXhlZCBzZXNzaW9uIGlk IDB4ZiwgYWZ0ZXINCj4gc3lzdGVtIGJvb3QsIGZvciB0aGUgY2FzZSB0aGF0IGFwcGxpY2F0aW9u IGFsbG9jYXRlcyB0aGUgcHJvdGVjdGVkDQo+IGJ1ZmZlciB3aXRob3V0IGVzdGFibGlzaGluZyBh bnkgcHJvdGVjdGlvbiBzZXNzaW9uLiBCZWNhdXNlIHRoZQ0KPiBoYXJkd2FyZSByZXF1aXJlcyBh dCBsZWFzdCBvbmUgYWxpdmUgc2Vzc2lvbiBmb3IgcHJvdGVjdGVkIGJ1ZmZlcg0KPiBjcmVhdGlv bi7CoCBUaGlzIGFyYml0cmFyeSBzZXNzaW9uIG5lZWRzIHRvIGJlIHJlLWNyZWF0ZWQgYWZ0ZXIN Cj4gdGVhcmRvd24gb3IgcG93ZXIgZXZlbnQgYmVjYXVzZSBoYXJkd2FyZSBlbmNyeXB0aW9uIGtl eSB3b24ndCBiZQ0KPiB2YWxpZCBhZnRlciBzdWNoIGNhc2VzLg0KPiANCj4gU2lnbmVkLW9mZi1i eTogSHVhbmcsIFNlYW4gWiA8c2Vhbi56Lmh1YW5nQGludGVsLmNvbT4NCj4gLS0tDQo+IMKgZHJp dmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fMKgwqAgMSArDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cC5jwqDCoMKg wqDCoMKgwqDCoCB8wqDCoCAxICsNCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxf cHhwLmjCoMKgwqDCoMKgwqDCoMKgIHzCoCAxNiArKysNCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9weHAvaW50ZWxfcHhwX2FyYi5jwqDCoMKgwqAgfCAxMzENCj4gKysrKysrKysrKysrKysrKysr Kw0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHBfYXJiLmjCoMKgwqDCoCB8 wqAgMTYgKysrDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cF9jb250ZXh0 LmggfMKgwqAgMSArDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cF90ZWUu Y8KgwqDCoMKgIHzCoCA3MyArKysrKysrKysrKw0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L3B4 cC9pbnRlbF9weHBfdGVlLmjCoMKgwqDCoCB8wqDCoCAzICsNCj4gwqBkcml2ZXJzL2dwdS9kcm0v aTkxNS9weHAvaW50ZWxfcHhwX3R5cGVzLmjCoMKgIHzCoCAyNiArKysrDQo+IMKgOSBmaWxlcyBj aGFuZ2VkLCAyNjggaW5zZXJ0aW9ucygrKQ0KPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwX2FyYi5jDQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHBfYXJiLmgNCj4gDQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQ0KPiBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L01ha2VmaWxlDQo+IGluZGV4IDU0OTRjMzBjYjU0Zi4uYWY5ZTg3ZTRjNjNhIDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQ0KPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZQ0KPiBAQCAtMjYyLDYgKzI2Miw3IEBAIGk5MTUteSArPSBpOTE1 X3BlcmYubw0KPiDCoCMgUHJvdGVjdGVkIGV4ZWN1dGlvbiBwbGF0Zm9ybSAoUFhQKSBzdXBwb3J0 DQo+IMKgaTkxNS0kKENPTkZJR19EUk1fSTkxNV9QWFApICs9IFwNCj4gwqDCoMKgwqDCoMKgwqDC oHB4cC9pbnRlbF9weHAubyBcDQo+ICvCoMKgwqDCoMKgwqDCoHB4cC9pbnRlbF9weHBfYXJiLm8g XA0KPiDCoMKgwqDCoMKgwqDCoMKgcHhwL2ludGVsX3B4cF9jb250ZXh0Lm8gXA0KPiDCoMKgwqDC oMKgwqDCoMKgcHhwL2ludGVsX3B4cF90ZWUubw0KPiDCoA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cC5jDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv cHhwL2ludGVsX3B4cC5jDQo+IGluZGV4IGM4MTlmMzc5MWVlNC4uMzg2OGU4YzY5N2Y5IDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwLmMNCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cC5jDQo+IEBAIC02LDYgKzYsNyBAQA0K PiDCoCNpbmNsdWRlICJpbnRlbF9weHAuaCINCj4gwqAjaW5jbHVkZSAiaW50ZWxfcHhwX2NvbnRl eHQuaCINCj4gwqAjaW5jbHVkZSAiaW50ZWxfcHhwX3RlZS5oIg0KPiArI2luY2x1ZGUgImludGVs X3B4cF9hcmIuaCINCj4gwqANCj4gwqAvKiBLQ1IgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgKi8NCj4g wqAjZGVmaW5lIEtDUl9JTklUwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfTU1JTygweDMyMGYwKQ0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cC5oDQo+IGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cC5oDQo+IGluZGV4IGY0N2JjNmJlYTM0 Zi4uOGZjOTFlOTAwYjE2IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAv aW50ZWxfcHhwLmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cC5o DQo+IEBAIC04LDYgKzgsMjIgQEANCj4gwqANCj4gwqAjaW5jbHVkZSAiaW50ZWxfcHhwX3R5cGVz LmgiDQo+IMKgDQo+ICtlbnVtIHB4cF9zZXNzaW9uX3R5cGVzIHsNCj4gK8KgwqDCoMKgwqDCoMKg U0VTU0lPTl9UWVBFX1RZUEUwID0gMCwNCj4gK8KgwqDCoMKgwqDCoMKgU0VTU0lPTl9UWVBFX1RZ UEUxID0gMSwNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqBTRVNTSU9OX1RZUEVfTUFYDQo+ICt9Ow0K PiArDQo+ICtlbnVtIHB4cF9wcm90ZWN0aW9uX21vZGVzIHsNCj4gK8KgwqDCoMKgwqDCoMKgUFJP VEVDVElPTl9NT0RFX05PTkUgPSAwLA0KPiArwqDCoMKgwqDCoMKgwqBQUk9URUNUSU9OX01PREVf TE3CoMKgID0gMiwNCj4gK8KgwqDCoMKgwqDCoMKgUFJPVEVDVElPTl9NT0RFX0hNwqDCoCA9IDMs DQo+ICvCoMKgwqDCoMKgwqDCoFBST1RFQ1RJT05fTU9ERV9TTcKgwqAgPSA2LA0KPiArDQo+ICvC oMKgwqDCoMKgwqDCoFBST1RFQ1RJT05fTU9ERV9BTEwNCj4gK307DQo+ICsNCj4gwqAjaWZkZWYg Q09ORklHX0RSTV9JOTE1X1BYUA0KPiDCoHZvaWQgaW50ZWxfcHhwX2luaXQoc3RydWN0IGludGVs X3B4cCAqcHhwKTsNCj4gwqB2b2lkIGludGVsX3B4cF9maW5pKHN0cnVjdCBpbnRlbF9weHAgKnB4 cCk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwX2Fy Yi5jDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cF9hcmIuYw0KPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjY0MGQ3MTAzYzA0ZA0KPiAt LS0gL2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHBf YXJiLmMNCj4gQEAgLTAsMCArMSwxMzEgQEANCj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBNSVQNCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQoYykgMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUgImd0L2ludGVs X2NvbnRleHQuaCINCj4gKyNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfcG0uaCINCj4gKw0KPiAr I2luY2x1ZGUgImludGVsX3B4cF90eXBlcy5oIg0KPiArI2luY2x1ZGUgImludGVsX3B4cF9hcmIu aCINCj4gKyNpbmNsdWRlICJpbnRlbF9weHAuaCINCj4gKyNpbmNsdWRlICJpbnRlbF9weHBfdGVl LmgiDQo+ICsNCj4gKyNkZWZpbmUgR0VOMTJfS0NSX1NJUCBfTU1JTygweDMyMjYwKSAvKiBLQ1Ig dHlwZTAgc2Vzc2lvbiBpbiBwbGF5IDAtDQo+IDMxICovDQo+ICsNCj4gKy8qIEFyYml0cmFyeSBz ZXNzaW9uICovDQo+ICsjZGVmaW5lIEFSQl9TRVNTSU9OX0lOREVYIDB4Zg0KPiArI2RlZmluZSBB UkJfU0VTU0lPTl9UWVBFIFNFU1NJT05fVFlQRV9UWVBFMA0KDQpBbGwgcmVnIGRlZmluZXMgc2hv dWxkIGJlIGluIGk5MTVfcmVnLmgNCg0KPiArDQo+ICtib29sIGludGVsX3B4cF9hcmJfc2Vzc2lv bl9pc19pbl9wbGF5KHN0cnVjdCBpbnRlbF9weHAgKnB4cCkNCj4gK3sNCj4gK8KgwqDCoMKgwqDC oMKgdTMyIHJlZ3ZhbF9zaXAgPSAwOw0KPiArwqDCoMKgwqDCoMKgwqBpbnRlbF93YWtlcmVmX3Qg d2FrZXJlZjsNCj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGludGVsX2d0ICpndCA9IGNvbnRhaW5l cl9vZihweHAsIHN0cnVjdCBpbnRlbF9ndCwNCj4gcHhwKTsNCj4gKw0KPiArwqDCoMKgwqDCoMKg wqB3aXRoX2ludGVsX3J1bnRpbWVfcG0oJmd0LT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKSB7 DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZWd2YWxfc2lwID0gaW50ZWxfdW5j b3JlX3JlYWQoZ3QtPnVuY29yZSwNCj4gR0VOMTJfS0NSX1NJUCk7DQo+ICvCoMKgwqDCoMKgwqDC oH0NCj4gKw0KPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gcmVndmFsX3NpcCAmIEJJVChBUkJfU0VT U0lPTl9JTkRFWCk7DQo+ICt9DQo+ICsNCj4gKy8qIHdhaXQgaHcgc2Vzc2lvbl9pbl9wbGF5IHJl ZyB0byBtYXRjaCB0aGUgY3VycmVudCBzdyBzdGF0ZSAqLw0KPiArc3RhdGljIGludCB3YWl0X2Fy Yl9od19zd19zdGF0ZShzdHJ1Y3QgaW50ZWxfcHhwICpweHApDQo+ICt7DQo+ICvCoMKgwqDCoMKg wqDCoGNvbnN0IGludCBtYXhfcmV0cnkgPSAxMDsNCj4gK8KgwqDCoMKgwqDCoMKgY29uc3QgaW50 IG1zX2RlbGF5ID0gMTA7DQo+ICvCoMKgwqDCoMKgwqDCoGludCByZXRyeSA9IDA7DQo+ICvCoMKg wqDCoMKgwqDCoGludCByZXQ7DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBweHBfcHJvdGVjdGVk X3Nlc3Npb24gKmFyYiA9ICZweHAtPmN0eC5hcmJfc2Vzc2lvbjsNCj4gKw0KPiArwqDCoMKgwqDC oMKgwqByZXQgPSAtRUlOVkFMOw0KPiArwqDCoMKgwqDCoMKgwqBmb3IgKHJldHJ5ID0gMDsgcmV0 cnkgPCBtYXhfcmV0cnk7IHJldHJ5KyspIHsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlmIChpbnRlbF9weHBfYXJiX3Nlc3Npb25faXNfaW5fcGxheShweHApID09DQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXJiLT5pc19pbl9wbGF5KSB7DQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gMDsNCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsNCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0NCj4gKw0KPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgbXNsZWVwKG1zX2RlbGF5KTsNCj4gK8KgwqDCoMKgwqDCoMKgfQ0KPiAr DQo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lk IGFyYl9zZXNzaW9uX2VudHJ5X2luaXQoc3RydWN0IGludGVsX3B4cCAqcHhwKQ0KPiArew0KPiAr wqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcHhwX3Byb3RlY3RlZF9zZXNzaW9uICphcmIgPSAmcHhwLT5j dHguYXJiX3Nlc3Npb247DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgYXJiLT50eXBlID0gQVJCX1NF U1NJT05fVFlQRTsNCj4gK8KgwqDCoMKgwqDCoMKgYXJiLT5wcm90ZWN0aW9uX21vZGUgPSBQUk9U RUNUSU9OX01PREVfSE07DQo+ICvCoMKgwqDCoMKgwqDCoGFyYi0+aW5kZXggPSBBUkJfU0VTU0lP Tl9JTkRFWDsNCj4gK8KgwqDCoMKgwqDCoMKgYXJiLT5pc19pbl9wbGF5ID0gZmFsc2U7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyBpbnQgaW50ZWxfcHhwX2FyYl9yZXNlcnZlX3Nlc3Npb24oc3RydWN0 IGludGVsX3B4cCAqcHhwKQ0KPiArew0KPiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0Ow0KPiArDQo+ ICvCoMKgwqDCoMKgwqDCoGxvY2tkZXBfYXNzZXJ0X2hlbGQoJnB4cC0+Y3R4Lm11dGV4KTsNCj4g Kw0KPiArwqDCoMKgwqDCoMKgwqBhcmJfc2Vzc2lvbl9lbnRyeV9pbml0KHB4cCk7DQo+ICvCoMKg wqDCoMKgwqDCoHJldCA9IHdhaXRfYXJiX2h3X3N3X3N0YXRlKHB4cCk7DQo+ICsNCj4gK8KgwqDC oMKgwqDCoMKgcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgKiBpbnRlbF9weHBf YXJiX21hcmtfc2Vzc2lvbl9pbl9wbGF5IC0gVG8gcHV0IGFuIHJlc2VydmVkIHByb3RlY3RlZA0K PiBzZXNzaW9uIHRvICJpbl9wbGF5IiBzdGF0ZQ0KPiArICogQHB4cDogcG9pbnRlciB0byBweHAg c3RydWN0Lg0KPiArICoNCj4gKyAqIFJldHVybjogc3RhdHVzLiAwIG1lYW5zIHVwZGF0ZSBpcyBz dWNjZXNzZnVsLg0KPiArICovDQo+ICtzdGF0aWMgaW50IGludGVsX3B4cF9hcmJfbWFya19zZXNz aW9uX2luX3BsYXkoc3RydWN0IGludGVsX3B4cCAqcHhwKQ0KPiArew0KPiArwqDCoMKgwqDCoMKg wqBzdHJ1Y3QgcHhwX3Byb3RlY3RlZF9zZXNzaW9uICphcmIgPSAmcHhwLT5jdHguYXJiX3Nlc3Np b247DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgbG9ja2RlcF9hc3NlcnRfaGVsZCgmcHhwLT5jdHgu bXV0ZXgpOw0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoGlmIChhcmItPmlzX2luX3BsYXkpDQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArwqDC oMKgwqDCoMKgwqBhcmItPmlzX2luX3BsYXkgPSB0cnVlOw0KPiArwqDCoMKgwqDCoMKgwqByZXR1 cm4gMDsNCj4gK30NCj4gKw0KPiAraW50IGludGVsX3B4cF9hcmJfY3JlYXRlX3Nlc3Npb24oc3Ry dWN0IGludGVsX3B4cCAqcHhwKQ0KPiArew0KPiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0Ow0KPiAr wqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gY29udGFpbmVyX29mKHB4cCwgdHlw ZW9mKCpndCksIHB4cCk7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgbG9ja2RlcF9hc3NlcnRfaGVs ZCgmcHhwLT5jdHgubXV0ZXgpOw0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoGlmIChweHAtPmN0eC5m bGFnX2Rpc3BsYXlfaG1fc3VyZmFjZV9rZXlzKSB7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBkcm1fZXJyKCZndC0+aTkxNS0+ZHJtLCAiJXM6IGFyYiBzZXNzaW9uIGlzIGFsaXZl IHNvDQo+IHNraXBwaW5nIHRoZSBjcmVhdGlvblxuIiwNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBfX2Z1bmNfXyk7DQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqByZXR1cm4gMDsNCj4gK8KgwqDCoMKgwqDCoMKgfQ0KPiArDQo+ICvCoMKg wqDCoMKgwqDCoHJldCA9IGludGVsX3B4cF9hcmJfcmVzZXJ2ZV9zZXNzaW9uKHB4cCk7DQo+ICvC oMKgwqDCoMKgwqDCoGlmIChyZXQpIHsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGRybV9lcnIoJmd0LT5pOTE1LT5kcm0sICJGYWlsZWQgdG8gcmVzZXJ2ZSBhcmINCj4gc2Vzc2lv blxuIik7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcmV0Ow0KPiAr wqDCoMKgwqDCoMKgwqB9DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgcmV0ID0gaW50ZWxfcHhwX3Rl ZV9jbWRfY3JlYXRlX2FyYl9zZXNzaW9uKHB4cCwNCj4gQVJCX1NFU1NJT05fSU5ERVgpOw0KPiAr wqDCoMKgwqDCoMKgwqBpZiAocmV0KSB7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBkcm1fZXJyKCZndC0+aTkxNS0+ZHJtLCAiRmFpbGVkIHRvIHNlbmQgdGVlIGNtZCBmb3INCj4g YXJiIHNlc3Npb24gY3JlYXRpb25cbiIpOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgcmV0dXJuIHJldDsNCj4gK8KgwqDCoMKgwqDCoMKgfQ0KPiArDQo+ICvCoMKgwqDCoMKgwqDC oHJldCA9IGludGVsX3B4cF9hcmJfbWFya19zZXNzaW9uX2luX3BsYXkocHhwKTsNCj4gK8KgwqDC oMKgwqDCoMKgaWYgKHJldCkgew0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZHJt X2VycigmZ3QtPmk5MTUtPmRybSwgIkZhaWxlZCB0byBtYXJrIGFyYiBzZXNzaW9uDQo+IHN0YXR1 cyBpbiBwbGF5XG4iKTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBy ZXQ7DQo+ICvCoMKgwqDCoMKgwqDCoH0NCj4gKw0KPiArwqDCoMKgwqDCoMKgwqBweHAtPmN0eC5m bGFnX2Rpc3BsYXlfaG1fc3VyZmFjZV9rZXlzID0gdHJ1ZTsNCj4gKw0KPiArwqDCoMKgwqDCoMKg wqByZXR1cm4gcmV0Ow0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv cHhwL2ludGVsX3B4cF9hcmIuaA0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9w eHBfYXJiLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi4y MTk2MTUzZGQ4NzkNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9weHAvaW50ZWxfcHhwX2FyYi5oDQo+IEBAIC0wLDAgKzEsMTYgQEANCj4gKy8qIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8NCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQoYykgMjAyMCwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsgKi8NCj4gKw0KPiAr I2lmbmRlZiBfX0lOVEVMX1BYUF9BUkJfSF9fDQo+ICsjZGVmaW5lIF9fSU5URUxfUFhQX0FSQl9I X18NCj4gKw0KPiArI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+DQo+ICsNCj4gK3N0cnVjdCBpbnRl bF9weHA7DQo+ICsNCj4gK2ludCBpbnRlbF9weHBfYXJiX2NyZWF0ZV9zZXNzaW9uKHN0cnVjdCBp bnRlbF9weHAgKnB4cCk7DQo+ICtib29sIGludGVsX3B4cF9hcmJfc2Vzc2lvbl9pc19pbl9wbGF5 KHN0cnVjdCBpbnRlbF9weHAgKnB4cCk7DQo+ICsNCj4gKyNlbmRpZiAvKiBfX0lOVEVMX1BYUF9B UkJfSF9fICovDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxf cHhwX2NvbnRleHQuaA0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHBfY29u dGV4dC5oDQo+IGluZGV4IGY1MTAyMWMzM2Q0NS4uYmYyZmViNGFhZjZkIDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwX2NvbnRleHQuaA0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwX2NvbnRleHQuaA0KPiBAQCAtOCw2ICs4 LDcgQEANCj4gwqANCj4gwqAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4NCj4gwqAjaW5jbHVkZSAi aW50ZWxfcHhwX3R5cGVzLmgiDQo+ICsjaW5jbHVkZSAiaW50ZWxfcHhwX2FyYi5oIg0KPiDCoA0K PiDCoHZvaWQgaW50ZWxfcHhwX2N0eF9pbml0KHN0cnVjdCBweHBfY29udGV4dCAqY3R4KTsNCj4g wqB2b2lkIGludGVsX3B4cF9jdHhfZmluaShzdHJ1Y3QgcHhwX2NvbnRleHQgKmN0eCk7DQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwX3RlZS5jDQo+IGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cF90ZWUuYw0KPiBpbmRleCA1YTFmZmNj NzAzZTIuLjQxZDhhMzFiYmI3NSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv cHhwL2ludGVsX3B4cF90ZWUuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50 ZWxfcHhwX3RlZS5jDQo+IEBAIC0xMCw2ICsxMCwzMiBAQA0KPiDCoCNpbmNsdWRlICJpbnRlbF9w eHAuaCINCj4gwqAjaW5jbHVkZSAiaW50ZWxfcHhwX2NvbnRleHQuaCINCj4gwqAjaW5jbHVkZSAi aW50ZWxfcHhwX3RlZS5oIg0KPiArI2luY2x1ZGUgImludGVsX3B4cF9hcmIuaCINCj4gKw0KPiAr I2RlZmluZSBQWFBfVEVFX0FQSVZFUiAweDQwMDAyDQo+ICsjZGVmaW5lIFBYUF9URUVfQVJCX0NN RElEIDB4MWUNCj4gKyNkZWZpbmUgUFhQX1RFRV9BUkJfUFJPVEVDVElPTl9NT0RFIDB4Mg0KPiAr DQo+ICsvKiBQWFAgVEVFIG1lc3NhZ2UgaGVhZGVyICovDQo+ICtzdHJ1Y3QgcHhwX3RlZV9jbWRf aGVhZGVyIHsNCj4gK8KgwqDCoMKgwqDCoMKgdTMyIGFwaV92ZXJzaW9uOw0KPiArwqDCoMKgwqDC oMKgwqB1MzIgY29tbWFuZF9pZDsNCj4gK8KgwqDCoMKgwqDCoMKgdTMyIHN0YXR1czsNCj4gK8Kg wqDCoMKgwqDCoMKgLyogTGVuZ3RoIG9mIHRoZSBtZXNzYWdlIChleGNsdWRpbmcgdGhlIGhlYWRl cikgKi8NCj4gK8KgwqDCoMKgwqDCoMKgdTMyIGJ1ZmZlcl9sZW47DQo+ICt9IF9fcGFja2VkOw0K PiArDQo+ICsvKiBQWFAgVEVFIG1lc3NhZ2UgaW5wdXQgdG8gY3JlYXRlIGEgYXJiaXRyYXJ5IHNl c3Npb24gKi8NCj4gK3N0cnVjdCBweHBfdGVlX2NyZWF0ZV9hcmJfaW4gew0KPiArwqDCoMKgwqDC oMKgwqBzdHJ1Y3QgcHhwX3RlZV9jbWRfaGVhZGVyIGhlYWRlcjsNCj4gK8KgwqDCoMKgwqDCoMKg dTMyIHByb3RlY3Rpb25fbW9kZTsNCj4gK8KgwqDCoMKgwqDCoMKgdTMyIHNlc3Npb25faWQ7DQo+ ICt9IF9fcGFja2VkOw0KPiArDQo+ICsvKiBQWFAgVEVFIG1lc3NhZ2Ugb3V0cHV0IHRvIGNyZWF0 ZSBhIGFyYml0cmFyeSBzZXNzaW9uICovDQo+ICtzdHJ1Y3QgcHhwX3RlZV9jcmVhdGVfYXJiX291 dCB7DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBweHBfdGVlX2NtZF9oZWFkZXIgaGVhZGVyOw0K PiArfSBfX3BhY2tlZDsNCj4gwqANCj4gwqBzdGF0aWMgaW50IGludGVsX3B4cF90ZWVfaW9fbWVz c2FnZShzdHJ1Y3QgaW50ZWxfcHhwICpweHAsDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdm9pZCAqbXNnX2lu LCB1MzIgbXNnX2luX3NpemUsDQo+IEBAIC03MCw3ICs5Niw5IEBAIHN0YXRpYyBpbnQgaW50ZWxf cHhwX3RlZV9pb19tZXNzYWdlKHN0cnVjdA0KPiBpbnRlbF9weHAgKnB4cCwNCj4gwqBzdGF0aWMg aW50IGk5MTVfcHhwX3RlZV9jb21wb25lbnRfYmluZChzdHJ1Y3QgZGV2aWNlICppOTE1X2tkZXYs DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRldmljZSAqdGVlX2tkZXYsIHZvaWQNCj4g KmRhdGEpDQo+IMKgew0KPiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0ID0gMDsNCj4gwqDCoMKgwqDC oMKgwqDCoHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0ga2Rldl90b19pOTE1KGk5MTVf a2Rldik7DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9weHAgKnB4cCA9ICZpOTE1LT5n dC5weHA7DQo+IMKgDQo+IMKgwqDCoMKgwqDCoMKgwqBpZiAoIWk5MTUgfHwgIXRlZV9rZGV2IHx8 ICFkYXRhKQ0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtRVBFUk07 DQo+IEBAIC04MCw2ICsxMDgsMTkgQEAgc3RhdGljIGludCBpOTE1X3B4cF90ZWVfY29tcG9uZW50 X2JpbmQoc3RydWN0DQo+IGRldmljZSAqaTkxNV9rZGV2LA0KPiDCoMKgwqDCoMKgwqDCoMKgaTkx NS0+cHhwX3RlZV9tYXN0ZXItPnRlZV9kZXYgPSB0ZWVfa2RldjsNCj4gwqDCoMKgwqDCoMKgwqDC oG11dGV4X3VubG9jaygmaTkxNS0+cHhwX3RlZV9jb21wX211dGV4KTsNCj4gwqANCj4gK8KgwqDC oMKgwqDCoMKgbXV0ZXhfbG9jaygmcHhwLT5jdHgubXV0ZXgpOw0KPiArDQo+ICvCoMKgwqDCoMKg wqDCoC8qIENyZWF0ZSBhcmIgc2Vzc2lvbiBvbmx5IGlmIHRlZSBpcyByZWFkeSwgZHVyaW5nIHN5 c3RlbQ0KPiBib290IG9yIHNsZWVwL3Jlc3VtZSAqLw0KPiArwqDCoMKgwqDCoMKgwqBpZiAoIWlu dGVsX3B4cF9hcmJfc2Vzc2lvbl9pc19pbl9wbGF5KHB4cCkpDQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqByZXQgPSBpbnRlbF9weHBfYXJiX2NyZWF0ZV9zZXNzaW9uKHB4cCk7DQo+ ICsNCj4gK8KgwqDCoMKgwqDCoMKgbXV0ZXhfdW5sb2NrKCZweHAtPmN0eC5tdXRleCk7DQo+ICsN Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJldCkgew0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgZHJtX2VycigmaTkxNS0+ZHJtLCAiRmFpbGVkIHRvIGNyZWF0ZSBhcmIgc2Vzc2lvbg0K PiByZXQ9WyVkXVxuIiwgcmV0KTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJl dHVybiByZXQ7DQo+ICvCoMKgwqDCoMKgwqDCoH0NCj4gKw0KPiDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuIDA7DQo+IMKgfQ0KPiDCoA0KPiBAQCAtMTM1LDMgKzE3NiwzNSBAQCB2b2lkIGludGVsX3B4 cF90ZWVfY29tcG9uZW50X2Zpbmkoc3RydWN0DQo+IGludGVsX3B4cCAqcHhwKQ0KPiDCoA0KPiDC oMKgwqDCoMKgwqDCoMKgY29tcG9uZW50X2RlbChpOTE1LT5kcm0uZGV2LCAmaTkxNV9weHBfdGVl X2NvbXBvbmVudF9vcHMpOw0KPiDCoH0NCj4gKw0KPiAraW50IGludGVsX3B4cF90ZWVfY21kX2Ny ZWF0ZV9hcmJfc2Vzc2lvbihzdHJ1Y3QgaW50ZWxfcHhwICpweHAsDQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaW50IGFyYl9zZXNzaW9uX2lkKQ0KPiArew0KPiArwqDCoMKgwqDCoMKgwqBpbnQg cmV0Ow0KPiArwqDCoMKgwqDCoMKgwqB1MzIgbXNnX291dF9zaXplX3JlY2VpdmVkID0gMDsNCj4g K8KgwqDCoMKgwqDCoMKgc3RydWN0IHB4cF90ZWVfY3JlYXRlX2FyYl9pbiBtc2dfaW4gPSB7MH07 DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBweHBfdGVlX2NyZWF0ZV9hcmJfb3V0IG1zZ19vdXQg PSB7MH07DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBjb250YWluZXJf b2YocHhwLCB0eXBlb2YoKmd0KSwgcHhwKTsNCj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUgPSBndC0+aTkxNTsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqBtc2df aW4uaGVhZGVyLmFwaV92ZXJzaW9uID0gUFhQX1RFRV9BUElWRVI7DQo+ICvCoMKgwqDCoMKgwqDC oG1zZ19pbi5oZWFkZXIuY29tbWFuZF9pZCA9IFBYUF9URUVfQVJCX0NNRElEOw0KPiArwqDCoMKg wqDCoMKgwqBtc2dfaW4uaGVhZGVyLmJ1ZmZlcl9sZW4gPSBzaXplb2YobXNnX2luKSAtDQo+IHNp emVvZihtc2dfaW4uaGVhZGVyKTsNCj4gK8KgwqDCoMKgwqDCoMKgbXNnX2luLnByb3RlY3Rpb25f bW9kZSA9IFBYUF9URUVfQVJCX1BST1RFQ1RJT05fTU9ERTsNCj4gK8KgwqDCoMKgwqDCoMKgbXNn X2luLnNlc3Npb25faWQgPSBhcmJfc2Vzc2lvbl9pZDsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqBt dXRleF9sb2NrKCZpOTE1LT5weHBfdGVlX2NvbXBfbXV0ZXgpOw0KPiArDQo+ICvCoMKgwqDCoMKg wqDCoHJldCA9IGludGVsX3B4cF90ZWVfaW9fbWVzc2FnZShweHAsDQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAmbXNnX2luLA0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKG1zZ19pbiksDQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAmbXNnX291dCwNCj4gJm1zZ19vdXRfc2l6ZV9yZWNlaXZlZCwNCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHNpemVvZihtc2dfb3V0KSk7DQo+ICsNCj4gK8KgwqDCoMKgwqDC oMKgbXV0ZXhfdW5sb2NrKCZpOTE1LT5weHBfdGVlX2NvbXBfbXV0ZXgpOw0KPiArDQo+ICvCoMKg wqDCoMKgwqDCoGlmIChyZXQpDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkcm1f ZXJyKCZpOTE1LT5kcm0sICJGYWlsZWQgdG8gc2VuZCB0ZWUgbXNnDQo+IHJldD1bJWRdXG4iLCBy ZXQpOw0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7DQo+ICt9DQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhwX3RlZS5oDQo+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cF90ZWUuaA0KPiBpbmRleCA0YjVlM2VkYjFkOWIu LmM0NmY5MDMzZjcwOSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2lu dGVsX3B4cF90ZWUuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9weHAvaW50ZWxfcHhw X3RlZS5oDQo+IEBAIC0xMSw0ICsxMSw3IEBADQo+IMKgdm9pZCBpbnRlbF9weHBfdGVlX2NvbXBv bmVudF9pbml0KHN0cnVjdCBpbnRlbF9weHAgKnB4cCk7DQo+IMKgdm9pZCBpbnRlbF9weHBfdGVl X2NvbXBvbmVudF9maW5pKHN0cnVjdCBpbnRlbF9weHAgKnB4cCk7DQo+IMKgDQo+ICtpbnQgaW50 ZWxfcHhwX3RlZV9jbWRfY3JlYXRlX2FyYl9zZXNzaW9uKHN0cnVjdCBpbnRlbF9weHAgKnB4cCwN Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgYXJiX3Nlc3Npb25faWQpOw0KPiArDQo+IMKg I2VuZGlmIC8qIF9fSU5URUxfUFhQX1RFRV9IX18gKi8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHBfdHlwZXMuaA0KPiBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3B4cC9pbnRlbF9weHBfdHlwZXMuaA0KPiBpbmRleCBmOWI0MGVhOThiMWIuLjI4N2JhMWUw ZWQ5ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvcHhwL2ludGVsX3B4cF90 eXBlcy5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3B4cC9pbnRlbF9weHBfdHlwZXMu aA0KPiBAQCAtOCwxMiArOCwzOCBAQA0KPiDCoA0KPiDCoCNpbmNsdWRlIDxsaW51eC9tdXRleC5o Pg0KPiDCoA0KPiArLyoqDQo+ICsgKiBzdHJ1Y3QgcHhwX3Byb3RlY3RlZF9zZXNzaW9uIC0gc3Ry dWN0dXJlIHRvIHRyYWNrIGFsbCBhY3RpdmUNCj4gc2Vzc2lvbnMuDQo+ICsgKi8NCj4gK3N0cnVj dCBweHBfcHJvdGVjdGVkX3Nlc3Npb24gew0KPiArwqDCoMKgwqDCoMKgwqAvKiogQGluZGV4OiBO dW1lcmljIGlkZW50aWZpZXIgZm9yIHRoaXMgcHJvdGVjdGVkIHNlc3Npb24gKi8NCj4gK8KgwqDC oMKgwqDCoMKgaW50IGluZGV4Ow0KPiArwqDCoMKgwqDCoMKgwqAvKiogQHR5cGU6IFR5cGUgb2Yg c2Vzc2lvbiAqLw0KPiArwqDCoMKgwqDCoMKgwqBpbnQgdHlwZTsNCj4gK8KgwqDCoMKgwqDCoMKg LyoqIEBwcm90ZWN0aW9uX21vZGU6IG1vZGUgb2YgcHJvdGVjdGlvbiByZXF1ZXN0ZWQgKi8NCj4g K8KgwqDCoMKgwqDCoMKgaW50IHByb3RlY3Rpb25fbW9kZTsNCj4gKw0KPiArwqDCoMKgwqDCoMKg wqAvKioNCj4gK8KgwqDCoMKgwqDCoMKgICogQGlzX2luX3BsYXk6IGluZGljYXRlcyB3aGV0aGVy IHRoZSBzZXNzaW9uIGhhcyBiZWVuDQo+IGVzdGFibGlzaGVkDQo+ICvCoMKgwqDCoMKgwqDCoCAq wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW4gdGhlIEhXIHJvb3Qgb2YgdHJ1c3QgaWYgdGhp cyBmbGFnIGlzDQo+IGZhbHNlLCBpdA0KPiArwqDCoMKgwqDCoMKgwqAgKsKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGluZGljYXRlcyBhbiBhcHBsaWNhdGlvbiBoYXMgcmVzZXJ2ZWQgdGhpcw0K PiBzZXNzaW9uLA0KPiArwqDCoMKgwqDCoMKgwqAgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGJ1dCBoYXMgbm90ICogZXN0YWJsaXNoZWQgdGhlIHNlc3Npb24gaW4gdGhlDQo+ICvCoMKgwqDC oMKgwqDCoCAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaGFyZHdhcmUgeWV0Lg0KPiArwqDC oMKgwqDCoMKgwqAgKi8NCj4gK8KgwqDCoMKgwqDCoMKgYm9vbCBpc19pbl9wbGF5Ow0KPiArfTsN Cj4gKw0KPiDCoC8qIHN0cnVjdCBweHBfY29udGV4dCAtIFJlcHJlc2VudHMgY29tYmluZWQgdmll dyBvZiBkcml2ZXIgYW5kDQo+IGxvZ2ljYWwgSFcgc3RhdGVzLiAqLw0KPiDCoHN0cnVjdCBweHBf Y29udGV4dCB7DQo+IMKgwqDCoMKgwqDCoMKgwqAvKiogQG11dGV4OiBtdXRleCB0byBwcm90ZWN0 IHRoZSBweHAgY29udGV4dCAqLw0KPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IG11dGV4IG11dGV4 Ow0KPiDCoA0KPiDCoMKgwqDCoMKgwqDCoMKgYm9vbCBpbml0ZWQ7DQo+ICsNCj4gK8KgwqDCoMKg wqDCoMKgc3RydWN0IHB4cF9wcm90ZWN0ZWRfc2Vzc2lvbiBhcmJfc2Vzc2lvbjsNCj4gK8KgwqDC oMKgwqDCoMKgdTMyIGFyYl9zZXNzaW9uX3B4cF90YWc7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKg Ym9vbCBmbGFnX2Rpc3BsYXlfaG1fc3VyZmFjZV9rZXlzOw0KPiDCoH07DQo+IMKgDQo+IMKgc3Ry dWN0IGludGVsX3B4cCB7DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=