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 B9C6B425F5; Tue, 19 Sep 2023 04:19:46 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 84F62402B4; Tue, 19 Sep 2023 04:19:46 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 6417F4003C for ; Tue, 19 Sep 2023 04:19:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1695089984; x=1726625984; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=msg/9nGG48S1kx5QiFHPt+YXc3lS2F95oe/lmOihUKM=; b=S5vVDRCyVSSIO8GMXBMN/046KgFyOVbzw2GS111UQvDXqaptP9gRTd46 nAe2HXBIO/79lPa2N7qYjVYKlDKhvl+MZugmf1ChdeJiCtWi2j0LGJmqf Qx2wkvWcDrFHurmo124JguDqJVA2U3eIwIMbx2bWPl36SfMtkHvoYMau4 lCpi5XpDEREyhtjpFtu+SijbBVGBoTIP8KTIiWpCM35afF6DjDdQmnD8R VgjVVix4CIZk2nggWSBY/xx+s2LHI9JB7BYX7iFMzLgRdgBuqz5x9yQ/G rwodUHVc0iqY5bVrAh33U7yeencyn+XlgqbJWdqAkmNeZXaioaJSZPaRa w==; X-IronPort-AV: E=McAfee;i="6600,9927,10837"; a="383655593" X-IronPort-AV: E=Sophos;i="6.02,158,1688454000"; d="scan'208";a="383655593" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Sep 2023 19:19:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10837"; a="992978373" X-IronPort-AV: E=Sophos;i="6.02,158,1688454000"; d="scan'208";a="992978373" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga006.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 18 Sep 2023 19:19:40 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Mon, 18 Sep 2023 19:19:40 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Mon, 18 Sep 2023 19:19:39 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Mon, 18 Sep 2023 19:19:39 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.168) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Mon, 18 Sep 2023 19:19:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dKzwzHClgO6Jwb8W+EbU2FqXfvkdt0IRSy2NT2s+CAmm4xdL2LmArVMyx+W+iaA37V8svprXaFQJIZGR8tat3BgbOyHZS4ApElKcrTCdVWnHJV1D3DT1wuPwGwvkeBjK7DcyyEOMvZN0JmX/CHcwGNA5/fXq9ZGZqW9Q+f2jXFnWfsYq7uvCtODKQQ1IubgVlviukf9S8W9k1Ry3sOYwLgPUhcfv7k0Z6aZGYId/L8lWgWrLfxpHdfTH/4S+gjKjcHBmXyHOLAcLVQm+tB0HSmvofKbUWIbSCu2FpbYF++QDFPQDp3Ul13Nx/HghkvDiN7ufR1KFcYSinrmYQAPeSg== 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=msg/9nGG48S1kx5QiFHPt+YXc3lS2F95oe/lmOihUKM=; b=fK+rgqQKcJOXLZUXixtoX1K9zNwGwEJDH4dQn33gar/LXz9QXh+6ChkdsuS1jkMxBvF/NgRI6tjp3QnfETEgSg6RDLiXUJTJ+DaBB8ds6FCP0bhxp+OqQui5Fo3/akRajomDQC6OM32tGXK7buBM5cNFUIFIBrM0DmYfWnuTJrK/K2GsUWuN/CWv5Ap0eoVHZOFPNH5qe2SYVW2C9hSz+pFCzXPJQJgl19slt/fKCfUwZ1K8hTM6kyZWh0YMXR8rfbYsKRl7JalYmhjjk4Mxy4QwydQEC5iWeKRGIehasHVVo1Js/VAD11x9s18nCXfscOW/HKd/qw7Pg0/o/v1gsw== 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 CH3PR11MB8362.namprd11.prod.outlook.com (2603:10b6:610:175::6) by CY8PR11MB6964.namprd11.prod.outlook.com (2603:10b6:930:57::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.24; Tue, 19 Sep 2023 02:19:27 +0000 Received: from CH3PR11MB8362.namprd11.prod.outlook.com ([fe80::88c2:332c:5e8a:25e]) by CH3PR11MB8362.namprd11.prod.outlook.com ([fe80::88c2:332c:5e8a:25e%7]) with mapi id 15.20.6792.026; Tue, 19 Sep 2023 02:19:27 +0000 From: "Xia, Chenbo" To: David Marchand , Maxime Coquelin CC: "dev@dpdk.org" , "thomas@monjalon.net" , "ferruh.yigit@amd.com" , "nipun.gupta@amd.com" , "Richardson, Bruce" , "Burakov, Anatoly" , Jay Zhou , "McDaniel, Timothy" , Julien Aube , "Rahul Lakkireddy" , "Guo, Junfeng" , Jeroen de Borst , Rushil Gupta , Joshua Washington , Dongdong Liu , Yisen Zhuang , "Gaetan Rivet" Subject: RE: [PATCH v2 04/15] bus/pci: find PCI capability Thread-Topic: [PATCH v2 04/15] bus/pci: find PCI capability Thread-Index: AQHZ1CO7Hw0jmQkPA0SBfbe/UjXEsbAN5i6AgAx/voCABy7NwA== Date: Tue, 19 Sep 2023 02:19:26 +0000 Message-ID: References: <20230803075038.307012-1-david.marchand@redhat.com> <20230821113549.3191921-1-david.marchand@redhat.com> <20230821113549.3191921-5-david.marchand@redhat.com> In-Reply-To: Accept-Language: en-US, zh-CN 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR11MB8362:EE_|CY8PR11MB6964:EE_ x-ms-office365-filtering-correlation-id: b8c490ba-bfa6-44a4-950e-08dbb8b6d8b7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HhCoSBRC+SaAstGjK3bp4AnBe0NpcfTtMK6fu72d/G0Uxd5g390tGMU+78eSVVN/jDEtMt8znsQ0oVWM13Tapr6dBaYeGtu7dUumOmVQQyOXRtU1EUqZD8fm1muVjitIr9eDek0HosZqKsAZfv5ZL6qVrgv1cb6J6vNTepxCiIW+LMoHm2r0fBKXAEvjGWM5DRqjrvfxmqWTDoVwgzZ76f8IMG/rgQ0iLw0QW0NsFuajOHz8h5URz3hRQzmSpkwqBS7oGTKTw2i/BEUebpsOfl4Ebct/9gZSi6S13OLyONatczfkwZoHPVt+6nUtA9GivRNfxc3HSsv2I5xBAKgpTGTHMzTT8ql8U9KssOQZmz4v839FRY9MpT2m8oTPxDwm2AONbudhR+BaeCri5c9TTNjSb2DNmr9htKj2iYuHBpiiFhq/2l7Dt92SkV/Li1radCwU/Z+u6aTVcvnfL/JRTexusF54kUJHJAT4Wy28YrYgFsV5DAJTwprqKpSa9YauW23hrXp3EMwLid+JKTYROZDnHvr1XOpoKpWRj5jUuZhy2YnI9sBd0046jrSBjvgGq/jmM7xscjPjw6StnuhVd3pNoZwE/SQNLWpKhnV4c5wQQl7XY19eUGmoPQLuc2E7 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH3PR11MB8362.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(366004)(346002)(376002)(396003)(39860400002)(1800799009)(186009)(451199024)(26005)(52536014)(8936002)(82960400001)(8676002)(33656002)(122000001)(4326008)(7416002)(83380400001)(2906002)(30864003)(55016003)(5660300002)(86362001)(53546011)(7696005)(6506007)(478600001)(71200400001)(316002)(9686003)(54906003)(64756008)(76116006)(110136005)(66946007)(66446008)(66556008)(38100700002)(38070700005)(66476007)(41300700001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UVNaUDRIek1ROEZ1amZpYXByMGlROEdXZ3hOdW1HVElnZVFDc0Y5YjhQWHRw?= =?utf-8?B?aUl1eEtTQ3lXNXUxbmhtT21JSnJaMjJ4RlgxQUtaaUtYYWlRbEhzZzRNNkZo?= =?utf-8?B?MVZpcUZzc3pvSG5CcjBEejI4WFJQRVM4enpaOTJJVWtadnRZSmlBcmhWN0dq?= =?utf-8?B?UGEvbmZmZG1hYnViajhJZUJIZDhKSmZreGtKU2N1WHc1ZmpCSXFRTmx4eTFB?= =?utf-8?B?UzhuK2VrMUZ2Vkg3MkFnMzJmaHNZZ1poa1JDc3ZwRVROSGFzWUpPMGtPSGJn?= =?utf-8?B?b2dURmw3aGdLYUpnSi9BdERydE43RUtjVko1UVY0NmxLSUpNUkxNdGNuR0tu?= =?utf-8?B?dzdxUW5aZVdlR05vZ3FxbUlUQ2dMajh2L0JMN3NCVllIcVJpWUJQYnRoTUxu?= =?utf-8?B?NFRTS0JrZFNKSFZHdlpEVUtDZWtuYmc0c0JpSnJ2S2VyMXdWclFUaS83N2ZD?= =?utf-8?B?RnQyQzZqU3VGN29nRzZsSk8yYzNXRHRwMnFWWVNkMDFla01veHNzbTBOSFor?= =?utf-8?B?eVhrT2hQT0VXWHhWdk9kQmVsMjNtTzRvWklhYUdXcVJ4UmowOU1PeHJYYWM3?= =?utf-8?B?U0lua2NWdFBDOXBPTndtblVHNFVYSTJUQzBnSnNkakNHekREUWtBZUQvMFcv?= =?utf-8?B?c3lNaldrdkFnaFFWcEdOcXpwc3ZoT3lZeWJmSm13WjM0V1J5ZXB0UUtSK0tn?= =?utf-8?B?YjhTa1ZGRVcxMFRBNEdGRmRweU82VkZqQzh6Z28yR2tJN0IrTXdZNVNLWVVM?= =?utf-8?B?RjM2ZndwaTZLcWxKSXVJTUI1R1BtQmNuelZheCtIaEQxcFFtTTlhbjlISW1a?= =?utf-8?B?QlRrVlQ3TUdscXJ4L08xd2ErVHk4QTB2Ny9ybEhWZ3IxbjdYcjhBQ0c2OTJv?= =?utf-8?B?SGx3RFVzK0VoNGU5MEVxbHlxV3JlUVpKUlFhcDdubWJrTXVUbVBZNHN5dTd6?= =?utf-8?B?MWpJVTVITk5qSUlpZUQ5cTFLTTArdlpiR2dPMVpQWXRtVGRjbExqRWNKYzJB?= =?utf-8?B?V09jTm0rMTZ2QWMrdGxscVBoOW9uU3p6ZEdKM1pISVRGMWtudFhvYk5Hb1Ny?= =?utf-8?B?cXkyS0dnL2RhdVBkNmRUcHh1S3lObVlTWW1CQmxudXRlOG01T3NvU0RXMk1E?= =?utf-8?B?U012djhyZFY0aTVrUmxxdjNhQkJ4SzA1WFhvNjVITk9lUGVLN3BmWXNIUjJE?= =?utf-8?B?Vk1CMGNrQ2JZRHkwVnlBaWF4NnBLTlRRcy9VbEJ6UXYrTFpoRm5vQWxLTk85?= =?utf-8?B?dytMa3ZXMDRQT3VWb3V4UXVUbHBlNlBUR1AraXQ4T2VOZkE3MVdOVnNzS3JH?= =?utf-8?B?dzkvc3prbnM3SnFVclZaSHkvR082MkNGcFg4WGZ5Wkc1Mllhb1gvVWlhZEZj?= =?utf-8?B?cFFtRUdVbm1MTmZMS2E5T1dWMk4vaDVnQnU3c2k5Qm9McTNIT0pXMnk0bmdT?= =?utf-8?B?WkRwKzhXRStHRzM5STZJWEtwTElmSElhT0hpMjJxUDZuNHY0RUNMbkhvQkVX?= =?utf-8?B?STVVcFlQOEV3dzJYSmRLbWFPUlZGc0o0RFBVWFltV21zY2g0K28xNUh1ejhE?= =?utf-8?B?Tko1UFF6Skhja0orWElIbkZVeC95R0M5dXZnM0ludXo3bkJUVC9wb25oallp?= =?utf-8?B?NWZSYjBpblVYaVpxaE1KSUdidk9kMmMyVUMrU1pLWHFTb3o5NXk3cEtHOW1Y?= =?utf-8?B?NE1ucUIzbitHUitGSnZIN3dwT0FtRG50akZvM0p0SFlINVp6K00ySnRoKzVy?= =?utf-8?B?RkgxYUVVTW1lWUpGU2I3ZCtXcFlNWWRYdDZ4VkZXODlUSFhkWDVscWYrRVZW?= =?utf-8?B?dzhiQ1hiblRvRUxrNmVMZkVMc3hwNTZsQ1pCaTNQSkxNY0pscFMwdm5QMUhR?= =?utf-8?B?cXJzQjYrTmNKeHdDaEgybE9GY2pUTnN5R21kQUNvUG9leUJINEIyWFJ2L0w1?= =?utf-8?B?OXQ5WW1FUkxRRUxwRVdVUjBFRVlWRyswUnc2RUZTcDZRRlB0dWF5aFdtbmJj?= =?utf-8?B?cHAwYWppdWJYUk9VbmVvb0pWNWVuMTVYc0EzZWtCbjFBMnQ3NFpHZ1JodkRF?= =?utf-8?B?cW1YU2dqemdLRlFpS0pnT2xxU2R0dFl3SzZxSlUvdWpiaGd5RDJxNjBZMVNX?= =?utf-8?Q?16r//CQL6eK+4nJDm2cEzzJOj?= 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: CH3PR11MB8362.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8c490ba-bfa6-44a4-950e-08dbb8b6d8b7 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Sep 2023 02:19:26.2449 (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: iGyq8KitTSyjApDUGsIoWJ6FphCvLBivZ8GE3aNlPfZwO2Li+HgwZTZHFmLl6sI0f/880AgsOg2tpRQSK2J67g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB6964 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgRGF2aWQsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRGF2aWQg TWFyY2hhbmQgPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBT ZXB0ZW1iZXIgMTQsIDIwMjMgODoyOSBQTQ0KPiBUbzogWGlhLCBDaGVuYm8gPGNoZW5iby54aWFA aW50ZWwuY29tPjsgTWF4aW1lIENvcXVlbGluDQo+IDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNv bT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgdGhvbWFzQG1vbmphbG9uLm5ldDsgZmVycnVoLnlpZ2l0 QGFtZC5jb207DQo+IG5pcHVuLmd1cHRhQGFtZC5jb207IFJpY2hhcmRzb24sIEJydWNlIDxicnVj ZS5yaWNoYXJkc29uQGludGVsLmNvbT47DQo+IEJ1cmFrb3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVy YWtvdkBpbnRlbC5jb20+OyBKYXkgWmhvdQ0KPiA8amlhbmpheS56aG91QGh1YXdlaS5jb20+OyBN Y0RhbmllbCwgVGltb3RoeSA8dGltb3RoeS5tY2RhbmllbEBpbnRlbC5jb20+Ow0KPiBKdWxpZW4g QXViZSA8anVsaWVuX2RwZGtAamF1YmUuZnI+OyBSYWh1bCBMYWtraXJlZGR5DQo+IDxyYWh1bC5s YWtraXJlZGR5QGNoZWxzaW8uY29tPjsgR3VvLCBKdW5mZW5nIDxqdW5mZW5nLmd1b0BpbnRlbC5j b20+Ow0KPiBKZXJvZW4gZGUgQm9yc3QgPGplcm9lbmRiQGdvb2dsZS5jb20+OyBSdXNoaWwgR3Vw dGEgPHJ1c2hpbGdAZ29vZ2xlLmNvbT47DQo+IEpvc2h1YSBXYXNoaW5ndG9uIDxqb3Nod2FzaEBn b29nbGUuY29tPjsgRG9uZ2RvbmcgTGl1DQo+IDxsaXVkb25nZG9uZzNAaHVhd2VpLmNvbT47IFlp c2VuIFpodWFuZyA8eWlzZW4uemh1YW5nQGh1YXdlaS5jb20+OyBHYWV0YW4NCj4gUml2ZXQgPGdy aXZlQHUyNTYubmV0Pg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDA0LzE1XSBidXMvcGNpOiBm aW5kIFBDSSBjYXBhYmlsaXR5DQo+IA0KPiBIZWxsbyBDaGVuYm8sDQo+IA0KPiBPbiBUaHUsIFNl cCA3LCAyMDIzIGF0IDI6NDPigK9QTSBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+ IHdyb3RlOg0KPiA+ID4gSW50cm9kdWNlIHR3byBoZWxwZXJzIHNvIHRoYXQgZHJpdmVycyBzdG9w IHJlaW52ZW50aW5nIHRoZSB3aGVlbCB3aGVuDQo+IGl0DQo+ID4gPiBjb21lcyB0byBmaW5kaW5n IGNhcGFiaWxpdGllcyBpbiBhIGRldmljZSBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZS4NCj4gPiA+ IFVzZSBpdCBpbiBleGlzdGluZyBkcml2ZXJzLg0KPiA+ID4NCj4gPiA+IE5vdGU6DQo+ID4gPiAt IGJhc2UvIGRyaXZlcnMgY29kZSBpcyBsZWZ0IHVudG91Y2hlZCwgb25seSBzb21lIHdyYXBwZXJz IGluIGN4Z2JlDQo+ID4gPiAgIGFyZSB0b3VjaGVkLA0KPiA+ID4gLSBibngyeCBtYWludGFpbmVk IGEgcGVyIGRldmljZSBjYWNoZSBvZiBjYXBhYmlsaXRpZXMsIHRoaXMgY29kZSBoYXMNCj4gYmVl bg0KPiA+ID4gICByZXdvcmtlZCB0byBvbmx5IGNhY2hlIHRoZSBjYXBhYmlsaXRpZXMgdXNlZCBp biB0aGlzIGRyaXZlciwNCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBNYXJjaGFu ZCA8ZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbT4NCj4gPiA+IEFja2VkLWJ5OiBCcnVjZSBSaWNo YXJkc29uIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gQ2hh bmdlcyBzaW5jZSB2MToNCj4gPiA+IC0gdXBkYXRlZCBjb21taXRsb2csDQo+ID4gPiAtIHNlcGFy YXRlZCBWRklPIGNoYW5nZXMgZm9yIHVzaW5nIHN0YW5kYXJkIFBDSSBoZWxwZXIgaW4gYSBzZXBh cmF0ZQ0KPiA+ID4gICBwYXRjaCwNCj4gPiA+IC0gbWFya2VkIG5ldyBleHBlcmltZW50YWwgc3lt Ym9scyB3aXRoIGN1cnJlbnQgdmVyc2lvbiwNCj4gPiA+IC0gcmVvcmRlcmVkIGRlZmluZXMgaW4g cnRlX3BjaS5oLA0KPiA+ID4NCj4gPiA+IC0tLQ0KPiA+ID4gIGRyaXZlcnMvYnVzL3BjaS9saW51 eC9wY2lfdmZpby5jICAgfCAgNzQgKysrKy0tLS0tLS0tLS0tLS0tDQo+ID4gPiAgZHJpdmVycy9i dXMvcGNpL3BjaV9jb21tb24uYyAgICAgICB8ICA0NSArKysrKysrKysrKw0KPiA+ID4gIGRyaXZl cnMvYnVzL3BjaS9ydGVfYnVzX3BjaS5oICAgICAgfCAgMzEgKysrKysrKysNCj4gPiA+ICBkcml2 ZXJzL2J1cy9wY2kvdmVyc2lvbi5tYXAgICAgICAgIHwgICA0ICsNCj4gPiA+ICBkcml2ZXJzL2Ny eXB0by92aXJ0aW8vdmlydGlvX3BjaS5jIHwgIDU3ICsrKysrLS0tLS0tLS0tDQo+ID4gPiAgZHJp dmVycy9ldmVudC9kbGIyL3BmL2RsYjJfbWFpbi5jICB8ICA0MiArLS0tLS0tLS0tDQo+ID4gPiAg ZHJpdmVycy9uZXQvYm54MngvYm54MnguYyAgICAgICAgICB8ICA0MSArKysrKy0tLS0tDQo+ID4g PiAgZHJpdmVycy9uZXQvY3hnYmUvYmFzZS9hZGFwdGVyLmggICB8ICAyOCArLS0tLS0tDQo+ID4g PiAgZHJpdmVycy9uZXQvZ3ZlL2d2ZV9ldGhkZXYuYyAgICAgICB8ICA0NiArKy0tLS0tLS0tLQ0K PiA+ID4gIGRyaXZlcnMvbmV0L2d2ZS9ndmVfZXRoZGV2LmggICAgICAgfCAgIDQgLQ0KPiA+ID4g IGRyaXZlcnMvbmV0L2huczMvaG5zM19ldGhkZXZfdmYuYyAgfCAgNzkgKysrLS0tLS0tLS0tLS0t LS0tLQ0KPiA+ID4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpLmMgICAgfCAxMjEgKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtDQo+ID4gPiAgbGliL3BjaS9ydGVfcGNpLmgg ICAgICAgICAgICAgICAgICB8ICAxMSArKysNCj4gPiA+ICAxMyBmaWxlcyBjaGFuZ2VkLCAxODYg aW5zZXJ0aW9ucygrKSwgMzk3IGRlbGV0aW9ucygtKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2J1cy9wY2kvbGludXgvcGNpX3ZmaW8uYw0KPiA+ID4gYi9kcml2ZXJzL2J1cy9w Y2kvbGludXgvcGNpX3ZmaW8uYw0KPiA+ID4gaW5kZXggOTU4ZjhiM2I1Mi4uNjE0ZWQ1ZDY5NiAx MDA2NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvYnVzL3BjaS9saW51eC9wY2lfdmZpby5jDQo+ID4g PiArKysgYi9kcml2ZXJzL2J1cy9wY2kvbGludXgvcGNpX3ZmaW8uYw0KPiA+ID4gQEAgLTExMCw3 NCArMTEwLDM0IEBAIHN0YXRpYyBpbnQNCj4gPiA+ICBwY2lfdmZpb19nZXRfbXNpeF9iYXIoY29u c3Qgc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpkZXYsDQo+ID4gPiAgICAgICBzdHJ1Y3QgcGNpX21z aXhfdGFibGUgKm1zaXhfdGFibGUpDQo+ID4gPiAgew0KPiA+ID4gLSAgICAgaW50IHJldDsNCj4g PiA+IC0gICAgIHVpbnQzMl90IHJlZzsNCj4gPiA+IC0gICAgIHVpbnQxNl90IGZsYWdzOw0KPiA+ ID4gLSAgICAgdWludDhfdCBjYXBfaWQsIGNhcF9vZmZzZXQ7DQo+ID4gPiArICAgICBvZmZfdCBj YXBfb2Zmc2V0Ow0KPiA+ID4NCj4gPiA+IC0gICAgIC8qIHJlYWQgUENJIGNhcGFiaWxpdHkgcG9p bnRlciBmcm9tIGNvbmZpZyBzcGFjZSAqLw0KPiA+ID4gLSAgICAgcmV0ID0gcnRlX3BjaV9yZWFk X2NvbmZpZyhkZXYsICZyZWcsIHNpemVvZihyZWcpLA0KPiA+ID4gUENJX0NBUEFCSUxJVFlfTElT VCk7DQo+ID4gPiAtICAgICBpZiAocmV0ICE9IHNpemVvZihyZWcpKSB7DQo+ID4gPiAtICAgICAg ICAgICAgIFJURV9MT0coRVJSLCBFQUwsDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgIkNh bm5vdCByZWFkIGNhcGFiaWxpdHkgcG9pbnRlciBmcm9tIFBDSSBjb25maWcNCj4gPiA+IHNwYWNl IVxuIik7DQo+ID4gPiArICAgICBjYXBfb2Zmc2V0ID0gcnRlX3BjaV9maW5kX2NhcGFiaWxpdHko ZGV2LCBQQ0lfQ0FQX0lEX01TSVgpOw0KPiA+DQo+ID4gSSBub3RpY2UgaW4gc29tZSBjYXNlcyB3 ZSB1c2UgcnRlX3BjaV9oYXNfY2FwYWJpbGl0eV9saXN0KCkgdG8gY2hlY2sNCj4gZmlyc3QsDQo+ ID4gdGhlbiBsb29raW5nIGZvciBzcGVjaWZpYyBjYXAsIGluIG90aGVyIGNhc2VzIHdlIGRvbid0 IHVzZQ0KPiA+IHJ0ZV9wY2lfaGFzX2NhcGFiaWxpdHlfbGlzdCgpLiBTaW5jZSB3ZSBkZWZpbmUg dGhpcyBBUEksIHNob3VsZCB3ZQ0KPiBhbHdheXMgZG8NCj4gPiB0aGUgY2hlY2s/DQo+IA0KPiBI dW0sIEkgYW0gbm90IHN1cmUgb2Ygd2hhdCB5b3Ugc3VnZ2VzdCBoZXJlLg0KPiANCj4gSSB0cmll ZCB0byBkbyBhIDE6MSBjb252ZXJzaW9uIG9mIHdoYXQgZXhpc3RlZC4NCj4gRG8geW91IG1lYW4g dGhlcmUgYXJlIHBsYWNlcyB3aGVyZSBJIG1pc3NlZCBjb252ZXJ0aW5nIHNvbWUNCj4gcnRlX3Bj aV9yZWFkX2NvbmZpZyhQQ0lfQ0FQQUJJTElUWV9MSVNUKSB0bw0KPiBydGVfcGNpX2hhc19jYXBh YmlsaXR5X2xpc3QoKT8NCj4gSWYgc28sIGNvdWxkIHlvdSBwb2ludCBhdCB0aGVtPw0KPiANCj4g T3IgYXJlIHlvdSBzdWdnZXN0aW5nIHRvIGhhdmUgdGhpcyBjaGVjayBhcyBwYXJ0IG9mDQo+IHJ0 ZV9wY2lfZmluZF9jYXBhYmlsaXR5KCkgPw0KDQpZb3VyIGNvbnZlcnNpb24gaXMgY29ycmVjdC4g SSB3YXMgc2F5aW5nIGFib3V0IHRoZSB1c2FnZSBvZg0KcnRlX3BjaV9oYXNfY2FwYWJpbGl0eV9s aXN0L3J0ZV9wY2lfZmluZF9jYXBhYmlsaXR5LCBsb2dpY2FsbHkgc2hvdWxkIHdlDQphbHdheXMg Y2FsbCBydGVfcGNpX2hhc19jYXBhYmlsaXR5X2xpc3QgZmlyc3QgYmVmb3JlIGZpbmQgY2FwYWJp bGl0eT8NCg0KSSBkb24ndCBoYXZlIHN0cm9uZyBvcGluaW9uIG9uIHRoaXMuIFlvdSBjYW4gY2hv b3NlIHRvIGtlZXAgdGhlIHNhbWUgb3INCmNhbGwgcnRlX3BjaV9oYXNfY2FwYWJpbGl0eV9saXN0 IG1vcmUuDQoNClRoYW5rcyENCkNoZW5ibw0KDQo+IA0KPiANCj4gSSdsbCByZXNwaW4gYSB2MyBz b29uICh0byBmaXggdGhlIG5hc3R5IGlzc3VlIHlvdSBwb2ludGVkIG91dCBiZWxvdykuDQo+IEEg djQgbWF5IGJlIG5lZWRlZCBkZXBlbmRpbmcgb24geW91ciByZXBsaWVzIHRvIGFib3ZlIHF1ZXN0 aW9ucy4NCj4gDQo+IA0KPiA+DQo+ID4NCj4gPiA+ICsgICAgIGlmIChjYXBfb2Zmc2V0IDwgMCkN Cj4gPiA+ICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KPiA+ID4gLSAgICAgfQ0KPiA+ID4NCj4g PiA+IC0gICAgIC8qIHdlIG5lZWQgZmlyc3QgYnl0ZSAqLw0KPiA+ID4gLSAgICAgY2FwX29mZnNl dCA9IHJlZyAmIDB4RkY7DQo+ID4gPiArICAgICBpZiAoY2FwX29mZnNldCAhPSAwKSB7DQo+ID4g PiArICAgICAgICAgICAgIHVpbnQxNl90IGZsYWdzOw0KPiA+ID4gKyAgICAgICAgICAgICB1aW50 MzJfdCByZWc7DQo+ID4gPg0KPiA+ID4gLSAgICAgd2hpbGUgKGNhcF9vZmZzZXQpIHsNCj4gPiA+ IC0NCj4gPiA+IC0gICAgICAgICAgICAgLyogcmVhZCBQQ0kgY2FwYWJpbGl0eSBJRCAqLw0KPiA+ ID4gLSAgICAgICAgICAgICByZXQgPSBydGVfcGNpX3JlYWRfY29uZmlnKGRldiwgJnJlZywgc2l6 ZW9mKHJlZyksDQo+IGNhcF9vZmZzZXQpOw0KPiA+ID4gLSAgICAgICAgICAgICBpZiAocmV0ICE9 IHNpemVvZihyZWcpKSB7DQo+ID4gPiArICAgICAgICAgICAgIC8qIHRhYmxlIG9mZnNldCByZXNp ZGVzIGluIHRoZSBuZXh0IDQgYnl0ZXMgKi8NCj4gPiA+ICsgICAgICAgICAgICAgaWYgKHJ0ZV9w Y2lfcmVhZF9jb25maWcoZGV2LCAmcmVnLCBzaXplb2YocmVnKSwNCj4gY2FwX29mZnNldCArIDQp DQo+ID4gPiA8IDApIHsNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwg RUFMLA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCByZWFkIGNh cGFiaWxpdHkgSUQgZnJvbSBQQ0kNCj4gY29uZmlnDQo+ID4gPiBzcGFjZSFcbiIpOw0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCByZWFkIE1TSVggdGFibGUgZnJv bSBQQ0kgY29uZmlnDQo+IHNwYWNlIVxuIik7DQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIC0xOw0KPiA+ID4gICAgICAgICAgICAgICB9DQo+ID4gPg0KPiA+ID4gLSAgICAgICAg ICAgICAvKiB3ZSBuZWVkIGZpcnN0IGJ5dGUgKi8NCj4gPiA+IC0gICAgICAgICAgICAgY2FwX2lk ID0gcmVnICYgMHhGRjsNCj4gPiA+IC0NCj4gPiA+IC0gICAgICAgICAgICAgLyogaWYgd2UgaGF2 ZW4ndCByZWFjaGVkIE1TSS1YLCBjaGVjayBuZXh0IGNhcGFiaWxpdHkgKi8NCj4gPiA+IC0gICAg ICAgICAgICAgaWYgKGNhcF9pZCAhPSBQQ0lfQ0FQX0lEX01TSVgpIHsNCj4gPiA+IC0gICAgICAg ICAgICAgICAgICAgICByZXQgPSBydGVfcGNpX3JlYWRfY29uZmlnKGRldiwgJnJlZywgc2l6ZW9m KHJlZyksDQo+ID4gPiBjYXBfb2Zmc2V0KTsNCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICBp ZiAocmV0ICE9IHNpemVvZihyZWcpKSB7DQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSVEVfTE9HKEVSUiwgRUFMLA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiQ2Fubm90IHJlYWQgY2FwYWJpbGl0eSBwb2ludGVyDQo+IGZyb20gUENJDQo+ ID4gPiBjb25maWcgc3BhY2UhXG4iKTsNCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAtMTsNCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICB9DQo+ID4gPiAtDQo+ ID4gPiAtICAgICAgICAgICAgICAgICAgICAgLyogd2UgbmVlZCBzZWNvbmQgYnl0ZSAqLw0KPiA+ ID4gLSAgICAgICAgICAgICAgICAgICAgIGNhcF9vZmZzZXQgPSAocmVnICYgMHhGRjAwKSA+PiA4 Ow0KPiA+ID4gLQ0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ID4g KyAgICAgICAgICAgICBpZiAocnRlX3BjaV9yZWFkX2NvbmZpZyhkZXYsICZmbGFncywgc2l6ZW9m KGZsYWdzKSwNCj4gY2FwX29mZnNldA0KPiA+ID4gKyAyKSA8IDApIHsNCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgRUFMLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIkNhbm5vdCByZWFkIE1TSVggZmxhZ3MgZnJvbSBQQ0kgY29uZmlnDQo+IHNw YWNlIVxuIik7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KPiA+ID4g ICAgICAgICAgICAgICB9DQo+ID4gPiAtICAgICAgICAgICAgIC8qIGVsc2UsIHJlYWQgdGFibGUg b2Zmc2V0ICovDQo+ID4gPiAtICAgICAgICAgICAgIGVsc2Ugew0KPiA+ID4gLSAgICAgICAgICAg ICAgICAgICAgIC8qIHRhYmxlIG9mZnNldCByZXNpZGVzIGluIHRoZSBuZXh0IDQgYnl0ZXMgKi8N Cj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICByZXQgPSBydGVfcGNpX3JlYWRfY29uZmlnKGRl diwgJnJlZywgc2l6ZW9mKHJlZyksDQo+ID4gPiBjYXBfb2Zmc2V0ICsgNCk7DQo+ID4gPiAtICAg ICAgICAgICAgICAgICAgICAgaWYgKHJldCAhPSBzaXplb2YocmVnKSkgew0KPiA+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUlRFX0xPRyhFUlIsIEVBTCwNCj4gPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCByZWFkIHRhYmxlIG9mZnNldCBm cm9tDQo+IFBDSSBjb25maWcNCj4gPiA+IHNwYWNlIVxuIik7DQo+ID4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAg fQ0KPiA+ID4gLQ0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIHJldCA9IHJ0ZV9wY2lfcmVh ZF9jb25maWcoZGV2LCAmZmxhZ3MsDQo+IHNpemVvZihmbGFncyksDQo+ID4gPiBjYXBfb2Zmc2V0 ICsgMik7DQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgaWYgKHJldCAhPSBzaXplb2YoZmxh Z3MpKSB7DQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwg RUFMLA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2Fubm90 IHJlYWQgdGFibGUgZmxhZ3MgZnJvbQ0KPiBQQ0kgY29uZmlnDQo+ID4gPiBzcGFjZSFcbiIpOw0K PiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KPiA+ID4gLSAg ICAgICAgICAgICAgICAgICAgIH0NCj4gPiA+IC0NCj4gPiA+IC0gICAgICAgICAgICAgICAgICAg ICBtc2l4X3RhYmxlLT5iYXJfaW5kZXggPSByZWcgJg0KPiBSVEVfUENJX01TSVhfVEFCTEVfQklS Ow0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIG1zaXhfdGFibGUtPm9mZnNldCA9IHJlZyAm DQo+IFJURV9QQ0lfTVNJWF9UQUJMRV9PRkZTRVQ7DQo+ID4gPiAtICAgICAgICAgICAgICAgICAg ICAgbXNpeF90YWJsZS0+c2l6ZSA9DQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxNiAqICgxICsgKGZsYWdzICYNCj4gUlRFX1BDSV9NU0lYX0ZMQUdTX1FTSVpFKSk7DQo+ID4g Pg0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiA+ID4gLSAgICAgICAg ICAgICB9DQo+ID4gPiArICAgICAgICAgICAgIG1zaXhfdGFibGUtPmJhcl9pbmRleCA9IHJlZyAm IFJURV9QQ0lfTVNJWF9UQUJMRV9CSVI7DQo+ID4gPiArICAgICAgICAgICAgIG1zaXhfdGFibGUt Pm9mZnNldCA9IHJlZyAmIFJURV9QQ0lfTVNJWF9UQUJMRV9PRkZTRVQ7DQo+ID4gPiArICAgICAg ICAgICAgIG1zaXhfdGFibGUtPnNpemUgPSAxNiAqICgxICsgKGZsYWdzICYNCj4gPiA+IFJURV9Q Q0lfTVNJWF9GTEFHU19RU0laRSkpOw0KPiA+ID4gICAgICAgfQ0KPiA+ID4gKw0KPiA+ID4gICAg ICAgcmV0dXJuIDA7DQo+ID4gPiAgfQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2J1cy9wY2kvcGNpX2NvbW1vbi5jDQo+IGIvZHJpdmVycy9idXMvcGNpL3BjaV9jb21tb24uYw0K PiA+ID4gaW5kZXggMzgyYjBiODk0Ni4uNTIyNzI2MTdlYiAxMDA2NDQNCj4gPiA+IC0tLSBhL2Ry aXZlcnMvYnVzL3BjaS9wY2lfY29tbW9uLmMNCj4gPiA+ICsrKyBiL2RyaXZlcnMvYnVzL3BjaS9w Y2lfY29tbW9uLmMNCj4gPiA+IEBAIC04MTMsNiArODEzLDUxIEBAIHJ0ZV9wY2lfZ2V0X2lvbW11 X2NsYXNzKHZvaWQpDQo+ID4gPiAgICAgICByZXR1cm4gaW92YV9tb2RlOw0KPiA+ID4gIH0NCj4g PiA+DQo+ID4gPiArYm9vbA0KPiA+ID4gK3J0ZV9wY2lfaGFzX2NhcGFiaWxpdHlfbGlzdChjb25z dCBzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldikNCj4gPiA+ICt7DQo+ID4gPiArICAgICB1aW50 MTZfdCBzdGF0dXM7DQo+ID4gPiArDQo+ID4gPiArICAgICBpZiAocnRlX3BjaV9yZWFkX2NvbmZp ZyhkZXYsICZzdGF0dXMsIHNpemVvZihzdGF0dXMpLA0KPiA+ID4gUlRFX1BDSV9TVEFUVVMpICE9 IHNpemVvZihzdGF0dXMpKQ0KPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+ID4g PiArDQo+ID4gPiArICAgICByZXR1cm4gKHN0YXR1cyAmIFJURV9QQ0lfU1RBVFVTX0NBUF9MSVNU KSAhPSAwOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtvZmZfdA0KPiA+ID4gK3J0ZV9wY2lf ZmluZF9jYXBhYmlsaXR5KGNvbnN0IHN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2LCB1aW50OF90 IGNhcCkNCj4gPiA+ICt7DQo+ID4gPiArICAgICBvZmZfdCBvZmZzZXQ7DQo+ID4gPiArICAgICB1 aW50OF90IHBvczsNCj4gPiA+ICsgICAgIGludCB0dGw7DQo+ID4gPiArDQo+ID4gPiArICAgICBv ZmZzZXQgPSBSVEVfUENJX0NBUEFCSUxJVFlfTElTVDsNCj4gPiA+ICsgICAgIHR0bCA9IChSVEVf UENJX0NGR19TUEFDRV9TSVpFIC0gUlRFX1BDSV9TVERfSEVBREVSX1NJWkVPRikgLw0KPiA+ID4g UlRFX1BDSV9DQVBfU0laRU9GOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgaWYgKHJ0ZV9wY2lfcmVh ZF9jb25maWcoZGV2LCAmcG9zLCBzaXplb2YocG9zKSwgb2Zmc2V0KSA8IDApDQo+ID4gPiArICAg ICAgICAgICAgIHJldHVybiAtMTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIHdoaWxlIChwb3MgJiYg dHRsLS0pIHsNCj4gPiA+ICsgICAgICAgICAgICAgdWludDE2X3QgZW50Ow0KPiA+ID4gKyAgICAg ICAgICAgICB1aW50OF90IGlkOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgICAgICBvZmZzZXQg PSBwb3M7DQo+ID4gPiArICAgICAgICAgICAgIGlmIChydGVfcGNpX3JlYWRfY29uZmlnKGRldiwg JmVudCwgc2l6ZW9mKGVudCksIG9mZnNldCkNCj4gPCAwKQ0KPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgIHJldHVybiAtMTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgICAgICAgICAgaWQgPSBlbnQg JiAweGZmOw0KPiA+ID4gKyAgICAgICAgICAgICBpZiAoaWQgPT0gMHhmZikNCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ICsNCj4gPiA+ICsgICAgICAgICAgICAgaWYg KGlkID09IGNhcCkNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2Zmc2V0Ow0K PiA+ID4gKw0KPiA+ID4gKyAgICAgICAgICAgICBwb3MgPSAoZW50ID4+IDgpOw0KPiA+ID4gKyAg ICAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgICAgcmV0dXJuIDA7DQo+ID4gPiArfQ0KPiA+ID4gKw0K PiA+ID4gIG9mZl90DQo+ID4gPiAgcnRlX3BjaV9maW5kX2V4dF9jYXBhYmlsaXR5KGNvbnN0IHN0 cnVjdCBydGVfcGNpX2RldmljZSAqZGV2LA0KPiB1aW50MzJfdA0KPiA+ID4gY2FwKQ0KPiA+ID4g IHsNCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2J1cy9wY2kvcnRlX2J1c19wY2kuaA0KPiBi L2RyaXZlcnMvYnVzL3BjaS9ydGVfYnVzX3BjaS5oDQo+ID4gPiBpbmRleCA3NWQwMDMwZWFlLi4x ZWQzM2RiZjNkIDEwMDY0NA0KPiA+ID4gLS0tIGEvZHJpdmVycy9idXMvcGNpL3J0ZV9idXNfcGNp LmgNCj4gPiA+ICsrKyBiL2RyaXZlcnMvYnVzL3BjaS9ydGVfYnVzX3BjaS5oDQo+ID4gPiBAQCAt NjgsNiArNjgsMzcgQEAgdm9pZCBydGVfcGNpX3VubWFwX2RldmljZShzdHJ1Y3QgcnRlX3BjaV9k ZXZpY2UNCj4gKmRldik7DQo+ID4gPiAgICovDQo+ID4gPiAgdm9pZCBydGVfcGNpX2R1bXAoRklM RSAqZik7DQo+ID4gPg0KPiA+ID4gKy8qKg0KPiA+ID4gKyAqIENoZWNrIHdoZXRoZXIgdGhpcyBk ZXZpY2UgaGFzIGEgUENJIGNhcGFiaWxpdHkgbGlzdC4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqICBA cGFyYW0gZGV2DQo+ID4gPiArICogICAgQSBwb2ludGVyIHRvIHJ0ZV9wY2lfZGV2aWNlIHN0cnVj dHVyZS4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqICBAcmV0dXJuDQo+ID4gPiArICogICAgdHJ1ZS9m YWxzZQ0KPiA+ID4gKyAqLw0KPiA+ID4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiA+ID4gK2Jvb2wg cnRlX3BjaV9oYXNfY2FwYWJpbGl0eV9saXN0KGNvbnN0IHN0cnVjdCBydGVfcGNpX2RldmljZSAq ZGV2KTsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgKiBGaW5kIGRldmljZSdzIFBDSSBj YXBhYmlsaXR5Lg0KPiA+ID4gKyAqDQo+ID4gPiArICogIEBwYXJhbSBkZXYNCj4gPiA+ICsgKiAg ICBBIHBvaW50ZXIgdG8gcnRlX3BjaV9kZXZpY2Ugc3RydWN0dXJlLg0KPiA+ID4gKyAqDQo+ID4g PiArICogIEBwYXJhbSBjYXANCj4gPiA+ICsgKiAgICBDYXBhYmlsaXR5IHRvIGJlIGZvdW5kLCB3 aGljaCBjYW4gYmUgYW55IGZyb20NCj4gPiA+ICsgKiAgICBSVEVfUENJX0NBUF9JRF8qLCBkZWZp bmVkIGluIGxpYnJ0ZV9wY2kuDQo+ID4gPiArICoNCj4gPiA+ICsgKiAgQHJldHVybg0KPiA+ID4g KyAqICA+IDA6IFRoZSBvZmZzZXQgb2YgdGhlIG5leHQgbWF0Y2hpbmcgY2FwYWJpbGl0eSBzdHJ1 Y3R1cmUNCj4gPiA+ICsgKiAgICAgICB3aXRoaW4gdGhlIGRldmljZSdzIFBDSSBjb25maWd1cmF0 aW9uIHNwYWNlLg0KPiA+ID4gKyAqICA8IDA6IEFuIGVycm9yIGluIFBDSSBjb25maWcgc3BhY2Ug cmVhZC4NCj4gPiA+ICsgKiAgPSAwOiBEZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBpdC4NCj4gPiA+ ICsgKi8NCj4gPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiA+ICtvZmZfdCBydGVfcGNpX2Zp bmRfY2FwYWJpbGl0eShjb25zdCBzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldiwNCj4gdWludDhf dA0KPiA+ID4gY2FwKTsNCj4gPiA+ICsNCj4gPiA+ICAvKioNCj4gPiA+ICAgKiBGaW5kIGRldmlj ZSdzIGV4dGVuZGVkIFBDSSBjYXBhYmlsaXR5Lg0KPiA+ID4gICAqDQo+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9idXMvcGNpL3ZlcnNpb24ubWFwIGIvZHJpdmVycy9idXMvcGNpL3ZlcnNpb24u bWFwDQo+ID4gPiBpbmRleCBhMDAwMGY3OTM4Li4yNjc0ZjMwMjM1IDEwMDY0NA0KPiA+ID4gLS0t IGEvZHJpdmVycy9idXMvcGNpL3ZlcnNpb24ubWFwDQo+ID4gPiArKysgYi9kcml2ZXJzL2J1cy9w Y2kvdmVyc2lvbi5tYXANCj4gPiA+IEBAIC0yNSw2ICsyNSwxMCBAQCBFWFBFUklNRU5UQUwgew0K PiA+ID4gICAgICAgIyBhZGRlZCBpbiAyMy4wNw0KPiA+ID4gICAgICAgcnRlX3BjaV9tbWlvX3Jl YWQ7DQo+ID4gPiAgICAgICBydGVfcGNpX21taW9fd3JpdGU7DQo+ID4gPiArDQo+ID4gPiArICAg ICAjIGFkZGVkIGluIDIzLjExDQo+ID4gPiArICAgICBydGVfcGNpX2ZpbmRfY2FwYWJpbGl0eTsN Cj4gPiA+ICsgICAgIHJ0ZV9wY2lfaGFzX2NhcGFiaWxpdHlfbGlzdDsNCj4gPiA+ICB9Ow0KPiA+ ID4NCj4gPiA+ICBJTlRFUk5BTCB7DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8v dmlydGlvL3ZpcnRpb19wY2kuYw0KPiA+ID4gYi9kcml2ZXJzL2NyeXB0by92aXJ0aW8vdmlydGlv X3BjaS5jDQo+ID4gPiBpbmRleCA5NWE0M2M4ODAxLi5hYmM1MmI0NzAxIDEwMDY0NA0KPiA+ID4g LS0tIGEvZHJpdmVycy9jcnlwdG8vdmlydGlvL3ZpcnRpb19wY2kuYw0KPiA+ID4gKysrIGIvZHJp dmVycy9jcnlwdG8vdmlydGlvL3ZpcnRpb19wY2kuYw0KPiA+ID4gQEAgLTE5LDcgKzE5LDYgQEAN Cj4gPiA+ICAgKiB3ZSBjYW4ndCBzaW1wbHkgaW5jbHVkZSB0aGF0IGhlYWRlciBoZXJlLCBhcyB0 aGVyZSBpcyBubyBzdWNoDQo+ID4gPiAgICogZmlsZSBmb3Igbm9uLUxpbnV4IHBsYXRmb3JtLg0K PiA+ID4gICAqLw0KPiA+ID4gLSNkZWZpbmUgUENJX0NBUEFCSUxJVFlfTElTVCAgMHgzNA0KPiA+ ID4gICNkZWZpbmUgUENJX0NBUF9JRF9WTkRSICAgICAgICAgICAgICAweDA5DQo+ID4gPiAgI2Rl ZmluZSBQQ0lfQ0FQX0lEX01TSVggICAgICAgICAgICAgIDB4MTENCj4gPiA+DQo+ID4gPiBAQCAt MzQzLDggKzM0Miw5IEBAIGdldF9jZmdfYWRkcihzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldiwg c3RydWN0DQo+ID4gPiB2aXJ0aW9fcGNpX2NhcCAqY2FwKQ0KPiA+ID4gIHN0YXRpYyBpbnQNCj4g PiA+ICB2aXJ0aW9fcmVhZF9jYXBzKHN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2LCBzdHJ1Y3Qg dmlydGlvX2NyeXB0b19odw0KPiAqaHcpDQo+ID4gPiAgew0KPiA+ID4gLSAgICAgdWludDhfdCBw b3M7DQo+ID4gPiAgICAgICBzdHJ1Y3QgdmlydGlvX3BjaV9jYXAgY2FwOw0KPiA+ID4gKyAgICAg dWludDE2X3QgZmxhZ3M7DQo+ID4gPiArICAgICBvZmZfdCBwb3M7DQo+ID4gPiAgICAgICBpbnQg cmV0Ow0KPiA+ID4NCj4gPiA+ICAgICAgIGlmIChydGVfcGNpX21hcF9kZXZpY2UoZGV2KSkgew0K PiA+ID4gQEAgLTM1Miw0NCArMzUyLDI2IEBAIHZpcnRpb19yZWFkX2NhcHMoc3RydWN0IHJ0ZV9w Y2lfZGV2aWNlICpkZXYsDQo+IHN0cnVjdA0KPiA+ID4gdmlydGlvX2NyeXB0b19odyAqaHcpDQo+ ID4gPiAgICAgICAgICAgICAgIHJldHVybiAtMTsNCj4gPiA+ICAgICAgIH0NCj4gPiA+DQo+ID4g PiAtICAgICByZXQgPSBydGVfcGNpX3JlYWRfY29uZmlnKGRldiwgJnBvcywgMSwgUENJX0NBUEFC SUxJVFlfTElTVCk7DQo+ID4gPiAtICAgICBpZiAocmV0IDwgMCkgew0KPiA+ID4gLSAgICAgICAg ICAgICBWSVJUSU9fQ1JZUFRPX0lOSVRfTE9HX0RCRygiZmFpbGVkIHRvIHJlYWQgcGNpDQo+IGNh cGFiaWxpdHkNCj4gPiA+IGxpc3QiKTsNCj4gPiA+IC0gICAgICAgICAgICAgcmV0dXJuIC0xOw0K PiA+ID4gKyAgICAgLyoNCj4gPiA+ICsgICAgICAqIFRyYW5zaXRpb25hbCBkZXZpY2VzIHdvdWxk IGFsc28gaGF2ZSB0aGlzIGNhcGFiaWxpdHksDQo+ID4gPiArICAgICAgKiB0aGF0J3Mgd2h5IHdl IGFsc28gY2hlY2sgaWYgbXNpeCBpcyBlbmFibGVkLg0KPiA+ID4gKyAgICAgICovDQo+ID4gPiAr ICAgICBwb3MgPSBydGVfcGNpX2ZpbmRfY2FwYWJpbGl0eShkZXYsIFBDSV9DQVBfSURfTVNJWCk7 DQo+ID4gPiArICAgICBpZiAocG9zID4gMCAmJiBydGVfcGNpX3JlYWRfY29uZmlnKGRldiwgJmZs YWdzLCBzaXplb2YoZmxhZ3MpLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHBvcyArIDIp ID09IHNpemVvZihmbGFncykpIHsNCj4gPiA+ICsgICAgICAgICAgICAgaWYgKGZsYWdzICYgUENJ X01TSVhfRU5BQkxFKQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIGh3LT51c2VfbXNpeCA9 IFZJUlRJT19NU0lYX0VOQUJMRUQ7DQo+ID4gPiArICAgICAgICAgICAgIGVsc2UNCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICBody0+dXNlX21zaXggPSBWSVJUSU9fTVNJWF9ESVNBQkxFRDsN Cj4gPiA+ICsgICAgIH0gZWxzZSB7DQo+ID4gPiArICAgICAgICAgICAgIGh3LT51c2VfbXNpeCA9 IFZJUlRJT19NU0lYX05PTkU7DQo+ID4gPiAgICAgICB9DQo+ID4gPg0KPiA+ID4gLSAgICAgd2hp bGUgKHBvcykgew0KPiA+ID4gLSAgICAgICAgICAgICByZXQgPSBydGVfcGNpX3JlYWRfY29uZmln KGRldiwgJmNhcCwgc2l6ZW9mKGNhcCksIHBvcyk7DQo+ID4gPiAtICAgICAgICAgICAgIGlmIChy ZXQgPCAwKSB7DQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgVklSVElPX0NSWVBUT19JTklU X0xPR19FUlIoDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRv IHJlYWQgcGNpIGNhcCBhdCBwb3M6ICV4IiwNCj4gcG9zKTsNCj4gPiA+IC0gICAgICAgICAgICAg ICAgICAgICBicmVhazsNCj4gPiA+IC0gICAgICAgICAgICAgfQ0KPiA+ID4gLQ0KPiA+ID4gLSAg ICAgICAgICAgICBpZiAoY2FwLmNhcF92bmRyID09IFBDSV9DQVBfSURfTVNJWCkgew0KPiA+ID4g LSAgICAgICAgICAgICAgICAgICAgIC8qIFRyYW5zaXRpb25hbCBkZXZpY2VzIHdvdWxkIGFsc28g aGF2ZSB0aGlzDQo+IGNhcGFiaWxpdHksDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICog dGhhdCdzIHdoeSB3ZSBhbHNvIGNoZWNrIGlmIG1zaXggaXMgZW5hYmxlZC4NCj4gPiA+IC0gICAg ICAgICAgICAgICAgICAgICAgKiAxc3QgYnl0ZSBpcyBjYXAgSUQ7IDJuZCBieXRlIGlzIHRoZSBw b3NpdGlvbg0KPiBvZiBuZXh0DQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICogY2FwOyBu ZXh0IHR3byBieXRlcyBhcmUgdGhlIGZsYWdzLg0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAqLw0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IGZsYWdzID0gKCh1aW50 MTZfdCAqKSZjYXApWzFdOw0KPiA+ID4gLQ0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIGlm IChmbGFncyAmIFBDSV9NU0lYX0VOQUJMRSkNCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGh3LT51c2VfbXNpeCA9IFZJUlRJT19NU0lYX0VOQUJMRUQ7DQo+ID4gPiAtICAgICAg ICAgICAgICAgICAgICAgZWxzZQ0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aHctPnVzZV9tc2l4ID0gVklSVElPX01TSVhfRElTQUJMRUQ7DQo+ID4gPiAtICAgICAgICAgICAg IH0NCj4gPiA+IC0NCj4gPiA+IC0gICAgICAgICAgICAgaWYgKGNhcC5jYXBfdm5kciAhPSBQQ0lf Q0FQX0lEX1ZORFIpIHsNCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICBWSVJUSU9fQ1JZUFRP X0lOSVRfTE9HX0RCRygNCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbJTJ4 XSBza2lwcGluZyBub24gVk5EUiBjYXAgaWQ6ICUwMngiLA0KPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcG9zLCBjYXAuY2FwX3ZuZHIpOw0KPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgIGdvdG8gbmV4dDsNCj4gPiA+IC0gICAgICAgICAgICAgfQ0KPiA+ID4gLQ0KPiA+ID4g KyAgICAgcG9zID0gcnRlX3BjaV9maW5kX2NhcGFiaWxpdHkoZGV2LCBQQ0lfQ0FQX0lEX1ZORFIp Ow0KPiA+DQo+ID4gVGhlIGxvZ2ljIG9mIHZlbmRvciBjYXAgaW5pdCBzZWVtcyBpbmNvcnJlY3Qu IFZpcnRpbyBkZXZpY2VzIGhhdmUNCj4gbXVsdGlwbGUNCj4gPiBWZW5kb3IgY2FwIChkaWZmZXJl bnQgY2ZnIHR5cGUpLiBCdXQgbm93IHRoZSBsb2dpYyBzZWVtcyB0byBvbmx5IGluaXQNCj4gdGhl IGZpcnN0DQo+ID4gb25lLg0KPiANCj4gSW5kZWVkLCBnb29kIGNhdGNoIQ0KPiBJdCBpcyBzYWQg dGhhdCB0aGUgQ0kgZGlkIG5vdCBjYXRjaCB0aGlzIHJlZ3Jlc3Npb24gaW4gdmlydGlvIHBtZCBp bml0IDotKC4NCj4gDQo+IEknbGwgYWRkIGEgZmluZF9uZXh0X2NhcGFiaWxpdHkgaGVscGVyIGZv ciB2My4NCj4gDQo+IA0KPiANCj4gPg0KPiA+ID4gKyAgICAgaWYgKHBvcyA+IDAgJiYgcnRlX3Bj aV9yZWFkX2NvbmZpZyhkZXYsICZjYXAsIHNpemVvZihjYXApLCBwb3MpDQo+ID09DQo+ID4gPiBz aXplb2YoY2FwKSkgew0KPiA+ID4gICAgICAgICAgICAgICBWSVJUSU9fQ1JZUFRPX0lOSVRfTE9H X0RCRygNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAiWyUyeF0gY2ZnIHR5cGU6ICV1LCBi YXI6ICV1LCBvZmZzZXQ6ICUwNHgsDQo+IGxlbjogJXUiLA0KPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgIHBvcywgY2FwLmNmZ190eXBlLCBjYXAuYmFyLCBjYXAub2Zmc2V0LA0KPiBjYXAubGVu Z3RoKTsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KXBvcywgY2Fw LmNmZ190eXBlLCBjYXAuYmFyLA0KPiBjYXAub2Zmc2V0LA0KPiA+ID4gY2FwLmxlbmd0aCk7DQo+ ID4gPg0KPiA+ID4gICAgICAgICAgICAgICBzd2l0Y2ggKGNhcC5jZmdfdHlwZSkgew0KPiA+ID4g ICAgICAgICAgICAgICBjYXNlIFZJUlRJT19QQ0lfQ0FQX0NPTU1PTl9DRkc6DQo+ID4gPiBAQCAt NDExLDkgKzM5Myw2IEBAIHZpcnRpb19yZWFkX2NhcHMoc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpk ZXYsDQo+IHN0cnVjdA0KPiA+ID4gdmlydGlvX2NyeXB0b19odyAqaHcpDQo+ID4gPiAgICAgICAg ICAgICAgICAgICAgICAgaHctPmlzciA9IGdldF9jZmdfYWRkcihkZXYsICZjYXApOw0KPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4gICAgICAgICAgICAgICB9DQo+ID4g PiAtDQo+ID4gPiAtbmV4dDoNCj4gPiA+IC0gICAgICAgICAgICAgcG9zID0gY2FwLmNhcF9uZXh0 Ow0KPiA+ID4gICAgICAgfQ0KPiA+DQo+ID4gLi4uDQo+IA0KPiANCj4gLS0NCj4gRGF2aWQgTWFy Y2hhbmQNCg0K