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 Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C749FC43334 for ; Sun, 3 Jul 2022 08:50:02 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6029A844BE; Sun, 3 Jul 2022 10:49:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=aspeedtech.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=aspeedtech.com header.i=@aspeedtech.com header.b="ydKyvOiE"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 45350844C1; Sun, 3 Jul 2022 10:49:57 +0200 (CEST) Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2126.outbound.protection.outlook.com [40.107.117.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 68D4F84424 for ; Sun, 3 Jul 2022 10:49:53 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=aspeedtech.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=chin-ting_kuo@aspeedtech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GzFRCUg9x6FAH2x6yOgOIAdg5TN1Ef4NlZFaJhIzknK0PUoX9PgY9ymTA4wVefHsGiUJ489F6hbW1gste0fmQ3nVNdbx9G4j1PB62/+QBAzq5bGCo1GdAOwAxCBgAVF4YcQ0sXigoVmLrwl6lRjnDJoUJcja11d38A6egAqJqAdtibwgNEaiGZ5X0LldUjipUB0eceNbY0UsJ9eIIsTnYGFuB/3uoGh2IPBkCA7WqpQn64pMZUtrg9E7+JDIWhafmQWpgK1pV8B39Md+eAuMVp82RiJlGOeLE2ugh3j/cwiTnyucTgtcUJ8FTBsOqjxtqqDBhruNoVy6ofyBTwZW8Q== 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=Tv1MCFgUJ86rDmoB6TFcq3gJdWFnc8hpQEfGiLE23+4=; b=eK1ZMYkxMcHgB5WVpqJfTu/PxEBz2YwUOshoC0yIwh5wVp+3UddglzD/p0NvXPqhgCZ0Vp1T5GEDpMqAg6/F6KloLF6UNXVdbmTBRIXC+mRrhFRFZZHvwtk/qRso3zwrGHBvmxFg3Vk0hqGfH/+rMOa09Ac2MVVAJn1wH87OJDw4+7AJyFM/Cxmd/aS6AiogL/Wpe3KQugIEQ8i5aFVI9m42DRnztPfDSGFhs3t55PzcAgm9VKHywcPHuv0pEYbaHLFZbJ/jiKcquIzdRhIEhk6dLyCGGCIonI3Rmzwq64kVg1842mpAIc/zObz/rq9Wjb3SDeaOGSZhPoO+1BlXjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=aspeedtech.com; dmarc=pass action=none header.from=aspeedtech.com; dkim=pass header.d=aspeedtech.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aspeedtech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Tv1MCFgUJ86rDmoB6TFcq3gJdWFnc8hpQEfGiLE23+4=; b=ydKyvOiEuLGsxIMcnhrWYWWg45VZFPenTSMScdsmqQNnzoecza8fHOnrGfh1PmjXjIQhb4/dbcvTC1w1ErJKqNdObQ8OIi2MfGNqEocOlUz/NGwobE+lO63KTf8QQa3wavEHo+2lby9fYvnF0acFOd7tGHqzQfEWHGW8OMqS4oqwwgfSDleVPZeIBEO3suyhTlbDnCl5I4q9VxrEQQCr8VCt7Q5LLBIrVQXZTQ1wEqcBkkTncLqacp97ReoipllB3XV9sypG8KRUhquRaK8IIt4pUHK5qgDlUPnQZ0rt5XcYOWVAb2FJn9YmDRA4HzKSfxlLchdDAr+Jm4YwHPvBcQ== Received: from HK0PR06MB2786.apcprd06.prod.outlook.com (2603:1096:203:5b::22) by TYZPR06MB4462.apcprd06.prod.outlook.com (2603:1096:400:67::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14; Sun, 3 Jul 2022 08:49:47 +0000 Received: from HK0PR06MB2786.apcprd06.prod.outlook.com ([fe80::214b:cb5f:d74a:9828]) by HK0PR06MB2786.apcprd06.prod.outlook.com ([fe80::214b:cb5f:d74a:9828%7]) with mapi id 15.20.5395.015; Sun, 3 Jul 2022 08:49:47 +0000 From: Chin-Ting Kuo To: =?utf-8?B?Q8OpZHJpYyBMZSBHb2F0ZXI=?= , ChiaWei Wang , "lukma@denx.de" , "seanga2@gmail.com" , Ryan Chen , BMC-SW , "jagan@amarulasolutions.com" , "vigneshr@ti.com" , "u-boot@lists.denx.de" , "p.yadav@ti.com" Subject: RE: [v4 07/12] spi-mem: Add dirmap API from Linux Thread-Topic: [v4 07/12] spi-mem: Add dirmap API from Linux Thread-Index: AQHYbzMic/1+C1/nRUq5jl1D8G5yU61pfcaAgAMXBgA= Date: Sun, 3 Jul 2022 08:49:47 +0000 Message-ID: References: <20220524055650.1115899-1-chin-ting_kuo@aspeedtech.com> <20220524055650.1115899-8-chin-ting_kuo@aspeedtech.com> <016a6a24-b17c-df8c-8a37-40fe46e9fadf@kaod.org> In-Reply-To: <016a6a24-b17c-df8c-8a37-40fe46e9fadf@kaod.org> Accept-Language: zh-TW, en-US Content-Language: zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=aspeedtech.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1baa16f9-6fcc-4e72-33b1-08da5cd0fbf4 x-ms-traffictypediagnostic: TYZPR06MB4462:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Ex70p+DZkaeXWiu3p4gOJKyi3dAdkaykPvfubKd4XH/VmsYbkOR1SNkeXhxnvGQ+SJEMRtPnedK0AMAQ6X+0dJwVfxmcMhZ1neHIeZP7RXTEPLJ8nNbiiGPp1lYH3Ot/yCzXowBs6/X0Taa3UhwOWlYfkV21K9TPFSnk1rS1AOvGO6ZJqJn23bmVImUNiY/W1AVKGBvMxqCYJlmzSaQwgTaENyaJf7urZ7vSjH0Rfdh6AbVO+wBxtKeFUoucplma8Tf/ouPGoWmRHoMGW4ZQusCupOorvgrmSlDNKaYklyAtMkoLx22rNv4i7C3fTtk6neuFTpuyNAxSyR0jGgHxq3UjcJ5uLswDT+g7jjT/rBlX9s9YUa2u3Q4Zds00oBonEisCiuojSotyZ0RWBVbElEXtb5GZNBZxyDdJYrrp++O2B7wkhWNvPG43uNBzLQyjgLgkUxWLotCa2zUmCxJDxtcgrIyEPZ5aGxWxYZl4QVXQ+fTjOqLWutoUbHlMkQfEVS5Re3LU861e5AM07G6eX03XC5ef6601XilZsfBAq2aTJztW1k91lL/J/ykhxjBFBaK9/Xn3Es9RS1QMSwPHFdKKh3VsZFWIx0/kgHZEqe8clszOgQXzGqEhoS/tfTy1ibJCvNYKlCT6DvFexXAJxkCLyF+MlwQpr01hWDlFAHtsKNJMGXgYfgaySCfV2obmGknG1gOJjKfmrEg99kwaKdjpQFwa3WfrWvrSkl7Xc+L/y2soqyNx2keIuYtbIecys3tmjTYOWR4QbQmT/bLTs8GvWrXCefcu+HmZ8BIkgOd0MiQj7EB45rPLzN1udu9cQh24sku7fUtRCRLWF1+nCTjiGDTLE3jlfsf1L8/bFRfQ2VjtOHpWGhZ+Agp0h1Q7 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HK0PR06MB2786.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(366004)(136003)(39830400003)(376002)(346002)(396003)(122000001)(33656002)(921005)(110136005)(7696005)(53546011)(8676002)(66946007)(66476007)(66556008)(66446008)(55016003)(71200400001)(64756008)(38070700005)(2906002)(76116006)(41300700001)(478600001)(9686003)(30864003)(83380400001)(966005)(316002)(6506007)(26005)(38100700002)(66574015)(52536014)(8936002)(5660300002)(86362001)(186003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cTVYeFBxT3ZKWDB2QWdRbllEdUFxclVNUStacUp4STdmZ3l4T2tldENkdUNZ?= =?utf-8?B?ZE1sZDFSK0pHL200VEFZNlltY25Tc1Q5Y3NlYzAvWCtnTTNwYithQTE2Zlha?= =?utf-8?B?dkMvM2F6Rll0TEFYNkhZd3lmcUR6ODVFUXJrRkNSWm1Ya0p2aENuMkc4UHph?= =?utf-8?B?RTFPcktzREdwcUZVMm9oUHdwUVNiOWx1dGxic2kxMlhreFd0QVZuUFdSL08y?= =?utf-8?B?YWJvS2o3YzdKWlhXZTJMdDgzMXUvT3VzRW9pd2h1N2kvVFdhWEV4Q2Y1UElO?= =?utf-8?B?TkZKdGNoSmFyeTllM1NmY3Qyd1NzRTBpRklTMVpxZlluVytXZXk0VE1hcFph?= =?utf-8?B?Q3kzRGhSTDBMM1lJbklnTENMM3hHN1ZWOVUrT0M5ZXdtek1KczNGbXhwYTlm?= =?utf-8?B?TWovdjNGMndKbkZiTnRWMytCVUM2UkZJY1JqTkxzVlIvdHhaaFlLNGVWcmZZ?= =?utf-8?B?alJldkxoME5BTytYbEc2M1NOK2xNYzhOZ1NlSFdCWHh6UkZhcXRYcC9QMjMw?= =?utf-8?B?bGtGZENKV1dOL01JNGFKL2Z2N2d2VHV5RzdOd25CVjlNNDlrTjNoaHlBZHlO?= =?utf-8?B?MjN5Q3l2dTkvZlNDd3Q2dkJTd0dyclJvSER0S0t3MUFYVlNQUisyV3JydjMx?= =?utf-8?B?WlpwNER6QmNIaVdCYnZuRGNzVXpDWk5vZ2d4SXlGTnB6dGltbDN4WXpUUXlI?= =?utf-8?B?T0NSWjdSU0JvdDFkaFdIOFVqYWpBSkFmZXJKSzMrK2ZBK0tvazBLcmNrRXFU?= =?utf-8?B?MFZqSmFpRkk2eS9hd09FaXo2VFZlYmxPTXNaY2pNaXlYZlp1WHUvYk5WMThn?= =?utf-8?B?TGNNZ25HMGp4RFFUSTJrMk9KYUF4Z2FiY1dpdGJrZjZBZmFTbk42M2Qxd3Ex?= =?utf-8?B?eWZvSnJQSmhWSmczWFpqQ3FzKytwNDZMa0JZalZuVW5FK0FoY0FLbU0wUXlO?= =?utf-8?B?ZUZYNnd6YWlZVWQ2dHFXUTY5SzB3YkFaMkpJVmRocU0zQ0JjZHhEb29qcXNu?= =?utf-8?B?TTE2Y1VhbDhzR2I0V1V5WE5teEJaY0pVVE4yVUFBaXowT1RuTmNiQXFyM3FS?= =?utf-8?B?NEptTHdaWUZ1QTh3Q3NSclgzY3BUV2RkZzhINUsrOHVBNm9DMDVwaWROeHBp?= =?utf-8?B?R29sYjBCbmFJdG5jZ0hvN1FrOHRzQUkrSWxuYTRleDUxSFhacUlmWDBCVUNs?= =?utf-8?B?UnEwMVEzNUVTdzBOdGh3R0FVMUlTckRQZlphZzEwWmo3S3dWSmFtKzhqUFFo?= =?utf-8?B?NVBSNTk0cGJwREVVUjNlNzVyTlAybGlaUUpxWlJVUldtaUpEZ2ZrYndWc3Vl?= =?utf-8?B?M2FvYVFMQWdGZGg0MWkzaFZYeitXd2MyUFh4OTZnVmtuYUYyRTJiVXpGVkdq?= =?utf-8?B?a0NwWGZCUThRVTRuem5GblhHSTkvb1pTcWh4TmNzSXVPVk5nWEF5WW90Rm1x?= =?utf-8?B?Mi9ldFdGaHZvbHhtRFdCUVpzSll0eUV3Z3BXTDRlMXBsVGNDNVJadTFEQXdk?= =?utf-8?B?VVpXR0xqNzNncURsdHhBTDZUbzUzMXU3UkNTcUlVL3EzbWlLMi9NcW54OWZw?= =?utf-8?B?d2s3dGhUSW9aaEJjaXhFbXpBMFBZNzRTQWt2VWNOVUNkVENMTndKRHpNaWMv?= =?utf-8?B?MVJidGFtblBCVkxlai9FVmRRU3cvc3VpU1BpdzlZcnJ0SWtGYTk2ZDAzQnN0?= =?utf-8?B?bmdCUzhjbE5maVRRcEJLNjNQRGtqdVhKTVhlS05uc1RPa0hKbG9pYnlWajNJ?= =?utf-8?B?ZWNnckdXNG9FY3NvM3A1amtlMGtxSGZBcUJpd1N5Tm16M3pka21kdmZlNjda?= =?utf-8?B?aHp6R3ZxWjlxNk9VTmxRQXljNzZ0dlRWL2xlaGlZYjdNVEhOS2FKZmJlWkhv?= =?utf-8?B?RVpEOWhOdDBFUHVSL1RYVjdacExRaWU3aUlwTXVwSndDcXZJajVGVE5QK1Bk?= =?utf-8?B?T1llWVQ1dEtCRXVpekppNHljeVBSNUswMklEaWw1cmk2T1cyS2xUMFZobldj?= =?utf-8?B?ajlJcWwvQ2tDaGExMkZBcTFsTUxjcUhTN2FocGlvelJvVGlPdTd4SU9OYlhF?= =?utf-8?B?QndFUGkxRy9hZFdNcnRrR2FDTy9iVEE5T1FtWmNsbElFSTlKZ0g2VTl2M0NL?= =?utf-8?B?Y05pM2luNkI5MjZORVY2ZzVHZ016Wmx1QTBTaEpQa0cvMjV6ZlB5MFUwRkY4?= =?utf-8?B?dUE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: aspeedtech.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: HK0PR06MB2786.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1baa16f9-6fcc-4e72-33b1-08da5cd0fbf4 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jul 2022 08:49:47.5759 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43d4aa98-e35b-4575-8939-080e90d5a249 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fFEWrsfkAzuH+WtG+sF9yYCiHK0AjrvRxa+cPlxTlZQsEhnV436wYS/RAMgPfYhU4IRBQeNUvR1RN/eRNDuxnLkx8kEWnR36YRJ7yJhAEBU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR06MB4462 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean SGkgQ8OpZHJpYywNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDw6lk cmljIExlIEdvYXRlciA8Y2xnQGthb2Qub3JnPg0KPiBTZW50OiBGcmlkYXksIEp1bHkgMSwgMjAy MiA1OjM3IFBNDQo+IFN1YmplY3Q6IFJlOiBbdjQgMDcvMTJdIHNwaS1tZW06IEFkZCBkaXJtYXAg QVBJIGZyb20gTGludXgNCj4gDQo+IE9uIDUvMjQvMjIgMDc6NTYsIENoaW4tVGluZyBLdW8gd3Jv dGU6DQo+ID4gVGhpcyBhZGRzIHRoZSBkaXJtYXAgQVBJIG9yaWdpbmFsbHkgaW50cm9kdWNlZCBp biBMaW51eCBjb21taXQgYWExNjdmMw0KPiA+ICgic3BpOiBzcGktbWVtOiBBZGQgYSBuZXcgQVBJ IHRvIHN1cHBvcnQgZGlyZWN0IG1hcHBpbmciKS4gVGhpcyBhbHNvDQo+ID4gaW5jbHVkZXMgc2V2 ZXJhbCBmb2xsb3ctdXAgcGF0Y2hlcyBhbmQgZml4ZXMuDQo+ID4NCj4gPiBDaGFuZ2VzIGZyb20g TGludXggaW5jbHVkZToNCj4gPiAqIEFkZGVkIEtjb25maWcgb3B0aW9uDQo+ID4gKiBDaGFuZ2Vk IHN0cnVjdCBkZXZpY2UgdG8gc3RydWN0IHVkZXZpY2UNCj4gPiAqIENoYW5nZWQgc3RydWN0IHNw aV9tZW0gdG8gc3RydWN0IHNwaV9zbGF2ZQ0KPiA+DQo+ID4gVGhpcyBwYXRjaCBpcyBvYnRhaW5l ZCBmcm9tIHRoZSBmb2xsb3dpbmcgcGF0Y2gNCj4gPiBodHRwczovL3BhdGNod29yay5vemxhYnMu b3JnL3Byb2plY3QvdWJvb3QvcGF0Y2gvMjAyMTAyMDUwNDM5MjQuMTQ5NTA0DQo+ID4gLTMtc2Vh bmdhMkBnbWFpbC5jb20vDQo+IA0KPiANCj4gSXQgaGFzIGJlZW4gc2VudCBsb25nIGFnby4gSXMg dGhlcmUgYW4gaXNzdWUgd2l0aCB0aGUgYmFja3BvcnQgZnJvbSBMaW51eCA/DQoNCk5vLg0KDQo+ IElzIGl0IHRoZSBsYWNrIG9mIGRyaXZlcnMgdXNpbmcgaXQgPw0KDQpZZXMgYW5kIHRodXMsIGl0 IGlzIHBvc3Rwb25lZCBhdCB0aGF0IHRpbWUuDQoNCj4gDQo+IFRoYW5rcywNCj4gDQo+IEMuDQo+ IA0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogQ2hpbi1UaW5nIEt1byA8Y2hpbi10aW5nX2t1b0Bh c3BlZWR0ZWNoLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBTZWFuIEFuZGVyc29uIDxzZWFuZ2Ey QGdtYWlsLmNvbT4NCj4gPiBBY2tlZC1ieTogUHJhdHl1c2ggWWFkYXYgPHAueWFkYXZAdGkuY29t Pg0KPiA+IC0tLQ0KPiA+IHYyOiBSZW1vdmUgIiNpZiBDT05GSUdfU1BJX0RJUk1BUCIgY29tcGls ZSB3cmFwcGVyLg0KPiA+IHYzOiBGaXggYSBncmFtbWF0aWNhbCBlcnJvciBpbiBzcGktbWVtLmgu DQo+ID4NCj4gPiAgIGRyaXZlcnMvc3BpL0tjb25maWcgICB8ICAxMCArKw0KPiA+ICAgZHJpdmVy cy9zcGkvc3BpLW1lbS5jIHwgMjY4DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KPiA+ICAgaW5jbHVkZS9zcGktbWVtLmggICAgIHwgIDc5ICsrKysrKysrKysr KysNCj4gPiAgIDMgZmlsZXMgY2hhbmdlZCwgMzU3IGluc2VydGlvbnMoKykNCj4gPg0KPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9LY29uZmlnIGIvZHJpdmVycy9zcGkvS2NvbmZpZyBpbmRl eA0KPiA+IGE2MTYyOTQ5MTAuLjI5NzI1MzcxNGEgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9z cGkvS2NvbmZpZw0KPiA+ICsrKyBiL2RyaXZlcnMvc3BpL0tjb25maWcNCj4gPiBAQCAtNDAsNiAr NDAsMTYgQEAgY29uZmlnIFNQSV9NRU0NCj4gPiAgIAkgIFRoaXMgZXh0ZW5zaW9uIGlzIG1lYW50 IHRvIHNpbXBsaWZ5IGludGVyYWN0aW9uIHdpdGggU1BJIG1lbW9yaWVzDQo+ID4gICAJICBieSBw cm92aWRpbmcgYW4gaGlnaC1sZXZlbCBpbnRlcmZhY2UgdG8gc2VuZCBtZW1vcnktbGlrZQ0KPiBj b21tYW5kcy4NCj4gPg0KPiA+ICtjb25maWcgU1BJX0RJUk1BUA0KPiA+ICsJYm9vbCAiU1BJIGRp cmVjdCBtYXBwaW5nIg0KPiA+ICsJZGVwZW5kcyBvbiBTUElfTUVNDQo+ID4gKwloZWxwDQo+ID4g KwkgIEVuYWJsZSB0aGUgU1BJIGRpcmVjdCBtYXBwaW5nIEFQSS4gTW9zdCBtb2Rlcm4gU1BJIGNv bnRyb2xsZXJzIGNhbg0KPiA+ICsJICBkaXJlY3RseSBtYXAgYSBTUEkgbWVtb3J5IChvciBhIHBv cnRpb24gb2YgdGhlIFNQSSBtZW1vcnkpIGluIHRoZSBDUFUNCj4gPiArCSAgYWRkcmVzcyBzcGFj ZS4gTW9zdCBvZiB0aGUgdGltZSB0aGlzIGJyaW5ncyBzaWduaWZpY2FudCBwZXJmb3JtYW5jZQ0K PiA+ICsJICBpbXByb3ZlbWVudHMgYXMgaXQgYXV0b21hdGVzIHRoZSB3aG9sZSBwcm9jZXNzIG9m IHNlbmRpbmcgU1BJDQo+IG1lbW9yeQ0KPiA+ICsJICBvcGVyYXRpb25zIGV2ZXJ5IHRpbWUgYSBu ZXcgcmVnaW9uIGlzIGFjY2Vzc2VkLg0KPiA+ICsNCj4gPiAgIGlmIERNX1NQSQ0KPiA+DQo+ID4g ICBjb25maWcgQUxURVJBX1NQSQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktbWVt LmMgYi9kcml2ZXJzL3NwaS9zcGktbWVtLmMgaW5kZXgNCj4gPiA5YzFlZGUxYjYxLi44ZTg5OTVm YzUzIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvc3BpL3NwaS1tZW0uYw0KPiA+ICsrKyBiL2Ry aXZlcnMvc3BpL3NwaS1tZW0uYw0KPiA+IEBAIC0yMSw2ICsyMSw4IEBADQo+ID4gICAjaW5jbHVk ZSA8c3BpLmg+DQo+ID4gICAjaW5jbHVkZSA8c3BpLW1lbS5oPg0KPiA+ICAgI2luY2x1ZGUgPGRt L2RldmljZV9jb21wYXQuaD4NCj4gPiArI2luY2x1ZGUgPGRtL2RldnJlcy5oPg0KPiA+ICsjaW5j bHVkZSA8bGludXgvYnVnLmg+DQo+ID4gICAjZW5kaWYNCj4gPg0KPiA+ICAgI2lmbmRlZiBfX1VC T09UX18NCj4gPiBAQCAtNDkxLDYgKzQ5MywyNzIgQEAgaW50IHNwaV9tZW1fYWRqdXN0X29wX3Np emUoc3RydWN0IHNwaV9zbGF2ZQ0KPiAqc2xhdmUsIHN0cnVjdCBzcGlfbWVtX29wICpvcCkNCj4g PiAgIH0NCj4gPiAgIEVYUE9SVF9TWU1CT0xfR1BMKHNwaV9tZW1fYWRqdXN0X29wX3NpemUpOw0K PiA+DQo+ID4gK3N0YXRpYyBzc2l6ZV90IHNwaV9tZW1fbm9fZGlybWFwX3JlYWQoc3RydWN0IHNw aV9tZW1fZGlybWFwX2Rlc2MNCj4gKmRlc2MsDQo+ID4gKwkJCQkgICAgICB1NjQgb2Zmcywgc2l6 ZV90IGxlbiwgdm9pZCAqYnVmKSB7DQo+ID4gKwlzdHJ1Y3Qgc3BpX21lbV9vcCBvcCA9IGRlc2Mt PmluZm8ub3BfdG1wbDsNCj4gPiArCWludCByZXQ7DQo+ID4gKw0KPiA+ICsJb3AuYWRkci52YWwg PSBkZXNjLT5pbmZvLm9mZnNldCArIG9mZnM7DQo+ID4gKwlvcC5kYXRhLmJ1Zi5pbiA9IGJ1ZjsN Cj4gPiArCW9wLmRhdGEubmJ5dGVzID0gbGVuOw0KPiA+ICsJcmV0ID0gc3BpX21lbV9hZGp1c3Rf b3Bfc2l6ZShkZXNjLT5zbGF2ZSwgJm9wKTsNCj4gPiArCWlmIChyZXQpDQo+ID4gKwkJcmV0dXJu IHJldDsNCj4gPiArDQo+ID4gKwlyZXQgPSBzcGlfbWVtX2V4ZWNfb3AoZGVzYy0+c2xhdmUsICZv cCk7DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gKw0KPiA+ICsJcmV0 dXJuIG9wLmRhdGEubmJ5dGVzOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgc3NpemVfdCBz cGlfbWVtX25vX2Rpcm1hcF93cml0ZShzdHJ1Y3Qgc3BpX21lbV9kaXJtYXBfZGVzYw0KPiAqZGVz YywNCj4gPiArCQkJCSAgICAgICB1NjQgb2Zmcywgc2l6ZV90IGxlbiwgY29uc3Qgdm9pZCAqYnVm KSB7DQo+ID4gKwlzdHJ1Y3Qgc3BpX21lbV9vcCBvcCA9IGRlc2MtPmluZm8ub3BfdG1wbDsNCj4g PiArCWludCByZXQ7DQo+ID4gKw0KPiA+ICsJb3AuYWRkci52YWwgPSBkZXNjLT5pbmZvLm9mZnNl dCArIG9mZnM7DQo+ID4gKwlvcC5kYXRhLmJ1Zi5vdXQgPSBidWY7DQo+ID4gKwlvcC5kYXRhLm5i eXRlcyA9IGxlbjsNCj4gPiArCXJldCA9IHNwaV9tZW1fYWRqdXN0X29wX3NpemUoZGVzYy0+c2xh dmUsICZvcCk7DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gKw0KPiA+ ICsJcmV0ID0gc3BpX21lbV9leGVjX29wKGRlc2MtPnNsYXZlLCAmb3ApOw0KPiA+ICsJaWYgKHJl dCkNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICsNCj4gPiArCXJldHVybiBvcC5kYXRhLm5ieXRl czsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIHNwaV9tZW1fZGlybWFwX2NyZWF0 ZSgpIC0gQ3JlYXRlIGEgZGlyZWN0IG1hcHBpbmcgZGVzY3JpcHRvcg0KPiA+ICsgKiBAbWVtOiBT UEkgbWVtIGRldmljZSB0aGlzIGRpcmVjdCBtYXBwaW5nIHNob3VsZCBiZSBjcmVhdGVkIGZvcg0K PiA+ICsgKiBAaW5mbzogZGlyZWN0IG1hcHBpbmcgaW5mb3JtYXRpb24NCj4gPiArICoNCj4gPiAr ICogVGhpcyBmdW5jdGlvbiBpcyBjcmVhdGluZyBhIGRpcmVjdCBtYXBwaW5nIGRlc2NyaXB0b3Ig d2hpY2ggY2FuDQo+ID4gK3RoZW4gYmUgdXNlZA0KPiA+ICsgKiB0byBhY2Nlc3MgdGhlIG1lbW9y eSB1c2luZyBzcGlfbWVtX2Rpcm1hcF9yZWFkKCkgb3INCj4gc3BpX21lbV9kaXJtYXBfd3JpdGUo KS4NCj4gPiArICogSWYgdGhlIFNQSSBjb250cm9sbGVyIGRyaXZlciBkb2VzIG5vdCBzdXBwb3J0 IGRpcmVjdCBtYXBwaW5nLCB0aGlzDQo+ID4gK2Z1bmN0aW9uDQo+ID4gKyAqIGZhbGxzIGJhY2sg dG8gYW4gaW1wbGVtZW50YXRpb24gdXNpbmcgc3BpX21lbV9leGVjX29wKCksIHNvIHRoYXQNCj4g PiArdGhlIGNhbGxlcg0KPiA+ICsgKiBkb2Vzbid0IGhhdmUgdG8gYm90aGVyIGltcGxlbWVudGlu ZyBhIGZhbGxiYWNrIG9uIGhpcyBvd24uDQo+ID4gKyAqDQo+ID4gKyAqIFJldHVybjogYSB2YWxp ZCBwb2ludGVyIGluIGNhc2Ugb2Ygc3VjY2VzcywgYW5kIEVSUl9QVFIoKSBvdGhlcndpc2UuDQo+ ID4gKyAqLw0KPiA+ICtzdHJ1Y3Qgc3BpX21lbV9kaXJtYXBfZGVzYyAqDQo+ID4gK3NwaV9tZW1f ZGlybWFwX2NyZWF0ZShzdHJ1Y3Qgc3BpX3NsYXZlICpzbGF2ZSwNCj4gPiArCQkgICAgICBjb25z dCBzdHJ1Y3Qgc3BpX21lbV9kaXJtYXBfaW5mbyAqaW5mbykgew0KPiA+ICsJc3RydWN0IHVkZXZp Y2UgKmJ1cyA9IHNsYXZlLT5kZXYtPnBhcmVudDsNCj4gPiArCXN0cnVjdCBkbV9zcGlfb3BzICpv cHMgPSBzcGlfZ2V0X29wcyhidXMpOw0KPiA+ICsJc3RydWN0IHNwaV9tZW1fZGlybWFwX2Rlc2Mg KmRlc2M7DQo+ID4gKwlpbnQgcmV0ID0gLUVPUE5PVFNVUFA7DQo+ID4gKw0KPiA+ICsJLyogTWFr ZSBzdXJlIHRoZSBudW1iZXIgb2YgYWRkcmVzcyBjeWNsZXMgaXMgYmV0d2VlbiAxIGFuZCA4IGJ5 dGVzLiAqLw0KPiA+ICsJaWYgKCFpbmZvLT5vcF90bXBsLmFkZHIubmJ5dGVzIHx8IGluZm8tPm9w X3RtcGwuYWRkci5uYnl0ZXMgPiA4KQ0KPiA+ICsJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOw0K PiA+ICsNCj4gPiArCS8qIGRhdGEuZGlyIHNob3VsZCBlaXRoZXIgYmUgU1BJX01FTV9EQVRBX0lO IG9yIFNQSV9NRU1fREFUQV9PVVQuDQo+ICovDQo+ID4gKwlpZiAoaW5mby0+b3BfdG1wbC5kYXRh LmRpciA9PSBTUElfTUVNX05PX0RBVEEpDQo+ID4gKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7 DQo+ID4gKw0KPiA+ICsJZGVzYyA9IGt6YWxsb2Moc2l6ZW9mKCpkZXNjKSwgR0ZQX0tFUk5FTCk7 DQo+ID4gKwlpZiAoIWRlc2MpDQo+ID4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7DQo+ID4g Kw0KPiA+ICsJZGVzYy0+c2xhdmUgPSBzbGF2ZTsNCj4gPiArCWRlc2MtPmluZm8gPSAqaW5mbzsN Cj4gPiArCWlmIChvcHMtPm1lbV9vcHMgJiYgb3BzLT5tZW1fb3BzLT5kaXJtYXBfY3JlYXRlKQ0K PiA+ICsJCXJldCA9IG9wcy0+bWVtX29wcy0+ZGlybWFwX2NyZWF0ZShkZXNjKTsNCj4gPiArDQo+ ID4gKwlpZiAocmV0KSB7DQo+ID4gKwkJZGVzYy0+bm9kaXJtYXAgPSB0cnVlOw0KPiA+ICsJCWlm ICghc3BpX21lbV9zdXBwb3J0c19vcChkZXNjLT5zbGF2ZSwgJmRlc2MtPmluZm8ub3BfdG1wbCkp DQo+ID4gKwkJCXJldCA9IC1FT1BOT1RTVVBQOw0KPiA+ICsJCWVsc2UNCj4gPiArCQkJcmV0ID0g MDsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlpZiAocmV0KSB7DQo+ID4gKwkJa2ZyZWUoZGVzYyk7 DQo+ID4gKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1 cm4gZGVzYzsNCj4gPiArfQ0KPiA+ICtFWFBPUlRfU1lNQk9MX0dQTChzcGlfbWVtX2Rpcm1hcF9j cmVhdGUpOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIHNwaV9tZW1fZGlybWFwX2Rlc3Ryb3ko KSAtIERlc3Ryb3kgYSBkaXJlY3QgbWFwcGluZyBkZXNjcmlwdG9yDQo+ID4gKyAqIEBkZXNjOiB0 aGUgZGlyZWN0IG1hcHBpbmcgZGVzY3JpcHRvciB0byBkZXN0cm95DQo+ID4gKyAqDQo+ID4gKyAq IFRoaXMgZnVuY3Rpb24gZGVzdHJveXMgYSBkaXJlY3QgbWFwcGluZyBkZXNjcmlwdG9yIHByZXZp b3VzbHkNCj4gPiArY3JlYXRlZCBieQ0KPiA+ICsgKiBzcGlfbWVtX2Rpcm1hcF9jcmVhdGUoKS4N Cj4gPiArICovDQo+ID4gK3ZvaWQgc3BpX21lbV9kaXJtYXBfZGVzdHJveShzdHJ1Y3Qgc3BpX21l bV9kaXJtYXBfZGVzYyAqZGVzYykgew0KPiA+ICsJc3RydWN0IHVkZXZpY2UgKmJ1cyA9IGRlc2Mt PnNsYXZlLT5kZXYtPnBhcmVudDsNCj4gPiArCXN0cnVjdCBkbV9zcGlfb3BzICpvcHMgPSBzcGlf Z2V0X29wcyhidXMpOw0KPiA+ICsNCj4gPiArCWlmICghZGVzYy0+bm9kaXJtYXAgJiYgb3BzLT5t ZW1fb3BzICYmDQo+IG9wcy0+bWVtX29wcy0+ZGlybWFwX2Rlc3Ryb3kpDQo+ID4gKwkJb3BzLT5t ZW1fb3BzLT5kaXJtYXBfZGVzdHJveShkZXNjKTsNCj4gPiArDQo+ID4gKwlrZnJlZShkZXNjKTsN Cj4gPiArfQ0KPiA+ICtFWFBPUlRfU1lNQk9MX0dQTChzcGlfbWVtX2Rpcm1hcF9kZXN0cm95KTsN Cj4gPiArDQo+ID4gKyNpZm5kZWYgX19VQk9PVF9fDQo+ID4gK3N0YXRpYyB2b2lkIGRldm1fc3Bp X21lbV9kaXJtYXBfcmVsZWFzZShzdHJ1Y3QgdWRldmljZSAqZGV2LCB2b2lkDQo+ID4gKypyZXMp IHsNCj4gPiArCXN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9kZXNjICpkZXNjID0gKihzdHJ1Y3Qgc3Bp X21lbV9kaXJtYXBfZGVzYw0KPiA+ICsqKilyZXM7DQo+ID4gKw0KPiA+ICsJc3BpX21lbV9kaXJt YXBfZGVzdHJveShkZXNjKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIGRldm1f c3BpX21lbV9kaXJtYXBfY3JlYXRlKCkgLSBDcmVhdGUgYSBkaXJlY3QgbWFwcGluZyBkZXNjcmlw dG9yDQo+IGFuZCBhdHRhY2gNCj4gPiArICoJCQkJICBpdCB0byBhIGRldmljZQ0KPiA+ICsgKiBA ZGV2OiBkZXZpY2UgdGhlIGRpcm1hcCBkZXNjIHdpbGwgYmUgYXR0YWNoZWQgdG8NCj4gPiArICog QG1lbTogU1BJIG1lbSBkZXZpY2UgdGhpcyBkaXJlY3QgbWFwcGluZyBzaG91bGQgYmUgY3JlYXRl ZCBmb3INCj4gPiArICogQGluZm86IGRpcmVjdCBtYXBwaW5nIGluZm9ybWF0aW9uDQo+ID4gKyAq DQo+ID4gKyAqIGRldm1fIHZhcmlhbnQgb2YgdGhlIHNwaV9tZW1fZGlybWFwX2NyZWF0ZSgpIGZ1 bmN0aW9uLiBTZWUNCj4gPiArICogc3BpX21lbV9kaXJtYXBfY3JlYXRlKCkgZm9yIG1vcmUgZGV0 YWlscy4NCj4gPiArICoNCj4gPiArICogUmV0dXJuOiBhIHZhbGlkIHBvaW50ZXIgaW4gY2FzZSBv ZiBzdWNjZXNzLCBhbmQgRVJSX1BUUigpIG90aGVyd2lzZS4NCj4gPiArICovDQo+ID4gK3N0cnVj dCBzcGlfbWVtX2Rpcm1hcF9kZXNjICoNCj4gPiArZGV2bV9zcGlfbWVtX2Rpcm1hcF9jcmVhdGUo c3RydWN0IHVkZXZpY2UgKmRldiwgc3RydWN0IHNwaV9zbGF2ZSAqc2xhdmUsDQo+ID4gKwkJCSAg IGNvbnN0IHN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9pbmZvICppbmZvKSB7DQo+ID4gKwlzdHJ1Y3Qg c3BpX21lbV9kaXJtYXBfZGVzYyAqKnB0ciwgKmRlc2M7DQo+ID4gKw0KPiA+ICsJcHRyID0gZGV2 cmVzX2FsbG9jKGRldm1fc3BpX21lbV9kaXJtYXBfcmVsZWFzZSwgc2l6ZW9mKCpwdHIpLA0KPiA+ ICsJCQkgICBHRlBfS0VSTkVMKTsNCj4gPiArCWlmICghcHRyKQ0KPiA+ICsJCXJldHVybiBFUlJf UFRSKC1FTk9NRU0pOw0KPiA+ICsNCj4gPiArCWRlc2MgPSBzcGlfbWVtX2Rpcm1hcF9jcmVhdGUo c2xhdmUsIGluZm8pOw0KPiA+ICsJaWYgKElTX0VSUihkZXNjKSkgew0KPiA+ICsJCWRldnJlc19m cmVlKHB0cik7DQo+ID4gKwl9IGVsc2Ugew0KPiA+ICsJCSpwdHIgPSBkZXNjOw0KPiA+ICsJCWRl dnJlc19hZGQoZGV2LCBwdHIpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVybiBkZXNjOw0K PiA+ICt9DQo+ID4gK0VYUE9SVF9TWU1CT0xfR1BMKGRldm1fc3BpX21lbV9kaXJtYXBfY3JlYXRl KTsNCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgZGV2bV9zcGlfbWVtX2Rpcm1hcF9tYXRjaChzdHJ1 Y3QgdWRldmljZSAqZGV2LCB2b2lkICpyZXMsDQo+ID4gK3ZvaWQgKmRhdGEpIHsNCj4gPiArCXN0 cnVjdCBzcGlfbWVtX2Rpcm1hcF9kZXNjICoqcHRyID0gcmVzOw0KPiA+ICsNCj4gPiArCWlmIChX QVJOX09OKCFwdHIgfHwgISpwdHIpKQ0KPiA+ICsJCXJldHVybiAwOw0KPiA+ICsNCj4gPiArCXJl dHVybiAqcHRyID09IGRhdGE7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBkZXZt X3NwaV9tZW1fZGlybWFwX2Rlc3Ryb3koKSAtIERlc3Ryb3kgYSBkaXJlY3QgbWFwcGluZyBkZXNj cmlwdG9yDQo+IGF0dGFjaGVkDQo+ID4gKyAqCQkJCSAgIHRvIGEgZGV2aWNlDQo+ID4gKyAqIEBk ZXY6IGRldmljZSB0aGUgZGlybWFwIGRlc2MgaXMgYXR0YWNoZWQgdG8NCj4gPiArICogQGRlc2M6 IHRoZSBkaXJlY3QgbWFwcGluZyBkZXNjcmlwdG9yIHRvIGRlc3Ryb3kNCj4gPiArICoNCj4gPiAr ICogZGV2bV8gdmFyaWFudCBvZiB0aGUgc3BpX21lbV9kaXJtYXBfZGVzdHJveSgpIGZ1bmN0aW9u LiBTZWUNCj4gPiArICogc3BpX21lbV9kaXJtYXBfZGVzdHJveSgpIGZvciBtb3JlIGRldGFpbHMu DQo+ID4gKyAqLw0KPiA+ICt2b2lkIGRldm1fc3BpX21lbV9kaXJtYXBfZGVzdHJveShzdHJ1Y3Qg dWRldmljZSAqZGV2LA0KPiA+ICsJCQkJIHN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9kZXNjICpkZXNj KSB7DQo+ID4gKwlkZXZyZXNfcmVsZWFzZShkZXYsIGRldm1fc3BpX21lbV9kaXJtYXBfcmVsZWFz ZSwNCj4gPiArCQkgICAgICAgZGV2bV9zcGlfbWVtX2Rpcm1hcF9tYXRjaCwgZGVzYyk7IH0NCj4g PiArRVhQT1JUX1NZTUJPTF9HUEwoZGV2bV9zcGlfbWVtX2Rpcm1hcF9kZXN0cm95KTsNCj4gPiAr I2VuZGlmIC8qIF9fVUJPT1RfXyAqLw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIHNwaV9tZW1f ZGlybWFwX3JlYWQoKSAtIFJlYWQgZGF0YSB0aHJvdWdoIGEgZGlyZWN0IG1hcHBpbmcNCj4gPiAr ICogQGRlc2M6IGRpcmVjdCBtYXBwaW5nIGRlc2NyaXB0b3INCj4gPiArICogQG9mZnM6IG9mZnNl dCB0byBzdGFydCByZWFkaW5nIGZyb20uIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBhbiBhYnNvbHV0 ZQ0KPiA+ICsgKgkgIG9mZnNldCwgYnV0IHRoZSBvZmZzZXQgd2l0aGluIHRoZSBkaXJlY3QgbWFw cGluZyB3aGljaCBhbHJlYWR5IGhhcw0KPiA+ICsgKgkgIGl0cyBvd24gb2Zmc2V0DQo+ID4gKyAq IEBsZW46IGxlbmd0aCBpbiBieXRlcw0KPiA+ICsgKiBAYnVmOiBkZXN0aW5hdGlvbiBidWZmZXIu IFRoaXMgYnVmZmVyIG11c3QgYmUgRE1BLWFibGUNCj4gPiArICoNCj4gPiArICogVGhpcyBmdW5j dGlvbiByZWFkcyBkYXRhIGZyb20gYSBtZW1vcnkgZGV2aWNlIHVzaW5nIGEgZGlyZWN0DQo+ID4g K21hcHBpbmcNCj4gPiArICogcHJldmlvdXNseSBpbnN0YW50aWF0ZWQgd2l0aCBzcGlfbWVtX2Rp cm1hcF9jcmVhdGUoKS4NCj4gPiArICoNCj4gPiArICogUmV0dXJuOiB0aGUgYW1vdW50IG9mIGRh dGEgcmVhZCBmcm9tIHRoZSBtZW1vcnkgZGV2aWNlIG9yIGENCj4gPiArbmVnYXRpdmUgZXJyb3IN Cj4gPiArICogY29kZS4gTm90ZSB0aGF0IHRoZSByZXR1cm5lZCBzaXplIG1pZ2h0IGJlIHNtYWxs ZXIgdGhhbiBAbGVuLCBhbmQNCj4gPiArdGhlIGNhbGxlcg0KPiA+ICsgKiBpcyByZXNwb25zaWJs ZSBmb3IgY2FsbGluZyBzcGlfbWVtX2Rpcm1hcF9yZWFkKCkgYWdhaW4gd2hlbiB0aGF0DQo+IGhh cHBlbnMuDQo+ID4gKyAqLw0KPiA+ICtzc2l6ZV90IHNwaV9tZW1fZGlybWFwX3JlYWQoc3RydWN0 IHNwaV9tZW1fZGlybWFwX2Rlc2MgKmRlc2MsDQo+ID4gKwkJCSAgICB1NjQgb2Zmcywgc2l6ZV90 IGxlbiwgdm9pZCAqYnVmKSB7DQo+ID4gKwlzdHJ1Y3QgdWRldmljZSAqYnVzID0gZGVzYy0+c2xh dmUtPmRldi0+cGFyZW50Ow0KPiA+ICsJc3RydWN0IGRtX3NwaV9vcHMgKm9wcyA9IHNwaV9nZXRf b3BzKGJ1cyk7DQo+ID4gKwlzc2l6ZV90IHJldDsNCj4gPiArDQo+ID4gKwlpZiAoZGVzYy0+aW5m by5vcF90bXBsLmRhdGEuZGlyICE9IFNQSV9NRU1fREFUQV9JTikNCj4gPiArCQlyZXR1cm4gLUVJ TlZBTDsNCj4gPiArDQo+ID4gKwlpZiAoIWxlbikNCj4gPiArCQlyZXR1cm4gMDsNCj4gPiArDQo+ ID4gKwlpZiAoZGVzYy0+bm9kaXJtYXApDQo+ID4gKwkJcmV0ID0gc3BpX21lbV9ub19kaXJtYXBf cmVhZChkZXNjLCBvZmZzLCBsZW4sIGJ1Zik7DQo+ID4gKwllbHNlIGlmIChvcHMtPm1lbV9vcHMg JiYgb3BzLT5tZW1fb3BzLT5kaXJtYXBfcmVhZCkNCj4gPiArCQlyZXQgPSBvcHMtPm1lbV9vcHMt PmRpcm1hcF9yZWFkKGRlc2MsIG9mZnMsIGxlbiwgYnVmKTsNCj4gPiArCWVsc2UNCj4gPiArCQly ZXQgPSAtRU9QTk9UU1VQUDsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ID4g K0VYUE9SVF9TWU1CT0xfR1BMKHNwaV9tZW1fZGlybWFwX3JlYWQpOw0KPiA+ICsNCj4gPiArLyoq DQo+ID4gKyAqIHNwaV9tZW1fZGlybWFwX3dyaXRlKCkgLSBXcml0ZSBkYXRhIHRocm91Z2ggYSBk aXJlY3QgbWFwcGluZw0KPiA+ICsgKiBAZGVzYzogZGlyZWN0IG1hcHBpbmcgZGVzY3JpcHRvcg0K PiA+ICsgKiBAb2Zmczogb2Zmc2V0IHRvIHN0YXJ0IHdyaXRpbmcgZnJvbS4gTm90ZSB0aGF0IHRo aXMgaXMgbm90IGFuIGFic29sdXRlDQo+ID4gKyAqCSAgb2Zmc2V0LCBidXQgdGhlIG9mZnNldCB3 aXRoaW4gdGhlIGRpcmVjdCBtYXBwaW5nIHdoaWNoIGFscmVhZHkgaGFzDQo+ID4gKyAqCSAgaXRz IG93biBvZmZzZXQNCj4gPiArICogQGxlbjogbGVuZ3RoIGluIGJ5dGVzDQo+ID4gKyAqIEBidWY6 IHNvdXJjZSBidWZmZXIuIFRoaXMgYnVmZmVyIG11c3QgYmUgRE1BLWFibGUNCj4gPiArICoNCj4g PiArICogVGhpcyBmdW5jdGlvbiB3cml0ZXMgZGF0YSB0byBhIG1lbW9yeSBkZXZpY2UgdXNpbmcg YSBkaXJlY3QNCj4gPiArbWFwcGluZw0KPiA+ICsgKiBwcmV2aW91c2x5IGluc3RhbnRpYXRlZCB3 aXRoIHNwaV9tZW1fZGlybWFwX2NyZWF0ZSgpLg0KPiA+ICsgKg0KPiA+ICsgKiBSZXR1cm46IHRo ZSBhbW91bnQgb2YgZGF0YSB3cml0dGVuIHRvIHRoZSBtZW1vcnkgZGV2aWNlIG9yIGENCj4gPiAr bmVnYXRpdmUgZXJyb3INCj4gPiArICogY29kZS4gTm90ZSB0aGF0IHRoZSByZXR1cm5lZCBzaXpl IG1pZ2h0IGJlIHNtYWxsZXIgdGhhbiBAbGVuLCBhbmQNCj4gPiArdGhlIGNhbGxlcg0KPiA+ICsg KiBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBzcGlfbWVtX2Rpcm1hcF93cml0ZSgpIGFnYWlu IHdoZW4gdGhhdA0KPiBoYXBwZW5zLg0KPiA+ICsgKi8NCj4gPiArc3NpemVfdCBzcGlfbWVtX2Rp cm1hcF93cml0ZShzdHJ1Y3Qgc3BpX21lbV9kaXJtYXBfZGVzYyAqZGVzYywNCj4gPiArCQkJICAg ICB1NjQgb2Zmcywgc2l6ZV90IGxlbiwgY29uc3Qgdm9pZCAqYnVmKSB7DQo+ID4gKwlzdHJ1Y3Qg dWRldmljZSAqYnVzID0gZGVzYy0+c2xhdmUtPmRldi0+cGFyZW50Ow0KPiA+ICsJc3RydWN0IGRt X3NwaV9vcHMgKm9wcyA9IHNwaV9nZXRfb3BzKGJ1cyk7DQo+ID4gKwlzc2l6ZV90IHJldDsNCj4g PiArDQo+ID4gKwlpZiAoZGVzYy0+aW5mby5vcF90bXBsLmRhdGEuZGlyICE9IFNQSV9NRU1fREFU QV9PVVQpDQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsJaWYgKCFsZW4pDQo+ ID4gKwkJcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICsJaWYgKGRlc2MtPm5vZGlybWFwKQ0KPiA+ICsJ CXJldCA9IHNwaV9tZW1fbm9fZGlybWFwX3dyaXRlKGRlc2MsIG9mZnMsIGxlbiwgYnVmKTsNCj4g PiArCWVsc2UgaWYgKG9wcy0+bWVtX29wcyAmJiBvcHMtPm1lbV9vcHMtPmRpcm1hcF93cml0ZSkN Cj4gPiArCQlyZXQgPSBvcHMtPm1lbV9vcHMtPmRpcm1hcF93cml0ZShkZXNjLCBvZmZzLCBsZW4s IGJ1Zik7DQo+ID4gKwllbHNlDQo+ID4gKwkJcmV0ID0gLUVPUE5PVFNVUFA7DQo+ID4gKw0KPiA+ ICsJcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ICtFWFBPUlRfU1lNQk9MX0dQTChzcGlfbWVtX2Rp cm1hcF93cml0ZSk7DQo+ID4gKw0KPiA+ICAgI2lmbmRlZiBfX1VCT09UX18NCj4gPiAgIHN0YXRp YyBpbmxpbmUgc3RydWN0IHNwaV9tZW1fZHJpdmVyICp0b19zcGlfbWVtX2RydihzdHJ1Y3QNCj4g ZGV2aWNlX2RyaXZlciAqZHJ2KQ0KPiA+ICAgew0KPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3Nw aS1tZW0uaCBiL2luY2x1ZGUvc3BpLW1lbS5oIGluZGV4DQo+ID4gMzJmZmRjMmUwZi4uYjA3Y2Yy ZWQ4MyAxMDA2NDQNCj4gPiAtLS0gYS9pbmNsdWRlL3NwaS1tZW0uaA0KPiA+ICsrKyBiL2luY2x1 ZGUvc3BpLW1lbS5oDQo+ID4gQEAgLTEzNCw2ICsxMzQsNDggQEAgc3RydWN0IHNwaV9tZW1fb3Ag ew0KPiA+ICAgCQkuZHVtbXkgPSBfX2R1bW15LAkJCQlcDQo+ID4gICAJCS5kYXRhID0gX19kYXRh LAkJCQkJXA0KPiA+ICAgCX0NCj4gPiArLyoqDQo+ID4gKyAqIHN0cnVjdCBzcGlfbWVtX2Rpcm1h cF9pbmZvIC0gRGlyZWN0IG1hcHBpbmcgaW5mb3JtYXRpb24NCj4gPiArICogQG9wX3RtcGw6IG9w ZXJhdGlvbiB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGJ5IHRoZSBkaXJlY3QgbWFwcGlu Zw0KPiB3aGVuDQo+ID4gKyAqCSAgICAgdGhlIG1lbW9yeSBkZXZpY2UgaXMgYWNjZXNzZWQNCj4g PiArICogQG9mZnNldDogYWJzb2x1dGUgb2Zmc2V0IHRoaXMgZGlyZWN0IG1hcHBpbmcgaXMgcG9p bnRpbmcgdG8NCj4gPiArICogQGxlbmd0aDogbGVuZ3RoIGluIGJ5dGUgb2YgdGhpcyBkaXJlY3Qg bWFwcGluZw0KPiA+ICsgKg0KPiA+ICsgKiBUaGlzIGluZm9ybWF0aW9uIGlzIHVzZWQgYnkgdGhl IGNvbnRyb2xsZXIgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24NCj4gPiArdG8ga25vdw0KPiA+ICsg KiB0aGUgcG9ydGlvbiBvZiBtZW1vcnkgdGhhdCBpcyBkaXJlY3RseSBtYXBwZWQgYW5kIHRoZSBz cGlfbWVtX29wDQo+ID4gK3RoYXQgc2hvdWxkDQo+ID4gKyAqIGJlIHVzZWQgdG8gYWNjZXNzIHRo ZSBkZXZpY2UuDQo+ID4gKyAqIEEgZGlyZWN0IG1hcHBpbmcgaXMgb25seSB2YWxpZCBmb3Igb25l IGRpcmVjdGlvbiAocmVhZCBvciB3cml0ZSkNCj4gPiArYW5kIHRoaXMNCj4gPiArICogZGlyZWN0 aW9uIGlzIGRpcmVjdGx5IGVuY29kZWQgaW4gdGhlIC0+b3BfdG1wbC5kYXRhLmRpciBmaWVsZC4N Cj4gPiArICovDQo+ID4gK3N0cnVjdCBzcGlfbWVtX2Rpcm1hcF9pbmZvIHsNCj4gPiArCXN0cnVj dCBzcGlfbWVtX29wIG9wX3RtcGw7DQo+ID4gKwl1NjQgb2Zmc2V0Ow0KPiA+ICsJdTY0IGxlbmd0 aDsNCj4gPiArfTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBzdHJ1Y3Qgc3BpX21lbV9kaXJt YXBfZGVzYyAtIERpcmVjdCBtYXBwaW5nIGRlc2NyaXB0b3INCj4gPiArICogQG1lbTogdGhlIFNQ SSBtZW1vcnkgZGV2aWNlIHRoaXMgZGlyZWN0IG1hcHBpbmcgaXMgYXR0YWNoZWQgdG8NCj4gPiAr ICogQGluZm86IGluZm9ybWF0aW9uIHBhc3NlZCBhdCBkaXJlY3QgbWFwcGluZyBjcmVhdGlvbiB0 aW1lDQo+ID4gKyAqIEBub2Rpcm1hcDogc2V0IHRvIDEgaWYgdGhlIFNQSSBjb250cm9sbGVyIGRv ZXMgbm90IGltcGxlbWVudA0KPiA+ICsgKiAgICAgICAgICAgIC0+bWVtX29wcy0+ZGlybWFwX2Ny ZWF0ZSgpIG9yIHdoZW4gdGhpcyBmdW5jdGlvbg0KPiByZXR1cm5lZCBhbg0KPiA+ICsgKiAgICAg ICAgICAgIGVycm9yLiBJZiBAbm9kaXJtYXAgaXMgdHJ1ZSwgYWxsDQo+IHNwaV9tZW1fZGlybWFw X3tyZWFkLHdyaXRlfSgpDQo+ID4gKyAqICAgICAgICAgICAgY2FsbHMgd2lsbCB1c2Ugc3BpX21l bV9leGVjX29wKCkgdG8gYWNjZXNzIHRoZSBtZW1vcnkuDQo+IFRoaXMgaXMgYQ0KPiA+ICsgKiAg ICAgICAgICAgIGRlZ3JhZGVkIG1vZGUgdGhhdCBhbGxvd3Mgc3BpX21lbSBkcml2ZXJzIHRvIHVz ZSB0aGUNCj4gc2FtZSBjb2RlDQo+ID4gKyAqICAgICAgICAgICAgbm8gbWF0dGVyIHdoZXRoZXIg dGhlIGNvbnRyb2xsZXIgc3VwcG9ydHMgZGlyZWN0IG1hcHBpbmcNCj4gb3Igbm90DQo+ID4gKyAq IEBwcml2OiBmaWVsZCBwb2ludGluZyB0byBjb250cm9sbGVyIHNwZWNpZmljIGRhdGENCj4gPiAr ICoNCj4gPiArICogQ29tbW9uIHBhcnQgb2YgYSBkaXJlY3QgbWFwcGluZyBkZXNjcmlwdG9yLiBU aGlzIG9iamVjdCBpcyBjcmVhdGVkDQo+ID4gK2J5DQo+ID4gKyAqIHNwaV9tZW1fZGlybWFwX2Ny ZWF0ZSgpIGFuZCBjb250cm9sbGVyIGltcGxlbWVudGF0aW9uIG9mDQo+ID4gKy0+Y3JlYXRlX2Rp cm1hcCgpDQo+ID4gKyAqIGNhbiBjcmVhdGUvYXR0YWNoIGRpcmVjdCBtYXBwaW5nIHJlc291cmNl cyB0byB0aGUgZGVzY3JpcHRvciBpbg0KPiA+ICt0aGUgLT5wcml2DQo+ID4gKyAqIGZpZWxkLg0K PiA+ICsgKi8NCj4gPiArc3RydWN0IHNwaV9tZW1fZGlybWFwX2Rlc2Mgew0KPiA+ICsJc3RydWN0 IHNwaV9zbGF2ZSAqc2xhdmU7DQo+ID4gKwlzdHJ1Y3Qgc3BpX21lbV9kaXJtYXBfaW5mbyBpbmZv Ow0KPiA+ICsJdW5zaWduZWQgaW50IG5vZGlybWFwOw0KPiA+ICsJdm9pZCAqcHJpdjsNCj4gPiAr fTsNCj4gPg0KPiA+ICAgI2lmbmRlZiBfX1VCT09UX18NCj4gPiAgIC8qKg0KPiA+IEBAIC0xODMs MTAgKzIyNSwzMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKnNwaV9tZW1fZ2V0X2RydmRhdGEoc3Ry dWN0DQo+IHNwaV9tZW0gKm1lbSkNCj4gPiAgICAqCQkgICAgbGltaXRhdGlvbnMpDQo+ID4gICAg KiBAc3VwcG9ydHNfb3A6IGNoZWNrIGlmIGFuIG9wZXJhdGlvbiBpcyBzdXBwb3J0ZWQgYnkgdGhl IGNvbnRyb2xsZXINCj4gPiAgICAqIEBleGVjX29wOiBleGVjdXRlIGEgU1BJIG1lbW9yeSBvcGVy YXRpb24NCj4gPiArICogQGRpcm1hcF9jcmVhdGU6IGNyZWF0ZSBhIGRpcmVjdCBtYXBwaW5nIGRl c2NyaXB0b3IgdGhhdCBjYW4gbGF0ZXIgYmUNCj4gdXNlZCB0bw0KPiA+ICsgKgkJICAgYWNjZXNz IHRoZSBtZW1vcnkgZGV2aWNlLiBUaGlzIG1ldGhvZCBpcyBvcHRpb25hbA0KPiA+ICsgKiBAZGly bWFwX2Rlc3Ryb3k6IGRlc3Ryb3kgYSBtZW1vcnkgZGVzY3JpcHRvciBwcmV2aW91cyBjcmVhdGVk IGJ5DQo+ID4gKyAqCQkgICAgLT5kaXJtYXBfY3JlYXRlKCkNCj4gPiArICogQGRpcm1hcF9yZWFk OiByZWFkIGRhdGEgZnJvbSB0aGUgbWVtb3J5IGRldmljZSB1c2luZyB0aGUgZGlyZWN0DQo+IG1h cHBpbmcNCj4gPiArICoJCSBjcmVhdGVkIGJ5IC0+ZGlybWFwX2NyZWF0ZSgpLiBUaGUgZnVuY3Rp b24gY2FuIHJldHVybiBsZXNzDQo+ID4gKyAqCQkgZGF0YSB0aGFuIHJlcXVlc3RlZCAoZm9yIGV4 YW1wbGUgd2hlbiB0aGUgcmVxdWVzdCBpcyBjcm9zc2luZw0KPiA+ICsgKgkJIHRoZSBjdXJyZW50 bHkgbWFwcGVkIGFyZWEpLCBhbmQgdGhlIGNhbGxlciBvZg0KPiA+ICsgKgkJIHNwaV9tZW1fZGly bWFwX3JlYWQoKSBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBpdCBhZ2FpbiBpbg0KPiA+ICsg KgkJIHRoaXMgY2FzZS4NCj4gPiArICogQGRpcm1hcF93cml0ZTogd3JpdGUgZGF0YSB0byB0aGUg bWVtb3J5IGRldmljZSB1c2luZyB0aGUgZGlyZWN0DQo+IG1hcHBpbmcNCj4gPiArICoJCSAgY3Jl YXRlZCBieSAtPmRpcm1hcF9jcmVhdGUoKS4gVGhlIGZ1bmN0aW9uIGNhbiByZXR1cm4gbGVzcw0K PiA+ICsgKgkJICBkYXRhIHRoYW4gcmVxdWVzdGVkIChmb3IgZXhhbXBsZSB3aGVuIHRoZSByZXF1 ZXN0IGlzDQo+IGNyb3NzaW5nDQo+ID4gKyAqCQkgIHRoZSBjdXJyZW50bHkgbWFwcGVkIGFyZWEp LCBhbmQgdGhlIGNhbGxlciBvZg0KPiA+ICsgKgkJICBzcGlfbWVtX2Rpcm1hcF93cml0ZSgpIGlz IHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIGl0IGFnYWluIGluDQo+ID4gKyAqCQkgIHRoaXMgY2Fz ZS4NCj4gPiAgICAqDQo+ID4gICAgKiBUaGlzIGludGVyZmFjZSBzaG91bGQgYmUgaW1wbGVtZW50 ZWQgYnkgU1BJIGNvbnRyb2xsZXJzIHByb3ZpZGluZyBhbg0KPiA+ICAgICogaGlnaC1sZXZlbCBp bnRlcmZhY2UgdG8gZXhlY3V0ZSBTUEkgbWVtb3J5IG9wZXJhdGlvbiwgd2hpY2ggaXMgdXN1YWxs eQ0KPiB0aGUNCj4gPiAgICAqIGNhc2UgZm9yIFFTUEkgY29udHJvbGxlcnMuDQo+ID4gKyAqDQo+ ID4gKyAqIE5vdGUgb24gLT5kaXJtYXBfe3JlYWQsd3JpdGV9KCk6IGRyaXZlcnMgc2hvdWxkIGF2 b2lkIGFjY2Vzc2luZw0KPiA+ICsgdGhlIGRpcmVjdA0KPiA+ICsgKiBtYXBwaW5nIGZyb20gdGhl IENQVSBiZWNhdXNlIGRvaW5nIHRoYXQgY2FuIHN0YWxsIHRoZSBDUFUgd2FpdGluZw0KPiA+ICsg Zm9yIHRoZQ0KPiA+ICsgKiBTUEkgbWVtIHRyYW5zYWN0aW9uIHRvIGZpbmlzaCwgYW5kIHRoaXMg d2lsbCBtYWtlIHJlYWwtdGltZQ0KPiA+ICsgbWFpbnRhaW5lcnMNCj4gPiArICogdW5oYXBweSBh bmQgbWlnaHQgbWFrZSB5b3VyIHN5c3RlbSBsZXNzIHJlYWN0aXZlLiBJbnN0ZWFkLCBkcml2ZXJz DQo+ID4gKyBzaG91bGQNCj4gPiArICogdXNlIERNQSB0byBhY2Nlc3MgdGhpcyBkaXJlY3QgbWFw cGluZy4NCj4gPiAgICAqLw0KPiA+ICAgc3RydWN0IHNwaV9jb250cm9sbGVyX21lbV9vcHMgew0K PiA+ICAgCWludCAoKmFkanVzdF9vcF9zaXplKShzdHJ1Y3Qgc3BpX3NsYXZlICpzbGF2ZSwgc3Ry dWN0IHNwaV9tZW1fb3ANCj4gPiAqb3ApOyBAQCAtMTk0LDYgKzI1OCwxMiBAQCBzdHJ1Y3Qgc3Bp X2NvbnRyb2xsZXJfbWVtX29wcyB7DQo+ID4gICAJCQkgICAgY29uc3Qgc3RydWN0IHNwaV9tZW1f b3AgKm9wKTsNCj4gPiAgIAlpbnQgKCpleGVjX29wKShzdHJ1Y3Qgc3BpX3NsYXZlICpzbGF2ZSwN Cj4gPiAgIAkJICAgICAgIGNvbnN0IHN0cnVjdCBzcGlfbWVtX29wICpvcCk7DQo+ID4gKwlpbnQg KCpkaXJtYXBfY3JlYXRlKShzdHJ1Y3Qgc3BpX21lbV9kaXJtYXBfZGVzYyAqZGVzYyk7DQo+ID4g Kwl2b2lkICgqZGlybWFwX2Rlc3Ryb3kpKHN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9kZXNjICpkZXNj KTsNCj4gPiArCXNzaXplX3QgKCpkaXJtYXBfcmVhZCkoc3RydWN0IHNwaV9tZW1fZGlybWFwX2Rl c2MgKmRlc2MsDQo+ID4gKwkJCSAgICAgICB1NjQgb2Zmcywgc2l6ZV90IGxlbiwgdm9pZCAqYnVm KTsNCj4gPiArCXNzaXplX3QgKCpkaXJtYXBfd3JpdGUpKHN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9k ZXNjICpkZXNjLA0KPiA+ICsJCQkJdTY0IG9mZnMsIHNpemVfdCBsZW4sIGNvbnN0IHZvaWQgKmJ1 Zik7DQo+ID4gICB9Ow0KPiA+DQo+ID4gICAjaWZuZGVmIF9fVUJPT1RfXw0KPiA+IEBAIC0yNjAs NiArMzMwLDE1IEBAIGludCBzcGlfbWVtX2V4ZWNfb3Aoc3RydWN0IHNwaV9zbGF2ZSAqc2xhdmUs IGNvbnN0DQo+IHN0cnVjdCBzcGlfbWVtX29wICpvcCk7DQo+ID4gICBib29sIHNwaV9tZW1fZGVm YXVsdF9zdXBwb3J0c19vcChzdHJ1Y3Qgc3BpX3NsYXZlICptZW0sDQo+ID4gICAJCQkJIGNvbnN0 IHN0cnVjdCBzcGlfbWVtX29wICpvcCk7DQo+ID4NCj4gPiArc3RydWN0IHNwaV9tZW1fZGlybWFw X2Rlc2MgKg0KPiA+ICtzcGlfbWVtX2Rpcm1hcF9jcmVhdGUoc3RydWN0IHNwaV9zbGF2ZSAqbWVt LA0KPiA+ICsJCSAgICAgIGNvbnN0IHN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9pbmZvICppbmZvKTsg dm9pZA0KPiA+ICtzcGlfbWVtX2Rpcm1hcF9kZXN0cm95KHN0cnVjdCBzcGlfbWVtX2Rpcm1hcF9k ZXNjICpkZXNjKTsgc3NpemVfdA0KPiA+ICtzcGlfbWVtX2Rpcm1hcF9yZWFkKHN0cnVjdCBzcGlf bWVtX2Rpcm1hcF9kZXNjICpkZXNjLA0KPiA+ICsJCQkgICAgdTY0IG9mZnMsIHNpemVfdCBsZW4s IHZvaWQgKmJ1Zik7IHNzaXplX3QNCj4gPiArc3BpX21lbV9kaXJtYXBfd3JpdGUoc3RydWN0IHNw aV9tZW1fZGlybWFwX2Rlc2MgKmRlc2MsDQo+ID4gKwkJCSAgICAgdTY0IG9mZnMsIHNpemVfdCBs ZW4sIGNvbnN0IHZvaWQgKmJ1Zik7DQo+ID4gKw0KPiA+ICAgI2lmbmRlZiBfX1VCT09UX18NCj4g PiAgIGludCBzcGlfbWVtX2RyaXZlcl9yZWdpc3Rlcl93aXRoX293bmVyKHN0cnVjdCBzcGlfbWVt X2RyaXZlciAqZHJ2LA0KPiA+ICAgCQkJCSAgICAgICBzdHJ1Y3QgbW9kdWxlICpvd25lcik7DQoN Cg==