From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5D6F4A00C3 for ; Wed, 20 Apr 2022 11:32:50 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 54933410FF; Wed, 20 Apr 2022 11:32:50 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 60EF140687; Wed, 20 Apr 2022 11:32:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650447167; x=1681983167; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=uoWMxfs+bgSHQ6R+3s0rmgziBaqPxcl7DZtYxL7wT8Y=; b=XnZAmbIsxxlI4agtSIYuxqsm4KbvOLooMrATjAInJZ1HuDHb+7/Qsxtj AL/ZgaZNHV8A4xZeqF/TqdU7IaDkBBju40okPMcECj5u4+etsoRu5U912 CbDqk2OnRw5dmmpA8808U89yiQPpMVKL/m3WL7TZExrPxAi3+7tYHlfkO C5bJE60qyXU5QwxCHNprgNpgD1i0svx7AhtG50e5KOkkvm79J1CL+YIOn 0WtoRedoX0zeJaJ0osZK1XJe+pk/SKH8ePaWri0n9FpBUyLg5TFdXxz5t WtKTUcGLVfIylGXBUh9hETXyh6zycnFb//zvuVrHlCTOJ2D4fAIgqLB4y A==; X-IronPort-AV: E=McAfee;i="6400,9594,10322"; a="324426642" X-IronPort-AV: E=Sophos;i="5.90,275,1643702400"; d="scan'208";a="324426642" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Apr 2022 02:32:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,275,1643702400"; d="scan'208";a="562042659" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga007.fm.intel.com with ESMTP; 20 Apr 2022 02:32:45 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 20 Apr 2022 02:32:45 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 20 Apr 2022 02:32:45 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 20 Apr 2022 02:32:45 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.105) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 20 Apr 2022 02:32:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hkaU4B7xS1ESEYyl9T19Abn3RMABxkWDwPQ++uNWepPPJc8dJY3GVUhlXhOggMOyRNCWixSYEmedvQo83rY3tPvFnLhPzUrDblqDtwMpxv5yWtPy1noffUt/tmV4s5WUL/0amVoOQVN5C5T+nc+Sjl5rys8wNUMdmrBhXejdmMCbMONEWOpSqJAZQYdv8q108apKgcUmReIv9WFrQbGdbo6K3DUdTdBSvjBCyOSoxaVtidnv4FcjQ6fcb1r5TFrLPbjTXpdQiA5M8XBgzoFU7bktuu37jSJHYugTV6qWchGu5gW+zYoEgRdgg0bvL07OYId6JsyT+a1Gk2+s/ckrtw== 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=uoWMxfs+bgSHQ6R+3s0rmgziBaqPxcl7DZtYxL7wT8Y=; b=IUmqCxkWaylliwlJX5SemdT2fXskM/zlxSAZoK/4J/1DEZAIAvzGMRYbvIkNoo/pQ+uPvJVeLXaJOOfKcrxgVuu8278zdquvMEMCCcj9SVygGvSdR9+SKRypxzZv9EPz1FWy0fqryo7+UFsWneZxgKSNK4jaOP4OU7+1/3x6HGwAN7LAa/bEEAOE8d65CcfUrJ2MTBRjZt4EpXFlPrlImNwH1R2JAy2PNXKocSeuru8ZEokHQ1+C6YZ3AMRv7GfHQOOGtQAE9wVx7AAOYdBExgmd6Lmh9q0ZGarKt12iLH3QwzWiGg3NfWutj20DrKtsJffL56Q9IE4PnIfo6YC6kQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB3530.namprd11.prod.outlook.com (2603:10b6:5:72::19) by SN6PR11MB3277.namprd11.prod.outlook.com (2603:10b6:805:c4::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.25; Wed, 20 Apr 2022 09:32:42 +0000 Received: from DM6PR11MB3530.namprd11.prod.outlook.com ([fe80::6464:ecdf:4375:a052]) by DM6PR11MB3530.namprd11.prod.outlook.com ([fe80::6464:ecdf:4375:a052%5]) with mapi id 15.20.5186.014; Wed, 20 Apr 2022 09:32:42 +0000 From: "Huang, Wei" To: "Zhang, Qi Z" , "dev@dpdk.org" , "thomas@monjalon.net" , "Xu, Rosen" , "nipun.gupta@nxp.com" , "hemant.agrawal@nxp.com" CC: "stable@dpdk.org" , "Zhang, Tianfei" , "Yigit, Ferruh" Subject: RE: [PATCH v3] raw/ifpga: remove vdev when ifpga is closed Thread-Topic: [PATCH v3] raw/ifpga: remove vdev when ifpga is closed Thread-Index: AQHYOqbI72u8Ik1aO0e5YRnEPIgAl6zVqnjAgAAFvQCAIwz4kA== Date: Wed, 20 Apr 2022 09:32:42 +0000 Message-ID: References: <20220315011755.1588005-1-wei.huang@intel.com> <20220318085755.2134030-1-wei.huang@intel.com> <687b7f7a191846c39e12a08c0e0f27ce@intel.com> In-Reply-To: <687b7f7a191846c39e12a08c0e0f27ce@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.401.20 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b50d8094-8dd5-4121-089a-08da22b0b7ec x-ms-traffictypediagnostic: SN6PR11MB3277:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: B1FRwry5/2X1JcUR2mMjhckuLgsHXqW2x4Sr/vUxg3Y/h558WZ0Z+SLlvUC1rk15CmmUpQADQ5yhIX0TTKemJ3R2xA1CrH5XTBP86uAy6Sz2j9BkV83oV8CHjeXg7Gv4fPoqpfrWGFmpXuN3QfmuQdNU3l1rmPZtax73TCvUMtULKgG+xFALBLpmmUNN1Uqt8gZoRy4rSlnt42av3zqV0eM1i+Jcyul1Wv/uE6aHCVsbZIqI+ugXZWO8zf4OfdWwRIGC1U4RMUo5JwUmZFcHJrNfMD6BbDXAn6qaUS6A8Zult4YQ17Vu9a0BBcdy75NSxmZBXp/+QWKFlLy8YbOSm3XmQ+oeUw3S9jatQSWkfST8bbbuBvdBh8Kzkoy3t2Wz0TG7mL185+Als3fjqMhywdGJIdDliGCg8Aaogfgk/cEXZ5eUkVvXak4MsrJRHQus/d/OArFCyJWb77BC6AfREiszYPMsDJguwOHxIMCF6i4DfnTXx3lKNFURz3ctrWiyyTGGZ4hj/FbPudbMwHacJ0ANWWx4Iwy4PRtpiml/StLRSZpijuPyyaHh47MTxzlLFku8ytQguYdgMzH+7N+m87LIM6tDejuVgd+p7aZHT5IM0Qws/xEvKbuj5E4fiJVwDRV1TR82fMlKPA5YP248xvGKLfvGHB2Upi989x7BRpEGkZ7/xaS4fiCiNj+Tm/KwOUfDctbJff/nR6J/c8O353cv+FAqFNoKRqCNz11sKk1j9Nx/p6eDuJnJhQHMPlfuaRueEAaDzTjfScAWi01sd4QVv5/Nm0BeOWCoRoALD/s= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB3530.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(966005)(4326008)(2906002)(7696005)(83380400001)(86362001)(107886003)(82960400001)(53546011)(66446008)(26005)(9686003)(64756008)(76116006)(66946007)(66476007)(52536014)(316002)(6506007)(508600001)(66556008)(110136005)(54906003)(122000001)(38070700005)(186003)(71200400001)(38100700002)(30864003)(33656002)(8936002)(8676002)(55016003)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MHlqVHc4S3ViY1VOOWdac3FCV2RGRHY0NWtvV2ZIdXYrNTBzZ0RnNmdqVml6?= =?utf-8?B?TEltd0lWd2JBV3NKZ0FLWGtPSlJ4ZWJCSSsvdThLa2JTRWRKN0Z5TEZycERS?= =?utf-8?B?cjR1RkZ3bm9wZy9GYWp5aFNqbXlkeCszSkdWb2NFZXg2ZXgybEhKZm5oRm9W?= =?utf-8?B?VmFJQkk3dDhKaGs2UG8rbmo5UC9BVnhVbDRacW9wckQvTG9hYmlRdVEzdHl4?= =?utf-8?B?MTkvSlhoSlBUbXlCWEZxMFErNDVEV1NaSlZkUFEyUWlKUU5mVWRid3NUaEFJ?= =?utf-8?B?OTR1RFNLY21nREttU2l0SDlYMnY2YVdybFdmQWZTTkRIUldDZXBYS0NhVDRT?= =?utf-8?B?aitTV0NCL1IwRXJUVS9kSWZDemFZdjhpOEFVSjVqNENlOHMvVkdLdzZpWWE3?= =?utf-8?B?ZTd5TlZUNHBGeS9hT2t5dTJXT0ZIQlBtYU55QzVJUjFBa1hiUndDb044V2ZP?= =?utf-8?B?d1RBRHhYZkVnMGlDK1cydjJnZllCcitPRzlrTUhwTlUrSklqcHF2eGZML3Bj?= =?utf-8?B?WjJRVXpOTHpBZnhxT2tydkwrcXNzVXFRcXB0cCtXOXpYR3ZVekF0dHEyYnZw?= =?utf-8?B?ZXRvVVBNU053NHRDTHNjVDhLMGJuNWFjNWdRUkZyZ1JIbERWZUdRNER3em0v?= =?utf-8?B?b2o1M2dwQlZQcjRoeTFvSEEyZjQ0aXZSNnNzQVJHR29uUkJNWHI0cGNocWVn?= =?utf-8?B?dnJXcjVqZVdVbWMrMlpicEt4dHhwQ2pyb1Y2WG5wOTZPRnZHSmlDYTdRU3Fk?= =?utf-8?B?WU0wbXhYWFQxMlN3ZURSVWtBbk1EOXlLMU1qQTdINmo0dGxqbmdoOHhWdlRv?= =?utf-8?B?Znk0MmZwVldYOXQxN0RaTGFLVnBFaVJaamdiWFFHdG1aZUorUDJvNlFOdmNW?= =?utf-8?B?eCtUNXRmUE41emdvWndjQ0w3cTRmVUkra2NzVWpuL0JPa0xxWlJEemw2d2ZJ?= =?utf-8?B?dm5FVE12OWZFSENwUWRQQWlTQjI1UTRzNmNSVnFoV3pTUzAyWlMySUVoRU9J?= =?utf-8?B?b3VaRVFHSGQ0em9BNFdaVldiWWJLcmRHV080TnEyU1hZZk9iZHdvSmtHWmt2?= =?utf-8?B?S3QxSTVKY0FoTXVkM2pSTmEyWEJ5RHFsS2RuRW1OdSs4c0VaWkZaOUNuQW80?= =?utf-8?B?a2RWSVlvamhnV1dPMys1MUZKWGdDbFRuNHdEaDVTb3lRU1B6UU9RUHIxMWp5?= =?utf-8?B?RjBTTVlkRDU5KzZCbEFwN0g5SUQwZ0E0OFdsRFc4VGhOd0JkMnNyZG9PRk5k?= =?utf-8?B?SkJ6NFgwQXRJL0tDVTFtTGlJdTdPbExkS3hpckhvajZNc3phbnk3Slc1VG8r?= =?utf-8?B?TzljVmRxQUI2aHlhSS9pbGhTM2FhcE8xUW5saUVDRXpndVVNK0M3SGxSN2d2?= =?utf-8?B?b2txR1pmSlkvU040bzhiOTdMdXI5R3Q3VENHc0w1V2dzdTdqSkNxMlNsYUI4?= =?utf-8?B?c09vVkd0a2Q4MGxyMHd1aHp3WG5jcTdqU0VTeG9vUmM1elpHZldnNFpBRDlz?= =?utf-8?B?UklwcUtYeHVOL0orZnJXSEtTSnRlNTE3TUx6b3NEWUdoRUJHdHR2NnZmNGNK?= =?utf-8?B?M3RtRTJ4YlREQWhXUDNZOXRtNHlNOXY0Zys0RW96Ym8zWlU3MmhjVG5BTk1Y?= =?utf-8?B?eXpGbEIxVG91ZTRVeVNRWC9NekRtb1NqMnRBSDdHV2NLSXhPd25hNnk3b1VD?= =?utf-8?B?NHlwckNnSWF3eXdoemtlU0IvVlJsL2ZGQ3ZzZ0FUcXhnMUtHNEFCYnU4TWdn?= =?utf-8?B?bjF3Snk3V0NlNVhxSnU4Y0hFYVJvYUF4Zk41eG5DTFNCc0FQR1ptMmhPSUZn?= =?utf-8?B?R1VqekdKL2tBcnRiVGNEZDRKSkpVd0NIaHRoWVZ2aU9OWDE1TzVSeHgrQzBR?= =?utf-8?B?ay8wQXUyNmsrcjYraXZLTGRKeUN5UmJEUTZteTFIb2Z4UDFWaXNqNE96Q3Ro?= =?utf-8?B?VjUvMFdIbk44TEh1WnhSYTA5MG94K3B2WEMzQ2w3VFJkTlRaNk1FWURYU3Ji?= =?utf-8?B?endvcStCN2V0bDBPTU9Uc3pmSGgvZmk3Q0U5Sjc0WVNMdTF3ZnNjWjRIVVBE?= =?utf-8?B?OWtHd1FJdUduc2RVMlg1MW1OWGpYbStHY1VrVG1MeVBQcWJvemtVYkZBK0dO?= =?utf-8?B?dWt4dE51c2pvblE3dlIyWnBnbFZXd004ZzlCRnAzUGJFeFpIM0MxVzdLc1dp?= =?utf-8?B?a2ZSM0doSmUzOStCdUYvb1h3MnpGbVlNYUhNeS9wTnhpMTNpYmR2YVQxVEJY?= =?utf-8?B?NmNSWjUraWNEbG5GVlpnckV2YW44aWh2c1cxRzRzYWJoMS9OM2hXWHVEWnZE?= =?utf-8?B?eXloYzJ6a2g0NjBQbnplajNpR3RRcDhYbHcycGRSTWNINGJ1V0Zwdz09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3530.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b50d8094-8dd5-4121-089a-08da22b0b7ec X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Apr 2022 09:32:42.1477 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: d5C1x+sVeLRSxqamb5RlsNvTM12XuJwEesI2ss6ex2IhAb7a743F51wwjqPisgKiRgkwGaIQMTf7vzMuq9fTMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3277 X-OriginatorOrg: intel.com X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBaaGFuZywgUWkgWiA8cWkuei56 aGFuZ0BpbnRlbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDI5LCAyMDIyIDEwOjE1DQo+ IFRvOiBIdWFuZywgV2VpIDx3ZWkuaHVhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOw0KPiB0 aG9tYXNAbW9uamFsb24ubmV0OyBYdSwgUm9zZW4gPHJvc2VuLnh1QGludGVsLmNvbT47DQo+IG5p cHVuLmd1cHRhQG54cC5jb207IGhlbWFudC5hZ3Jhd2FsQG54cC5jb20NCj4gQ2M6IHN0YWJsZUBk cGRrLm9yZzsgWmhhbmcsIFRpYW5mZWkgPHRpYW5mZWkuemhhbmdAaW50ZWwuY29tPjsgWWlnaXQs IEZlcnJ1aA0KPiA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRD SCB2M10gcmF3L2lmcGdhOiByZW1vdmUgdmRldiB3aGVuIGlmcGdhIGlzIGNsb3NlZA0KPiANCj4g DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBIdWFuZywgV2VpIDx3 ZWkuaHVhbmdAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDI5LCAyMDIyIDk6 NTYgQU0NCj4gPiBUbzogZGV2QGRwZGsub3JnOyB0aG9tYXNAbW9uamFsb24ubmV0OyBYdSwgUm9z ZW4NCj4gPHJvc2VuLnh1QGludGVsLmNvbT47DQo+ID4gbmlwdW4uZ3VwdGFAbnhwLmNvbTsgaGVt YW50LmFncmF3YWxAbnhwLmNvbQ0KPiA+IENjOiBzdGFibGVAZHBkay5vcmc7IFpoYW5nLCBUaWFu ZmVpIDx0aWFuZmVpLnpoYW5nQGludGVsLmNvbT47IFpoYW5nLA0KPiA+IFFpIFogPHFpLnouemhh bmdAaW50ZWwuY29tPjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4g PiBTdWJqZWN0OiBSRTogW1BBVENIIHYzXSByYXcvaWZwZ2E6IHJlbW92ZSB2ZGV2IHdoZW4gaWZw Z2EgaXMgY2xvc2VkDQo+ID4NCj4gPiBIaSBUaG9tYXMsDQo+ID4NCj4gPiBXb3VsZCB5b3UgcGxl YXNlIGNoZWNrIHRoaXMgcGF0Y2ggaXMgYWNjZXB0YWJsZSA/DQo+IA0KPiBIaSBXZWk6DQo+IDIy LjA3IGN5Y2xlIGp1c3QgYmVnaW5zLCBJdCBtYXkgbm90IG5lY2Vzc2FyeSB0byBwdXNoIFBNRCBt ZXJnZSBxdWl0ZSBlYXJseQ0KPiDwn5iKDQo+IEJlbG93IGlzIHRoZSByb2FkbWFwIGZvciB5b3Vy IHJlZmVyZW5jZQ0KPiANCj4gaHR0cDovL2NvcmUuZHBkay5vcmcvcm9hZG1hcC8NCj4gDQo+IFBy b3Bvc2FsIGRlYWRsaW5lIChSRkMvdjEgcGF0Y2hlcyk6IDEwIEFwcmlsIDIwMjIgQVBJIGZyZWV6 ZSAoLXJjMSk6IDMwIE1heQ0KPiAyMDIyIFBNRCBmZWF0dXJlcyBmcmVlemUgKC1yYzIpOiAyMCBK dW5lIDIwMjIgQnVpbHRpbiBhcHBsaWNhdGlvbnMgZmVhdHVyZXMNCj4gZnJlZXplICgtcmMzKTog MjcgSnVuZSAyMDIyDQo+IFJlbGVhc2U6IDEzIEp1bHkgMjAyMg0KPiANCj4gUmVnYXJkcw0KPiBR aQ0KPiANCkhpIFFpIGFuZCBUaG9tYXMsDQpUaGlzIHBhdGNoIGlzIG5vdCBuZXcgZmVhdHVyZSwg aXQncyBhIGZpeCwgY2FuIGl0IGJlIG1lcmdlZCBub3cgPyANCj4gPg0KPiA+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEh1YW5nLCBXZWkgPHdlaS5odWFuZ0BpbnRl bC5jb20+DQo+ID4gPiBTZW50OiBGcmlkYXksIE1hcmNoIDE4LCAyMDIyIDE2OjU4DQo+ID4gPiBU bzogZGV2QGRwZGsub3JnOyB0aG9tYXNAbW9uamFsb24ubmV0OyBYdSwgUm9zZW4NCj4gPiA8cm9z ZW4ueHVAaW50ZWwuY29tPjsNCj4gPiA+IG5pcHVuLmd1cHRhQG54cC5jb207IGhlbWFudC5hZ3Jh d2FsQG54cC5jb20NCj4gPiA+IENjOiBzdGFibGVAZHBkay5vcmc7IFpoYW5nLCBUaWFuZmVpIDx0 aWFuZmVpLnpoYW5nQGludGVsLmNvbT47DQo+ID4gPiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0Bp bnRlbC5jb20+OyBZaWdpdCwgRmVycnVoDQo+ID4gPiA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47 IEh1YW5nLCBXZWkgPHdlaS5odWFuZ0BpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBbUEFUQ0gg djNdIHJhdy9pZnBnYTogcmVtb3ZlIHZkZXYgd2hlbiBpZnBnYSBpcyBjbG9zZWQNCj4gPiA+DQo+ ID4gPiBWaXJ0dWFsIGRldmljZXMgY3JlYXRlZCBvbiBpZnBnYSByYXcgZGV2aWNlIGFyZSBub3Qg cmVtb3ZlZCB3aGVuDQo+ID4gPiBpZnBnYSBpcyBjbG9zZWQuIFRvIGF2b2lkIHN1Y2ggcHJvYmxl bSwgaWZwZ2EgdmlydHVhbCBkZXZpY2UgcmVtb3ZlDQo+ID4gPiBmdW5jdGlvbiBpcyBpbXBsZW1l bnRlZCwgdmlydHVhbCBkZXZpY2UgaXMgcmVtb3ZlZCBpbiByYXcgZGV2aWNlIGNsb3NlDQo+IGZ1 bmN0aW9uLg0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFdlaSBIdWFuZyA8d2VpLmh1YW5n QGludGVsLmNvbT4NCj4gPiA+IEFja2VkLWJ5OiBUaWFuZmVpIFpoYW5nIDx0aWFuZmVpLnpoYW5n QGludGVsLmNvbT4NCj4gPiA+IEFja2VkLWJ5OiBSb3NlbiBYdSA8cm9zZW4ueHVAaW50ZWwuY29t Pg0KPiA+ID4gLS0tDQo+ID4gPiB2MjogY2xlYW51cCB2ZGV2X25hbWUgbm8gbWF0dGVyIHJ0ZV92 ZGV2X3VuaW5pdCBzdWNjZWVkIG9yIG5vdA0KPiA+ID4gLS0tDQo+ID4gPiB2MzogY2xlYW51cCB2 ZGV2X25hbWUgaW4gaWZwZ2FfY2ZnX3JlbW92ZQ0KPiA+ID4gLS0tDQo+ID4gPiAgZHJpdmVycy9y YXcvaWZwZ2EvaWZwZ2FfcmF3ZGV2LmMgfCAxNjYNCj4gPiA+ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLQ0KPiA+ID4gIGRyaXZlcnMvcmF3L2lmcGdhL2lmcGdhX3Jhd2Rl di5oIHwgICA4ICsrDQo+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMzggaW5zZXJ0aW9ucygrKSwg MzYgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmF3L2lm cGdhL2lmcGdhX3Jhd2Rldi5jDQo+ID4gPiBiL2RyaXZlcnMvcmF3L2lmcGdhL2lmcGdhX3Jhd2Rl di5jDQo+ID4gPiBpbmRleCA2ZDQxMTdjLi5mZTNmYzQzIDEwMDY0NA0KPiA+ID4gLS0tIGEvZHJp dmVycy9yYXcvaWZwZ2EvaWZwZ2FfcmF3ZGV2LmMNCj4gPiA+ICsrKyBiL2RyaXZlcnMvcmF3L2lm cGdhL2lmcGdhX3Jhd2Rldi5jDQo+ID4gPiBAQCAtMTM0LDYgKzEzNCw4IEBAIHN0cnVjdCBpZnBn YV9yYXdkZXYgKiAgZm9yIChpID0gMDsgaSA8DQo+ID4gPiBJRlBHQV9NQVhfSVJROyBpKyspICBk ZXYtPmludHJfaGFuZGxlW2ldID0gTlVMTDsgIGRldi0+cG9sbF9lbmFibGVkDQo+ID4gPiA9IDA7 DQo+ID4gPiArZm9yIChpID0gMDsgaSA8IElGUEdBX01BWF9WREVWOyBpKyspDQo+ID4gPiArZGV2 LT52ZGV2X25hbWVbaV0gPSBOVUxMOw0KPiA+ID4NCj4gPiA+ICByZXR1cm4gZGV2Ow0KPiA+ID4g IH0NCj4gPiA+IEBAIC03MzYsMTAgKzczOCwyMiBAQCBzdGF0aWMgaW50IHNldF9zdXJwcmlzZV9s aW5rX2NoZWNrX2FlcigNCj4gPiA+IHN0YXRpYyBpbnQgaWZwZ2FfcmF3ZGV2X2Nsb3NlKHN0cnVj dCBydGVfcmF3ZGV2ICpkZXYpICB7DQo+ID4gPiArc3RydWN0IGlmcGdhX3Jhd2RldiAqaWZwZ2Ff cmRldiA9IE5VTEw7DQo+ID4gPiAgc3RydWN0IG9wYWVfYWRhcHRlciAqYWRhcHRlcjsNCj4gPiA+ ICtjaGFyICp2ZGV2X25hbWUgPSBOVUxMOw0KPiA+ID4gK2ludCBpID0gMDsNCj4gPiA+DQo+ID4g PiAgaWYgKGRldikgew0KPiA+ID4gLWlmcGdhX21vbml0b3Jfc3RvcF9mdW5jKGlmcGdhX3Jhd2Rl dl9nZXQoZGV2KSk7DQo+ID4gPiAraWZwZ2FfcmRldiA9IGlmcGdhX3Jhd2Rldl9nZXQoZGV2KTsg aWYgKGlmcGdhX3JkZXYpIHsgZm9yIChpID0gMDsgaQ0KPiA+ID4gKzwgSUZQR0FfTUFYX1ZERVY7 IGkrKykgeyB2ZGV2X25hbWUgPSBpZnBnYV9yZGV2LT52ZGV2X25hbWVbaV07IGlmDQo+ID4gPiAr KHZkZXZfbmFtZSkgcnRlX3ZkZXZfdW5pbml0KHZkZXZfbmFtZSk7IH0NCj4gPiA+ICtpZnBnYV9t b25pdG9yX3N0b3BfZnVuYyhpZnBnYV9yZGV2KTsNCj4gPiA+ICtpZnBnYV9yZGV2LT5yYXdkZXYg PSBOVUxMOw0KPiA+ID4gK30NCj4gPiA+ICBhZGFwdGVyID0gaWZwZ2FfcmF3ZGV2X2dldF9wcml2 KGRldik7ICBpZiAoYWRhcHRlcikgew0KPiA+ID4gb3BhZV9hZGFwdGVyX2Rlc3Ryb3koYWRhcHRl cik7IEBAIC0xNjM4LDggKzE2NTIsNiBAQCBzdGF0aWMgaW50DQo+ID4gPiBmbWVfY2xlYW5fZm1l X2Vycm9yKHN0cnVjdCBvcGFlX21hbmFnZXIgKm1ncikgIHJldHVybiAtRUlOVkFMOyAgfQ0KPiA+ ID4gZGV2ID0gaWZwZ2FfcmF3ZGV2X2dldChyYXdkZXYpOyAtaWYgKGRldikNCj4gPiA+IC1kZXYt PnJhd2RldiA9IE5VTEw7DQo+ID4gPg0KPiA+ID4gIGFkYXB0ZXIgPSBpZnBnYV9yYXdkZXZfZ2V0 X3ByaXYocmF3ZGV2KTsgIGlmICghYWRhcHRlcikgQEAgLTE3MTQsNzMNCj4gPiA+ICsxNzI2LDEx OCBAQCBzdGF0aWMgaW50IGlmcGdhX3Jhd2Rldl9nZXRfc3RyaW5nX2FyZyhjb25zdCBjaGFyICpr ZXkNCj4gPiA+IF9fcnRlX3VudXNlZCwNCj4gPiA+DQo+ID4gPiAgcmV0dXJuIDA7DQo+ID4gPiAg fQ0KPiA+ID4gKw0KPiA+ID4gIHN0YXRpYyBpbnQNCj4gPiA+IC1pZnBnYV9jZmdfcHJvYmUoc3Ry dWN0IHJ0ZV92ZGV2X2RldmljZSAqZGV2KQ0KPiA+ID4gK2lmcGdhX3ZkZXZfcGFyc2VfZGV2YXJn cyhzdHJ1Y3QgcnRlX2RldmFyZ3MgKmRldmFyZ3MsIHN0cnVjdA0KPiA+ID4gK2lmcGdhX3ZkZXZf YXJncyAqYXJncykNCj4gPiA+ICB7DQo+ID4gPiAtc3RydWN0IHJ0ZV9kZXZhcmdzICpkZXZhcmdz Ow0KPiA+ID4gLXN0cnVjdCBydGVfa3ZhcmdzICprdmxpc3QgPSBOVUxMOw0KPiA+ID4gLXN0cnVj dCBydGVfcmF3ZGV2ICpyYXdkZXYgPSBOVUxMOw0KPiA+ID4gLXN0cnVjdCBpZnBnYV9yYXdkZXYg KmlmcGdhX2RldjsNCj4gPiA+IC1pbnQgcG9ydDsNCj4gPiA+ICtzdHJ1Y3QgcnRlX2t2YXJncyAq a3ZsaXN0Ow0KPiA+ID4gIGNoYXIgKm5hbWUgPSBOVUxMOw0KPiA+ID4gLWNoYXIgZGV2X25hbWVb UlRFX1JBV0RFVl9OQU1FX01BWF9MRU5dOw0KPiA+ID4gLWludCByZXQgPSAtMTsNCj4gPiA+ICtp bnQgcG9ydCA9IDA7DQo+ID4gPiAraW50IHJldCA9IC1FSU5WQUw7DQo+ID4gPg0KPiA+ID4gLWRl dmFyZ3MgPSBkZXYtPmRldmljZS5kZXZhcmdzOw0KPiA+ID4gK2lmICghZGV2YXJncyB8fCAhYXJn cykNCj4gPiA+ICtyZXR1cm4gcmV0Ow0KPiA+ID4NCj4gPiA+ICBrdmxpc3QgPSBydGVfa3Zhcmdz X3BhcnNlKGRldmFyZ3MtPmFyZ3MsIHZhbGlkX2FyZ3MpOyAgaWYgKCFrdmxpc3QpDQo+ID4gPiB7 IC1JRlBHQV9SQVdERVZfUE1EX0xPRyhFUlIsICJlcnJvciB3aGVuIHBhcnNpbmcgcGFyYW0iKTsg LWdvdG8NCj4gZW5kOw0KPiA+ID4gK0lGUEdBX1JBV0RFVl9QTURfRVJSKCJlcnJvciB3aGVuIHBh cnNpbmcgZGV2YXJncyIpOyByZXR1cm4gcmV0Ow0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiAgaWYg KHJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBJRlBHQV9BUkdfTkFNRSkgPT0gMSkgeyAgaWYNCj4g PiA+IChydGVfa3ZhcmdzX3Byb2Nlc3Moa3ZsaXN0LCBJRlBHQV9BUkdfTkFNRSwNCj4gPiA+IC0g ICAgICAgJmlmcGdhX3Jhd2Rldl9nZXRfc3RyaW5nX2FyZywNCj4gPiA+IC0gICAgICAgJm5hbWUp IDwgMCkgew0KPiA+ID4gKyZpZnBnYV9yYXdkZXZfZ2V0X3N0cmluZ19hcmcsICZuYW1lKSA8IDAp IHsNCj4gPiA+ICBJRlBHQV9SQVdERVZfUE1EX0VSUigiZXJyb3IgdG8gcGFyc2UgJXMiLA0KPiA+ ID4gLSAgICAgSUZQR0FfQVJHX05BTUUpOw0KPiA+ID4gK0lGUEdBX0FSR19OQU1FKTsNCj4gPiA+ ICBnb3RvIGVuZDsNCj4gPiA+ICt9IGVsc2Ugew0KPiA+ID4gK3N0cmxjcHkoYXJncy0+YmRmLCBu YW1lLCBzaXplb2YoYXJncy0+YmRmKSk7IHJ0ZV9mcmVlKG5hbWUpOw0KPiA+ID4gIH0NCj4gPiA+ ICB9IGVsc2Ugew0KPiA+ID4gIElGUEdBX1JBV0RFVl9QTURfRVJSKCJhcmcgJXMgaXMgbWFuZGF0 b3J5IGZvciBpZnBnYQ0KPiA+IGJ1cyIsDQo+ID4gPiAtICBJRlBHQV9BUkdfTkFNRSk7DQo+ID4g PiArSUZQR0FfQVJHX05BTUUpOw0KPiA+ID4gIGdvdG8gZW5kOw0KPiA+ID4gIH0NCj4gPiA+DQo+ ID4gPiAgaWYgKHJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBJRlBHQV9BUkdfUE9SVCkgPT0gMSkg eyAtaWYNCj4gPiA+IChydGVfa3ZhcmdzX3Byb2Nlc3Moa3ZsaXN0LCAtSUZQR0FfQVJHX1BPUlQs DQo+ID4gPiAtJnJ0ZV9pZnBnYV9nZXRfaW50ZWdlcjMyX2FyZywNCj4gPiA+IC0mcG9ydCkgPCAw KSB7DQo+ID4gPiAraWYgKHJ0ZV9rdmFyZ3NfcHJvY2Vzcyhrdmxpc3QsIElGUEdBX0FSR19QT1JU LA0KPiA+ID4gKyZydGVfaWZwZ2FfZ2V0X2ludGVnZXIzMl9hcmcsICZwb3J0KSA8IDApIHsNCj4g PiA+ICBJRlBHQV9SQVdERVZfUE1EX0VSUigiZXJyb3IgdG8gcGFyc2UgJXMiLCAgSUZQR0FfQVJH X1BPUlQpOw0KPiBnb3RvDQo+ID4gPiBlbmQ7DQo+ID4gPiArfSBlbHNlIHsNCj4gPiA+ICthcmdz LT5wb3J0ID0gcG9ydDsNCj4gPiA+ICB9DQo+ID4gPiAgfSBlbHNlIHsNCj4gPiA+ICBJRlBHQV9S QVdERVZfUE1EX0VSUigiYXJnICVzIGlzIG1hbmRhdG9yeSBmb3IgaWZwZ2ENCj4gPiBidXMiLA0K PiA+ID4gLSAgSUZQR0FfQVJHX1BPUlQpOw0KPiA+ID4gK0lGUEdBX0FSR19QT1JUKTsNCj4gPiA+ ICBnb3RvIGVuZDsNCj4gPiA+ICB9DQo+ID4gPg0KPiA+ID4gK3JldCA9IDA7DQo+ID4gPiArDQo+ ID4gPiArZW5kOg0KPiA+ID4gK2lmIChrdmxpc3QpDQo+ID4gPiArcnRlX2t2YXJnc19mcmVlKGt2 bGlzdCk7DQo+ID4gPiArDQo+ID4gPiArcmV0dXJuIHJldDsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ ID4gPiArc3RhdGljIGludA0KPiA+ID4gK2lmcGdhX2NmZ19wcm9iZShzdHJ1Y3QgcnRlX3ZkZXZf ZGV2aWNlICp2ZGV2KSB7IHN0cnVjdCBydGVfcmF3ZGV2DQo+ID4gPiArKnJhd2RldiA9IE5VTEw7 IHN0cnVjdCBpZnBnYV9yYXdkZXYgKmlmcGdhX2Rldjsgc3RydWN0DQo+ID4gPiAraWZwZ2FfdmRl dl9hcmdzIGFyZ3M7IGNoYXINCj4gZGV2X25hbWVbUlRFX1JBV0RFVl9OQU1FX01BWF9MRU5dOw0K PiA+ID4gK2NvbnN0IGNoYXIgKnZkZXZfbmFtZSA9IE5VTEw7DQo+ID4gPiAraW50IGksIG4sIHJl dCA9IDA7DQo+ID4gPiArDQo+ID4gPiArdmRldl9uYW1lID0gcnRlX3ZkZXZfZGV2aWNlX25hbWUo dmRldik7IGlmICghdmRldl9uYW1lKSByZXR1cm4NCj4gPiA+ICstRUlOVkFMOw0KPiA+ID4gKw0K PiA+ID4gK0lGUEdBX1JBV0RFVl9QTURfSU5GTygicHJvYmUgaWZwZ2EgdmlydHVhbCBkZXZpY2Ug JXMiLA0KPiA+ID4gdmRldl9uYW1lKTsNCj4gPiA+ICsNCj4gPiA+ICtyZXQgPSBpZnBnYV92ZGV2 X3BhcnNlX2RldmFyZ3ModmRldi0+ZGV2aWNlLmRldmFyZ3MsICZhcmdzKTsgaWYNCj4gPiA+ICso cmV0KSByZXR1cm4gcmV0Ow0KPiA+ID4gKw0KPiA+ID4gIG1lbXNldChkZXZfbmFtZSwgMCwgc2l6 ZW9mKGRldl9uYW1lKSk7IC1zbnByaW50ZihkZXZfbmFtZSwNCj4gPiA+IFJURV9SQVdERVZfTkFN RV9NQVhfTEVOLCAiSUZQR0E6JXMiLCBuYW1lKTsNCj4gPiA+ICtzbnByaW50ZihkZXZfbmFtZSwg UlRFX1JBV0RFVl9OQU1FX01BWF9MRU4sICJJRlBHQTolcyIsDQo+ID4gPiBhcmdzLmJkZik7DQo+ ID4gPiAgcmF3ZGV2ID0gcnRlX3Jhd2Rldl9wbWRfZ2V0X25hbWVkX2RldihkZXZfbmFtZSk7DQo+ ID4gPiAgaWYgKCFyYXdkZXYpDQo+ID4gPiAtZ290byBlbmQ7DQo+ID4gPiArcmV0dXJuIC1FTk9E RVY7DQo+ID4gPiAgaWZwZ2FfZGV2ID0gaWZwZ2FfcmF3ZGV2X2dldChyYXdkZXYpOyAgaWYgKCFp ZnBnYV9kZXYpIC1nb3RvIGVuZDsNCj4gPiA+ICtyZXR1cm4gLUVOT0RFVjsNCj4gPiA+DQo+ID4g PiAtbWVtc2V0KGRldl9uYW1lLCAwLCBzaXplb2YoZGV2X25hbWUpKTsgLXNucHJpbnRmKGRldl9u YW1lLA0KPiA+ID4gUlRFX1JBV0RFVl9OQU1FX01BWF9MRU4sICIlZHwlcyIsIC1wb3J0LCBuYW1l KTsNCj4gPiA+ICtmb3IgKGkgPSAwOyBpIDwgSUZQR0FfTUFYX1ZERVY7IGkrKykgeyBpZiAoaWZw Z2FfZGV2LT52ZGV2X25hbWVbaV0NCj4gPiA+ICs9PSBOVUxMKSB7IG4gPSBzdHJsZW4odmRldl9u YW1lKSArIDE7IGlmcGdhX2Rldi0+dmRldl9uYW1lW2ldID0NCj4gPiA+ICtydGVfbWFsbG9jKE5V TEwsIG4sIDApOyBpZiAoaWZwZ2FfZGV2LT52ZGV2X25hbWVbaV0gPT0gTlVMTCkgcmV0dXJuDQo+ ID4gPiArLUVOT01FTTsgc3RybGNweShpZnBnYV9kZXYtPnZkZXZfbmFtZVtpXSwgdmRldl9uYW1l LCBuKTsgYnJlYWs7IH0gfQ0KPiA+ID4NCj4gPiA+ICtpZiAoaSA+PSBJRlBHQV9NQVhfVkRFVikg ew0KPiA+ID4gK0lGUEdBX1JBV0RFVl9QTURfRVJSKCJDYW4ndCBjcmVhdGUgbW9yZSB2aXJ0dWFs DQo+ID4gPiBkZXZpY2UhIik7DQo+ID4gPiArcmV0dXJuIC1FTk9FTlQ7DQo+ID4gPiArfQ0KPiA+ ID4gKw0KPiA+ID4gK3NucHJpbnRmKGRldl9uYW1lLCBSVEVfUkFXREVWX05BTUVfTUFYX0xFTiwg IiVkfCVzIiwNCj4gYXJncy5wb3J0LA0KPiA+ID4gK2FyZ3MuYmRmKTsNCj4gPiA+ICByZXQgPSBy dGVfZWFsX2hvdHBsdWdfYWRkKFJURV9TVFIoSUZQR0FfQlVTX05BTUUpLA0KPiA+ID4gLWRldl9u YW1lLCBkZXZhcmdzLT5hcmdzKTsNCj4gPiA+IC1lbmQ6DQo+ID4gPiAtcnRlX2t2YXJnc19mcmVl KGt2bGlzdCk7DQo+ID4gPiAtZnJlZShuYW1lKTsNCj4gPiA+ICtkZXZfbmFtZSwgdmRldi0+ZGV2 aWNlLmRldmFyZ3MtPmFyZ3MpOyBpZiAocmV0KSB7DQo+ID4gPiArcnRlX2ZyZWUoaWZwZ2FfZGV2 LT52ZGV2X25hbWVbaV0pOw0KPiA+ID4gK2lmcGdhX2Rldi0+dmRldl9uYW1lW2ldID0gTlVMTDsN Cj4gPiA+ICt9DQo+ID4gPg0KPiA+ID4gIHJldHVybiByZXQ7DQo+ID4gPiAgfQ0KPiA+ID4gQEAg LTE3ODgsMTAgKzE4NDUsNDcgQEAgc3RhdGljIGludCBpZnBnYV9yYXdkZXZfZ2V0X3N0cmluZ19h cmcoY29uc3QNCj4gPiA+IGNoYXIgKmtleSBfX3J0ZV91bnVzZWQsICBzdGF0aWMgaW50ICBpZnBn YV9jZmdfcmVtb3ZlKHN0cnVjdA0KPiA+ID4gcnRlX3ZkZXZfZGV2aWNlICp2ZGV2KSAgeyAtSUZQ R0FfUkFXREVWX1BNRF9JTkZPKCJSZW1vdmUNCj4gaWZwZ2FfY2ZnDQo+ID4gPiAlcCIsIC12ZGV2 KTsNCj4gPiA+ICtzdHJ1Y3QgcnRlX3Jhd2RldiAqcmF3ZGV2ID0gTlVMTDsNCj4gPiA+ICtzdHJ1 Y3QgaWZwZ2FfcmF3ZGV2ICppZnBnYV9kZXY7DQo+ID4gPiArc3RydWN0IGlmcGdhX3ZkZXZfYXJn cyBhcmdzOw0KPiA+ID4gK2NoYXIgZGV2X25hbWVbUlRFX1JBV0RFVl9OQU1FX01BWF9MRU5dOw0K PiA+ID4gK2NvbnN0IGNoYXIgKnZkZXZfbmFtZSA9IE5VTEw7DQo+ID4gPiArY2hhciAqdG1wX3Zk ZXYgPSBOVUxMOw0KPiA+ID4gK2ludCBpLCByZXQgPSAwOw0KPiA+ID4NCj4gPiA+IC1yZXR1cm4g MDsNCj4gPiA+ICt2ZGV2X25hbWUgPSBydGVfdmRldl9kZXZpY2VfbmFtZSh2ZGV2KTsgaWYgKCF2 ZGV2X25hbWUpIHJldHVybg0KPiA+ID4gKy1FSU5WQUw7DQo+ID4gPiArDQo+ID4gPiArSUZQR0Ff UkFXREVWX1BNRF9JTkZPKCJyZW1vdmUgaWZwZ2EgdmlydHVhbCBkZXZpY2UgJXMiLA0KPiA+ID4g dmRldl9uYW1lKTsNCj4gPiA+ICsNCj4gPiA+ICtyZXQgPSBpZnBnYV92ZGV2X3BhcnNlX2RldmFy Z3ModmRldi0+ZGV2aWNlLmRldmFyZ3MsICZhcmdzKTsgaWYNCj4gPiA+ICsocmV0KSByZXR1cm4g cmV0Ow0KPiA+ID4gKw0KPiA+ID4gK21lbXNldChkZXZfbmFtZSwgMCwgc2l6ZW9mKGRldl9uYW1l KSk7IHNucHJpbnRmKGRldl9uYW1lLA0KPiA+ID4gK1JURV9SQVdERVZfTkFNRV9NQVhfTEVOLCAi SUZQR0E6JXMiLA0KPiA+ID4gYXJncy5iZGYpOw0KPiA+ID4gK3Jhd2RldiA9IHJ0ZV9yYXdkZXZf cG1kX2dldF9uYW1lZF9kZXYoZGV2X25hbWUpOw0KPiA+ID4gK2lmICghcmF3ZGV2KQ0KPiA+ID4g K3JldHVybiAtRU5PREVWOw0KPiA+ID4gK2lmcGdhX2RldiA9IGlmcGdhX3Jhd2Rldl9nZXQocmF3 ZGV2KTsgaWYgKCFpZnBnYV9kZXYpIHJldHVybg0KPiA+ID4gKy1FTk9ERVY7DQo+ID4gPiArDQo+ ID4gPiArc25wcmludGYoZGV2X25hbWUsIFJURV9SQVdERVZfTkFNRV9NQVhfTEVOLCAiJWR8JXMi LA0KPiBhcmdzLnBvcnQsDQo+ID4gPiArYXJncy5iZGYpOyByZXQgPSBydGVfZWFsX2hvdHBsdWdf cmVtb3ZlKFJURV9TVFIoSUZQR0FfQlVTX05BTUUpLA0KPiA+ID4gZGV2X25hbWUpOw0KPiA+ID4g Kw0KPiA+ID4gK2ZvciAoaSA9IDA7IGkgPCBJRlBHQV9NQVhfVkRFVjsgaSsrKSB7IHRtcF92ZGV2 ID0NCj4gPiA+ICtpZnBnYV9kZXYtPnZkZXZfbmFtZVtpXTsgaWYgKHRtcF92ZGV2ICYmICFzdHJj bXAodG1wX3ZkZXYsDQo+ID4gPiArdmRldl9uYW1lKSkgeyBmcmVlKHRtcF92ZGV2KTsgaWZwZ2Ff ZGV2LT52ZGV2X25hbWVbaV0gPSBOVUxMOw0KPiA+ID4gK2JyZWFrOyB9IH0NCj4gPiA+ICsNCj4g PiA+ICtyZXR1cm4gcmV0Ow0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiAgc3RhdGljIHN0cnVjdCBy dGVfdmRldl9kcml2ZXIgaWZwZ2FfY2ZnX2RyaXZlciA9IHsgZGlmZiAtLWdpdA0KPiA+ID4gYS9k cml2ZXJzL3Jhdy9pZnBnYS9pZnBnYV9yYXdkZXYuaCBiL2RyaXZlcnMvcmF3L2lmcGdhL2lmcGdh X3Jhd2Rldi5oDQo+ID4gPiBpbmRleCA4NTdiNzM0Li5lYjlhOWE1IDEwMDY0NA0KPiA+ID4gLS0t IGEvZHJpdmVycy9yYXcvaWZwZ2EvaWZwZ2FfcmF3ZGV2LmgNCj4gPiA+ICsrKyBiL2RyaXZlcnMv cmF3L2lmcGdhL2lmcGdhX3Jhd2Rldi5oDQo+ID4gPiBAQCAtNTAsNiArNTAsNyBAQCBlbnVtIGlm cGdhX3Jhd2Rldl9kZXZpY2Vfc3RhdGUgew0KPiA+ID4NCj4gPiA+ICAjZGVmaW5lIElGUEdBX1JB V0RFVl9NU0lYX0lSUV9OVU0gNw0KPiA+ID4gICNkZWZpbmUgSUZQR0FfUkFXREVWX05VTSAzMg0K PiA+ID4gKyNkZWZpbmUgSUZQR0FfTUFYX1ZERVYgNA0KPiA+ID4gICNkZWZpbmUgSUZQR0FfTUFY X0lSUSAxMg0KPiA+ID4NCj4gPiA+ICBzdHJ1Y3QgaWZwZ2FfcmF3ZGV2IHsNCj4gPiA+IEBAIC02 NCw2ICs2NSwxMyBAQCBzdHJ1Y3QgaWZwZ2FfcmF3ZGV2IHsNCj4gPiA+ICB2b2lkICppbnRyX2hh bmRsZVtJRlBHQV9NQVhfSVJRXTsNCj4gPiA+ICAvKiBlbmFibGUgbW9uaXRvciB0aHJlYWQgcG9s bCBkZXZpY2UncyBzZW5zb3JzIG9yIG5vdCAqLw0KPiA+ID4gIGludCBwb2xsX2VuYWJsZWQ7DQo+ ID4gPiArLyogbmFtZSBvZiB2aXJ0dWFsIGRldmljZXMgY3JlYXRlZCBvbiByYXcgZGV2aWNlICov DQo+ID4gPiArY2hhciAqdmRldl9uYW1lW0lGUEdBX01BWF9WREVWXTsNCj4gPiA+ICt9Ow0KPiA+ ID4gKw0KPiA+ID4gK3N0cnVjdCBpZnBnYV92ZGV2X2FyZ3Mgew0KPiA+ID4gK2NoYXIgYmRmWzhd Ow0KPiA+ID4gK2ludCBwb3J0Ow0KPiA+ID4gIH07DQo+ID4gPg0KPiA+ID4gIHN0cnVjdCBpZnBn YV9yYXdkZXYgKg0KPiA+ID4gLS0NCj4gPiA+IDEuOC4zLjENCj4gPg0KPiANCg0K