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=-11.4 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_SANE_2 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 08C98C2D0A8 for ; Tue, 29 Sep 2020 01:48:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8254321D7F for ; Tue, 29 Sep 2020 01:48:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="CRqIZK8Y" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727323AbgI2Bsz (ORCPT ); Mon, 28 Sep 2020 21:48:55 -0400 Received: from Mailgw01.mediatek.com ([1.203.163.78]:23275 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726064AbgI2Bsz (ORCPT ); Mon, 28 Sep 2020 21:48:55 -0400 X-UUID: ae7f065d6207439184ac196f663ab95f-20200929 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=f27XtUCLTljbNuG7CVEDs5i7W7RSKIiuYOb8XIVa05c=; b=CRqIZK8YM4occM0CUGrVoqEA3529OxJ6rItN0QYpHlPA/lRdjYeclUh9EhuevCyI2l3d2cp1M2jVHMVRd+ypYoKFjgu7MkE8ygTBketGGH73pkrpVF1WGzsEu+28Qx0M/shXKywSh7uh6hKOL6tuafS9pq+TVl82JvJQhCa6oKg=; X-UUID: ae7f065d6207439184ac196f663ab95f-20200929 Received: from mtkcas34.mediatek.inc [(172.27.4.253)] by mailgw01.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1964755560; Tue, 29 Sep 2020 09:48:39 +0800 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS31N1.mediatek.inc (172.27.4.69) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 29 Sep 2020 09:48:37 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 29 Sep 2020 09:48:37 +0800 Message-ID: <1601343964.29336.16.camel@mhfsdcap03> Subject: Re: [PATCH 2/8] usb: cdns3: Split core.c into cdns3-plat and core.c file From: Chunfeng Yun To: Pawel Laszczak CC: , , , , , , , , , , , , Date: Tue, 29 Sep 2020 09:46:04 +0800 In-Reply-To: <20200928122741.17884-3-pawell@cadence.com> References: <20200928122741.17884-1-pawell@cadence.com> <20200928122741.17884-3-pawell@cadence.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: C795A18CD452E3570818A0EF509A8B88B6B680B1F207D2C5DC5FE641AF49205A2000:8 X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gTW9uLCAyMDIwLTA5LTI4IGF0IDE0OjI3ICswMjAwLCBQYXdlbCBMYXN6Y3phayB3cm90ZToN Cj4gUGF0Y2ggc3BsaXRzIGZpbGUgY29yZS5jIGludG8gY29yZS5jIGNvbnRhaW5pbmcgdGhlIGNv bW1vbiByZXVzYWJsZSBjb2RlDQo+IGFuZCBjbmQzLXBsYXQuYyBjb250YWluaW5nIGRldmljZSBw bGF0Zm9ybSBzcGVjaWZpYyBjb2RlLiBUaGVzZSBjaGFuZ2VzDQo+IGFyZSByZXF1aXJlZCB0byBt YWtlIHBvc3NpYmxlIHJldXNlIERSRCBwYXJ0IG9mIENETlMzIGRyaXZlciBpbiBDRE5TUA0KPiBk cml2ZXIuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBQYXdlbCBMYXN6Y3phayA8cGF3ZWxsQGNhZGVu Y2UuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvdXNiL2NkbnMzL01ha2VmaWxlICAgICB8ICAgMiAr LQ0KPiAgZHJpdmVycy91c2IvY2RuczMvY2RuczMtcGxhdC5jIHwgMjA5ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKw0KPiAgZHJpdmVycy91c2IvY2RuczMvY29yZS5jICAgICAgIHwg MTgxICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIGRyaXZlcnMvdXNiL2NkbnMzL2Nv cmUuaCAgICAgICB8ICAgOCArLQ0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAyMzQgaW5zZXJ0aW9ucygr KSwgMTY2IGRlbGV0aW9ucygtKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdXNiL2Nk bnMzL2NkbnMzLXBsYXQuYw0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NkbnMzL01h a2VmaWxlIGIvZHJpdmVycy91c2IvY2RuczMvTWFrZWZpbGUNCj4gaW5kZXggZDQ3ZTM0MWE2ZjM5 Li5hMWZlOTYxMjA1M2EgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvdXNiL2NkbnMzL01ha2VmaWxl DQo+ICsrKyBiL2RyaXZlcnMvdXNiL2NkbnMzL01ha2VmaWxlDQo+IEBAIC0yLDcgKzIsNyBAQA0K PiAgIyBkZWZpbmVfdHJhY2UuaCBuZWVkcyB0byBrbm93IGhvdyB0byBmaW5kIG91ciBoZWFkZXIN Cj4gIENGTEFHU190cmFjZS5vCQkJCTo9IC1JJChzcmMpDQo+ICANCj4gLWNkbnMzLXkJCQkJCTo9 IGNvcmUubyBkcmQubw0KPiArY2RuczMteQkJCQkJOj0gY2RuczMtcGxhdC5vIGNvcmUubyBkcmQu bw0KPiAgDQo+ICBvYmotJChDT05GSUdfVVNCX0NETlMzKQkJCSs9IGNkbnMzLm8NCj4gIGNkbnMz LSQoQ09ORklHX1VTQl9DRE5TM19HQURHRVQpCSs9IGdhZGdldC5vIGVwMC5vDQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3VzYi9jZG5zMy9jZG5zMy1wbGF0LmMgYi9kcml2ZXJzL3VzYi9jZG5zMy9j ZG5zMy1wbGF0LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAw Li5mMzVlOWRjYTMwZmUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL3VzYi9jZG5z My9jZG5zMy1wbGF0LmMNCj4gQEAgLTAsMCArMSwyMDkgQEANCj4gKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wDQo+ICsvKg0KPiArICogQ2FkZW5jZSBVU0JTUyBEUkQgRHJpdmVy Lg0KPiArICoNCj4gKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIwIENhZGVuY2UuDQo+ICsgKiBD b3B5cmlnaHQgKEMpIDIwMTctMjAxOCBOWFANCj4gKyAqIENvcHlyaWdodCAoQykgMjAxOSBUZXhh cyBJbnN0cnVtZW50c3ENCj4gKyAqDQo+ICsgKg0KPiArICogQXV0aG9yOiBQZXRlciBDaGVuIDxw ZXRlci5jaGVuQG54cC5jb20+DQo+ICsgKiAgICAgICAgIFBhd2VsIExhc3pjemFrIDxwYXdlbGxA Y2FkZW5jZS5jb20+DQo+ICsgKiAgICAgICAgIFJvZ2VyIFF1YWRyb3MgPHJvZ2VycUB0aS5jb20+ DQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiArI2luY2x1ZGUg PGxpbnV4L2tlcm5lbC5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0K PiArI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4NCj4gKw0KPiArI2luY2x1ZGUgImNvcmUu aCINCj4gKw0KPiArLyoqDQo+ICsgKiBjZG5zM19wbGF0X3Byb2JlIC0gcHJvYmUgZm9yIGNkbnMz IGNvcmUgZGV2aWNlDQo+ICsgKiBAcGRldjogUG9pbnRlciB0byBjZG5zMyBjb3JlIHBsYXRmb3Jt IGRldmljZQ0KPiArICoNCj4gKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG90aGVyd2lzZSBuZWdh dGl2ZSBlcnJubw0KPiArICovDQo+ICtzdGF0aWMgaW50IGNkbnMzX3BsYXRfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gK3sNCj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAm cGRldi0+ZGV2Ow0KPiArCXN0cnVjdCByZXNvdXJjZQkqcmVzOw0KPiArCXN0cnVjdCBjZG5zMyAq Y2RuczsNCj4gKwl2b2lkIF9faW9tZW0gKnJlZ3M7DQo+ICsJaW50IHJldDsNCj4gKw0KPiArCWNk bnMgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmNkbnMpLCBHRlBfS0VSTkVMKTsNCj4gKwlp ZiAoIWNkbnMpDQo+ICsJCXJldHVybiAtRU5PTUVNOw0KPiArDQo+ICsJY2Rucy0+ZGV2ID0gZGV2 Ow0KPiArDQo+ICsJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgY2Rucyk7DQo+ICsNCj4gKwly ZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYsIElPUkVTT1VSQ0VfSVJRLCAi aG9zdCIpOw0KPiArCWlmICghcmVzKSB7DQo+ICsJCWRldl9lcnIoZGV2LCAibWlzc2luZyBob3N0 IElSUVxuIik7DQo+ICsJCXJldHVybiAtRU5PREVWOw0KPiArCX0NCj4gKw0KPiArCWNkbnMtPnho Y2lfcmVzWzBdID0gKnJlczsNCj4gKw0KPiArCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZV9i eW5hbWUocGRldiwgSU9SRVNPVVJDRV9NRU0sICJ4aGNpIik7DQo+ICsJaWYgKCFyZXMpIHsNCj4g KwkJZGV2X2VycihkZXYsICJjb3VsZG4ndCBnZXQgeGhjaSByZXNvdXJjZVxuIik7DQo+ICsJCXJl dHVybiAtRU5YSU87DQo+ICsJfQ0KPiArDQo+ICsJY2Rucy0+eGhjaV9yZXNbMV0gPSAqcmVzOw0K PiArDQo+ICsJY2Rucy0+ZGV2X2lycSA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJw ZXJpcGhlcmFsIik7DQo+ICsJaWYgKGNkbnMtPmRldl9pcnEgPT0gLUVQUk9CRV9ERUZFUikNCj4g KwkJcmV0dXJuIGNkbnMtPmRldl9pcnE7DQo+ICsNCj4gKwlpZiAoY2Rucy0+ZGV2X2lycSA8IDAp DQo+ICsJCWRldl9lcnIoZGV2LCAiY291bGRuJ3QgZ2V0IHBlcmlwaGVyYWwgaXJxXG4iKTsNClVz ZSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZV9vcHRpb25hbD8gb3RoZXJ3aXNlIG5vIG5lZWQgcHJp bnQgdGhpcyBsb2csDQpwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZSgpIHdpbGwgcHJpbnQgaXQuDQoN Cj4gKw0KPiArCXJlZ3MgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2VfYnluYW1lKHBk ZXYsICJkZXYiKTsNCj4gKwlpZiAoSVNfRVJSKHJlZ3MpKQ0KPiArCQlyZXR1cm4gUFRSX0VSUihy ZWdzKTsNCj4gKwljZG5zLT5kZXZfcmVncwk9IHJlZ3M7DQo+ICsNCj4gKwljZG5zLT5vdGdfaXJx ID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgIm90ZyIpOw0KPiArCWlmIChjZG5zLT5v dGdfaXJxID09IC1FUFJPQkVfREVGRVIpDQo+ICsJCXJldHVybiBjZG5zLT5vdGdfaXJxOw0KPiAr DQo+ICsJaWYgKGNkbnMtPm90Z19pcnEgPCAwKSB7DQo+ICsJCWRldl9lcnIoZGV2LCAiY291bGRu J3QgZ2V0IG90ZyBpcnFcbiIpOw0KPiArCQlyZXR1cm4gY2Rucy0+b3RnX2lycTsNCj4gKwl9DQpk aXR0bw0KDQo+ICsNCj4gKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYs IElPUkVTT1VSQ0VfTUVNLCAib3RnIik7DQo+ICsJaWYgKCFyZXMpIHsNCj4gKwkJZGV2X2Vycihk ZXYsICJjb3VsZG4ndCBnZXQgb3RnIHJlc291cmNlXG4iKTsNCj4gKwkJcmV0dXJuIC1FTlhJTzsN Cj4gKwl9DQo+ICsNCj4gKwljZG5zLT5vdGdfcmVzID0gKnJlczsNCj4gKw0KPiArCWNkbnMtPnVz YjJfcGh5ID0gZGV2bV9waHlfb3B0aW9uYWxfZ2V0KGRldiwgImNkbnMzLHVzYjItcGh5Iik7DQo+ ICsJaWYgKElTX0VSUihjZG5zLT51c2IyX3BoeSkpDQo+ICsJCXJldHVybiBQVFJfRVJSKGNkbnMt PnVzYjJfcGh5KTsNCj4gKw0KPiArCXJldCA9IHBoeV9pbml0KGNkbnMtPnVzYjJfcGh5KTsNCj4g KwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJY2Rucy0+dXNiM19waHkgPSBk ZXZtX3BoeV9vcHRpb25hbF9nZXQoZGV2LCAiY2RuczMsdXNiMy1waHkiKTsNCj4gKwlpZiAoSVNf RVJSKGNkbnMtPnVzYjNfcGh5KSkNCj4gKwkJcmV0dXJuIFBUUl9FUlIoY2Rucy0+dXNiM19waHkp Ow0KPiArDQo+ICsJcmV0ID0gcGh5X2luaXQoY2Rucy0+dXNiM19waHkpOw0KPiArCWlmIChyZXQp DQo+ICsJCWdvdG8gZXJyX3BoeTNfaW5pdDsNCj4gKw0KPiArCXJldCA9IHBoeV9wb3dlcl9vbihj ZG5zLT51c2IyX3BoeSk7DQo+ICsJaWYgKHJldCkNCj4gKwkJZ290byBlcnJfcGh5Ml9wb3dlcl9v bjsNCj4gKw0KPiArCXJldCA9IHBoeV9wb3dlcl9vbihjZG5zLT51c2IzX3BoeSk7DQo+ICsJaWYg KHJldCkNCj4gKwkJZ290byBlcnJfcGh5M19wb3dlcl9vbjsNCj4gKw0KPiArCXJldCA9IGNkbnMz X2luaXQoY2Rucyk7DQo+ICsJaWYgKHJldCkNCj4gKwkJZ290byBlcnJfY2Ruc19pbml0Ow0KPiAr DQo+ICsJZGV2aWNlX3NldF93YWtldXBfY2FwYWJsZShkZXYsIHRydWUpOw0KPiArCXBtX3J1bnRp bWVfc2V0X2FjdGl2ZShkZXYpOw0KPiArCXBtX3J1bnRpbWVfZW5hYmxlKGRldik7DQo+ICsNCj4g KwkvKg0KPiArCSAqIFRoZSBjb250cm9sbGVyIG5lZWRzIGxlc3MgdGltZSBiZXR3ZWVuIGJ1cyBh bmQgY29udHJvbGxlciBzdXNwZW5kLA0KPiArCSAqIGFuZCB3ZSBhbHNvIG5lZWRzIGEgc21hbGwg ZGVsYXkgdG8gYXZvaWQgZnJlcXVlbnRseSBlbnRlcmluZyBsb3cNCj4gKwkgKiBwb3dlciBtb2Rl Lg0KPiArCSAqLw0KPiArCXBtX3J1bnRpbWVfc2V0X2F1dG9zdXNwZW5kX2RlbGF5KGRldiwgMjAp Ow0KPiArCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koZGV2KTsNCj4gKw0KPiArCXJldHVybiAw Ow0KPiArDQo+ICtlcnJfY2Ruc19pbml0Og0KPiArCXBoeV9wb3dlcl9vZmYoY2Rucy0+dXNiM19w aHkpOw0KPiArZXJyX3BoeTNfcG93ZXJfb246DQo+ICsJcGh5X3Bvd2VyX29mZihjZG5zLT51c2Iy X3BoeSk7DQo+ICtlcnJfcGh5Ml9wb3dlcl9vbjoNCj4gKwlwaHlfZXhpdChjZG5zLT51c2IzX3Bo eSk7DQo+ICtlcnJfcGh5M19pbml0Og0KPiArCXBoeV9leGl0KGNkbnMtPnVzYjJfcGh5KTsNCj4g Kw0KPiArCXJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogY2RuczNfcmVtb3Zl IC0gdW5iaW5kIGRyZCBkcml2ZXIgYW5kIGNsZWFuIHVwDQo+ICsgKiBAcGRldjogUG9pbnRlciB0 byBMaW51eCBwbGF0Zm9ybSBkZXZpY2UNCj4gKyAqDQo+ICsgKiBSZXR1cm5zIDAgb24gc3VjY2Vz cyBvdGhlcndpc2UgbmVnYXRpdmUgZXJybm8NCj4gKyAqLw0KPiArc3RhdGljIGludCBjZG5zM19w bGF0X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiArew0KPiArCXN0cnVj dCBjZG5zMyAqY2RucyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOw0KPiArCXN0cnVjdCBk ZXZpY2UgKmRldiA9IGNkbnMtPmRldjsNCj4gKw0KPiArCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2 KTsNCj4gKwlwbV9ydW50aW1lX2Rpc2FibGUoZGV2KTsNCj4gKwlwbV9ydW50aW1lX3B1dF9ub2lk bGUoZGV2KTsNCj4gKwljZG5zM19yZW1vdmUoY2Rucyk7DQo+ICsJcGh5X3Bvd2VyX29mZihjZG5z LT51c2IyX3BoeSk7DQo+ICsJcGh5X3Bvd2VyX29mZihjZG5zLT51c2IzX3BoeSk7DQo+ICsJcGh5 X2V4aXQoY2Rucy0+dXNiMl9waHkpOw0KPiArCXBoeV9leGl0KGNkbnMtPnVzYjNfcGh5KTsNCj4g KwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArI2lmZGVmIENPTkZJR19QTV9TTEVFUA0KPiArDQo+ ICtzdGF0aWMgaW50IGNkbnMzX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7 DQo+ICsJc3RydWN0IGNkbnMzICpjZG5zID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsNCj4g KwlyZXR1cm4gY2RuczNfc3VzcGVuZChjZG5zKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBj ZG5zM19wbGF0X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IGNk bnMzICpjZG5zID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsNCj4gKwlyZXR1cm4gY2RuczNf cmVzdW1lKGNkbnMpOw0KPiArfQ0KPiArI2VuZGlmDQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZGV2X3BtX29wcyBjZG5zM19wbV9vcHMgPSB7DQo+ICsJU0VUX1NZU1RFTV9TTEVFUF9QTV9P UFMoY2RuczNfcGxhdF9zdXNwZW5kLCBjZG5zM19wbGF0X3Jlc3VtZSkNCj4gK307DQo+ICsNCj4g KyNpZmRlZiBDT05GSUdfT0YNCk5vIG5lZWQgaXQgaWYgb25seSBzdXBwb3J0cyBkZXZpY2V0cmVl DQoNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX2NkbnMzX21hdGNoW10g PSB7DQo+ICsJeyAuY29tcGF0aWJsZSA9ICJjZG5zLHVzYjMiIH0sDQo+ICsJeyB9LA0KPiArfTsN Cj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG9mX2NkbnMzX21hdGNoKTsNCj4gKyNlbmRpZg0K PiArDQo+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBjZG5zM19kcml2ZXIgPSB7DQo+ ICsJLnByb2JlCQk9IGNkbnMzX3BsYXRfcHJvYmUsDQo+ICsJLnJlbW92ZQkJPSBjZG5zM19wbGF0 X3JlbW92ZSwNCj4gKwkuZHJpdmVyCQk9IHsNCj4gKwkJLm5hbWUJPSAiY2Rucy11c2IzIiwNCj4g KwkJLm9mX21hdGNoX3RhYmxlCT0gb2ZfbWF0Y2hfcHRyKG9mX2NkbnMzX21hdGNoKSwNCj4gKwkJ LnBtCT0gJmNkbnMzX3BtX29wcywNCj4gKwl9LA0KPiArfTsNCj4gKw0KPiArbW9kdWxlX3BsYXRm b3JtX2RyaXZlcihjZG5zM19kcml2ZXIpOw0KPiArDQo+ICtNT0RVTEVfQUxJQVMoInBsYXRmb3Jt OmNkbnMzIik7DQo+ICtNT0RVTEVfQVVUSE9SKCJQYXdlbCBMYXN6Y3phayA8cGF3ZWxsQGNhZGVu Y2UuY29tPiIpOw0KPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOw0KPiArTU9EVUxFX0RFU0NS SVBUSU9OKCJDYWRlbmNlIFVTQjMgRFJEIENvbnRyb2xsZXIgRHJpdmVyIik7DQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3VzYi9jZG5zMy9jb3JlLmMgYi9kcml2ZXJzL3VzYi9jZG5zMy9jb3JlLmMN Cj4gaW5kZXggMzcxMTI4ZTlhNGFlLi4wNzliZDJhYmY2NWQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZl cnMvdXNiL2NkbnMzL2NvcmUuYw0KPiArKysgYi9kcml2ZXJzL3VzYi9jZG5zMy9jb3JlLmMNCj4g QEAgLTIsNyArMiw3IEBADQo+ICAvKg0KPiAgICogQ2FkZW5jZSBVU0JTUyBEUkQgRHJpdmVyLg0K PiAgICoNCj4gLSAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IENhZGVuY2UuDQo+ICsgKiBDb3B5 cmlnaHQgKEMpIDIwMTgtMjAyMCBDYWRlbmNlLg0KPiAgICogQ29weXJpZ2h0IChDKSAyMDE3LTIw MTggTlhQDQo+ICAgKiBDb3B5cmlnaHQgKEMpIDIwMTkgVGV4YXMgSW5zdHJ1bWVudHMNCj4gICAq DQo+IEBAIC0zODMsMTcgKzM4MywxNCBAQCBzdGF0aWMgaW50IGNkbnMzX3JvbGVfc2V0KHN0cnVj dCB1c2Jfcm9sZV9zd2l0Y2ggKnN3LCBlbnVtIHVzYl9yb2xlIHJvbGUpDQo+ICANCj4gIC8qKg0K PiAgICogY2RuczNfcHJvYmUgLSBwcm9iZSBmb3IgY2RuczMgY29yZSBkZXZpY2UNCj4gLSAqIEBw ZGV2OiBQb2ludGVyIHRvIGNkbnMzIGNvcmUgcGxhdGZvcm0gZGV2aWNlDQo+ICsgKiBAY2Ruczog UG9pbnRlciB0byBjZG5zcCBzdHJ1Y3R1cmUuDQo+ICAgKg0KPiAgICogUmV0dXJucyAwIG9uIHN1 Y2Nlc3Mgb3RoZXJ3aXNlIG5lZ2F0aXZlIGVycm5vDQo+ICAgKi8NCj4gLXN0YXRpYyBpbnQgY2Ru czNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gK2ludCBjZG5zM19pbml0 KHN0cnVjdCBjZG5zMyAqY2RucykNCj4gIHsNCj4gIAlzdHJ1Y3QgdXNiX3JvbGVfc3dpdGNoX2Rl c2Mgc3dfZGVzYyA9IHsgfTsNCj4gLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Ow0K PiAtCXN0cnVjdCByZXNvdXJjZQkqcmVzOw0KPiAtCXN0cnVjdCBjZG5zMyAqY2RuczsNCj4gLQl2 b2lkIF9faW9tZW0gKnJlZ3M7DQo+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gY2Rucy0+ZGV2Ow0K PiAgCWludCByZXQ7DQo+ICANCj4gIAlyZXQgPSBkbWFfc2V0X21hc2tfYW5kX2NvaGVyZW50KGRl diwgRE1BX0JJVF9NQVNLKDMyKSk7DQo+IEBAIC00MDIsODUgKzM5OSw4IEBAIHN0YXRpYyBpbnQg Y2RuczNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gIAkJcmV0dXJuIHJl dDsNCj4gIAl9DQo+ICANCj4gLQljZG5zID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpjZG5z KSwgR0ZQX0tFUk5FTCk7DQo+IC0JaWYgKCFjZG5zKQ0KPiAtCQlyZXR1cm4gLUVOT01FTTsNCj4g LQ0KPiAtCWNkbnMtPmRldiA9IGRldjsNCj4gLQ0KPiAtCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBk ZXYsIGNkbnMpOw0KPiAtDQo+IC0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShw ZGV2LCBJT1JFU09VUkNFX0lSUSwgImhvc3QiKTsNCj4gLQlpZiAoIXJlcykgew0KPiAtCQlkZXZf ZXJyKGRldiwgIm1pc3NpbmcgaG9zdCBJUlFcbiIpOw0KPiAtCQlyZXR1cm4gLUVOT0RFVjsNCj4g LQl9DQo+IC0NCj4gLQljZG5zLT54aGNpX3Jlc1swXSA9ICpyZXM7DQo+IC0NCj4gLQlyZXMgPSBw bGF0Zm9ybV9nZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAieGhjaSIp Ow0KPiAtCWlmICghcmVzKSB7DQo+IC0JCWRldl9lcnIoZGV2LCAiY291bGRuJ3QgZ2V0IHhoY2kg cmVzb3VyY2VcbiIpOw0KPiAtCQlyZXR1cm4gLUVOWElPOw0KPiAtCX0NCj4gLQ0KPiAtCWNkbnMt PnhoY2lfcmVzWzFdID0gKnJlczsNCj4gLQ0KPiAtCWNkbnMtPmRldl9pcnEgPSBwbGF0Zm9ybV9n ZXRfaXJxX2J5bmFtZShwZGV2LCAicGVyaXBoZXJhbCIpOw0KPiAtCWlmIChjZG5zLT5kZXZfaXJx ID09IC1FUFJPQkVfREVGRVIpDQo+IC0JCXJldHVybiBjZG5zLT5kZXZfaXJxOw0KPiAtDQo+IC0J aWYgKGNkbnMtPmRldl9pcnEgPCAwKQ0KPiAtCQlkZXZfZXJyKGRldiwgImNvdWxkbid0IGdldCBw ZXJpcGhlcmFsIGlycVxuIik7DQo+IC0NCj4gLQlyZWdzID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFw X3Jlc291cmNlX2J5bmFtZShwZGV2LCAiZGV2Iik7DQo+IC0JaWYgKElTX0VSUihyZWdzKSkNCj4g LQkJcmV0dXJuIFBUUl9FUlIocmVncyk7DQo+IC0JY2Rucy0+ZGV2X3JlZ3MJPSByZWdzOw0KPiAt DQo+IC0JY2Rucy0+b3RnX2lycSA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYsICJvdGci KTsNCj4gLQlpZiAoY2Rucy0+b3RnX2lycSA9PSAtRVBST0JFX0RFRkVSKQ0KPiAtCQlyZXR1cm4g Y2Rucy0+b3RnX2lycTsNCj4gLQ0KPiAtCWlmIChjZG5zLT5vdGdfaXJxIDwgMCkgew0KPiAtCQlk ZXZfZXJyKGRldiwgImNvdWxkbid0IGdldCBvdGcgaXJxXG4iKTsNCj4gLQkJcmV0dXJuIGNkbnMt Pm90Z19pcnE7DQo+IC0JfQ0KPiAtDQo+IC0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5 bmFtZShwZGV2LCBJT1JFU09VUkNFX01FTSwgIm90ZyIpOw0KPiAtCWlmICghcmVzKSB7DQo+IC0J CWRldl9lcnIoZGV2LCAiY291bGRuJ3QgZ2V0IG90ZyByZXNvdXJjZVxuIik7DQo+IC0JCXJldHVy biAtRU5YSU87DQo+IC0JfQ0KPiAtDQo+IC0JY2Rucy0+b3RnX3JlcyA9ICpyZXM7DQo+IC0NCj4g IAltdXRleF9pbml0KCZjZG5zLT5tdXRleCk7DQo+ICANCj4gLQljZG5zLT51c2IyX3BoeSA9IGRl dm1fcGh5X29wdGlvbmFsX2dldChkZXYsICJjZG5zMyx1c2IyLXBoeSIpOw0KPiAtCWlmIChJU19F UlIoY2Rucy0+dXNiMl9waHkpKQ0KPiAtCQlyZXR1cm4gUFRSX0VSUihjZG5zLT51c2IyX3BoeSk7 DQo+IC0NCj4gLQlyZXQgPSBwaHlfaW5pdChjZG5zLT51c2IyX3BoeSk7DQo+IC0JaWYgKHJldCkN Cj4gLQkJcmV0dXJuIHJldDsNCj4gLQ0KPiAtCWNkbnMtPnVzYjNfcGh5ID0gZGV2bV9waHlfb3B0 aW9uYWxfZ2V0KGRldiwgImNkbnMzLHVzYjMtcGh5Iik7DQo+IC0JaWYgKElTX0VSUihjZG5zLT51 c2IzX3BoeSkpDQo+IC0JCXJldHVybiBQVFJfRVJSKGNkbnMtPnVzYjNfcGh5KTsNCj4gLQ0KPiAt CXJldCA9IHBoeV9pbml0KGNkbnMtPnVzYjNfcGh5KTsNCj4gLQlpZiAocmV0KQ0KPiAtCQlnb3Rv IGVycjE7DQo+IC0NCj4gLQlyZXQgPSBwaHlfcG93ZXJfb24oY2Rucy0+dXNiMl9waHkpOw0KPiAt CWlmIChyZXQpDQo+IC0JCWdvdG8gZXJyMjsNCj4gLQ0KPiAtCXJldCA9IHBoeV9wb3dlcl9vbihj ZG5zLT51c2IzX3BoeSk7DQo+IC0JaWYgKHJldCkNCj4gLQkJZ290byBlcnIzOw0KPiAtDQo+ICAJ c3dfZGVzYy5zZXQgPSBjZG5zM19yb2xlX3NldDsNCj4gIAlzd19kZXNjLmdldCA9IGNkbnMzX3Jv bGVfZ2V0Ow0KPiAgCXN3X2Rlc2MuYWxsb3dfdXNlcnNwYWNlX2NvbnRyb2wgPSB0cnVlOw0KPiBA QCAtNDkwLDc4ICs0MTAsNDcgQEAgc3RhdGljIGludCBjZG5zM19wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQ0KPiAgDQo+ICAJY2Rucy0+cm9sZV9zdyA9IHVzYl9yb2xlX3N3aXRj aF9yZWdpc3RlcihkZXYsICZzd19kZXNjKTsNCj4gIAlpZiAoSVNfRVJSKGNkbnMtPnJvbGVfc3cp KSB7DQo+IC0JCXJldCA9IFBUUl9FUlIoY2Rucy0+cm9sZV9zdyk7DQo+ICAJCWRldl93YXJuKGRl diwgIlVuYWJsZSB0byByZWdpc3RlciBSb2xlIFN3aXRjaFxuIik7DQo+IC0JCWdvdG8gZXJyNDsN Cj4gKwkJcmV0dXJuIFBUUl9FUlIoY2Rucy0+cm9sZV9zdyk7DQo+ICAJfQ0KPiAgDQo+ICAJcmV0 ID0gY2RuczNfZHJkX2luaXQoY2Rucyk7DQo+ICAJaWYgKHJldCkNCj4gLQkJZ290byBlcnI1Ow0K PiArCQlnb3RvIGluaXRfZmFpbGVkOw0KPiAgDQo+ICAJcmV0ID0gY2RuczNfY29yZV9pbml0X3Jv bGUoY2Rucyk7DQo+ICAJaWYgKHJldCkNCj4gLQkJZ290byBlcnI1Ow0KPiAtDQo+IC0JZGV2aWNl X3NldF93YWtldXBfY2FwYWJsZShkZXYsIHRydWUpOw0KPiAtCXBtX3J1bnRpbWVfc2V0X2FjdGl2 ZShkZXYpOw0KPiAtCXBtX3J1bnRpbWVfZW5hYmxlKGRldik7DQo+ICsJCWdvdG8gaW5pdF9mYWls ZWQ7DQo+ICANCj4gLQkvKg0KPiAtCSAqIFRoZSBjb250cm9sbGVyIG5lZWRzIGxlc3MgdGltZSBi ZXR3ZWVuIGJ1cyBhbmQgY29udHJvbGxlciBzdXNwZW5kLA0KPiAtCSAqIGFuZCB3ZSBhbHNvIG5l ZWRzIGEgc21hbGwgZGVsYXkgdG8gYXZvaWQgZnJlcXVlbnRseSBlbnRlcmluZyBsb3cNCj4gLQkg KiBwb3dlciBtb2RlLg0KPiAtCSAqLw0KPiAtCXBtX3J1bnRpbWVfc2V0X2F1dG9zdXNwZW5kX2Rl bGF5KGRldiwgMjApOw0KPiAtCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koZGV2KTsNCj4gLQlw bV9ydW50aW1lX3VzZV9hdXRvc3VzcGVuZChkZXYpOw0KPiAgCWRldl9kYmcoZGV2LCAiQ2FkZW5j ZSBVU0IzIGNvcmU6IHByb2JlIHN1Y2NlZWRcbiIpOw0KPiAgDQo+ICAJcmV0dXJuIDA7DQo+IC1l cnI1Og0KPiAraW5pdF9mYWlsZWQ6DQo+ICAJY2RuczNfZHJkX2V4aXQoY2Rucyk7DQo+ICAJdXNi X3JvbGVfc3dpdGNoX3VucmVnaXN0ZXIoY2Rucy0+cm9sZV9zdyk7DQo+IC1lcnI0Og0KPiAtCXBo eV9wb3dlcl9vZmYoY2Rucy0+dXNiM19waHkpOw0KPiAtDQo+IC1lcnIzOg0KPiAtCXBoeV9wb3dl cl9vZmYoY2Rucy0+dXNiMl9waHkpOw0KPiAtZXJyMjoNCj4gLQlwaHlfZXhpdChjZG5zLT51c2Iz X3BoeSk7DQo+IC1lcnIxOg0KPiAtCXBoeV9leGl0KGNkbnMtPnVzYjJfcGh5KTsNCj4gIA0KPiAg CXJldHVybiByZXQ7DQo+ICB9DQo+ICANCj4gIC8qKg0KPiAgICogY2RuczNfcmVtb3ZlIC0gdW5i aW5kIGRyZCBkcml2ZXIgYW5kIGNsZWFuIHVwDQo+IC0gKiBAcGRldjogUG9pbnRlciB0byBMaW51 eCBwbGF0Zm9ybSBkZXZpY2UNCj4gKyAqIEBjZG5zOiBQb2ludGVyIHRvIGNkbnNwIHN0cnVjdHVy ZS4NCj4gICAqDQo+ICAgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvdGhlcndpc2UgbmVnYXRpdmUg ZXJybm8NCj4gICAqLw0KPiAtc3RhdGljIGludCBjZG5zM19yZW1vdmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikNCj4gK2ludCBjZG5zM19yZW1vdmUoc3RydWN0IGNkbnMzICpjZG5zKQ0K PiAgew0KPiAtCXN0cnVjdCBjZG5zMyAqY2RucyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYp Ow0KPiAtDQo+IC0JcG1fcnVudGltZV9nZXRfc3luYygmcGRldi0+ZGV2KTsNCj4gLQlwbV9ydW50 aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7DQo+IC0JcG1fcnVudGltZV9wdXRfbm9pZGxlKCZwZGV2 LT5kZXYpOw0KPiAgCWNkbnMzX2V4aXRfcm9sZXMoY2Rucyk7DQo+ICAJdXNiX3JvbGVfc3dpdGNo X3VucmVnaXN0ZXIoY2Rucy0+cm9sZV9zdyk7DQo+IC0JcGh5X3Bvd2VyX29mZihjZG5zLT51c2Iy X3BoeSk7DQo+IC0JcGh5X3Bvd2VyX29mZihjZG5zLT51c2IzX3BoeSk7DQo+IC0JcGh5X2V4aXQo Y2Rucy0+dXNiMl9waHkpOw0KPiAtCXBoeV9leGl0KGNkbnMtPnVzYjNfcGh5KTsNCj4gKw0KPiAg CXJldHVybiAwOw0KPiAgfQ0KPiAgDQo+ICAjaWZkZWYgQ09ORklHX1BNX1NMRUVQDQo+ICANCj4g LXN0YXRpYyBpbnQgY2RuczNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICtpbnQgY2Ru czNfc3VzcGVuZChzdHJ1Y3QgY2RuczMgKmNkbnMpDQo+ICB7DQo+IC0Jc3RydWN0IGNkbnMzICpj ZG5zID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsNCj4g KwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjZG5zLT5kZXY7DQo+ICANCj4gIAlpZiAoY2Rucy0+cm9s ZSA9PSBVU0JfUk9MRV9IT1NUKQ0KPiAgCQlyZXR1cm4gMDsNCj4gQEAgLTU2OSwyOCArNDU4LDIx IEBAIHN0YXRpYyBpbnQgY2RuczNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICAJaWYg KHBtX3J1bnRpbWVfc3RhdHVzX3N1c3BlbmRlZChkZXYpKQ0KPiAgCQlwbV9ydW50aW1lX3Jlc3Vt ZShkZXYpOw0KPiAgDQo+IC0JaWYgKGNkbnMtPnJvbGVzW2NkbnMtPnJvbGVdLT5zdXNwZW5kKSB7 DQo+IC0JCXNwaW5fbG9ja19pcnFzYXZlKCZjZG5zLT5nYWRnZXRfZGV2LT5sb2NrLCBmbGFncyk7 DQo+ICsJaWYgKGNkbnMtPnJvbGVzW2NkbnMtPnJvbGVdLT5zdXNwZW5kKQ0KPiAgCQljZG5zLT5y b2xlc1tjZG5zLT5yb2xlXS0+c3VzcGVuZChjZG5zLCBmYWxzZSk7DQo+IC0JCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmNkbnMtPmdhZGdldF9kZXYtPmxvY2ssIGZsYWdzKTsNCj4gLQl9DQo+ICAN Cj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gIA0KPiAtc3RhdGljIGludCBjZG5zM19yZXN1bWUoc3Ry dWN0IGRldmljZSAqZGV2KQ0KPiAraW50IGNkbnMzX3Jlc3VtZShzdHJ1Y3QgY2RuczMgKmNkbnMp DQo+ICB7DQo+IC0Jc3RydWN0IGNkbnMzICpjZG5zID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ IC0JdW5zaWduZWQgbG9uZyBmbGFnczsNCj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjZG5zLT5k ZXY7DQo+ICANCj4gIAlpZiAoY2Rucy0+cm9sZSA9PSBVU0JfUk9MRV9IT1NUKQ0KPiAgCQlyZXR1 cm4gMDsNCj4gIA0KPiAtCWlmIChjZG5zLT5yb2xlc1tjZG5zLT5yb2xlXS0+cmVzdW1lKSB7DQo+ IC0JCXNwaW5fbG9ja19pcnFzYXZlKCZjZG5zLT5nYWRnZXRfZGV2LT5sb2NrLCBmbGFncyk7DQo+ ICsJaWYgKGNkbnMtPnJvbGVzW2NkbnMtPnJvbGVdLT5yZXN1bWUpDQo+ICAJCWNkbnMtPnJvbGVz W2NkbnMtPnJvbGVdLT5yZXN1bWUoY2RucywgZmFsc2UpOw0KPiAtCQlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZjZG5zLT5nYWRnZXRfZGV2LT5sb2NrLCBmbGFncyk7DQo+IC0JfQ0KPiAgDQo+ICAJ cG1fcnVudGltZV9kaXNhYmxlKGRldik7DQo+ICAJcG1fcnVudGltZV9zZXRfYWN0aXZlKGRldik7 DQo+IEBAIC01OTksMzIgKzQ4MSwzIEBAIHN0YXRpYyBpbnQgY2RuczNfcmVzdW1lKHN0cnVjdCBk ZXZpY2UgKmRldikNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gICNlbmRpZg0KPiAtDQo+IC1zdGF0 aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgY2RuczNfcG1fb3BzID0gew0KPiAtCVNFVF9TWVNU RU1fU0xFRVBfUE1fT1BTKGNkbnMzX3N1c3BlbmQsIGNkbnMzX3Jlc3VtZSkNCj4gLX07DQo+IC0N Cj4gLSNpZmRlZiBDT05GSUdfT0YNCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lk IG9mX2NkbnMzX21hdGNoW10gPSB7DQo+IC0JeyAuY29tcGF0aWJsZSA9ICJjZG5zLHVzYjMiIH0s DQo+IC0JeyB9LA0KPiAtfTsNCj4gLU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG9mX2NkbnMzX21h dGNoKTsNCj4gLSNlbmRpZg0KPiAtDQo+IC1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBj ZG5zM19kcml2ZXIgPSB7DQo+IC0JLnByb2JlCQk9IGNkbnMzX3Byb2JlLA0KPiAtCS5yZW1vdmUJ CT0gY2RuczNfcmVtb3ZlLA0KPiAtCS5kcml2ZXIJCT0gew0KPiAtCQkubmFtZQk9ICJjZG5zLXVz YjMiLA0KPiAtCQkub2ZfbWF0Y2hfdGFibGUJPSBvZl9tYXRjaF9wdHIob2ZfY2RuczNfbWF0Y2gp LA0KPiAtCQkucG0JPSAmY2RuczNfcG1fb3BzLA0KPiAtCX0sDQo+IC19Ow0KPiAtDQo+IC1tb2R1 bGVfcGxhdGZvcm1fZHJpdmVyKGNkbnMzX2RyaXZlcik7DQo+IC0NCj4gLU1PRFVMRV9BTElBUygi cGxhdGZvcm06Y2RuczMiKTsNCj4gLU1PRFVMRV9BVVRIT1IoIlBhd2VsIExhc3pjemFrIDxwYXdl bGxAY2FkZW5jZS5jb20+Iik7DQo+IC1NT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7DQo+IC1NT0RV TEVfREVTQ1JJUFRJT04oIkNhZGVuY2UgVVNCMyBEUkQgQ29udHJvbGxlciBEcml2ZXIiKTsNCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NkbnMzL2NvcmUuaCBiL2RyaXZlcnMvdXNiL2NkbnMz L2NvcmUuaA0KPiBpbmRleCBjMDlmZGRlM2FlOGYuLjI4NDcwN2MxOTYyMCAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy91c2IvY2RuczMvY29yZS5oDQo+ICsrKyBiL2RyaXZlcnMvdXNiL2NkbnMzL2Nv cmUuaA0KPiBAQCAtMyw3ICszLDcgQEANCj4gICAqIENhZGVuY2UgVVNCU1MgRFJEIEhlYWRlciBG aWxlLg0KPiAgICoNCj4gICAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IE5YUA0KPiAtICogQ29w eXJpZ2h0IChDKSAyMDE4LTIwMTkgQ2FkZW5jZS4NCj4gKyAqIENvcHlyaWdodCAoQykgMjAxOC0y MDIwIENhZGVuY2UuDQo+ICAgKg0KPiAgICogQXV0aG9yczogUGV0ZXIgQ2hlbiA8cGV0ZXIuY2hl bkBueHAuY29tPg0KPiAgICogICAgICAgICAgUGF3ZWwgTGFzemN6YWsgPHBhd2VsbEBjYWRlbmNl LmNvbT4NCj4gQEAgLTk3LDUgKzk3LDExIEBAIHN0cnVjdCBjZG5zMyB7DQo+ICB9Ow0KPiAgDQo+ ICBpbnQgY2RuczNfaHdfcm9sZV9zd2l0Y2goc3RydWN0IGNkbnMzICpjZG5zKTsNCj4gK2ludCBj ZG5zM19pbml0KHN0cnVjdCBjZG5zMyAqY2Rucyk7DQo+ICtpbnQgY2RuczNfcmVtb3ZlKHN0cnVj dCBjZG5zMyAqY2Rucyk7DQo+ICANCj4gKyNpZmRlZiBDT05GSUdfUE1fU0xFRVANCj4gK2ludCBj ZG5zM19yZXN1bWUoc3RydWN0IGNkbnMzICpjZG5zKTsNCj4gK2ludCBjZG5zM19zdXNwZW5kKHN0 cnVjdCBjZG5zMyAqY2Rucyk7DQo+ICsjZW5kaWYgLyogQ09ORklHX1BNX1NMRUVQICovDQo+ICAj ZW5kaWYgLyogX19MSU5VWF9DRE5TM19DT1JFX0ggKi8NCg0K