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=-1.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,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 C072BC67839 for ; Fri, 14 Dec 2018 13:48:09 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8732A20656 for ; Fri, 14 Dec 2018 13:48:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Y97lU7do"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=cadence.com header.i=@cadence.com header.b="LmmDrGVC"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=cadence.com header.i=@cadence.com header.b="eaG5qbgt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8732A20656 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=cadence.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=GgJKKhH2WKWsrCogthqKJpWfIJfQDwKTofioofMS0b0=; b=Y97lU7doWMQtS+ jPl6HxR0Rsb3NVtKWsqFAoLxqDTwBLyd69PNOrfUAJGff/3rk9FZ1YgYQNcIl/CKgoeRjCjoisnhO TiuhGfQuBi+DuaTlYiOqr0+V0mFU6ewnOQgfoALmd1grXbjRizFCi/J97NvGA20SV1B1ySgOP4fU9 dr5IH3Ze9Bia80gJQTx0Z2LNj9+66o9KC8uW+SRfiSjD2anfUxq3yKkOr0lKZU44o2uAMTSqzCN9W xP/lvjOkuVw1wwYmIX210g9A3JRBGLE3f3sS2OcMM0USA8x7qV0jnIn03f+eihldJ7xu/dsb/jqN+ jezABvKOTOyDaQ7xCcrg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gXnp2-0004uu-UM; Fri, 14 Dec 2018 13:48:08 +0000 Received: from mx0a-0014ca01.pphosted.com ([208.84.65.235]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gXnou-0004tv-Gc for linux-i3c@lists.infradead.org; Fri, 14 Dec 2018 13:48:07 +0000 Received: from pps.filterd (m0042385.ppops.net [127.0.0.1]) by mx0a-0014ca01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id wBEDborB008484; Fri, 14 Dec 2018 05:47:42 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=proofpoint; bh=Ugqi5RzeFg7nbmCE+j9ax9tqerOEqX+lzAOM9mY7tlQ=; b=LmmDrGVCevas+Sz+woLlm1zKM8ODoeuU29jc7GnJwK5yTdJyI1eF8feX/R8o2go3N8Lc jRSc/Q7eNZhKj6/5xEVgqLskY3sMG8NiPCWlH6QOcLN9o8dgn7GlFoKaV5nADlpUh2Yy K98Co4l+zDnAxOagqjmrEyPn37jFssZhEKyVp+OzJILMUgJ5dymiZFRSIbmChzYcqyvs nBzqpy4M3D41JMfR8FcSkFJYm//r8o0HIZkXz2KTpfZ+UBFtmIj9Wi3evYLpNGOYitua 4Gvdt+OwnDvByc1LIAsgER4/bd4jhRxbCHH7dtdd9q3mFIm8PHfc4C4y+J0uWCu7wfBZ zA== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=pgaj@cadence.com Received: from nam04-sn1-obe.outbound.protection.outlook.com (mail-sn1nam04lp2052.outbound.protection.outlook.com [104.47.44.52]) by mx0a-0014ca01.pphosted.com with ESMTP id 2pc8st19yy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 14 Dec 2018 05:47:42 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ugqi5RzeFg7nbmCE+j9ax9tqerOEqX+lzAOM9mY7tlQ=; b=eaG5qbgtRmjNYPd26R5OiQhw6aTLg2mMGPtuMmFMFk6PfieAzm46iPUhxnEGtmOVyoYGdSKaeZEKvHt/eFHz71uHDs9TqZ9UEaTMEYJmUkG02dLE98cuqbCf3ugN1QYj5yC1MkpBDDY2r8qpn4dzYx2k+v5+hq1EKKbut9+mwyo= Received: from BYAPR07MB5144.namprd07.prod.outlook.com (20.176.254.209) by BYAPR07MB4631.namprd07.prod.outlook.com (52.135.204.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1425.19; Fri, 14 Dec 2018 13:47:39 +0000 Received: from BYAPR07MB5144.namprd07.prod.outlook.com ([fe80::b986:df71:96bf:309f]) by BYAPR07MB5144.namprd07.prod.outlook.com ([fe80::b986:df71:96bf:309f%3]) with mapi id 15.20.1425.021; Fri, 14 Dec 2018 13:47:39 +0000 From: Przemyslaw Gaj To: Boris Brezillon Subject: Re: [PATCH 1/2] i3c: Add support for mastership request to I3C subsystem Thread-Topic: [PATCH 1/2] i3c: Add support for mastership request to I3C subsystem Thread-Index: AQHUkt757JTaqWlguUiNWQhE11cuKqV8r9QAgAE0kICAAAKggIAAWmQA Date: Fri, 14 Dec 2018 13:47:39 +0000 Message-ID: <00C3A803-C011-4971-B7F8-BB5B838D9AE4@cadence.com> References: <68ffa8026fb3cc32415058861ece07f158b00647.1544703840.git.pgaj@cadence.com> <20181213145020.124cb103@bbrezillon> <20181214092407.4882ef31@bbrezillon> In-Reply-To: <20181214092407.4882ef31@bbrezillon> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [185.217.253.59] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BYAPR07MB4631; 20:o50/NU7L0LCZ1a9d1nmu14E15C7n9377CGXE/JpBEuBnZKjqsLVSJiD/otBHb1r+QtmmXHbhn+7VQotrMECcrJh2A3cOrd2CvVir5IvrqLgrloK7yjmwLPGSp9+xTWnUKb0isyZFqjQLUhsuZ8bAen7sry96bR6KyyPdAFH/eJu4yfIKlLQB9EoUl8CQEnA0m4V7k/uABcd9qvPnFkTQJmLiIi54wNjVzQyDn0EJmJBlkfg1etba9EGm58PeDoQ3 x-ms-office365-filtering-correlation-id: de26b73c-7b67-44bd-820e-08d661cab6b4 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BYAPR07MB4631; x-ms-traffictypediagnostic: BYAPR07MB4631: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(999002)(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231475)(944501520)(52105112)(148016)(149066)(150057)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:BYAPR07MB4631; BCL:0; PCL:0; RULEID:; SRVR:BYAPR07MB4631; x-forefront-prvs: 08864C38AC x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(136003)(396003)(39860400002)(366004)(376002)(51444003)(189003)(199004)(36092001)(43544003)(54906003)(186003)(36756003)(76176011)(478600001)(6512007)(6436002)(53936002)(4326008)(6486002)(86362001)(316002)(25786009)(6506007)(53546011)(6246003)(102836004)(14444005)(256004)(5024004)(26005)(4744004)(229853002)(83716004)(97736004)(71200400001)(71190400001)(93886005)(561944003)(8936002)(82746002)(33656002)(99286004)(305945005)(5660300001)(66066001)(68736007)(106356001)(14454004)(8676002)(7736002)(486006)(6116002)(3846002)(11346002)(476003)(105586002)(446003)(81156014)(2906002)(81166006)(6916009)(2616005); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR07MB4631; H:BYAPR07MB5144.namprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: cadence.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: iueBbnui0GXRb1meRxvblZcBv+98Kw6X9Itj+pLTgiFA6KN8PTTQGA3wNJMeeRDHb/sqwGJGAB9u3vBaZDMVU0Ty7vroDm9rCiUCAalucavmeuyk0QFEugU+Q/pz/62LhVv1kN/s5ZrX0+N4iKFmBCn95YGN3BZ5JzSpyTSCBCbIuquxgG/4iJukqmN6jz8umguEK29hpCaXB8tigamElIVn4YzqaF5jo4Z5/t9XznBSmrXNuIJZn72nmtEiJpYi1qppZU9NpLJ9CPPiaDr7KCbXHCxHplZrSYQkQCOy4ZZXiZCzBfg24jwyCNnXDvZU spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: <0C0E1A9A5DFDEC499B30854FC78C7226@namprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: cadence.com X-MS-Exchange-CrossTenant-Network-Message-Id: de26b73c-7b67-44bd-820e-08d661cab6b4 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2018 13:47:39.4523 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR07MB4631 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 include:_spf.salesforce.com include:mktomail.com include:spf-0014ca01.pphosted.com include:spf.protection.outlook.com include:auth.msgapp.com include:spf.mandrillapp.com ~all X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-12-14_07:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_check_notspam policy=outbound_check score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1812140122 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181214_054800_861049_D4A95CAB X-CRM114-Status: GOOD ( 32.66 ) X-BeenThere: linux-i3c@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux I3C List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linux-i3c@lists.infradead.org" , Przemyslaw Sroka , Rafal Ciepiela , "vitor.soares@synopsys.com" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-i3c" Errors-To: linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org SGkgQm9yaXMsDQoNCj4gT24gRGVjIDE0LCAyMDE4LCBhdCA5OjI0IEFNLCBCb3JpcyBCcmV6aWxs b24gPGJicmV6aWxsb25Aa2VybmVsLm9yZz4gd3JvdGU6DQo+IA0KPiBFWFRFUk5BTCBNQUlMDQo+ IA0KPiANCj4gSGkgUHJ6ZW1laywNCj4gDQo+IE9uIEZyaSwgMTQgRGVjIDIwMTggMDc6MTQ6NDQg KzAwMDANCj4gUHJ6ZW15c2xhdyBHYWogPHBnYWpAY2FkZW5jZS5jb20+IHdyb3RlOg0KPiANCj4+ PiBNYXN0ZXJzaGlwIHJlcXVlc3Qgb2NjdXJzIGluIHRoZSBmb2xsb3dpbmcgY2FzZXM6DQo+Pj4g LSBNYXN0ZXJzaGlwIGlzIHJlcXVlc3RlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIHNlY29uZGFyeSBt YXN0ZXINCj4+PiByZWNlaXZlcyBtYXN0ZXJzaGlwIEVORUMgZXZlbnQuIFRoaXMgYWxsb3dzIHNl Y29uZGFyeSBtYXN0ZXJzIHRvDQo+Pj4gaW5pdGlhbGl6ZSB0aGVpciBidXMgIA0KPj4gDQo+PiAg ICBJIGd1ZXNzIHRoaXMgb25seSBoYXBwZW5zIHdoZW4gdGhlIHNlY29uZGFyeSBtYXN0ZXIgcmVj ZWl2ZWQgYSBERUZTTFZTDQo+PiAgICBwYWNrZXQsIHJpZ2h0Pw0KPj4gDQo+PiBBY3R1YWxseSwg dGhpcyBoYXBwZW5zIHdoZW4gY3VycmVudCBtYXN0ZXIgZW5hYmxlcyBNUiBldmVudC4gDQo+PiBI ZSBzaG91bGQgdGFrZSBjYXJlIG9mIHByb3ZpZGluZyBkZXZpY2VzIGxpc3QuDQo+PiBPZiBjb3Vy c2UsIHdlIGNhbiBjb25zaWRlciBhZGRpbmcgYSBmbGFnIHdoaWNoIGluZGljYXRlcyBpZiBzbGF2 ZXMgYXJlIGFscmVhZHkgZGVmaW5lZCBvciBub3QuDQo+IA0KPiBpM2NfbWFzdGVyX2FkZF9pM2Nf ZGV2X2xvY2tlZCgpIGFscmVhZHkgaGFuZGxlcyB0aGlzICJkZXZpY2UgaXMgYWxyZWFkeQ0KPiBr bm93bi9yZWdpc3RlcmVkIiBjYXNlLCBzbyB0aGF0IHNob3VsZG4ndCBiZSBhIHByb2JsZW0uDQoN CkkgbWVhbnQgZGVmaW5lZCBieSBERUZTTFZTIGNvbW1hbmQgd2hlbiBJIHdyb3RlICJzbGF2ZXMg YXJlIGFscmVhZHkgZGVmaW5lZCIuDQpJIGtub3cgaTNjX21hc3Rlcl9hZGRfaTNjX2Rldl9sb2Nr ZWQoKSBoYW5kbGVzIHN1Y2ggY2FzZXMuIFRoaXMgZmxhZyBjb3VsZCANCmluZGljYXRlIHRoYXQg d2UgYWxyZWFkeSBnb3QgREVGU0xWUyBhbmQgdGhlbiAoYWZ0ZXIgRU5FQyhNUikpIHdlIGNvdWxk IGNoZWNrIA0KaWYgc2xhdmVzIHdlcmUgZGVmaW5lZCBhbmQgZmluaXNoIGJ1cyBpbml0aWFsaXph dGlvbi4NCg0KPiANCj4+PiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGkzY19idXNfbW9kZV9z dHJpbmdzW10gPSB7DQo+Pj4gCVtJM0NfQlVTX01PREVfUFVSRV0gPSAicHVyZSIsDQo+Pj4gCVtJ M0NfQlVTX01PREVfTUlYRURfRkFTVF0gPSAibWl4ZWQtZmFzdCIsDQo+Pj4gQEAgLTQ5MSw4ICs1 MDAsMTUgQEAgc3RhdGljIHNzaXplX3QgY3VycmVudF9tYXN0ZXJfc2hvdyhzdHJ1Y3QgZGV2aWNl ICpkZXYsDQo+Pj4gCQkJCSAgIGNoYXIgKmJ1ZikNCj4+PiB7DQo+Pj4gCXN0cnVjdCBpM2NfYnVz ICppM2NidXMgPSBkZXZfdG9faTNjYnVzKGRldik7DQo+Pj4gKwlzdHJ1Y3QgaTNjX21hc3Rlcl9j b250cm9sbGVyICptYXN0ZXI7DQo+Pj4gCXNzaXplX3QgcmV0Ow0KPj4+IA0KPj4+ICsJaWYgKCFp M2NidXMtPmN1cl9tYXN0ZXIpIHsNCj4+PiArCQltYXN0ZXIgPSBjb250YWluZXJfb2YoaTNjYnVz LCBzdHJ1Y3QgaTNjX21hc3Rlcl9jb250cm9sbGVyLCBidXMpOw0KPj4+ICsJCWlmIChpM2NfbWFz dGVyX3JlcXVlc3RfbWFzdGVyc2hpcChtYXN0ZXIpKQ0KPj4+ICsJCQlyZXR1cm4gc3ByaW50Zihi dWYsICJ1bmtub3duXG4iKTsNCj4+PiArCX0gIA0KPj4gDQo+PiAgICBIbSwgd2h5IGlzIHRoYXQg bmVlZGVkPyBXaGVuIHlvdSBhcmUgYSBzZWNvbmRhcnkgbWFzdGVyIC0+Y3VyX21hc3Rlcg0KPj4g ICAgc2hvdWxkIGJlIHNldCB0byB0aGUgaTNjX2Rldl9kZXNjIHJlcHJlc2VudGluZyB0aGUgbWFp biBtYXN0ZXIgYXQgaW5pdA0KPj4gICAgdGltZS4NCj4+IA0KPj4gSSBkbyBub3QgYWRkIGRldmlj ZXMgYXQgaW5pdGlhbGl6YXRpb24gdGltZSwgc28gc2Vjb25kYXJ5IG1hc3RlciBkb2VzIG5vdCBo YXZlIGkzY19kZXZfZGVzYyBvYmplY3QgZGVzY3JpYmluZyBtYWluIG1hc3Rlci4NCj4+IERFRlNM VlMgaXMgcHJvdmlkaW5nIHVzIGluY29tcGxldGUgaW5mb3JtYXRpb24sIHdlIGRvbuKAmXQgaGF2 ZSBQSUQgeWV0LiBQSUQgaXMgcmV0cmlldmVkIGZyb20gZGV2aWNlIHdoZW4gc2Vjb25kYXJ5IG1h c3RlciBhZGRzIGRldmljZS4gDQo+PiBUaGlzIGlzIHBvc3NpYmxlIG9ubHkgaWYgY3VycmVudCBt YXN0ZXIgaXMgcmVhZHkgdG8gcmVsaW5xdWlzaCBidXMgY29udHJvbC4NCj4+IA0KPj4gSSBkZWNp ZGVkIHRvIHNldCBjdXJfbWFzdGVyIGFmdGVyIHNlY29uZGFyeSBtYXN0ZXIgY29tcGxldGVseSBp bml0aWFsaXplZCBoaXMgYnVzLiBXaGF0IGRvIHlvdSB0aGluaz8NCj4gDQo+IE1heWJlIHdlIHNo b3VsZCBub3QgaW5pdGlhbGl6ZSB0aGUgYnVzIHVudGlsIHdlIGhhdmUgREVGU0xWUw0KPiBpbmZv cm1hdGlvbiB0aGVuLg0KDQpJdCBpcyBnb29kIGlkZWEuIFdlIGNhbiB1c2UgREVGU0xWUyBpbnN0 ZWFkIG9mIEVORUMoTVIpIGV2ZW50IGFzIGEgdHJpZ2dlcg0KZm9yIHNlY29uZGFyeSBtYXN0ZXIg YnVzIGluaXRpYWxpemF0aW9uIG9yIGJvdGguIEkgYXNzdW1lZCB0aGF0IG1haW4gbWFzdGVyIHdp bGwgDQpub3Qgc2VuZCBFTkVDKE1SKSB3aXRob3V0IHNlbmRpbmcgREVGU0xWUyBhbmQgRU5FQyhN Uikgd2lsbCBsZXQgc2Vjb25kYXJ5IA0KbWFzdGVyIGtub3cgdGhhdCBub3Qgb25seSBzbGF2ZSBs aXN0IGlzIGRlZmluZWQsIGJ1dCBhbHNvIGhlIGNhbiByZXF1ZXN0IG1hc3RlcnNoaXAuDQoNCj4g DQo+PiANCj4+PiAJCXJldHVybiAtRUlOVkFMOw0KPj4+IA0KPj4+IAlpZiAobWFzdGVyLT50aGlz KQ0KPj4+IEBAIC0xNTY5LDcgKzE2MjgsOCBAQCBpbnQgaTNjX21hc3Rlcl9zZXRfaW5mbyhzdHJ1 Y3QgaTNjX21hc3Rlcl9jb250cm9sbGVyICptYXN0ZXIsDQo+Pj4gCQlyZXR1cm4gUFRSX0VSUihp M2NkZXYpOw0KPj4+IA0KPj4+IAltYXN0ZXItPnRoaXMgPSBpM2NkZXY7DQo+Pj4gLQltYXN0ZXIt PmJ1cy5jdXJfbWFzdGVyID0gbWFzdGVyLT50aGlzOw0KPj4+ICsJaWYgKG1hc3Rlci0+b3BfbW9k ZSA9PSBJM0NfTUFTVEVSX01PREUpDQo+Pj4gKwkJbWFzdGVyLT5idXMuY3VyX21hc3RlciA9IG1h c3Rlci0+dGhpczsgIA0KPj4gDQo+PiAgICBXaGVuIHlvdSBoYXJlIGEgc2Vjb25kYXJ5IG1hc3Rl ciwgeW91IHNob3VsZCBtYWtlIC0+Y3VyX21hc3RlciBwb2ludCB0bw0KPj4gICAgYW4gaTNjX2Rl dl9kZXNjIGRlc2NyaWJpbmcgdGhlIGN1cnJlbnQvbWFpbiBtYXN0ZXIuIFNob3VsZCBiZSBwb3Nz aWJsZQ0KPj4gICAgdGhhbmtzIHRvIHRoZSBERUZTTFZTIGluZm8uDQo+PiANCj4+IEFzIEkgc2Fp ZCBiZWZvcmUgaXQncyBub3Qgc28gZWFzeSB3aXRoIERFRlNMVlMuIA0KPj4gV2UgY2FuIGNvbnNp ZGVyIGNyZWF0aW5nIGRldmljZSBsaXN0IHdpdGhvdXQgZnVsbCBpbmZvcm1hdGlvbi4gRG8geW91 IGFncmVlPw0KPiANCj4gV2UgY2FuIGp1c3QgbGVhdmUgLT5jdXJfbWFzdGVyIHRvIE5VTEwgYXQg Zmlyc3QgYW5kIGhhdmUgdGhlIGZvbGxvd2luZw0KPiBmdW5jdGlvbjoNCj4gDQo+IHN0YXRpYyBi b29sIGkzY19tYXN0ZXJfb3duc19idXMoc3RydWN0IGkzY19tYXN0ZXJfY29udHJvbGxlciAqbWFz dGVyKQ0KPiB7DQo+IAlyZXR1cm4gbWFzdGVyLT5idXMtPmN1cl9tYXN0ZXIgPT0gbWFzdGVyLT50 aGlzOw0KPiB9DQo+IA0KPiBSZWdhcmRpbmcgdGhlIHByb3Bvc2FsIHRvIGhhdmUgYSBwYXJ0aWFs bHkgZGlzY292ZXJlZCBkZXZpY2UgbGlzdCwgd2h5DQo+IG5vdCwgZGVwZW5kcyB3aGF0IHdlIHdh bnQgdG8gZG8gd2l0aCB0aGF0Lg0KPiANCj4+IA0KPj4+IA0KPj4+IAlyZXQgPSBpM2NfbWFzdGVy X2F0dGFjaF9pM2NfZGV2KG1hc3RlciwgaTNjZGV2KTsNCj4+PiAJaWYgKHJldCkNCj4+PiBAQCAt MTcyNyw2ICsxNzg3LDEyIEBAIHN0YXRpYyBpbnQgaTNjX21hc3Rlcl9idXNfaW5pdChzdHJ1Y3Qg aTNjX21hc3Rlcl9jb250cm9sbGVyICptYXN0ZXIpDQo+Pj4gCX0NCj4+PiANCj4+PiAJLyoNCj4+ PiArCSAqIERvbid0IHJlc2V0IGFkZHJlc3NlcyBpZiB0aGlzIGlzIHNlY29uZGFyeSBtYXN0ZXIu DQo+Pj4gKwkgKiBTZWNvbmRhcnkgbWFzdGVycyBjYW4ndCBkbyBEQUEuDQo+Pj4gKwkgKi8gIA0K Pj4gDQo+PiAgICBIbSwgSSdtIG5vdCBzdXJlIGhvdyB0aGF0J3Mgc3VwcG9zZWQgdG8gd29yay4g V2hhdCBpZiB0aGUgc2Vjb25kYXJ5DQo+PiAgICBtYXN0ZXIgd2FzIGluaXRpYWxpemVkIGJ5IHRo ZSBib290bG9hZGVyLiBEb24ndCB5b3UgbmVlZCB0byByZXNldA0KPj4gICAgc29tZXRoaW5nIGFu ZCBtYXliZSB0cmlnZ2VyIGEgTVNUUkVRK0RBQSBvciBhIEhvdEpvaW4/DQo+PiANCj4+IEV2ZW4g aWYgc2Vjb25kYXJ5IG1hc3RlciBkb2VzIE1TVFJFUSwgaGUgY2FuJ3QgZG8gREFBLiBIZSBjYW4n dCBtYW5hZ2UgdGhlIGJ1cywgb25seSBtYWluIG1hc3RlciBjYW4gZG8gdGhhdC4NCj4+IEknbGwg cG9pbnQgdGhpcyBpbmZvcm1hdGlvbiBpbiBzcGVjIGJlbG93Lg0KPiANCj4gVGhhbmtzLg0KPiAN Cj4+IA0KPj4gSSdtIHdvbmRlcmluZyBhYm91dCBIb3RKb2luLiBJIGNhbid0IGZpbmQgdGhpcyB1 c2UgY2FzZSBpbiBteSBtaW5kLg0KPj4+ICsJLyoNCj4+PiArCSAqIFdlIGNhbiByZWdpc3RlciBJ M0MgZGV2aWNlcyByZWNlaXZlZCBmcm9tIG1hc3RlciBieSBERUZTTFZTLg0KPj4+ICsJICovDQo+ Pj4gKwltYXN0ZXItPmluaXRfZG9uZSA9IHRydWU7ICANCj4+IA0KPj4gICAgSSB0aGluayB0aGlz IHNob3VsZCBiZSBzZXQgYmVmb3JlIHRoYXQsIGluIHRoZSBpM2NfbWFzdGVyX3JlZ2lzdGVyKCkN Cj4+ICAgIGZ1bmN0aW9uLiBXaGVuIGEgc2Vjb25kYXJ5IG1hc3RlciBpcyBpbml0aWFsaXplZCwg aXQgc2hvdWxkIHBvcHVsYXRlDQo+PiAgICB0aGUgZGV2IGxpc3QgYmFzZWQgb24gYSBwcmV2aW91 cyBERUZTTFZTIGZyYW1lIGl0IGhhcyByZWNlaXZlZCBiZWZvcmUNCj4+ICAgIHRoZSAtPnByb2Jl KCkgY2FsbCwgb3IganVzdCBzdGFydCB3aXRoIGFuIGVtcHR5IGxpc3QuDQo+PiANCj4+IFNhbWUg aGVyZS4gSSBkbyBub3QgcG9wdWxhdGUgbGlzdCBvZiBkZXZpY2VzIHVudGlsIEknbSBhYmxlIHRv IGdldCBmdWxsIGluZm9ybWF0aW9uIGZyb20gZGV2aWNlcy4NCj4gDQo+IENvcnJlY3QuIEJ1dCAt PmluaXRfZG9uZSBzaG91bGQgYmUgc2V0IGJlZm9yZSB0aGF0IElNTywgdW5sZXNzIHdlDQo+IGRl Y2lkZSB0byBkZWZlciBidXMgaW5pdGlhbGl6YXRpb24gYWZ0ZXIgREVGU0xWUy9FTkVDKE1SKS4N Cg0KWWVzLCB3ZSBuZWVkIGRlY2lzaW9uIHRvIGtub3cgd2hpY2ggcGF0aCB0byBjaG9vc2UgOikN Cg0KPiANCj4+IA0KPj4+ICsJaTNjX2J1c19ub3JtYWx1c2VfbG9jaygmbWFzdGVyLT5idXMpOw0K Pj4+ICsJaTNjX21hc3Rlcl9yZWdpc3Rlcl9uZXdfaTNjX2RldnMobWFzdGVyKTsNCj4+PiArCWkz Y19idXNfbm9ybWFsdXNlX3VubG9jaygmbWFzdGVyLT5idXMpOw0KPj4+ICt9DQo+Pj4gKw0KPj4+ IC8qKg0KPj4+ICAqIGkzY19tYXN0ZXJfcmVnaXN0ZXIoKSAtIHJlZ2lzdGVyIGFuIEkzQyBtYXN0 ZXINCj4+PiAgKiBAbWFzdGVyOiBtYXN0ZXIgdXNlZCB0byBzZW5kIGZyYW1lcyBvbiB0aGUgYnVz DQo+Pj4gICogQHBhcmVudDogdGhlIHBhcmVudCBkZXZpY2UgKHRoZSBvbmUgdGhhdCBwcm92aWRl cyB0aGlzIEkzQyBtYXN0ZXINCj4+PiAgKgkgICAgY29udHJvbGxlcikNCj4+PiAgKiBAb3BzOiB0 aGUgbWFzdGVyIGNvbnRyb2xsZXIgb3BlcmF0aW9ucw0KPj4+IC0gKiBAc2Vjb25kYXJ5OiB0cnVl IGlmIHlvdSBhcmUgcmVnaXN0ZXJpbmcgYSBzZWNvbmRhcnkgbWFzdGVyLiBXaWxsIHJldHVybg0K Pj4+IC0gKgkgICAgICAgLUVOT1RTVVBQIGlmIHNldCB0byB0cnVlIHNpbmNlIHNlY29uZGFyeSBt YXN0ZXJzIGFyZSBub3QgeWV0DQo+Pj4gLSAqCSAgICAgICBzdXBwb3J0ZWQNCj4+PiArICogQHNl Y29uZGFyeTogdHJ1ZSBpZiB5b3UgYXJlIHJlZ2lzdGVyaW5nIGEgc2Vjb25kYXJ5IG1hc3Rlci4N Cj4+PiAgKg0KPj4+ICAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgY2FyZSBvZiBldmVyeXRoaW5nIGZv ciB5b3U6DQo+Pj4gICoNCj4+PiBAQCAtMjQyNCwxMCArMjU1OSw2IEBAIGludCBpM2NfbWFzdGVy X3JlZ2lzdGVyKHN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKm1hc3RlciwNCj4+PiAJc3Ry dWN0IGkyY19kZXZfYm9hcmRpbmZvICppMmNiaTsNCj4+PiAJaW50IHJldDsNCj4+PiANCj4+PiAt CS8qIFdlIGRvIG5vdCBzdXBwb3J0IHNlY29uZGFyeSBtYXN0ZXJzIHlldC4gKi8NCj4+PiAtCWlm IChzZWNvbmRhcnkpDQo+Pj4gLQkJcmV0dXJuIC1FTk9UU1VQUDsNCj4+PiAtDQo+Pj4gCXJldCA9 IGkzY19tYXN0ZXJfY2hlY2tfb3BzKG9wcyk7DQo+Pj4gCWlmIChyZXQpDQo+Pj4gCQlyZXR1cm4g cmV0Ow0KPj4+IEBAIC0yNDM5LDYgKzI1NzAsNyBAQCBpbnQgaTNjX21hc3Rlcl9yZWdpc3Rlcihz dHJ1Y3QgaTNjX21hc3Rlcl9jb250cm9sbGVyICptYXN0ZXIsDQo+Pj4gCW1hc3Rlci0+ZGV2LnJl bGVhc2UgPSBpM2NfbWFzdGVyZGV2X3JlbGVhc2U7DQo+Pj4gCW1hc3Rlci0+b3BzID0gb3BzOw0K Pj4+IAltYXN0ZXItPnNlY29uZGFyeSA9IHNlY29uZGFyeTsNCj4+PiArCW1hc3Rlci0+b3BfbW9k ZSA9IHNlY29uZGFyeSA/IEkzQ19TTEFWRV9NT0RFIDogSTNDX01BU1RFUl9NT0RFOw0KPj4+IAlJ TklUX0xJU1RfSEVBRCgmbWFzdGVyLT5ib2FyZGluZm8uaTJjKTsNCj4+PiAJSU5JVF9MSVNUX0hF QUQoJm1hc3Rlci0+Ym9hcmRpbmZvLmkzYyk7DQo+Pj4gDQo+Pj4gQEAgLTI0OTcsNiArMjYyOSwx MyBAQCBpbnQgaTNjX21hc3Rlcl9yZWdpc3RlcihzdHJ1Y3QgaTNjX21hc3Rlcl9jb250cm9sbGVy ICptYXN0ZXIsDQo+Pj4gCQlnb3RvIGVycl9kZWxfZGV2Ow0KPj4+IA0KPj4+IAkvKg0KPj4+ICsJ ICogV2UgY2FuIHN0b3AgaGVyZS4gRGV2aWNlcyB3aWxsIGJlIGF0dGFjaGVkIGFmdGVyIGJ1cyB0 YWtlb3Zlci4NCj4+PiArCSAqIFNlY29uZGFyeSBtYXN0ZXJzIGNhbid0IGRvIERBQS4NCj4+PiAr CSAqLw0KPj4+ICsJaWYgKG1hc3Rlci0+c2Vjb25kYXJ5KQ0KPj4+ICsJCXJldHVybiAwOyAgDQo+ PiANCj4+ICAgIFNlZSwgSSBkb24ndCB0aGluayB3ZSBzaG91bGQgc3RvcCBoZXJlLiBXZSBzaG91 bGQgcHJvdmlkZSBhIGhvb2sgdG8gbGV0DQo+PiAgICBzZWNvbmRhcnkgc2xhdmVzIHBvcHVsYXRl IHRoZSBkZXYgbGlzdCBiYXNlZCBvbiBkYXRhIHRoZXkgbWlnaHQgaGF2ZQ0KPj4gICAgcmVjZWl2 ZWQgYmVmb3JlIHRoYXQuDQo+PiANCj4+IERvIHdlIHdhbnQgdG8gcG9wdWxhdGUgbGlzdCB3aXRo IGRhdGEgcmVjZWl2ZWQgYnkgREVGU0xWUz8gDQo+IA0KPiBJIGd1ZXNzIHdlIGRvLiBJIG1lYW4s IHdlIHNob3VsZG4ndCBwb3B1bGF0ZSB0aGUgbGlzdCBkaXJlY3RseSwgYnV0DQo+IHdlIHNob3Vs ZCByZXF1ZXN0IGJ1cyBvd25lcnNoaXAsIGFuZCB0aGVuIGFkZCBJM0MgZGV2aWNlcyBvbmUgYnkg b25lDQo+IHVzaW5nIGkzY19tYXN0ZXJfYWRkX2kzY19kZXZfbG9ja2VkKCkuIFRoaXMgZnVuY3Rp b24gd2lsbCBkbyB0aGUgcmVzdA0KPiAocXVlcnkgUElELCBCQ1IsIERDUiwgLi4uIGFuZCB0aGVu IGFkZCB0aGUgZGV2aWNlIHRvIHRoZSBsaXN0KS4NCj4gDQo+PiBJZiB5ZXMsIEkgY2FuIHBvcHVs YXRlIGxpc3QgYnV0IHdlIGFyZSBub3QgYWJsZSB0byByZWdpc3RlciBkZXZpY2VzIGJlY2F1c2Ug d2UgZG9u4oCZdCBoYXZlIA0KPj4gUElEIHlldCBhbmQgZGV2aWNlIGRyaXZlcnMgYXJlIG1hdGNo ZWQgYnkgUElELg0KPiANCj4gTm93IEkgdW5kZXJzdGFuZCB3aHkgeW91IHdhbnQgaXQgdG8gYmUg ZHJpdmVuIGJ5IEVORUMoTVIpLiBDYW4ndCB3ZQ0KPiBoYXZlIGEgc2l0dWF0aW9uIHdoZXJlIGkz Y19tYXN0ZXJfcmVnaXN0ZXIoKSBpcyBjYWxsZWQgYWZ0ZXIgaXQgaGFzDQo+IHJlY2VpdmVkIGJv dGggREVGU0xWIGFuZCBFTkVDKE1SKS4gU2hvdWxkbid0IHdlIHJlcXVlc3QgYnVzIG93bmVyc2hp cA0KPiBkaXJlY3RseSBhdCBpbml0IHRpbWUgaW4gdGhpcyBjYXNlLg0KDQpJIHRoaW5rIGl0J3Mg cG9zc2libGUgYW5kIEkgdGhpbmsgd2Ugc2hvdWxkIHJlcXVlc3QgbWFzdGVyc2hpcCBhbmQgZmlu aXNoDQppbml0aWFsaXphdGlvbiBpbiB0aGlzIGNhc2UuIEFuZCB3aGF0IGlmIE1SIGlzIGRpc2Fi bGVkIGR1cmluZyBpbml0aWFsaXphdGlvbj8NCkRvIHdlIHdhbnQgdG8gd2FpdCBmb3IgREVGU0xW UyBvciBFTkVDKE1SKSBldmVudCBhbmQgdGhlbiBmaW5pc2gNCmluaXRpYWxpemF0aW9uPyBJIGp1 c3Qgd2FudGVkIHRvIGhhdmUgZ2VuZXJpYyBzb2x1dGlvbiBmb3IgYm90aCBjYXNlcy4NCg0KPiAN Cj4gTG9va3MgbGlrZSBhbGwgb2YgdGhpcyB3aWxsIGJlIEkzQyBtYXN0ZXIgY29udHJvbGxlciBk cml2ZW4gdGhvdWdoLCBzbw0KPiBtYXliZSBpdCdzIGp1c3QgYmV0dGVyIHRvIGxldCBtYXN0ZXIg ZHJpdmVycyBoYW5kbGUgYWxsIG9mIHRoYXQgb24NCj4gdGhlaXIgb3duLg0KDQpTbywgSSBjYW4g dHJ5IGFkZGluZyBkZXZpY2VzIHJlY2VpdmVkIGJ5IERFRlNMVlMgb24gZHJpdmVyIHNpZGUgYW5k DQp0aGVuIGNhbGwgaTNjX21hc3Rlcl9yZWdpc3RlcigpLiBJcyB0aGF0IHdoYXQgeW91IG1lYW50 PyBJJ20gc29ycnkgaWYgSQ0KbWlzdW5kZXJzdG9vZCBzb21ldGhpbmcuDQoNCj4gDQo+Pj4gKwlp M2NfYnVzX21haW50ZW5hbmNlX2xvY2soJm1hc3Rlci0+YnVzKTsNCj4+PiArCXJldCA9IGkzY19t YXN0ZXJfZ2V0X2FjY21zdF9sb2NrZWQobWFzdGVyLCBpbmZvKTsNCj4+PiArCWkzY19idXNfbWFp bnRlbmFuY2VfdW5sb2NrKCZtYXN0ZXItPmJ1cyk7DQo+Pj4gKwlpZiAocmV0KQ0KPj4+ICsJCXJl dHVybiByZXQ7ICANCj4+IA0KPj4gICAgSG0sIHdpbGwgdGhpcyByZWFsbHkgd29yaz8gSSB0aG91 Z2h0IHRoZSBtYXN0ZXJzaGlwIGhhbmRvdmVyIHByb2NlZHVyZQ0KPj4gICAgaGFkIHRvIGJlIGRv bmUgYXRvbWljYWxseSAodXNpbmcgU3IgYmV0d2VlbiBlYWNoIHRyYW5zZmVyIHRvIGF2b2lkDQo+ PiAgICBleHRlcm5hbCBpbnRlcnJ1cHRpb25zKS4gSSBtaWdodCBiZSB3cm9uZyB0aG91Z2ggKG5l ZWQgdG8gcmVhZCB0aGUNCj4+ICAgIHNwZWMgdG8gcmVmcmVzaCBteSBtZW1vcnkpLg0KPj4gDQo+ PiBUaGVyZSB3b3VsZG4ndCBiZSBpbnRlcnJ1cHRpb24uIFNlY29uZGFyeSBtYXN0ZXIgbWF5IGFj ayBvciBuYWNrIHRoaXMgY29tbWFuZC4NCj4+IElmIGhlIGFja3MsIGl0J3MgZG9uZSwgaGUgYmVj YW1lIGN1cnJlbnQgbWFzdGVyLg0KPj4gSWYgaGUgbmFja3Mgb3IgdHJhbnNtaXRzIGluY29ycmVj dCBhZGRyZXNzLCBoZSB3aWxsIG5vdCBhY3F1aXJlIG1hc3RlcnNoaXAuDQo+IA0KPiBZZXAsIEkg cmVhbGl6ZWQgdGhhdCBhZnRlcndhcmRzLCB3aGVuIHJlYWRpbmcgdGhlIHNwZWMgYWdhaW4uDQo+ IA0KPj4gDQo+Pj4gKw0KPj4+ICsJcmV0dXJuIDA7DQo+Pj4gK30NCj4+PiArRVhQT1JUX1NZTUJP TF9HUEwoaTNjX21hc3Rlcl9tYXN0ZXJzaGlwX2Fjayk7DQo+Pj4gKw0KPj4+ICtzdGF0aWMgdm9p ZCBpM2Nfc2Vjb25kYXJ5X21hc3Rlcl9idXNfaW5pdChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmsp DQo+Pj4gK3sNCj4+PiArCXN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKm1hc3RlcjsNCj4+ PiArDQo+Pj4gKwltYXN0ZXIgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGkzY19tYXN0ZXJf Y29udHJvbGxlciwgbWFzdGVyc2hpcCk7DQo+Pj4gKw0KPj4+ICsJaWYgKGkzY19tYXN0ZXJfcmVx dWVzdF9tYXN0ZXJzaGlwKG1hc3RlcikpDQo+Pj4gKwkJZGV2X2VycigmbWFzdGVyLT5kZXYsICJN YXN0ZXJzaGlwIGZhaWxlZC4iKTsNCj4+PiArfQ0KPj4+ICsNCj4+PiArLyoqDQo+Pj4gKyAqIGkz Y19zZWNvbmRhcnlfbWFzdGVyX2V2ZW50c19lbmFibGVkKCkgLSBldmVudCBmcm9tIGN1cnJlbnQg bWFzdGVyDQo+Pj4gKyAqIEBtYXN0ZXI6IG1hc3RlciB1c2VkIHRvIHNlbmQgZnJhbWVzIG9uIHRo ZSBidXMNCj4+PiArICogQGV2dHM6IGVuYWJsZWQgZXZlbnRzDQo+Pj4gKyAqDQo+Pj4gKyAqIFRo aXMgZnVuY3Rpb24gYWxsb3dzIHRvIHBlcmZvcm0gcmVxdWlyZWQgb3BlcmF0aW9ucyBhZnRlciBj dXJyZW50DQo+Pj4gKyAqIG1hc3RlciBlbmFibGVzIHBhcnRpY3VsYXIgZXZlbnRzIG9uIHRoZSBi dXMuDQo+Pj4gKyAqLw0KPj4+ICt2b2lkIGkzY19zZWNvbmRhcnlfbWFzdGVyX2V2ZW50c19lbmFi bGVkKHN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKm1hc3RlciwNCj4+PiArCQkJCQkgdTgg ZXZ0cykNCj4+PiArew0KPj4+ICsJaWYgKChldnRzICYgSTNDX0NDQ19FVkVOVF9NUikgJiYNCj4+ PiArCSAgICAhbWFzdGVyLT5pbml0X2RvbmUpIHsNCj4+PiArCQlJTklUX1dPUksoJm1hc3Rlci0+ bWFzdGVyc2hpcCwgaTNjX3NlY29uZGFyeV9tYXN0ZXJfYnVzX2luaXQpOw0KPj4+ICsJCXF1ZXVl X3dvcmsobWFzdGVyLT53cSwgJm1hc3Rlci0+bWFzdGVyc2hpcCk7DQo+Pj4gKwl9DQo+Pj4gK30N Cj4+PiArRVhQT1JUX1NZTUJPTF9HUEwoaTNjX3NlY29uZGFyeV9tYXN0ZXJfZXZlbnRzX2VuYWJs ZWQpOyAgDQo+PiANCj4+ICAgIEhtLCBzbyB5b3UncmUgdHJ5aW5nIHRvIHN0YW5kYXJkaXplIGV2 ZW50cyBoYW5kbGluZy4gSSBoYWQgaW5pdGlhbGx5DQo+PiAgICBsZWZ0IHRoYXQgdG8gdGhlIGRy aXZlciBhcyBpdCdzIGxpa2VseSB0byBiZSBjb250cm9sbGVyIHNwZWNpZmljLg0KPj4gDQo+PiBJ IHRoaW5rIHRoYXQgSTNDIHNwZWMgZGVzY3JpYmVzIGNvbW1vbiBzZXQgb2YgZXZlbnRzLg0KPiAN Cj4gWWVzLCBhbmQgdGhvc2UgY29tbW9uIGV2ZW50cyBhcmUgYWxyZWFkeSBkZWZpbmVkIGluIGNj Yy5oLiBXaGF0IEkgbWVhbnQNCj4gaXMgdGhhdCBoYW5kbGluZyBNUiBvciBIb3RKb2luIGV2ZW50 cyBpcyBsaWtlbHkgdG8gYmUgY29udHJvbGxlcg0KPiBzcGVjaWZpYywgbm90IHN1cmUgd2UgbmVl ZCB0byBkZWZpbmUgYW4gbXJfd29yayBhdCB0aGUNCj4gaTNjX21hc3Rlcl9jb250cm9sbGVyIGxl dmVsLCB3ZSBjYW4ganVzdCBsZXQgSTNDIGRyaXZlcnMgZGVmaW5lIHRoZWlyDQo+IG93biB3b3Jr IGlmIHRoZXkgbmVlZCBvbmUgKGxpa2UgSSBkaWQgdG8gc3VwcG9ydCBISiBpbiB0aGUgQ2FkZW5j ZQ0KPiBkcml2ZXIpLg0KDQpPaywgSSdsbCB0aGluayBhYm91dCBpdC4NCg0KPiANCj4+PiArLyoq DQo+Pj4gICogc3RydWN0IGkzY19idXMgLSBJM0MgYnVzIG9iamVjdA0KPj4+ICAqIEBjdXJfbWFz dGVyOiBJM0MgbWFzdGVyIGN1cnJlbnRseSBkcml2aW5nIHRoZSBidXMuIFNpbmNlIEkzQyBpcyBt dWx0aS1tYXN0ZXINCj4+PiAgKgkJdGhpcyBjYW4gY2hhbmdlIG92ZXIgdGhlIHRpbWUuIFdpbGwg YmUgdXNlZCB0byBsZXQgYSBtYXN0ZXINCj4+PiBAQCAtNDE4LDYgKzQyOCwyMCBAQCBzdHJ1Y3Qg aTNjX2J1cyB7DQo+Pj4gICoJCSAgICAgIGZvciBhIGZ1dHVyZSBJQkkNCj4+PiAgKgkJICAgICAg VGhpcyBtZXRob2QgaXMgbWFuZGF0b3J5IG9ubHkgaWYgLT5yZXF1ZXN0X2liaSBpcyBub3QNCj4+ PiAgKgkJICAgICAgTlVMTC4NCj4+PiArICogQHVwZGF0ZV9kZXZzOiB1cGRhdGVzIGRldmljZSBs aXN0LiBDYWxsZWQgYWZ0ZXIgYnVzIHRha2VvdmVyLiBTZWNvbmRhcnkNCj4+PiArICogICAgICAg ICAgICAgICBtYXN0ZXIgY2FuJ3QgcGVyZm9ybSBEQUEgcHJvY2VkdXJlLiAgDQo+PiANCj4+ICAg IElzIHRoYXQgcmVhbGx5IHRydWU/IENhbiB5b3UgcG9pbnQgbWUgdG8gdGhlIHJlbGV2YW50IHNl Y3Rpb24gaW4gdGhlDQo+PiAgICBzcGVjIGRlc2NyaWJpbmcgdGhpcyBjb25zdHJhaW50Pw0KPj4g DQo+PiBTdXJlLCBJM0MgRGV2aWNlcyBSb2xlcyB2cyBSZXNwb25zaWJpbGl0aWVzLCBUYWJsZSBp biBzcGVjLiBEeW5hbWljIEFkZHJlc3MNCj4+IEFzc2lnbm1lbnQsIFNlY29uZGFyeSBtYXN0ZXIg aXMgbm90IGNhcGFibGUgdG8gZG8gdGhhdC4NCj4gDQo+IFRoYW5rcyBmb3IgcG9pbnRpbmcgdGhp cyBvdXQsIEkgZGlkbid0IG5vdGljZS4NCj4gDQo+PiANCj4+IFBsZWFzZSBhbHNvIHRha2UgYSBs b29rIGF0IEhvdC1Kb2luIER5bmFtaWMgQWRkcmVzcyBBc3NpZ25tZW50LiBTb21lIG9mIGNvbnRy b2xsZXJzIG1heQ0KPj4gaGF2ZSBISi1EQUEgaW1wbGVtZW50ZWQgaW4gdGhlIGhhcmR3YXJlLCBt YXliZSBpdCdzIGJldHRlciB0byBzZW5kIERFRlNMVlMgcmlnaHQgYmVmb3JlDQo+PiBHRVRBQ0NN U1Q/DQo+IA0KPiBJdCdzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgbWFzdGVyIGRvaW5nIGEg REFBIHRvIHNlbmQgYSBERUZTTFZTDQo+IGZyYW1lIGlmIHRoZXJlIGFyZSBuZXcgc2Vjb25kYXJ5 IG1hc3RlcnMgb24gdGhlIGJ1cy4gU28gREVGU0xWUyBzaG91bGQNCj4gYmUgc2VudCBqdXN0IGFm dGVyIHRoZSBISi1EQUEgaW4gdGhpcyBjYXNlLCBub3QgYmVmb3JlIEdFVEFDQ01TVC4NCj4gDQo+ IFJlZ2FyZHMsDQo+IA0KPiBCb3Jpcw0KDQpSZWdhcmRzLA0KUHJ6ZW1lawpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1pM2MgbWFpbGluZyBsaXN0 CmxpbnV4LWkzY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtaTNjCg==