Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6610C433EF for ; Tue, 4 Jan 2022 15:03:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234584AbiADPDA (ORCPT ); Tue, 4 Jan 2022 10:03:00 -0500 Received: from esa.hc3962-90.iphmx.com ([216.71.140.77]:18295 "EHLO esa.hc3962-90.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234568AbiADPCw (ORCPT ); Tue, 4 Jan 2022 10:02:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qccesdkim1; t=1641308572; x=1641913372; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=cHqa+xdyfYsi2O5/dWcP1jV2yIaf2/9rIegk02hI6GM=; b=ZCdN8GeVSjsljEp9UnvyPKbhIOKxwVO3g2GOIMyN5E/cLQ0CVv6I5Gut 579yG7FbD/REJAl8vCNfwGNROuXNmegPjC6A1QcYP/MkPSwLxuqwMZJf/ 0BNGU2F+SP2YyorIynw8XQh8gXge5atHGZJWMoZ03OGuY77VAIS+UrXDl c=; Received: from mail-sn1anam02lp2040.outbound.protection.outlook.com (HELO NAM02-SN1-obe.outbound.protection.outlook.com) ([104.47.57.40]) by ob1.hc3962-90.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jan 2022 15:02:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fQSCQ1tZD00Trmqyd0vkPcneZKOwsGCsysbwrBVd8dAcjyC6DYe4KYdPpOuMMlKMakDaSlK33UqmpfU8nHM1JI8o3mvMpFHfUUfMfXgGgqbiBTtiV2A+3V6nx8N7u1y2CRDpsXc48G2Ag2Nj1CPRlqDo2tOtRLppCPgoCANg/4a5V9BeOKdtlubMNF2ckY3ZxhtVjDLkP4qwM2Tcy1wfNLFeiqKhQscqr1zNe1Of2pqodu4cqYB6LHpGO5YTr+onZ2G4RNMZA2qLAj0A+zJTkDNhNwko+COjcOoFJ4D16PYoosxZZIzBnjcqb3GFSLpzXkaGRoTLqg3BZiQuXcHNvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cHqa+xdyfYsi2O5/dWcP1jV2yIaf2/9rIegk02hI6GM=; b=jyq/E8dA8tTR1BFLhssmALxlqCR+MD/YRepJjpyaptrDxV4QNTg/yrcb0MwXd7+V74MAMyhmJgUJq0lJmjiJbd962UtYxKo7rwgGyaGGoQKbeJqXJnBkKW2d8IzqMvfiiuIZCcYDe/XA6E2CnpJtXi39GwwgT563x5+bup53wbW4vYvAdXxLALJv2CrGfpJrQkkD4n6EqYh3Epi5V34vPF9gbNvjVjFiAqF43I4A2TBGKCIOjhER9V3xJxkgj7z7Cc5imud3yPp86Sf4PAYl0Jf9IKFT3lrfe9cPBc5s8l6ByU+6cXiQS2ILrpOUg1x+ayDR528uwD1roOqOHAeR6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=quicinc.com; dmarc=pass action=none header.from=quicinc.com; dkim=pass header.d=quicinc.com; arc=none Received: from SJ0PR02MB8449.namprd02.prod.outlook.com (2603:10b6:a03:3f5::8) by BYAPR02MB5558.namprd02.prod.outlook.com (2603:10b6:a03:9b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.15; Tue, 4 Jan 2022 15:02:46 +0000 Received: from SJ0PR02MB8449.namprd02.prod.outlook.com ([fe80::e4c9:c9c8:1b83:7a65]) by SJ0PR02MB8449.namprd02.prod.outlook.com ([fe80::e4c9:c9c8:1b83:7a65%7]) with mapi id 15.20.4867.007; Tue, 4 Jan 2022 15:02:46 +0000 From: "Sajida Bhanu (Temp) (QUIC)" To: Adrian Hunter , "Sajida Bhanu (Temp) (QUIC)" , "riteshh@codeaurora.org" , "Asutosh Das (asd)" , "ulf.hansson@linaro.org" , "agross@kernel.org" , "bjorn.andersson@linaro.org" , "linux-mmc@vger.kernel.org" , "linux-arm-msm@vger.kernel.org" , "linux-kernel@vger.kernel.org" CC: "stummala@codeaurora.org" , "vbadigan@codeaurora.org" , "Ram Prakash Gupta (QUIC)" , "Pradeep Pragallapati (QUIC)" , "sartgarg@codeaurora.org" , "nitirawa@codeaurora.org" , "sayalil@codeaurora.org" Subject: RE: [PATCH V2] mmc: debugfs: add error statistics Thread-Topic: [PATCH V2] mmc: debugfs: add error statistics Thread-Index: AQHX8Piwwz+Wb66W+kWR6ItlPnzKnKwzlxCAgAj8QUCAFJlQAIAB6aqQ Date: Tue, 4 Jan 2022 15:02:45 +0000 Message-ID: References: <1639492863-7053-1-git-send-email-quic_c_sbhanu@quicinc.com> <9fbec373-e667-b4a5-4b92-741f9dd2b7ee@intel.com> <4ba587c1-2092-285c-c13c-e3ed69fec403@intel.com> In-Reply-To: <4ba587c1-2092-285c-c13c-e3ed69fec403@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quicinc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2ea98b59-2777-441c-aed1-08d9cf93445d x-ms-traffictypediagnostic: BYAPR02MB5558:EE_ x-ld-processed: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4303; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +EpDPfkqO+HjT7e269FpnpNhnpGUncyrHXRdLS1tbZFCioVBLvoW5garGhnUWfLq3KPWB5YQevSeuE2pT57F7hllX8TXk8oaJJBOIdk57Dqnyo0Nc3dmQ9sdsXXPt+9nOHm1K0CAGlTW+7v9f6tInmgQXNwoVZi+cW8oTCbz1Fqjym6U9i9qDTSYRv9QqettNiiaeD8AAczkPGaESltGhiR0zPCq0g1WZLyAkum8orj19X6NNOCgi4soaUJfOalCQ3uZ8YCDFBxNL9pSctfxyTaMmQdbKFRfXrXXDv2p+yUBSAfQ4ls7xd4ahfPSij2a90YvgMO1MjJVON6RHH1m7Zb+Wt3O56qKo/65npmOPPPVv9i3PxT1nqe3vcAI9d2iEm8ivaGoOKbDy5BCy71Wo5cuI0mPgsJLEmXCetimGJ0E2GGIBJ7/OQ60NeGW3TAV/05M5ufKWTw6p1e7HUi3M0Odh5FivOeRN7wenjQR88ilV08Oz1HvhOGG+mkHPJSoTixIOqhpwYzbtrNsM8OFrWvKn6LjIGcWRh7NmTyuPnfCgscGrtz8txLfga6xzN5cu6zIhW0EqwPyZFPNLGPGNbgaEVBP/4RQsWVZWUM8fIyBemHrmB7ZlJCnMcxuxeap6I8jfG/MQuKc7D/LDpSnJ9qdt52YH/o1q26GXxeOTNWE44J1V1i4XfG8+FYX26BCVZkPo9QdQdPLE+eQlsFpqcTtUvhW8+4+zP2LWj8PGQ4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR02MB8449.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(83380400001)(9686003)(71200400001)(110136005)(38100700002)(30864003)(54906003)(2906002)(921005)(7416002)(33656002)(52536014)(86362001)(8676002)(5660300002)(186003)(66556008)(7696005)(6506007)(4326008)(26005)(53546011)(76116006)(66476007)(8936002)(64756008)(508600001)(55016003)(122000001)(38070700005)(316002)(66946007)(66446008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YVJOL1YvUzdRVVRoR0haUFpnRyt3MEgxb3NBVFZpWVBHa0NHWSsrczNCMVFF?= =?utf-8?B?S3Fnc01tcGI1WUZ3cHBLd0o1QjJKYzVxMGZzUjJBVkxLK2o4bm5GTGplREc1?= =?utf-8?B?VUY0UEEyVzdKai9yN0k1QjlFQjk3cGljMkNwOEJ0ODhDWituS3JPbkpFRWRH?= =?utf-8?B?ZmxMQnpkK1h0NnlWaktsVmNORGhhNWp5Z042VjFTWm1jRWZ2eFNlMU1CdnVx?= =?utf-8?B?SmM1VHl4UEdqUXYvRk5mdUdzZlNpOWxSN0YrYzFpbk1tRVdsVVM2Y3hwKzAw?= =?utf-8?B?WjJySGl1d2hiK3plQmlPL1VWSzl0VG16VlN6U2RFTmZ4enlkOFllV09XQ1J1?= =?utf-8?B?TTVlUDJwNWpQSzgzOXNzRFc1SDdwWjNhT05RdThsaEJ1dTZFSUJJT1dRdmEw?= =?utf-8?B?VGdXRXVRaXpITUFzSzVjR0VGbU5SOG45d2JHanZLRUNjU3luRHZNZlJsMEsr?= =?utf-8?B?ZWozS2RzTTczUjd2U0xkbnp4MDVNQjV0WjlqaXA5VFVST0JRekNFQXUvM3R1?= =?utf-8?B?TFMwQ25qUFVvcDhONjZYa0pENlptQjQxZHZWZVhQRUpTMlFvNElueFQ1U0VS?= =?utf-8?B?ckJzSm1XTjN6NGV3N1B6QVRTSy8wQUpxWjhXOGJkbXU3QWtpUGZmU1VyMWc4?= =?utf-8?B?enptcjBsVkMrbHE0Qkh5VWx3Y05nUTQ5N04wUkhEMGxOcDhES3FuQzcyMmR6?= =?utf-8?B?cGVqdHlSTGhFQXhqeGZhOXdDbHBESnY5akVMVkxtSGZKRW1KK0VadklleXRK?= =?utf-8?B?V3RETnBHVGJ5SXA1NjdGZlV2dFd5L0hRK1NIcklrbWtpcjR0YjY1eTlVQTdz?= =?utf-8?B?ajZWS0x6aWtRNVBsVFVWQnk2ZWxYb2RuZXF5elg4emxYbllIZSsvRXUrT1kx?= =?utf-8?B?V1kvN1NHeXZGa1QzYUF3VTZnbG9ZNzlOOTRqVWMySXl1R2ZiYVI1UVFKN0VY?= =?utf-8?B?TFpHUTZMUkNQN212SDllMEhGYWNFRTVMVEdCYkxTN2R2MFk2cFpiNS81QUZT?= =?utf-8?B?Z2puNEJyeHJESXBJTHVZOEN5STBQZXg1azNUNGxEazNLZE5pVEtHZ0EzT0Fj?= =?utf-8?B?V3k2cGFjUVNGcjFVSWdiQ1lwU2EwWU5pMzdGSUNtbGVCcHZDbUYvMEhwTTg3?= =?utf-8?B?bTFlMzd4TFJBMDlHR2NBeDhqaTFsZnhHU0hBWGhQdHZxQ3hWSkFXUlZvSHdC?= =?utf-8?B?OUkrNkFTK0Y1MTNoVUxZTzVLZFJIL1F2NndDQ2UyY1pLa0RqOURHbEx1VWlz?= =?utf-8?B?YjJGREIvc3cvVTFNUU9oRGVQeklFcFprcnRGQ1AyaGpON2NOWlJqNGI5OC9C?= =?utf-8?B?Z28zaUkzbEFvNVlKNFFNdUI3aXNIU1U3em5EcFYxTGFlVW9XcVl2dk1LVitG?= =?utf-8?B?UXBKTDlrMy9VcHhqMDRBZk9oTk1wSEFGL1E2UFVYdDgxUkpWeGpqaHdTVlZS?= =?utf-8?B?ZktvMk1WcThPRncyTkwvdldENWU1Mkl2d3hieDVCS2JieVdXMmdOTTlKcURH?= =?utf-8?B?MEhxMm03OXM2V05GKytaaHloYlJpK1FPd2Y1MFJVZytmck9IeHF6SU1VUk1v?= =?utf-8?B?S2tnaUVmb25mQzRndVkzYTREMjhsK05UWm9idWNYcXVFVU1Yd2lRWWZHSFl5?= =?utf-8?B?NG5JSkx4YVNldDFuMk5QQUl3dHh5RGlZdE91c0RiOEN0TThDaVNHUmlmNG5W?= =?utf-8?B?RFhnQm9WWEVzMTlkby9QRE1Rdlduek53eDlDTXVIR3kwcTBheVNJYzJDUXFz?= =?utf-8?B?TG9jcUVkeU1aMGJrT01DWlkzS3BrMDVkclQ5MDVNcVNYRS8wRmlQbzBBbHJL?= =?utf-8?B?MVZPcDNjR2N5WUt6N0RsOVB4Q01BVndIY25VUTB6MnZONnNMbHJ4NVk5TDN2?= =?utf-8?B?aEdSL0lMUDZMR3ZNT0UyVCszamg5RVpRdkpGbjlCd3huNXJmVndESkY3bkRR?= =?utf-8?B?QVp6US9uV0lmdGhKTllZSU5HOXNYVlFLWnp5enlHYWtxL251UkRyZjFOQTRV?= =?utf-8?B?akdHWU00MTV5MUFjWlNPZnFJa3BXeXl0UkUvVlJ6YlRSaTlNSnQ5ZXJZMXNy?= =?utf-8?B?R0grd01ydjdWeG9hR1RyS2UxcHd4MzUxNktnaFArMi9Ta2IrL3JNL2FHWXEy?= =?utf-8?B?OU52QWdJVXlzc0F4d013TVljTnB2QlM0Zk5aaGk1dENLcSswYVF6eUJzOGQx?= =?utf-8?Q?0HS9G+AK6PQAPeDlqREG8vzq/tb9c9/07npi5Ub8WfB9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: quicinc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR02MB8449.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ea98b59-2777-441c-aed1-08d9cf93445d X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jan 2022 15:02:46.0175 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NpxJpe7hNolDeqvLDQOIaA8M8gkmWewE+lcISuTGqm/pKtmOTNBmj0u8dREkF1KvlDg9cTaQtsRQBqmD+8cCWczEHSETlAcb370upD8tdDY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR02MB5558 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgQWRyaWFuLA0KDQpUaGFua3MgZm9yIHRoZSByZXZpZXcuDQoNClBsZWFzZSBmaW5kIHRoZSBp bmxpbmUgY29tbWVudHMuDQoNClRoYW5rcywNClNhamlkYQ0KDQotLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KRnJvbTogQWRyaWFuIEh1bnRlciA8YWRyaWFuLmh1bnRlckBpbnRlbC5jb20+IA0K U2VudDogTW9uZGF5LCBKYW51YXJ5IDMsIDIwMjIgMzoyMCBQTQ0KVG86IFNhamlkYSBCaGFudSAo VGVtcCkgKFFVSUMpIDxxdWljX2Nfc2JoYW51QHF1aWNpbmMuY29tPjsgcml0ZXNoaEBjb2RlYXVy b3JhLm9yZzsgQXN1dG9zaCBEYXMgKGFzZCkgPGFzdXRvc2hkQHF1aWNpbmMuY29tPjsgdWxmLmhh bnNzb25AbGluYXJvLm9yZzsgYWdyb3NzQGtlcm5lbC5vcmc7IGJqb3JuLmFuZGVyc3NvbkBsaW5h cm8ub3JnOyBsaW51eC1tbWNAdmdlci5rZXJuZWwub3JnOyBsaW51eC1hcm0tbXNtQHZnZXIua2Vy bmVsLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KQ2M6IHN0dW1tYWxhQGNvZGVh dXJvcmEub3JnOyB2YmFkaWdhbkBjb2RlYXVyb3JhLm9yZzsgUmFtIFByYWthc2ggR3VwdGEgKFFV SUMpIDxxdWljX3JhbXByYWthQHF1aWNpbmMuY29tPjsgUHJhZGVlcCBQcmFnYWxsYXBhdGkgKFFV SUMpIDxxdWljX3ByYWdhbGxhQHF1aWNpbmMuY29tPjsgc2FydGdhcmdAY29kZWF1cm9yYS5vcmc7 IG5pdGlyYXdhQGNvZGVhdXJvcmEub3JnOyBzYXlhbGlsQGNvZGVhdXJvcmEub3JnDQpTdWJqZWN0 OiBSZTogW1BBVENIIFYyXSBtbWM6IGRlYnVnZnM6IGFkZCBlcnJvciBzdGF0aXN0aWNzDQoNCk9u IDIxLzEyLzIwMjEgMDk6MTYsIFNhamlkYSBCaGFudSAoVGVtcCkgKFFVSUMpIHdyb3RlOg0KPiBI aSBBZHJpYW4sDQo+IA0KPiBUaGFua3MgZm9yIHRoZSByZXZpZXcuDQo+IA0KPiBQbGVhc2UgZmlu ZCB0aGUgaW5saW5lIGNvbW1lbnRzLg0KDQpJIGZpbmQgdGhlIHdheSB0aGUgaW5saW5lIGNvbW1l bnRzIGFyZSBkb25lIGEgYml0IGRpZmZpY3VsdCB0byBmb2xsb3csIHNpbmNlIHdoYXQgSSB3cm90 ZSBpcyBub3QgcXVvdGVkLCBhbmQgd2hhdCB5b3Ugd3JvdGUgaXMgcXVvdGVkLiAgTm9ybWFsbHkg aXQgaXMgdGhlIG90aGVyIHdheSBhcm91bmQuDQoNCj4gDQo+IFRoYW5rcywNCj4gU2FqaWRhDQo+ IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBZHJpYW4gSHVudGVyIDxh ZHJpYW4uaHVudGVyQGludGVsLmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBEZWNlbWJlciAxNSwg MjAyMSA3OjMzIFBNDQo+IFRvOiBTYWppZGEgQmhhbnUgKFRlbXApIChRVUlDKSA8cXVpY19jX3Ni aGFudUBxdWljaW5jLmNvbT47IA0KPiByaXRlc2hoQGNvZGVhdXJvcmEub3JnOyBBc3V0b3NoIERh cyAoYXNkKSA8YXN1dG9zaGRAcXVpY2luYy5jb20+OyANCj4gdWxmLmhhbnNzb25AbGluYXJvLm9y ZzsgYWdyb3NzQGtlcm5lbC5vcmc7IGJqb3JuLmFuZGVyc3NvbkBsaW5hcm8ub3JnOyANCj4gbGlu dXgtbW1jQHZnZXIua2VybmVsLm9yZzsgbGludXgtYXJtLW1zbUB2Z2VyLmtlcm5lbC5vcmc7IA0K PiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+IENjOiBzdHVtbWFsYUBjb2RlYXVyb3Jh Lm9yZzsgdmJhZGlnYW5AY29kZWF1cm9yYS5vcmc7IFJhbSBQcmFrYXNoIA0KPiBHdXB0YSAoUVVJ QykgPHF1aWNfcmFtcHJha2FAcXVpY2luYy5jb20+OyBQcmFkZWVwIFByYWdhbGxhcGF0aSAoUVVJ QykgDQo+IDxxdWljX3ByYWdhbGxhQHF1aWNpbmMuY29tPjsgc2FydGdhcmdAY29kZWF1cm9yYS5v cmc7IA0KPiBuaXRpcmF3YUBjb2RlYXVyb3JhLm9yZzsgc2F5YWxpbEBjb2RlYXVyb3JhLm9yZw0K PiBTdWJqZWN0OiBSZTogW1BBVENIIFYyXSBtbWM6IGRlYnVnZnM6IGFkZCBlcnJvciBzdGF0aXN0 aWNzDQo+IA0KPiBPbiAxNC8xMi8yMDIxIDE2OjQxLCBTaGFpayBTYWppZGEgQmhhbnUgd3JvdGU6 DQo+PiBBZGQgZGVidWdmcyBlbnRyeSB0byBxdWVyeSBlTU1DIGFuZCBTRCBjYXJkIGVycm9ycyBz dGF0aXN0aWNzLg0KPj4gVGhpcyBmZWF0dXJlIGlzIHVzZWZ1bCBmb3IgZGVidWcgYW5kIHRlc3Rp bmcNCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBTaGFpayBTYWppZGEgQmhhbnUgPHF1aWNfY19zYmhh bnVAcXVpY2luYy5jb20+DQo+PiAtLS0NCj4+DQo+PiBDaGFuZ2VzIHNpbmNlIFYxOg0KPj4gCS1S ZW1vdmVkIHN5c2ZzIGVudHJ5IGZvciBlTU1DIGFuZCBTRCBjYXJkIGVycm9yIHN0YXRpc3RpY3Mg YW5kIGFkZGVkDQo+PiAJIGRlYnVnZnMgZW50cnkgYXMgc3VnZ2VzdGVkIGJ5IEFkcmlhbiBIdW50 ZXIgYW5kIFVsZiBIYW5zc29uLg0KPiANCj4gVGhhbmtzIGZvciBkb2luZyB0aGlzLg0KPiANCj4+ IC0tLQ0KPj4gIGRyaXZlcnMvbW1jL2NvcmUvZGVidWdmcy5jIHwgMTA2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4gIGRyaXZlcnMvbW1jL2NvcmUvcXVl dWUuYyAgIHwgICAyICsNCj4+ICBkcml2ZXJzL21tYy9ob3N0L3NkaGNpLmMgICB8ICA1MyArKysr KysrKysrKysrKysrKystLS0tLQ0KPj4gIGluY2x1ZGUvbGludXgvbW1jL2hvc3QuaCAgIHwgIDM3 ICsrKysrKysrKysrKysrKysNCj4+ICA0IGZpbGVzIGNoYW5nZWQsIDE4NiBpbnNlcnRpb25zKCsp LCAxMiBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvY29yZS9k ZWJ1Z2ZzLmMgYi9kcml2ZXJzL21tYy9jb3JlL2RlYnVnZnMuYyANCj4+IGluZGV4IDNmZGJjODAu LjQwMjEwYzM0IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9tbWMvY29yZS9kZWJ1Z2ZzLmMNCj4+ ICsrKyBiL2RyaXZlcnMvbW1jL2NvcmUvZGVidWdmcy5jDQo+PiBAQCAtMjIzLDYgKzIyMywxMDcg QEAgc3RhdGljIGludCBtbWNfY2xvY2tfb3B0X3NldCh2b2lkICpkYXRhLCB1NjQNCj4+IHZhbCkg IERFRklORV9ERUJVR0ZTX0FUVFJJQlVURShtbWNfY2xvY2tfZm9wcywgbW1jX2Nsb2NrX29wdF9n ZXQsIG1tY19jbG9ja19vcHRfc2V0LA0KPj4gIAkiJWxsdVxuIik7DQo+PiAgDQo+PiArc3RhdGlj IGludCBtbWNfZXJyX3N0YXRlX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbCkgew0KPj4gKwlzdHJ1 Y3QgbW1jX2hvc3QgKmhvc3QgPSBkYXRhOw0KPj4gKw0KPj4gKwlpZiAoIWhvc3QpDQo+PiArCQly ZXR1cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICsJKnZhbCA9IGhvc3QtPmVycl9zdGF0ZSA/IDEgOiAw Ow0KPj4gKw0KPj4gKwlyZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCBtbWNf ZXJyX3N0YXRlX2NsZWFyKHZvaWQgKmRhdGEsIHU2NCB2YWwpIHsNCj4+ICsJc3RydWN0IG1tY19o b3N0ICpob3N0ID0gZGF0YTsNCj4+ICsNCj4+ICsJaWYgKCFob3N0KQ0KPj4gKwkJcmV0dXJuIC1F SU5WQUw7DQo+PiArDQo+PiArCWhvc3QtPmVycl9zdGF0ZSA9IGZhbHNlOw0KPiANCj4gSXMgdGhl cmUgbXVjaCByZWFzb24gdG8gZGlzYWJsZSBlcnIgc3RhdHMgZnJvbSB1c2Vyc3BhY2U/DQo+IA0K Pj4+Pj4+IFllcyAsIHdoaWxlIGRlYnVnZ2luZyB3ZSBjYW4gZ28gYW5kIGNoZWNrIGVycl9zdGF0 ZSAsIEl0IGlzIGZhbHNlIG1lYW5zIG5vIGVycm9ycyBoYXBwZW5lZCBpbiBkcml2ZXIgbGV2ZWwg YW5kIHRydWUgbWVhbnMgZXJyb3JzIGhhcHBlbmVkIGluIGRyaXZlciBsZXZlbCBhbmQgdGhlbiB3 ZSBjYW4gZ28gYW5kIGNoZWNrIGVycl9zdGF0c1tdIHRvIGtub3cgbW9yZSBvbiBlcnJvciBkZXRh aWxzIGxpa2UgZGF0YSBDUkMgLCBjb21tYW5kIENSQyBldGMuDQoNClRoYXQgaXMgbm90IGV4ZWN0 bHkgaG93IGl0IGlzIHByb2dyYW1tZWQuICAiZXJyX3N0YXRlIGlzIGZhbHNlIiBtZWFucyBubyBl cnJvcnMgaGF2ZSBiZWVuIHJlY29yZGVkLCBub3QgdGhhdCBubyBlcnJvcnMgaGFwcGVuZGVkLg0K DQo+Pj4+Pj4gSWYgdXNlciB3YW50cyB0byBleHBsaWNpdGx5IGNsZWFyIHRoZW4gaGUgY2FuIHVz ZSB0aGlzLg0KDQo+IA0KPj4gKw0KPj4gKwlyZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArREVG SU5FX1NJTVBMRV9BVFRSSUJVVEUobW1jX2Vycl9zdGF0ZSwgbW1jX2Vycl9zdGF0ZV9nZXQsDQo+ PiArCQltbWNfZXJyX3N0YXRlX2NsZWFyLCAiJWxsdVxuIik7DQo+PiArDQo+PiArc3RhdGljIGlu dCBtbWNfZXJyX3N0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKSB7 DQo+PiArCXN0cnVjdCBtbWNfaG9zdCAqaG9zdCA9IChzdHJ1Y3QgbW1jX2hvc3QgKilmaWxlLT5w cml2YXRlOw0KPj4gKw0KPj4gKwlpZiAoIWhvc3QpDQo+PiArCQlyZXR1cm4gLUVJTlZBTDsNCj4g DQo+IEkgd2FzIHRoaW5raW5nIHdlIG5lZWRlZCBhIHdheSB0byBkZXRlcm1pbmUgd2hldGhlciBz dGF0cyB3ZXJlIGJlaW5nIGNvbGxlY3RlZCBiZWNhdXNlIG5vdCBhbGwgZHJpdmVycyB3b3VsZCBz dXBwb3J0IGl0IGF0IGxlYXN0IGluaXRpYWxseSBlLmcuDQo+IA0KPiAJaWYgKCFob3N0LT5lcnJf c3RhdHNfZW5hYmxlZCkgew0KPiAJCXNlcV9wcmludGYoZmlsZSwgIk5vdCBzdXBwb3J0ZWQgYnkg ZHJpdmVyXG4iKTsNCj4gCQlyZXR1cm4gMDsNCj4gCX0NCj4gDQo+Pj4+Pj4+PiBZb3UgbWVhbiBk ZWNsYXJlIGFub3RoZXIgdmFyaWFibGUgKGVycl9zdGF0c19lbmFibGVkKSBhbmQgZW5hYmxlIGl0 IGluIHByb2JlPw0KDQpZZXMsIGFsdGhvdWdoIGl0IGlzIG5vdCBjbGVhciBpZiB0aGlzIGlzIHRo ZSBzYW1lIGFzIHdoYXQgeW91IHdhbnQgZnJvbSBlcnJfc3RhdGUsIGkuZS4gaXMgZXJyX3N0YXRl IGRpZmZlcmVudCBmcm9tIGVycl9zdGF0c19lbmFibGVkPw0KDQo+Pj4+PiBZZXMsIGVycl9zdGF0 ZSBhbmQgZXJyX3N0YXRzX2VuYWJsZWQgYm90aCBhcmUgZGlmZmVyZW50LiAgZXJyX3N0YXRlIHdp bGwgYmUgc2V0IGlmIGFueSBlcnJvcnMgaGFwcGVuZWQgaW4gZHJpdmVyIGxldmVsLiANCiBlcnJf c3RhdHNfZW5hYmxlZCB3aWxsIGJlIHNldCAgaWYgZXJyX3N0YXRzIGZlYXR1cmUgZW5hYmxlZCwg IGlmIGFueSB2ZW5kb3Igd2FudHMgdG8gdXNlIGVycl9zdGF0cyBmZWF0dXJlIHRoZXkgd2lsbCBz ZXQgdGhpcyBlcnJfc3RhdHNfZW5hYmxlZCBpbiB0aGVpciB2ZW5kb3Igc3BlY2lmaWMgZmlsZS4N Cg0KPiANCj4+ICsNCj4+ICsJc2VxX3ByaW50ZihmaWxlLCAiIyBDb21tYW5kIFRpbWVvdXQgT2Nj dXJyZWQ6XHQgJWRcbiIsDQo+PiArCQkgICBob3N0LT5lcnJfc3RhdHNbTU1DX0VSUl9DTURfVElN RU9VVF0pOw0KPiANCj4gTWF5YmUgcHV0IHRoZSBkZXNjcmlwdGlvbnMgaW4gYW4gYXJyYXkgYW5k IGl0ZXJhdGUgZS5nLg0KPiANCj4gCWNvbnN0IGNoYXIgKmRlc2NbTU1DX0VSUl9NQVhdID0gew0K PiAJCVtNTUNfRVJSX0NNRF9USU1FT1VUXSA9ICJDb21tYW5kIFRpbWVvdXQgT2NjdXJyZWQiLA0K PiAJCWV0Yw0KPiAJfTsNCj4gCWludCBpOw0KPiANCj4gCWlmICghaG9zdCkNCj4gCQlyZXR1cm4g LUVJTlZBTDsNCj4gDQo+IAlmb3IgKGkgPSAwOyBpIDwgTU1DX0VSUl9NQVg7IGkrKykgew0KPiAJ CWlmIChkZXNjW2ldKQ0KPiAJCQlzZXFfcHJpbnRmKGZpbGUsICIjICVzOlx0ICVkXG4iLA0KPiAJ CQkJICAgZGVzY1sxXSwgaG9zdC0+ZXJyX3N0YXRzW2ldKTsNCj4gCX0NCj4gDQo+Pj4+Pj4+PiBT dXJlDQo+IA0KPj4gKw0KPj4gKwlzZXFfcHJpbnRmKGZpbGUsICIjIENvbW1hbmQgQ1JDIEVycm9y cyBPY2N1cnJlZDpcdCAlZFxuIiwNCj4+ICsJCSAgIGhvc3QtPmVycl9zdGF0c1tNTUNfRVJSX0NN RF9DUkNdKTsNCj4+ICsNCj4+ICsJc2VxX3ByaW50ZihmaWxlLCAiIyBEYXRhIFRpbWVvdXQgT2Nj dXJyZWQ6XHQgJWRcbiIsDQo+PiArCQkgICBob3N0LT5lcnJfc3RhdHNbTU1DX0VSUl9EQVRfVElN RU9VVF0pOw0KPj4gKw0KPj4gKwlzZXFfcHJpbnRmKGZpbGUsICIjIERhdGEgQ1JDIEVycm9ycyBP Y2N1cnJlZDpcdCAlZFxuIiwNCj4+ICsJCSAgIGhvc3QtPmVycl9zdGF0c1tNTUNfRVJSX0RBVF9D UkNdKTsNCj4+ICsNCj4+ICsJc2VxX3ByaW50ZihmaWxlLCAiIyBBdXRvLUNtZCBFcnJvciBPY2N1 cnJlZDpcdCAlZFxuIiwNCj4+ICsJCSAgIGhvc3QtPmVycl9zdGF0c1tNTUNfRVJSX0FETUFdKTsN Cj4+ICsNCj4+ICsJc2VxX3ByaW50ZihmaWxlLCAiIyBBRE1BIEVycm9yIE9jY3VycmVkOlx0ICVk XG4iLA0KPj4gKwkJICAgaG9zdC0+ZXJyX3N0YXRzW01NQ19FUlJfQURNQV0pOw0KPj4gKw0KPj4g KwlzZXFfcHJpbnRmKGZpbGUsICIjIFR1bmluZyBFcnJvciBPY2N1cnJlZDpcdCAlZFxuIiwNCj4+ ICsJCSAgIGhvc3QtPmVycl9zdGF0c1tNTUNfRVJSX1RVTklOR10pOw0KPj4gKw0KPj4gKwlzZXFf cHJpbnRmKGZpbGUsICIjIENNRFEgUkVEIEVycm9yczpcdFx0ICVkXG4iLA0KPj4gKwkJICAgaG9z dC0+ZXJyX3N0YXRzW01NQ19FUlJfQ01EUV9SRURdKTsNCj4+ICsNCj4+ICsJc2VxX3ByaW50Zihm aWxlLCAiIyBDTURRIEdDRSBFcnJvcnM6XHRcdCAlZFxuIiwNCj4+ICsJCSAgIGhvc3QtPmVycl9z dGF0c1tNTUNfRVJSX0NNRFFfR0NFXSk7DQo+PiArDQo+PiArCXNlcV9wcmludGYoZmlsZSwgIiMg Q01EUSBJQ0NFIEVycm9yczpcdFx0ICVkXG4iLA0KPj4gKwkJICAgaG9zdC0+ZXJyX3N0YXRzW01N Q19FUlJfQ01EUV9JQ0NFXSk7DQo+PiArDQo+PiArCXNlcV9wcmludGYoZmlsZSwgIiMgUmVxdWVz dCBUaW1lZG91dDpcdCAlZFxuIiwNCj4+ICsJCSAgIGhvc3QtPmVycl9zdGF0c1tNTUNfRVJSX1JF UV9USU1FT1VUXSk7DQo+PiArDQo+PiArCXNlcV9wcmludGYoZmlsZSwgIiMgQ01EUSBSZXF1ZXN0 IFRpbWVkb3V0Olx0ICVkXG4iLA0KPj4gKwkJICAgaG9zdC0+ZXJyX3N0YXRzW01NQ19FUlJfQ01E UV9SRVFfVElNRU9VVF0pOw0KPj4gKw0KPj4gKwlzZXFfcHJpbnRmKGZpbGUsICIjIElDRSBDb25m aWcgRXJyb3JzOlx0XHQgJWRcbiIsDQo+PiArCQkgICBob3N0LT5lcnJfc3RhdHNbTU1DX0VSUl9J Q0VfQ0ZHXSk7DQo+PiArDQo+PiArCXJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMg aW50IG1tY19lcnJfc3RhdHNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAN Cj4+ICsqZmlsZSkgew0KPj4gKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgbW1jX2Vycl9zdGF0 c19zaG93LCBpbm9kZS0+aV9wcml2YXRlKTsgfQ0KPj4gKw0KPj4gK3N0YXRpYyBzc2l6ZV90IG1t Y19lcnJfc3RhdHNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICp1 YnVmLA0KPj4gKwkJCQkgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpDQo+PiArew0KPj4gKwlz dHJ1Y3QgbW1jX2hvc3QgKmhvc3QgPSBmaWxwLT5mX21hcHBpbmctPmhvc3QtPmlfcHJpdmF0ZTsN Cj4+ICsNCj4+ICsJaWYgKCFob3N0KQ0KPj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+PiArDQo+PiAr CXByX2RlYnVnKCIlczogUmVzZXR0aW5nIE1NQyBlcnJvciBzdGF0aXN0aWNzXG4iLCBfX2Z1bmNf Xyk7DQo+PiArCW1lbXNldChob3N0LT5lcnJfc3RhdHMsIDAsIHNpemVvZihob3N0LT5lcnJfc3Rh dHMpKTsNCj4+ICsNCj4+ICsJcmV0dXJuIGNudDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGNv bnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbW1jX2Vycl9zdGF0c19mb3BzID0gew0KPj4gKwku b3Blbgk9IG1tY19lcnJfc3RhdHNfb3BlbiwNCj4+ICsJLnJlYWQJPSBzZXFfcmVhZCwNCj4+ICsJ LndyaXRlCT0gbW1jX2Vycl9zdGF0c193cml0ZSwNCj4+ICt9Ow0KPj4gKw0KPj4gIHZvaWQgbW1j X2FkZF9ob3N0X2RlYnVnZnMoc3RydWN0IG1tY19ob3N0ICpob3N0KSAgew0KPj4gIAlzdHJ1Y3Qg ZGVudHJ5ICpyb290Ow0KPj4gQEAgLTIzNiw2ICszMzcsMTEgQEAgdm9pZCBtbWNfYWRkX2hvc3Rf ZGVidWdmcyhzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpDQo+PiAgCWRlYnVnZnNfY3JlYXRlX2ZpbGVf dW5zYWZlKCJjbG9jayIsIFNfSVJVU1IgfCBTX0lXVVNSLCByb290LCBob3N0LA0KPj4gIAkJCQkg ICAmbW1jX2Nsb2NrX2ZvcHMpOw0KPj4gIA0KPj4gKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJlcnJf c3RhdGUiLCAwNjAwLCByb290LCBob3N0LA0KPj4gKwkJJm1tY19lcnJfc3RhdGUpOw0KPj4gKwlk ZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJlcnJfc3RhdHMiLCAwNjAwLCByb290LCBob3N0LA0KPj4gKwkJ Jm1tY19lcnJfc3RhdHNfZm9wcyk7DQo+PiArDQo+PiAgI2lmZGVmIENPTkZJR19GQUlMX01NQ19S RVFVRVNUDQo+PiAgCWlmIChmYWlsX3JlcXVlc3QpDQo+PiAgCQlzZXR1cF9mYXVsdF9hdHRyKCZm YWlsX2RlZmF1bHRfYXR0ciwgZmFpbF9yZXF1ZXN0KTsgZGlmZiAtLWdpdCANCj4+IGEvZHJpdmVy cy9tbWMvY29yZS9xdWV1ZS5jIGIvZHJpdmVycy9tbWMvY29yZS9xdWV1ZS5jIGluZGV4DQo+PiBi MTVjMDM0Li41MjQzOTI5IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9tbWMvY29yZS9xdWV1ZS5j DQo+PiArKysgYi9kcml2ZXJzL21tYy9jb3JlL3F1ZXVlLmMNCj4+IEBAIC0xMDAsNiArMTAwLDgg QEAgc3RhdGljIGVudW0gYmxrX2VoX3RpbWVyX3JldHVybiBtbWNfY3FlX3RpbWVkX291dChzdHJ1 Y3QgcmVxdWVzdCAqcmVxKQ0KPj4gIAllbnVtIG1tY19pc3N1ZV90eXBlIGlzc3VlX3R5cGUgPSBt bWNfaXNzdWVfdHlwZShtcSwgcmVxKTsNCj4+ICAJYm9vbCByZWNvdmVyeV9uZWVkZWQgPSBmYWxz ZTsNCj4+ICANCj4+ICsJbW1jX2RlYnVnZnNfZXJyX3N0YXRzX2luYyhob3N0LCBNTUNfRVJSX0NN RFFfUkVRX1RJTUVPVVQpOw0KPj4gKw0KPj4gIAlzd2l0Y2ggKGlzc3VlX3R5cGUpIHsNCj4+ICAJ Y2FzZSBNTUNfSVNTVUVfQVNZTkM6DQo+PiAgCWNhc2UgTU1DX0lTU1VFX0RDTUQ6DQo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS5jIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhj aS5jDQo+IA0KPiBJIHRoaW5rIHRoZSBjb3JlIGNoYW5nZXMgc2hvdWxkIGJlIGEgc2VwYXJhdGUg cGF0Y2ggZnJvbSBzZGhjaS4NCj4gSSB3b3VsZCBwcm9iYWJseSBzcGxpdCBpbnRvIDQ6DQo+IAlt bWMgY29yZQ0KPiAJbW1jIGJsb2NrIGRyaXZlcg0KPiAJY3FoY2kgZHJpdmVyDQo+IAlzZGhjaSBk cml2ZXINCj4gDQo+Pj4+PiBTdXJlDQo+IA0KPj4gaW5kZXggMDdjNmRhMS4uZDc0MjA1MSAxMDA2 NDQNCj4+IC0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYw0KPj4gKysrIGIvZHJpdmVycy9t bWMvaG9zdC9zZGhjaS5jDQo+PiBAQCAtMTEzLDYgKzExMyw3IEBAIHZvaWQgc2RoY2lfZHVtcHJl Z3Moc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QpDQo+PiAgCWlmIChob3N0LT5vcHMtPmR1bXBfdmVu ZG9yX3JlZ3MpDQo+PiAgCQlob3N0LT5vcHMtPmR1bXBfdmVuZG9yX3JlZ3MoaG9zdCk7DQo+PiAg DQo+PiArCW1tY19kZWJ1Z2ZzX2Vycl9zdGF0c19lbmFibGUoaG9zdC0+bW1jKTsNCj4gDQo+IFdo eSBoZXJlIGFuZCBub3QgaW4gZS5nLiBfX3NkaGNpX2FkZF9ob3N0KCkgPw0KPiANCj4+Pj4+IElm IGFueSBlcnJvcnMgaGFwcGVuZWQgIGluIGRyaXZlciBsZXZlbCB0aGVuIHdlIHdpbGwgY2FsbCBz ZGhjaV9kdW1wcmVncygpIHJpZ2h0KCBlcnJfc3RhdGUgdHJ1ZSBtZWFucyBzb21lIGVycm9ycyBo YXBwZW5lZCBpbiBkcml2ZXIgbGV2ZWwgKS4gIFNvIGl0IGlzIGJldHRlciB0byBjYWxsIG1tY19k ZWJ1Z2ZzX2Vycl9zdGF0c19lbmFibGUoKSBoZXJlLg0KDQpSZWdpc3RlcnMgYXJlIG5vdCBkdW1w ZWQgZm9yIG1vc3QgZXJyb3JzLiAgUGxlYXNlIG1vdmUgdGhpcyB0byBfX3NkaGNpX2FkZF9ob3N0 KCkuDQoNCj4+Pj4gZXJyX3N0YXRlIGlzIHRydWUgbWVhbnMgZXJyb3JzIGhhcHBlbmVkIGluIGRy aXZlciBsZXZlbCBhbmQgZm9yIG1vc3Qgb2YgdGhlIGVycm9ycyB3ZSBhcmUgZHVtcGluZyB0aGUg cmVnaXN0ZXJzLCBzbyBJIGFtIHRoaW5raW5nIGl0IGlzIGJldHRlciB0byBoYXZlIHRoaXMgY2Fs bCBpbiBzZGhjaV9kdW1wcmVncygpIG9ubHkuDQoNCj4gDQo+PiAgCVNESENJX0RVTVAoIj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iKTsNCj4+ICB9DQo+PiAg RVhQT1JUX1NZTUJPTF9HUEwoc2RoY2lfZHVtcHJlZ3MpOw0KPj4gQEAgLTMxNTksNiArMzE2MCw3 IEBAIHN0YXRpYyB2b2lkIHNkaGNpX3RpbWVvdXRfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQp DQo+PiAgCXNwaW5fbG9ja19pcnFzYXZlKCZob3N0LT5sb2NrLCBmbGFncyk7DQo+PiAgDQo+PiAg CWlmIChob3N0LT5jbWQgJiYgIXNkaGNpX2RhdGFfbGluZV9jbWQoaG9zdC0+Y21kKSkgew0KPj4g KwkJbW1jX2RlYnVnZnNfZXJyX3N0YXRzX2luYyhob3N0LT5tbWMsIE1NQ19FUlJfUkVRX1RJTUVP VVQpOw0KPj4gIAkJcHJfZXJyKCIlczogVGltZW91dCB3YWl0aW5nIGZvciBoYXJkd2FyZSBjbWQg aW50ZXJydXB0LlxuIiwNCj4+ICAJCSAgICAgICBtbWNfaG9zdG5hbWUoaG9zdC0+bW1jKSk7DQo+ PiAgCQlzZGhjaV9kdW1wcmVncyhob3N0KTsNCj4+IEBAIC0zMTgxLDYgKzMxODMsNyBAQCBzdGF0 aWMgdm9pZCBzZGhjaV90aW1lb3V0X2RhdGFfdGltZXIoc3RydWN0IA0KPj4gdGltZXJfbGlzdCAq dCkNCj4+ICANCj4+ICAJaWYgKGhvc3QtPmRhdGEgfHwgaG9zdC0+ZGF0YV9jbWQgfHwNCj4+ICAJ ICAgIChob3N0LT5jbWQgJiYgc2RoY2lfZGF0YV9saW5lX2NtZChob3N0LT5jbWQpKSkgew0KPj4g KwkJbW1jX2RlYnVnZnNfZXJyX3N0YXRzX2luYyhob3N0LT5tbWMsIE1NQ19FUlJfUkVRX1RJTUVP VVQpOw0KPj4gIAkJcHJfZXJyKCIlczogVGltZW91dCB3YWl0aW5nIGZvciBoYXJkd2FyZSBpbnRl cnJ1cHQuXG4iLA0KPj4gIAkJICAgICAgIG1tY19ob3N0bmFtZShob3N0LT5tbWMpKTsNCj4+ICAJ CXNkaGNpX2R1bXByZWdzKGhvc3QpOw0KPj4gQEAgLTMyNDAsMTEgKzMyNDMsMTUgQEAgc3RhdGlj IHZvaWQgc2RoY2lfY21kX2lycShzdHJ1Y3Qgc2RoY2lfaG9zdCANCj4+ICpob3N0LCB1MzIgaW50 bWFzaywgdTMyICppbnRtYXNrX3ApDQo+PiAgDQo+PiAgCWlmIChpbnRtYXNrICYgKFNESENJX0lO VF9USU1FT1VUIHwgU0RIQ0lfSU5UX0NSQyB8DQo+PiAgCQkgICAgICAgU0RIQ0lfSU5UX0VORF9C SVQgfCBTREhDSV9JTlRfSU5ERVgpKSB7DQo+PiAtCQlpZiAoaW50bWFzayAmIFNESENJX0lOVF9U SU1FT1VUKQ0KPj4gKwkJaWYgKGludG1hc2sgJiBTREhDSV9JTlRfVElNRU9VVCkgew0KPj4gIAkJ CWhvc3QtPmNtZC0+ZXJyb3IgPSAtRVRJTUVET1VUOw0KPj4gLQkJZWxzZQ0KPj4gKwkJCW1tY19k ZWJ1Z2ZzX2Vycl9zdGF0c19pbmMoaG9zdC0+bW1jLCBNTUNfRVJSX0NNRF9USU1FT1VUKTsNCj4+ ICsJCX0gZWxzZSB7DQo+PiAgCQkJaG9zdC0+Y21kLT5lcnJvciA9IC1FSUxTRVE7DQo+PiAtDQo+ PiArCQkJaWYgKGhvc3QtPmNtZC0+b3Bjb2RlICE9IE1NQ19TRU5EX1RVTklOR19CTE9DSyB8fA0K Pj4gKwkJCQkJaG9zdC0+Y21kLT5vcGNvZGUgIT0gTU1DX1NFTkRfVFVOSU5HX0JMT0NLX0hTMjAw KQ0KPj4gKwkJCQltbWNfZGVidWdmc19lcnJfc3RhdHNfaW5jKGhvc3QtPm1tYywgTU1DX0VSUl9D TURfQ1JDKTsNCj4+ICsJCX0NCj4+ICAJCS8qIFRyZWF0IGRhdGEgY29tbWFuZCBDUkMgZXJyb3Ig dGhlIHNhbWUgYXMgZGF0YSBDUkMgZXJyb3IgKi8NCj4+ICAJCWlmIChob3N0LT5jbWQtPmRhdGEg JiYNCj4+ICAJCSAgICAoaW50bWFzayAmIChTREhDSV9JTlRfQ1JDIHwgU0RIQ0lfSU5UX1RJTUVP VVQpKSA9PSBAQCAtMzI2Niw2DQo+PiArMzI3Myw3IEBAIHN0YXRpYyB2b2lkIHNkaGNpX2NtZF9p cnEoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHUzMiANCj4+ICtpbnRtYXNrLCB1MzIgKmludG1h c2tfcCkNCj4+ICAJCQkgIC1FVElNRURPVVQgOg0KPj4gIAkJCSAgLUVJTFNFUTsNCj4+ICANCj4+ ICsJCW1tY19kZWJ1Z2ZzX2Vycl9zdGF0c19pbmMoaG9zdC0+bW1jLCBNTUNfRVJSX0FVVE9fQ01E KTsNCj4+ICAJCWlmIChzZGhjaV9hdXRvX2NtZDIzKGhvc3QsIG1ycSkpIHsNCj4+ICAJCQltcnEt PnNiYy0+ZXJyb3IgPSBlcnI7DQo+PiAgCQkJX19zZGhjaV9maW5pc2hfbXJxKGhvc3QsIG1ycSk7 DQo+PiBAQCAtMzM0Miw2ICszMzUwLDcgQEAgc3RhdGljIHZvaWQgc2RoY2lfZGF0YV9pcnEoc3Ry dWN0IHNkaGNpX2hvc3QgKmhvc3QsIHUzMiBpbnRtYXNrKQ0KPj4gIAkJCWlmIChpbnRtYXNrICYg U0RIQ0lfSU5UX0RBVEFfVElNRU9VVCkgew0KPj4gIAkJCQlob3N0LT5kYXRhX2NtZCA9IE5VTEw7 DQo+PiAgCQkJCWRhdGFfY21kLT5lcnJvciA9IC1FVElNRURPVVQ7DQo+PiArCQkJCW1tY19kZWJ1 Z2ZzX2Vycl9zdGF0c19pbmMoaG9zdC0+bW1jLCBNTUNfRVJSX0NNRF9USU1FT1VUKTsNCj4+ICAJ CQkJX19zZGhjaV9maW5pc2hfbXJxKGhvc3QsIGRhdGFfY21kLT5tcnEpOw0KPj4gIAkJCQlyZXR1 cm47DQo+PiAgCQkJfQ0KPj4gQEAgLTMzNzUsMTggKzMzODQsMjUgQEAgc3RhdGljIHZvaWQgc2Ro Y2lfZGF0YV9pcnEoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHUzMiBpbnRtYXNrKQ0KPj4gIAkJ cmV0dXJuOw0KPj4gIAl9DQo+PiAgDQo+PiAtCWlmIChpbnRtYXNrICYgU0RIQ0lfSU5UX0RBVEFf VElNRU9VVCkNCj4+ICsJaWYgKGludG1hc2sgJiBTREhDSV9JTlRfREFUQV9USU1FT1VUKSB7DQo+ PiAgCQlob3N0LT5kYXRhLT5lcnJvciA9IC1FVElNRURPVVQ7DQo+PiArCQltbWNfZGVidWdmc19l cnJfc3RhdHNfaW5jKGhvc3QtPm1tYywgTU1DX0VSUl9EQVRfVElNRU9VVCk7DQo+PiArCX0NCj4+ ICAJZWxzZSBpZiAoaW50bWFzayAmIFNESENJX0lOVF9EQVRBX0VORF9CSVQpDQo+PiAgCQlob3N0 LT5kYXRhLT5lcnJvciA9IC1FSUxTRVE7DQo+PiAgCWVsc2UgaWYgKChpbnRtYXNrICYgU0RIQ0lf SU5UX0RBVEFfQ1JDKSAmJg0KPj4gIAkJU0RIQ0lfR0VUX0NNRChzZGhjaV9yZWFkdyhob3N0LCBT REhDSV9DT01NQU5EKSkNCj4+IC0JCQkhPSBNTUNfQlVTX1RFU1RfUikNCj4+ICsJCQkhPSBNTUNf QlVTX1RFU1RfUikgew0KPj4gIAkJaG9zdC0+ZGF0YS0+ZXJyb3IgPSAtRUlMU0VROw0KPj4gKwkJ aWYgKGhvc3QtPmNtZC0+b3Bjb2RlICE9IE1NQ19TRU5EX1RVTklOR19CTE9DSyB8fA0KPj4gKwkJ CQlob3N0LT5jbWQtPm9wY29kZSAhPSBNTUNfU0VORF9UVU5JTkdfQkxPQ0tfSFMyMDApDQo+PiAr CQkJbW1jX2RlYnVnZnNfZXJyX3N0YXRzX2luYyhob3N0LT5tbWMsIE1NQ19FUlJfREFUX0NSQyk7 DQo+PiArCX0NCj4+ICAJZWxzZSBpZiAoaW50bWFzayAmIFNESENJX0lOVF9BRE1BX0VSUk9SKSB7 DQo+PiAgCQlwcl9lcnIoIiVzOiBBRE1BIGVycm9yOiAweCUwOHhcbiIsIG1tY19ob3N0bmFtZSho b3N0LT5tbWMpLA0KPj4gIAkJICAgICAgIGludG1hc2spOw0KPj4gIAkJc2RoY2lfYWRtYV9zaG93 X2Vycm9yKGhvc3QpOw0KPj4gKwkJbW1jX2RlYnVnZnNfZXJyX3N0YXRzX2luYyhob3N0LT5tbWMs IE1NQ19FUlJfQURNQSk7DQo+PiAgCQlob3N0LT5kYXRhLT5lcnJvciA9IC1FSU87DQo+PiAgCQlp ZiAoaG9zdC0+b3BzLT5hZG1hX3dvcmthcm91bmQpDQo+PiAgCQkJaG9zdC0+b3BzLT5hZG1hX3dv cmthcm91bmQoaG9zdCwgaW50bWFzayk7IEBAIC0zOTA1LDIwICszOTIxLDMzIA0KPj4gQEAgYm9v bCBzZGhjaV9jcWVfaXJxKHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0LCB1MzIgaW50bWFzaywgaW50 ICpjbWRfZXJyb3IsDQo+PiAgCWlmICghaG9zdC0+Y3FlX29uKQ0KPj4gIAkJcmV0dXJuIGZhbHNl Ow0KPj4gIA0KPj4gLQlpZiAoaW50bWFzayAmIChTREhDSV9JTlRfSU5ERVggfCBTREhDSV9JTlRf RU5EX0JJVCB8IFNESENJX0lOVF9DUkMpKQ0KPj4gKwlpZiAoaW50bWFzayAmIChTREhDSV9JTlRf SU5ERVggfCBTREhDSV9JTlRfRU5EX0JJVCB8IA0KPj4gK1NESENJX0lOVF9DUkMpKSB7DQo+PiAg CQkqY21kX2Vycm9yID0gLUVJTFNFUTsNCj4+IC0JZWxzZSBpZiAoaW50bWFzayAmIFNESENJX0lO VF9USU1FT1VUKQ0KPj4gKwkJaWYgKGludG1hc2sgJiBTREhDSV9JTlRfQ1JDKSB7DQo+PiArCQkJ aWYgKGhvc3QtPmNtZC0+b3Bjb2RlICE9IE1NQ19TRU5EX1RVTklOR19CTE9DSyB8fA0KPj4gKwkJ CQkJaG9zdC0+Y21kLT5vcGNvZGUgIT0gTU1DX1NFTkRfVFVOSU5HX0JMT0NLX0hTMjAwKQ0KPj4g KwkJCQltbWNfZGVidWdmc19lcnJfc3RhdHNfaW5jKGhvc3QtPm1tYywgTU1DX0VSUl9DTURfQ1JD KTsNCj4+ICsJCX0NCj4+ICsJfSBlbHNlIGlmIChpbnRtYXNrICYgU0RIQ0lfSU5UX1RJTUVPVVQp IHsNCj4+ICAJCSpjbWRfZXJyb3IgPSAtRVRJTUVET1VUOw0KPj4gLQllbHNlDQo+PiArCQltbWNf ZGVidWdmc19lcnJfc3RhdHNfaW5jKGhvc3QtPm1tYywgTU1DX0VSUl9DTURfVElNRU9VVCk7DQo+ PiArCX0gZWxzZQ0KPj4gIAkJKmNtZF9lcnJvciA9IDA7DQo+PiAgDQo+PiAtCWlmIChpbnRtYXNr ICYgKFNESENJX0lOVF9EQVRBX0VORF9CSVQgfCBTREhDSV9JTlRfREFUQV9DUkMpKQ0KPj4gKwlp ZiAoaW50bWFzayAmIChTREhDSV9JTlRfREFUQV9FTkRfQklUIHwgU0RIQ0lfSU5UX0RBVEFfQ1JD KSkgew0KPj4gIAkJKmRhdGFfZXJyb3IgPSAtRUlMU0VROw0KPj4gLQllbHNlIGlmIChpbnRtYXNr ICYgU0RIQ0lfSU5UX0RBVEFfVElNRU9VVCkNCj4+ICsJCWlmIChpbnRtYXNrICYgU0RIQ0lfSU5U X0RBVEFfQ1JDKSB7DQo+PiArCQkJaWYgKGhvc3QtPmNtZC0+b3Bjb2RlICE9IE1NQ19TRU5EX1RV TklOR19CTE9DSyB8fA0KPj4gKwkJCQkJaG9zdC0+Y21kLT5vcGNvZGUgIT0gTU1DX1NFTkRfVFVO SU5HX0JMT0NLX0hTMjAwKQ0KPj4gKwkJCQltbWNfZGVidWdmc19lcnJfc3RhdHNfaW5jKGhvc3Qt Pm1tYywgTU1DX0VSUl9EQVRfQ1JDKTsNCj4+ICsJCX0NCj4+ICsJfSBlbHNlIGlmIChpbnRtYXNr ICYgU0RIQ0lfSU5UX0RBVEFfVElNRU9VVCkgew0KPj4gIAkJKmRhdGFfZXJyb3IgPSAtRVRJTUVE T1VUOw0KPj4gLQllbHNlIGlmIChpbnRtYXNrICYgU0RIQ0lfSU5UX0FETUFfRVJST1IpDQo+PiAr CQltbWNfZGVidWdmc19lcnJfc3RhdHNfaW5jKGhvc3QtPm1tYywgTU1DX0VSUl9EQVRfVElNRU9V VCk7DQo+PiArCX0gZWxzZSBpZiAoaW50bWFzayAmIFNESENJX0lOVF9BRE1BX0VSUk9SKSB7DQo+ PiAgCQkqZGF0YV9lcnJvciA9IC1FSU87DQo+PiAtCWVsc2UNCj4+ICsJCW1tY19kZWJ1Z2ZzX2Vy cl9zdGF0c19pbmMoaG9zdC0+bW1jLCBNTUNfRVJSX0FETUEpOw0KPj4gKwl9IGVsc2UNCj4+ICAJ CSpkYXRhX2Vycm9yID0gMDsNCj4+ICANCj4+ICAJLyogQ2xlYXIgc2VsZWN0ZWQgaW50ZXJydXB0 cy4gKi8NCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tYy9ob3N0LmggYi9pbmNsdWRl L2xpbnV4L21tYy9ob3N0LmggDQo+PiBpbmRleCA3YWZiNTdjLi5jMjYzZjhmIDEwMDY0NA0KPj4g LS0tIGEvaW5jbHVkZS9saW51eC9tbWMvaG9zdC5oDQo+PiArKysgYi9pbmNsdWRlL2xpbnV4L21t Yy9ob3N0LmgNCj4+IEBAIC05Myw2ICs5MywyMyBAQCBzdHJ1Y3QgbW1jX2Nsa19waGFzZV9tYXAg ew0KPj4gIA0KPj4gIHN0cnVjdCBtbWNfaG9zdDsNCj4+ICANCj4+ICtlbnVtIG1tY19lcnJfc3Rh dCB7DQo+PiArCU1NQ19FUlJfQ01EX1RJTUVPVVQsDQo+PiArCU1NQ19FUlJfQ01EX0NSQywNCj4+ ICsJTU1DX0VSUl9EQVRfVElNRU9VVCwNCj4+ICsJTU1DX0VSUl9EQVRfQ1JDLA0KPj4gKwlNTUNf RVJSX0FVVE9fQ01ELA0KPj4gKwlNTUNfRVJSX0FETUEsDQo+PiArCU1NQ19FUlJfVFVOSU5HLA0K Pj4gKwlNTUNfRVJSX0NNRFFfUkVELA0KPj4gKwlNTUNfRVJSX0NNRFFfR0NFLA0KPj4gKwlNTUNf RVJSX0NNRFFfSUNDRSwNCj4+ICsJTU1DX0VSUl9SRVFfVElNRU9VVCwNCj4+ICsJTU1DX0VSUl9D TURRX1JFUV9USU1FT1VULA0KPj4gKwlNTUNfRVJSX0lDRV9DRkcsDQo+PiArCU1NQ19FUlJfTUFY LA0KPj4gK307DQo+PiArDQo+PiAgc3RydWN0IG1tY19ob3N0X29wcyB7DQo+PiAgCS8qDQo+PiAg CSAqIEl0IGlzIG9wdGlvbmFsIGZvciB0aGUgaG9zdCB0byBpbXBsZW1lbnQgcHJlX3JlcSBhbmQg cG9zdF9yZXEgaW4gDQo+PiBAQCAtNTAwLDYgKzUxNyw4IEBAIHN0cnVjdCBtbWNfaG9zdCB7DQo+ PiAgDQo+PiAgCS8qIEhvc3QgU29mdHdhcmUgUXVldWUgc3VwcG9ydCAqLw0KPj4gIAlib29sCQkJ aHNxX2VuYWJsZWQ7DQo+PiArCXUzMiAgICAgICAgICAgICAgICAgICAgIGVycl9zdGF0c1tNTUNf RVJSX01BWF07DQo+IA0KPiBJZiB5b3UgbWFrZSBpdCB1NjQgdGhlbiB3ZSBkb24ndCBoYXZlIHRv IHRoaW5rIGFib3V0IHRoZSB2YWx1ZSBvdmVyZmxvd2luZy4NCj4gDQo+Pj4+IFN1cmUNCj4gDQo+ PiArCWJvb2wJCQllcnJfc3RhdGU7DQo+PiAgDQo+PiAgCXVuc2lnbmVkIGxvbmcJCXByaXZhdGVb XSBfX19fY2FjaGVsaW5lX2FsaWduZWQ7DQo+PiAgfTsNCj4+IEBAIC02MzUsNiArNjU0LDI0IEBA IHN0YXRpYyBpbmxpbmUgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gbW1jX2dldF9kbWFfZGlyKHN0 cnVjdCBtbWNfZGF0YSAqZGF0YSkNCj4+ICAJcmV0dXJuIGRhdGEtPmZsYWdzICYgTU1DX0RBVEFf V1JJVEUgPyBETUFfVE9fREVWSUNFIDogDQo+PiBETUFfRlJPTV9ERVZJQ0U7ICB9DQo+PiAgDQo+ PiArc3RhdGljIGlubGluZSB2b2lkIG1tY19kZWJ1Z2ZzX2Vycl9zdGF0c19lbmFibGUoc3RydWN0 IG1tY19ob3N0IA0KPj4gKyptbWMpIHsNCj4+ICsJbW1jLT5lcnJfc3RhdGUgPSB0cnVlOw0KPj4g K30NCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgbW1jX2RlYnVnZnNfZXJyX3N0YXRzX2lu YyhzdHJ1Y3QgbW1jX2hvc3QgKm1tYywNCj4+ICsJCWVudW0gbW1jX2Vycl9zdGF0IHN0YXQpIHsN Cj4+ICsNCj4+ICsJLyoNCj4+ICsJICogSWdub3JlIHRoZSBjb21tYW5kIHRpbWVvdXQgZXJyb3Jz IG9ic2VydmVkIGR1cmluZw0KPj4gKwkgKiB0aGUgY2FyZCBpbml0IGFzIHRob3NlIGFyZSBleGNl cHRlZC4NCj4+ICsJICovDQo+PiArCWlmICghbW1jLT5lcnJfc3RhdGUpDQo+PiArCQltbWMtPmVy cl9zdGF0c1tNTUNfRVJSX0NNRF9USU1FT1VUXSA9IDA7DQo+IA0KPiBUaGlzIHdvdWxkIGJlIGJl dHRlciBoYW5kbGVkIGluIHRoZSBjYXJkIGluaXQgY29kZSBzb21ld2hlcmUsIG5vdCBoZXJlLg0K PiANCj4+Pj4+IFN1cmUuDQo+IA0KPj4gKw0KPj4gKwltbWMtPmVycl9zdGF0c1tzdGF0XSArPSAx Ow0KPj4gK30NCj4+ICsNCj4+ICBpbnQgbW1jX3NlbmRfdHVuaW5nKHN0cnVjdCBtbWNfaG9zdCAq aG9zdCwgdTMyIG9wY29kZSwgaW50IA0KPj4gKmNtZF9lcnJvcik7ICBpbnQgbW1jX3NlbmRfYWJv cnRfdHVuaW5nKHN0cnVjdCBtbWNfaG9zdCAqaG9zdCwgdTMyIA0KPj4gb3Bjb2RlKTsgIGludCBt bWNfZ2V0X2V4dF9jc2Qoc3RydWN0IG1tY19jYXJkICpjYXJkLCB1OCANCj4+ICoqbmV3X2V4dF9j c2QpOw0KPj4NCj4gDQoNCg==